《微型计算机原理及接口技术》以Intel 80x86 CPU为核心,系统介绍微型计算机基础知识、原理、指令系统、汇编语言程序设计、总线、存储器、输入/输出接口、中断系统、模拟量输入/输出、人机接口及应用等。《微型计算机原理及接口技术》将系统的硬件和软件融为一体,突出微型计算机的3个关键技术:堆栈、中断、描述符。在掌握微型计算机基本体系的基础上,进一步介绍新型微型计算机的体系结构、现代存储器、USB、IEEEl394、以太网等总线技术。
《微型计算机原理及接口技术》内容新颖全面、重点突出;在充分考虑教学与自学的基础上,叙述由浅入深、通俗简洁,并配备了例题和习题。
《微型计算机原理及接口技术》可作为高等院校学生学习微型计算机原理和接口技术的教材,也可以作为有关科技人员的自学教材和参考书。
本书是编者在多年从事微型计算机原理及接口课程教学实践和科研经验的基础上,参考了大量相关文献资料,组织编写而成。本书主要目的是使理工科非计算机专业的研究生或本科生了解微处理器发展的新技术和应用领域,掌握微型计算机的基本结构、工作原理、接口技术及汇编语言程序设计等内容,具有初步的微型计算机硬件和软件开发能力。同时,本书也可供从事微型计算机硬件或软件技术工作的工程技术人员参考。
本书在编写过程中,结合国家教委提出的加强本科生实践能力培养的精神,重点讲述了微型计算机的基本原理以及与外设的接口技术。本书共14章:第1章讲述微型计算机的发展过程、数制、编码以及二进制数运算知识;第2章介绍了Intel80x86处理器的结构、工作方式及特点;第3章详细介绍了8086/8088指令的寻址方式及其指令系统;第4章简要介绍了汇编语言的特点及伪指令,重点介绍了汇编语言的程序设计及应用实例;第5章详细阐述了ISA总线、PCI总线,同时,也介绍了IJSB、IEEEl394等总线技术;第6章介绍了半导体存储器的分类、管理及特点,详细阐述了Flash存储器以及存储器与CPU连接时要注意的问题;第7章介绍输入/输出技术及总线控制器8237A,重点讲述了I/O地址的分配问题;第8章介绍了中断的概念、8086中断特点以及中断控制器8259A;第9章介绍了计数/定时的概念、可编程计数/定时控制器8253A的工作原理及其应用实例;第10章介绍了可编程并行接口芯片8255A的工作原理及应用实例;第1l章介绍了串行通信基本概念、串行通信接口以及可编程串行通信接口芯片I.NS8250/NS16x50的工作原理与应用;第12章介绍了数/模转换技术(D/A转换器)及应用,以及模/数转换技术(A/D转换器)及应用;第13章简要介绍了微型计算机人一机接口技术;第14章列举了微型计算机的几个应用实例。
本书在内容安排方面,从理工科非计算机专业的特点出发,注重应用,叙述由浅入深,逐层递进。由于微型计算机原理及接口技术课程是一门实践性很强的课程,在采用本书作为教材时,还应注意加强实践环节,通过大量的上机实验,培养学生基于微型计算机的实验研究能力以及软、硬件方面的动手开发能力。
本书第1、2、7、8、10章由林志贵编写;第3、14章由李现国编写;第4、13章由严锡君编写;第5、6章及附录由王敏编写;第9、1l、12章由袁臣虎编写。林志贵负责全书的大纲拟定、组织编写与统稿工作。
本书由苏州大学计算机学院王宜怀教授主审,他对书稿进行了认真的审阅和指导,提出了许多宝贵意见,在此对他表示衷心的感谢。
对本书编写过程中所参考的书籍和有关文献的作者表示衷心感谢。
由于编者水平有限,加之时间比较仓促,书中难免有不妥或错误之处,恳请读者提出宝贵意见和建议。
前言
第1章 微型计算机基础知识
1.1 概述
1.1.1 微型计算机的发展历史
1.1.2 微型计算机系统的组成
1.1.3 微型计算机的分类
1.1.4 微型计算机的主要性能指标
1.2 微机中的数制和数的表示
1.2.1 数制的基与权
1.2.2 数制的转换方法
1.2.3 二进制数的表示
1.2.4 微机中数的表示
1.3 微机的编码
1.3.1 ASCII码
1.3.2 BCD码
1.4 二进制数的运算及其电路
1.4.1 二进制数的运算
1.4.2 加法器
1.4.3 二进制数的加法/减法电路
习题
第2章 ILntel80x86微处理器
2.1 8086/8088CPU的结构
2.1.1 执行部件
2.1.2 总线接口部件
2.1.3 8086总线的工作周期
2.2 8086/8088CPU的引脚信号和工作模式
2.2.1 8086/8088CPU的引脚信号和功能
2.2.2 最小工作模式
2.2.3 最大工作模式
2.3 8086存储器系统
2.3.1 存储器结构
2.3.2 堆栈的概念及8086堆栈
2.4 8086/8088的主要操作功能
2.4.1 系统的复位和启动操作
2.4.2 总线操作
2.4.3 最小工作模式下的总线保持
2.4.4 最大工作模式下的读/写操作
2.5 80286微处理器
2.6 80386/80486微处理器
2.7 Pentium微处理器
习题
第3章 8086/8088指令系统
3.1 汇编语言指令格式与寻址方式
3.1.1 汇编语言指令语句格式
3.1.2 寻址方式
3.2 指令系统
3.2.1 数据传送指令
3.2.2 算术运算指令
3.2.3 逻辑运算和移位指令
3.2.4 串操作指令
3.2.5 控制转移指令
3.2.6 处理器控制指令
习题
第4章 汇编语言程序设计
4.1 汇编语言的基本语法
4.1.1伪指令的语句格式
4.1.2 常数、变量和标号
4.1.3 运算符
4.2 伪指令
4.2.1 符号定义伪指令(赋值语句)
4.2.2 内存数据定义伪指令
4.2.3 段定义伪指令
4.2.4 过程(子程序)定义伪指令
4.2.5 模块定义与连接伪指令
4.2.6 列表伪指令
4.2.7 其他伪指令
4.3 系统功能调用
4.3.1 概述
4.3.2 DOS系统功能调用
4.3.3 BIOS中断调用
4.4 汇编器的功能及汇编过程
4.4.1 汇编器的功能
4.4.2 程序的编辑、汇编及连接过程
4.5 汇编语言程序设计及举例
4.5.1 程序设计步骤及格式
4.5.2 顺序结构程序设计
4.5.3 分支结构程序设计
4.5.4 循环结构程序设计
4.5.5 子程序设计
4.5.6 查表程序设计
4.5.7 综合应用举例
习题
第5章 PC总线
5.1 概述
5.1.1 总线的概念及分类
5.1.2 总线标准
5.1.3 总线主要性能指标
5.2 总线的数据传输过程和控制方式
5.2.1 总线的数据传输过程
5.2.2 总线仲裁
5.2.3 总线数据传输方法
5.3 PC总线
5.4 ISA总线
5.4.1 ISA总线的特点
5.4.2 ISA总线系统结构
5.4.3 ISA总线信号
5.5 PCI总线
5.5.1 PCI总线的特点
5.5.2 PCI总线系统结构
5.5.3 PCI总线信号
5.5.4 PCI总线周期和地址空间
5.5.5 PCI总线配置空间
5.6 通用串行总线USB
5.6.1 USB概述
5.6.2 USB总线的构成
5.6.3 USB系统的接口信号和电气特性
5.6.4 USB数据传输
5.7 其他串行总线标准
5.7.1 IEEEl394
5.7.2 以太网
习题
第6章 存储器
6.1 半导体存储器的性能指标
6.2 随机读写存储器(RAM)
6.2.1 静态RAM(SRAM)
6.2.2 动态RAM(DRAM)
6.2.3 新型DRAM
6.3 只读存储器(ROM)
6.3.1 掩膜ROM
6.3.2 可编程ROM
6.3.3 可擦写ROM
6.3.4 电可擦写ROM
6.3.5 新一代可擦写存储器Flash
6.4 存储器的体系结构及扩展
6.4.1 存储器的体系结构
6.4.2 高速缓冲存储器((2ache)
6.4.3 虚拟存储器
6.4.4 存储器扩展方式
6.5 CPU与存储器的连接
6.5.1 连接时应注意的问题
6.5.2 存储器的译码方式
6.5.3 CPU与存储器的连接和地址分析
6.6 存储器管理
6.6.1 内存分段的基本思想
6.6.2 描述符与描述符表
6.6.3 段间保护
6.6.4 段页式管理
习题
第7章 输入/输出接口
7.1 概述
7.1.1 L/O接口的信号
7.1.2 L/O接口
7.1.3 L/O编址
7.1.4 L/O接口的控制方式
7.2 可编程DMA控制器8237A
7.2.1 DMA控制器的基本功能
7.2.2 8237A的内部结构
7.2.3 8237A的工作时序
7.2.4 8237A的工作方式
7.2.5 8237A的寄存器组
7.2.6 8237A的编程及应用
习题
第8章 86系列微型计算机的中断系统
8.1 中断的基本概念
8.1.1 中断的定义和作用
8.1.2 中断响应
8.1.3 中断的优先级
8.1.4 中断嵌套
8.2 中断的处理
8.3 8086/8088中断系统
8.3.1 中断矢量和中断矢量表
8.3.2 内部中断
8.3.3 外部中断
8.3.4 中断矢量表的初始化
8.4 可编程序中断控制器8259A
8.4.1 8259A的内部结构
8.4.2 8259A的引脚功能
8.4.3 8259A的工作原理
8.4.4 8259A的控制字及工作方式
8.4.5 8259A的应用举例
习题
第9章 可编程计数/定时控制器8253A
9.1 基本概念
9.2 8253A的内部结构和引脚
9.3 8253A的编程
9.3.1 8253A的初始化编程
9.3.2 8253A的锁存命令
9.4 8253A的工作方式
9.4.1 方式0
9.4.2 方式1
9.4.3 方式2
9.4.4 方式3
9.4.5 方式4
9.4.6 方式5
9.5 8253A的应用
习题
第10章 可编程并行接口芯片8255A
10.1 8255A内部结构及引脚
10.2 8255A控制字
10.2.1 工作方式选择控制字
10.2.2 置位/复位控制字
10.3 8255A的工作方式
10.3.1 方式0
10.3.2 方式1
10.3.3 方式2
10.4 8255A的状态字
10.5 8255A的应用
习题
第11章 可编程串行通信及接口
11.1 基本概念
11.2 串行通信接口
11.2.1 RS-232-C总线
11.2.2 RS-422A-423A总线
11.2.3 RS-485总线
11.2.4 其他串行接口
11.3 可编程串行通信接口INS8250和NS16X50
11.3.1 INS8250和NS16x50的内部结构及引脚
11.3.2 INS8250和Ns16x50的寄存器组
11.3.3 工作模式
11.3.4 INS8250的初始化编程
11.3.5 INS8250的应用
习题
第12章 模拟量输入/输出
12.1 模拟量的输入/输出通道
12.1.1 模拟量输入通道的组成
12.1.2 模拟量输出通道的组成
12.2 D/A转换器
12.2.1 D/A转换器的工作原理
12.2.2 D/A转换器的主要技术指标
12.2.3 典型的D/A转换器芯片
12.2.4 D/A转换器与微处理器连接应用举例
12.3 A/D转换器
12.3.1 信号变换中的采样、量化和编码
12.3.2 A/D转换器的工作原理
12.3.3 A/D转换器的主要技术指标
12.3.4 典型的A/D转换器芯片
12.3.5 A/D转换器与微处理器连接应用举例
12.3.6 V/F转换器
习题
第13章 人-机接口
13.1 概述
13.1.1 常用的外围设备
13.1.2 外围设备的分类
13.2 键盘及其接口技术
13.2.1 键盘的工作原理
13.2.2 小型键盘接口
13.2.3 微机键盘及其接口
13.3 鼠标及其接口技术
13.3.1 鼠标的工作原理
13.3.2 鼠标与微机的接口方式
13.4 显示器及其接口技术
13.4.1 LED显示器及其接口
13.4.2 LCD显示器
13.4.3 显示卡
13.5 打印机及其接口技术
13.5.1打印机的工作原理
13.5.2 打印机与微机的接口方式
13.6 多媒体计算机
习题
第14章 微型计算机的应用
14.1 概述
14.2 在控制系统中的应用
14.2.1 微型计算机控制系统的组成
14.2.2 在多对象检测及控制系统中的应用
14.2.3 在过程控制系统中的应用
14.3 微机控制步进电动机的变速系统
14.4 轧钢作业微机监测管理系统
14.5 在生物科学中的应用
14.6 在临床医疗仪器中的应用
习题
附录
附录A ASC II码字符表
附录B 8086/8088指令系统
附录C DOS系统功能调用(INT21H)
附录D B10S调用
附录E IBMPC/XT的中断矢量表
参考文献
自1946年诞生第一台电子计算机以来,在短短的几十年里,计算机已经历了电子管计算机、晶体管计算机、集成电路计算机和大规模及超大规模集成电路计算机发展过程。计算机按其性能、价格和体积的不同,一般分为五大类:巨型机、大型机、中型机、小型机和微型计算机。
微型计算机于20世纪70年代初研制成功。近年来,微处理器和微型计算机获得了极快的发展,几乎每两年微处理器的集成度翻一番,每2~4年更新换代一次。微处理器是微型计算机的核心芯片,简称为up或MP,是将微机中的运算器和控制器集成在一片硅片上制成的集成电路。这样的芯片也被称为中央处理单元,简称为CPU。
第一代为4位或低档8位微处理器,如Intel公司4位的4004及8位的8008。它们均采用PMOS工艺,集成度约为2000个晶体管(或晶体片),只能进行串行的二进制运算,但用在各种类型的计算器中已经完全满足要求。这代微处理器的指令系统比较简单,运算能力差、速度慢,但价格低廉。软件主要使用机器语言及简单的汇编语言。
第二代为中高档8位微处理器,如Intel8085、Z80和MC6809。它们均为8位微处理器,具有16位地址总线,因此,最多可寻址64K存储单元。它们比第一代有了较多改进,如:采用NMOS工艺,集成度提高1-4倍,运算速度提高10~15倍,指令系统相对比较完善,已具有典型的计算机体系结构以及中断、存储器直接存取(:DMA)功能。软件除汇编语言外,还可使用BASIC、FORTRAN以及PL/M等高级语言。但对于具有大量数据的大型复杂程序是不够的。另外,8位微处理器每次只能处理8位数据,处理大量数据就要分成许多个8位字节进行操作,数值越大或越小,计算时间都很长。
……