第一篇 基 础篇 1
第1章STC15系列单片机 1
1.1单片机概述 1
1.1.1单片机简介 1
1.1.2单片机的发展过程 1
1.2常用主流单片机 2
1.2.1 8051单片机 2
1.2.2 STC单片机 2
1.2.3 AVR单片机 3
1.2.4 PIC单片机 4
1.2.5 MSP430单片机 5
1.2.6基于ARM核的单片机 8
1.3 IAP15系列单片机简述 9
1.3.1 IAP15W4K58S4单片机 9
1.3.2 IAP15F2K61S2单片机 19
1.3.3 CPU内部结构 21
1.3.4存储器结构 23
1.3.5特殊功能寄存器 25
1.4单片机系统复位 28
1.4.1外部RST引脚复位 28
1.4.2软件复位 28
1.4.3掉电复位/上电复位 29
1.4.4专用复位电路复位 29
1.4.5内部低压检测复位 29
1.4.6看门狗复位 32
1.4.7程序地址非法复位 33
1.4.8热启动复位和冷启动复位 33
1.5单片机省电模式 34
1.5.1低速模式 36
1.5.2空闲模式 36
1.5.3掉电模式 37
第2章 Keil C51程序设计基础 38
2.1 Keil C51系统概述 38
2.2 Keil C51软件开发结构 38
2.3 Keil C51与标准C语言 39
2.3.1 Keil C51扩展关键字 40
2.3.2内存区域 40
2.3.3存储模式 40
2.3.4存储类型声明 41
2.3.5变量或数据类型 41
2.3.6位变量与声明 42
2.4运算符与表达式 42
2.4.1赋值运算符 42
2.4.2算术运算符 43
2.4.3增量与减量运算符 43
2.4.4关系运算符 43
2.4.5逻辑运算符 44
2.4.6位运算符 44
2.4.7复合赋值运算符 44
2.4.8逗号运算符 45
2.4.9条件运算符 45
2.4.10指针和地址运算符 45
2.4.11 C51对存储器和特殊功能寄存器的访问 46
2.4.12强制类型转换运算符 46
2.4.13 sizeof运算符 47
2.5 C51程序的基本语句 47
2.5.1表达式语句 47
2.5.2复合语句 48
2.5.3条件语句 48
2.5.4开关语句 49
2.5.5循环语句 49
2.5.6 goto、 break、continue语句 50
2.5.7返回语句 50
2.6 Keil C51指针 51
2.6.1 C51指针 51
2.6.2利用指针实现绝对地址访问 51
2.7 Keil C51函数 52
2.8 C51代码优化及库函数 53
2.8.1 C51代码优化 53
2.8.2 C51内联的库函数 54
2.9 C51程序结构及应用要点 55
2.9.1 C51程序结构 55
2.9.2 C51应用要点 56
2.10 Keil C51高级编程 56
2.10.1绝对地址访问 56
2.10.2 Keil C51与汇编的接口 57
2.10.3 Keil C51软件包中的通用文件 58
第3章STC单片机的指令系统 60
3.1 STC系列单片机指令系统概述 60
3.1.1 CISC和RISC 60
3.1.2指令系统概述 61
3.2寻址方式 62
3.2.1立即寻址 63
3.2.2直接寻址 63
3.2.3寄存器寻址 64
3.2.4寄存器间接寻址 64
3.2.5变址寻址 65
3.2.6位寻址 66
3.2.7相对寻址 66
3.3数据传送指令 67
3.3.1内部数据传送指令 67
3.3.2外部数据传送指令 68
3.3.3堆栈操作指令 69
3.3.4数据交换指令 69
3.4运算和移位指令 69
3.4.1算术运算指令 69
3.4.2逻辑运算指令 71
3.4.3移位指令 72
3.5控制转移和位操作指令 72
3.5.1控制转移指令 72
3.5.2位操作指令 73
3.6汇编器的伪指令 74
3.6.1状态控制伪指令 74
3.6.2符号定义伪指令 75
3.6.3存储空间初始化伪指令 75
第4章Keil μVision集成开发环境 77
4.1软件安装过程 77
4.2建立工程 80
4.3添加STC系列单片机数据库 80
4.4生成STC系列单片机头文件 82
4.5创建工程文件 84
4.6应用程序编译与调试 89
4.6.1程序编译 89
4.6.2调试程序 90
4.7仿真器操作步骤 94
4.7.1安装仿真驱动 94
4.7.2创建项目 94
4.8 IAP15 W4K58S4实验箱 95
4.8.1实验箱的结构布局 95
4.8.2实验箱的使用步骤 96
第二篇 提高篇 97
第5章I/O口的配置与应用 97
5.1 I/O口的工作模式及结构 97
5.1.1并行I/O口工作模式 97
5.1.2并行I/O口的结构 98
5.2与I/O口有关的特殊功能寄存器及其地址声明 100
5.3应用举例 104
第6章 中断系统 108
6.1中断的基本概念 108
6.1.1中断的概念 108
6.1.2中断源 108
6.1.3中断优先级 111
6.1.4中断嵌套 111
6.2单片机中断请求 111
6.2.1中断请求标志 111
6.2.2中断允许的控制 115
6.2.3中断优先的控制 117
6.3中断响应 119
6.3.1中断响应时间 119
6.3.2中断响应过程 120
6.3.3中断请求标志的撤销问题 121
6.4中断服务与中断返回 121
6.5中断服务函数 122
6.6 IAP15 W4K58S4单片机中断应用举例 123
第7章 定时器/计数器 130
7.1定时器T0和T1 130
7.1.1定时器/计数器T0/T1的结构和工作原理 130
7.1.2 IAP15 W4K58S4单片机定时/计数器(T0/T1)的控制 131
7.1.3 IAP15 W4K58S4单片机定时/计数器(T0/T1)的工作方式 133
7.2 IAP15W4K58S4单片机的定时器/计数器T 2 136
7.2.1 IAP15W4K58S4单片机的定时/计数器T2电路结构 136
7.2.2 IAP15W4K58S4单片机的定时/计数器T2的控制寄存器 136
7.3 IAP15 W4K58S4单片机的定时器/计数器T3/T4 137
7.3.1 IAP15 W4K58S4单片机的定时/计数器T3/T4电路结构 137
7.3.2 IAP15W4K58S4单片机的定时/计数器T3/T4的控制寄存器 138
7.4 IAP15 W4K58S4单片机定时器应用 140
第8章 串行口通信 154
8.1串行通信基础 154
8.2 IAP15 W4K58S4单片机的串行口1 156
8.2.1串行口1的控制寄存器 157
8.2.2串行口1的工作方式 158
8.2.3串行口1的波特率设置 161
8.3 IAP15W4K58S4单片机的串行口2 162
8.4 IAP15 W4K58S4单片机的串行口3 164
8.5 IAP15 W4 K58 S4单片机的串行口4 166
8.6串行口通信应用实例 169
8.6.1单片机与单片机之间的通信 169
8.6.2单片机与PC间通信 171
第9章 同步通信 175
9.1 SPI接口 175
9.1.1 SPI的结构 175
9.1.2 SPI接口的引脚 176
9.1.3 SPI接口的相关特殊功能寄存器 176
9.1.4 SPI接口的数据通信 178
9.1.5 IAP15 W4K58S4单片机的SPI接口的应用实例 182
9.2 I2C通信技术 185
9.2.1 I2C总线构成 185
9.2.2 I2C总线的数据传送 185
9.2.3单片机模拟I2 C总线 188
第10章A-D转换 189
10.1 A-D转换原理及性能指标 189
10.2 IAP15W4K58S4单片机A-D模块的结构 189
10.2.1 A-D转换器的结构 190
10.2.2 A-D转换器的相关寄存器 190
10.3 IAP15 W4K58S4单片机A-D转换的应用 193
第11章STC15系列单片机的PCA模块 200
11.1 PCA的结构 200
11.2 PCA模块控制寄存器 200
11.3 PCA模块的工作模式与应用 204
11.3.1捕获模式 204
11.3.2 16位软件定时器模式 207
11.3.3高速脉冲输出模式 209
11.3.4脉宽调节模式(PWM) 209
第12章IAP15 W4 K58 S4单片机的PWM模块 219
12.1 IAP15W4K58S4单片机PWM模块的结构 219
12.2 IAP15W4K58S4单片机PWM模块的控制 220
12.3 IAP15 W4 K5 8 S4单片机PWM模块的应用 225
第三篇 综合篇 229
第13章 激光绘图仪控制系统 229
13.1项目基本介绍 229
13.1.1项目简介 229
13.1.2项目背景 229
13.2项目方案论证 230
13.3系统硬件设计 230
13.3.1步进电动机驱动电路 231
13.3.2步进电动机基本原理 232
13.3.3控制系统驱动电路 232
13.34滚珠丝杆的选择 234
13.3.5绘图仪支架的搭建 234
13.4上位机软件设计 235
13.4.1易语言简介 235
13.4.2易语言编辑软件介绍 235
13.4.3易语言与单片机通信 236
13.5系统调试及运行结果 239
13.5.1下位机程序调试 239
13.5.2系统调试问题 239
13.5.3系统测试 240
13.6程序分析 242
13.6.1头文件与变量定义 242
13.6.2主函数程序 243
13.6.3功能函数程序 244
第14章 基于GPS和GPRS的健康监护仪 251
14.1项目背景与研究现状 251
14.1.1项目背景 251
14.1.2研究现状 251
14.2系统方案论证与总体设计 252
14.2.1系统设计目标 252
14.2.2系统方案论证 252
14.2.3系统总体设计 253
14.3系统硬件设计 253
14.3.1系统硬件总体结构框图 253
14.3.2 GPRS模块 254
14.3.3 GPS模块 257
14.3.4心率传感器 259
14.3.5体温传感器 260
14.3.6其他外围硬件模块设计 262
14.4系统软件设计 263
14.4.1 GPRS程序设计 263
14.4.2 GPS程序设计 263
14.4.3心率传感器程序设计 264
14.4.4体温传感器程序设计 265
14.4.5按键处理函数程序设计 265
14.5系统功能调试 265
14.5.1功能测试 265
14.5.2出现问题及解决方案 268
14.6程序分析 269
14.6.1头文件与变量定义 269
14.6.2主函数程序 269
14.6.3功能函数程序 270
第15章 基于以太网的环境监测系统 279
15.1项目背景与研究现状 279
15.1.1项目背景 279
15.1.2研究现状 279
15.2系统方案论证与总体功能 280
15.2.1系统方案论证 280
15.2.2系统总体功能 280
15.3系统硬件设计 281
15.3.1系统硬件组成总体框图 281
15.3.2 STC 15 F2 K60S2单片机简介 281
15.3.3以太网模块W5100 282
15.3.4火焰传感器电路设计 283
15.3.5烟雾传感器电路设计 285
15.3.6温湿度传感器电路设计 286
15.3.7蜂鸣器报警电路设计 288
15.3.8系统显示电路设计 288
15.3.9电动机驱动电路设计 289
15.4系统软件设计 290
15.4.1系统软件设计总体流程图 290
15.4.2通信程序设计 290
15.4.3 A-D转换程序设计 293
15.4.4温湿度数据采集程序设计 294
15.5程序分析 295
15.5.1头文件与变量定义 295
15.5.2主函数 296
15.5.3功能函数 301
第16章 基于GSM的智能指纹门禁系统 306
16.1项目背景与研究现状 306
16.1.1项目研究背景 306
16.1.2项目研究现状 306
16.2指纹识别技术与整体设计方案 307
16.2.1指纹特征介绍 307
16.2.2指纹识别技术 307
16.2.3整体设计方案 308
16.3系统硬件设计 309
16.3.1硬件系统架构设计 309
16.3.2 IAP15W4K58S4单片机 309
16.3.3指纹识别模块 309
16.3.4语音模块 312
16.3.5 GSM无线通信模块 314
16.3.6 OLED显示屏模块 316
16.3.7电源模块设计 316
16.3.8电磁锁和继电器 318
16.4系统软件设计 319
16.4.1单片机控制程序设计 319
16.4.2系统初始化程序设计 320
16.4.3指纹识别模块程序设计 321
16.4.4 GSM无线通信程序设计 323
16.4.5显示模块程序设计 326
16.4.6语音模块程序设计 327
16.4.7继电器模块程序设计 327
16.4.8按键模块程序设计 328
16.5系统测试与结果分析 328
16.5.1系统功能的测试 328
16.5.2问题及解决方案 331
16.6程序分析 331
16.6.1头文件与变量定义 331
16.6.2主函数 331
16.6.3功能函数 334
第17章 基于蓝牙技术的智能家居系统 341
17.1项目研究背景及意义 341
17.1.1项目研究的背景 341
17.1.2项目研究的意义 341
17.1.3系统功能 342
17.2系统设计方案论证 342
17.2.1系统设计方案比较 342
17.2.2系统设计方案选择 344
17.3系统硬件设计 344
17.3.1电源管理系统设计 344
17.3.2蓝牙通信系统设计 345
17.3.3单片机最小系统设计 347
17.3.4家电控制电路设计 349
17.3.5系统显示电路设计 349
17.3.6气敏传感器电路设计 350
17.3.7温湿度传感器电路设计 351
17.3.8人体感应模块电路设计 352
17.3.9雨水感应模块电路设计 352
17.4系统软件设计 352
17.4.1系统主程序流程图 352
17.4.2传感器模块程序 353
17.4.3系统蓝牙通信模块子程序 353
17.5系统的组装与调试 354
17.5.1系统的组装与焊接注意事项 354
17.5.2系统的调试与问题解决方法 355
17.6程序分析 356
17.6.1头文件与变量定义 356
17.6.2主函数 356
17.6.3功能函数 360
参考文献 362