第1章 绪论 1
1.1单片机 1
1.1.1单片机的概念 1
1.1.2单片机的发展历史及产品近况 3
1.1.3嵌入式处理器家族 5
1.1.4单片机课程的地位及学习方法 6
1.2单片机开发所需软硬件介绍 8
1.2.1关于Keil C51及其集成开发环境KeilμVision3 9
1.2.2仿真技术和仿真器 10
1.2.3编程器和下载软件 11
1.2.4 Protel与单片机 11
1.2.5关于Proteus软件 12
1.2.6字模提取软件与串口调试助手 13
1.3数字电路基础 14
1.3.1二进制的逻辑运算 14
1.3.2数字电路中0与1的定义 15
1.4数制与编码的简单回顾 16
1.4.1数制 16
1.4.2编码 18
1.4.3计算机中带符号数的表示 18
思考题 20
第2章 80C51系列单片机基本结构及原理 22
2.1 80C51系列单片机的内部结构 22
2.1.1 80C51系列单片机的CPU 23
2.1.2 ROM和RAM的区别 23
2.1.3单片机时序及有关概念 24
2.2 80C51系列单片机的引脚功能 25
2.2.1 80C51系列单片机的引脚 25
2.2.2单片机的最小系统 27
2.2.3三总线结构 28
2.3 80C51系列单片机的存储器 28
2.3.1存储器的空间地址 28
2.3.2程序存储器 30
2.3.3数据存储器 30
2.3.4 80C51系列单片机的特殊功能寄存器(SFR) 32
2.4并行I/O口及其应用 36
2.4.1 P0口 36
2.4.2 P1口 38
2.4.3 P2口 38
2.4.4 P3口 39
2.4.5 I/O口驱动发光二极管 39
2.5单片机的复位、掉电保护和低功耗设计 44
2.5.1单片机的复位 44
2.5.2掉电保护和低功耗设计 46
思考题 47
第3章 80C51系列单片机的寻址方式和指令系统 49
3.1汇编语言的指令格式及其常用符号 50
3.1.1汇编语言的指令格式 50
3.1.2机器码的三种格式 50
3.1.3指令中常用符号说明 51
3.2 80C51系列单片机的寻址方式 52
3.2.1立即寻址 52
3.2.2直接寻址 53
3.2.3寄存器寻址 53
3.2.4寄存器间接寻址 54
3.2.5变址寻址 55
3.2.6相对寻址 55
3.2.7位寻址 56
3.3数据传送类指令 57
3.3.1内部RAM数据传送指令 57
3.3.2访问外部RAM的数据传送指令MOVX 61
3.3.3读取ROM中常数表的查表指令MOVC 62
3.3.4数据交换指令 63
3.3.5堆栈操作指令 64
3.4算术运算类指令 65
3.4.1加法指令 66
3.4.2减法指令 69
3.4.3乘、除法指令 71
3.5逻辑运算及移位类指令 72
3.5.1逻辑与运算指令 72
3.5.2逻辑或运算指令 73
3.5.3逻辑异或运算指令 73
3.5.4累加器清零、取反指令 74
3.5.5循环移位指令 74
3.6控制转移类指令 75
3.6.1无条件转移指令 75
3.6.2条件转移指令 77
3.6.3子程序调用及返回指令 79
3.6.4空操作指令 81
3.7位操作类指令 81
3.7.1位变量传送指令 82
3.7.2位置位、清零指令 82
3.7.3位逻辑运算指令 82
3.7.4位控制转移指令 83
思考题 84
第4章 汇编语言程序 89
4.1汇编语言程序概述 89
4.1.1源程序的编辑和汇编 89
4.1.2伪指令 90
4.1.3汇编语言程序设计步骤 92
4.2汇编语言程序设计 93
4.2.1顺序程序设计 93
4.2.2分支程序设计 94
4.2.3循环程序设计 96
4.3子程序及其调用 99
4.3.1子程序的设计注意事项 99
4.3.2参数传递 100
思考题 104
第5章 中断系统 107
5.1 80C51系列单片机的中断系统 107
5.1.1什么是中断 107
5.1.2 80C51系列单片机的中断源 109
5.1.3 80C51系列单片机的中断控制 110
5.2中断处理过程 111
5.2.1中断响应 111
5.2.2中断处理 113
5.2.3中断返回 113
5.2.4中断请求的撤除 114
5.3中断服务子程序的设计 115
5.3.1单个中断源设计举例 115
5.3.2多个中断源设计举例 117
思考题 118
第6章 定时/计数器 120
6.1定时/计数器T0和T1 120
6.1.1定时/计数器的结构及功能 120
6.1.2定时/计数器T0和T1的模式选择和状态控制寄存器 121
6.2 T0和T1的4种工作模式 123
6.2.1模式0 123
6.2.2模式1 124
6.2.3模式2 124
6.2.4模式3 125
6.3定时/计数器的应用 125
6.3.1定时/计数器模式0的应用 126
6.3.2定时/计数器模式1的应用 126
6.3.3定时/计数器模式2的应用 128
6.3.4定时/计数器门控位GATE的应用 129
6.3.5运行中读定时/计数器 130
思考题 131
第7章80C51系列单片机的串行通信 132
7.1串行通信基础知识 132
7.1.1并行通信与串行通信 132
7.1.2串行通信的通信方式 133
7.1.3串行通信的数据传送方向 134
7.1.4通信中的误码问题 134
7.2 80C51系列单片机的串行接口 135
7.2.1串行接口的结构 135
7.2.2串行接口的控制寄存器 136
7.2.3串行通信的波特率设计 139
7.3串行接口的工作方式 142
7.3.1方式0 142
7.3.2方式1 143
7.3.3方式2 144
7.3.4方式3 145
7.4串行通信应用举例 145
7.4.1串行接口方式0的应用 145
7.4.2串行接口方式1的应用 147
7.4.3串行接口方式2的应用 148
7.4.4串行接口方式3的应用 148
7.5串行通信实用技术 149
7.5.1双机串行通信的硬件连接 149
7.5.2 80C51系列单片机的多机通信 151
7.5.3双机串行通信软件编程 152
7.5.4 PC与单片机的点对点串行通信接口设计 158
7.5.5 PC与多个单片机的串行通信接口设计 158
思考题 160
第8章 80C51系列单片机并行系统扩展技术 161
8.1 80C51系列单片机的并行系统扩展概述 161
8.1.1 80C51系列单片机的并行系统扩展能力 161
8.1.2地址的锁存 161
8.1.3存储器空间地址 163
8.2外部存储器的扩展方法 167
8.2.1程序存储器的扩展 167
8.2.2数据存储器的扩展 171
8.2.3数据存储器和程序存储器的统一编址 177
8.3外部I/O接口的扩展方法 178
8.3.1简单并行I/O接口扩展 178
8.3.2 81 C55可编程I/O接口及扩展技术 179
8.3.3 82C55可编程接口电路的扩展 186
思考题 193
第9章 单片机的接口技术 194
9.1单片机键盘接口技术 194
9.1.1单片机的键扫描方式 194
9.1.2独立键盘 195
9.1.3矩阵式键盘 197
9.2数码显示器接口电路 202
9.2.1数码管显示原理 202
9.2.2数码管动态显示 204
9.3 A/D转换接口技术 206
9.4 D/A转换接口技术 210
思考题 216
第10章 单片机C51程序设计 217
10.1 C51程序设计基础 217
10.1.1 C51中的基本数据类型 217
10.1.2 C51中扩充的数据类型 218
10.1.3 C51中的运算符 219
10.1.4 C51中的语句及程序结构 221
10.1.5 C51中的头文件 222
10.2 C51程序设计 222
10.2.1定时/计数器初始化程序设计举例 223
10.2.2点亮发光二极管实现流水灯程序 227
10.2.3单个中断系统设计举例 233
10.2.4定时器程序设计举例 235
10.2.5串行通信程序设计举例 236
思考题 237
第11章 串行扩展技术 238
11.1单总线串行扩展 238
11.2 SPI总线串行扩展 240
11.3 I2C总线扩展 243
11.3.1 I2C总线基础 243
11.3.2 80C51系列单片机的I2C总线时序模拟 246
11.3.3 80C51系列单片机与AT24C02的接口 248
思考题 252
附录 254
附录A ASCⅡ表 254
附录B MCS-51系列单片机指令系统表 255
主编寄语大学生 260
参考文献 266