第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单片机的应用 5
1.4常用单片机简介 5
1.4.1 MCS-51系列单片机 5
1.4.2 ATMEL89系列单片机 6
1.4.3 STC系列单片机 8
1.4.4常见的其他系列单片机 8
1.5单片机程序开发软件Keil C简介 9
1.5.1 Keil C集成工具 10
1.5.2 Keil C操作方法 10
1.5.3 Keil C程序开发方法 13
1.5.4 Keil C调试运行方法 17
1.6单片机系统模拟软件Proteus简介 20
1.6.1 Proteus ISIS操作方法 21
1.6.2 Proteus ISIS原理图设计方法 25
1.6.3 Proteus ISIS原理图设计举例 28
1.6.4 Proteus ISIS电路模拟运行方法 30
思考题与习题 30
第2章MCS-51单片机的结构与原理 32
2.1 MCS-51单片机的内部结构及CPU 32
2.1.1 MCS-51单片机的结构及特点 32
2.1.2 MCS-51单片机的内部原理结构 33
2.1.3 MCS-51单片机的CPU 33
2.2 MCS-51单片机的引脚与总线结构 36
2.2.1 MCS-51单片机的引脚信号及功能 36
2.2.2 MCS-51单片机的外部总线结构 39
2.3 MCS-51单片机的存储器结构 40
2.3.1程序存储器结构 40
2.3.2片内数据存储器结构 41
2.3.3片外数据存储器结构 44
2.4 MCS-51单片机的时钟及CPU时序 45
2.4.1时钟电路及时钟信号 45
2.4.2 CPU时序 46
2.5 MCS-51单片机的复位 47
2.5.1复位状态 47
2.5.2复位电路 48
2.6 MCS-51单片机的低功耗工作方式 49
2.6.1低功耗工作结构及控制 49
2.6.2空闲工作方式 50
2.6.3掉电工作方式 50
2.7 MCS-51单片机的输入/输出端口 51
2.7.1 P1口 51
2.7.2 P2口 53
2.7.3 P3口 53
2.7.4 P0口 54
2.7.5端口负载能力和接口要求 55
思考题与习题 56
第3章MCS-51指令系统及汇编程序设计 58
3.1汇编语言概述 58
3.1.1指令和机器语言 58
3.1.2汇编语言 59
3.1.3汇编语言格式 59
3.2 MCS-51单片机寻址方式 61
3.2.1立即数寻址 61
3.2.2寄存器寻址 61
3.2.3直接寻址 62
3.2.4寄存器间接寻址 63
3.2.5变址寻址 64
3.2.6位寻址 64
3.2.7指令寻址 64
3.2.8寻址空间及指令中符号注释 65
3.3 MCS-51单片机指令系统 66
3.3.1数据传送指令 66
3.3.2算术运算指令 71
3.3.3逻辑操作指令 74
3.3.4控制程序转移指令 76
3.3.5位操作指令 80
3.4 MCS-51单片机伪指令 82
3.5汇编语言程序设计 84
3.5.1简单程序设计 84
3.5.2分支程序设计 85
3.5.3循环程序设计 86
3.5.4子程序设计 88
思考题与习题 90
第4章 单片机C语言及程序设计 93
4.1 C51概述 93
4.1.1 C语言编程的优势 93
4.1.2 C51与ANSI C的区别 94
4.1.3 C51扩充的关键字 95
4.2 C51数据类型及存储 96
4.2.1 C51的数据类型 96
4.2.2 C51数据的存储 97
4.3 C51一般变量的定义 98
4.3.1 C51变量的定义格式 98
4.3.2 C51变量的存储类型 99
4.3.3 C51变量的存储区 99
4.3.4 C51变量定义举例 100
4.3.5 C51变量的存储模式 101
4.3.6 C51变量的绝对定位 102
4.3.7 C51设备变量的概念 102
4.4 C51特殊功能寄存器的定义 103
4.4.1 8位特殊功能寄存器的定义 103
4.4.2 16位特殊功能寄存器的定义 103
4.5 C51位变量的定义 104
4.5.1 bit型位变量的定义 104
4.5.2 sbit型位变量的定义 105
4.6 C51指针与结构体的定义 106
4.6.1通用指针 106
4.6.2存储器专用指针 107
4.6.3指针变换 108
4.6.4 C51指针应用 108
4.6.5 C51结构体定义 112
4.7 C51的输入/输出 112
4.7.1基本输入/输出函数 113
4.7.2格式输出函数printf 113
4.7.3格式输入函数scanf 114
4.8 C51函数的定义 116
4.8.1 C51函数定义的一般格式 116
4.8.2 C51中断函数的定义 117
4.9 C51与汇编语言混合编程 118
4.9.1在C51函数中嵌入汇编程序 118
4.9.2 C51程序与汇编程序混合编程 119
思考题与习题 124
第5章MCS-51单片机中断系统 127
5.1中断系统概述 127
5.1.1中断的基本概念 127
5.1.2中断的功能 127
5.2中断系统结构、原理及控制 128
5.2.1中断系统结构与原理 128
5.2.2中断通道和中断源 129
5.2.3外中断触发方式 130
5.2.4中断请求标志 130
5.2.5中断允许控制 132
5.2.6中断优先级控制 133
5.3中断响应及处理过程 134
5.3.1中断响应 135
5.3.2中断处理和中断返回 136
5.4外部中断应用举例 137
5.4.1中断应用程序结构 137
5.4.2外部中断应用举例 140
思考题与习题 143
第6章MCS-51单片机定时器/计数器 145
6.1单片机定时器/计数器的结构及原理 145
6.1.1单片机定时器/计数器结构 145
6.1.2单片机定时器/计数器的工作原理 146
6.2定时器/计数器T0、T1 146
6.2.1 T0、T1的特殊功能寄存器 146
6.2.2 T0、T1的工作模式 148
6.2.3 T0、T1的使用方法 150
6.3定时器/计数器T2 155
6.3.1 T2的特殊功能寄存器 155
6.3.2 T2的工作方式 156
6.4定时器/计数器应用举例 160
思考题与习题 168
第7章MCS-51单片机串行口 170
7.1串行通信基础知识 170
7.1.1数据通信 170
7.1.2异步通信和同步通信 171
7.1.3波特率 172
7.1.4通信方向 172
7.1.5串行通信接口种类 173
7.2串行口结构及控制 173
7.2.1 MCS-51单片机串行口结构 173
7.2.2串行口特殊功能寄存器 174
7.2.3波特率设计 176
7.3串行口工作方式 178
7.3.1串行口方式0 178
7.3.2串行口方式1 180
7.3.3串行口方式2和方式3 181
7.4串行口应用举例 182
7.4.1串行口方式0应用 182
7.4.2串行口方式1、方式3应用 185
7.5单片机与PC通信接口电路 189
7.5.1接口芯片MAX232简介 189
7.5.2单片机与PC串行通信接口电路 190
思考题与习题 191
第8章 单片机系统扩展接口技术 193
8.1接口的基本概念 193
8.1.1单片机应用系统构成 193
8.1.2接口的概念 194
8.1.3接口的基本功能 194
8.1.4接口的结构 194
8.1.5端口及编址 195
8.2用并行方式扩展数据存储器 196
8.2.1 MCS-51单片机三总线结构 196
8.2.2常用的数据存储器 197
8.2.3单片机访问片外RAM的操作时序 198
8.2.4扩展数据存储器 199
8.3用简单芯片扩展并行I/O口 200
8.3.1扩展I/O口常用的门电路芯片 200
8.3.2简单扩展I/O口举例 200
8.4用可编程芯片扩展并行I/O口 201
8.4.1 8255A的结构 202
8.4.2 8255A的引脚定义 203
8.4.3 8255A的控制字 203
8.4.4 8255A的工作方式 205
8.4.5 8255A的应用举例 205
8.5用串行方式扩展数据存储器 207
8.5.1 I2C总线 207
8.5.2 I2C总线扩展存储器 211
思考题与习题 214
第9章 单片机人机交互接口技术 216
9.1键盘接口技术 216
9.1.1键盘基本问题 216
9.1.2键盘结构及处理程序 217
9.1.3中断扫描方式 222
9.2 LED显示器及接口技术 222
9.2.1 LED显示器结构及原理 222
9.2.2 LED显示器显示方式 223
9.2.3 LED显示器与单片机的接口及程序 224
9.3 LCD显示器及接口技术 226
9.3.1字符式LCD LM016L 226
9.3.2点阵式LCD AMPIRE12864 229
思考题与习题 234
第10章单片机模拟量、开关量接口技术 236
10.1 A/D转换器及接口技术 236
10.1.1并行接口A/D转换器ADC0809及接口技术 236
10.1.2串行接口A/D转换器TLC2543及接口技术 240
10.1.3单片机片内A/D转换器及应用 244
10.2 D/A转换器及接口技术 246
10.2.1并行接口D/A转换器DAC0832及接口技术 246
10.2.2串行接口D/A转换器TLC5615及接口技术 250
10.3开关量输出接口技术 252
10.3.1光电耦合器件接口技术 252
10.3.2继电器接口技术 253
10.3.3直流电机控制接口技术 254
10.3.4步进电机控制接口技术 255
思考题与习题 256
第11章 单片机应用实例 258
11.1单片机应用开发方法 258
11.1.1总体设计 258
11.1.2硬件设计 259
11.1.3软件设计 260
11.1.4系统调试与测试 261
11.2基于单片机的计算器设计 261
11.2.1系统电路设计 261
11.2.2系统功能设计 262
11.2.3系统程序设计 263
11.3基于单片机的万年历设计 266
11.3.1实时时钟芯片DS1302简介 266
11.3.2数字温度传感器DS18B20简介 269
11.3.3系统电路设计 274
11.3.4系统功能设计 275
11.3.5系统程序设计 275
课程设计题目 278
附录A ASCII码表 279
附录B MCS-51指令表 280
附录C C51库函数 284
C.1寄存器头文件 284
C.2字符函数 284
C.3一般I/O函数 285
C.4标准函数 287
C.5数学函数 288
C.6内部函数 289
C.7字符串函数 290
C.8绝对地址访问函数 292
附录D LCD1602字符表 293
参考文献 294