第1章 绪论 1
1.1 嵌入式系统的定义和组成 1
1.1.1 嵌入式系统的定义 1
1.1.2 嵌入式系统的特点 1
1.1.3 嵌入式系统的组成 2
1.1.4 嵌入式系统的分类 4
1.2 嵌入式微处理器的结构和类型 5
1.2.1 嵌入式MCU 5
1.2.2 嵌入式微处理器 5
1.2.3 嵌入式DSP 5
1.2.4 嵌入式SOC 6
1.3 嵌入式操作系统及其现状 6
1.3.1 嵌入式操作系统 6
1.3.2 实时操作系统 7
1.3.3 嵌入式操作系统的现状 7
1.4 嵌入式系统的发展和应用 8
1.4.1 嵌入式系统的发展历史 8
1.4.2 嵌入式系统的应用 9
本章小结 10
习题 10
第2章 MCS-51单片机的结构 11
2.1 MCS-51单片机的基本组成 11
2.1.1 8051的内部结构和功能 11
2.1.2 存储器结构 13
2.2 I/O端口结构 18
2.2.1 P0口结构及应用 18
2.2.2 P1口结构及应用 19
2.2.3 P2口结构及应用 19
2.2.4 P3口结构及应用 19
2.3 MCS-51单片机的引脚功能 20
2.3.1 引脚信号功能介绍 20
2.3.2 引脚信号的第二功能 21
2.4 时钟电路及工作方式 22
2.4.1 时钟电路 22
2.4.2 时序定时单位 22
2.4.3 指令时序 23
2.4.4 工作方式 24
本章小结 26
习题 26
第3章 MCS-51单片机的指令系统及汇编语言程序设计基础 27
3.1 MCS-51单片机指令系统简介 27
3.1.1 指令格式 27
3.1.2 常用的缩写符号 28
3.2 MCS-51单片机寻址方式 28
3.2.1 立即寻址 29
3.2.2 直接寻址 29
3.2.3 寄存器寻址 29
3.2.4 寄存器间接寻址 30
3.2.5 基址加变址寄存器间接寻址 30
3.2.6 相对寻址 30
3.2.7 位寻址 30
3.3 MCS-51单片机指令集合 31
3.3.1 概述 31
3.3.2 数据传送类指令 31
3.3.3 算术运算类指令 35
3.3.4 逻辑操作类指令 38
3.3.5 位操作类指令 40
3.3.6 控制转移类指令 42
3.3.7 调用和返回指令 45
3.4 MCS-51单片机汇编语言程序设计基础 46
3.4.1 汇编语言源程序格式及伪指令 47
3.4.2 汇编语言程序设计举例 51
本章小结 53
习题 53
第4章 C51程序设计基础 55
4.1 C51的特点及程序结构 55
4.1.1 C51的特点 55
4.1.2 C51的程序结构 55
4.1.3 C51的关键字 56
4.1.4 C51变量的定义 58
4.1.5 C51绝对地址的访问 59
4.2 C51的数据类型及运算符 60
4.2.1 C51的数据类型 60
4.2.2 C51的运算符 61
4.2.3 C51函数 62
4.3 C51程序设计基础 66
4.3.1 C51基本结构 66
4.3.2 C51与汇编语言混合编程 67
4.3.3 C51程序设计实例 69
本章小结 73
习题 73
第5章 MCS-51单片机的内部(硬件)资源及应用 75
5.1 MCS-51单片机的中断系统 75
5.1.1 中断技术 75
5.1.2 MCS-51单片机的中断系统 76
5.1.3 中断处理的过程 80
5.1.4 扩充外部中断源的方法 83
5.1.5 中断系统的应用 85
5.2 MCS-51单片机的定时器/计数器 86
5.2.1 定时器/计数器的结构和功能 86
5.2.2 定时器/计数器的方式寄存器和控制寄存器 86
5.2.3 定时器/计数器的工作方式 88
5.2.4 定时器/计数器的应用 97
5.3 MCS-51单片机的串行口及串行总线 100
5.3.1 串行口结构及控制寄存器 101
5.3.2 串行口的工作方式 103
5.3.3 波特率设计 105
5.3.4 多机通信 107
5.3.5 串行口的应用 108
本章小结 123
习题 124
第6章 MCS-51单片机的扩展技术 125
6.1 MCS-51单片机扩展及系统结构 125
6.1.1 扩展系统结构 125
6.1.2 常用地址锁存器 126
6.2 MCS-51单片机程序存储器的扩展 127
6.2.1 外部程序存储器的扩展原理及时序 127
6.2.2 典型EPROM扩展电路 127
6.3 MCS-51单片机数据存储器的扩展 131
6.3.1 片外数据存储器的操作时序 131
6.3.2 常用的静态RAM芯片 132
6.3.3 64KB以内SRAM的扩展 133
6.3.4 超过64KB SRAM的扩展 134
6.3.5 扩展既可读又可写的程序存储器 135
6.4 MCS-51单片机的I/O扩展 135
6.4.1 I/O扩展概述 135
6.4.2 简单输入接口扩展 136
6.4.3 简单输出接口扩展 138
6.4.4 可编程接口芯片扩展 138
6.5 MCS-51单片机与A-D、D-A转换器的接口 142
6.5.1 并行输出A-D转换器的接口技术 143
6.5.2 串行输出A-D转换器的接口技术 145
6.5.3 MCS-51与8位D-A转换器接口技术 148
6.6 I2C总线及8051模拟 151
6.6.1 I2C总线简介 151
6.6.2 I2C总线通用读写程序 153
6.7 SPI总线及8051模拟 160
6.7.1 SPI总线规范 160
6.7.2 SPI总线读写程序 161
6.8 单相电子式预付费电能表的设计与实现 164
6.8.1 单相电子式预付费电能表的工作过程 164
6.8.2 硬件电路及其工作原理 166
6.8.3 软件编程 170
6.8.4 提高预付费电能表可靠性的措施 171
本章小结 173
习题 173
第7章 ARM嵌入式处理器及芯片 175
7.1 ARM处理器 175
7.1.1 ARM处理器简介 175
7.1.2 ARM系列处理器 175
7.1.3 ARM处理器的特点 177
7.2 ARM处理器的体系结构 178
7.2.1 嵌入式微处理器的体系结构 178
7.2.2 ARM处理器的工作模式及状态 180
7.2.3 ARM处理器的寄存器结构 180
7.2.4 ARM处理器的异常处理 183
7.2.5 ARM处理器支持的数据类型和存储模式 185
7.3 STM32F103微控制器 185
7.3.1 STM32F103的内部结构 186
7.3.2 STM32F103的外设端口 189
7.3.3 STM32F103的中断控制器与DMA控制器 191
7.4 STM32F10x固件库简介与应用举例 192
7.4.1 STM32F10x固件库概述 192
7.4.2 MDK开发环境与应用举例 194
本章小结 198
习题 198
第8章 实时操作系统RT-Thread及其在STM32上的移植 199
8.1 实时操作系统概述 199
8.1.1 嵌入式实时操作系统的概念 200
8.1.2 一些嵌入式操作系统的简介 201
8.2 RT-Thread实时操作系统简介 202
8.2.1 软件结构 202
8.2.2 任务线程 203
8.2.3 临界区与任务间的通信 206
8.2.4 异常与中断 212
8.2.5 内存管理 215
8.2.6 外围组件 217
8.3 RT-Thread实时操作系统的移植 219
8.3.1 RT-Thread在STM32F10x系列芯片上的移植分支 219
8.3.2 RT-Thread的移植方法 221
本章小结 221
习题 222
参考文献 223