第1章 单片机基础知识概述 1
1.1单片机概述 1
1.1.1什么是单片机 1
1.1.2单片机的发展历史 1
1.2单片机的特点及应用领域 2
1.2.1单片机的特点 2
1.2.2单片机的应用领域 2
1.2.3单片机的发展趋势 3
1.2.4 MCS-51单片机的学习 5
1.3单片机学习的预备知识 6
1.3.1数制及其转换 6
1.3.2有符号数的表示方法 7
1.3.3位、字节和字 9
1.3.4 BCD码 9
1.3.5 ASCⅡ码 9
1.4电平 10
思考题与习题 11
第2章MCS-51单片机基本结构 13
2.1 MCS-51单片机的基本结构与类型 13
2.1.1 MCS-51单片机的基本结构 13
2.1.2 MCS-51单片机的基本类型 14
2.2引脚及封装 15
2.2.1引脚 15
2.2.2封装 16
2.3 MCS-51存储器组织 17
2.3.1 MCS-51存储器组织简介 18
2.3.2程序存储器地址空间 18
2.3.3内部数据存储器空间 19
2.3.4特殊功能寄存器 21
2.3.5外部数据存储器 23
2.4复位及时钟电路 23
2.4.1复位后各寄存器的状态 23
2.4.2复位电路 24
2.4.3晶振电路 24
2.4.4单片机的时序单位 24
思考题与习题 25
第3章MCS-51单片机指令系统 26
3.1基本概念 26
3.1.1汇编语言格式 26
3.1.2指令中的常用符号 27
3.1.3寻址方式 27
3.2 MCS-51指令系统 29
3.2.1数据传送与交换指令 29
3.2.2算术运算指令 35
3.2.3逻辑运算与移位指令 37
3.2.4控制转移指令 40
3.2.5位操作指令 42
思考题与习题 44
第4章MCS-51汇编语言程序设计 46
4.1汇编语言程序格式及伪指令 47
4.1.1汇编指令格式 47
4.1.2伪指令 47
4.2基本程序设计方法 49
4.2.1顺序程序设计 50
4.2.2分支程序设计 50
4.2.3循环程序设计 54
4.2.4查表程序设计 56
4.2.5子程序设计 58
思考题与习题 58
第5章 I/O接口及简单应用 60
5.1 I/O端口的输入/输出特性 60
5.1.1 P1口 61
5.1.2 P3口 62
5.1.3P0口 63
5.1.4 P2口 64
5.2 I/O端口的应用 65
5.2.1 I/O的简单控制 65
5.2.2 LED数码管显示 66
5.2.3键盘 71
5.3 LCM1602字符型液晶显示模块 75
5.3.1字符型LCM 1602介绍 75
5.3.2 LCM 1602与单片机的接口 81
5.3.3 LCM 1602显示模块的应用 81
5.4双LED数码管动态显示模块的设计 89
思考题与习题 90
第6章 中断系统 91
6.1中断的概念 91
6.2中断系统的结构 92
6.3中断控制系统 93
6.3.1中断请求标志寄存器(TCON、SCON) 93
6.3.2中断允许寄存器(IE) 94
6.3.3中断优先级寄存器(IP)及中断嵌套 95
6.4中断处理过程 97
6.4.1中断响应条件 97
6.4.2中断响应过程 97
6.4.3中断的撤销 98
6.4.4外部中断响应的时间 99
6.5外部中断触发方式的选择 100
6.6中断程序设计 100
思考题与习题 101
第7章 定时/计数器 103
7.1定时/计数器的结构及其工作原理 103
7.1.1定时/计数器的实质 103
7.1.2定时/计数器的结构及其工作原理 104
7.2定时/计数器的控制 104
7.2.1方式控制寄存器(TMOD) 105
7.2.2控制寄存器(TCON) 105
7.3定时/计数器的工作方式 106
7.3.1方式0 106
7.3.2方式1 106
7.3.3方式2 107
7.3.4方式3 108
7.4计数器对输入脉冲频率的要求 109
7.5定时/计数器的编程和应用举例 109
7.5.1定时/计数器初值的计算 109
7.5.2定时/计数器应用举例 110
思考题与习题 114
第8章 串行通信接口 116
8.1串行通信基本知识 116
8.2 MCS-51串口控制器 118
8.2.1串口控制寄存器(SCON) 118
8.2.2特殊功能寄存器(PCON) 119
8.3串行口的工作方式 120
8.3.1方式0 120
8.3.2方式1 120
8.3.3方式2 121
8.3.4方式3 122
8.4波特率的制定方法 122
8.5串行通信的接口电路 124
8.5.1 RS-232C接口 124
8.5.2 RS-485接口 126
8.6串口的编程与应用 127
8.6.1用串行口扩展并行I/O口 127
8.6.2单片机与单片机通信 130
8.7多机通信 135
8.7.1多机通信协议 136
8.7.2多机通信程序设计 137
8.8单片机与PC的串口通信 142
思考题与习题 148
第9章 存储器和并行口的扩展 149
9.1系统扩展概述 149
9.1.1单片机最小系统 149
9.1.2总线的概念 150
9.2数据存储器的扩展 151
9.2.1 SRAM芯片 151
9.2.2典型外部数据存储器的连接 152
9.2.3地址锁存器和外扩RAM的操作时序 153
9.2.4确定扩展芯片地址的方法 155
9.3程序存储器的扩展 158
9.3.1 ROM芯片 158
9.3.2程序存储器的扩展 159
9.4程序存储器和数据存储器的综合扩展 160
9.5并行接口的扩展 161
9.5.1总线驱动器 161
9.5.2用74LS系列TTL电路扩展并行I/O口 163
9.5.3并行可编程芯片8255A 164
思考题与习题 168
第10章 单片机测控接口 170
10.1 A/D转换器概述 170
10.2 ADC0809模/数转换器 174
10.2.1 ADC0809/ADC0808简介 174
10.2.2 ADC0809与单片机的接口及编程 175
10.3 DAC0832数/模转换器 180
10.3.1 DAC0832简介 181
10.3.2 DAC0832与单片机的接口及编程 183
10.4开关量功率接口技术 185
10.4.1单片机I/O口的输出驱动 186
10.4.2光电耦合器 188
10.4.3继电器驱动接口 189
10.4.4可控硅驱动接口 190
10.4.5固态继电器驱动接口 192
10.5开关量输入接口 194
思考题与习题 195
第11章C51程序设计入门 196
11.1 C51的基本数据类型 197
11.2 C51变量的存储区域 199
11.3 C51的运算符 200
11.4数组 201
11.5指针 202
11.5.1指针的概念 203
11.5.2指针变量的定义、赋值和引用 203
11.5.3 Keil C51的指针类型 205
11.6结构 206
11.7 C51的程序设计 208
11.7.1 C51的程序结构 208
11.7.2 C51流程控制语句 208
11.8函数的定义与调用 211
11.8.1函数 211
11.8.2局部变量、全局变量和变量的存储类型 213
11.8.3 C51中调用汇编程序 214
11.8.4预处理命令 216
11.8.5头文件 217
11.9 51单片机内部资源的C51编程 218
11.9.1中断的C51编程 218
11.9.2定时/计数器的C51编程 218
11.9.3串口的C51编程 220
11.9.4对位和外接I/O口的C51编程 220
11.10 LCM1602的C51驱动程序设计 222
思考题与习题 227
第12章 串行总线扩展技术 229
12.1 SPI总线扩展技术 229
12.1.1 ADC0832模块的设计 230
12.1.2 TLC 1543 A/D模块的设计 236
12.1.3 LTC 1456 D/A模块的设计 244
12.2 I2C总线扩展技术 246
12.2.1 I2C总线的协议简介 246
12.2.2 I2C的寻址方式 248
12.2.3 I2C总线时序 249
12.2.4虚拟I2C总线汇编语言程序 250
12.2.5虚拟I2C总线C51程序 257
12.2.6 I2C总线在E2PROM中的应用 264
思考题与习题 266
附录A MCS-51单片机实验 267
附录B Proteus使用入门 290
附录C MC-51指令表 302
附录D Keil C51使用简介 306
参考文献 324