第1章 从哪儿开始你的单片机学习 1
1.1神秘武器的得来 1
1.2单片机的身世 2
1.3单片机都能干什么 3
1.4神秘老人的法宝 4
1.4.1实验开发板 4
1.4.2下载线 4
1.4.3电源 6
1.4.4编程软件 6
1.4.5下载软件 7
1.5一个古老的神灯 8
1.6互动环节 11
第2章 认识一下著名的单片机先生 12
2.1单片机的外在形象 12
2.1.1要工作就得吃饭 13
2.1.2庞大的组织要有个总指挥 13
2.1.3控制信号引脚 13
2.1.4输入/输出引脚P0、P1、P2、P3 14
2.2单片机丰富的内“芯”世界 15
2.2.1好东西都放在哪儿了 15
2.2.2“芯”里还有别人吗 19
2.3互动环节 20
第3章 尝试着用语言与单片机交流 23
3.1一个LED灯闪烁 23
3.2跑马灯 29
3.3 LED万能闪烁程序 36
第4章LED数码管的应用 39
4.1 LED数码管显示原理及显示方式 39
4.2 LED数码管分类及驱动 39
4.3点亮一个LED数码管 40
4.4 LED数码管显示段码 41
4.5静态显示 42
4.6动态显示生日 43
4.7 0~99循环自加计数器 46
4.8其他数码管驱动电路 54
第5章 引发事端的按键 56
5.1按键控制LED小灯怎么失灵了 57
5.1.1硬件电路设计及原理分析 57
5.1.2软件设计思想及代码分析 57
5.1.3究竟错在哪里 59
5.2对付按键抖动 60
5.2.1公园的一个入口CALL与多个出口RET 63
5.2.2 RET与SJ MP真的都能找回家吗 64
5.2.3 CALL与RET是天生一对儿 65
5.3按键与数码管共舞 68
5.3.1 2个按键控制数码管显示2个数字 68
5.3.2按键控制数码管数据加减 71
5.3.3数码管熄灭——按键在捣鬼 74
5.3.4按键与数码管和睦相处 74
5.3.5数码管怎么又不听按键的了 75
5.4按键进阶 78
第6章 定时器/计数器的应用 80
6.1定时器/计数器工作原理 80
6.1.1定时器/计数器在生活中的原型 80
6.1.2定时器/计数器的定时和计数是怎么实现的 81
6.1.3定时器/计数器能干什么 81
6.2控制定时器/计数器工作的四大金刚 82
6.2.1计数容器TH0、 TL0及TH1、TL1 82
6.2.2设置定时器/计数器工作方式寄存器TMOD 82
6.2.3控制定时器/计数器工作寄存器TCON 84
6.2.4中断允许寄存器IE 85
6.3稍稍理一理思路 87
6.4定时器用于定时 87
6.4.1查询法定时50 ms实现一个LED小灯闪烁 88
6.4.2中断法定时50 ms实现一个LED小灯闪烁 91
6.4.3中断PK查询 94
6.4.4延长定时时间 96
6.4.5数字电子时钟 99
6.5定时器定时和程序中的延时子程序DELAY有何不同 108
6.6定时器进阶 108
6.6.1饭店牌匾上的彩灯 108
6.6.2预约定时做饭 109
6.6.3上课铃声真准确 109
第7章 会数数的定时器/计数器 110
7.1定时器/计数器T1用于计数 110
7.1.1会数心跳次数的T1 110
7.1.2没有心率检测传感器怎么做这个实验呢 113
7.1.3比较完整的数字人体心率检测仪 119
7.2计数器进阶 124
7.2.1测量电机转速 124
7.2.2出租车计价系统 124
7.2.3每瓶装100粒药丸 124
第8章 外部引脚P3.2和P3.3的特权 125
8.1生活中的那些事儿 125
8.2谁在控制中断 127
8.2.1我可以把手机关了 127
8.2.2中断允许控制寄存器IE 127
8.2.3控制寄存器TCON 128
8.2.4谁惹我我找他家去 129
8.3外部中断控制LED闪烁 129
8.3.1低电平触发中断控制LED闪烁 129
8.3.2下降沿触发中断控制LED闪烁 133
8.3.3 2个外部中断低电平触发控制2个LED闪烁 134
8.3.4 IP改变土匪窝儿里二当家的地位 137
8.3.5土匪窝儿里的新规让二当家的也有喝酒的份儿 140
8.3.6外中断触发方式与中断级别 143
8.3.7 P3.2和P3.3的特权不是只能用来控制LED小灯 144
8.4外部中断再做心率检测仪 144
8.5智能小车寻线跑的背后 149
8.5.1小车顺着黑线跑 149
8.5.2小车上显示行驶时间 156
8.5.3小车上的数码管时而熄灭且时间不准 160
8.5.4智能车还可以数出沿途遇到的铁片数量 162
8.5.5需要更多外部中断该怎么办 167
8.6外部中断进阶 168
第9章 串行口及其应用 169
9.1了解几点知识 169
9.1.1并行通信与串行通信 169
9.1.2异步通信与同步通信 170
9.1.3串行通信的制式 170
9.2由传球悟串行通信 170
9.3 51单片机串行口 171
9.3.1数据格式的设置 171
9.3.2波特率的设置 173
9.3.3成功设置串口初始化的步骤总结 174
9.4两片51单片机“眉来眼去” 174
9.4.1查询方式收发数据 174
9.4.2中断方式收发数据 178
9.5上位机与单片机相“恋” 180
9.5.1心率检测仪数据上传PC机 181
9.5.2上位机控制电机起停 185
9.6串口进阶 187
9.6.1简易数字示波器 187
9.6.2多路温度监控系统 187
第10章 我在Keil环境下开始学习C51 188
10.1 Keil μVision2集成开发环境 188
10.1.1 Keil软件的安装 189
10.1.2 Keil软件的使用 191
10.2 C语言的基本结构 196
10.3标识符和关键字 198
10.4从储物盒想到数据类型 200
10.4.1 C语言中的数据类型 201
10.4.2常量与变量 201
10.4.3整型数据 203
10.4.4字符型数据 204
10.4.5实型数据 205
10.4.6 Keil增加的数据类型 206
10.4.7从仓库谈到数据的存储类型 207
10.4.8巧用typedef定义类型 212
第11章 运算符、表达式及程序基本结构 214
11.1运算符 214
11.1.1赋值运算符 214
11.1.2算术运算符 215
11.1.3增量和减量运算符 215
11.1.4关系运算符 217
11.1.5逻辑运算符 219
11.1.6位运算符 221
11.1.7复合赋值运算符 223
11.1.8条件运算符 223
11.1.9指针和地址运算符 223
11.1.10强制类型转换运算符 224
11.2 C51程序的基本结构 226
11.2.1按部就班——顺序结构 226
11.2.2人生的十字路口——选择结构 226
11.2.3小毛驴拉完磨就放你回去——循环结构 232
第12章C51构造数据类型与函数 241
12.1数组 241
12.1.1一维数组让我想到一行大树 241
12.1.2二维数组让我想到几排民房 243
12.2指针 247
12.2.1环顾左右而言它——指针究竟在指谁 247
12.2.2万能LED闪烁的实现 249
12.2.3数码管显示数组中的内容 251
12.2.4具体程序(指针与二维数组共同演绎万能流水灯) 252
12.3百家争鸣说结构体 253
12.3.1结构体类型的声明和变量的定义 253
12.3.2打印3个学生的基本信息 255
12.3.3如何用指针操作结构体变量 258
12.4内存共享说共用体 260
12.4.1用共用体变量点亮小灯 261
12.4.2共用体在TCL2543中的应用 263
第13章51单片机内部资源的应用 267
13.1 I/O口应用简介 267
13.1.1古老神灯再现 267
13.1.2数码管显示我的生日 270
13.1.3活学活用独立按键 272
13.2定时器/计数器 280
13.2.1定时器控制小灯的闪烁 280
13.2.2延长定时器时间的方法 283
13.2.3用计数器计脉搏跳动的次数 285
13.3实用的外部中断 286
13.4重温串行通信 288
13.5内部资源的综合实验 292
13.5.1数字电子时钟(一) 293
13.5.2数字电子时钟(二) 297
13.5.3心率测试仪器 301
第14章51单片机外部扩展资源的应用 306
14.1 4×4矩阵键盘的应用 306
14.2点阵LED显示器的应用 310
14.2.1 74LS138译码器的介绍 310
14.2.2 74HC595的介绍 312
14.2.3 LED点阵显示屏程序设计 313
14.3模/数转换器ADC0832的应用 316
14.3.1 ADC0832模/数转换器的介绍 317
14.3.2数字电压表 319
14.4模拟温度传感器AD590 323
14.4.1温度计硬件电路设计 323
14.4.2温度计软件设计 325
14.5 数/模转换器DAC0832的应用 329
14.5.1 DAC0832的介绍 330
14.5.2引脚说明 330
14.5.3简易波形发生器 331
14.6 数/模转换器MAX531的应用 335
14.6.1 MAX531的介绍 335
14.6.2 MAX531的引脚说明 335
14.6.3键控高精度波形发生器 339
第15章 实时多任务操作系统 RTX51 344
15.1 RTX51、单片机与我就好比管理制度、员工与老板 344
15.2你在家给老婆做饭吃吗 345
15.3没有操作系统的日子 346
15.4操作系统我们爱你 350
15.4.1 main()悄然离去 353
15.4.2每个任务都可以自生自灭 354
15.4.3阿范是培训班中所有学员共有的服务者 354
15.4.4 RTX51 Tiny的系统函数 358
15.4.5实践才有话语权 363
附录A特殊功能寄存器 366
附录B MCS-51单片机指令表 370
附录C C51库函数 375
附录D三极管及其典型应用简介 391
D.1开场白 391
D.2三极管——电子电路里的“大哥大” 392
D.2.1常见的三极管外形 392
D.2.2三极管的两种结构类型 392
D.2.3三极管的放大作用 393
D.2.4三极管的三个工作区 394
D.3三极管放大电路 395
D.3.1共发射极放大电路 395
D.3.2共发射极放大电路典型应用 398
附录E集成运算放大器及其典型应用简介 401
E.1集成运算放大器简介 401
E.2集成运算放大器理想模型 402
E.3集成运放的典型应用 402
E.3.1比例运算 403
E.3.2比较器 404
附录F稳压电源 406
附录G电阻标称值 408
附录H常用电子元件 411
附录I书中使用的电路板 417
附录J MCS-51程序生成器软件 419
参考文献 420