基础知识篇 3
第1章 单片机概述 3
1.1 单片机的发展 3
1.2 MCS-51系列单片机简介 4
1.3 单片机的应用模式和应用领域 6
1.4 如何使用这本书 7
第2章 MCS-51单片机的内部结构 9
2.1 内部结构与引脚功能 9
2.1.1 内部结构 9
2.1.2 CPU部件及特殊功能寄存器 10
2.1.3 引脚功能 16
2.2 并行I/O(输入/输出)接口 18
2.2.1 输入功能 18
2.2.2 输出功能及负载配置 19
2.3 存储器配置方法 20
2.3.1 程序存储器配置 21
2.3.2 数据存储器配置 22
2.4 时钟电路与CPU时序 24
2.4.1 时钟电路 24
2.4.2 CPU时序 25
第3章 MCS-51单片机的系统资源 26
3.1 中断系统和外部中断 26
3.1.1 中断技术概述 26
3.1.2 MCS-51单片机中断系统 28
3.1.3 中断服务函数 30
3.2 定时器/计数器 31
3.2.1 定时器/计数器的结构及工作原理 31
3.2.2 定时器/计数器的四种工作方式 31
3.3 串行通信 34
3.3.1 串行通信的概念 34
3.3.2 MCS-51单片机的串行口结构 35
3.3.3 MCS-51单片机串行通信工作方式 36
3.3.4 MCS-51单片机串行口波特率的选择 38
第4章 STC单片机内部资源和PMY单片机开发板简介 39
4.1 STC单片机系统资源和特点 39
4.1.1 STC单片机的特点和选型 39
4.1.2 STC单片机减少对外部电磁辐射的三大措施 42
4.1.3 STC89C52 RC单片机的特殊功能寄存器 42
4.2 PMY单片机开发板介绍 46
第5章 Keil C51程序设计基础 52
5.1 标识符和关键字 53
5.2 C51的数据类型 54
5.2.1 整型(int) 54
5.2.2 实型数据 55
5.2.3 字符型数据(char) 55
5.2.4 指针型(*) 56
5.2.5 bit位标量 56
5.2.6 各类数值型数据之间的混合运算 56
5.3 C51的数据存储类型 57
5.4 C51的基本运算 61
5.4.1 算术运算符和算术表达式 61
5.4.2 关系运算符 62
5.4.3 逻辑运算符 63
5.4.4 位运算 63
5.5 C51的基本语句 63
5.5.1 条件语句 64
5.5.2 循环语句 64
5.5.3 break、continue和goto语句 66
5.6 C51的函数 66
5.6.1 函数的分类与定义 67
5.6.2 C51的中断服务函数 68
5.7 数组与指针 69
5.7.1 数组 69
5.7.2 指针 70
5.8 C51的预处理命令 71
5.8.1 宏定义 71
5.8.2 文件包含 72
5.8.3 条件编译 73
第6章 Keil C51和STC-ISP软件的使用 75
6.1 Keil C51软件的使用 75
6.1.1 启动Keil C51软件 75
6.1.2 简单程序的调试 75
6.2 用STC-ISP软件将HEX文件写入单片机芯片中 81
6.2.1 项目开发板和STC下载线的配置 81
6.2.2 将HEX文件写入单片机芯片 82
基础项目篇 87
第7章 单片机端口输入/输出控制(按键和点灯) 87
7.1 项目目标设计 87
7.2 项目任务 87
7.3 系统板上硬件连线 89
7.4 程序流程图 89
7.5 C语言源程序 89
7.6 系统构成和程序分析 90
7.7 项目扩展任务 93
第8章 流水灯控制 94
8.1 项目目标设计 94
8.2 项目任务 94
8.3 系统板上硬件连线 96
8.4 程序流程图 96
8.5 C语言源程序 96
8.6 系统构成和程序分析 97
8.7 项目扩展任务 102
第9章 七段数码管和4×4键盘控制 103
9.1 项目目标设计 103
9.2 项目任务 103
9.3 系统板上硬件连线 105
9.4 程序流程图 105
9.5 C语言源程序 105
9.6 系统构成和程序分析 106
9.7 项目扩展任务 108
第10章 继电器和直流小电机正反转控制 109
10.1 项目目标设计 109
10.2 项目任务 109
10.3 系统板上硬件连线 111
10.4 程序流程图 111
10.5 C语言源程序 112
10.6 系统构成和程序分析 114
10.7 项目扩展任务 119
第11章 A/D转换 120
11.1 项目目标设计 120
11.2 项目任务 120
11.3 系统板上硬件连线 122
11.4 程序流程图 122
11.5 C语言源程序 122
11.6 系统构成和程序分析 124
11.7 项目扩展任务 129
第12章 光电传感器和蜂鸣器控制 130
12.1 项目目标设计 130
12.2 项目任务 130
12.3 系统板上硬件连线 132
12.4 程序流程图 132
12.5 C语言源程序 133
12.6 系统构成和程序分析 135
12.7 项目扩展任务 138
第13章 简易数字信号发生器 140
13.1 项目目标设计 140
13.2 项目任务 140
13.3 系统板上硬件连线 142
13.4 程序流程图 142
13.5 C语言源程序 142
13.6 系统构成和程序分析 147
13.7 项目扩展任务 152
第14章 1602液晶显示控制 153
14.1 项目目标设计 153
14.2 项目任务 153
14.3 系统板上硬件连线 153
14.4 程序流程图 155
14.5 C语言源程序 155
14.6 系统构成和程序分析 158
14.7 项目扩展任务 164
第15章 串行通信 165
15.1 项目目标设计 165
15.2 项目任务 165
15.3 系统板上硬件连线 167
15.4 程序流程图 167
15.5 C语言源程序 168
15.6 系统构成和程序分析 170
15.7 项目扩展任务 173
第16章 数字钟设计 174
16.1 项目目标设计 174
16.2 项目任务 174
16.3 系统板上硬件连线 176
16.4 程序流程图 176
16.5 C语言源程序 176
16.6 系统构成和程序分析 183
16.7 项目扩展任务 191
第17章 EEPROM器件24C02读写控制 192
17.1 项目目标设计 192
17.2 项目任务 192
17.3 系统板上硬件连线 194
17.4 程序流程图 194
17.5 C语言源程序 194
17.6 系统构成和程序分析 198
17.7 项目扩展任务 200
第18章 温度传感器 201
18.1 项目目标设计 201
18.2 项目任务 201
18.3 系统板上硬件连线 203
18.4 程序流程图 203
18.5 C语言源程序 203
18.6 系统构成和程序分析 208
18.7 项目扩展任务 216
第19章 步进电机控制 217
19.1 项目目标设计 217
19.2 项目任务 217
19.3 系统板上硬件连线 219
19.4 程序流程图 219
19.5 C语言源程序 221
19.6 系统构成和程序分析 224
19.7 项目扩展任务 233
第20章 红外数据传输 234
20.1 项目目标设计 234
20.2 项目任务 234
20.3 系统板上硬件连线 235
20.4 程序流程图 236
20.5 C语言源程序 237
20.6 系统构成和程序分析 242
20.7 项目扩展任务 252
综合项目提高篇 255
第21章 停车场驻车信息显示和出入口模拟控制系统 255
21.1 需求分析 255
21.2 系统分析 255
21.3 系统设计任务 257
21.4 硬件设计分析 259
21.5 系统软件设计分析 261
第22章 空调模拟控制系统 268
22.1 需求分析 268
22.2 系统分析 268
22.3 系统设计任务 270
22.4 硬件设计分析 272
22.5 系统软件设计分析 273
第23章 具有远程调时功能的城市十字路口信号灯模拟控制系统 282
23.1 概述 282
23.2 需求分析 282
23.3 城市交通信号灯控制系统的发展和分类 283
23.4 系统分析 284
23.5 系统设计任务 290
23.6 硬件设计分析 292
23.7 系统软件设计分析 294
第24章 具有串口校时和闹铃功能的数字钟系统设计 302
24.1 需求分析 302
24.2 系统分析与设计任务 302
24.3 硬件设计分析 304
24.4 系统软件设计分析 304
附录A PMY单片机开发板系统原理图 321
附录B PMY单片机开发板系统PCB布板图 324
参考文献 325