第1章 单片机的入门基础 1
1.1单片机的基本概念 1
1.1.1何为单片机 1
1.1.2单片机的特点 2
1.1.3单片机与个人计算机CPU的区别 2
1.2单片机的应用与发展 2
1.2.1单片机的主要应用领域 2
1.2.2单片机的发展概况 3
1.2.3单片机的发展趋势 4
1.3任务1观察单片机的外观 5
1.4单片机的组成与工作过程 5
1.4.1 CPU 6
1.4.2系统总线 6
1.4.3存储器 7
1.4.4 I/O接口 9
1.4.5定时/计数器 9
1.4.6单片机的工作过程 9
1.5单片机的分类 10
1.6 MCS—51系列单片机 10
1.6.1 51子系列和52子系列 10
1.6.2 MCS—51系列单片机的派生产品 11
1.6.3 89系列单片机 11
1.7单片机应用系统的开发方法 13
1.7.1单片机的开发装置(仿真机) 13
1.7.2如何对单片机进行开发 13
1.7.3单片机编程软件简介 15
1.8任务2认识单片机编程软件 15
1.9任务3简单闪烁灯控制——单片机开发流程练习 19
1.10单片机中数的表示与编码 22
1.10.1常用数制 22
1.10.2数制互转 23
1.10.3单片机内部数据的表示 25
本章小结 28
思考与练习 28
第2章 MCS—51单片机的硬件结构 30
2.1 MCS—51单片机的内部组成及外部引脚 30
2.1.1 89C51单片机的内部组成 30
2.1.2 89C51单片机的外部引脚 31
2.2单片机的时钟和复位电路 33
2.2.1时钟电路及连接 33
2.2.2复位电路及连接 34
2.3任务4构建单片机最小应用系统 35
2.4 89C51单片机的并行I/O接口 36
2.4.1并行I/O接口的结构 36
2.4.2并行I/O接口的功能 37
2.4.3 I/O接口的操作 38
2.4.4接口的负载能力 39
2.5任务5模拟开关灯——接口的I/O应用 39
2.6 89C51单片机的存储器结构 41
2.6.1程序存储器ROM 41
2.6.2数据存储器RAM 42
2.7 89C51单片机的工作方式 46
本章小结 47
思考与练习 47
第3章 MCS—51单片机指令系统 49
3.1单片机的编程语言及寻址方式 49
3.1.1单片机的程序设计语言 49
3.1.2汇编语言的指令格式 50
3.1.3 MCS—51单片机的指令系统 51
3.1.4指令讲解中的约定说明符 51
3.1.5单片机指令的寻址方式 52
3.2数据传送与交换类指令 54
3.2.1内部RAM间的数据传送指令 54
3.2.2堆栈操作指令 56
3.2.3累加器A与外部RAM间的传送指令 57
3.2.4读ROM数据的指令(查表指令) 58
3.2.5数据交换指令 59
3.3算术运算类指令 60
3.4逻辑运算类指令 63
3.5控制转移类指令 65
3.5.1无条件转移指令 65
3.5.2条件转移指令 66
3.6子程序的调用和返回指令 67
3.7位操作指令 69
3.8伪指令及使用 71
3.9任务6“流水”广告彩灯的控制 73
3.10任务7模拟简单的盗贼报警系统 76
本章小结 77
思考与练习 77
第4章 MCS—51单片机汇编程序设计 81
4.1汇编程序的结构及设计流程 81
4.1.1汇编程序的程序结构 81
4.1.2汇编程序的设计流程 82
4.2简单顺序结构程序设计 82
4.3循环程序设计 83
4.3.1循环结构的组成 83
4.3.2循环程序设计 84
4.4子程序设计 86
4.5分支程序 88
4.5.1分支程序的转移条件 88
4.5.2单分支结构 88
4.5.3多分支结构(散转程序) 89
4.6任务8多状态闪烁灯控制——多分支程序应用 90
4.7编程技巧简述 92
本章小结 93
思考与练习 93
第5章 单片机的定时/计数器与中断系统 94
5.1 89C51单片机的定时/计数器 94
5.1.1单片机控制中的定时方法 94
5.1.2 89C51单片机的定时/计数器基本结构 94
5.1.3定时/计数器的工作机制 95
5.1.4定时/计数器的控制 96
5.1.5定时/计数器的工作方式 97
5.2定时/计数器的程序设计 99
5.2.1定时/计数器的初始化编程 99
5.2.2定时/计数器的应用 100
5.3中断系统 101
5.3.1中断及中断处理过程 101
5.3.2 89C51单片机的中断系统 102
5.3.3 89C51单片机的中断控制 104
5.3.4中断的响应与处理 107
5.4中断技术的简单应用 108
5.4.1主程序的编写方法 108
5.4.2中断服务程序实例 108
5.5任务9制作音乐演奏器——定时/计数器与中断的综合应用 111
本章小结 113
思考与练习 114
第6章 单片机的串行通信技术 116
6.1串行通信的基础概念 116
6.1.1串、并行通信及比较 116
6.1.2异步串行通信 116
6.1.3同步串行通信 117
6.1.4波特率 118
6.1.5串行通信数据的校验 118
6.2串行通信的传输及接口标准 119
6.2.1串行通信的数据传输方式 119
6.2.2异步通信的电路接口 119
6.3 89C51单片机串行接口的结构及设置 123
6.4 89C51单片机串行接口的工作方式及应用 125
6.4.1方式0 125
6.4.2方式1 127
6.4.3方式2 128
6.4.4方式3 128
6.4.5 89C51单片机串行接口的波特率设定 128
6.5任务10 89C51单片机双机通信 130
本章小结 131
思考与练习 132
第7章 单片机的系统扩展技术 133
7.1 89C51单片机的片外总线结构 133
7.1.1 89C51单片机的片外总线结构 133
7.1.2片外扩展设备的访问 134
7.2系统扩展中的地址锁存与译码技术 134
7.2.1地址的锁存 134
7.2.2外扩芯片方法及其地址范围的确定 135
7.3外部扩展程序存储器 137
7.3.1程序存储器常用芯片 137
7.3.2线选法扩展EPROM典型电路 138
7.3.3译码法扩展EPROM典型电路 139
7.4外部扩展数据存储器 140
7.4.1数据存储器扩展的典型芯片 140
7.4.2线选法扩展1片6116 140
7.4.3多片数据存储器的扩展 141
7.5通过并行接口扩展I/O接口 142
7.5.1外扩并行I/O接口的编址及访问 142
7.5.2扩展简单的并行I/O接口 142
7.5.3用8255A扩展并行I/O接口 143
7.5.4用8155/8156扩展并行I/O接口 147
7.6通过串行接口扩展I/O接口 153
7.7任务11 8键控制8灯亮灭——8255A并行I/O接口的应用 153
本章小结 154
思考与练习 155
第8章 单片机的接口应用技术 156
8.1按键及其接口电路 156
8.1.1按键及按键去抖动 156
8.1.2独立式按键 157
8.1.3矩阵键盘 158
8.1.4拨盘开关及其接口 162
8.2显示接口技术 163
8.2.1 LED数码管显示器 163
8.2.2 LED点阵大屏幕显示器 165
8.2.3 LCD液晶显示接口基础 169
8.3任务12动态显示6位LED字符 172
8.4任务13设计8×8点阵“心形”图形显示屏 174
8.5 D/A转换接口 176
8.5.1 D/A转换的基本知识 176
8.5.2 8位D/A转换器DAC0832 177
8.5.3串行D/A转换器MAX538 179
8.6任务14灯循环渐变控制——DAC0832的D/A转换应用 181
8.7 A/D转换接口 182
8.7.1 8位A/D转换器芯片ADC0809 182
8.7.2 ADC0809与89C51单片机的连接应用 184
8.7.3串行A/D转换器MAX187 185
8.8任务15 制作半自动简易电压表——ADC0809的A/D转换应用 187
8.9高压、大电流设备的单片机控制 188
8.9.1光电隔离及光耦合器接口 188
8.9.2继电器接口 189
本章小结 190
思考与练习 191
第9章 单片机C51程序设计基础 192
9.1 C51语言及其基本构成 192
9.1.1 C51语言 192
9.1.2 C51程序的基本构成 192
9.2 C51的数据结构 193
9.2.1 C51的数据类型 193
9.2.2 C51的常量与变量 194
9.2.3宏定义 195
9.2.4 C51数据的存储类型与MCS—51单片机的存储器结构 196
9.2.5 C51定义sfr字节和位单元 197
9.2.6 C51定义并行接口 197
9.3 C51运算符、表达式及其规则 198
9.3.1算术运算符及其表达式 198
9.3.2关系运算符、表达式 198
9.3.3逻辑运算符 198
9.3.4 C51位操作符及其表达式 198
9.3.5自增减及复合运算符 198
9.4 C51函数的分类、定义及调用 199
9.4.1函数的分类 199
9.4.2函数的定义 199
9.4.3函数的参数值和函数值 199
9.4.4函数的调用 201
9.5 C51中特殊函数的使用 202
9.5.1中断服务函数的定义 202
9.5.2嵌套调用 202
9.5.3递归调用 202
9.6 C51与汇编语言的混合编程 203
9.6.1在C51中内嵌汇编语句 203
9.6.2在C51中调用独立的汇编程序 204
9.6.3 SRC控制 207
9.7 C51编程实例 208
9.8任务16一键多功能的按键识别技术——C51的应用 211
本章小结 214
思考与练习 214
第10章 单片机应用系统的设计与开发 215
10.1单片机应用系统的基本要求 215
10.2单片机应用系统的设计流程简述 216
10.2.1总体设计 216
10.2.2系统硬件设计 216
10.2.3可靠性设计 217
10.2.4资源分配 218
10.2.5软件设计 219
10.2.6软件仿真 220
10.3水温控制器的设计 220
10.3.1系统设计要求 220
10.3.2系统方案设计 221
10.3.3硬件电路设计 221
10.3.4软件编程设计 222
10.3.5设计小结 226
10.4基于89C51单片机的IC卡读写器设计 226
10.4.1 IC卡概述 226
10.4.2硬件的选择与特性 227
10.4.3硬件电路设计 227
10.4.4软件编程设计 227
10.4.5设计小结 231
10.5水塔水位的单片机自动控制 232
10.5.1系统设计要求 232
10.5.2系统硬件设计 232
10.5.3系统软件设计 233
10.5.4系统设计小结 234
10.6单片机在数控设备改造中的应用(选学) 235
本章小结 237
思考与练习 237
附录 238
附录1部分参考答案 238
附录2 ASCII表(美国标准信息交换码) 238
附录3 MCS—51系列单片机按字母顺序指令表 239
附录4 MCS—51系列单片机分类指令速查表 242
附录5 MCS—51系列单片机指令快速记忆法 245
附录6对学习单片机技术的几点建议 247
参考文献 248