第1章 单片机基础知识 1
1.1 单片机的应用与发展 1
1.1.1 单片机的简单应用 1
1.1.2 单片机的发展历史 3
1.2 单片机的分类 6
1.3 AT89C52单片机简介 7
1.3.1 AT89C52单片机的引脚功能 8
1.3.2 AT89C52单片机的内部结构 9
1.3.3 AT89C52单片机的I/O接口部分和特殊功能部分 16
1.4 AT89C52单片机的时钟与复位电路 17
1.4.1 复位操作和复位电路 17
1.4.2 振荡电路和时钟 19
1.4.3 AT89C52单片机的机器周期 20
1.5 AT89C52单片机的低功耗工作方式 21
1.6 常用的名词术语和二进制编码 23
1.7 指令程序和指令执行 27
本章小结 27
思考题与习题 28
第2章 指令系统及汇编语言程序设计 29
2.1 寻址方式 29
2.2 指令系统 34
2.2.1 数据传送指令 34
2.2.2 算术运算指令 37
2.2.3 逻辑运算指令 39
2.2.4 位(布尔)操作类指令 41
2.2.5 控制转移类指令 42
2.3 汇编语言指令格式及汇编语言程序设计基础 46
2.3.1 汇编语言执行指令格式 46
2.3.2 汇编伪指令 47
2.3.3 汇编语言的特点 49
2.3.4 汇编语言程序设计的步骤 49
本章小结 49
思考题与习题 49
第3章 单片机的C语言程序设计 51
3.1 C51的程序结构 51
3.2 数据类型、存储类型及存储模式 53
3.2.1 数据类型 53
3.2.2 常量和变量 54
3.2.3 C51的存储类型及存储模式 55
3.2.4 特殊功能寄存器、并行接口及位变量的定义 58
3.3 运算符、函数及程序流程控制 61
3.3.1 C51的运算符 61
3.3.2 C51的函数 62
3.3.3 C51的流程控制语句 65
3.4 C51的构造数据类型 68
3.4.1 数组 68
3.4.2 结构 69
3.4.3 联合 70
3.4.4 枚举 71
3.4.5 指针 71
3.5 C51实例分析及混合编程 74
3.5.1 C51实例分析 74
3.5.2 混合编程 75
3.6 Keil C51简介 78
3.6.1 项目文件的建立、设置与目标文件的获得 78
3.6.2 程序的调试 81
本章小结 85
思考题与习题 85
第4章 单片机的I/O口及Proteus简介 87
4.1 P0~P3端口的结构与功能 87
4.1.1 P0端口的结构与功能 87
4.1.2 P1端口的结构与功能 88
4.1.3 P2端口的结构与功能 89
4.1.4 P3端口的结构与功能 90
4.2 Proteus简介 91
4.2.1 Proteus ISIS的工作界面 92
4.2.2 Proteus ISIS的基本操作 92
4.2.3 Proteus ISIS的原理图绘制和仿真 96
4.2.4 Proteus与Keil C相结合的设计和仿真 98
4.3 I/O口应用实例与仿真 105
4.3.1 LED与数码管简介 105
4.3.2 LED点阵显示屏 107
4.3.3 简易键盘的设计 109
4.3.4 I/O口的实例仿真 111
本章小结 125
思考题与习题 125
第5章 单片机的中断系统与实例仿真 126
5.1 中断系统结构 126
5.1.1 中断概述 126
5.1.2 中断系统结构与中断控制 127
5.2 中断的实现过程 132
5.2.1 中断采样 133
5.2.2 中断查询 133
5.2.3 中断响应 133
5.2.4 中断服务 135
5.2.5 中断返回 136
5.2.6 中断请求的撤销 137
5.3 中断系统实例与仿真 138
本章小结 148
思考题与习题 149
第6章 定时/计数器原理及实例仿真 150
6.1 定时/计数器0和1结构和工作原理 150
6.1.1 定时/计数器0和1 150
6.1.2 与定时/计数器0和定时/计数器1相关的特殊功能寄存器 151
6.1.3 定时/计数器0和定时/计数器1的工作模式 153
6.2 定时/计数器2(T/C2)的结构和工作原理 155
6.2.1 与定时/计数器2相关的特殊功能寄存器 155
6.2.2 定时/计数器2的工作模式 156
6.3 仿真实例 160
6.3.1 定时器工作方式实例 160
6.3.2 计数器工作方式实例 166
6.3.3 捕捉模式实例 168
6.3.4 定时/计数器复杂应用实例 174
6.4 看门狗定时器 178
6.4.1 看门狗简介 178
6.4.2 看门狗的工作原理 179
6.4.3 看门狗的使用 179
6.4.4 高级看门狗 180
本章小结 180
思考题与习题 181
第7章 单片机的串行通信与实例仿真 182
7.1 串行通信概述 182
7.2 串行接口结构与工作原理 184
7.2.1 AT89C52单片机的串行接口结构 184
7.2.2 AT89C52单片机的串行通信过程 185
7.3 串行接口的控制寄存器与工作方式 185
7.3.1 串行接口的控制寄存器 185
7.3.2 串行口的工作方式 188
7.3.3 波特率的确定 191
7.3.4 定时/计数器T2产生波特率 192
7.4 串行接口的实例与仿真 193
7.5 单片机多机通信 200
7.6 单片机与PC机串行口通信 207
7.6.1 RS232C接口 207
7.6.2 RS485接口 212
7.6.3 Proteus实现的PC机与单片机的串行通信仿真 216
7.6.4 单片机与计算机的串行通信技术 221
本章小结 232
思考题与习题 232
第8章 单片机扩展技术与实例仿真 234
8.1 存储器的扩展实例与仿真 234
8.1.1 数据存储器的扩展 234
8.1.2 程序存储器的扩展 239
8.2 I/O接口的扩展实例与仿真 243
8.2.1 可编程接口芯片8255A 243
8.2.2 8255A的应用及仿真 249
8.3 D/A、A/D接口应用实例与仿真 252
8.3.1 D/A转换器 252
8.3.2 A/D转换器 260
本章小结 267
习题与思考题 267
第9章 单片机高级应用实例 269
9.1 Mifare射频卡读/写器的设计 269
9.1.1 Mifare卡的内部结构 270
9.1.2 Mifare卡读/写器主要模块的设计 272
9.1.3 Mifare卡操作流程 277
9.1.4 FM1702SL密钥的设计与冲突检测措施 278
9.1.5 Mifare卡读/写软件设计 280
9.2 基于nRF905的无线传输系统设计 287
9.2.1 nRF905简介 288
9.2.2 nRF905电路原理图 292
9.2.3 nRF905固件程序设计 294
本章小结 301
思考题与习题 301
第10章 程序烧录与样机开发 302
10.1 项目开发流程 302
10.1.1 项目开发概述 302
10.1.2 需求分析 302
10.1.3 系统总体设计 305
10.2 硬件电路设计与焊接 306
10.2.1 准备工作 306
10.2.2 最小系统硬件电路焊接 308
10.2.3 电路板焊接效果检查 309
10.3 软件开发 310
10.3.1 软件开发过程 311
10.3.2 构建软件项目 312
10.3.3 μVision5软件调试 316
10.4 程序存储器编程 321
10.4.1 程序存储器编程方法 321
10.4.2 在线编程原理 322
10.4.3 STC系列单片机的程序下载 324
10.5 综合调试 326
10.6 综合实例——掉电不丢失日历时钟 327
10.6.1 系统功能要求 327
10.6.2 功能分析及主要元器件确定 327
10.6.3 主要元器件性能介绍 328
10.6.4 硬件设计 334
10.6.5 软件设计 335
本章小结 337
思考题与习题 337
附录A 主要单片机生产商网址及相关信息网址 338
附录B 常用数码对应关系表 339
附录C Proteus VSM元件库和常用元器件说明 340
附录D C语言的关键字 343
附录E C51的库函数 345
附录F MCS-51指令表 356
参考文献 360