第1章 微型计算机与单片机基础知识\t1
1.1 微型计算机与单片机的感性认识\t1
1.2 计算机硬件的基本组成\t1
1.3 微型计算机的硬件构成\t2
1.3.1 微型计算机的硬件结构\t2
1.3.2 微处理器(CPU)\t2
1.3.3 存储器\t4
1.3.4 输入/输出(I/O)\t4
1.3.5 总线(BUS)\t5
1.4 计算机中信息的表示\t5
1.4.1 计算机中无符号整数的表示\t5
1.4.2 计算机中有符号数的表示\t6
1.4.3 十进制数的表示\t8
1.4.4 计算机中字符的表示\t9
1.5 单片机概述\t10
1.5.1 单片机的典型硬件结构\t10
1.5.2 单片机与微型计算机的比较\t10
1.5.3 主要的单片机产品\t11
1.5.4 单片机的应用领域\t14
1.5.5 单片机的发展过程与趋势\t15
习题\t16
第2章 单片机的结构及工作原理\t18
2.1 MCS-51系列单片机的内部结构\t18
2.1.1 MCS-51单片机的基本组成\t18
2.1.2 中央处理器(CPU)\t19
2.1.3 存储器\t20
2.1.4 I/O端口\t21
2.2 8051单片机的存储器组织\t24
2.2.1 存储器组织\t24
2.2.2 程序存储器\t25
2.2.3 数据存储器\t27
2.3 51系列单片机的引脚及功能\t31
2.3.1 51单片机的引脚分类\t31
2.3.2 三总线结构\t33
2.4 时钟电路与CPU时序\t33
2.4.1 振荡器和时钟电路\t33
2.4.2 CPU时序\t33
2.5 单片机的工作方式\t36
2.5.1 复位方式\t36
2.5.2 程序执行方式\t36
2.5.3 单步执行方式\t37
2.5.4 掉电和节电方式\t38
2.5.5 编程和校验方式\t38
2.6 51系列单片机最小系统\t39
习题\t40
第3章 51单片机指令系统及汇编程序设计\t41
3.1 指令系统概述\t41
3.1.1 51单片机汇编指令格式\t41
3.1.2 51单片机汇编指令常用符号\t42
3.2 51单片机的寻址方式\t42
3.2.1 立即寻址\t42
3.2.2 寄存器寻址\t43
3.2.3 直接寻址\t43
3.2.4 寄存器间接寻址\t43
3.2.5 变址寻址\t44
3.2.6 指令寻址\t45
3.2.7 位寻址\t45
3.3 51单片机的指令系统\t45
3.3.1 数据传送类指令\t46
3.3.2 算术运算类指令\t49
3.3.3 逻辑操作类指令\t52
3.3.4 控制转移类指令\t54
3.3.5 位操作类指令\t57
3.4 51单片机汇编程序设计概述\t59
3.4.1 51单片机汇编程序设计过程\t60
3.4.2 51单片机汇编程序常用伪指令\t60
3.5 51单片机常用汇编程序设计\t63
3.5.1 数据传送程序\t63
3.5.2 运算程序\t64
3.5.3 代码转换程序\t66
3.5.4 分支程序\t67
3.5.5 延时程序\t69
习题\t69
第4章 51单片机C程序设计\t71
4.1 C语言与51单片机\t71
4.1.1 C语言的特点\t71
4.1.2 C语言程序的结构\t72
4.1.3 C51与标准C语言\t73
4.2 C51的数据类型\t73
4.2.1 char字符型\t74
4.2.2 int整型\t74
4.2.3 long长整型\t74
4.2.4 float浮点型\t75
4.2.5 指针型\t75
4.2.6 特殊功能寄存器型\t75
4.2.7 位类型\t76
4.3 C51的变量与存储类型\t76
4.3.1 C51的普通变量及定义\t76
4.3.2 特殊功能寄存器变量\t79
4.3.3 位变量\t79
4.3.4 指针变量\t80
4.4 绝对地址的访问\t81
4.4.1 使用C51运行库中预定义宏\t81
4.4.2 通过指针访问\t82
4.4.3 使用C51扩展关键字_at_\t83
4.5 C51中的函数\t83
4.5.1 C51函数的参数传递\t84
4.5.2 C51函数的返回值\t84
4.5.3 C51函数的存储模式\t85
4.5.4 C51的中断函数\t85
4.5.5 C51函数的寄存器组\t86
4.5.6 C51的重入函数\t87
习题\t87
第5章 51单片机中断系统\t89
5.1 中断的基本概念\t89
5.1.1 中断的概念\t89
5.1.2 中断源及中断请求\t90
5.1.3 中断优先权控制\t90
5.1.4 中断允许与中断屏蔽\t90
5.1.5 中断响应与中断返回\t90
5.2 51单片机的中断系统\t90
5.2.1 51单片机的中断系统总体结构\t90
5.2.2 51单片机的中断源\t90
5.2.3 两级中断允许控制\t92
5.2.4 两级优先级控制\t92
5.2.5 中断响应\t94
5.3 51单片机中断系统的编程与应用\t94
5.3.1 51单片机中断系统的编程\t94
5.3.2 51单片机中断系统的应用\t95
习题\t99
第6章 51单片机定时/计数器\t100
6.1 定时/计数器的结构及原理\t100
6.1.1 主要特性\t100
6.1.2 结构及工作原理\t100
6.2 定时/计数器的方式和控制寄存器\t101
6.2.1 方式寄存器TMOD\t101
6.2.2 控制寄存器TCON\t102
6.3 定时/计数器的工作方式\t103
6.3.1 方式0——13位定时/计数器方式\t103
6.3.2 方式1——16位定时/计数器方式\t103
6.3.3 方式2——8位自动重置定时/计数方式\t104
6.3.4 方式3——两个8位定时/计数器方式\t104
6.4 定时/计数器的初始化编程及应用\t105
6.4.1 定时/计数器的初始化编程\t105
6.4.2 定时/计数器的应用\t105
习题\t110
第7章 51单片机串行接口\t111
7.1 通信的基本概念\t111
7.1.1 并行通信和串行通信\t111
7.1.2 串行通信的基本过程\t112
7.1.3 串行通信的通信方式\t113
7.1.4 波特率\t114
7.2 51单片机串行口的功能与结构\t114
7.2.1 串行口的功能\t114
7.2.2 串行口的结构\t114
7.2.3 串行口控制寄存器SCON\t115
7.2.4 电源控制寄存器PCON\t116
7.3 串行口的工作方式\t117
7.3.1 方式0——同步移位寄存器方式\t117
7.3.2 方式1——8位异步通信方式\t117
7.3.3 方式2和方式3——9位异步通信方式\t118
7.4 串行口的应用\t118
7.4.1 利用方式0扩展并行I/O接口\t118
7.4.2 利用方式1实现点对点的双机通信\t122
习题\t125
第8章 51系统扩展及接口技术\t126
8.1 51单片机系统扩展概述\t126
8.1.1 51单片机系统扩展方法\t126
8.1.2 单片机常用扩展芯片\t127
8.2 存储器扩展\t130
8.2.1 程序存储器扩展\t130
8.2.2 数据存储器的扩展\t131
8.3 I/O口扩展设计\t132
8.3.1 简单I/O口扩展\t133
8.3.2 8255可编程并行接口芯片\t134
8.4 显示器接口扩展技术\t140
8.4.1 LED显示器及其接口\t140
8.4.2 LCD显示器及其接口\t147
8.5 键盘接口设计\t153
8.5.1 键盘工作原理\t153
8.5.2 键盘接口设计\t156
8.6 D/A、A/D转换器与51单片机的接口\t163
8.6.1 DAC0832与51单片机的接口\t163
8.6.2 ADC0809与8051的接口\t169
习题\t175
第9章 单片机应用系统设计及举例\t177
9.1 单片机应用系统开发过程\t177
9.1.1 单片机应用系统开发的基本过程\t177
9.1.2 单片机应用系统的硬件系统设计\t178
9.1.3 单片机应用系统的软件设计\t180
9.1.4 单片机应用系统开发工具\t182
9.2 单片机电子时钟的设计\t182
9.2.1 功能要求\t182
9.2.2 总体方案设计\t182
9.2.3 主要器件介绍\t183
9.2.4 硬件电路设计\t188
9.2.5 软件程序设计\t189
9.3 单片机数显温度计设计\t203
9.3.1 功能要求\t203
9.3.2 总体方案设计\t203
9.3.3 主要器件介绍\t204
9.3.4 硬件电路设计\t208
9.3.5 系统软件程序设计\t209
习题\t219
第10章 Keil C51集成环境的使用\t220
10.1 Keil C51简介\t220
10.1.1 Keil Vision4 IDE的安装\t220
10.1.2 Keil Vision4 IDE界面\t220
10.2 Keil Vision4 IDE的使用方法\t225
10.2.1 建立项目文件\t226
10.2.2 给项目添加程序文件\t227
10.2.3 编译、连接项目,形成目标文件\t229
10.2.4 运行调试观察结果\t230
10.2.5 仿真环境的设置\t230
习题\t233
第11章 Proteus软件的使用\t234
11.1 Proteus概述\t234
11.1.1 Proteus的启动\t234
11.1.2 Proteus的界面\t235
11.2 Proteus的基本操作\t237
11.2.1 新建电路,选择元件\t237
11.2.2 放置元件,调整元件\t239
11.2.3 连接导线\t240
11.2.4 给单片机加载程序\t243
11.2.5 运行仿真查看结果\t243
习题\t244
附录A 51系列单片机指令表\t245
附录B C51的库函数\t249