基础篇 3
第1章 单片机基础知识 3
1.1 单片机概述 3
1.1.1 单片机的产生与发展 3
1.1.2 单片机的应用 4
1.1.3 单片机典型产品 4
1.2 单片机产品的设计过程 7
1.2.1 单片机实验环境的搭建 7
1.2.2 设计过程及注意事项 9
1.3 单片机学习的预备知识 10
1.3.1 数制和数制间的转换 11
1.3.2 带符号数的表示方法 12
1.3.3 单片机常用编码 13
习题与思考 14
第2章 单片机的硬件结构及工作原理 15
2.1 单片机的片内结构 15
2.2 单片机的封装与引脚 16
2.2.1 常用IC的封装形式 16
2.2.2 AT89S51单片机的引脚及功能 17
2.3 AT89S51单片机的CPU 18
2.3.1 运算器 18
2.3.2 控制器 19
2.3.3 指令执行的基本过程 19
2.4 AT89S51单片机的最小系统 20
2.4.1 复位电路 20
2.4.2 时钟电路与时序 21
2.5 片内存储器结构 23
2.5.1 程序存储器 24
2.5.2 片内数据存储器 25
2.5.3 特殊功能寄存器 26
2.5.4 片外数据存储器 29
习题与思考 30
第3章 Keil C51编程基础 31
3.1 Keil C51简介 31
3.1.1 C51与标准C的异同 31
3.1.2 C51与汇编语言的异同 31
3.2 C51程序设计基础 32
3.2.1 数据类型 33
3.2.2 运算符及表达式 34
3.2.3 常量与变量 36
3.2.4 存储类型及存储区 38
3.2.5 循环控制流程语句 39
3.2.6 数组 43
3.2.7 函数 44
3.2.8 指针 47
3.2.9 预处理 48
3.2.10 C51使用规范 49
习题与思考 50
第4章 单片机开发工具软件 51
4.1 集成开发环境KeilμVision4 51
4.1.1 Keil μVision4简介 51
4.1.2 软件启动和运行 51
4.1.3 使用方法 52
4.2 仿真开发工具Proteus 61
4.2.1 Proteus简介 61
4.2.2 软件的启动和运行 61
4.2.3 软件的使用方法 62
4.2.4 软件编程 70
4.2.5 仿真调试 70
习题与思考 72
第5章 片内并行I/O接口 73
5.1 P0口的工作原理 73
5.1.1 P0口作为地址/数据总线 73
5.1.2 P0口做通用I/O接口使用 74
5.2 P1口的工作原理 74
5.3 P2口的工作原理 75
5.4 P3口的工作原理 76
习题与思考 79
第6章 单片机中断系统 80
6.1 中断技术概述 80
6.2 中断系统结构 82
6.2.1 中断源 82
6.2.2 中断请求标志寄存器 82
6.2.3 中断允许寄存器 84
6.2.4 中断优先级寄存器 85
6.2.5 外部中断的触发方式选择 86
6.2.6 中断请求的撤销 86
6.2.7 外部中断应用程序设计 87
习题与思考 93
第7章 单片机的定时器/计数器 94
7.1 定时器/计数器技术概述 94
7.2 定时器/计数器的工作原理 94
7.2.1 定时器/计数器的实质 94
7.2.2 定时器/计数器的结构与工作原理 95
7.3 定时器/计数器的控制寄存器 97
7.3.1 工作方式寄存器 97
7.3.2 控制寄存器 98
7.4 定时器/计数器的工作方式 98
7.4.1 方式0 98
7.4.2 方式1 99
7.4.3 方式2 100
7.4.4 方式3 100
7.5 计数器对外部输入脉冲频率的要求 101
7.6 定时器/计数器应用程序设计 102
习题与思考 113
第8章 51单片机的串行接口 115
8.1 串行通信基础 115
8.1.1 同步通信与异步通信 115
8.1.2 串行通信的传输方向 117
8.2 51单片机串行接口的结构 118
8.3 串行接口相关特殊功能控制寄存器 119
8.3.1 串行接口控制寄存器 119
8.3.2 电源控制寄存器 120
8.4 串行接口的4种工作方式 120
8.4.1 工作方式0 120
8.4.2 工作方式1 121
8.4.3 工作方式2和工作方式3 121
8.5 波特率的设定方法 122
8.5.1 波特率的定义 122
8.5.2 波特率的计算 122
8.6 串行接口的电平转换 123
8.7 多机通信 124
8.8 串行接口应用编程实例 125
习题与思考 127
第9章 单片机系统的扩展 129
9.1 单片机系统扩展概述 129
9.1.1 最小应用系统 129
9.1.2 单片机扩展总线结构与常用扩展方法 130
9.2 常用的扩展器件简介 131
9.2.1 锁存器74LS373 131
9.2.2 总线驱动器74LS244和74LS245 131
9.2.3 3-8译码器74LS138 132
9.3 存储器的扩展 132
9.4 程序存储器的扩展 134
9.4.1 存储器简介 134
9.4.2 程序存储器扩展举例 134
9.5 数据存储器的扩展 137
9.5.1 数据存储器概述 137
9.5.2 访问外部数据存储器的读/写操作时序 137
9.6 程序存储器和数据存储器的综合扩展 139
9.7 I/O接口的扩展 140
9.7.1 I/O接口扩展概述 140
9.7.2 I/O接口扩展常用芯片 140
习题与思考 145
第10章 单片机与输入/输出外部设备的接口电路设计 147
10.1 单片机与LED数码管的显示电路设计 147
10.1.1 LED数码管的结构 147
10.1.2 LED数码管静态显示电路的设计与工作原理 150
10.1.3 LED数码管动态显示电路的设计与工作原理 155
10.2 单片机与键盘接口电路设计 157
10.2.1 键盘的工作原理 157
10.2.2 独立式键盘电路的设计与工作原理 159
10.2.3 矩阵式键盘电路的设计与工作原理 166
10.3 单片机与点阵数码管的显示电路设计 176
10.3.1 点阵数码管的结构 176
10.3.2 点阵数码管显示电路设计与工作原理 177
10.3.3 点阵数码管应用编程 178
10.4 单片机与液晶显示器的接口 180
10.4.1 液晶显示器概述 180
10.4.2 点阵字符型液晶显示模块介绍 181
10.4.3 单片机与液晶显示器的接口及软件编程 185
习题与思考 188
第11章 单片机的串行扩展技术 189
11.1 单总线串行扩展 190
11.2 SPI总线串行扩展 192
11.3 I2C总线串行扩展 195
11.3.1 I2C串行总线概述 195
11.3.2 单片机与I2C总线的接口设计及编程 197
习题与思考 204
第12章 单片机与D/A、A/D转换器的接口 205
12.1 转换器的主要技术指标 205
12.2 单片机与D/A转换器的接口 206
12.2.1 10位D/A转换器芯片TLC5615的主要功能及特性 206
12.2.2 D/A转换器TLC5615的接口设计 208
12.3 单片机与A/D转换器的接口 210
12.3.1 12位逐次逼近型AD574的主要功能及特性 211
12.3.2 A/D转换器AD574的接口设计 213
12.3.3 16位串行A/D转换器AD7705的主要功能及特性 216
12.3.4 A/D转换器AD7705的接口设计 217
习题与思考 222
第13章 单片机应用设计与调试 223
13.1 单片机应用设计流程 223
13.2 单片机应用软、硬件设计 225
13.2.1 单片机应用硬件设计 225
13.2.2 单片机应用软件设计 228
13.2.3 典型的单片机应用系统 229
13.3 单片机应用系统的仿真开发与调试 229
13.3.1 单片机的系统仿真 230
13.3.2 仿真机的仿真调试 232
13.4 单片机应用系统的抗干扰与可靠性设计 232
13.4.1 AT89S51片内看门狗定时器的使用 233
13.4.2 软件滤波 233
13.4.3 开关量输入/输出软件抗干扰设计 234
13.4.4 过程通道干扰的抑制措施——隔离 235
习题与思考 236
实战篇 239
第14章 基本输出程序设计 239
14.1 单只发光二极管闪烁 239
14.2 单口双向暗走马灯 242
14.3 三色灯的实现 243
14.4 单只数码管静态显示1位数字 245
14.5 4只数码管静态显示4个数字 246
14.6 4只数码管动态显示4个数字 248
14.7 简易交通灯的设计 250
14.8 2只数码管动态显示0~99计数 252
14.9 简易音乐盒的设计 254
第15章 基本输入程序设计 259
15.1 按键控制LED花样灯 259
15.2 按键控制1位数码管 262
15.3 按键控制电机PWM 264
15.4 数码管显示4×4键盘矩阵按键键值 268
第16章 中断系统程序设计 271
16.1 外部中断0控制LED 271
16.2 2个外部中断的应用 272
16.3 定时器/计数器控制音乐演奏 275
16.4 两个定时器的应用 279
16.5 倒计时秒表 281
16.6 用计数器中断实现100以内的按键计数 284
16.7 定时器控制数码管动态显示 285
16.8 甲机通过串行接口控制乙机LED闪烁 288
第17章 综合应用设计 293
17.1 16×64 LED点阵屏花样滚屏显示汉字 293
17.2 DS18B20多点温度监测系统设计 302
17.3 SHT11数字温—湿度测量系统设计 313
17.4 直流电机驱动控制 322
17.5 基于磁阻传感器的电子指南针设计 328
附录1 常用C51库函数 345
附录2 C51主要关键字 355
附录3 AT89X51.H文件 357
附录4 Proteus元器件库中英文对照表 363
附录5 Proteus常用元器件中英文对照表 369
参考文献 371