第1章 单片机硬件系统基础 1
1.1概述 1
1.1.1微型计算机系统 1
1.1.2单片机应用系统 1
1.2 MCS-51系列单片机的基本结构 2
1.2.1内部结构 2
1.2.2信号引脚 3
1.2.3时钟电路和复位电路 5
1.3 MCS-51系列单片机的存储器结构 7
1.3.1内部数据存储器 8
1.3.2特殊功能寄存器 10
1.3.3内部程序存储器 12
练习和思考题 12
第2章 单片机汇编语言基础 14
2.1概述 14
2.2 MCS-51系列单片机的指令格式 14
2.3 MCS-51系列单片机的指令寻址方式 15
2.3.1立即数寻址 15
2.3.2直接寻址 15
2.3.3寄存器寻址 15
2.3.4寄存器间接寻址 16
2.3.5变址寻址 16
2.3.6相对寻址 17
2.3.7位寻址 17
2.4 MCS-51系列单片机的指令系统 17
2.4.1指令分类 17
2.4.2指令功能 18
2.4.3指令执行的过程 18
2.5 MCS-51系列单片机的数据传送指令 19
2.5.1 8位数据传送指令 20
2.5.2 16位数据传送指令 21
2.5.3堆栈操作指令 21
2.5.4字节交换指令 22
2.5.5片外数据传送指令 22
练习和思考题 23
第3章 单片机C语言基础 26
3.1数据结构 26
3.1.1数据类型 26
3.1.2常量与变量 27
3.1.3数组 29
3.1.4指针 32
3.2运算符、表达式和优先级 34
3.2.1赋值运算符 34
3.2.2算术运算符及表达式 34
3.2.3关系运算符、表达式及优先级 35
3.2.4逻辑运算符、表达式及优先级 36
3.2.5位操作运算符及表达式 36
3.2.6复合赋值运算符及表达式 38
3.2.7指针与地址运算符 39
3.3 C语言程序基本结构与相关语句 39
3.3.1 C语言程序的基本结构及其流程图 39
3.3.2选择语句 40
3.3.3循环语句 42
3.3.4循环的嵌套 44
3.3.5 break、continue和return语句 44
3.4函数 45
3.4.1函数的分类 45
3.4.2函数的定义 46
3.4.3函数的参数和函数值 48
3.4.4函数的调用与声明 49
练习和思考题 51
第4章 一步一步学做仿真实验 53
4.1仿真实验:单片机控制单个LED闪烁发光 53
4.2仿真实验中用到的软件——Keil快速入门 53
4.2.1 Keil软件的界面 54
4.2.2建立一个工程 55
4.2.3产生一个.hex文件 58
4.3仿真实验中用到的软件——Proteus快速入门 61
4.3.1 Proteus软件的界面 61
4.3.2仿真单个LED闪烁发光电路 64
练习和思考题 70
第5章 并行输入/输出接口 72
5.1项目内容:流水灯的设计 72
5.1.1硬件电路设计 72
5.1.2基本功能 73
5.2程序设计 73
5.2.1程序代码设计 73
5.2.2仿真结果 75
5.3相关知识 76
5.3.1 ORG和END指令 76
5.3.2逻辑移位指令 77
5.3.3控制转移类指令 78
5.3.4子程序调用与返回指令 80
5.3.5并行输入/输出P1口的结构 81
5.3.6 LED的应用 82
5.3.7延时子程序的设计 83
5.4知识综述:并行输入/输出接口 86
5.4.1 P0口 86
5.4.2 P1口 87
5.4.3 P2口 87
练习和思考题 87
第6章 单片机驱动 LED数码管 89
6.1项目内容:倒计时秒表设计 89
6.1.1硬件电路设计 89
6.1.2基本功能 89
6.2程序设计 90
6.2.1程序代码设计 90
6.2.2仿真结果 91
6.3相关知识 91
6.3.1 LED数码管原理 91
6.3.2 LED数码管字形码 93
6.4知识扩展 94
6.4.1 LED静态显示方式 94
6.4.2 LED动态显示方式 95
练习和思考题 96
第7章 单片机的键盘控制 98
7.1项目内容:简单计算器的设计 98
7.1.1硬件电路设计 98
7.1.2基本功能 99
7.2程序设计 99
7.2.1程序代码设计 99
7.2.2仿真结果 104
7.3相关知识:单片机系统中的键盘接口技术 104
7.3.1键盘工作原理及消抖 104
7.3.2独立式键盘 106
7.3.3矩阵式键盘 108
7.4 8255A并行输入/输出接口扩充键盘 111
7.4.1 8255A的基础知识 111
7.4.2 8255A键盘的扩充 114
练习和思考题 115
第8章 单片机的中断系统 116
8.1项目内容:八路抢答器 116
8.1.1基本功能 116
8.1.2硬件电路设计 116
8.2程序设计 117
8.3相关知识 120
8.3.1中断的基本概念 120
8.3.2 MCS-51系列单片机的中断系统 121
8.3.3与中断有关的寄存器 121
8.3.4汇编语言中断程序设计要点 124
8.3.5 C语言中断程序设计要点 125
8.3.6中断应用举例 126
练习和思考题 129
第9章 定时/计数器 130
9.1项目内容:电子时钟的设计 130
9.1.1硬件电路设计 130
9.1.2基本功能 131
9.2程序设计 131
9.2.1程序代码设计 131
9.2.2仿真结果 134
9.3相关知识:定时/计数器综述 135
9.3.1定时/计数器的结构和工作原理 135
9.3.2定时/计数器的工作方式寄存器和控制寄存器 136
9.3.3定时/计数器的工作方式 138
9.3.4定时/计数器的初始化 139
9.3.5定时/计数器的应用举例 140
练习和思考题 144
第10章 单片机串行接口通信 145
10.1项目内容:LED点阵显示汉字 145
10.1.1硬件电路设计 145
10.1.2基本功能 145
10.2程序设计 146
10.2.1程序代码设计 146
10.2.2仿真结果 150
10.3相关知识 150
10.3.1字符和汉字显示的基本原理 150
10.3.2字符、汉字模块的生成 152
10.3.3 LED点阵模块 152
10.3.4 LED点阵的驱动方法 153
10.3.5单片机的串行接口工作模式0 153
练习和思考题 155
第11章 单片机与A/D接口 156
11.1项目内容:数字电压表的设计 156
11.1.1硬件电路设计 156
11.1.2基本功能 157
11.2程序设计 157
11.2.1程序代码设计 157
11.2.2仿真结果 160
11.3相关知识 160
11.3.1 A/D转换器概述 160
11.3.2 ADC0809的内部结构和信号引脚 162
11.3.3 8051单片机与ADC0809的接口 164
11.3.4 D/A转换器综述 165
11.3.5 8051单片机与DAC0832的接口 167
练习和思考题 170
第12章 单片机与液晶显示器 171
12.1项目内容:液晶显示器显示www .cmpbook .com 171
12.1.1硬件电路设计 171
12.1.2基本功能 172
12.2程序设计 172
12.2.1程序代码设计 172
12.2.2仿真结果 175
12.3相关知识 175
12.3.1 LCM1602外观及功能 175
12.3.2 LCM1602与单片机连接 176
12.3.3 LCM1602的读写操作 177
12.3.4 LCM1602的指令 179
12.3.5 LCM1602字符显示位的控制 181
12.3.6 LCM1602的初始化 181
12.3.7 LCM1602的自定义字符 182
练习和思考题 182
第13章 测温元件DS18B20应用 183
13.1项目内容:DS18B20数字温度计 183
13.1.1硬件电路设计 183
13.1.2基本功能 184
13.2程序设计 184
13.2.1程序代码设计 184
13.2.2仿真结果 191
13.3相关知识:DS18B20介绍和1-Wire总线接口 191
13.3.1 DS18B20的外观及功能 191
13.3.2 DS18B20的存储器结构 192
13.3.3 DS18B20的命令序列及操作时序 193
练习和思考题 195
附录 196
附录A Proteus常用元器件英文缩写表 196
附录B MCS-51指令表 197
参考文献 202