第1章 概述 1
1.1 单片机及发展概况 1
1.1.1 什么是单片机 1
1.1.2 单片机的特点 1
1.1.3 单片机的应用 2
1.1.4 单片机的发展概况与未来 3
1.2 常用8位单片机系列介绍 6
1.2.1 MCS-51系列单片机 6
1.2.2 AT89系列单片机简介 7
思考与练习 9
第2章 AT89S51单片机的硬件结构 10
2.1 AT89S51单片机的结构 10
2.2 AT89S51的引脚功能 11
2.2.1 电源及时钟引脚 13
2.2.2 控制引脚 13
2.2.3 I/O端口引脚 14
2.3 AT89S51的中央处理器(CPU) 15
2.3.1 运算部件 15
2.3.2 程序状态字寄存器 15
2.3.3 控制部件 16
2.4 存储器结构 17
2.4.1 程序存储器 18
2.4.2 内部数据存储器 19
2.4.3 特殊功能寄存器 21
2.4.4 地址空间 26
2.4.5 外部数据存储器 28
2.5 I/O端口 28
2.5.1 I/O端口的内部结构 28
2.5.2 I/O端口的负载能力和接口要求 31
2.6 复位电路和时钟电路 32
2.6.1 复位电路及工作方式 32
2.6.2 时钟电路及时序 34
2.7 在线编程ISP 36
2.7.1 在线编程接口电路 36
2.7.2 编程算法及时序 36
2.7.3 串行编程命令 37
思考与练习 38
第3章 单片机指令系统 39
3.1 寻址方式 39
3.1.1 指令概述 39
3.1.2 寻址方式 40
3.2 指令系统 44
3.2.1 数据传送类指令 44
3.2.2 算术运算类指令 48
3.2.3 逻辑运算类指令 52
3.2.4 控制转移类指令 54
3.2.5 位操作类指令 57
思考与练习 60
第4章 MCS-51汇编语言程序设计 61
4.1 汇编语言程序设计概述 61
4.1.1 程序设计语言 61
4.1.2 伪指令 62
4.2 基本程序设计方法 64
4.2.1 顺序程序 65
4.2.2 分支程序 66
4.2.3 循环程序 68
4.2.4 查表程序 72
4.2.5 子程序 74
4.3 C51程序设计基础及举例 77
4.3.1 AT89S51单片机硬件结构的C51定义 77
4.3.2 C51代码中嵌入汇编代码 80
4.3.3 AT89S51单片机C语言程序设计 81
思考与练习 83
第5章 AT89S51单片机的中断系统 85
5.1 中断的概念 85
5.1.1 中断的基本概念及相关术语 85
5.1.2 中断的作用 86
5.1.3 中断源 86
5.1.4 中断系统的基本功能 86
5.2 AT89S51单片机的中断系统 87
5.2.1 中断源与中断请求 87
5.2.2 中断允许控制 89
5.2.3 中断优先权管理 90
5.2.4 中断响应过程和响应时间 91
5.2.5 外部中断应用举例 92
5.3 C51中断服务函数的定义及应用 93
思考与练习 95
第6章 定时器/计数器 97
6.1 定时器/计数器的结构 97
6.1.1 定时器方式控制寄存器TMOD 98
6.1.2 定时器/计数器控制寄存器 98
6.2 定时器/计数器的4种工作方式 99
6.2.1 方式0(以T0为例) 99
6.2.2 方式1 100
6.2.3 方式2 100
6.2.4 方式3 100
6.3 定时器/计数器的编程和应用 101
6.3.1 方式0的应用 101
6.3.2 方式1的应用 102
6.3.3 方式2的应用 104
思考与练习 105
第7章 AT89S51单片机的串行接口及应用 106
7.1 串行口的结构 106
7.1.1 串行口控制寄存器SCON 107
7.1.2 特殊功能寄存器PCON 107
7.2 串行口的工作方式 108
7.2.1 方式0 108
7.2.2 方式1 109
7.2.3 方式2和方式3 110
7.3 波特率的制定方法 110
7.4 串行口的编程和应用 111
7.4.1 方式0的应用 111
7.4.2 方式1的应用 113
7.4.3 方式2与方式3的应用 115
思考与练习 119
第8章 单片机的人一机接口技术 120
8.1 键盘及其接口 120
8.1.1 键盘的管理及类型 120
8.1.2 独立式键盘 122
8.1.3 矩阵式键盘 125
8.2 LED显示器及其接口 128
8.2.1 八段LED显示器的结构及工作原理 128
8.2.2 静态显示 130
8.2.3 动态扫描显示 132
8.3 LCD显示器及其接口 135
8.3.1 LCD显示器的特点 135
8.3.2 液晶显示简介 135
8.3.3 1602字符型LCD简介 136
8.3.4 LCD 1602的RAM地址映射及标准字库表 140
8.3.5 LCD 1602的一般初始化(复位)过程 140
8.3.6 LCD 1602的软、硬件设计实例 141
思考与练习 142
第9章 单片机的扩展技术 143
9.1 A/D转换器 143
9.1.1 A/D转换器概述 143
9.1.2 并行A/D器件ADC0809 144
9.1.3 串行A/D器件TLC1549 147
9.2 D/A转换器 151
9.2.1 D/A转换器概述 151
9.2.2 并行D/A转换器件DAC0832 152
9.2.3 串行D/A转换器件TLC5615 156
9.3 I2C总线概述 158
9.3.1 I2 C总线的工作原理 158
9.3.2 I2 C总线的接口电路 159
9.3.3 I2 C总线工作时序 160
9.4 C51应用举例 162
9.5 I2 C器件的应用 164
9.6 SPI器件的应用 167
思考与练习 170
第10章 AT89S51单片机应用实例 171
10.1 单片机应用系统设计要点 171
10.1.1 设计步骤 171
10.1.2 设计过程 171
10.1.3 系统抗干扰问题解决方案 172
10.2 城市路口交通灯的设计 173
10.2.1 概述 173
10.2.2 硬件设计及电路 174
10.2.3 软件设计及框图 174
10.3 数字电压表的设计 181
10.3.1 概述 181
10.3.2 硬件设计及电路 181
10.3.3 软件设计 183
附录A 指令系统 186
附录B ASCII码表 190
附录C 课程实验 192
实验一 A/D转换 192
实验二 D/A转换 194
实验三 通用I/O应用 195
实验四 定时器/计数器的应用 197
实验五 中断系统应用 199
实验六 串行通信应用 202
实验七 键盘识别 204
实验八 模/数转换器的应用 208
实验九 数/模转换器的应用 212
参考文献 215