项目1 发光二极管LED控制 1
1.1 工作模块1 点亮一个LED 1
1.1.1 用Proteus设计第一个LED控制电路 2
1.1.2 用KeilC51设计第一个C语言LED控制程序 6
1.1.3 用Proteus仿真运行调试 9
1.2 认识单片机 10
1.2.1 单片机概述 10
1.2.2 AT89S52单片机结构 14
1.2.3 AT89S52单片机引脚功能 16
1.2.4 AT89S52单片机最小系统 18
【技能训练1-1】单片机最小系统应用——开关控制LED点亮 19
1.3 工作模块2 LED闪烁控制 21
1.3.1 LED闪烁控制设计与实现 21
1.3.2 LED闪烁控制电路焊接制作 24
1.3.3 C语言程序的基本构成 26
1.3.4 C语言基本语句 27
1.4 技能拓展 音频控制应用 29
1.4.1 音频控制电路 29
1.4.2 音频控制程序 29
【技能训练1-2】报警产生器 30
关键知识点小结 30
问题与讨论 32
项目2 LED循环点亮控制 34
2.1 工作模块3 LED循环点亮控制 34
2.1.1 LED循环点亮电路设计 35
2.1.2 LED循环点亮电路的PCB设计 35
2.1.3 LED循环点亮程序设计 37
2.1.4 LED循环点亮控制电路焊接制作 38
2.1.5 并行I/O端口电路 39
【技能训练2-1】P0口外接上拉电阻 43
2.2 MCS-51单片机内存空间 44
2.2.1 数据存储器 45
2.2.2 特殊功能寄存器 47
2.2.3 “头文件包含”处理 50
2.2.4 程序存储器 51
2.3 工作模块4开关控制LED循环点亮 53
2.3.1 开关控制LED循环点亮电路设计 53
2.3.2 开关控制LED循环点亮程序设计 53
2.3.3 C51数据类型 54
2.3.4 C语言常量与变量 58
2.4 工作模块5 步进电机控制 60
2.4.1 认识步进电机 60
2.4.2 步进电机控制电路设计 62
2.4.3 步进电机控制程序设计 62
2.5 技能拓展 ULN2003A驱动器应用 64
2.5.1 ULN2003A特点 64
2.5.2 ULN2003A引脚功能 64
【技能训练2-2】单片机驱动继电器电路设计 65
关键知识点小结 65
问题与讨论 66
项目3 数码管显示控制 69
3.1 工作模块6 数码管循环显示0~9 69
3.1.1 认识数码管 70
3.1.2 数码管循环显示0~9电路设计 72
3.1.3 数码管显示程序设计 73
3.1.4 数码管循环显示0~9电路焊接制作 74
【技能训练3-1】共阳极LED数码管应用 75
3.2 C语言语句结构 76
3.2.1 关系运算符和关系表达式 76
3.2.2 逻辑运算符和逻辑表达式 77
3.2.3 if语句 78
3.2.4 switch语句 80
3.2.5 循环结构控制语句 81
3.2.6 break语句和continue语句 83
3.3 工作模块7 多个数码管动态扫描显示 84
3.3.1 多个数码管动态显示电路设计 84
3.3.2 多个数码管动态显示程序设计 85
3.3.3 C语言数组 86
3.4 工作模块8 0~99计数器显示(静态显示) 89
3.4.1 0~99计数显示电路设计 89
3.4.2 0~99计数显示程序设计 90
3.4.3 C语言函数 91
3.5 技能拓展 七段字形译码器74LS47应用 93
3.5.1 认识74LS47 93
3.5.2 74LS47引脚功能 94
【技能训练3-2】使用74LS47实现0~99计数显示 94
关键知识点小结 95
问题与讨论 96
项目4 键盘的设计与实现 99
4.1 工作模块9 独立式键盘设计与实现 99
4.1.1 认识键盘 100
4.1.2 独立式键盘电路设计 100
4.1.3 独立式键盘程序设计 101
4.1.4 独立式键盘电路焊接制作 102
4.1.5 键盘防抖动措施 103
【技能训练4-1】一键多功能按键识别设计与实现 104
4.2 工作模块10 矩阵式键盘设计与实现 106
4.2.1 矩阵式键盘的结构与原理 106
4.2.2 矩阵式键盘电路设计 108
4.2.3 矩阵式键盘程序设计 109
4.3 工作模块11 中断方式矩阵键盘 111
4.3.1 中断概念 111
4.3.2 中断方式矩阵键盘电路设计 112
4.3.3 中断方式矩阵键盘程序设计 112
4.4 MCS-51单片机中断系统 114
4.4.1 单片机中断源 114
4.4.2 中断系统结构 115
4.4.3 中断有关的4个特殊功能寄存器 116
4.4.4 中断处理过程 119
4.4.5 C语言中断服务函数 122
4.5 技能拓展 外部中断源的扩展 123
4.5.1 用定时器扩展外部中断源 123
4.5.2 中断加查询的扩展方法 123
【技能训练4-2】利用外部中断0扩展4个外部中断 124
关键知识点小结 125
问题与讨论 126
项目5 定时器/计数器综合应用 128
5.1 工作模块12 生产线自动打包系统 128
5.1.1 认识定时器/计数器 129
5.1.2 生产线自动打包控制电路 130
5.1.3 生产线自动打包控制程序 131
5.2 工作模块13 霓虹灯控制系统 132
5.2.1 定时器/计数器工作方式 133
5.2.2 定时器/计数器有关寄存器 135
5.2.3 霓虹灯控制系统设计与实现 137
【技能训练5-1】0~59秒数码显示(定时器) 139
5.3 工作模块14 电子钟设计与实现 140
5.3.1 电子钟电路设计 141
5.3.2 电子钟程序设计 142
5.3.3 电子钟电路焊接制作 144
5.4 技能拓展 INTRINS.H头文件的应用 145
5.4.1 crol、irol和lrol函数 145
5.4.2 crot、iror和lror函数 145
5.4.3 nop函数 146
5.4.4 testbit函数 146
【技能训练5-2】用crol函数实现LED循环点亮 146
关键知识点小结 147
问题与讨论 148
项目6 模拟量输入输出设计与实现 150
6.1 工作模块15 模/数转换LED显示 150
6.1.1 模拟量输入输出概述 151
6.1.2 模/数转换LED显示电路 151
6.1.3 模/数转换LED显示程序 152
6.1.4 模/数转换LED显示电路焊接制作 153
6.2 ADC0808/ADC0809模数转换器 154
6.2.1 认识ADC0808/ADC0809模数转换器 154
6.2.2 ADC0808/ADC0809结构及引脚 154
6.2.3 ADC0808/ADC0809工作过程及编程方法 156
【技能训练6-1】采用中断方式完成模/数转换LED显示 157
6.3 工作模块16 数字电压表设计与实现 159
6.3.1 数字电压表电路设计 159
6.3.2 数字电压表程序设计 160
6.3.3 C语言结构体类型 162
6.3.4 结构体数组 164
【技能训练6-2】结构体数组应用 164
6.4 工作模块17 信号发生器设计与实现 165
6.4.1 认识DAC0832数模转换器 166
6.4.2 信号发生器电路设计 169
6.4.3 信号发生器程序设计 170
6.5 技能拓展 直流电机转速控制 171
6.5.1 什么是PWM 171
6.5.2 占空比 172
6.5.3 直流电机转速控制 172
【技能训练6-3】基于ADC0808/0809的直流电机转速控制 172
关键知识点小结 174
问题与讨论 175
项目7 单片机串行通信设计与实现 176
7.1 工作模块18 单片机点对点数据传输 176
7.1.1 串行通信基本知识 177
7.1.2 单片机点对点数据传输电路设计 179
7.1.3 单片机点对点数据传输程序设计 181
7.2 工作模块19 水塔水位单片机远程监控系统 182
7.2.1 单片机串行口结构 182
7.2.2 串行通信设置 185
7.2.3 水塔水位单片机远程监控系统设计 187
7.2.4 水塔水位单片机远程监控系统焊接制作 191
7.3 工作模块20 单片机点对多数据传输 192
7.3.1 MCS-51多机通信技术 192
7.3.2 单片机点对多数据传输电路设计 193
7.3.3 单片机点对多数据传输程序设计 195
【技能训练7-1】单片机串行口扩展I/O口电路设计 197
7.4 技能拓展 RS-485串行接口应用 199
【技能训练7-2】全双工RS-485连接电路设计与实现 201
关键知识点小结 201
问题与讨论 203
项目8 键盘控制电机方向和转速 204
8.1 单片机产品开发 204
8.1.1 单片机产品的结构 205
8.1.2 单片机产品开发流程 205
8.2 工作模块21 步进电机控制系统设计与实现 208
8.2.1 步进电机控制技术 208
8.2.2 步进电机控制系统电路设计 209
8.2.3 步进电机控制系统程序设计 210
8.3 工作模块22 直流电机控制系统设计与实现 213
8.3.1 直流电机控制技术 213
8.3.2 直流电机控制系统电路设计 215
8.3.3 直流电机控制系统程序设计 216
8.4 技能拓展 步进电机智能控制 219
8.4.1 步进电机智能控制思路 219
8.4.2 步进电机智能控制组成 219
【技能训练8-1】步进电机智能控制设计 220
关键知识点小结 221
问题与讨论 222
项目9 按键设置液晶电子钟 223
9.1 RT12864阵型液晶显示模块 223
9.1.1 认识RT12864液晶屏 223
9.1.2 RT12864液晶显示模块内部结构 225
9.1.3 控制指令及相应代码 227
9.2 工作模块23 液晶电子钟电路设计与实现 230
9.2.1 按键设置电路设计 230
9.2.2 液晶显示电路设计 231
9.2.3 按键设置液晶电子钟电路设计 231
9.3 工作模块24 液晶电子钟程序设计与实现 232
9.3.1 按键设置程序设计 232
9.3.2 时间程序设计 235
9.3.3 液晶显示程序设计 237
9.4 技能拓展 DS1302时钟芯片的应用 243
9.4.1 认识DS1302 243
9.4.2 DS1302寄存器 244
【技能训练9-1】使用DS1302芯片实现液晶电子钟电路设计 244
关键知识点小结 245
问题与讨论 247
项目10 8路温度采集监控系统 248
10.1 DS18B20温度传感器 248
10.1.1 认识DS18B20 249
10.1.2 DS18B20内部结构及功能 251
10.1.3 DS18B20通信协议 253
10.2 工作模块25 8路温度采集监控电路设计 256
10.2.1 温度采集电路设计 256
10.2.2 监控电路设计 257
10.2.3 8路温度采集监控电路设计与实现 257
10.3 工作模块26 8路温度采集监控程序设计 259
10.3.1 键盘处理程序设计 259
10.3.2 8路温度采集程序设计 260
10.3.3 8路温度显示程序设计 261
10.4 技能拓展12C串行扩展 264
10.4.1 I2C总线接口电路 264
10.4.2 12C总线数据传送操作 264
【技能训练10-1】基于AT24C1024片外程序存储器扩展 267
关键知识点小结 268
问题与讨论 269
项目11 点阵显示设计与实现 270
11.1 工作模块27 8×8LED点阵显示设计 270
11.1.1 认识LED点阵显示屏 271
11.1.2 8×8LED点阵显示电路设计 272
11.1.3 8×8LED点阵显示程序设计 274
11.2 工作模块28 16×32 LED点阵显示电路设计 276
11.2.1 16×32LED点阵显示电路设计 276
11.2.2 16×32LED点阵汉字显示程序设计 279
【技能训练11-1】采用逐行扫描方式完成16×32LED点阵汉字显示设计 286
11.3 技能拓展 并行I/O接口扩展 289
11.3.1 并行I/O口扩展特性 289
11.3.2 I/O接口扩展常用芯片 290
【技能训练11-2】P0口扩展I/O接口设计与实现 292
课程设计范例1 双向四车道交通灯控制 295
课程设计范例2 出租车计价器 306
参考文献 313