本书是电子信息等专业“微处理器与接口技术”课程的教材。 全书共13章,包括微处理器基础、8088/8086架构、8088/8086指令系统及程序设计、 存储器系统、接口和中断技术、 可编程接口设计、80C51架构、80C51指令系统、80C51程序设计、80C51的并行I/O接口、80C51的中断与定时/计数器、 80C51的串行接口设计和80C51的模拟量接口。
本书具有一定的理论性和系统性,对典型的微处理器架构进行了介绍和对比,对常用接口的设计方法进行了分析和说明。同时,本书注重实践性, 对应用案例的电路设计和编程实现进行了讲解,内容由浅入深, 具有一定的启发性。
本书可作为高等学校电子、 信息、通信、自动化及计算机等相关专业的教材,也可作为工程技术人员的参考书。
微处理器是电子、信息、通信、自动控制等系统的核心,其应用覆盖了电子设备和产品的多个方面, 应用范围越来越广泛。多年来微处理器技术取得了突飞猛进的发展,但仍以冯·诺依曼架构和哈佛架构为主。基于这两类架构以及各种应用的需要,出现了许多应用于不同领域的微处理器芯片。本书以冯·诺依曼架构中的经典芯片8088/8086和哈佛架构中的经典芯片80C51为重点,由浅入深、循序渐进地介绍了微处理器系统的设计及应用实践。
在以往高等院校电子信息等专业的本科教学中,对以8088/8086为主的微型计算机原理及以80C51为主的单片机应用等课程都非常重视,需要较多的课时进行理论学习和实践探索。随着近年来教学理念的发展,逐渐出现了一些对微处理器及接口类课程的创新尝试。但是,由于微处理器的知识点较多,微处理器类课程之间的关联衔接不够紧密等,造成了理论和实践较难兼顾的问题。因此,基于培养具有扎实的理论基础,并且具备良好的系统设计能力的新工科人才的理念,本书在编写时考虑了三个方面:首先,深化两种架构及典型芯片之间的关联,既介绍冯·诺依曼架构和哈佛架构及相关芯片的主要特点,又力求说明两类架构及系统设计的不同之处,避免知识点的混淆;其次,优化常用接口设计内容,采用某一种架构的微处理器讲解接口的基本概念和设计方法,减少两类微处理器系统设计中相似内容的重复,删减不常用接口设计内容,提高教学效率;最后,强化理论与实践的结合,提供综合性较高的应用实例,既对实例的要求进行理论分析和讲解,又对硬件设计和软件编程的思路进行说明,培养知识运用能力,避免死记硬背。因此,本书是一本深浅适度、重视能力培养的教材。通过对本书的学习,读者不仅能掌握两种微处理器架构的特点,还能培养和提高电子设备及产品开发能力。
为了让初学者能够快速掌握微处理器的理论和接口设计的方法,作者结合多年的教学、科研和实践经验,经过精心策划编写了本书。本书共13章, 包括8088/8086和80C51两类芯片的架构介绍、两类指令系统说明和编译过程讲解、存储器系统的设计、中断的基本概念和设计方法、定时/计数器的硬件设计和软件编程方法、并行接口扩展设计以及数模/模数转换接口设计等内容。
本书作者为广东工业大学的一线教师。本书在编写的过程中得到了广东工业大学信息工程学院领导和其他老师的大力支持,尤其是得到了原玲副院长、李优新副教授、乐金松老师、罗思杰老师以及微处理器与接口技术课程组全体教师的鼎力帮助。此外,本书还得到了广东工业大学教务处的大力支持,以及伍卓丰、黎松毅、王梓斌和黄淑婷四位同学的协助,在此一并表示衷心的感谢!
希望本书能使读者学有所得。 由于作者水平有限,书中可能还存不当之处,欢迎广大同行和读者批评指正。
刘震宇
2021年12月
于广东工业大学
第1章 微处理器基础 1
1.1 微处理器架构 1
1.2 数制表示及转换 3
1.2.1 计数制 3
1.2.2 数制之间的转换 4
1.3 算术运算 5
1.4 逻辑门器件基础 8
思考与练习题 12
第2章 8088/8086架构 13
2.1 8088/8086微处理器的外部引脚 13
2.2 8088微处理器的内部结构 15
2.2.1 8088微处理器的组成及特点 15
2.2.2 8088微处理器的内部寄存器 17
思考与练习题 20
第3章 8088/8086指令系统及程序设计 21
3.1 8088/8086指令格式 21
3.2 8088/8086寻址方式 22
3.3 8088/8086指令系统 26
3.3.1 数据传送指令 26
3.3.2 算术运算指令 30
3.3.3 逻辑运算和移位指令 33
3.3.4 串操作指令 38
3.3.5 程序控制指令 39
3.3.6 处理器控制指令 45
3.4 8088/8086汇编语言编程 46
3.4.1 汇编源程序结构和格式 46
3.4.2 汇编语句格式 47
3.4.3 伪指令 49
思考与练习题 55
第4章 存储器系统 57
4.1 随机存取存储器 57
4.1.1 静态随机存取存储器 57
4.1.2 动态随机存取存储器 59
4.2 只读存储器 62
4.2.1 EPROM 62
4.2.2 EEPROM 63
4.3 存储器系统设计 65
4.3.1 地址译码 65
4.3.2 字位扩展 67
4.3.3 存储系统设计举例 69
思考与练习题 73
第5章 接口和中断技术 74
5.1 I/O接口技术 74
5.1.1 I/O接口概述 74
5.1.2 接口电路 75
5.2 基本输入/输出方式 77
5.3 中断的概念及处理流程 80
5.3.1 中断处理过程 80
5.3.2 8088/8086中断系统 82
5.4 中断控制器8259A 86
5.4.1 8259A的引脚及内部结构 86
5.4.2 8259A的工作方式 88
5.4.3 8259A的编程 91
5.4.4 8259A应用举例 95
思考与练习题 96
第6章 可编程接口设计 98
6.1 可编程定时/计数器8253 98
6.1.1 8253的引脚及结构 98
6.1.2 8253的工作方式 100
6.1.3 8253的控制字 104
6.1.4 8253应用举例 105
6.2 可编程并行接口8255 107
6.2.1 8255的引脚及结构 108
6.2.2 8255的工作方式 110
6.2.3 8255的控制字 111
6.2.4 8255应用举例 112
思考与练习题 114
第7章 80C51架构 116
7.1 单片机概述 116
7.2 80C51的基本结构及信号引脚 116
7.2.1 80C51的基本结构 116
7.2.2 80C51的封装与引脚 117
7.3 80C51的CPU 119
7.4 80C51的存储器 121
7.4.1 80C51的数据存储器(RAM) 121
7.4.2 80C51的程序存储器(ROM) 125
7.5 80C51的时钟与时序 126
7.5.1 80C51的时钟产生方式 126
7.5.2 80C51的时序单位 126
7.5.3 80C51的典型时序 127
7.6 80C51的复位 129
思考与练习题 129
第8章 80C51指令系统 131
8.1 80C51指令概述 131
8.2 80C51的寻址方式 132
8.3 80C51的指令系统 135
8.3.1 数据传送指令 135
8.3.2 算术运算指令 140
8.3.3 逻辑运算与移位指令 144
8.3.4 控制转移指令 147
8.3.5 位操作指令 152
思考与练习题 154
第9章 80C51程序设计 156
9.1 80C51汇编语言语句格式 156
9.2 伪指令 157
9.3 80C51汇编语言程序设计步骤 158
9.4 80C51汇编语言程序结构 159
9.5 80C51汇编语言程序设计举例 164
思考与练习题 168
第10章 80C51的并行I/O接口 170
10.1 80C51并行I/O口的结构和工作原理 170
10.1.1 P0口 170
10.1.2 P1口 171
10.1.3 P2口 172
10.1.4 P3口 173
10.2 80C51并行I/O口的应用 174
10.2.1 按键输入及其接口 174
10.2.2 LED显示器及其接口 178
10.3 80C51的存储器并行扩展 179
10.3.1 数据存储器并行扩展 180
10.3.2 程序存储器并行扩展 180
思考与练习题 181
第11章 80C51的中断与定时/计数器 182
11.1 80C51的中断系统 182
11.1.1 80C51中断系统的结构 182
11.1.2 80C51的中断源 182
11.1.3 中断控制 183
11.1.4 80C51的中断处理过程 184
11.1.5 中断初始化及服务程序 186
11.2 80C51的定时/计数器 187
11.2.1 定时/计数器的结构和工作原理 187
11.2.2 定时/计数器相关的控制寄存器 188
11.2.3 定时/计数器的工作方式 188
11.2.4 定时/计数器应用举例 191
思考与练习题 194
第12章 80C51的串行接口设计 195
12.1 80C51的串行口 195
12.1.1 80C51串行口的结构 195
12.1.2 80C51串行口的控制寄存器 196
12.1.3 80C51串行口的工作方式 196
12.1.4 80C51的波特率设定 200
12.2 80C51串行口的应用 200
思考与练习题 204
第13章 80C51的模拟量接口 205
13.1 D/A转换器及其与80C51接口 205
13.1.1 DAC0832 205
13.1.2 DAC0832与80C51接口 206
13.2 A/D转换器及其与80C51接口 208
13.2.1 ADC0809 209
13.2.2 ADC0809与80C51接口 210
思考与练习题 212
参考文献 213