第1章 单片机基础知识概述 1
1.1 单片机概述 1
1.1.1 单片机及其发展概况 1
1.1.2 单片机的特点和应用 2
1.1.3 单片机的发展趋势 3
1.1.4 MCS-51单片机的学习 3
1.2 单片机学习的预备知识 3
1.2.1 数制及其转换 4
1.2.2 有符号数的表示方法 5
1.2.3 位、字节和字 6
1.2.4 BCD码 6
1.2.5 ASCII码 7
1.2.6 基本逻辑门电路 7
1.3 Proteus应用简介 8
1.3.1 ISIS模块应用举例 9
1.3.2 ARES模块应用举例 12
本章小结 15
思考与练习题1 16
第2章 MCS-51单片机的结构及原理 18
2.1 MCS-51单片机的结构 18
2.1.1 MCS-51单片机的内部结构 18
2.1.2 MCS-51外部引脚及功能 20
2.2 MCS-5 1的存储器结构 22
2.2.1 存储器划分方法 22
2.2.2 程序存储器 23
2.2.3 数据存储器 24
2.3 单片机的复位、时钟与时序 26
2.3.1 复位与复位电路 26
2.3.2 时钟电路 27
2.3.3 单片机时序 28
2.4 并行I/O口 30
2.4.1 P1 口 32
2.4.2 P3 口 33
2.4.3 P0 口 33
2.4.4 P2口 34
本章小结 35
思考与练习题2 35
第3章 单片机的汇编语言与程序设计 38
3.1 汇编语言概述 38
3.1.1 汇编语言指令格式 38
3.1.2 描述操作数的简记符号 39
3.2 MCS-51指令系统简介 40
3.2.1 数据传送与交换类指令 40
3.2.2 算术运算类指令 43
3.2.3 逻辑运算及移位类指令 46
3.2.4 控制转移类指令 49
3.2.5 寻址方法 52
3.2.6 伪指令 53
3.3 汇编语言的编程方法 53
3.3.1 汇编语言程序设计步骤 53
3.3.2 汇编程序应用举例 54
本章小结 57
思考与练习题3 57
第4章 单片机的C51语言 60
4.1 C51的程序结构 60
4.1.1 C51语言概述 60
4.1.2 C51的程序结构 60
4.2 C51的数据结构 62
4.2.1 C51的变量 62
4.2.2 C51的指针 67
4.3 C51与汇编语言的混合编程 68
4.3.1 在C51中调用汇编程序 68
4.3.2 在C51中嵌入汇编代码 70
4.4 C51仿真开发环境 71
4.4.1 Keil的编译环境μVision3 71
4.4.2 基于Proteus和KeilC的程序开发过程 72
4.5 C5 1应用编程初步 74
4.5.1 I/O端口的简单应用 74
4.5.2 I/O端口的进阶实践 83
本章小结 88
思考与练习题4 89
第5章 单片机的中断系统 92
5.1 中断的概念 92
5.2 中断控制系统 95
5.2.1 中断系统的结构 95
5.2.2 中断控制 96
5.3 中断处理过程 100
5.4 中断的编程和应用举例 101
5.4.1 中断程序设计举例 101
5.4.2 扩充外部中断源 108
本章小结 109
思考与练习题5 110
第6章 单片机的定时/计数器 113
6.1 定时/计数器的结构与工作原理 113
6.1.1 定时/计数器的基本原理 113
6.1.2 定时/计数器的结构 114
6.2 定时/计数器的控制 115
6.2.1 TMOD寄存器 115
6.2.2 TCON寄存器 116
6.3 定时/计数器的工作方式 117
6.3.1 方式1 117
6.3.2 方式2 120
6.3.3 方式0 123
6.3.4 方式3 124
6.4 定时/计数器的编程和应用 125
本章小结 133
思考与练习题6 133
第7章 单片机的串行口及应用 136
7.1 串行通信概述 136
7.2 MCS-51的串行口控制器 138
7.2.1 串行口内部结构 138
7.2.2 串行口控制寄存器 139
7.3 串行工作方式0及其应用 140
7.4 串行工作方式1及其应用 143
7.5 串行工作方式2及其应用 146
7.6 串行工作方式3及其应用 149
本章小结 154
思考与练习题7 155
第8章 单片机接口技术 158
8.1 单片机的系统总线 158
8.1.1 三总线结构 158
8.1.2 地址锁存原理及实现 159
8.2 简单并行I/O口扩展 161
8.2.1 访问扩展端口的软件方法 161
8.2.2 简单并行输出接口的扩展 163
8.2.3 简单并行输入接口的扩展 165
8.3 可编程并行I/O口扩展 167
8.3.1 8255A的内部结构、引脚及地址 167
8.3.2 8255A的控制字 169
8.4 D/A转换与DAC0832应用 172
8.4.1 DAC0832的工作原理 173
8.4.2 DAC0832与单片机的接口及编程 174
8.5 A/D转换与ADC0809应用 179
8.5.1 逐次逼近式模数转换器的工作原理 179
8.5.2 ADC0809与单片机的接口及编程 180
8.6 开关量功率接口技术 183
8.6.1 开关量功率驱动接口 183
8.6.2 开关量功率驱动接口应用举例 186
本章小结 190
思考与练习题8 191
第9章 单片机应用系统的设计与开发 194
9.1 单片机系统的设计开发过程 194
9.1.1 单片机典型应用系统 194
9.1.2 单片机应用系统的开发过程 195
9.2 单片机系统的可靠性技术 200
9.2.1 硬件抗干扰技术概述 200
9.2.2 软件抗干扰技术概述 201
9.3 单片机系统设计开发应用举例——智能仪器 202
9.3.1 功能概述 202
9.3.2 硬件电路设计 203
9.3.3 软件系统设计 203
9.3.4 仿真开发过程 207
9.4 单片机串行扩展单元介绍 214
9.4.1 串行A/D转换芯片MAX124X及应用 214
9.4.2 串行D/A转换芯片LTC145X及应用 217
9.4.3 串行E2pROM存储器AT24CXX及应用 221
9.4.4 字符型液晶显示模块LM1602及应用 226
9.4.5 串行日历时钟芯片DS1302及应用 229
本章小结 238
思考与练习题9 238
附录A实验指导 242
实验1计数显示器 242
【阅读材料1】ISIS模块的电路绘图与仿真运行方法 243
实验2指示灯/开关控制器 253
【阅读材料2】ISIS模块的汇编程序创建与调试方法 254
实验3指示灯循环控制 257
【阅读材料3】在μVision3中创建C51程序的方法 259
实验4指示灯/数码管的中断控制 267
【阅读材料4】C51程序调试方法 268
实验5 电子秒表显示器 273
【阅读材料5】μVision3与ISIS的联合仿真 275
实验6双机通信及PCB设计 278
【阅读材料6】基于ARES模块的PCB设计方法 280
实验7直流数字电压表设计 293
【阅读材料7】ISIS中的虚拟信号发生器 295
实验8步进电机控制设计 300
【阅读材料8】步进电机控制方法 301
参考文献 303