第1章 微型计算机与单片机基础知识 1
1.1微型计算机组成的感性认识 1
1.2计算机硬件的基本组成 2
1.3微型计算机的硬件 3
1.3.1微型计算机的硬件构成 3
1.3.2CPU 4
1.3.3内存储器 4
1.3.4堆栈 5
1.3.5输入输出接口 7
1.4计算机中的信息表示 9
1.4.1计算机中无符号整数的表示 10
1.4.2BCD码 10
1.4.3计算机中有符号整数的补码表示 11
1.4.4计算机中字符的表示 12
1.5单片机概述 12
1.5.1单片机的典型硬件结构 13
1.5.2单片机与普通微型计算机的比较 13
1.5.3单片机应用系统开发方法 14
1.5.4主要的单片机产品 15
1.5.5单片机的应用领域 16
1.5.6单片机的发展过程与趋势 17
习题 18
第2章 MCS-51系列单片机硬件结构 20
2.1MCS-51系列单片机概述 20
2.2MCS-51系列单片机的基本硬件结构 21
2.2.1内部结构框图 21
2.2.2外部引脚功能 22
2.2.3内部资源 24
2.3MCS-51系列单片机的CPU 24
2.3.1运算器 24
2.3.2控制器 26
2.3.3CPU的工作时序 27
2.4MCS-51系列单片机的存储器组织 28
2.4.1程序存储器 28
2.4.2数据存储器 29
2.5MCS-51系列单片机的最小系统 33
2.5.1时钟电路 33
2.5.2复位电路 34
2.5.3最小系统 35
2.6MCS-51系列单片机的并口 36
2.6.1P0口 36
2.6.2P1口 37
2.6.3P2口 37
2.6.4P3口 38
2.6.5并口的输出能力 38
2.7简单的单片机应用系统设计 39
习题 42
第3章 Keil μ Vision2集成开发环境 44
3.1Keil μ Vision2集成开发环境介绍 44
3.2汇编语言程序的编辑、汇编连接和运行调试 47
3.3C语言程序的编辑、编译连接和运行调试 54
习题 57
第4章 MCS-51系列单片机的指令系统与汇编语言程序设计 60
4.1MCS-51系列单片机的指令系统概述 60
4.1.1指令概述 60
4.1.2汇编语言指令格式 60
4.1.3操作数的类型 61
4.2寻址方式 61
4.2.1概述 61
4.2.2寻址方式 62
4.3MCS-51系列单片机的指令系统 64
4.3.1描述指令常用的符号 64
4.3.2数据传送类指令 65
4.3.3算术运算指令 68
4.3.4逻辑运算指令 71
4.3.5控制转移指令 72
4.3.6位操作指令 75
4.4伪指令 76
4.5汇编语言程序设计 79
4.5.1汇编语言程序设计的基本步骤与程序的基本结构 79
4.5.2顺序结构程序设计 80
4.5.3分支结构程序设计 82
4.5.4循环结构程序设计 85
4.5.5主子结构程序设计 90
习题 94
第5章 单片机的C语言程序设计 97
5.1单片机的C语言 97
5.1.1概述 97
5.1.2C51与汇编语言相比的优势 97
5.1.3C51与ANSI C的差异 98
5.2C51的数据类型和存储类型 98
5.2.1C51的数据类型 98
5.2.2C51中的变量的存储类型 103
5.2.3C51的存储模式 104
5.3C51的常量和变量 106
5.3.1常量 106
5.3.2变量 107
5.4C51的预处理指令 110
5.4.1#include指令 110
5.4.2#define指令 110
5.4.3条件编译指令 111
5.5C51的位运算 112
5.6C51的程序结构 113
5.7C51的函数 114
5.7.1函数概述 114
5.7.2中断函数 116
5.7.3可重入函数 117
5.8C51对内存的直接访问和操作 117
5.9C51的应用程序开发方法 119
5.10C51并口应用编程举例 120
习题 128
第6章 MCS-51系列单片机的中断系统与定时/计数器 131
6.1中断的概念 131
6.1.1中断的用途 131
6.1.2中断过程 132
6.2MCS-51系列单片机的中断系统 132
6.2.1中断源 133
6.2.2中断的允许与屏蔽 134
6.2.3中断优先级控制 135
6.2.4中断服务程序入口 136
6.2.5中断请求标志 138
6.2.6外部信号触发中断触发信号的选择 139
6.2.7中断标志位的复位 139
6.2.8MCS-51系列单片机的中断系统的结构 140
6.2.9MCS-51系列单片机的中断过程 140
6.2.10MCS-51系列单片机中断应用的例子 142
6.3MCS-51系列单片机的定时/计数器 146
6.3.1定时和计数的概念 146
6.3.2MCS-51系列单片机定时/计数器的结构 147
6.3.3MCS-51系列单片机定时/计数器的工作方式 149
6.3.4定时/计数器应用举例 153
习题 159
第7章 MCS-51系列单片机的串行通信 162
7.1通信的基本概念 162
7.1.1并行通信与串行通信 162
7.1.2异步串行通信与同步串行通信 163
7.1.3串行通信的数据通路形式 165
7.1.4串行通信接口 166
7.2MCS-51系列单片机串行接口及串行通信 167
7.2.1MCS-51系列单片机串行口的结构 167
7.2.2串行口的设置与控制 168
7.2.3MCS-51系列单片机串行口的工作方式 170
7.2.4单片机与单片机通信 173
7.2.5单片机与PC通信 183
习题 191
第8章 单片机应用中的人机接口 193
8.1单片机基本的人机接口 193
8.1.1键盘输入 193
8.1.2八段式LED数码管 199
8.1.3液晶显示器LCD简介 203
8.2基于8155的键盘输入与LED显示系统 203
8.2.1并行接口芯片8155介绍 204
8.2.2基于8155的键盘与LED显示的接口电路 207
8.2.3软件程序设计 207
8.3基于8279的键盘输入与LED显示系统 212
8.3.1键盘显示器接口芯片8279介绍 212
8.3.2基于8279的键盘与LED显示的接口电路 217
8.3.3软件程序设计 217
8.4具有键盘与LED的步进电机控制系统 222
8.4.1步进电机工作原理介绍 222
8.4.2简单步进电机控制程序设计 224
8.4.3基于键盘输入与LED显示的步进电机控制系统 225
8.5基于单片机的IC卡读写系统 234
8.5.1IC卡读写的工作原理 234
8.5.2IC卡与单片机的硬件接口电路 238
8.5.3软件程序设计 238
8.6基于单片机的语音录放系统 247
8.6.1ISD1420语音芯片介绍 247
8.6.2基于ISD1420的单片机录放音系统硬件电路 251
8.6.3软件程序设计 252
习题 256
第9章 单片机应用中模拟量的输入输出 257
9.1A/D转换的基本概念 257
9.2并行A/D转换 259
9.2.1并行A/D转换器芯片ADC0809 259
9.2.2单片机与ADC0809芯片的硬件接口 260
9.2.3并行A/D转换的软件编程 261
9.3串行A/D转换 263
9.3.1串行A/D转换器芯片ADC0832 263
9.3.2单片机与ADC0832芯片的硬件接口 264
9.3.3串行A/D转换的软件编程 265
9.4D/A转换的基本概念 269
9.5并行D/A转换 270
9.5.1并行D/A转换器芯片DAC0832 270
9.5.2单片机与DAC0832芯片的硬件接口 272
9.5.3并行D/A转换的软件编程 273
9.6串行D/A转换 277
9.6.1串行D/A转换器芯片MAX538 277
9.6.2单片机与MAX538芯片的硬件接口 278
9.6.3串行D/A转换的软件编程 279
9.7单片机模拟量数据采集系统设计 281
9.7.1硬件原理介绍 281
9.7.2软件程序设计 282
9.8基于DS1820与单片机的数字温度计设计 284
9.8.1硬件原理介绍 284
9.8.2软件程序设计 286
习题 291
第10章 存储器与并行接口扩展 293
10.1单片机的三总线应用结构 293
10.2程序存储器扩展 294
10.2.12764芯片介绍 294
10.2.2程序存储器扩展方法 295
10.3数据存储器扩展 295
10.3.1SRAM 6264芯片介绍 295
10.3.2数据存储器扩展方法 296
10.3.3数据、程序存储器混合扩展方法 297
10.4并行接口扩展 298
10.4.18255A芯片结构及引脚功能 299
10.4.28255A的控制字 301
10.4.38255A与MCS-51系列单片机的连接方法 305
10.4.4应用举例 306
习题 309
附录A ASCII码字符表 310
附录B MCS-51系列单片机指令速查表 311
附录C Keil C51库函数原型列表 314
参考文献 322