第1章 单片机及其开发工具 1
1.1 单片机的基本概念 1
1.2 单片机的发展概况 1
1.2.1 单片机的发展历史 1
1.2.2 单片机技术的发展 3
1.3 单片机的特点及应用 4
1.3.1 单片机的特点 4
1.3.2 单片机的应用 4
1.4 常用单片机简介 5
1.4.1 MCS-51系列单片机 5
1.4.2 ATMEL89系列单片机 5
1.4.3 STC系列单片机 7
1.4.4 常见的其他系列单片机介绍 8
1.5 单片机程序开发软件Keil C简介 9
1.5.1 Keil C操作简介 9
1.5.2 Keil C程序开发方法 11
1.5.3 Keil C调试运行方法 14
1.6 单片机系统模拟软件Proteus简介 17
1.6.1 Proteus ISIS操作简介 18
1.6.2 Proteus ISIS原理图设计方法 22
1.6.3 Proteus ISIS原理图设计举例 24
1.6.4 Proteus ISIS模拟方法 26
思考题与习题 26
第2章 MCS-51单片机的结构与原理 28
2.1 MCS-51单片机的内部结构及CPU 28
2.1.1 MCS-51单片机的结构及特点 28
2.1.2 MCS-51单片机的内部原理结构 29
2.1.3 MCS-51单片机的CPU 29
2.2 MCS-51单片机的引脚与总线结构 32
2.2.1 MCS-51单片机的引脚信号 32
2.2.2 MCS-51单片机的外部总线结构 35
2.3 MCS-51单片机的存储器结构 35
2.3.1 程序存储器结构 36
2.3.2 片内数据存储器结构 37
2.3.3 片外数据存储器结构 40
2.4 MCS-51单片机的时钟及CPU时序 41
2.4.1 时钟电路及时钟信号 41
2.4.2 CPU时序 42
2.5 MCS-51单片机的复位 43
2.5.1 复位状态 43
2.5.2 复位电路 44
2.6 MCS-51单片机的低功耗工作方式 45
2.6.1 低功耗工作结构及控制 45
2.6.2 空闲工作方式 46
2.6.3 掉电工作方式 46
2.7 MCS-51单片机的输入/输出端口 47
2.7.1 P1口 47
2.7.2 P2口 48
2.7.3 P3口 49
2.7.4 P0口 50
2.7.5 端口负载能力和接口要求 51
思考题与习题 51
第3章 MCS-51指令系统及汇编程序设计 53
3.1 汇编语言概述 53
3.1.1 指令和机器语言 53
3.1.2 汇编语言 53
3.1.3 汇编语言格式 54
3.2 MCS-51单片机寻址方式 55
3.2.1 立即数寻址 55
3.2.2 寄存器寻址 56
3.2.3 直接寻址 56
3.2.4 寄存器间接寻址 57
3.2.5 变址寻址 58
3.2.6 位寻址 58
3.2.7 指令寻址 59
3.2.8 寻址空间及指令中符号注释 59
3.3 MCS-51单片机指令系统 60
3.3.1 数据传送指令 61
3.3.2 算术运算指令 65
3.3.3 逻辑操作指令 67
3.3.4 控制程序转移指令 69
3.3.5 位操作指令 72
3.4 MCS-51单片机伪指令 74
3.5 汇编语言程序设计 76
3.5.1 简单程序设计 76
3.5.2 分支程序设计 77
3.5.3 循环程序设计 78
3.5.4 子程序设计 79
思考题与习题 81
第4章 单片机C语言及程序设计 84
4.1 C51概述 84
4.1.1 C语言编程的优势 84
4.1.2 C51与ANSI C的区别 85
4.1.3 C51扩充的关键字 86
4.2 C51数据类型及存储 86
4.2.1 C51的数据类型 86
4.2.2 C51的数据存储 87
4.3 C51一般变量的定义 88
4.3.1 C51变量的定义 88
4.3.2 C51变量的存储类型 89
4.3.3 C51变量的存储区 89
4.3.4 C51变量定义举例 90
4.3.5 C51变量的存储模式 91
4.3.6 C51变量的绝对定位 91
4.3.7 C51设备变量的概念 92
4.4 C51特殊功能寄存器的定义 92
4.4.1 8位特殊功能寄存器的定义 92
4.4.2 16位特殊功能寄存器的定义 93
4.5 C51位变量的定义 93
4.5.1 bit型位变量的定义 93
4.5.2 sbit型位变量的定义 94
4.6 C51指针与结构体的定义 95
4.6.1 通用指针 95
4.6.2 存储器专用指针 95
4.6.3 指针变换 96
4.6.4 C51指针应用 97
4.6.5 C51结构体定义 100
4.7 C51的输入/输出 100
4.7.1 基本输入/输出函数 101
4.7.2 格式输出函数printf 101
4.7.3 格式输入函数scanf 102
4.8 C51函数的定义 104
4.8.1 C51函数定义的一般格式 104
4.8.2 C51中断函数的定义 105
4.9 C51与汇编语言混合编程 106
4.9.1 在C51函数中嵌入汇编程序 106
4.9.2 C51程序与汇编程序混合编程 107
思考题与习题 112
第5章 MCS-51单片机的中断系统 114
5.1 中断系统概述 114
5.1.1 中断的基本概念 114
5.1.2 中断的功能 114
5.2 中断系统结构、原理及控制 115
5.2.1 中断系统结构与原理 115
5.2.2 中断通道和中断源 116
5.2.3 外中断触发方式 116
5.2.4 中断请求标志 117
5.2.5 中断允许控制 118
5.2.6 中断优先级控制 119
5.3 中断响应及处理过程 121
5.3.1 中断响应 121
5.3.2 中断处理和中断返回 122
5.4 外部中断应用举例 123
5.4.1 中断应用程序结构 123
5.4.2 外部中断应用举例 126
思考题与习题 129
第6章 MCS-51单片机的定时器/计数器 131
6.1 MCS-51单片机定时器/计数器的结构及原理 131
6.1.1 MCS-51单片机定时器/计数器的结构 131
6.1.2 MCS-51单片机定时器/计数器的工作原理 132
6.2 定时器/计数器T0、T1 132
6.2.1 T0、T1的特殊功能寄存器 132
6.2.2 T0、T1的工作模式 134
6.2.3 T0、T1的使用方法 136
6.3 定时器/计数器T2 140
6.3.1 T2的特殊功能寄存器 140
6.3.2 T2的工作方式 142
6.4 定时器/计数器应用举例 145
思考题与习题 153
第7章 MCS-51单片机的串行口 154
7.1 串行通信基础知识 154
7.1.1 数据通信 154
7.1.2 异步通信和同步通信 155
7.1.3 波特率 156
7.1.4 通信方向 156
7.1.5 串行通信接口种类 157
7.2 串行口结构及控制 157
7.2.1 MCS-51单片机串行口结构 157
7.2.2 串行口特殊功能寄存器 158
7.2.3 波特率设计 159
7.3 串行口工作方式 162
7.3.1 串行口方式0 162
7.3.2 串行口方式1 163
7.3.3 串行口方式2和方式3 165
7.4 串行口应用举例 166
7.4.1 串行口方式0应用 166
7.4.2 串行口方式1、方式3应用 169
7.5 单片机与PC机通信接口电路 173
7.5.1 接口芯片MAX232简介 173
7.5.2 单片机与PC机串行通信接口电路 174
思考题与习题 175
第8章 单片机系统扩展接口技术 176
8.1 接口的基本概念 176
8.1.1 单片机应用系统构成 176
8.1.2 接口的概念 177
8.1.3 接口的基本功能 177
8.1.4 接口的结构 177
8.1.5 端口及编址 178
8.2 用并行方式扩展数据存储器 179
8.2.1 MCS-51单片机三总线结构 179
8.2.2 常用的数据存储器 180
8.2.3 单片机访问片外RAM的操作时序 181
8.2.4 扩展数据存储器 182
8.3 用简单芯片扩展并行I/O口 182
8.3.1 扩展I/O口常用的门电路芯片 182
8.3.2 简单扩展I/O口举例 183
8.4 用可编程芯片扩展并行I/O口 184
8.4.1 8255A的结构 184
8.4.2 8255A的引脚定义 185
8.4.3 8255A的控制字 186
8.4.4 8255A的工作方式 187
8.4.5 8255A的应用举例 187
8.5 用串行方式扩展数据存储器 189
8.5.1 I2C总线及操作 189
8.5.2 I2C总线扩展存储器 193
思考题与习题 195
第9章 单片机应用系统接口技术 197
9.1 键盘接口技术 197
9.1.1 键盘基本问题 197
9.1.2 独立式键盘结构及处理程序 198
9.1.3 行列式键盘结构及处理程序 199
9.2 LED显示器及接口技术 202
9.2.1 LED显示器结构及原理 202
9.2.2 LED显示器的显示方式 203
9.2.3 LED显示器与单片机的接口 204
9.3 LCD显示器及接口技术 205
9.3.1 LM016L的引脚信号 205
9.3.2 操作指令 206
9.3.3 数据存储器 207
9.3.4 基本操作函数 207
9.4 D/A转换器及接口技术 210
9.4.1 并行接口D/A转换器DAC0832及接口技术 210
9.4.2 串行接口D/A转换器TLC5615及接口技术 213
9.5 A/D转换器及接口技术 215
9.5.1 并行接口A/D转换器ADC0809及接口技术 216
9.5.2 串行接口A/D转换器TLC2543及接口技术 219
9.5.3 单片机片内A/D转换器及应用 224
9.6 开关量输出接口技术 225
9.6.1 继电器接口技术 226
9.6.2 光电耦合器件接口技术 227
9.6.3 直流电机控制接口技术 228
9.6.4 步进电机控制接口技术 229
思考题与习题 230
附录A ASCII码表 232
附录B MCS-51指令表 233
附录C C51库函数 237
附录D LCD1602字符表 245
参考文献 246