第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 单片机学习的预备知识 4
1.2.1 数制及其转换 4
1.2.2 有符号数的表示方法 5
1.2.3 位、字节和字 6
1.2.4 BCD码 7
1.2.5 ASCII码 7
1.2.6 基本逻辑门电路 8
1.3 Proteus应用简介 9
1.3.1 ISIS模块应用举例 9
1.3.2 ARES模块应用举例 13
本章小结 16
思考与练习题1 17
第2章 MCS-51单片机的结构及原理 19
2.1 MCS-51单片机的结构 19
2.1.1 MCS-51单片机的内部结构 19
2.1.2 MCS-51外部引脚及功能 21
2.2 MCS-51的存储器结构 23
2.2.1 存储器划分方法 23
2.2.2 程序存储器 24
2.2.3 数据存储器 25
2.3 单片机的复位、时钟与时序 28
2.3.1 复位与复位电路 28
2.3.2 时钟电路 29
2.3.3 单片机时序 29
2.4 并行I/O口 31
2.4.1 P1口 33
2.4.2 P3口 34
2.4.3 P0口 34
本章小结 36
思考与练习题2 36
第3章 单片机的C51基础知识 39
3.1 C51语言概述 39
3.2 Keil软件开发工具 40
3.2.1 μVision5的软件界面 41
3.2.2 μVision5的使用方法 41
3.3 C51的基本执行语句 45
3.3.1 表达式语句 46
3.3.2 选择语句 49
3.3.3 循环语句 54
3.3.4 注释语句 59
3.4 C51的变量 60
3.4.1 变量概述 60
3.4.2 变量名 60
3.4.3 数据类型 61
3.4.4 存储类型 66
3.4.5 存储种类 68
3.5 C51的指针 70
3.6 C51的数组 72
3.6.1 一维数组的定义 72
3.6.2 一维数组的使用 73
3.6.3 字符数组 76
3.6.4 二维数组 77
3.7 C51的函数 78
3.7.1 函数的基本概念 78
3.7.2 函数的定义 79
3.7.3 函数的调用 80
本章小结 82
思考与练习题3 83
第4章 单片机I/O口方式的应用 85
4.1 C51联合仿真方法 85
4.2 I/O端口的简单应用 89
4.2.1 发光二极管与应用编程 89
4.2.2 数码管静态显示原理与编程 95
4.3 I/O端口的进阶实践 101
4.3.1 数码管动态显示原理与编程 101
4.3.2 行列式键盘原理与编程 103
本章小结 109
思考与练习题4 110
第5章 单片机的中断系统 113
5.1 中断的概念 113
5.2 中断控制系统 116
5.2.1 中断系统的结构 116
5.2.2 中断控制 117
5.3 中断处理过程 121
5.4 中断的编程和应用举例 123
5.4.1 中断程序设计举例 123
5.4.2 扩充外部中断源 130
本章小结 132
思考与练习题5 132
第6章 单片机的定时/计数器 135
6.1 定时/计数器的结构与工作原理 135
6.1.1 定时/计数器的基本原理 135
6.1.2 定时/计数器的结构 136
6.2 定时/计数器的控制 137
6.2.1 TMOD寄存器 137
6.2.2 TCON寄存器 138
6.3 定时/计数器的工作方式 139
6.3.1 方式1 139
6.3.2 方式2 142
6.3.3 方式0 146
6.3.4 方式3 146
6.4 定时/计数器的编程和应用 147
本章小结 155
思考与练习题6 156
第7章 单片机的串行口及应用 158
7.1 串行通信概述 158
7.2 MC S-51的串行口控制器 160
7.2.1 串行口内部结构 160
7.2.2 串行口控制寄存器 161
7.3 串行工作方式0及其应用 163
7.4 串行工作方式1及其应用 165
7.5 串行工作方式2及其应用 168
7.6 串行工作方式3及其应用 171
本章小结 177
思考与练习题7 177
第8章 单片机接口技术 180
8.1 单片机的系统总线 180
8.1.1 三总线结构 180
8.1.2 地址锁存原理及实现 181
8.2 简单并行I/O口扩展 183
8.2.1 访问扩展端口的软件方法 183
8.2.2 简单并行输出接口的扩展 184
8.2.3 简单并行输入接口的扩展 187
8.3 可编程并行I/O口扩展 189
8.3.1 8255A的内部结构、引脚及地址 189
8.3.2 8255A的控制字 191
8.4 D/A转换与DAC0832应用 194
8.4.1 DAC0832的工作原理 195
8.4.2 DAC0832与单片机的接口及编程 196
8.5 A/D转换与ADC0809应用 201
8.5.1 逐次逼近式模数转换器的工作原理 201
8.5.2 ADC0809与单片机的接口及编程 202
8.6 开关量功率接口技术 205
8.6.1 开关量功率驱动接口 205
8.6.2 开关量功率驱动接口应用举例 208
本章小结 212
思考与练习题8 213
第9章 单片机应用系统的设计与开发 216
9.1 单片机系统的设计开发过程 216
9.1.1 单片机典型应用系统 216
9.1.2 单片机应用系统的开发过程 217
9.2 单片机系统的可靠性技术 222
9.2.1 硬件抗干扰技术概述 222
9.2.2 软件抗干扰技术概述 223
9.3 单片机系统设计开发应用举例——智能仪器 224
9.3.1 功能概述 224
9.3.2 硬件电路设计 225
9.3.3 软件系统设计 225
9.3.4 仿真开发过程 229
9.4 单片机串行扩展单元介绍 236
9.4.1 串行A/D转换芯片MAX 124及应用 236
9.4.2 串行D/A转换芯片LTC 145X及应用 240
9.4.3 串行E2 PROM存储器AT24CXX及应用 242
9.4.4 字符型液晶显示模块LM 1602及应用 248
9.4.5 串行日历时钟芯片DS1302及应用 252
本章小结 260
思考与练习题9 260
附录A 实验指导 264
实验1计数显示器 264
实验2指示灯/开关控制器 265
实验3指示灯循环控制 267
实验4指示灯/数码管的中断控制 268
实验5电子秒表显示器 269
实验6双机通信及PCB设计 271
实验7直流数字电压表设计 273
实验8步进电机控制设计 274
附录B 阅读材料 276
【阅读材料1】 ISIS模块的电路绘图与仿真运行方法 276
【阅读材料2】在μVsion5中创建C51程序的方法 284
【阅读材料3】 C51程序调试方法 292
【阅读材料4】 μVision5与ISIS的联合仿真 298
【阅读材料5】基于ARES模块的PCB设计方法 302
【阅读材料6】 ISIS中的虚拟信号发生器 314
【阅读材料7】 ISIS中的虚拟仪器 318
【阅读材料8】步进电机控制方法 325
附录C 常用的C51标准库函数 327
参考文献 331