1. (1小时学会c语言51单片机)C语言入门教程
51作为学习入门,确实是最最基础的了,不过至少它可以让一个新手明白控制是怎么回事,反馈是怎么回事,程序是怎么下载进去运行,又是怎么控制到io输入输出的,如何去访问寄存器,掌握一套在嵌入式领悟最最基本的开发方法和学习思路。这部分如果有兴趣,建议学习时间不要超过两个月。
1.c语言,及部分汇编代码
2.用一个月时间看完做完郭天祥的十天学会51单片机
3.买一块开发板
4.学习能够看懂看会原理图
5.掌握搜集资料,datasheet查找阅读英文手册的能力
6.自己动手动手动手做一个简单的功能
最后,我其实不建议51入门,可以直接stm32,虽然他还是单片机。不过十年前我当初也是51入门的,乐此不疲。至于忽悠你什么协议,内核,我觉得让一个大一嵌入式新手学这些,无疑没有基础就想建高楼,所以踏踏实实从基础开始,大学就是注重基础,学习能力!
2. 单片机c语言编程时会用到哪些常用的C语
关键字
用 途
说 明
auto
存储种类说明
用以说明局部变量,缺省值为此
break
程序语句
退出最内层循环
case
程序语句
Switch语句中的选择项
char
数据类型说明
单字节整型数或字符型数据
const
存储类型说明
在程序执行过程中不可更改的常量值
continue
程序语句
转向下一次循环
default
程序语句
Switch语句中的失败选择项
do
程序语句
构成do..while循环结构
double
数据类型说明
双精度浮点数
else
程序语句
构成if..else选择结构
enum
数据类型说明
枚举
extern
存储种类说明
在其他程序模块中说明了的全局变量
flost
数据类型说明
单精度浮点数
for
程序语句
构成for循环结构
goto
程序语句
构成goto转移结构
if
程序语句
构成if..else选择结构
int
数据类型说明
基本整型数
long
数据类型说明
长整型数
register
存储种类说明
使用CPU内部寄存的变量
return
程序语句
函数返回
short
数据类型说明
短整型数
signed
数据类型说明
有符号数,二进制数据的最高位为符号位
sizeof
运算符
计算表达式或数据类型的字节数
static
存储种类说明
静态变量
struct
数据类型说明
结构类型数据
swicth
程序语句
构成switch选择结构
typedef
数据类型说明
重新进行数据类型定义
union
数据类型说明
联合类型数据
unsigned
数据类型说明
无符号数数据
void
数据类型说明
无类型数据
volatile
数据类型说明
该变量在程序执行中可被隐含地改变
while
程序语句
构成while和do..while循环结构
附表1-1 ANSIC标准关键字
关键字
用 途
说 明
bit
位标量声明
声明一个位标量或位类型的函数
sbit
位标量声明
声明一个可位寻址变量
Sfr
特殊功能寄存器声明
声明一个特殊功能寄存器
Sfr16
特殊功能寄存器声明
声明一个16位的特殊功能寄存器
data
存储器类型说明
直接寻址的内部数据存储器
bdata
存储器类型说明
可位寻址的内部数据存储器
idata
存储器类型说明
间接寻址的内部数据存储器
pdata
存储器类型说明
分页寻址的外部数据存储器
xdata
存储器类型说明
外部数据存储器
code
存储器类型说明
程序存储器
interrupt
中断函数说明
定义一个中断函数
reentrant
再入函数说明
定义一个再入函数
using
寄存器组定义
定义芯片的工作寄存器
附表1-2 C51编译器的扩展关键字
附录二 AT89C51特殊功能寄存器列表(适用于同一架构的芯片)
符 号
地 址
注 释
*ACC
E0H
累加器
*B
F0H
乘法寄存器
*PSW
D0H
程序状态字
SP
81H
堆栈指针
DPL
82H
数据存储器指针低8位
DPH
83H
数据存储器指针高8位
*IE
A8H
中断允许控制器
*IP
D8H
中断优先控制器
*P0
80H
端口0
*P1
90H
端口1
*P2
A0H
端口2
*P3
B0H
端口3
PCON
87H
电源控制及波特率选择
*SCON
98H
串行口控制器
SBUF
99H
串行数据缓冲器
*TCON
88H
定时器控制
TMOD
89H
定时器方式选择
TL0
8AH
定时器0低8位
TL1
8BH
定时器1低8位
TH0
8CH
定时器0低8位
TH1
8DH
定时器1高8位
带*号的特殊功能寄存器都是可以位寻址的寄存器
3. 单片机C语言程序,看不懂,求讲解
“T0中断服务程序不是一个子程序吗?但没看见在主程序中调用这个子程序啊,求讲解这个程序命令的运行过程,定时器怎么中断的?”
该子程序是在硬件产生中断的时候,跳转到相应中断入口后,再跳转到这个中断服务程序的。请注意函数后面的“interrupt x”声明,这是C51的扩展内容。
“用示波器测波形是测p1.0引脚,为什么是这个引脚,怎么确定的?p1_0不是个变量名吗?”
P1_0这个符号在前面的头文件 t89c51cc02.h 中有定义。至于“为什么是这个引脚”,是由硬件设计及本程序共同确定的。P1_0(不是你写的p1_0,C语言要区分大小写哦)代表P1口的第0管脚,在头文件中通过sbit定义。
“为什么T0中断服务程序和主程序中都有T0的初值,设置还是一样,他们有什么关系?”
主程序前面的是对Timer0初始化,赋以初值。执行 TR0 = 1; 这一句以后,Timer0就开始运行了——TL0与TH0组成的13位计数器开始不断递增。当13位全部为1之后,再递增就全部为0,此时溢出事件会触发产生定时器0,同时计数器仍然在继续计数——为了让时间间隔保持一致,就需要再度将计数器赋以初值。
4. 51单片机C语言应用程序设计实例精讲的目录
第1章51单片机开发的基础知识
1.151单片机的硬件结构
1.1.1功能模块
1.1.2CPU
1.1.3并行I/O端口
1.1.4存储嚣结构
1.1.5定时/计数器
1.1.6串行口
1.1.7中断系统
1.251单片机的指令系统
1.2.1寻址方式
1.2.2指令说明
1.2.3指令系统表
1.3本章总结
第2章C语言程序各语句用法与意义
2.1数据结构
2.1.1数据类型
2.1.2变量与常量
2.1.3数组
2.1.4指针
2.1.5结构
2.1.6共用体
2.1.7枚举
2.2运算符与表达式
2.2.1运算符分类与优先级
2.2.2算术运算符与表达式
2.2.3关系运算符与表达式
2.2.4逻辑运算符与表达式
2.2.5位操作运算符与表达式
2.2.6赋值运算符与表达式
2.3程序结构与函数
2.3.1程序结构
2.3.2函数
2.4流程控制语句
2.4.1选择语句
2.4.2循环语句
2.4.3转移语句
2.5本章总结
第3章Keil8051C编译器
3.1Keil编译器简介
3.2使用Keil开发应用软件
3.2.1建立工程
3.2.2工程的设置
3.2.3编译与连接
3.3dScopeforWindows的使用
3.3.1如何启动
3.3.2如何调试
3.3.3调试窗口
3.4本章总结 第4章单片机实现液晶显示
4.1实例说明
4.2设计思路分析
4.2.1液晶显示模块
4.2.2液晶显示工作原理
4.2.3设计思路
4.3硬件电路设计
4.3.1器件选取
4.3.2电源模块
4.3.3液晶显示模块
4.3.4单片机模块
4.4软件设计
4.4.1液晶控制驱动嚣指令集
4.4.2程序说明
4.5实例总结
第5章基于MAX7219的8位数码管显示
5.1实例说明
5.2设计思路分析
5.2.1LED显示驱动芯片的选取
5.2.2MAX7219的工作原理
5.3硬件电路设计
5.3.1主要器件
5.3.2电路原理图
5.4软件设计
5.4.1MAX7219的工作时序和寄存器描述
5.4.2程序说明
5.5实例总结
第6章键盘输入实例——实现4x4键盘
6.1实例说明
6.2设计思路分析
6.3硬件电路设计
6.4软件设计
6.5实例总结
第7章单片机实现语音录放
7.1实例说明
7.2设计思路分析
7.2.1语音芯片选取
7.2.2语音芯片1SD2560简介
7.3硬件电路设计
7.3.1主要器件
7.3.2电路原理图及说明
7.4软件设计
7.4.1程序流程
7.4.2程序说明
7.5实例总结 第8章基于MAX197的并行A/D转换
8.1实例说明
8.2设计思路分析
8.2.1A/D转换原理
8.2.2如何选择A/D转换器件
8.2.3A/D转换器对电源电路的要求
8.3硬件电路设计
8.3.1主要器件
8.3.2电路原理图及说明
8.4软件设计
8.4.1MAX197控制字
8.4.2程序流程
8.4.3程序说明
8.5实例总结
第9章基于TLC549的串行A/D转换
9.1实例说明
9.2设计思路分析
9.2.1芯片选取
9.2.2工作原理
9.3硬件电路设计
9.3.1主要器件
9.3.2电路原理图及说明
9.4软件设计
9.4.1转换过程和时序要求
9.4.2程序流程
9.4.3程序说明
9.5实例总结
第10章基于MAX527的并行D/A转换
10.1实例说明
10.2设计思路分析
10.2.1D/A转换原理
10.2.2如何选择D/A转换器件
10.2.3D/A转换器对电源电路的要求
10.3硬件电路设计
10.3.1主要器件
10.3.2电路原理图及说明
10.4软件设计
10.4.1MAX527的地址和重要引脚
10.4.2程序流程
10.4.3程序说明
10.5实例总结
第11章基于MAX517的串行D/A转换
11.1实例说明
11.2设计思路分析
11.2.1芯片选取
11.2.2工作原理
11.3硬件电路设计
11.3.1主要器件
11.3.2电路原理图及说明
11.4软件设计
11.4.1时序要求和转换过程
11.4.2程序说明
11.5实例总结
第12章基于SHT71数字温/湿度传感器的采集实现
12.1实例说明
12.2设计思路分析
12.2.1SHT71性能概述
12.2.2SHT71的功能说明
12.2.3SHT71的引脚尺寸和说明
12.3硬件电路设计
12.4软件设计
12.4.1SHT71的操作方法
12.42程序流程
12.4.3源程序清单
12.5实例总结
第13章基于DS1624的数字温度计设计
13.1实例说明
13.1.2设计思路分析
13.2.1DS1624简介
13.2.2DS1624基本特性
13.2.3DS1624工作原理
13.2.4DS1624工作方式
13.2.5DS1624的指令集
13.3硬件电路设计
13.3.1硬件设计
13.3.2原理科及其说明
13.4软件设计
13.4.1程序流程
13.4.2程序说明
13.5实例总结 第14章基于DS12C887的实时日历时钟显示系统设计
14.1实例说明
14.2设计思路分析
14.2.1选择合适的日历时钟芯片7
14.2.2如何由DS12C887芯片获取时间信息
14.3硬件电路设计
14.3.1结构框图
14.3.2主要器件
14.3.3电路原理图及说明
14.4软件设计
14.4.1DS12C877的内存空间
14.4.2程序流程
14.4.3程序代码及说明
14.5实例总结
第15章单片机控制的步进电机系统
15.1实例说明
15.2设计思路分析
15.2.1步进电机的工作原理
15.2.2步进电机的控制
15.2.3脉冲分配与驱动芯片的选取
15.3硬件电路设计
15.3.1结构框图
15.3.2主要器件
15.3.3电路原理图厦说明
15.4软件设计
15.4.1程序流程
15.4.2程序说明
15.5实例总结
第16章基于MAX1898的智能充电器设计
16.1实例说明
16.2设计思路分析
16.2.1为何需要实现充电器的智能化
16.2.2如何选择电池充电芯片
16.2.3MAX1898的充电工作原理
16.3硬件电路设计
16.3.1主要器件
16.3.2电路原理图及说明
16.4软件设计
16.4.1程序流程
16.4.2程序说明
16.5实例总结 第17章基于NORFlashAM29LV320的数据存储
17.1实例说明
17.2设计思路分析
17.2.1芯片AM29LV320
17.2.2具体设计思路
17.3硬件电路设计
17.4软件设计
17.4.1AM29LV320的命令与状态
17.4.2串行异步数据传输
17.4.3程序代码说明
17.5实例总结
第18章基于XC95144的串口扩展
18.1实例说明
18.2设计思路分析
18.2.1串口发送的设计
18.2.2串口接收的设计
18.2.3串口模块的设计l
18.3硬件电路设计
18.4软件设计
18.4.1CPLD的设计原理图
18.4.2C51单片机程序代码说明
18.5实例总结
第19章基于8255扩展并行口
19.1实例说明
19.2设计思路分析
19.2.1并行口扩展的原理
19.2.2芯片选择
19.3硬件电路设计
19.4软件设计
19.5实例总结 第20章单片机实现智能信号发生器
第21章单片机实现步进式PWM信号输出
第22章单片机实现CRC算法
第23章单片机实现软件滤波
第七篇通信传输系统设计
第24章单片机实现点对点的数据传输
第25章单片机实现点对多点的数据传输
第26章单片机实现以太网接口
第27章单片机实现1C总线通信
第28章单片机实现RS-485总线现场监测系统
第29章CAN总线接口通信设计
第八篇电源监控与抗干扰设计
第30章单片机监控电路设计
第31章光电隔离电路设计 附录A汇编语言与C语言的混合编程
附录B实例配套实验箱
5. 新概念51单片机C语言教程的作品目录
第1篇入门篇
1.1单片机概述
1.1.1什么是单片机
1.1.2单片机标号信息及封装类型
1.1.3单片机能做什么
1.1.4如何开始学习单片机
1.251单片机外部引脚介绍
1.3电平特性
1.4二进制与十六进制
1.4.1二进制
1.4.2十六进制
1.5二进制的逻辑运算
1.5.1与
1.5.2或
1.5.3非
1.5.4同或
1.5.5异或
1.6单片机的C51基础知识介绍
1.6.1利用C语言开发单片机的优点
1.6.2C51中的基本数据类型
1.6.3C51数据类型扩充定义
1.6.4C51中常用的头文件
1.6.5C51中的运算符
1.6.6C51中的基础语句
1.6.7学习单片机应该掌握的主要内容
2.1Keil工程建立及常用按钮介绍
2.1.1Keil工程的建立
2.1.2常用按钮介绍
2.2点亮第一个发光二极管
2.3while语句
2.4for语句及简单延时语句
2.5Keil仿真及延时语句的精确计算
2.6不带参数函数的写法及调用
2.7带参数函数的写法及调用
2.8利用C51库函数实现流水灯
第2篇内外部资源操作篇
3.1数码管显示原理
3.2数码管静态显示
3.3数码管动态显示
3.4中断概念
3.5单片机的定时器中断
4.1独立键盘检测
4.2矩阵键盘检测
5.1模拟量与数字量概述
5.2A/D转换原理及参数指标
5.3ADC0804工作原理及其实现方法
5.4D/A转换原理及其参数指标
5.5DAC0832工作原理及实现方法
5.6DAC0832输出电流转换成电压的方法
第6章串行口通信原理及操作流程
6.1并行与串行基本通信方式
6.2RS-232电平与TTL电平的转换
6.3波特率与定时器初值的关系
6.451单片机串行口结构描述
6.5串行口方式1编程与实现
6.6串行口打印在调试程序中的应用
第7章通用型1602,12232,12864液晶操作方法
7.1液晶概述
7.2常用1602液晶操作实例
7.3常用12232液晶操作实例
7.4常用12864液晶操作实例
第8章I2C总线AT24C02芯片应用
8.1I2C总线概述
8.2单片机模拟I2C总线通信
8.3E2PROMAT24C02与单片机的通信实例
第9章基础运放电路专题
9.1运放概述及参数介绍
9.2反相放大器
9.3同相放大器
9.4电压跟随器
9.5加法器
9.6差分放大器
9.7微分器
9.8积分器
第3篇提高篇
第10章定时器/计数器应用提高
10.1方式0应用
10.2方式2应用
10.3方式3应用
10.452单片机定时器2介绍
10.5计数器应用
第11章串行口应用提高
11.1方式0应用
11.2方式2和方式3应用
11.3单片机双机通信
11.4单片机多机通信
第12章指针
12.1指针与指针变量
12.1.1内存单元、地址和指针
12.1.2指针变量的定义、赋值与引用
12.2指针变量的运算
12.3指针与数组
12.3.1指针与一维数组
12.3.2指针与多维数组
12.4指针与函数
12.4.1指针作为函数的参数
12.4.2指向函数的指针
12.4.3指针型函数
12.5指针与字符串
12.5.1字符串的表达形式
12.5.2字符指针作为函数参数
12.5.3使用字符指针与字符数组的区别
12.6指针数组与命令行参数
12.6.1指针数组的定义和使用
12.6.2指向指针的指针
12.6.3指针数组作为main()函数的命令行参数
12.7指针小结
12.7.1指针概念综述
12.7.2指针运算小结
12.7.3等价表达式
12.8C51中指针的使用
12.8.1指针变量的定义
12.8.2指针应用
第13章STC系列51单片机功能介绍
13.1单片机空闲与掉电模式应用
13.2“看门狗”概念及其应用
13.3用软件实现系统复位
13.4内部扩展RAM的应用
13.5扩展P4口的应用
13.6内部E2PROM的应用
13.7STC89系列单片机内部A/D应用
13.8STC12系列单片机内部A/D应用
13.9STC12系列单片机的PCA/PWM介绍
13.10STC12系列单片机的SPI接口介绍
13.11STC12系列单片机的“576MHz”超速运行
第4篇实战篇
第14章利用51单片机的定时器设计一个时钟
14.1如何从矩阵键盘中分解出独立按键
14.2原理图分析
14.3实例讲解
第15章使用DS12C887时钟芯片设计高精度时钟
15.1时钟芯片概述
15.2DS12C887时钟芯片介绍
15.3如何用TX-1C实验板扩展本实验
15.4原理图分析
15.5实例讲解
第16章使用DS18B20温度传感器设计温控系统
16.1温度传感器概述
16.2DS18B20温度传感器介绍
16.3实例讲解
第17章太阳能充/放电控制器
17.1控制器原理图分析
17.2控制器板上元件介绍
17.3实例讲解
第18章VC、VB(MSCOMM控件)与单片机通信实现温度显示
18.1VCMSCOMM控件与单片机通信实现温度显示
18.2VBMSCOMM控件与单片机通信实现温度显示
第5篇拓展篇
第19章使用Protell99绘制电路图全过程
19.1绘制电路板概述
19.2建立工程
19.3制作元件库
19.4添加封装及制作PCB封装库
19.5错误检查及生成PCB
19.6布线电气特性设置
19.7自动布线和手动布线
第20章ISD400x系列语音芯片应用
20.1ISD400x系列语音芯片介绍
20.2ISD400x系列语音芯片操作规则
20.3ISD400x系列语音芯片应用实现
第21章电机专题
21.1直流电机原理及应用
21.2步进电机原理及应用
21.3舵机原理及其应用
第22章常用元器件介绍
22.1二极管
22.2电容
22.3场效应管
22.4光耦
22.5蜂鸣器
22.6继电器
22.7自恢复保险
22.8瞬态电压抑制器
22.9晶闸管(可控硅)
22.10电荷泵
第23章直流稳压电源专题
23.1整流电路
23.2滤波电路
23.3稳压电路
23.4集成稳压模块的使用
23.5串联开关型稳压电源
第24章运放扩展专题
24.1简单低通滤波器
24.2“电流-电压”转换电路
24.3光电放大器
24.4精密电流源
24.5可调参考电压源
24.6复位稳定放大器
24.7模拟乘法器
24.8全波整流器和平均值滤波器
24.9正弦波振荡器
24.10三角波发生器
24.11自动跟踪对称电源
24.12可调实验电源
24.13运放相关术语表
附录A天祥电子开发实验板简介
A.1TX-1C51单片机开发板(配套详细视频教程)
A.2AVR单片机开发板(配套详细视频教程)
A.3PIC单片机开发板(配套详细视频教程)
A.4J-Link全功能ARM仿真器
A.5三星S3C44B0ARM7入门级开发板
A.6三星S3C44B0ARM7提高级开发板
A.7TX-51STAR51单片机开发板(配套详细视频教程)
参考文献