第一篇 基础篇 2
第1章C51单片机基础知识 2
1.1单片机C语言与汇编语言 2
1.1.1单片机汇编语言与C语言程序设计对照 2
1.1.2汇编语言和C语言混合编程 3
1.2 C51单片机对标淮C语言的扩展 4
1.2.1数据类型 4
1.2.2存储类型及存储区 5
1.2.3存储器模式 6
1.2.4特殊功能寄存器 7
1.2.5 C51指针 9
1.2.6函数 10
1.2.7重入函数 14
1.2.8中断函数 15
1.2.9绝对地址访问 17
1.2.10动态存储分配 17
1.3 C51使用规范 18
1.4思考与练习 21
第2章Keil C51应用技巧 22
2.1关于开发环境 22
2.2菜单条、工具栏和快捷键 24
2.3创建项目实例 27
2.4 μVision2功能 30
2.4.1全文查找 30
2.4.2资源浏览器 31
2.4.3使用工具菜单 33
2.5编写优化代码 34
2.6使用技巧 35
2.6.1将μVisionl的项目导入到μVision2 35
2.6.2 Build后运行外部程序 36
2.6.3为列表文件和目标文件设置单独的文件夹 36
2.6.4使用μVision2元器件库中没有列出的微控制器 37
2.6.5复制工具设置到一个新的目标中 38
2.6.6文件和文件组的特定选项——属性对话框 38
2.7思考与练习 39
第3章51单片机基础知识 41
3.1单片机引脚及功能 41
3.1.1电源引脚及时钟引脚 41
3.1.2控制引脚 42
3.1.3 I/O引脚 42
3.2存储器的结构 43
3.2.1程序存储器 44
3.2.2内部数据存储器 44
3.2.3特殊功能寄存器 46
3.2.4位地址空间 51
3.2.5外部数据存储器 51
3.3并行I/O口 52
3.3.1 I/O的内部结构 52
3.3.2 I/O的读操作 55
3.3.3 I/O的写操作及负载能力 57
3.4复位电路 58
3.4.1复位时各寄存器的状态 58
3.4.2常用复位控制芯片 59
3.5时钟电路 60
3.5.1内部时钟 60
3.5.2外部时钟 61
3.5.3时钟信号输出 61
3.6思考与练习 62
第二篇 实践篇 64
第4章 定时器/计数器模块与应用 64
4.1定时器/计数器概述 64
4.1.1定时的方法 64
4.1.2定时器的两种工作模式 64
4.2定时器/计数器的结构 65
4.2.1结构 65
4.2.2方式寄存器 66
4.2.3控制寄存器 66
4.3定时器/计数器的工作方式 67
4.3.1方式0 67
4.3.2方式1 67
4.3.3方式2 68
4.3.4方式3 68
4.4定时器/计数器编程与应用 69
4.4.1初始化步骤 69
4.4.2定时器/计数器工作模式0及其程序设计 69
4.4.3定时器/计数器工作模式1及其程序设计 70
4.4.4定时器/计数器工作模式2及其程序设计 73
4.4.5定时器/计数器工作模式3及其程序设计 75
4.5综合实例 76
4.5.1用AT89C51单片机产生报警声 76
4.5.2电压/频率转换 77
4.6思考与练习 79
第5章 中断系统模块与应用 80
5.1中断系统概述 80
5.1.1中断的定义 80
5.1.2中断的作用 80
5.2 MCS51的中断源及分类 81
5.2.1 MCS51中断源的名称 81
5.2.2中断的分类 82
5.3中断标志与控制 82
5.4中断的响应过程 86
5.4.1中断响应 86
5.4.2中断返回过程 86
5.4.3中断响应时间 86
5.4.4中断请求的撤除 87
5.5外部中断的方式选择 87
5.5.1电平触发方式 87
5.5.2边沿触发方式 87
5.6中断源程序设计 88
5.6.1中断系统初始化 88
5.6.2中断服务程序的写法 88
5.6.3外部中断及其程序设计 88
5.6.4定时中断及其程序设计 90
5.6.5串行中断及其程序设计 91
5.7综合实例 92
5.8思考与练习 94
第6章 键盘及显示模块与应用 95
6.1显示接口技术 95
6.1.1 LED结构与原理 95
6.1.2 LCD结构与原理 98
6.1.3液晶显示模块举例 99
6.2键盘接口技术 106
6.2.1键盘的种类 106
6.2.2按键的识别 106
6.2.3键盘结构及其应用 107
6.3典型程序设计实例 109
6.4思考与练习 119
第7章A/D和D/A转换模块与应用 120
7.1 A/D转换模块 120
7.1.1 A/D转换器概述 120
7.1.2转换器的性能指标 121
7.1.3 ADC0809 121
7.1.4 TLC2543 123
7.2 D/A转换模块 125
7.2.1 D/A转换器的性能指标 125
7.2.2 DAC0832 126
7.2.3 TLC5617 129
7.3典型实例 131
7.4思考与练习 137
第8章 串行通信模块与应用 138
8.1串行通信的基本概念 138
8.2串行通信口的结构 140
8.2.1串行通信口的控制 141
8.2.2串行控制寄存器SCON 141
8.2.3电源控制寄存器PCON 143
8.2.4四种工作方式与波特率的设置 143
8.3串行接口工作方式原理及应用 144
8.3.1串行接口方式0及其程序设计 144
8.3.2串行接口方式1及其程序设计 147
8.3.3串行接口方式2及其程序设计 148
8.3.4串行接口方式3及其程序设计 150
8.4综合实例——单片机通信系统 152
8.4.1硬件设计 152
8.4.2软件设计 156
8.5思考与练习 162
第9章 单片机系统扩展 163
9.1外部总线扩展 163
9.2程序存储器扩展 164
9.2.1工作原理 164
9.2.2程序存储器扩展类型 165
9.2.3程序存储器扩展举例 167
9.3数据存储器扩展 169
9.3.1工作原理 169
9.3.2数据存储器扩展类型 169
9.3.3数据存储器扩展举例 171
9.4并行1/O口扩展 172
9.4.1 74LS系列扩展1/O口 172
9.4.2 8155扩展1/O口 177
9.5看门狗技术扩展 180
9.5.1工作原理 180
9.5.2软件看门狗 181
9.5.3硬件看门狗 181
9.6思考与练习 183
第三篇 应用篇 186
第10章 五子棋游戏设计 186
10.1概述 186
10.2设计思路分析 186
10.3硬件电路设计 187
10.3.1最小系统设计 187
10.3.2双色LED阵列 189
10.3.3键盘设计 190
10.3.4点阵驱动电路 190
10.4软件设计 192
10.4.1主程序设计 192
10.4.2程序初始化 192
10.4.3键盘扫描及棋子扫描 193
10.4.4判断胜负 195
10.4.5胜利后棋盘清零 197
10.4.6驱动子程序设计 198
10.4.7示例程序 198
10.5综合调试 209
10.6小结 210
第11章 数控直流电源设计 211
11.1概述 211
11.2设计思路分析 212
11.3系统硬件设计 213
11.3.1最小系统 213
11.3.2 D/A电路 216
11.3.3数码管显示 218
11.3.4按键控制 219
11.4软件部分设计 220
11.4.1主程序设计 220
11.4.2手动步进 221
11.4.3自动步进 221
11.4.4固定值输出 222
11.4.5按键锁定 223
11.4.6三角波 223
11.4.7超负荷报警 223
11.4.8示例程序 224
11.5系统调试与检测 227
11.5.1系统调试 227
11.5.2系统检测 229
11.5.3误差分析 229
11.6小结 230
第12章 数字温度计设计 231
12.1概述 231
12.2设计思路分析 231
12.2.1技术指标 231
12.2.2设计原理 231
12.3硬件电路设计 232
12.3.1晶振电路 232
12.3.2复位电路 232
12.3.3电源电路 233
12.3.4温度检测电路 233
12.3.5报警电路 234
12.3.6串行通信电路 235
12.4软件设计 235
12.4.1主程序 235
12.4.2温度检测 235
12.4.3报警 236
12.4.4串行通信 237
12.4.5示例程序 237
12.5综合调试 242
12.5.1硬件调试 242
12.5.2软件调试 243
12.6小结 244
第13章 太阳能热水温控上水系统设计 245
13.1概述 245
13.2设计思路分析 245
13.2.1系统概述 246
13.2.2方案设计 246
13.3硬件电路设计 247
13.3.1单片机最小系统 247
13.3.2显示电路 248
13.3.3水位测量电路 248
13.3.4水温测量电路 249
13.3.5控制电路 250
13.3.6其他外围电路 251
13.4软件设计 251
13.4.1主程序设计 252
13.4.2水温/水位设置 253
13.4.3显示设计 255
13.5综合调试 257
13.6小结 257
第14章 智能抢答器系统设计 258
14.1概述 258
14.2设计思路分析 258
14.3系统硬件设计 260
14.3.1最小系统设计 260
14.3.2抢答识别模块 262
14.3.3主控台显示模块 262
14.3.4分数显示模块 262
14.3.5报警模块 264
14.4系统软件设计 264
14.4.1总体程序流程图 264
14.4.2示例程序 265
14.5综合调试 272
14.5.1硬件调试 272
14.5.2软件调试 273
14.6小结 273
第15章 教室灯光控制器系统设计 274
15.1概述 274
15.2设计思路分析 274
15.3教室灯光控制器的硬件设计 275
15.3.1电源电路设计 275
15.3.2数码管显示电路设计 276
15.3.3 A/D转换电路设计 277
15.3.4感光电路设计 278
15.3.5人体感应电路设计 279
15.3.6复位电路设计 282
15.3.7时钟电路设计 282
15.3.8灯光驱动电路设计 282
15.4教室灯光控制器的软件设计 283
15.4.1主程序流程图 283
15.4.2主要程序 283
15.5综合调试 286
15.6小结 287
第16章 数字万用表设计 288
16.1概述 288
16.2设计思路分析 289
16.3硬件电路设计 289
16.3.1按键控制模块及量程自动选择模块设计 290
16.3.2 A/D转换模块设计 292
16.3.3动态显示模块设计 295
16.3.4直流电压模块设计 296
16.3.5直流电流模块设计 297
16.3.6交流电压模块设计 298
16.3.7电容与电感模块设计 300
16.3.8电阻模块设计 302
16.3.9电源模块设计 303
16.4系统软件设计 304
16.4.1系统主程序设计 304
16.4.2系统按键扫描子程序设计 305
16.4.3系统采样平均值子程序设计 305
16.4.4系统动态显示子程序设计 306
16.4.5测试模块数据处理子程序设计 307
16.4.6示例程序 308
16.5综合调试 313
16.5.1系统硬件调试故障分析和解决办法 313
16.5.2系统软件调试中的问题 314
16.6小结 314