第1章 概述 1
1.1 单片机的概念 1
1.2 单片机的发展历程及趋势 1
1.2.1 单片机的发展历程 1
1.2.2 单片机的发展趋势 2
1.3 单片机的特点及分类 3
1.3.1 单片机的特点 3
1.3.2 单片机的分类 3
1.4 单片机的应用 4
1.5 典型的单片机产品 5
1.5.1 MCS-51系列单片机 5
1.5.2 8051内核的单片机 6
1.5.3 PIC内核的单片机 6
习题1 7
第2章 51单片机的硬件结构 8
2.1 MCS-51系列单片机简介 8
2.2 80C51的内部总体结构 8
2.3 80C51的引脚功能 10
2.4 80C51单片机存储器结构 12
2.5 单片机的时钟和复位电路 18
2.5.1 时钟电路 18
2.5.2 指令时序 20
2.5.3 复位电路 20
2.6 单片机的低功耗节电方式 22
2.6.1 空闲模式设计 23
2.6.2 掉电模式设计 23
习题2 23
第3章 C51语言编程基础 25
3.1 C51编程语言简介 25
3.2 C51语言的数据类型 26
3.3 数据存储类型 28
3.4 C51的运算量 29
3.4.1 常量 29
3.4.2 变量 30
3.5 数据存储模式 32
3.6 C51语言绝对地址的访问 33
3.7 C51语言的函数 35
3.7.1 函数的分类 35
3.7.2 函数的调用与声明 37
3.7.3 函数的嵌套与递归 39
3.7.4 宏定义、文件包含及库函数 39
3.8 C51语言的运算符 40
3.9 C51语言语句及程序结构 43
3.9.1 表达式语句 44
3.9.2 复合语句 44
3.9.3 C51语言程序基本结构 45
3.10 C51语言构造数据类型 50
3.10 .1 C51语言的数组 50
3.10 .2 C51语言的指针 51
3.10 .3 C51语言结构 52
3.10 .4 联合 53
3.10 .5 枚举 54
习题3 55
第4章 80C51单片机I/O端口及应用 56
4.1 P0口 56
4.2 P1口 57
4.3 P2口 58
4.4 P3口 59
4.5 I/O口简单输入/输出设计 60
4.6 单片机I/O口控制电磁继电器 62
4.7 单片机I/O口控制光耦 64
4.8 单片机I/O口控制双向可控硅 66
4.8.1 晶闸管工作原理 66
4.8.2 单片机I/O口控制双向可控硅接口设计 67
4.9 单片机I/O口控制固态继电器 69
习题4 70
第5章 80C51单片机的中断系统 71
5.1 中断的概念 71
5.2 80C51中断系统的结构 71
5.2.1 中断源及中断标志位 72
5.2.2 中断控制寄存器 72
5.3 中断响应过程 75
5.4 中断服务函数及应用 77
5.4.1 中断服务函数 77
5.4.2 外部中断服务函数应用设计 78
习题5 84
第6章 80C51单片机定时器/计数器 85
6.1 定时器/计数器T0和T1的结构及工作原理 85
6.1.1 定时器/计数器T0和T1的结构 85
6.1.2 80C51单片机定时器/计数器的工作原理 86
6.2 定时器/计数器T0和T1的控制寄存器 87
6.3 定时器/计数器T0和T1的工作方式 88
6.4 定时器/计数器T0和T1的应用 91
习题6 100
第7章 单片机系统的并行扩展 102
7.1 MCS-51单片机的最小系统 102
7.2 MCS-51单片机系统并行扩展技术 103
7.2.1 并行扩展总线原理 103
7.2.2 I/O接口扩展概述 104
7.2.3 并行扩展地址译码技术 105
7.3 存储器扩展技术 109
7.3.1 存储器概述 109
7.3.2 程序存储器的扩展 111
7.3.3 数据存储器的扩展 113
7.4 I/O接口扩展概述 115
7.5 简单74系列并行I/O接口的扩展 116
7.6 通用可编程I/O接口芯片82C55的扩展 117
7.6.1 并行I/O接口芯片82C55 117
7.6.2 并行I/O接口82C55的三种工作方式 121
7.6.3 80C51单片机与82C55的接口设计 124
习题7 126
第8章 人机交互接口设计 128
8.1 键盘接口 128
8.1.1 键盘的工作原理 128
8.1.2 键盘的接口电路 129
8.1.3 键盘的工作方式 136
8.2 LED数码管显示器接口 137
8.2.1 LED数码管的结构 137
8.2.2 LED数码管的工作原理 139
8.3 键盘与LED数码管显示器接口综合设计实例 143
8.3.1 利用并行I/O芯片82C55实现的键盘/显示器接口 143
8.3.2 利用单片机串行口实现的键盘/显示器接口 146
8.3.3 基于专用芯片HD7279A实现的键盘/显示器接口 148
8.4 LCD 1602液晶显示器接口 162
8.4.1 LCD1602液晶显示模块介绍 162
8.4.2 单片机控制LCD1602显示举例 169
习题8 172
第9章 80C51单片机与DAC、ADC接口芯片的设计 173
9.1 单片机与DAC0832的接口 173
9.1.1 D/A转换器概述 173
9.1.2 80C51与8位DAC0832的接口设计 174
9.1.3 单片机与DAC0832接口的应用设计 178
9.2 80C51单片机与ADC0809的接口 185
9.2.1 A/D转换器概述 185
9.2.2 80C51与ADC0809的接口 186
9.2.3 单片机控制ADC0809的输入采集设计 189
9.3 80C51单片机与串行ADC0832的接口 196
习题9 199
第10章 80C51单片机串口设计 201
10.1 串口通信基础 201
10.2 单片机串口的结构 203
10.2.1 80C51串口结构 203
10.2.2 串口相关的特殊功能寄存器 204
10.3 串口工作方式 205
10.4 串口波特率设计 206
10.5 多机通信 208
10.6 串口应用设计 208
10.6.1 串口方式0的应用设计 209
10.6.2 串口方式1的应用设计 213
10.6.3 串口方式2和3的多机通信应用设计 216
10.6.4 单片机与PC异步串行通信设计 219
10.6.5 单片机与异步串口RS-232C的接口电路设计 220
10.6.6 单片机与异步串口RS-422A接口电路设计 223
10.6.7 单片机与异步串口RS-485接口电路设计 225
习题10 250
第11章 80C51单片机串行扩展技术 252
11.1 芯片级串行总线接口扩展 252
11.2 单总线串行扩展 253
11.2.1 单总线温度数据采集芯片DS18B20 253
11.2.2 单总线温度数据采集元件的接口电路 257
11.3 I2C总线串行扩展 264
11.3.1 I2C总线系统的结构 264
11.3.2 I2C总线的数据传输规则 265
11.3.3 80C51单片机模拟I2C串行总线传送数据 267
11.3.4 具有I2C串行总线的EEPROM AT24C02的设计 270
11.4 SPI总线串行扩展 277
11.4.1 SPI串行外设接口总线 277
11.4.2 SPI接口Flash AT25F1024设计 279
习题11 285
第12章 单片机应用实例 286
12.1 直流电动机的控制设计 286
12.2 单片机控制步进电机 290
12.3 单片机电子音乐设计 293
12.4 单片机频率计设计 297
12.5 SPI射频收发芯片nRF24L01接口设计 301
习题12 325
第13章 Keil C51和Proteus虚拟仿真平台的使用 326
13.1 集成开发环境Keil C51简介 326
13.1.1 Keil μVision5运行环境介绍 326
13.1.2 Keil C51的安装 326
13.1.3 Keil C51的使用 329
13.2 Proteus虚拟仿真平台的使用 340
13.2.1 Proteus的功能与应用软件 340
13.2.2 Proteus ISIS编辑环境 341
13.2.3 Proteus的虚拟仿真调试工具 347
13.2.4 仿真工具栏 351
13.2.5 Proteus虚拟设计与仿真 351
13.2.6 Proteus与Keil的联调 358
习题13 359
参考文献 360