1单片机概述 1
1.1 单片机定义及特点 1
1.2 单片机分类与应用 2
1.2.1 51系列单片机分类 2
1.2.2 AT89系列单片机的特点 3
1.2.3 单片机的应用 4
1.3 单片机的型号说明 5
1.4 其他系列单片机和嵌入式微处理器 6
1.4.1 STC系列单片机 6
1.4.2 PIC系列单片机 6
1.4.3 AVR系列单片机 6
1.4.4 嵌入式微处理器 7
习题 7
2 51系列单片机的硬件结构 8
2.1 51系列单片机结构 8
2.1.1 89C51单片机的硬件组成 8
2.1.2 中央处理器CPU 8
2.1.3 51系列外部引脚和功能 11
2.2 51系列单片机存储器的结构 12
2.2.1 程序存储器空间 13
2.2.2 数据存储器空间 14
2.2.3 特殊功能寄存器 15
2.2.4 位地址空间 17
2.3 并行I/O口 19
2.3.1 P0口 19
2.3.2 P1口 20
2.3.3 P2口 21
2.3.4 P3口 22
2.3.5 I/O的负载能力 23
2.4 时钟电路与时序 24
2.4.1 时钟电路设计 24
2.4.2 机器周期、指令周期 25
2.5 复位操作和复位电路 26
2.5.1 复位操作 26
2.5.2 复位电路设计 27
2.6 低功耗节电模式 28
2.6.1 空闲模式 29
2.6.2 掉电运行模式 29
习题 30
3单片机C51基础知识 31
3.1 C51语言的程序结构 31
3.1.1 函数 32
3.1.2 C51中常用的头文件 33
3.1.3 库函数reg51.h/reg52.h 33
3.1.4 内部函数intrins.h 35
3.1.5 绝对地址访问函数absacc.h 36
3.2 C51中的基本数据类型 37
3.2.1 常量与变量 39
3.2.2 变量的存储类型和存储模式 39
3.3 C51中的运算符 41
3.4 数组与指针 44
3.4.1 数组 44
3.4.2 指针 45
3.5 绝对地址的访问 46
3.5.1 使用指针 46
3.5.2 使用C51运行库中预定义宏 46
3.5.3 使用C51扩展关键字_at_ 47
3.6 中断服务函数 47
3.7 C51常用基础语句 49
习题 52
4 Keil与Proteus软件介绍与使用 54
4.1 Keil C51简介 54
4.2 Keil C51的安装及启动 54
4.3 工程创建实例 55
4.3.1 建立新的工程文件 55
4.3.2 选择目标器件 56
4.3.3 添加程序文件 57
4.3.4 输入、编辑、保存程序源代码 58
4.3.5 将程序文件添加到工程项目中 59
4.4 编译连接环境的设置 61
4.5 程序文件的编译和连接 62
4.6 Keil软件的仿真功能 63
4.7 Proteus软件介绍 65
4.7.1 Proteus编辑环境介绍 66
4.7.2 绘制电路原理图 68
4.8 Proteus和Keil联调仿真单片机 72
4.8.1 Proteus与Keil C接口 72
4.8.2 Proteus和Keil联合调试实例 73
4.8.3 Proteus常用库元件 79
习题 80
5 51单片机内部资源 81
5.1 中断系统 81
5.1.1 什么是中断 81
5.1.2 中断源 83
5.1.3 中断控制 83
5.1.4 51单片机中断处理过程 86
5.1.5 中断请求的清除 87
5.1.6 C51中断服务函数 87
5.1.7 外部中断的应用实例 88
5.2 定时/计数器 93
5.2.1 定时/计数器的基本结构 95
5.2.2 定时/计数器的控制寄存器 95
5.2.3 定时/计数器的工作方式和初始化 96
5.2.4 定时/计数器应用实例 98
5.3 串行通信接口 109
5.3.1 并行与串行基本通信方式 109
5.3.2 串行口的内部结构 111
5.3.3 串行口的工作方式 113
5.3.4 串行口波特率 114
5.3.5 RS232标准及应用 116
5.3.6 串口应用实例 117
习题 131
6单片机常用输入输出设备 133
6.1 发光二极管 133
6.1.1 发光二极管工作原理 133
6.1.2 发光二极管的应用 133
6.2 LED数码管显示器 134
6.2.1 LED数码管的工作原理 134
6.2.2 LED数码管驱动方式 136
6.3 键盘 140
6.3.1 键盘工作原理和工作方式 140
6.3.2 键盘分类 142
6.4 LCD1602液晶显示模块 147
6.4.1 LCD1602的特性及引脚 148
6.4.2 LCD1602字符显示位置关系 149
6.4.3 LCD1602字符的显示及命令字 150
6.4.4 LCD1602的基本操作 152
6.4.5 LCD1602显示实例 154
习题 158
7单片机部分外部资源 160
7.1 ADC和DAC 160
7.1.1 A/ D转换器 160
7.1.2 D/A转换器 161
7.1.3 PCF8591芯片 163
7.2 SPI总线接口 172
7.3 IIC总线接口 175
7.3.1 系统结构图 175
7.3.2 IIC总线上的通信格式 175
7.3.3 IIC总线上的数据帧格式 177
7.3.4 AT24C02与C51的接口 178
7.3.5 AT24C系列原理 182
习题 186
8单片机系统课程设计 188
8.1 模拟汽车信号灯的设计 188
8.1.1 实现功能 188
8.1.2 硬件设计 188
8.1.3 软件设计 189
8.2 汽车遥控钥匙的设计 193
8.2.1 实现功能 193
8.2.2 硬件设计 193
8.2.3 软件设计 196
8.3 温控直流电机的设计 199
8.3.1 实现功能 199
8.3.2 硬件设计 200
8.3.3 软件设计 202
8.4 点阵式汉字电子显示屏的设计 208
8.4.1 实现功能 208
8.4.2 硬件设计 208
8.4.3 软件设计 210
8.5 简易电子钟的设计 219
8.5.1 功能要求 219
8.5.2 硬件设计 219
8.5.3 软件设计 221
附录 231
附录1 Proteus常用快捷键及其功能 231
附录2 Proteus原理图元器件库说明 232
附录3 部分常用Proteus元器件名称 233
参考文献 237