第1章 绪论 1
1.1 单片机 1
1.1.1 单片机的定义 1
1.1.2 单片机的发展历程 1
1.1.3 80C51系列单片机简介 4
1.1.4 单片机的应用 5
1.2 嵌入式系统 6
1.2.1 嵌入式系统与通用计算机 6
1.2.2 嵌入式系统与单片机 7
1.3 学习安排 8
本章小结 9
习题 9
第2章 80C51单片机的基本结构与工作原理 10
2.1 80C51单片机的基本组成 10
2.2 80C51单片机的基本特性与引脚功能 12
2.2.1 80C51/80C52的基本特性 12
2.2.2 引脚功能 12
2.3 80C51单片机CPU的结构和时序 14
2.3.1 中央控制器 14
2.3.2 运算器 15
2.3.3 时钟电路及CPU的工作时序 17
2.4 80C51单片机存储器结构和地址空间 20
2.4.1 程序存储器 21
2.4.2 数据存储器 22
2.5 80C51单片机布尔(位)处理器 25
2.6 80C51单片机的工作方式 26
2.6.1 复位方式 26
2.6.2 低功耗工作方式 27
本章小结 28
习题 28
第3章 80C51单片机指令系统、汇编语言及C51程序设计 30
3.1 80C51单片机程序设计概述 30
3.1.1 指令和指令系统的概念 30
3.1.2 80C51汇编语言程序设计概述 30
3.1.3 KeilC51语言程序设计概述 31
3.2 80C51汇编语言指令系统与程序设计 31
3.2.1 80C51汇编语言指令格式 31
3.2.2 80C51汇编语言指令系统 32
3.2.3 80C51汇编语言程序设计 43
3.3 Keil C51程序设计 50
3.3.1 Keil C51基础 50
3.3.2 Keil C51的运算符 55
3.3.3 Keil C51程序设计 59
3.4 程序设计实例 67
本章小结 68
习题 69
第4章 开发环境Keil μVision5和仿真软件Proteus8.0 70
4.1 Keil μ Vision5使用 70
4.2 Proteus8.0ISIS使用 81
4.2.1 Proteus8.0ISIS的基本性能概述 81
4.2.2 Proteus8.0ISIS的编辑环境 82
4.2.3 Proteus8.0电路原理图设计 83
4.3 Keil和Proteus联调 90
4.3.1 Keil C编程与编译 90
4.3.2 Proteus仿真 91
4.3.3 Keil大工程的建立 93
本章小结 96
习题 96
第5章 80C51单片机基本输入输出接口 97
5.1 输入输出端口基本原理 97
5.1.1 P0口 97
5.1.2 P1口 99
5.1.3 P2口 99
5.1.4 P3口 100
5.2 输出电路设计 101
5.2.1 驱动LED 101
5.2.2 驱动蜂鸣器 102
5.2.3 驱动继电器 102
5.2.4 驱动七段LED数码管 103
5.2.5 多个七段数码管的应用 105
5.3 输入电路设计 107
5.3.1 输入设备和电路设计 107
5.3.2 抖动与去抖动 107
5.3.3 矩阵键盘 108
5.4 应用实例 110
5.4.1 蜂鸣器发声 110
5.4.2 单只数码管循环显示0~9 111
5.4.3 左右流水灯实验 112
本章小结 115
习题 116
第6章 80C51单片机中断系统 117
6.1 中断系统概念与原理 117
6.1.1 中断、中断源及中断优先权 117
6.1.2 80C51中断系统结构与控制 118
6.2 中断系统编程基础 121
6.2.1 中断系统汇编语言编程基础 121
6.2.2 中断系统C51语言编程基础 123
6.3 中断系统应用实例 123
6.3.1 外部中断实验 123
6.3.2 数码管计数实验 125
本章小结 128
习题 128
第7章 80C51单片机定时器/计数器 129
7.1 定时器/计数器的基本原理和结构 129
7.2 定时器/计数器T0/T1 130
7.2.1 工作方式寄存器TMOD 130
7.2.2 控制寄存器TCON 131
7.2.3 4种工作方式 131
7.3 定时器/计数器T2 133
7.3.1 定时器/计数器T2中的特殊功能寄存器 134
7.3.2 定时器/计数器T2的工作方式 135
7.4 看门狗定时器 137
7.5 定时器/计数器的编程基础 138
7.5.1 定时器/计数器溢出率的计算 138
7.5.2 定时器/计数器的编程基础 138
7.6 定时器/计数器应用实例 138
7.6.1 实例1 138
7.6.2 实例2 140
7.6.3 实例3 141
本章小结 145
习题 145
第8章 80C51单片机串行接口 146
8.1 串行通信基本知识 146
8.1.1 数据通信 146
8.1.2 串行通信的传输方式 146
8.1.3 异步通信和同步通信 147
8.1.4 通信协议和单机通信 148
8.1.5 RS-232C 149
8.2 80C51单片机串行接口的结构和工作原理 150
8.2.1 串行接口结构 150
8.2.2 传送过程工作原理 151
8.2.3 串行接口的控制寄存器 151
8.2.4 串行接口的工作方式与编程基础 153
8.3 串行接口的应用实例 155
8.3.1 实例1 155
8.3.2 实例2 158
本章小结 161
习题 161
第9章 80C51单片机系统扩展与接口技术 162
9.1 I2C总线接口扩展技术 162
9.2 I2C总线扩展E2 PROM AT24C02技术 167
9.2.1 AT24C02简介 167
9.2.2 AT24C02的应用实例 170
9.3 SPI总线接口扩展技术 176
9.3.1 SPI总线简介 176
9.3.2 接口定义 176
9.3.3 SPI的主要特点 178
9.4 SPI总线扩展实时时钟电路DS 1302技术 178
9.4.1 DS1302简介 178
9.4.2 DS1302应用实例 180
9.5 A-D转换接口技术 184
9.5.1 A-D转换简介 184
9.5.2 ADC0809芯片基本原理与结构 185
9.5.3 A-D转换器应用实例 186
9.6 D-A转换接口技术 190
9.6.1 D-A转换简介 190
9.6.2 DAC0832芯片基本原理与结构 190
9.6.3 D-A转换器应用实例 191
本章小结 193
习题 193
第10章 80C51单片机应用系统实例 194
10.1 基于DS18B20的数字温度计设计 194
10.1.1 设计要求 194
10.1.2 设计说明 194
10.1.3 设计方案 194
10.1.4 硬件设计 199
10.1.5 软件设计 199
10.1.6 调试仿真 205
10.2 直流电动机单闭环调速控制系统设计 205
10.2.1 设计目的 205
10.2.2 设计说明 206
10.2.3 设计方案 206
10.2.4 硬件设计 207
10.2.5 软件设计 208
10.2.6 实物调试 215
本章小结 216
习题 216
附录 217
附录A I2C程序 217
A.1 I2C头文件(i2c.h) 217
A.2 I2C源文件(i2c.c) 217
附录B DS1302程序 219
B.1 DS1302头文件(DS1302.h) 219
B.2 DS1302源文件(DS1302.c) 220
参考文献 223