序
前言
章 计算机基础知识1
导读1
1.1 概述1
1.1.1 计算机发展历程1
1.1.2 计算机硬件系统3
1.1.3 计算机软件系统4
1.2 计算机中的信息及表示5
1.2.1 计算机中的数制及转换5
1.2.2 数在计算机中的表示9
1.2.3 其他信息的表示12
思考题与习题13
第2章 微型计算机的基本原理14
导读14
2.1 微型计算机的结构14
2.1.1 微型计算机的基本结构14
2.1.2 微处理器15
2.1.3 存储器18
2.1.4 I/O设备及接口电路19
2.1.5 总线20
2.2 微型计算机的基本工作原理20
2.2.1 指令和程序简介20
2.2.2 微型计算机的工作过程21
2.3 单片微型计算机25
2.3.1 单片机的概念25
2.3.2 单片机的发展历程26
2.3.3 单片机的应用26
思考题与习题27
第3章 微型计算机中的存储器28
导读28
3.1 概述28
3.1.1 半导体存储器的分类29
3.1.2 半导体存储器的基本结构30
3.2 随机存储器32
3.2.1 静态RAM32
3.2.2 动态RAM34
3.3 只读存储器36
3.3.1 只读存储器的基本原理36
3.3.2 典型的Intel 2764系列EPROM芯片38
3.4 存储器与微处理器的连接40
3.4.1 存储器与CPU的连接方法40
3.4.2 存储器与微处理器的扩展连接42
3.4.3 存储器与微处理器连接时还应考虑的问题44
3.5 存储器的结构类型45
3.5.1 普林斯顿结构45
3.5.2 哈佛结构46
思考题与习题47
第4章 输入/输出接口与中断48
导读48
4.1 输入/输出接口概述48
4.1.1 输入/输出(I/O)接口的概念48
4.1.2 I/O接口的功能49
4.1.3 I/O接口的基本结构50
4.1.4 I/O接口的编址方式51
4.1.5 I/O接口的分类52
4.2 CPU与外设的数据传送方式53
4.2.1 程序控制方式53
4.2.2 中断传送方式55
4.2.3 直接存储器存取(DMA)传送方式55
4.3 中断及中断技术56
4.3.1 中断的基本概念56
4.3.2 中断的分类57
4.3.3 中断的功能58
4.3.4 中断的优先级58
4.3.5 中断的允许和屏蔽60
4.3.6 中断的处理过程60
思考题与习题64
第5章 串行通信及接口标准65
导读65
5.1 通信的基本知识65
5.1.1 并行通信和串行通信65
5.1.2 串行通信的制式66
5.1.3 串行通信数据传送的基本过程66
5.1.4 串行通信的通信方式67
5.1.5 串行通信的校验方法69
5.1.6 串行通信的速度69
5.2 常见串行通信总线接口标准69
5.2.1 RS-232C标准70
5.2.2 RS-422/423/485接口标准73
5.2.3 USB接口标准74
思考题与习题76
第6章 51系列单片机基本原理77
导读77
6.1 51系列单片机简介77
6.2 8051的结构原理78
6.2.1 8051的基本组成及内部结构78
6.2.2 8051的中央处理器(CPU)79
6.2.3 8051的存储器结构81
6.2.4 8051的输入/输出接口86
6.3 51系列单片机的外部引脚及片外总线89
6.3.1 51系列单片机的外部引脚89
6.3.2 51系列单片机的片外总线92
6.4 51系列单片机的时序92
6.4.1 时钟周期?机器周期和指令周期92
6.4.2 51系列单片机指令的时序93
6.5 51系列单片机的工作方式94
6.5.1 复位方式94
6.5.2 程序执行方式95
6.5.3 单步执行方式95
6.5.4 掉电和节电方式95
6.5.5 编程和校验方式96
思考题与习题97
第7章 51系列单片机汇编程序设计98
导读98
7.1 51系列单片机汇编指令格式及标识98
7.1.1 指令格式98
7.1.2 指令中用到的标识符99
7.2 51系列单片机指令的寻址方式99
7.2.1 常数寻址(立即寻址)100
7.2.2 寄存器数寻址(寄存器寻址)100
7.2.3 存储器数寻址100
7.2.4 位数据寻址(位寻址)102
7.2.5 指令寻址102
7.3 51系列单片机的指令系统102
7.3.1 数据传送类指令103
7.3.2 算术运算类指令105
7.3.3 逻辑运算类指令109
7.3.4 控制转移类指令111
7.3.5 位操作类指令115
7.4 51系列单片机汇编程序设计过程及常用伪指令116
7.4.1 51系列单片机汇编程序设计过程116
7.4.2 51系列单片机汇编程序常用伪指令117
7.5 51系列单片机汇编程序设计119
7.5.1 数据传送程序119
7.5.2 运算程序120
7.5.3 代码转换程序122
7.5.4 分支程序123
7.5.5 延时程序125
思考题与习题125
第8章 51系列单片机C语言程序设计128
导读128
8.1 单片机C语言基础知识128
8.2 C51的数据类型129
8.2.1 C51的基本数据类型129
8.2.2 C51的特有数据类型131
8.3 C51的变量与存储器类型131
8.3.1 C51的普通变量及定义131
8.3.2 C51的特殊功能寄存器变量134
8.3.3 C51的位变量135
8.3.4 C51的指针变量136
8.4 绝对地址的访问137
8.4.1 使用C51运行库中预定义宏137
8.4.2 通过指针访问138
8.4.3 使用C51扩展关键字_at_138
8.5 C51中的函数139
8.5.1 C51函数的参数传递139
8.5.2 C51函数的返回值140
8.5.3 C51函数的存储模式140
8.5.4 C51的中断函数141
8.5.5 C51函数的寄存器组选择142
8.5.6 C51的重入函数142
思考题与习题143
第9章 51系列单片机片内接口及应用144
导读144
9.1 并行I/O接口144
9.2 定时器/计数器接口145
9.2.1 定时器/计数器概述145
9.2.2 51系列单片机定时器/计数器的主要特性146
9.2.3 定时器/计数器T0?T1的结构及工作原理146
9.2.4 定时器/计数器的方式寄存器和控制寄存器147
9.2.5 定时器/计数器的工作方式148
9.2.6 定时器/计数器的编程及应用151
9.3 串行接口155
9.3.1 51系列单片机串行口的功能155
9.3.2 51系列单片机串行口的结构155
9.3.3 串行口控制寄存器156
9.3.4 电源控制寄存器157
9.3.5 串行口的工作方式158
9.3.6 串行口的编程及应用159
9.4 51系列单片机中断系统166
9.4.1 51系列单片机的中断系统结构166
9.4.2 51系列单片机的中断源166
9.4.3 两级中断允许控制168
9.4.4 两级优先级控制168
9.4.5 中断响应169
9.4.6 中断系统的应用170
思考题与习题174
0章 51系列单片机I/O接口及应用176
导读176
10.1 51系列单片机的最小系统176
10.2 数码管显示器与51系列单片机接口177
10.2.1 数码管显示器的基本结构与原理177
10.2.2 数码管显示器使用的主要问题179
10.2.3 数码管显示器接口与编程181
10.3 液晶显示器LCD1602与51系列单片机的接口184
10.3.1 LCD1602概述184
10.3.2 LCD1602的内部结构185
10.3.3 LCD1602的指令格式与功能187
10.3.4 LCD1602的接口与编程189
10.4 键盘与51系列单片机的接口193
10.4.1 键盘概述193
10.4.2 独立式键盘与单片机的接口196
10.4.3 矩阵式键盘与单片机的接口197
思考题与习题203
1章 51系列单片机数/模?模/数接口及应用204
导读204
11.1 D/A转换器与51系列单片机的接口204
11.1.1 D/A转换器概述204
11.1.2 典型的D/A转换器DAC0832206
11.1.3 DAC0832与51系列单片机的接口与应用208
11.2 A/D转换器与51系列单片机的接口214
11.2.1 A/D转换器概述214
11.2.2 典型的A/D转换器ADC0808/0809216
11.2.3 ADC0808/0809与51系列单片机的接口218
思考题与习题222
2章 51系列单片机应用系统设计223
导读223
12.1 单片机应用系统开发过程223
12.1.1 单片机应用系统开发的基本过程223
12.1.2 单片机应用系统的硬件系统设计224
12.1.3 单片机应用系统的软件系统设计226
12.2 单片机电子时钟的设计228
12.2.1 功能要求228
12.2.2 总体方案设计228
12.2.3 主要器件介绍229
12.2.4 硬件电路设计234
12.2.5 软件程序设计234
12.3 单片机数显温度计设计247
12.3.1 功能要求247
12.3.2 总体方案设计248
12.3.3 主要器件介绍248
12.3.4 硬件电路设计252
12.3.5 软件程序设计253
思考题与习题262
3章 Keil C51集成环境的使用263
导读263
13.1 Keil C51简介263
13.2 Keil μVision4 IDE的使用方法264
13.2.1 建立项目文件264
13.2.2 给项目添加程序文件266
13.2.3 编译?连接项目,形成目标文件267
13.2.4 运行调试观察结果268
13.2.5 仿真环境的设置268
思考题与习题271
4章 Proteus软件的使用272
导读272
14.1 Proteus概述272
14.1.1 Proteus的进入272
14.1.2 Proteus的界面273
14.2 Proteus的基本操作275
14.2.1 新建电路和选择元件275
14.2.2 放置和编辑元件277
14.2.3 连接导线278
14.2.4 给单片机加载程序280
14.2.5 运行仿真查看结果281
思考题与习题281
附录282
附录A 51系列单片机指令表(如表A-1~表A-5)282
附录B C51的库函数285
参考文献294