上篇 基 础 原 理
基础知识概述 2
项目一 双闪灯——搭建开发环境 6
1.1 学习目标 6
1.2 项目任务 6
1.3 相关理论知识 6
1.3.1 Proteus仿真平台 7
1.3.2 Keil μVision5的集成开发环境 14
1.3.3 单片机应用系统的开发流程 15
1.3.4 MCS-51指令系统入门 16
1.3.5 汇编语言程序设计 26
1.4 项目实施的参考方案 28
1.4.1 Proteus平台硬件电路设计 28
1.4.2 Keil C软件程序设计 32
1.4.3 Proteus平台仿真效果 38
1.5 项目回顾与总结 40
1.6 项目拓展与思考 41
1.6.1 课后作业、任务 41
1.6.2 项目拓展 41
项目二 流水灯 42
2.1 学习目标 42
2.2 项目任务 42
2.3 相关理论知识 42
2.3.1 单片机的硬件结构 43
2.3.2 单片机的存储器结构 46
2.3.3 单片机*小系统 51
2.3.4 单片机I/O口的结构 55
2.3.5 单片机的工作过程和低功耗
工作方式 58
2.3.6 程序设计 59
2.4 项目实施参考方案 63
2.4.1 Proteus平台硬件电路设计 63
2.4.2 Keil C软件程序设计 65
2.4.3 Proteus平台仿真效果 69
2.5 项目回顾与总结 70
2.6 项目拓展与思考 70
2.6.1 课后作业、任务 70
2.6.2 项目拓展 71
项目三 抢答器 72
3.1 学习目标 72
3.2 项目任务 72
3.3 相关理论知识 72
3.3.1 按键的检测原理 73
3.3.2 数码管显示 80
3.3.3 驱动接口电路的设计 84
3.3.4 程序设计 85
3.4 项目实施参考方案 86
3.4.1 Proteus平台硬件电路设计 87
3.4.2 Keil C软件程序设计 87
3.4.3 Proteus平台仿真效果 92
3.5 项目回顾与总结 96
3.6 项目拓展与思考 97
3.6.1 课后作业、任务 97
3.6.2 项目拓展 97
项目四 交通灯 98
4.1 学习目标 98
4.2 项目任务 98
4.3 相关理论知识 98
4.3.1 中断的概念与特点 99
4.3.2 MCS-51中断系统 100
4.3.3 中断处理过程 104
4.3.4 程序设计 107
4.4 项目实施参考方案 108
4.4.1 Proteus平台硬件电路设计 108
4.4.2 Keil C软件程序设计 109
4.4.3 Proteus平台仿真效果 113
4.5 项目回顾与总结 116
4.6 项目拓展与思考 116
4.6.1 课后作业、任务 116
4.6.2 项目拓展 117
项目五 定时器 118
5.1 学习目标 118
5.2 项目任务 118
5.3 相关理论知识 118
5.3.1 定时器/计数器的结构与原理 119
5.3.2 定时器/计数器的工作方式 121
5.3.3 定时器/计数器的初始化 123
5.3.4 程序设计 124
5.4 项目实施参考方案 126
5.4.1 Proteus平台硬件电路设计 126
5.4.2 Keil C软件程序设计 127
5.4.3 Proteus平台仿真效果 131
5.5 项目回顾与总结 133
5.6 项目拓展与思考 134
5.6.1 课后作业、任务 134
5.6.2 项目拓展 134
项目六 串口通信 135
6.1 学习目标 135
6.2 项目任务 135
6.3 相关理论知识 135
6.3.1 串行通信基础 136
6.3.2 单片机的串行口 140
6.3.3 单片机串口通信的应用 149
6.3.4 程序设计 155
6.4 项目实施参考方案 159
6.4.1 Proteus平台硬件电路设计 160
6.4.2 Keil C软件程序设计 162
6.4.3 Proteus平台仿真效果 165
6.5 项目回顾与总结 171
6.6 项目拓展与思考 171
6.6.1 课后作业、任务 171
6.6.2 项目拓展 172
下篇 应 用 设 计
基础知识概述 174
项目七 99秒马表 175
7.1 学习目标 175
7.2 项目任务 175
7.3 相关理论知识 175
7.3.1 设计原理 176
7.3.2 程序设计要点 176
7.3.3 设计方法 177
7.4 项目实施参考方案 177
7.4.1 Proteus平台硬件电路设计 177
7.4.2 Keil C软件程序设计 178
7.4.3 Proteus平台仿真效果 183
7.5 项目回顾与总结 185
7.6 项目拓展与思考 185
7.6.1 课后作业、任务 185
7.6.2 项目拓展 185
项目八 动态数码显示屏 186
8.1 学习目标 186
8.2 项目任务 186
8.3 相关理论知识 186
8.3.1 设计原理 186
8.3.2 程序设计要点 188
8.4 项目实施参考方案 188
8.4.1 Proteus平台硬件电路设计 188
8.4.2 Keil C软件程序设计 189
8.4.3 Proteus平台仿真效果 191
8.5 项目回顾与总结 193
8.6 项目拓展与思考 193
8.6.1 课后作业、任务 193
8.6.2 项目拓展 194
项目九 简易电子琴 195
9.1 学习目标 195
9.2 项目任务 195
9.3 相关理论知识 195
9.3.1 乐理基础 195
9.3.2 设计原理 197
9.3.3 程序设计要点 199
9.4 项目实施参考方案 200
9.4.1 Proteus平台硬件电路设计 200
9.4.2 Keil C软件程序设计 201
9.4.3 Proteus平台仿真效果 210
9.5 项目回顾与总结 212
9.6 项目拓展与思考 212
9.6.1 课后作业、任务 212
9.6.2 项目拓展 213
项目十 数字电压表 214
10.1 学习目标 214
10.2 项目任务 214
10.3 相关理论知识 214
10.3.1 A/D与D/A转换 215
10.3.2 ADC0808/ADC0809、DAC0832的
内部结构与引脚功能 216
10.3.3 数字电压表设计原理 220
10.3.4 程序设计方法 221
10.4 项目实施参考方案 222
10.4.1 Proteus平台硬件电路设计 222
10.4.2 Keil C软件程序设计 223
10.4.3 Proteus平台仿真效果 228
10.5 项目回顾与总结 230
10.6 项目拓展与思考 230
10.6.1 课后作业、任务 230
10.6.2 项目拓展 231
项目十一 数字钟 232
11.1 学习目标 232
11.2 项目任务 232
11.3 相关理论知识 232
11.3.1 数字钟的结构与用途 232
11.3.2 设计原理 233
11.3.3 程序设计要点 233
11.3.4 Proteus平台仿真设计方法 234
11.4 项目实施参考方案 238
11.4.1 Proteus平台硬件电路设计 239
11.4.2 Keil C软件程序设计 239
11.4.3 Proteus平台仿真效果 247
11.5 项目回顾与总结 249
11.6 项目拓展与思考 249
11.6.1 课后作业、任务 249
11.6.2 项目拓展 250
项目十二 液晶显示万年历 251
12.1 学习目标 251
12.2 项目任务 251
12.3 相关理论知识 251
12.3.1 字符液晶LCD1602 252
12.3.2 时钟芯片DS1302 257
12.3.3 温度传感器DS18B20 259
12.3.4 设计原理 266
12.3.5 程序设计要点 267
12.4 项目实施参考方案 270
12.4.1 Proteus平台硬件电路设计 271
12.4.2 Keil C软件程序设计 271
12.4.3 Proteus平台仿真效果 272
12.5 项目回顾与总结 274
12.6 项目拓展与思考 275
12.6.1 课后作业、任务 275
12.6.2 项目拓展 275