第1章 从计算机到嵌入式计算机 1
1.1 计算机概述 1
1.1.1 计算机的技术发展史 1
1.1.2 计算机中的信息表示 2
1.2 微型计算机系统的组成及原理 8
1.2.1 硬件组成 8
1.2.2 软件组成 9
1.3 微型计算机的基本电路 10
1.4 微型计算机的分类 13
1.4.1 现代计算机技术的两大分支 13
1.4.2 通用微型计算机 14
1.4.3 嵌入式计算机 15
本章小结 15
本章习题 16
第2章 嵌入式系统结构 17
2.1 嵌入式系统的基本概念 17
2.1.1 什么是嵌入式系统 17
2.1.2 嵌入式系统的特点 18
2.1.3 嵌入式系统的应用模式 20
2.1.4 嵌入式系统的发展 25
2.1.5 嵌入式系统的组成 27
2.2 嵌入式系统硬件结构 28
2.2.1 存储体系结构 28
2.2.2 指令体系结构 31
2.2.3 嵌入式系统的存储器 34
2.3 嵌入式系统软件基础 39
2.3.1 嵌入式操作系统 39
2.3.2 嵌入式应用软件 43
2.4 应用最广泛的嵌入式系统 44
2.4.1 单片机的嵌入式特点 44
2.4.2 单片机的嵌入式应用 45
2.4.3 8位单片机的主流地位 45
2.4.4 单片机的技术发展史和趋势 46
2.4.5 嵌入式系统的高低端 47
本章小结 48
本章习题 48
第3章 80C51单片机的结构与配置3.1 概述 49
3.2 80C51单片机的内部结构 50
3.3 80C51单片机的外部引脚及功能 52
3.3.1 信号引脚的介绍 52
3.3.2 引脚的复用 54
3.4 80C51单片机的存储器配置 54
3.4.1 内部数据存储器 54
3.4.2 特殊功能寄存器SFR 56
3.4.3 80C51单片机的堆栈操作 60
3.4.4 程序存储器 61
3.4.5 80C51嵌入式系统的存储器结构特点 62
3.5 80C51单片机并行输入/输出接口电路 62
3.5.1 P0口的内部结构 62
3.5.2 P1口的内部结构 63
3.5.3 P2口的内部结构 64
3.5.4 P3口的内部结构 65
3.5.5 并行接口电路小结 65
3.6 80C51单片机的时钟电路与时序 66
3.6.1 时钟电路 66
3.6.2 时钟时序的基本概念 67
3.7 80C51单片机的工作方式 69
3.7.1 复位方式 69
3.7.2 节电方式 70
本章小结 71
本章习题 71
第4章 80C51单片机指令系统与汇编程序设计 71
4.1 80C51单片机指令系统 72
4.1.1 指令概述 72
4.1.2 指令格式 73
4.1.3 指令的分类 73
4.1.4 指令中常用符号说明 74
4.2 80C51单片机的寻址方式 75
4.2.1 立即寻址 75
4.2.2 直接寻址 75
4.2.3 寄存器寻址 76
4.2.4 寄存器间接寻址 76
4.2.5 变址寻址 77
4.2.6 相对寻址 77
4.2.7 位寻址 77
4.3 数据传送类指令 78
4.3.1 内部RAM数据传送指令 78
4.3.2 访问外部RAM的数据传送指令 79
4.3.3 程序存储器向累加器A传送数据指令 80
4.3.4 数据交换指令 81
4.3.5 堆找操作指令 82
4.4 算术运算类指令 82
4.4.1 加法指令 82
4.4.2 带进位加法指令 83
4.4.3 带借位减法指令 84
4.4.4 加1指令 85
4.4.5 减1指令 85
4.4.6 乘除指令 85
4.4.7 十进制调整指令 86
4.5 逻辑运算及移位类指令 87
4.5.1 逻辑“与”运算指令 87
4.5.2 逻辑“或”运算指令 87
4.5.3 逻辑“异或”运算指令 88
4.5.4 累加器清零、取反指令 88
4.5.5 循环移位指令 89
4.6 控制转移类指令 90
4.6.1 无条件转移指令 90
4.6.2 条件转移指令 92
4.6.3 子程序调用及返回指令 95
4.6.4 空操作指令 97
4.7 位操作类指令 97
4.7.1 位变量传送指令 97
4.7.2 置位清零指令 98
4.7.3 位逻辑运算指令 98
4.7.4 位控制转移指令 99
4.8 汇编语言程序的伪指令 100
4.9 汇编语言程序设计举例 102
4.9.1 程序的基本结构 102
4.9.2 顺序程序设计 103
4.9.3 分支程序设计 103
4.9.4 循环程序设计 105
4.9.5 查表程序设计 109
4.9.6 子程序设计 110
本章小结 112
本章习题 113
第5章 80C51单片机的C语言程序设计基础5.1 C51程序设计的基础知识 116
5.1.1 C51的优势及其程序结构特点 116
5.1.2 C51中的标识符和关键字 117
5.2 C51中的数据类型 119
5.2.1 字符类型char 120
5.2.2 整型int 120
5.2.3 长整型long 121
5.2.4 浮点型float 121
5.2.5 指针型 122
5.2.6 位标量bit 122
5.2.7 特殊功能寄存器sfr 123
5.2.8 16位特殊功能寄存器sfr16 123
5.2.9 特殊功能位sbit 124
5.3 C51中的常量 124
5.3.1 整型常量 124
5.3.2 浮点型常量 124
5.3.3 字符型常量 124
5.3.4 字符串型常量 125
5.3.5 位标量 125
5.3.6 常量的定义 125
5.4 C51中的变量及其存储模式 126
5.4.1 C51中的变量 126
5.4.2 C51中存储器类型 126
5.4.3 C51中存储模式 128
5.5 C51中的函数 129
5.5.1 一般函数 130
5.5.2 中断函数 130
5.5.3 再入函数 132
5.6 C程序和汇编语言程序的结合 133
5.7 典型设计要求的C语言实现方法 134
5.8 C51程序设计的几点注意事项 137
本章小结 140
本章习题 141
第6章 80C51单片机的程序开发 142
6.1 80C51单片机的程序开发流程 142
6.2 80C51单片机程序开发的软硬件平台 142
6.2.1 Keil C51软件及其安装 142
6.2.2 HK-Keil C仿真器及其安装 144
6.3 80C51程序的开发 147
6.3.1 Keil μVisionX的启动 147
6.3.2 建立并调试用户程序 148
6.3.3 HK-Keil C51综合实验系统的应用 157
6.3.4 几点使用技巧 162
6.4 80C51目标程序的ISP下载 163
6.4.1 AT89S5X ISP下载器简介 163
6.4.2 ISP下载操作流程 163
本章小结 166
本章习题 166
第7章 80C51单片机的中断与定时系统7.1 中断的概念 167
7.1.1 中断功能 168
7.1.2 中断过程 168
7.2 80C51单片机的中断系统 168
7.2.1 中断源及其入口地址 169
7.2.2 80C51单片机的中断系统结构和中断控制 170
7.2.3 中断过程 176
7.3 80C51单片机的定时/计数器 178
7.3.1 定时的方法 178
7.3.2 定时器的两种工作模式 178
7.3.3 定时器的控制 179
7.3.4 定时器的工作方式 181
7.4 80C51单片机的定时器与中断联合应用举例 187
本章小结 190
本章习题 191
第8章 80C51嵌入式系统接口技术8.1 嵌入式系统接口技术概述 192
8.1.1 接口概念 192
8.1.2 接口类型 193
8.2 80C51单片机的通信接口技术 194
8.2.1 串行通信的基本知识 194
8.2.2 80C51单片机的串行接口 200
8.2.3 80C51单片机与外设的通信总线 220
8.3 80C51单片机的人机交互接口技术 240
8.3.1 键盘接口技术 240
8.3.2 显示接口设计 243
8.3.3 键盘/LED显示器接口ZLG7290 251
本章小结 257
本章习题 259
第9章 80C51单片机的SoC化嵌入式系统9.1 ADμC8xx嵌入式数据采集系统 260
9.1.1 A/D转换器 260
9.1.2 D/A转换器 262
9.1.3 ADμC812的主要特点 263
9.1.4 ADμC812的功能部件 263
9.1.5 ADμC824简介 265
9.2 C8051F系统级单片机 268
9.2.1 系统组成 268
9.2.2 外部引脚及功能 272
9.2.3 改进型51内核 273
9.2.4 片内存储器 274
9.2.5 可编程数字I/O和交叉开关 275
9.2.6 可编程计数器阵列 275
9.2.7 串行端口 276
9.2.8 模/数转换器ADC 277
9.2.9 比较器和数/模转换器DAC 278
9.2.10 JTAG调试和边界扫描 278
本章小结 279
本章习题 279
第10章 80C51嵌入式系统应用实例10.1 高精度低成本温度控制器 280
10.1.1 DS1620温度测量与控制原理 280
10.1.2 控制电路的实现 286
10.1.3 控制程序设计 287
10.2 多功能报警系统 288
10.2.1 系统的组成与工作原理 288
10.2.2 软件程序设计 290
本章小结 293
本章习题 293
附录A 指令速查表(按字母顺序排列) 294
附录B PDIUSBD 12引脚描述 298
附录C PDIUSBD 12端点描述 300
附录D PDIUSBD 12的命令描述 301
附录E ZLG7290的应用程序 302
参考文献 307