第1章 单片机基础 1
1.1微型计算机概述 1
1.1.1微型计算机的由来 1
1.1.2微型计算机的基本结构 2
1.2单片微型计算机 3
1.2.1单片机的概念 3
1.2.2常见的单片机 3
1.2.3指令、程序和编程语言 4
1.3 STC系列单片机 5
1.3.1 STC系列单片机的发展历史 5
1.3.2 STC系列单片机的命名规则 6
1.3.3单片机的开发流程 7
1.4本教材的特点 8
习题与思考题 8
第2章 STC15F系列单片机CPU、存储器和引脚 9
2.1 STC15F系列单片机的性能概述 9
2.2 STC15F系列单片机的CPU 10
2.3 STC15F系列单片机的存储器配置 12
2.3.1程序存储器 12
2.3.2片内基本数据存储器(基本RAM) 13
2.3.3片内扩展RAM 16
2.3.4片内数据Flash存储器(EEPROM) 16
2.3.5片外扩展存储器或外设 16
2.4 STC15F系列单片机的引脚 17
2.4.1 STC15F系列单片机的封装与引脚分类 17
2.4.2 STC 15F系列单片机的I/O口 19
2.4.3 STC15F系列单片机I/O口的应用 24
2.4.4 STC15F单片机三总线扩展外部RAM 26
2.5 STC15F系列单片机的时钟、复位与省电模式 27
2.5.1 STC15F系列单片机的时钟 27
2.5.2 STC15F系列单片机的复位 28
2.5.3 STC15F系列单片机的省电模式 30
习题与思考题 31
第3章 指令系统和汇编程序设计 32
3.1指令的形式、分类与格式 32
3.1.1指令的形式 32
3.1.2指令的分类 33
3.1.3汇编语言指令格式 33
3.2寻址方式 34
3.3指令系统 36
3.3.1数据传送指令 37
3.3.2算术运算指令 41
3.3.3逻辑运算指令 45
3.3.4控制转移类指令 47
3.3.5位操作指令 52
3.3.6指令总结 54
3.4伪指令与汇编语言程序设计 56
3.4.1伪指令 56
3.4.2汇编语言程序设计 57
3.5汇编语言程序设计实例 58
3.5.1顺序结构程序设计 58
3.5.2分支结构程序设计 59
3.5.3循环结构程序设计 61
3.5.4查表程序设计 64
3.5.5子程序设计 65
3.5.6数码管显示和键盘扫描程序设计 66
习题与思考题 72
第4章 单片机C语言程序设计 76
4.1单片机C语言设计方法与特点 76
4.1.1单片机C语言与汇编语言对比 76
4.1.2单片机C语言特点 77
4.1.3单片机C语言开发环境 77
4.2 C51数据类型与表达式 79
4.2.1 C51数据类型 79
4.2.2 C51常量与变量 80
4.2.3 C51的存储类型和存储模式 81
4.2.4单片机内部资源的C51定义 83
4.2.5运算符与表达式及其规则 84
4.3 C51流程控制 90
4.3.1 C语言程序的基本结构 90
4.3.2顺序结构 90
4.3.3选择结构 90
4.3.4循环结构 92
4.4数组 94
4.4.1一维数组 94
4.4.2二维数组 95
4.4.3字符数组 96
4.4.4数组与存储空间 97
4.5指针 97
4.5.1指针的基本概念 97
4.5.2指针数组和指向数组的指针变量 98
4.5.3 C51的指针类型 98
4.6函数 100
4.6.1函数的分类 100
4.6.2函数的定义 101
4.6.3函数的调用 101
4.7单片机C51语言应用实例 101
习题与思考题 104
第5章 STC15F系列单片机中断系统 105
5.1中断系统概述 105
5.1.1中断的概念 105
5.1.2中断的用途 106
5.2 STC 15F系列单片机的中断系统结构 107
5.2.1中断源 107
5.2.2中断标志寄存器 107
5.2.3中断允许及其优先级控制 111
5.3中断响应过程 115
5.3.1中断响应条件 115
5.3.2中断处理过程 115
5.3.3中断响应时间 116
5.3.4中断请求的撤除 116
5.4中断服务函数及其应用 116
5.4.1中断服务函数格式 116
5.4.2中断响应的短暂延迟 117
5.4.3使用中断的基本步骤 118
5.4.4中断应用实例 118
习题与思考题 123
第6章 STC15F系列单片机定时器/计数器 124
6.1定时器/计数器的工作原理与组成 124
6.1.1定时器/计数器的工作原理 124
6.1.2 STC15F系列单片机内部定时器/计数器的组成 126
6.1.3与T2相关的特殊功能寄存器 128
6.2 STC15F系列单片机定时器/计数器的工作方式 128
6.2.1方式0 129
6.2.2方式1 129
6.2.3方式2 129
6.2.4方式3 130
6.3 STC15F系列单片机定时器/计数器的应用举例 131
6.3.1定时器/计数器应用初始化的使用要点 131
6.3.2方式0的应用 132
6.3.3方式1的应用 134
6.3.4方式2的应用 136
6.3.5方式3的应用 138
6.3.6定时器/计数器在应用中应注意的问题 140
6.4可编程时钟输出模块及其应用 141
6.4.1与可编程时钟输出相关的寄存器 141
6.4.2可编程时钟输出的编程实例 142
习题与思考题 143
第7章 STC15F系列单片机ADC模块 144
7.1模/数转换器及性能参数 144
7.2 STC15F系列单片机内部ADC 145
7.2.1 STC15F系列单片机内部ADC的结构原理 145
7.2.2 STC 15 F系列单片机中与ADC相关的寄存器 146
7.3 STC15系列单片机ADC的应用 149
7.3.1 ADC模块的使用要点 149
7.3.2 A/D转换应用举例 150
习题与思考题 158
第8章 异步串行通信技术UART 159
8.1串行通信基础 159
8.2 STC15F系列单片机的串行通信接口 162
8.2.1串行口1的相关寄存器 162
8.2.2串行口1工作模式 167
8.2.3串行口1的波特率设置 175
8.2.4多机通信 176
8.3串行口1编程使用要点 177
8.4串行口1通信应用举例 178
习题与思考题 189
第9章 常用串行总线及应用 190
9.1 SPI总线接口及应用 190
9.1.1 SPI简介 190
9.1.2 STC15F系列单片机的SPI 193
9.1.3 SPI接口的使用要点 197
9.1.4 SPI接口应用举例 197
9.2 I2C总线 203
9.2.1 I2C总线概述 204
9.2.2 I2C总线数据的通信协议 204
9.2.3 I2C总线的使用要点 206
9.2.4 I2C总线应用举例 206
习题与思考题 221
第10章 STC15F系列单片机可编程计数器阵列 222
10.1 PCA模块结构与特殊功能寄存器 222
10.1.1 PCA模块结构 222
10.1.2 PCA模块的特殊功能寄存器 223
10.2 PCA模块的4种工作模式 227
10.2.1 16位软件定时模式 227
10.2.2高速脉冲输出模式 231
10.2.3输入跳变捕获模式 235
10.2.4脉宽调制(PWM)输出模式 239
习题与思考题 243
第11章 STC15F系列单片机综合应用 244
11.1单片机控制系统的设计方法 244
11.1.1软/硬件功能边界划分 244
11.1.2硬件系统设计 245
11.1.3软件系统设计 246
11.1.4整体抗扰性设计 246
11.1.5仿真与调试 247
11.2应用举例 249
11.2.1单片机对步进电动机的控制 249
11.2.2单片机对生产线物料拾取的检测控制 254
习题与思考题 260
附录 261
附录A Keil μVision4集成开发环境 261
附录B STC-ISP在线编程软件 266
附录C STC15F系列单片机寄存器定义文件STC15.INC内容 267
附录D STC15F系列单片机寄存器头文件stc15.h内容 271
附录E逻辑符号对照表 276
附录F STC15F系列单片机指令表 277
附录G ASCII码表 282
附录H常用元器件 283
参考文献 289