第1章 51单片机基本组成 1
1.1 单片机内部结构与引脚 1
1.1.1 单片机的内部结构组成 1
1.1.2 单片机的引脚 3
1.2 单片机的存储器 5
1.3 单片机的最小系统电路 6
1.3.1 单片机的工作电源 7
1.3.2 单片机的复位电路 7
1.3.3 单片机的时钟电路 7
第2章 走进单片机开发的世界 8
2.1 单片机C语言入门 8
2.1.1 C语言的特点 8
2.1.2 单片机采用C语言编程的好处 8
2.1.3 如何学习单片机C语言 10
2.1.4 一个简单的流水灯程序 10
2.1.5 利用C51库函数实现流水灯 13
2.1.6 小结 14
2.2 低成本单片机开发板介绍 15
2.2.1 低成本单片机开发板1 15
2.2.2 低成本单片机开发板2 17
2.2.3 低成本单片机开发板3 18
2.2.4 低成本单片机开发板4 18
2.2.5 单片机仿真器 19
2.3 单片机开发六步走 20
2.3.1 第一步:硬件电路设计与制作 20
2.3.2 第二步:编写程序 20
2.3.3 第三步:编译程序 26
2.3.4 第四步:仿真调试 27
2.3.5 第五步:烧写程序 28
2.3.6 第六步:脱机运行检查 29
第3章 单片机C语言重点难点解析 30
3.1 C51基本知识 30
3.1.1 标识符和关键字 30
3.1.2 数据类型 32
3.1.3 常量 35
3.1.4 变量 36
3.1.5 运算符和表达式 38
3.1.6 表达式语句和复合语句 42
3.1.7 条件选择语句 43
3.1.8 循环语句 45
3.2 C51函数 50
3.2.1 函数概述 50
3.2.2 函数的参数和返回值 53
3.2.3 函数的调用 53
3.2.4 局部变量和全局变量 55
3.2.5 变量的存储种类 56
3.3 C51数组 57
3.3.1 一维数组 57
3.3.2 二维数组 59
3.3.3 字符数组 60
3.4 C51指针 61
3.4.1 指针概述 61
3.4.2 一般指针和基于存储器的指针 65
3.4.3 绝对地址的访问 66
3.5 C51结构、共同体与枚举 67
3.5.1 结构 67
3.5.2 共同体 70
3.5.3 枚举 70
第4章 中断系统实例演练 72
4.1 中断系统基本知识 72
4.1.1 51单片机的中断源 72
4.1.2 中断的控制 73
4.1.3 中断的响应 76
4.1.4 中断的撤除 76
4.1.5 C51中断函数的写法 77
4.2 中断系统实例解析 77
4.2.1 实例解析1——外中断练习1 77
4.2.2 实例解析2——外中断练习2 79
第5章 定时/计数器实例演练 81
5.1 定时/计数器基本知识 81
5.1.1 什么是计数和定时 81
5.1.2 定时/计数器的组成 82
5.1.3 定时/计数器的寄存器 82
5.1.4 定时/计数器的工作方式 84
5.2 定时/计数器实例演练 88
5.2.1 实例解析1——定时器中断方式实验 88
5.2.2 实例解析2——定时器查询方式实验 90
5.2.3 实例解析3——实时显示计数值 91
5.2.4 实例解析4——单片机唱歌 93
5.2.5 实例解析5——秒表 96
第6章 串行通信实例演练 99
6.1 串行通信基本知识 99
6.1.1 串行通信基本概念 99
6.1.2 51单片机串行口的结构 104
6.1.3 串行通信控制寄存器 105
6.1.4 串行口工作方式 106
6.2 串行通信实例演练 109
6.2.1 实例解析1——单片机向PC送字符串 109
6.2.2 实例解析2——PC向单片机发号施令 112
6.2.3 实例解析3——PC和单片机进行串行通信(不进行奇偶校验) 113
6.2.4 实例解析4——PC和单片机进行串行通信(进行奇偶校验) 115
第7章 键盘接口实例演练 118
7.1 键盘接口电路基本知识 118
7.1.1 键盘的工作原理 118
7.1.2 键盘与单片机的连接形式 119
7.1.3 键盘的扫描方式 119
7.2 键盘接口电路实例演练 120
7.2.1 实例解析1——按键扫描方式练习 120
7.2.2 实例解析2——可控流水灯 124
7.2.3 实例解析3——用数码管显示矩阵按键的键号 126
7.2.4 实例解析4——单片机电子琴 131
第8章 LED数码管实例演练 137
8.1 LED数码管基本知识 137
8.1.1 LED数码管的结构 137
8.1.2 LED数码管的显示码 139
8.1.3 LED数码管的显示方式 139
8.2 LED数码管实例演练 143
8.2.1 实例解析1——程序控制动态显示 143
8.2.2 实例解析2——定时中断动态显示 146
8.2.3 实例解析3——简易数码管电子钟 149
8.2.4 实例解析4——具有闹铃功能的数码管电子钟 155
第9章 LCD显示实例演练 161
9.1 字符型LCD基本知识 161
9.1.1 字符型LCD引脚功能 161
9.1.2 字符型LCD内部结构 162
9.1.3 字符型LCD控制指令 164
9.1.4 字符型LCD与单片机的连接 168
9.1.5 字符型LCD驱动程序软件包的制作 168
9.2 字符型LCD实例解析 171
9.2.1 实例解析1——1602 LCD显示字符串 171
9.2.2 实例解析2——1602 LCD移动显示字符串 172
9.2.3 实例解析3——1602 LCD滚动显示字符串 174
9.2.4 实例解析4——1602 LCD电子钟 175
9.3 12864点阵型LCD介绍与实例演练 179
9.3.1 12864点阵型LCD介绍 180
9.3.2 实例解析5——12864 LCD显示汉字 187
9.3.3 实例解析6——12864 LCD显示图形 188
第10章 时钟芯片DS1302实例演练 191
10.1 时钟芯片DS1302基本知识 191
10.1.1 DS1302介绍 191
10.1.2 DS1302的控制命令字 192
10.1.3 DS1302的寄存器 192
10.1.4 DS1302的数据传输方式 194
10.1.5 DS1302驱动程序软件包的制作 194
10.2 DS1302读写实例演练 195
10.2.1 实例解析1——DS 1302数码管电子钟 195
10.2.2 实例解析2——DS 1302 LCD电子钟 198
第11章 EEPROM存储器实例演练 202
11.1 24CXX实例解析 202
11.1.1 24CXX数据存储器介绍 202
11.1.2 12C总线驱动程序软件包的制作 206
11.1.3 实例解析1——具有记忆功能的计数器 206
11.1.4 实例解析2——花样流水灯 208
11.2 STC89Cxx内部EEPROM的使用 210
11.2.1 STC89C系列单片机内部EEPROM介绍 210
11.2.2 STC89C系列单片机内部EEPROM驱动程序软件包的制作 210
11.2.3 实例解析3——STC89C系列单片机内部EEPROM演示 211
第12章 单片机看门狗与低功耗模式实例演练 214
12.1 单片机看门狗实例演练 214
12.1.1 单片机看门狗基本知识 214
12.1.2 看门狗实例演练 215
12.2 单片机低功耗模式实例演练 217
12.2.1 单片机低功耗模式基本知识 217
12.2.2 低功耗模式实例演练 217
第13章 温度传感器DS18B20实例解析 221
13.1 温度传感器DS18B20基本知识 221
13.1.1 温度传感器DS18B20介绍 221
13.1.2 温度传感器DS18B20驱动程序软件包的制作 224
13.2 DS18B20数字温度计实例解析 225
13.2.1 实例解析1——LED数码管数字温度计 225
13.2.2 实例解析2——LCD数字温度计 228
13.2.3 实例解析3——LCD温度控制器 231
第14章 红外遥控和无线遥控实例演练 241
14.1 红外遥控基本知识 241
14.1.1 红外遥控系统 241
14.1.2 红外遥控的编码与解码 242
14.1.3 DD-900实验开发板遥控电路介绍 243
14.2 红外遥控实例解析 243
14.2.1 实例解析1——LED数码管显示遥控器键值 243
14.2.2 实例解析2——遥控器控制花样流水灯 246
14.3 无线遥控电路介绍与演练 250
14.3.1 无线遥控电路基础知识 250
14.3.2 无线遥控模块介绍 252
14.3.3 实例解析3——遥控模块控制LED灯和蜂鸣器 253
第15章 A/D和D/A转换实例演练 256
15.1 A/D转换电路介绍及实例解析 256
15.1.1 A/D转换电路介绍 256
15.1.2 实例解析1——LED数码管显示电位器检测的AD值 258
15.2 D/A转换电路及实例演练 259
15.2.1 D/A转换电路介绍 259
15.2.2 实例解析2—— D/A转换实验 260
第16章 步进电机和直流电机实例演练 262
16.1 步进电机实例解析 262
16.1.1 步进电机基本知识 262
16.1.2 实例解析1——步进电机正转与反转 266
16.1.3 实例解析2——步进电机加速与减速运转 268
16.1.4 实例解析3——用按键控制步进电机正反转 270
16.1.5 实例解析4——用按键控制步进电机转速 272
16.2 直流电机介绍及实例解析 276
16.2.1 直流电机基本知识 276
16.2.2 实例解析5——用按键控制直流电机转速 279
第17章 LED点阵屏实例解析 281
17.1 简易LED点阵屏开发实例 281
17.1.1 LED点阵屏基本知识 281
17.1.2 LED点阵屏实例演练 288
17.2 双核LED点阵屏开发实例 303
17.2.1 双核LED点阵屏开发板及汉字显示原理 303
17.2.2 双核LED点阵屏实例演练 308
第18章 ISD1700语音电路实例演练 313
18.1 ISD1700语音电路基础知识 313
18.1.1 ISD1700系列芯片的基本功能及特性 313
18.1.2 ISD1700引脚定义 314
18.1.3 ISD1700语音模块说明及其工作模式 316
18.2 ISD1700实例演练 318
18.2.1 实现的功能 318
18.2.2 源程序 318
第19章 单片机综合实例演练 321
19.1 12864万年历实例演练 321
19.1.1 硬件电路 321
19.1.2 实现的功能 321
19.1.3 源程序 322
19.2 串口测温实例演练 323
19.2.1 PC与单片机串行通信介绍 323
19.2.2 串口测温程序实例演练 331
19.3 nRF905、nRF2401实例演练 337
19.3.1 无线通信温度监控系统的组成和功能 337
19.3.2 nRF905介绍 338
19.3.3 基于nRF905无线通信温度监控系统的设计 341
19.4 智能小车开发 346
19.4.1 智能小车介绍 346
19.4.2 智能小车开发实例 347
第20章 单片机高级开发指南与程序错误剖析 352
20.1 USB接口设备的开发 352
20.1.1 USB接口基本知识 352
20.1.2 基于PDIUSBD 12的应用系统开发 353
20.2 FM数字调谐收音机的开发 354
20.2.1 TEA5767介绍 354
20.2.2 硬件电路设计 355
20.2.3 软件设计 356
20.3 GSM/GPRS模块的开发 357
20.3.1 GSM/GPRS模块介绍 357
20.3.2 由GSM/GPRS模块组成的应用系统 357
20.4 GPS模块的开发 358
20.4.1 GPS概述 358
20.4.2 GPS原理 359
20.4.3 硬件与软件设计 359
20.5 超声波测距仪的开发 359
20.5.1 超声波测距基本原理 359
20.5.2 超声波测距仪硬件设计 360
20.5.3 软件设计基本思路 362
20.6 TFT触摸屏模块的开发 362
20.6.1 TFT触摸屏模块介绍 362
20.6.2 供电及连接说明 363
20.6.3 TFT触摸屏模块程序设计 364
20.7 非接触式IC卡门禁系统的开发 366
20.7.1 非接触式IC卡门禁系统的组成 366
20.7.2 Mifarel卡 366
20.7.3 读写芯片MF RC522介绍 367
20.7.4 软件设计 368
20.8 程序错误、热启动与冷启动剖析 368
20.8.1 程序错误的分类 368
20.8.2 程序错误的常用排错方法 371
20.8.3 热启动与冷启动探讨 374