第1章 单片机技术概述 1
1.1 单片机的基本概念及分类 1
1.1.1 单片机的概念 1
1.1.2 单片机的分类 2
1.2 单片机技术的特点 4
1.2.1 一般单片机技术发展的特点 4
1.2.2 STC12C5A60S2单片机的特点 6
1.3 学习单片机技术所需的条件 8
1.3.1 学习单片机技术所需的基础知识 8
1.3.2 学习单片机技术所需的硬件环境 9
1.3.3 学习单片机技术所需的软件环境 9
1.4 单片机的应用 10
1.4.1 单片机的应用范围 10
1.4.2 单片机应用系统的设计 11
习题 16
第2章 STC12C5A60S2的增强型8051内核 17
2.1 STC12C5A60S2单片机的引脚 17
2.2 STC12C5A60S2单片机的结构 20
2.2.1 STC12C5A60S2单片机的内部结构 20
2.2.2 CPU 21
2.3 STC12C5A60S2单片机的存储器 23
2.3.1 存储器空间及存储器 23
2.3.2 数据Flash存储器的操作 31
习题 34
第3章 数字输入/输出端口 35
3.1 STC12C5A60S2单片机的I/O口及工作模式 35
3.1.1 STC12C5A60S2单片机的I/O口 35
3.1.2 STC12C5A60S2单片机I/O口的工作模式 38
3.2 STC12C5A60S2单片机I/O口的结构 39
3.3 STC12C5A60S2单片机I/O口的使用 42
习题 45
第4章 汇编语言程序设计及仿真调试 46
4.1 STC12C5A60S2单片机的指令系统概述 46
4.1.1 指令中的符号约定 46
4.1.2 各类指令概述 47
4.2 汇编语言程序设计 52
4.2.1 伪指令 52
4.2.2 汇编语言程序设计的一般步骤和基本框架 55
4.3 典型汇编语言程序设计举例 57
4.4 利用KeilμVision集成开发环境调试程序 70
4.4.1 KeilμVision集成开发环境概述 70
4.4.2 KeilμVision集成开发环境中调试汇编语言程序的方法 70
4.5 利用ISP工具将程序下载到单片机中验证程序 83
4.5.1 ISP下载程序的运行过程 83
4.5.2 使用ISP工具下载程序的步骤 84
习题 86
第5章 C语言程序设计及仿真调试 87
5.1 单片机C语言程序中的常用功能 87
5.1.1 逻辑运算和位运算 87
5.1.2 预处理 88
5.2 Keil C和ANSIC 91
5.2.1 Keil C51扩展关键字 91
5.2.2 扩展I/O口的使用 95
5.2.3 Keil C51函数 97
5.2.4 STC12C5A60S2单片机C51程序框架 99
5.3 STC12C5A60S2单片机C语言程序调试 102
5.3.1 ISD51在系统调试概述 102
5.3.2 ISD51在系统调试的工作原理及具体步骤 102
第6章 中断 108
6.1 STC12C5A60S2单片机的中断系统及管理 108
6.1.1 中断的概念 108
6.1.2 中断源及其优先级管理 109
6.1.3 单片机中断处理过程 115
6.1.4 中断请求的撤除 118
6.2 中断的应用 119
6.2.1 中断程序编程举例 119
6.2.2 中断使用过程中需要注意的问题 122
习题 124
第7章 定时/计数器与可编程计数器阵列 125
7.1 STC12C5A60S2单片机的定时/计数器 125
7.1.1 定时/计数器的结构及工作原理 125
7.1.2 定时/计数器的相关寄存器 126
7.1.3 定时/计数器的工作方式 128
7.1.4 定时/计数器量程的扩展 131
7.1.5 定时/计数器编程举例 132
7.2 STC12C5A60S2单片机的可编程时钟输出 135
7.2.1 可编程时钟输出的相关寄存器 135
7.2.2 可编程时钟输出的编程实例 136
7.3 STC12C5A60S2的可编程计数器阵列模块 137
7.3.1 PCA模块的结构 137
7.3.2 PCA模块的特殊功能寄存器 138
7.3.3 PCA模块的工作模式 141
7.3.4 PCA模块的应用 145
习题 157
第8章 串行通信 159
8.1 通信的有关概念 159
8.1.1 串行通信的分类 159
8.1.2 通用异步接收器/发送器UART 163
8.2 STC12C5A60S2单片机的串行接口 164
8.2.1 串行接口的寄存器 165
8.2.2 串行接口的工作方式 168
8.2.3 多处理机通信 173
8.2.4 波特率的设定 173
8.2.5 串行接口通信应用举例 176
8.2.6 计算机与单片机之间的串行通信 193
8.3 STC12C5A60S2单片机的SPI接口 195
8.3.1 SPI接口的结构 195
8.3.2 SPI接口的数据通信 196
8.3.3 SPI接口的应用举例 203
习题 221
第9章 模/数转换器 222
9.1 ADC的结构及相关寄存器 222
9.1.1 ADC的结构 222
9.1.2 参考电压源 223
9.1.3 与ADC有关的特殊功能寄存器 223
9.2 ADC的应用 226
习题 231
第10章 复位、省电方式和时钟 232
10.1 复位 232
10.2 单片机的电源检测与控制 238
10.2.1 单片机的外部低电压检测 238
10.2.2 省电方式 240
10.3 时钟 246
习题 247
第11章 嵌入式实时操作系统的应用 248
11.1 嵌入式系统与嵌入式操作系统 248
11.1.1 嵌入式系统概述 248
11.1.2 嵌入式操作系统概述 249
11.2 用于8051内核单片机的常见嵌入式操作系统 253
11.3 嵌入式实时操作系统μC/OS-II概述 254
11.3.1 μC/OS-II的功能及构成 254
11.3.2 μC/OS-II的特点 257
11.4 μC/OS-II内核 259
11.4.1 μC/OS-II的临界段保护机制 259
11.4.2 μC/OS-II的任务 259
11.4.3 时钟节拍与中断服务子程序 262
11.4.4 μC/OS-II常用函数 263
11.5 μC/OS-II在STC12C5A60S2中的移植及注意事项 267
11.5.1 μC/OS-II对微处理器的要求 267
11.5.2 移植步骤 267
11.5.3 一个移植实例 277
习题 281
第12章 单片机应用系统设计实例 282
12.1 基于STC12C5A60S2的智能自主循迹小车控制器 282
12.1.1 系统要求 282
12.1.2 需求分析 283
12.1.3 系统硬件设计 283
12.1.4 系统软件设计 286
12.2 基于实时操作系统μC/OS-II的压力测控系统 290
12.2.1 系统要求 290
12.2.2 需求分析 290
12.2.3 系统硬件设计 291
12.2.4 系统软件设计 295
习题 307
附录A STC12C5A60S2单片机指令表 308
附录B STC12C5A60S2单片机寄存器定义文件STC12C5A.INC内容 313
附录C STC12C5A60S2单片机寄存器头文件STC12C5A.H内容 318
附录D 逻辑符号对照表 322
附录E ASCII码表 324
参考文献 325