第1章 初识51单片机及其开发环境 1
1.1 微型机与单片机 1
1.2 51单片机的基本结构概述 2
1.3 51单片机的引脚与封装 2
1.4 一个简单LED灯循环点亮实验 4
1.5 μVision4开发环境介绍 7
1.5.1 μVision4开发界面 7
1.5.2 演示步骤 9
1.6 Proteus仿真环境简介 9
1.6.1 Proteus的安装 10
1.6.2 Proteus的使用 14
1.6.3 μVision4+Proteus运行单片机仿真 16
1.7 51单片机基本电路 16
1.8 51系列单片机 19
习题 20
第2章 51单片机内部硬件基本结构和原理 21
2.1 CPU单元 21
2.2 51单片机存储器的配置 23
2.2.1 程序存储器ROM空间 23
2.2.2 数据存储器RAM空间 25
2.3 时序与复位 31
2.3.1 时序分析 31
2.3.2 时序单位 32
2.3.3 复位 33
2.4 节电方式 34
2.5 输入/输出端口 35
2.5.1 P0口 35
2.5.2 P1口 36
2.5.3 P2口 36
2.5.4 P3口 37
习题 38
第3章 51单片机汇编指令系统与程序设计 39
3.1 汇编语言概述 39
3.2 指令格式和描述符号说明 40
3.2.1 指令格式 40
3.2.2 指令中常用描述符号说明 40
3.3 寻址方式 41
3.4 指令系统 43
3.4.1 数据传送类指令(29条) 44
3.4.2 算术运算类指令(24条) 49
3.4.3 逻辑运算与循环类指令(24条) 53
3.4.4 控制转移类指令(17条) 56
3.4.5 位操作类指令(17条) 61
3.5 伪指令 64
3.6 汇编与汇编程序设计 66
3.6.1 源程序的汇编 66
3.6.2 汇编程序设计 67
3.6.3 综合设计实验——可控灯汇编程序设计 68
习题 70
第4章 51单片机的C语言程序设计 72
4.1 C51语言与汇编语言和标准C语言的区别 72
4.2 C51程序的基本结构 73
4.3 数据类型 74
4.3.1 C51数据类型 74
4.3.2 REG51.H头文件 76
4.4 变量和C51存储区域 79
4.4.1 变量的定义 79
4.4.2 存储器类型 79
4.4.3 存储器模式 80
4.4.4 变量的分类 81
4.5 C51对绝对地址的访问 82
4.6 指针 82
4.6.1 指针的概念、定义和引用 83
4.6.2 C51的指针类型 85
4.7 C51函数 87
4.7.1 C51函数及其定义 88
4.7.2 C51的中断服务函数 90
4.7.3 C51库函数 92
习题 94
第5章 数码管显示原理及应用 95
5.1 数码管的结构及工作原理 95
5.2 驱动数码管 96
5.2.1 驱动共阴极数码管 96
5.2.2 驱动共阳极数码管 97
5.3 数码管的显示及实例 98
5.3.1 数码管的静态显示及实例 98
5.3.2 数码管的动态显示及实例 100
5.3.3 设计型实验——模拟秒表的实现 103
习题 105
第6章 51单片机的中断系统 106
6.1 中断概念 106
6.2 51单片机中断源 106
6.3 中断寄存器 107
6.3.1 中断允许寄存器IE 108
6.3.2 定时/计数器控制寄存器TCON 109
6.3.3 串行口控制寄存器SCON 110
6.3.4 中断优先级寄存器IP 111
6.4 中断处理过程 112
6.4.1 中断响应条件 112
6.4.2 中断响应时间 113
6.4.3 中断响应过程 114
6.4.4 中断返回 114
6.5 中断程序举例 114
6.5.1 主程序说明 115
6.5.2 中断服务程序说明 115
6.5.3 外部中断?程序举例 115
6.5.4 外部中断?程序举例 119
6.5.5 两个外部中断举例 121
习题 123
第7章 定时/计数器的原理及应用 124
7.1 定时/计数器的结构和工作原理 124
7.1.1 定时/计数器的结构 124
7.1.2 定时/计数器的工作原理 125
7.2 定时/计数器的工作方式寄存器和控制寄存器 126
7.2.1 工作方式寄存器TMOD 126
7.2.2 控制寄存器TCON 127
7.3 定时/计数器的4种工作方式及应用 127
7.3.1 方式0的工作原理及应用 127
7.3.2 方式1的工作原理及应用 128
7.3.3 方式2的工作原理及应用 133
7.3.4 方式3的工作原理及应用 135
7.3.5 定时/计数器的外部中断扩展及示例 138
7.4 综合实验——设计一个带蜂鸣器的60秒计时器 140
7.4.1 蜂鸣器的工作原理 140
7.4.2 60秒计时器设计实验 140
习题 145
第8章 键盘的工作原理及应用 146
8.1 键盘的工作原理及去抖 146
8.2 独立键盘接口及程序实例 147
8.3 矩阵键盘扫描原理及实例分析 150
8.3.1 低电平扫描原理 150
8.3.2 高电平扫描原理 151
8.3.3 基础实验——矩阵键盘的识别与显示 152
8.4 综合实验——秒表定时器的设计与实现 156
习题 160
第9章 单片机的串行通信 161
9.1 串行通信的概念 161
9.1.1 串行通信的基本方式 162
9.1.2 串行通信的波特率 164
9.1.3 串行通信的标准接口 165
9.1.4 RS-232电平与TTL电平的转换 165
9.2 串行通信的结构及工作方式 167
9.2.1 串行通信的结构 167
9.2.2 串行通信的工作方式 170
9.3 串行口的应用 171
9.3.1 串行口初始化编程 171
9.3.2 单片机与PC通信 173
9.3.3 双机通信 176
9.3.4 串口打印在程序调试中的使用 181
习题 182
第10章 51单片机常用资源与综合应用实例 183
10.1 LED点阵 183
10.1.1 LED点阵概述 183
10.1.2 LED点阵的结构和工作原理 183
10.1.3 LED点阵的编码方式及显示实例 184
10.1.4 LED点阵的动态显示及实例 186
10.2 LCD 189
10.2.1 LCD概述 189
10.2.2 1602液晶显示器 190
10.2.3 1602液晶显示实例 193
10.3 温度传感器 198
10.3.1 温度传感器概述 198
10.3.2 DS18B20温度传感器 199
10.3.3 LCD1602与DS18B20综合应用实例 202
10.4 C#与单片机通信实现温度显示系统 207
10.4.1 C#简介 207
10.4.2 系统总体设计 207
10.4.3 系统硬件设计 208
10.4.4 系统软件设计 209
10.4.5 系统运行结果 217
习题 218
附录A 计算机常用编码 219
附录B 51单片机汇编指令表 221
附录C 51单片机汇编指令矩阵(汇编/反汇编表) 226
附录D Proteus常用器件和仿真仪表中英文对照 228
附录E 习题解答 230
参考文献 235