第1章 单片机概述 1
1.1 单片机概况 1
1.1.1 单片机的内涵及分类 1
1.1.2 单片机的发展概况 2
1.1.3 单片机的特点及发展趋势 4
1.1.4 单片机的应用领域 5
1.2 MCS-51系列单片机 6
1.3 其他常用的单片机 7
1.3.1 AT89C5x/AT89S5x系列单片机 7
1.3.2 STC系列单片机 9
1.3.3 AVR系列单片机 10
1.3.4 PIC系列单片机 11
思考与练习题1 11
第2章 AT89S51单片机的硬件结构及特性 13
2.1 AT89S51的内部结构及外部引脚特性 13
2.1.1 AT89S51单片机的内部功能部件 14
2.1.2 AT89S51单片机的外部引脚特性 15
2.2 AT89S51的中央处理器 18
2.2.1 运算器 18
2.2.2 控制器 19
2.3 AT89S51存储器的结构 20
2.3.1 程序存储器 20
2.3.2 数据存储器 21
2.3.3 特殊功能寄存器 21
2.3.4 位寻址区 24
2.4 AT89S51的时钟电路与时序 26
2.4.1 时钟电路 26
2.4.2 时钟周期、机器周期、指令周期与指令时序 27
2.5 AT89S51的工作方式 28
2.5.1 复位工作方式 28
2.5.2 程序执行工作方式 29
2.5.3 空闲工作方式 30
2.5.4 掉电工作方式 31
2.5.5 编程和校验工作方式 31
2.6 AT89S51单片机的最小系统 34
思考与练习题2 35
第3章 AT89S51单片机的高级语言程序设计 37
3.1 Keil C51单片机程序开发 37
3.1.1 Keil C51程序开发综述 37
3.1.2 Keil C51程序开发流程 38
3.1.3 Keil C51与标准C的区别 38
3.2 C51常用的编程元素 40
3.2.1 数据类型与运算 40
3.2.2 C51语言的构造数据类型及预处理指令 46
3.2.3 C51程序控制结构 49
3.2.4 C51语言中的基本运算 53
3.2.5 C51语言中的函数 55
3.3 Keil C51程序设计实例 59
思考与练习题3 61
第4章 AT89S51单片机的汇编语言程序设计 62
4.1 AT89S51的汇编语言简介 62
4.1.1 单片机的汇编语言 62
4.1.2 汇编语言语句及格式 62
4.1.3 汇编语言常用的伪指令 63
4.2 AT89S51的指令系统 65
4.2.1 AT89S51的指令系统概述 65
4.2.2 指令的寻址方式 66
4.2.3 指令系统简介 68
4.3 汇编语言程序设计实例 73
思考与练习题4 75
第5章 Keil C51集成开发环境的使用 76
5.1 Keil μVision5软件简介及安装 76
5.1.1 Keil μVision5软件的安装 76
5.1.2 Keil μVision5软件功能环境 77
5.2 Keil μVision5工程的创建步骤 78
5.3 Keil μVision5程序调试 83
思考与练习题5 87
第6章 AT89S51单片机的内部模块原理及应用 88
6.1 AT89S51单片机的中断系统及应用 88
6.1.1 单片机的中断系统 88
6.1.2 单片机的中断请求寄存器 89
6.1.3 单片机的中断允许及优先级控制 90
6.1.4 中断响应的条件及过程 92
6.1.5 外部中断的响应时间 93
6.1.6 外部中断的触发方式 93
6.1.7 中断请求的撤销 94
6.1.8 中断函数 95
6.1.9 C51在中断应用中的编程实例 96
6.1.10 多外部中断源系统设计 98
6.2 AT89S51单片机的定时器/计数器 99
6.2.1 定时器/计数器的结构 99
6.2.2 定时器/计数器的工作模式、工作方式及控制 100
6.2.3 定时器/计数器的4种工作方式 101
6.2.4 定时器/计数器对外部计数输入信号的要求 104
6.2.5 定时器/计数器的编程和应用 104
6.2.6 门控位GATE的应用——测量脉冲宽度 107
6.3 AT89S51的串行口及应用 108
6.3.1 串行口的结构及工作原理 108
6.3.2 串行口的4种工作方式 110
6.3.3 串行通信波特率的制定 113
6.3.4 串行口的应用举例 114
6.4 看门狗定时器的应用 120
思考与练习题6 122
第7章 AT89S51单片机的通用外围电路的扩展 123
7.1 键盘的扩展 123
7.1.1 键盘的基本原理 123
7.1.2 键盘的工作方式 125
7.1.3 独立式键盘 126
7.1.4 矩阵式键盘 128
7.1.5 双功能键的设计 130
7.2 显示器的扩展 130
7.2.1 LED显示器的扩展 131
7.2.2 液晶显示器的扩展 136
7.3 串/并行和并/串行转换芯片的扩展 144
7.3.1 串/并行转换芯片的扩展 144
7.3.2 并/串行转换芯片的扩展 145
7.4 单片机外部I/O端口的扩展 146
7.4.1 简单I/O端口的扩展 146
7.4.2 可编程接口电路的扩展——用8155扩展 148
7.5 BCD拨码盘的扩展 151
7.5.1 BCD拨码盘的构造 151
7.5.2 BCD拨码盘的接口方法 152
7.6 AT89S51单片机的典型键盘/显示器接口电路 154
7.6.1 利用单片机并行口的键盘/显示器接口电路 154
7.6.2 利用单片机串行口的键盘/显示器接口电路 156
7.6.3 矩阵式键盘/LCM接口电路 159
7.7 AT89S51单片机的编程接口 159
7.7.1 在系统编程技术 159
7.7.2 AT89S51单片机的编程接口电路 160
思考与练习题7 161
第8章 AT89S51单片机的专用外围电路的扩展 162
8.1 DAC的扩展 162
8.1.1 DAC芯片简介 162
8.1.2 DAC0832扩展电路 164
8.2 ADC的扩展 167
8.2.1 ADC芯片简介 167
8.2.2 ADC的扩展应用 168
8.3 V/f转换器的扩展 169
8.3.1 V/f转换器芯片简介 169
8.3.2 V/f转换器的扩展电路 171
8.4 开关型功率接口的扩展 172
8.4.1 常用的开关型功率接口简介 173
8.4.2 开关型功率接口的注意事项 176
8.5 时钟日历芯片接口的扩展 176
8.5.1 DS1302时钟日历芯片简介 176
8.5.2 DS1302时钟日历芯片的接口电路 178
8.6 数字温度传感器接口的扩展 186
8.6.1 数字温度传感器芯片简介 186
8.6.2 数字温度传感器接口的扩展电路 188
8.7 电动机控制驱动接口的扩展 195
8.7.1 电动机控制驱动芯片简介 195
8.7.2 电动机控制驱动接口的扩展电路 196
8.8 I2C总线的应用扩展 197
8.8.1 I2C总线的应用 197
8.8.2 AT24C02芯片的扩展应用 199
思考与练习题8 206
第9章 AT89S51单片机的应用系统设计 208
9.1 单片机应用系统的概述 208
9.1.1 单片机应用系统的设计步骤 208
9.1.2 单片机应用系统设计应考虑的问题 209
9.2 单片机应用系统的抗干扰技术 209
9.2.1 过程通道干扰的抑制措施 210
9.2.2 电磁干扰的抑制措施 213
9.2.3 印制电路板的抗干扰措施 215
9.2.4 硬件看门狗的设计 216
9.2.5 软件抗干扰技术 216
9.3 AT89S51单片机的应用系统设计实例 217
9.3.1 亮度可调的循环跑马灯设计 217
9.3.2 多功能电子时钟设计 228
9.3.3 步进电动机驱动的移动小车设计 235
思考与练习题9 240
第10章 Proteus仿真软件的使用 242
10.1 Proteus软件概述 242
10.1.1 Proteus软件的功能特点 242
10.1.2 Proteus 8.0的系统环境 243
10.1.3 Proteus 8.0的安装过程 244
10.1.4 Proteus 8.0的运行 246
10.2 ISIS原理图设计环境 247
10.2.1 ISIS设计界面 247
10.2.2 常用的元器件库及元器件 249
10.3 单片机应用系统设计与仿真 252
10.3.1 Proteus工程创建 252
10.3.2 Proteus原理图设计 255
10.3.3 仿真运行 260
思考与练习题10 262
附录 263
参考文献 270