基础篇 3
第1章 单片机基础知识概述 3
1.1单片机概述 3
1.2单片机的特点及应用领域 4
1.3单片机产品的设计过程 5
1.3.1单片机实验环境的搭建 5
1.3.2设计过程及注意事项 7
1.4单片机的代表性产品 8
1.5单片机学习的预备知识 11
第2章 单片机的硬件结构及工作原理 14
2.1单片机的片内结构 14
2.2单片机的封装与引脚 15
2.2.1常用IC的封装形式 15
2.2.2 AT89S51单片机的引脚及功能 15
2.3 AT89S51单片机的CPU 16
2.3.1运算器 16
2.3.2控制器 17
2.3.3指令执行的基本过程 17
2.4 AT89S51单片机的最小系统 18
2.4.1复位电路 18
2.4.2时钟电路与时序 19
2.5片内存储器结构 21
2.5.1程序存储器 21
2.5.2片内数据存储器 22
2.5.3特殊功能寄存器 24
2.5.4片外数据存储器 26
第3章 Keil C51编程基础 27
3.1 Keil C51简介 27
3.1.1 C51与标准C的异同 27
3.1.2 C51与汇编语言的异同 27
3.2 C51程序设计基础 28
3.2.1数据类型 28
3.2.2运算符及表达式 30
3.2.3常量与变量 31
3.2.4存储类型及存储区 33
3.2.5循环控制流程语句 34
3.2.6数组 37
3.2.7函数 38
3.2.8指针 41
3.2.9预处理 42
3.2.10 C51使用规范 43
第4章 单片机开发工具软件 44
4.1集成开发环境Keil μVision4 44
4.1.1 Keil μVision4简介 44
4.1.2软件启动和运行 44
4.1.3使用方法 44
4.2仿真开发工具Proteus 54
4.2.1 Proteus简介 54
4.2.2软件的启动和运行 54
4.2.3软件的使用方法 55
4.2.4软件编程 62
4.2.5仿真调试 63
第5章 片内并行I/O接口 65
5.1 P0口的工作原理 65
5.1.1 P0口作为地址/数据总线 65
5.1.2 P0口做通用I/O接口使用 66
5.2 P1口的工作原理 66
5.3 P2口的工作原理 67
5.4 P3口的工作原理 67
第6章 单片机中断系统 70
6.1中断技术概述 70
6.2中断系统结构 71
6.2.1中断源 72
6.2.2中断请求标志寄存器 72
6.2.3中断允许寄存器 73
6.2.4中断优先级寄存器 74
6.2.5外部中断的触发方式选择 75
6.2.6中断请求的撤销 76
6.2.7外部中断应用程序设计 76
第7章 单片机的定时器/计数器 82
7.1定时器/计数器技术概述 82
7.2定时器/计数器的工作原理 82
7.2.1定时器/计数器的实质 82
7.2.2定时器/计数器的结构与工作原理 83
7.3定时器/计数器的控制寄存器 84
7.3.1工作方式寄存器 85
7.3.2控制寄存器 85
7.4定时器/计数器的工作方式 86
7.4.1方式0 86
7.4.2方式1 86
7.4.3方式2 87
7.4.4方式3 88
7.5计数器对外部输入脉冲频率的要求 89
7.6定时器/计数器应用程序设计 89
第8章 51单片机的串行接口 101
8.1串行通信基础 101
8.1.1同步通信与异步通信 101
8.1.2串行通信的传输方向 102
8.2 51单片机串行接口的结构 103
8.3串行接口相关特殊功能控制寄存器 104
8.3.1串行接口控制寄存器 104
8.3.2特殊功能寄存器 105
8.3.3中断使能特殊功能寄存器 105
8.3.4中断优先级特殊功能寄存器 106
8.4串行接口的4种工作方式 106
8.4.1工作方式0 106
8.4.2工作方式1 106
8.4.3工作方式2和工作方式3 106
8.5波特率的设定方法 108
8.5.1波特率的定义 108
8.5.2波特率的计算 108
8.6串行接口的电平转换 108
8.7多机通信 110
8.8串行接口应用编程实例 110
第9章 单片机系统的扩展 113
9.1单片机系统扩展概述 113
9.1.1最小应用系统 113
9.1.2单片机扩展总线结构与常用扩展方法 113
9.2常用的扩展器件简介 114
9.2.1锁存器74LS373 114
9.2.2总线驱动器74 LS244和74LS245 115
9.2.3 3-8译码器74LS138 115
9.3存储器的扩展 116
9.4程序存储器的扩展 118
9.4.1存储器简介 118
9.4.2程序存储器扩展举例 118
9.5数据存储器的扩展 121
9.5.1数据存储器概述 121
9.5.2访问外部数据存储器的读/写操作时序 121
9.6程序存储器和数据存储器的综合扩展 122
9.7 I/O接口的扩展 123
9.7.1 I/O接口扩展概述 123
9.7.2 I/O接口扩展常用芯片 124
第10章 单片机与输入/输出外部设备的接口电路设计 127
10.1单片机与LED数码管的显示电路设计 127
10.1.1 LED数码管的结构 127
10.1.2 LED数码管静态显示电路的设计与工作原理 128
10.1.3 LED数码管动态显示电路的设计与工作原理 133
10.2单片机与键盘接口电路设计 136
10.2.1键盘的工作原理 136
10.2.2独立式键盘电路的设计与工作原理 138
10.2.3矩阵式键盘电路的设计与工作原理 143
10.3单片机与点阵数码管的显示电路设计 151
10.3.1点阵数码管的结构 151
10.3.2点阵数码管显示电路设计与工作原理 152
10.3.3点阵数码管应用编程 153
10.4单片机与液晶显示器的接口 155
10.4.1液晶显示器概述 155
10.4.2点阵字符型液晶显示模块介绍 155
10.4.3单片机与液晶显示器的接口及软件编程 159
第11章 单片机的串行扩展技术 163
11.1单总线串行扩展 164
11.2 SPI总线串行扩展 166
11.3 I2C总线串行扩展 169
11.3.1 I2C串行总线概述 169
11.3.2单片机与I2C总线的接口设计及编程 170
第12章 单片机与D/A、A/D转换器的接口 177
12.1转换器的主要技术指标 177
12.2单片机与D/A转换器的接口 178
12.2.1 10位D/A转换器芯片TLC5615的主要功能及特性 178
12.2.2 D/A转换器TLC5615的接口设计 180
12.3单片机与A/D转换器的接口 182
12.3.1 12位逐次逼近型AD574的主要功能及特性 182
12.3.2 A/D转换器AD574的接口设计 184
12.3.3 16位串行A/D转换器AD7705的主要功能及特性 186
12.3.4 A/D转换器AD7705的接口设计 188
第13章 单片机应用设计与调试 194
13.1单片机应用设计流程 194
13.2单片机应用软、硬件设计 196
13.2.1单片机应用硬件设计 196
13.2.2单片机应用软件设计 198
13.2.3典型的单片机应用系统 199
13.3单片机应用系统的仿真开发与调试 200
13.3.1单片机的系统仿真 200
13.3.2仿真机的仿真调试 202
13.4单片机应用系统的抗干扰与可靠性设计 203
13.4.1 AT89S51片内看门狗定时器的使用 203
13.4.2软件滤波 203
13.4.3开关量输入/输出软件抗干扰设计 204
13.4.4过程通道干扰的抑制措施——隔离 205
13.5单片机应用设计举例 206
实战篇 211
第14章 基本输出程序设计 211
14.1单只发光二极管闪烁 211
14.1.1功能要求 211
14.1.2硬件电路设计 211
14.1.3软件程序设计 211
14.2单口双向流水灯 213
14.2.1功能要求 213
14.2.2硬件电路设计 213
14.2.3软件程序设计 213
14.3花样灯 214
14.3.1功能要求 214
14.3.2硬件电路设计 214
14.3.3软件程序设计 215
14.4单只数码管静态显示1位数字 216
14.4.1功能要求 216
14.4.2硬件电路设计 216
14.4.3软件程序设计 217
14.5 4只数码管静态显示4个数字 218
14.5.1功能要求 218
14.5.2硬件电路设计 218
14.5.3软件程序设计 218
14.6 4只数码管循环显示4个数字 219
14.6.1功能要求 219
14.6.2硬件电路设计 219
14.6.3软件程序设计 219
14.7 4只数码管滚动显示字符串“HELLO” 221
14.7.1功能要求 221
14.7.2硬件电路设计 221
14.7.3软件程序设计 221
14.8 2只数码管动态显示0~99计数 223
14.8.1功能要求 223
14.8.2硬件电路设计 223
14.8.3软件程序设计 223
14.9 4只数码管动态显示0~9 999计数 225
14.9.1功能要求 225
14.9.2硬件电路设计 225
14.9.3软件程序设计 226
第15章 基本输入程序设计 229
15.1按键控制LED灯 229
15.1.1硬件电路设计 229
15.1.2 1个按键控制1位LED闪烁 229
15.1.3 1个按键控制8位LED移位 230
15.1.4 4个按键控制LED呈4种花样灯显示 231
15.2按键控制1位数码管 234
15.2.1硬件电路设计 234
15.2.2 1个按键控制1位数码管0~9循环显示 234
15.2.3 2个按键控制1位数码管加、减显示 235
15.3 2个按键控制2位数码管加、减显示 236
15.3.1功能要求 236
15.3.2硬件电路设计 236
15.3.3软件程序设计 236
15.4 4×4键盘矩阵控制LED显示 238
15.4.1功能要求 238
15.4.2硬件电路设计 238
15.4.3软件程序设计 239
15.5数码管显示4×4键盘矩阵按键键值 241
15.5.1功能要求 241
15.5.2硬件电路设计 241
15.5.3软件程序设计 241
第16章 中断系统程序设计 244
16.1外部中断0控制LED 244
16.1.1功能要求 244
16.1.2硬件电路设计 244
16.1.3软件程序设计 244
16.2外部中断0及外部中断1中断控制LED 245
16.2.1功能要求 245
16.2.2硬件电路设计 246
16.2.3软件程序设计 246
16.3定时器/计数器定时控制流水灯 248
16.3.1功能要求 248
16.3.2硬件电路设计 248
16.3.3软件程序设计 248
16.4两个定时器的应用 249
16.4.1功能要求 249
16.4.2硬件电路设计 249
16.4.3软件程序设计 249
16.5倒计时秒表 251
16.5.1功能要求 251
16.5.2硬件电路设计 251
16.5.3软件程序设计 252
16.6用计数器中断实现100以内的按键计数 254
16.6.1功能要求 254
16.6.2硬件电路设计 254
16.6.3软件程序设计 254
16.7定时器控制数码管动态显示 255
16.7.1功能要求 255
16.7.2硬件电路设计 255
16.7.3软件程序设计 255
16.8甲机通过串行接口控制乙机LED闪烁 257
16.8.1功能要求 257
16.8.2硬件电路设计 257
16.8.3软件程序设计 257
第17章 综合应用设计 261
17.1 16×64 LED点阵屏花样滚屏显示汉字 261
17.1.1功能要求 261
17.1.2硬件电路设计 261
17.1.3软件程序设计 263
17.2 DS18B20多点温度监测系统设计 269
17.2.1功能要求 269
17.2.2硬件电路设计 269
17.2.3软件程序设计 272
17.3 SHT11数字温一湿度测量系统设计 279
17.3.1功能要求 279
17.3.2硬件电路设计 279
17.3.3软件程序设计 281
17.4直流电机驱动控制 287
17.4.1功能要求 287
17.4.2硬件电路设计 287
17.4.3软件程序设计 288
17.5教室人数采集系统 292
17.5.1功能要求 292
17.5.2硬件电路设计 292
17.5.3软件程序设计 297
附录1常用C51库函数 308
附录2 Proteus元器件库中英文对照表 319
附录3 Proteus常用元器件中英文对照表 324
参考文献 326