第1章 单片机概述 1
1.1单片机的概念 2
1.1.1单片机的基本概念 2
1.1.2单片机的组成 3
1.1.3单片机的特点 5
1.2单片机的发展过程与趋势 6
1.2.1单片机发展过程 6
1.2.2单片机发展趋势 7
1.3常用单片机简介 9
1.3.1 MCS-51系列单片机 9
1.3.2 AT89系列单片机 11
1.3.3 PIC系列单片机 12
1.3.4 M68HC 11系列单片机 13
1.3.5 MCS-96系列单片机 15
1.3.6 8XC 196KX系列单片机 16
1.3.7 MSP430系列单片机 17
1.3.8 SPCE系列单片机 18
1.3.9 M68300系列单片机 19
1.3.10 SH系列单片机 20
1.3.11 TX99/TX49系列单片机 20
1.4单片机的应用领域 21
1.4.1工业过程控制 21
1.4.2智能仪表 21
1.4.3机电一体化产品 21
1.4.4信息和通信产品 22
1.4.5家用电器 22
1.4.6其他领域 22
本章小结 23
习题 23
第2章 MCS-51系列单片机的硬件结构 24
2.1 MCS-51系列单片机的基本组成 25
2.1.1 MCS-51系列单片机的片内资源 25
2.1.2 MCS-51系列单片机的内部总体结构 26
2.2 MCS-51系列单片机的引脚功能 27
2.2.1 MCS-51系列单片机的引脚图与封装 27
2.2.2 MCS-51系列单片机的引脚说明 28
2.2.3 MCS-51系列单片机的引脚应用特性 30
2.3 MCS-51系列单片机的存储器组织结构 31
2.3.1程序存储器 32
2.3.2数据存储器 33
2.3.3特殊功能寄存器 36
2.4 MCS-51系列单片机的输入/输出接口 38
2.4.1 P0口 38
2.4.2 P1口 39
2.4.3 P2口 40
2.4.4 P3口 40
2.4.5输入/输出接口的操作 41
2.5 MCS-51系列单片机的时钟电路与CPU时序 41
2.5.1时钟电路 42
2.5.2 CPU时序 42
2.5.3典型指令的取指和执行时序 43
2.6 MCS-51系列单片机的工作方式 44
2.6.1程序执行工作方式 44
2.6.2复位电路与复位状态 45
2.6.3掉电运行方式与待机方式 46
2.7实验与实训 48
2.7.1音频驱动实验 48
2.7.2继电器控制 50
本章小结 51
习题 52
第3章 MCS-51系列单片机指令系统和程序设计 54
3.1 MCS-51系列单片机的指令格式及标志 55
3.1.1指令格式 55
3.1.2指令中常用的符号 56
3.2 MCS-51系列单片机的寻址方式 56
3.2.1寄存器寻址 57
3.2.2直接寻址 57
3.2.3立即寻址 57
3.2.4寄存器间接寻址 58
3.2.5基址寄存器加变址寄存器间接寻址 58
3.3 MCS-51系列单片机的指令系统 58
3.3.1数据传送类指令 58
3.3.2算术运算类指令 63
3.3.3逻辑运算类指令 66
3.3.4控制转移类指令 68
3.3.5位操作类指令 73
3.4汇编语言程序设计 74
3.4.1程序设计方法 74
3.4.2伪指令 75
3.4.3顺序程序设计 77
3.4.4分支程序设计 80
3.4.5循环程序 81
3.4.6查表程序设计 84
3.4.7子程序设计 86
3.5实验与实训 87
3.5.1传送指令训练 87
3.5.2多字节十进制加法 91
3.5.3拆字程序 92
3.5.4数据排序 93
3.5.5二进制转BCD码 93
3.5.6延时程序的设计 94
本章小结 96
习题 96
第4章 MCS-51系列单片机的中断系统 100
4.1中断的概念 101
4.1.1中断的基本概念 101
4.1.2中断系统应解决的基本问题 101
4.2 MCS-51系列单片机的中断源、中断标志与中断控制 102
4.2.1中断源和中断标志 102
4.2.2中断控制 105
4.3 MCS-51系列单片机的中断响应 106
4.3.1中断响应条件 106
4.3.2中断响应过程 107
4.3.3中断响应时间 107
4.4 MCS-51系列单片机的中断程序设计 108
4.4.1中断初始化程序 108
4.4.2中断服务程序 108
4.4.3外部中断应用举例 108
4.4.4外部中断源的扩充 110
4.4.5中断系统设计中应注意的几个问题 112
4.5实验与实训 112
4.5.1故障源监控器的设计 112
4.5.2抢答器的设计 114
本章小结 117
习题 117
第5章 MCS-51系列单片机的定时器/计数器 119
5.1 MCS-51系列单片机定时器/计数器的结构及工作原理 120
5.1.1定时器/计数器的结构 120
5.1.2定时器/计数器的工作原理 120
5.2 MCS-51系列单片机的定时器/计数器的控制寄存器 121
5.2.1控制寄存器TCON 121
5.2.2方式选择寄存器TMOD 121
5.3 MCS-51系列单片机的定时器/计数器的工作方式 122
5.3.1工作方式0 122
5.3.2工作方式1 123
5.3.3工作方式2 123
5.3.4工作方式3 124
5.4 MCS-51系列单片机的定时器/计数器的应用举例 124
5.4.1计数初值的计算 124
5.4.2定时器/计数器的初始化 125
5.4.3应用举例 126
5.5实验与实训 128
5.5.1简易方波发生器 128
5.5.2基于定时器/计数器实现的音乐播放器 130
5.5.3交通信号灯的控制 134
本章小结 139
习题 139
第6章 MCS-51系列单片机的串行接口 141
6.1串行通信基础 142
6.1.1通信方式 142
6.1.2串行通信方式 142
6.1.3波特率 144
6.2串行接口工作原理 144
6.2.1串行接口结构 144
6.2.2串行接口的控制 145
6.2.3串行接口的4种工作方式 147
6.2.4波特率设计 150
6.3串行接口应用举例 152
6.3.1方式0应用 152
6.3.2方式1应用 153
6.3.3方式2和方式3的应用 155
6.4实验与实训 157
6.4.1 74LS164串转并实验 157
6.4.2 74LS 165并转串实验 159
6.4.3单片机间的多机通信 160
本章小结 165
习题 165
第7章 MCS-51系列单片机的扩展技术 167
7.1单片机最小系统 168
7.1.1 8031单片机的最小系统 168
7.1.2具有片内程序存储器的单片机最小系统 169
7.2系统扩展原理 169
7.3程序存储器的扩展 171
7.3.1程序存储器 171
7.3.2地址锁存器 172
7.3.3程序存储器的扩展方法 172
7.4数据存储器的扩展 175
7.4.1常用的数据存储器 175
7.4.2数据存储器的扩展方法 177
7.5 I/O口扩展 180
7.5.1用于I/O口扩展的常用TTL电路 180
7.5.2用TTL电路扩展的I/O接口 182
7.5.3可编程I/O芯片8255的扩展 185
7.5.4可编程IO/RAM芯片8155的扩展 191
7.6串行接口的扩展 196
7.6.1 RS-232C串行通信标准 197
7.6.2 RS-422/485标准总线及应用 200
7.7定时器/计数器扩展 201
7.7.1 8253的结构及引脚 201
7.7.2 8253的控制字及工作方式 202
7.7.3 8253的操作过程 204
7.7.4 8253的扩展 205
7.8实验与实训 206
7.8.1用RS-232C实现单片机与计算机间的通信 206
7.8.2 8255可编程并行接口扩展实验 207
7.8.3 8155芯片扩展实验 208
本章小结 209
习题 210
第8章 MCS-51系列单片机的接口技术 212
8.1单片机与键盘的接口 213
8.2单片机与显示器的接口 218
8.2.1 LED数码管显示器 218
8.2.2 LCD液晶显示器 224
8.3单片机与打印机的接口 229
8.3.1 RD-DH型微型打印机简介 229
8.3.2接口说明 229
8.3.3 RD-DH型微型打印机控制命令 230
8.3.4打印示例 231
8.4数模与模数转换器接口 232
8.4.1常用性能指标 233
8.4.2数模转换器DAC0832 234
8.4.3模数转换器ADC0809 236
8.5实验与实训 238
8.5.1 99.99s秒表的设计 238
8.5.2矩阵式键盘接口及应用 242
8.5.3 A/D转换器接口及应用——PWM电机控制 245
8.5.4 D/A转换器接口及其应用——直流电机调速 247
本章小结 249
习题 249
第9章 C51程序设计 252
9.1 C51程序设计基础 253
9.1.1 C51基础知识 253
9.1.2 C51数据类型 254
9.1.3 C51常量与变量 254
9.1.4 C51存储模式与绝对地址访问 257
9.1.5 C51常用运算符 259
9.1.6 C51表达式语句与复合语句 261
9.2 C51基本结构和语句 262
9.2.1 C51基本结构 262
9.2.2 if语句 263
9.2.3 switch/case语句 264
9.2.4 while语句 265
9.2.5 do while语句 266
9.2.6 for语句 266
9.2.7循环嵌套 267
9.2.8 break和continue语句 268
9.2.9 return语句 269
9.3 C51构造数据类型 269
9.3.1数组 269
9.3.2指针 270
9.3.3结构 271
9.3.4联合 272
9.3.5枚举 274
9.4 C51函数 276
9.4.1函数的分类和定义 276
9.4.2函数参数及函数间的数据传递 279
9.4.3函数的调用与声明 280
9.4.4函数的嵌套与递归 281
9.5编程举例 283
9.5.1用C语言实现输入/输出编程 283
9.5.2用C语言实现逻辑运算 283
9.5.3用C语言实现数据转换 283
9.5.4用C语言实现公式的编辑 284
9.6实验与实训 284
9.6.1简单矩阵运算 284
9.6.2数据排序 286
9.6.3延时程序的设计 287
9.6.4用C语言实现定时器/计数器的编程 288
9.6.5用C语言实现中断的编程 289
9.6.6用C语言实现串行接口的编程 290
本章小结 292
习题 292
第10章 单片机应用系统的设计与实例 295
10.1单片机应用系统的设计方法 296
10.1.1系统总体方案的确定 297
10.1.2应用系统的硬件设计 298
10.1.3应用系统的软件设计 300
10.1.4应用系统的抗干扰设计 301
10.2单片机应用系统的开发过程 303
10.2.1单片机的开发与开发工具 303
10.2.2单片机开发系统的功能 303
10.2.3单片机应用系统的调试、运行与维护 305
10.3函数信号发生器的设计 309
10.3.1功能分析及总体设计 309
10.3.2硬件设计 309
10.3.3软件设计 310
10.4红外报警器的设计 314
10.4.1功能分析及总体设计 314
10.4.2硬件设计 316
10.4.3软件设计 317
10.5步进电机控制 318
10.5.1步进电机的工作原理、分类 318
10.5.2步进电机与单片机的接口设计 320
10.6实验与实训 327
10.6.1简易数字频率计 327
10.6.2公交自动报站器 332
本章小结 340
习题 341
参考文献 342