第1章 单片机概述 1
1.1 单片机的基本概念 1
1.2 单片机的发展历史 1
1.3 单片机的特点及应用 3
1.3.1 单片机的特点 3
1.3.2 单片机的应用 3
1.4 常见MCS-51单片机简介 4
1.4.1 MCS-51系列单片机 4
1.4.2 ATMEL89系列单片机 4
1.4.3 STC系列单片机 5
思考题与习题 6
第2章 MCS-51单片机结构原理 7
2.1 MCS-51单片机内部结构及CPU 7
2.1.1 MCS-51单片机结构及特点 7
2.1.2 MCS-51单片机内部原理结构 8
2.1.3 MCS-51单片机的CPU 8
2.2 MCS-51单片机引脚信号 11
2.2.1 MCS-51单片机引脚信号及功能 11
2.2.2 MCS-51单片机外部总线结构 14
2.3 MCS-51单片机存储器结构 15
2.3.1 程序存储器结构 15
2.3.2 片内数据存储器结构 16
2.3.3 片外数据存储器结构 19
2.4 MCS-51单片机时钟及CPU时序 20
2.4.1 时钟电路及时钟信号 20
2.4.2 CPU时序 22
2.5 MCS-51单片机的复位 24
2.5.1 复位状态 24
2.5.2 复位电路 24
2.6 MCS-51单片机低功耗工作方式 25
2.6.1 低功耗结构及控制 25
2.6.2 空闲工作方式 26
2.6.3 掉电工作方式 27
思考题与习题 27
第3章 单片机C语言基础 29
3.1 C51概述 29
3.1.1 C语言编程的优势 29
3.1.2 C51与ANSI C的区别 30
3.1.3 C51扩充的关键字 31
3.2 C51数据类型及存储 31
3.2.1 C51的数据类型 31
3.2.2 C51数据的存储 33
3.3 C51一般变量的定义 34
3.3.1 C51变量的定义格式 34
3.3.2 C51变量的存储类型 34
3.3.3 C51变量的存储区 35
3.3.4 C51变量定义举例 36
3.3.5 C51变量的存储模式 36
3.3.6 C51变量的绝对定位 37
3.3.7 C51设备变量 38
3.4 C51特殊功能寄存器的定义 38
3.4.1 8位特殊功能寄存器的定义 39
3.4.2 16位特殊功能寄存器的定义 39
3.5 C51位变量的定义 39
3.5.1 bit型位变量的定义 39
3.5.2 sbit型位变量的定义 40
4.5.3 位操作应用 41
3.6 C51指针与结构体的定义 44
3.6.1 通用指针 44
3.6.2 存储器专用指针 44
3.6.3 指针变换 45
3.6.4 C51指针应用 45
3.6.5 C51结构体定义 48
3.7 C51函数的定义 49
3.7.1 C51函数定义的一般格式 49
3.7.2 C51中断函数的定义 50
思考题与习题 51
第4章 单片机开发工具 53
4.1 单片机程序开发软件Keil C简介 53
4.1.1 Keil C集成开发工具简介 53
4.1.2 Keil C的操作工具 54
4.1.3 Keil C程序开发方法 58
4.1.4 Keil C调试运行方法 61
4.2 单片机系统模拟软件Proteus简介 64
4.2.1 Proteus主界面 65
4.2.2 Proteus ISIS的操作工具 65
4.2.3 Proteus ISIS原理图设计方法 71
4.2.4 Proteus ISIS原理图设计举例 74
4.2.5 Proteus ISIS仿真方法 76
思考题与习题 77
第5章 单片机I/O口及应用 79
5.1 单片机I/O口结构原理 79
5.1.1 P1口 79
5.1.2 P2口 81
5.1.3 P3口 81
5.1.4 P0口 82
5.1.5 端口负载能力和接口要求 83
5.2 数码管及显示控制 84
5.2.1 数码管显示器结构原理 84
5.2.2 数码管显示方式 85
5.2.3 数码管显示控制 86
5.3 键盘及识别控制 87
5.3.1 键盘分类及按键识别 87
5.3.2 独立式键盘及按键识别 88
5.3.3 行列式键盘及按键识别 89
5.3.4 中断方式扫描键盘 92
5.3.5 键盘应用举例 92
5.4 LCD显示器及控制 95
5.4.1 LM016L引脚信号 95
5.4.2 LM016L操作指令 95
5.4.3 LM016L数据存储器 96
5.4.4 LM016L基本操作函数 97
5.4.5 LM016L应用编程 98
思考题与习题 99
第6章 单片机中断系统 101
6.1 中断系统概述 101
6.1.1 中断的基本概念 101
6.1.2 中断的功能 101
6.2 中断系统的结构与原理 102
6.2.1 中断系统的结构 102
6.2.2 中断系统的原理 102
6.2.3 外部中断触发方式 103
6.2.4 中断请求标志 104
6.3 中断系统控制 105
6.3.1 中断允许控制 105
6.3.2 中断优先级控制 106
6.4 中断响应与处理 108
6.4.1 中断响应 108
6.4.2 中断处理 109
6.5 外部中断应用举例 109
6.5.1 中断应用程序结构及初始化 109
6.5.2 应用举例 111
思考题与习题 113
第7章 单片机定时器/计数器 115
7.1 单片机定时器/计数器的结构 115
7.2 定时器/计数器T0、T1 116
7.2.1 T0、T1的特殊功能寄存器 116
7.2.2 T0、T1的工作模式 117
7.2.3 T0、T1的使用方法 119
7.3 定时器/计数器T2 122
7.3.1 T2的特殊功能寄存器 122
7.3.2 T2的工作方式 123
7.4 定时器应用举例 127
思考题与习题 133
第8章 单片机串行口 134
8.1 串行通信基础知识 134
8.1.1 数据通信 134
8.1.2 异步通信和同步通信 135
8.1.3 波特率 136
8.1.4 通信方向 136
8.1.5 串行通信接口种类 137
8.2 串行口结构及控制 137
8.2.1 单片机串行口结构 137
8.2.2 串行口特殊功能寄存器 138
8.2.3 波特率设计 139
8.3 串行口工作方式 142
8.3.1 串行口方式0 142
8.3.2 串行口方式1 144
8.3.3 串行口方式2和方式3 145
8.4 串行口接口技术 146
8.4.1 RS-232接口 146
8.4.2 RS-422/485接口 148
8.4.3 USB接口 150
8.5 串行口的C51操作方法 152
8.5.1 串行口输出函数 152
8.5.2 串行口输入函数 155
8.6 串行口应用举例 157
8.6.1 串行口方式0应用 157
8.6.2 串行口方式1、方式3应用 160
思考题与习题 162
第9章 单片机常用总线接口 164
9.1 接口的基本概念 164
9.1.1 单片机应用系统构成 164
9.1.2 接口的概念 165
9.1.3 接口的基本功能 165
9.1.4 接口的结构 165
9.1.5 端口及其编址 166
9.2 并行总线及存储器接口 167
9.2.1 单片机并行总线结构 167
9.2.2 单片机并行总线操作时序 168
9.2.3 单片机与并行数据存储器的接口 169
9.3 单片机与并行总线设备的接口 171
9.3.1 8255A内部结构 171
9.3.2 8255A引脚信号 172
9.3.3 8255A的控制字 173
9.3.4 8255A的工作方式 174
9.3.5 8255A应用举例 175
9.4 IIC总线及应用接口 176
9.4.1 IIC总线特点 176
9.4.2 IIC总线时序 177
9.4.3 IIC总线操作函数 180
9.4.4 IIC总线应用 181
9.5 SPI总线及应用接口 183
9.5.1 SPI总线特点 183
9.5.2 SPI总线时序 184
9.5.3 SPI总线操作函数 185
9.5.4 SPI总线应用 187
思考题与习题 191
第10章 单片机与模拟、开关量接口技术 192
10.1 D/A转换器及应用 192
10.1.1 D/A转换器的主要参数 192
10.1.2 D/A转换器TLC5615及接口技术 192
10.1.3 D/A转换器DAC124S085及接口技术 195
10.2 A/D转换器及应用 198
10.2.1 A/D转换器的主要参数 199
10.2.2 A/D转换器ADC0834及接口技术 199
10.2.3 A/D转换器TLC2543及接口技术 204
10.2.4 单片机片内A/D转换器及应用 210
10.3 开关信号器件及应用 212
10.3.1 光电耦合器件及接口技术 212
10.3.2 继电器接口技术 213
10.3.3 直流电机控制接口技术 214
10.3.4 步进电机控制接口技术 216
思考题与习题 217
第11章 单片机应用系统设计 219
11.1 简易计算器设计 219
11.1.1 数码管与键盘接口芯片BC7277简介 219
11.1.2 系统电路设计 223
11.1.3 系统功能设计 224
11.1.4 系统程序设计 225
11.2 万年历设计 229
11.2.1 时钟芯片DS1302简介 229
11.2.2 系统电路设计 232
11.2.3 系统功能设计 233
11.2.4 系统程序设计 233
11.3 环境检测系统设计 236
11.3.1 温湿度传感器DHT11简介 236
11.3.2 光照度传感器BH1750简介 239
11.3.3 系统电路设计 241
11.3.4 系统程序设计 242
课程设计参考题目 243
参考文献 244
附录A 标准ASCII码表 245
附录B C语言运算符特性表 246
附录C C51库函数 247
C.1 一般I/O函数 247
C.2 内部函数 248
C.3 绝对地址访问函数 249