第1章 概述 1
1.1单片机的基本概念与发展概况 2
1.1.1基本概念 2
1.1.2发展概况 3
1.2单片机的特点及应用 6
1.2.1单片机的特点 6
1.2.2单片机的应用 6
1.3常用单片机系列介绍 7
1.3.1常用单片机系列产品及性能简介 7
1.3.2 MCS-51系列单片机分类 9
1.3.3 AT89系列单片机分类 11
1.3.4其他公司生产的51系列单片机 12
本章小结 12
习题1 13
第2章 MCS-51系列单片机的内部结构 14
2.1 MCS-51系列单片机内部结构和引脚说明 15
2.1.1 MCS-51系列单片机内部结构框图 15
2.1.2 MCS-51系列单片机外部引脚说明 19
2.2 MCS-51系列单片机存储器 21
2.2.1程序存储器 22
2.2.2数据存储器 22
2.3 MCS-51系列单片机并行I/O接口 26
2.3.1 P0口结构及功能 26
2.3.2 P 1口结构及功能 28
2.3.3 P2口结构及功能 28
2.3.4 P3口结构及功能 29
2.4 MCS-51系列单片机的时钟电路与时序 30
2.4.1时钟电路 30
2.4.2 CPU时序 30
2.4.3 MCS-51系列单片机的复位电路 32
2.4.4 MCS-51系列单片机的掉电和节电方式 33
本章小结 35
习题2 35
第3章 MCS-51系列单片机指令系统和汇编语言程序设计 37
3.1指令系统基本概念 38
3.1.1指令基本格式 38
3.1.2指令分类 38
3.1.3指令描述符号介绍 39
3.2 MCS-51系列单片机的寻址方式 39
3.3 MCS-51系列单片机的指令系统 42
3.3.1数据传送类指令 42
3.3.2算术运算类指令 48
3.3.3逻辑运算及移位指令 55
3.3.4位操作类指令 58
3.3.5控制转移类指令 60
3.4汇编程序设计示例 65
3.4.1汇编程序伪指令 66
3.4.2顺序程序 68
3.4.3分支程序 70
3.4.4循环程序 72
3.4.5查表程序 76
3.4.6散转程序 78
3.4.7子程序 79
本章小结 82
习题3 82
第4章 MCS-51系列单片机C程序设计 87
4.1 C语言与MCS-51系列单片机 88
4.1.1 C语言的特点及程序结构 88
4.1.2 C语言编译器与MCS-51系列单片机 90
4.1.3 C51程序结构 90
4.2 C51的数据类型 91
4.3 C51的运算量 93
4.3.1常量 93
4.3.2变量 95
4.3.3存储模式 98
4.3.4绝对地址访问 98
4.4 C51的运算符及表达式 100
4.4.1赋值运算 100
4.4.2算术运算符 101
4.4.3关系运算符 101
4.4.4逻辑运算符 101
4.4.5位运算符 102
4.4.6复合赋值运算符 102
4.4.7逗号运算符 103
4.4.8条件运算符 103
4.4.9指针与地址运算符 103
4.5表达式语句及复合语句 104
4.5.1表达式语句 104
4.5.2复合语句 105
4.6 C51的输入/输出 105
4.6.1格式输出函数printf() 106
4.6.2格式输入函数scanf() 106
4.7 C51程序基本结构与相关语句 107
4.7.1 C51的基本结构 107
4.7.2 if语句 109
4.7.3 swich/case语句 109
4.7.4 while语句 110
4.7.5 do…while语句 111
4.7.6 for语句 112
4.7.7循环的嵌套 112
4.7.8 break和continue语句 113
4.7.9 return语句 114
4.8函数 114
4.8.1函数的定义 114
4.8.2函数的调用与声明 117
4.8.3函数的嵌套与递归 119
4.9 C51构造数据类型 120
4.9.1数组 120
4.9.2指针 123
4.9.3结构 125
4.9.4联合 128
4.9.5枚举 130
本章小结 131
习题4 131
第5章 MCS-51系列单片机的内部硬件资源及应用 133
5.1 MCS-51系列单片机的并行I/O接口 134
5.1.1端口输入/输出操作 134
5.1.2 I/O口的位操作指令 134
5.1.3并行口应用举例 134
5.2 MCS-51系列单片机中断系统 136
5.2.1中断的基本概念 136
5.2.2 MCS-51系列单片机的中断系统与控制 137
5.2.3 MCS-51系列单片机中断系统的应用 143
5.3 MCS-51系列单片机的定时器/计数器接口 146
5.3.1定时器/计数器的结构与工作原理 146
5.3.2定时器/计数器的工作方式 148
5.3.3定时器/计数器的应用 149
5.4 MCS-51系列单片机的串行接口及其串行通信 152
5.4.1串行通信的基本概念 152
5.4.2 MCS-51系列单片机的串行接口及控制寄存器 154
5.4.3 MCS-51系列单片机串行通信工作方式 157
5.4.4串行接口应用举例 159
本章小结 169
习题5 170
第6章 MCS-51系列单片机系统功能的扩展 172
6.1单片机最小应用系统 173
6.2存储器的扩展 174
6.2.1程序存储器的扩展 175
6.2.2数据存储器的扩展 177
6.2.3存储器综合扩展举例 178
6.3 I/O接口扩展 179
6.3.1简单I/O接口扩展 179
6.3.2用串行接口扩展并行I/O接口 180
6.3.3可编程I/O接口扩展 181
本章小结 186
习题6 187
第7章 MCS-51系列单片机显示与键盘接口技术 188
7.1 MCS-51系列单片机与LED数码管显示接口 189
7.1.1 LED显示器的结构与原理 189
7.1.2 LED显示器显示方式 191
7.1.3 LED显示接口典型应用电路 192
7.2 MCS-51系列单片机与键盘的接口 199
7.2.1键盘的工作原理与扫描方式 200
7.2.2独立式按键及接口 201
7.2.3矩阵式键盘及接口 204
7.2.4键盘、显示器组合接口 210
本章小结 214
习题7 214
第8章 MCS-51系列单片机A/D、D/A转换接口技术 215
8.1 MCS-51系列单片机与A/D转换接口 216
8.1.1 A/D转换芯片ADC0809简介 216
8.1.2 ADC0809与MCS-51系列单片机的接口 218
8.1.3 AD574与MCS-51系列单片机的接口 220
8.2 MCS-51系列单片机与D/A转换接口 223
8.2.1 D/A转换芯片DAC0832简介 223
8.2.2 DAC0832与MCS-51系列单片机的接口实例 225
本章小结 229
习题8 229
第9章 综合实例 230
9.1流水灯的设计 231
9.2简易报警发生器设计 232
9.3外部负脉冲宽度测量电路设计 234
9.4航标灯控制程序设计 236
9.5 99s跑码表设计 237
9.6独立式按键的应用设计 240
9.7带数码显示的A/D转换电路设计 242
9.8直流电动机控制设计 244
9.9步进电动机控制设计 248
习题9 250
第10章 单片机应用系统设计 252
10.1单片机应用系统的基本结构 253
10.1.1单片机应用系统的硬件组成 253
10.1.2硬件系统设计原则 254
10.1.3单片机应用系统的软件设计 255
10.2数字电子钟/日历系统设计实例 256
10.3单片机遥控系统的应用设计 261
10.3.1系统要求与设计方案 261
10.3.2系统硬件电路的设计 261
10.3.3系统程序设计 266
10.3.4调试及性能分析 270
10.3.5控制源程序清单 270
附录A MCS-51系列单片机指令表 279
附录B ASCII码 283
参考文献 284