第一章 微型计算机系统概述
第一节 微型计算机系统的组成
一、微型计算机系统的组成
1.微型计算机系统的硬件系统
- 运算器、控制器和寄存器一起组成了微型计算机的核心部分----中央处理单元(CPU)。
- 运算器是由算数逻辑单元(ALU)和其他运算功能部件组成,负责算数和逻辑运算。
- 控制器按照指令的要求,对微型计算机各部件发出相应的控制信息;使他们协调工作,从而完成对整个计算机系统的控制。
- 寄存器用来存放经常使用的数据,其中包括通用寄存器、控制与状态寄存器、指令指针寄存器。
- 存储器是微型计算机的存储和记忆装置,用来存放数据和程序。
- 内存CPU可以直接访问,因其读/写速度很快,所以主要存放当前正在使用的数据和程序。
- 外部存储器主要指硬盘、光盘等设备,因其容量很大,而且不存在掉电丢数据的问题,可用来存放大量的数据和程序。
- 输入/输出设备是指那些为微型计算机提供数据或信息的设备。
- 地址总线一般是单向总线,传送CPU发出的地址信息。地址总线的宽度决定了系统能访问的最大存储容量,8086微处理器有20地址线,则最大容量1MB。
- 数据总线是双向总线,既可以从CPU传送数据信息到外设和主存,也可以从主存和外设向CPU传送数据。
- 控制总线中每根线上的方向是一定的,他们分别传送控制信息、状态信息和时序信息,这些信息控制数据总线、地址总线的使用。
2.微型计算机系统的软件系统
- 只有硬件的微型计算机系统称为裸机。
- 紧贴着裸机的是基本输入/输出系统(BIOS)。
二、微型计算机系统主要性能指标
- 字长:微型计算机系统中CPU一次能处理二进制的位数。
- 主频:CPU工作时,其节拍由计算机的主时钟控制。主频就是主时钟不断产生的时钟脉冲的固定频率。
- 速度
- 存取容量和存取时间
- 兼容性
第二节 微型机算计系统的工作过程
一、微型计算机系统的工作原理
冯诺依曼结构计算机的基本工作原理可概括为“存储程序”和“程序控制”。必须先设计解决问题的算法,然后根据算法编写有关程序,准备所需数据。存储程序就是把事先编写好的程序和数据存储到存储器中保留起来。然后带入内存,机器启动后,根据给出的第一条指令在内存中的地址,CPU取出第一条指令,然后控制器就可以依据存储程序中的指令顺序周而复始的取指令、分析指令和执行指令,直到完成全部的指令操作。
三、微型计算机的工作过程
- 取指阶段
- 执行阶段
第三节 微型计算机的组成结构
- IA-16结构微处理器:8086、8088、80286数据线都是16位的,地址线是20位的。但是80286地址线是24位。
- IA-32结构微处理器:80386、80486数据线36位、地址线36位、奔腾处理器64位数据线和32位地址线。
- Intel64微处理器:Core i3、i5、i7数据线64位、地址线36位。
芯片组的功能
- 支撑和协调整个系统有条不紊地共工作。
- 决定微型计算机系统的存储器类型和接口类型。
- 决定微型计算机系统的总线类型,并对总线进行控制。
- 控制微处理器和外设之间的数据传送。
- 为微型计算机功能扩展提供接口和总线插槽。
第二章 8086微处理器
第一节8086的内部结构
一、8086微处理器的内部结构
- 8086内部由总线结构单元(BIU)和执行单元(EU)组成。
- BIU主要负责与存储器及I/O接口传送信息,根据计算得到地地址从内存中取出将要执行的指令到指令队列中;同时,如果指令执行需要数据,BIU还负责根据计算出的地址,通过总线到内存或者I/O端口中将数据取出,送入EU。
- EU的功能是执行指令,从指令队列中取出指令代码,将其译码,发出相应的控制信号。
二、8086与8088的区别
- 8086的指令队列有6个字节,而8088的指令队列只有4个字节。
- 8086的指令队列空出2字节的时候,BIU自动执行一次取指令周期。而8088是指令队列空出1个字节的时候自动执行一次取指令周期。
- 8086的BIU相连的CPU的数据总线是16位的,而8088是8位的。
第二节 8986的基本执行环境
- 8086内部由14个16位的寄存器。通用寄存器、段寄存器、指令寄存器、标志寄存器。
- 通用寄存器包括:数据寄存器、地址指针寄存器、和变址寄存器。AX、BX、CX、DX
- AX(累加器)、BX(基址寄存器)、CX(计数寄存器)、DX(数据寄存器)
- 地址指针寄存器SP(栈指针寄存器)和BP(基址指针寄存器)
- 变址寄存器SI和DI
- 段寄存器CS、SS、DS、ES。
- 指令指针寄存器IP:用以存放预取指令在当前代码段中的偏移地址。
- 标志寄存器FLAGS
- CF---进位标志位,最高位发生进位或者错位的时候CF=1,否则等于0.
- PF---奇偶标志位,运算结构低字节中有偶数个1时,PF=1,否则PF=0。
- AF---辅助进位位,算数运算中,D3位向D4进位或者借位时AF=1,否则等0。
- ZF---零标志位,当运算结构为零时,ZF=1,否则=0。
- SF---符号标志位,当有符号数的运算结果的最高位为1时,SF=1否则SF=0。
- OF---溢出标志位,当算数运算超过有效范围OF=1,否则等于0。
- IF---中断允许标志位,IF=1,CPU可以响应可屏蔽中断请求。
- TF---跟踪标志位
- DF---方向标志位
- 物理地址=段基址*10H+偏移地址
- 对于多字节的操作8086采用小端存储法,低字节存放在低位,高字节存放在高位。
第三节 8086的引脚
- 8086最小工作方式:指在系统中只有一个8086微处理器,系统中的所有总线控制信号都直接由8086产生,因此整个系统中的控制线最简单。
- 最大工作方式:指系统中含有两个或两个以上的总线主设备,其中一个就是8086,它作为主处理器,其他都是协处理器。在8086系统中与其配合的协处理器有数值运算系处理器8087和输入/输出协处理器8089,PC工作在最大方式下。
- 工作方式引脚MN/
1.8086的引脚
- RESET为系统复位信号线,高电平有效。有效时间至少为4个时钟周期,复位后CS:IP=0FFFFH:0000H。
- 为测试信号输入线,每隔5个时钟周期CPU对其TEST引脚进行测试。
第四节 8086的基本执行时序
- 时钟周期:计算机是在时钟脉冲CLK的统一控制下,一个节拍一个节拍地工作。这个时钟脉冲由时钟振荡器产生,每两个时钟脉冲的上升沿之间的时间间隔称为T状态,也称为时钟周期。
- 总线周期:CPU通过总线与存储器或输入/输出端口进行一次数据传输所要花费的时间称为一个总线周期。
- 8086中每个总线周期包含4个时钟周期。
- 指令周期:执行一条指令所需要的时间。
- 8086一个基本的总线周期时序图:
- T1周期20位地址线输出,同时ALE发出锁存信号锁存20位地址,M/输出正确状态。
- T2周期地址高4位输出状态编码,和输出正确状态。
- T3周期地址数据复用线上出现16位数据。
- T4周期下降沿CPU获取数据如果是读操作之后,所有信号撤出。
第三章 8086汇编语言程序设计
第一节 8086指令寻址方式
- 8086寻址两大类型:数据寻址和转移操作寻址。
一、数据寻址
- 立即寻址、寄存器寻址、存储器寻址和I/O端口寻址。
- MOV dest,src
- 立即数:操作数直接存放在指令中,紧跟在操作码之后,作为指令的一部分放在代码段中,这种操作数称为立即数。MOV AL,8;
- 寄存器寻址:执行速度最快。MOV AL,CL;
- 存储器寻址:直接寻址、寄存器间接寻址、基址寻址、变址寻址、基址变址寻址。
- 有效地址EA:计算机执行程序中,根据指令给出的寻址方式,计算出操作数的地址,然后从该地址中取出操作数的地址称为有效地址EA。
- 直接寻址:默认方式DS段,MOV AX,[1234H];
- 寄存器间接寻址:使用BX,SI,DI访问DS段,MOV AX,[SI];BP访问SS段。
- 基址寻址:使用BX访问DS段,使用BP访问SS段。MOV BL,10H[BP];
- 变址寻址:变址只能选择SI和DI,默认访问DS段,MOV AX,[SI+120H];
- 基址变址寻址:MOV AX,10H[BP][SI];
- I/O端口寻址:
I/O直接寻址 IN AL,20H;(从20H端口读入一个字节)。OUT 60H,AX;(将AX中1个字送到60H和61H端口)。 I/O端口间接寻址 MOV DX,3FCH; IN AL,DX;从3FCH端口读入1个字节。
二、转移操作寻址
- 段内相对寻址
- 段内间接寻址
- 段间直接寻址
- 段间间接寻址
第二节 8086汇编语言基础
一、汇编源程序结构
- 汇编语言是一种介于机器语言与高级语言之间的,以符号方式表示的面向机器的计算机程序语言。
- 汇编语言程序特点:
- 采用分段结构(可同时拥有代码段、堆栈段、数据段和附加数据段)
- 段内由若干汇编语言语句组成
- 使用起始标号
- 程序开始的语句
- 程序要正常退出到操作系统
// 退出操作系统语句
MOV AX, 4C00H;
INT 21H;
3.伪指令:不产生真正的机器代码,辅助汇编器更好地将源程序翻译成机器代码。
DB----定义字节数据
DW----定义字
DD----定义双字
DF----定义6字节
DQ----定义8字节
DT----定义10字节
// 过程定义伪指令
//过程是一段可由别的程序调用的程序,执行完后返回原调用处。
过程名 PROC [NEAR/FAR]
... ;过程体
过程名 ENDP
// 宏指令
宏名 MACRO [形参1,形参2,...]
... ;宏体
ENDM;宏定义结束
当程序执行速度比程序大小更重要时选用宏,反之选用过程;其次,如果代码块短则选用宏,代码块长选用过程。
第四节 8086汇编指令与汇编语言程序设计
- 程序的设计原则:
- 程序必须是正确的和完整的。
- 程序应该结构清晰、简单明了、注释详尽、易于阅读和维护。
- 程序要尽量做到运算速度快、占用内存少、要在这两者之间得到一个较好的平衡。 BIOS是一组管理程序,包括上电自检程序、系统引导程序、日时钟管理程序和基本I/O设备的驱动程序等。
三、8086基本指令与顺序程序的编写
- 8086的基本指令包括:数据传送指令、算数运算指令、逻辑运算指令、移位与循环移位指令和处理器控制指令。
- 立即数不能直接赋值给段寄存器。
MOV AX,3000H
MOV DS,AX
3.CMP指令可以比较两个数的大小。
| 操作符 | 功能 | 测试条件 |
|---|---|---|
| JE/JZ | 等于/为零转移 | ZF=1 |
| JNE/JNZ | 不等于/不为零转移 | ZF=0 |
4.循环结构程序设计:
- 初始化部分
- 工作部分
- 修改部分
- 控制部分
- 结束部分 5.子程序:是能够完成一定功能的连续的指令序列组成的程序段,该程序段在功能上相对独立,可在程序的多个地方被调用甚至被其他模块调用。具有可重用性和可递归性。
- 为了保证主程序在调用子程序后,主程序所用的寄存器的内容不被破坏,子程序在完成自己功能前,将要用到的寄存器的值先保存起来,这个称为现场保护。等子程序功能执行后,在将这些寄存器的值恢复,这个过程称为现场恢复。
- 如果一个子程序调用另一个子程序称为子程序嵌套。如果子程序直接或者间接调用它自己称为递归,他们都受堆栈大小的限制。
第四章 内部存储器及其接口
第一节 存储器分类及其层次结构
一、存储器分类
- 按照信息的存取方式,存储器可分为:只读存储器(ROM)、随机存取存储器(RAM)和顺序存取存储器。
- 内存主要用来存放正在运行的代码和数据。
第二节 半导体存储器
一、半导体存储器的基本结构
- 半导体存储器由:地址寄存器、地址译码器、存储体、读/写电路、数据寄存器以及控制/时序逻辑等部分组成。
二、半导体存储器分类
- 只读存储器(ROM)
- 掩膜ROM
- PROM,可写入一次数据或程序,之后其中的数据就不可再更改。
- EPROM,通过紫外线照射擦除。
- EEPROM,电可擦出。
- Flash Memory,电可擦除。
2.随机存取存储器(RAM)
- RAM是一种正常工作时就能随时对其数据进行读/写操作的存储器。
- SRAM,电源掉电数据丢失
- DRAM,需要定期充电来维持存储内容的正确。
- NVRAM,掉电不丢失。
内存的主要性能指标
- 存储容量
- 存取时间
- 存取周期
- 可靠性
- 性能/性价比
- SRAM芯片:2114、6116、6264、62128、62256、62512。
- DRAM芯片:2164。
- EPROM芯片:2716、2732、2764、27128、27256、27512。
第三节 半导体存储器与CPU的连接
一、存储器芯片与CPU连接中应关注的问题
- CPU的负载能力
- 芯片的选择
- 时需配合
- 存储器的地址分配
二、存储器扩展
- 位扩展 请用2K8位的存储芯片组成一个2K32位的存储体。
2.字扩展
请用2K8位的存储芯片组成一个8K8位的存储体。
3.字位扩展
- 字位扩展技术是指数据位数和字数都需要扩展。如果一个存储芯片的容量是KL位,需要组成MN位的存储器,则该存储体需要(M/K)*(N/L)个存储芯片。
三、实现片选控制的方法
- 全译码法
全译码法:是指将系统的全部地址线参与到地址译码中,其中地址高位全部接到译码器的输入后,形成片选信号来选择存储芯片,地址低位直接接到存储芯片的地址输入引脚,选择存储芯片内的存储单元。
2.部分译码法
部分译码法是将系统中的部分地址线参与到地址译码中,通常是地址高位的一部分接到译码器的输入后,形成片选信号来选择存储芯片,地址低位直接接到存储芯片的地址输入引脚,选择存储芯片内的存储单元。
- 线选法
线选法不使用译码器,而是直接将地址线的高位作为片选线。
四、8086CPU与存储器的连接
- A0偶存储体,低八位(D0-D7)
- 及存储体,高八位(D8-D15)
| A0 | 传送的数据 | |
|---|---|---|
| 0 | 0 | 两个连续的字节 |
| 0 | 1 | 奇地址的高位字节 |
| 1 | 0 | 偶地址的地位字节 |
| 1 | 1 | 不传送 |
第四节 8086系统地址映射
- 中断向量表(00000F-003FFH)
按照中断向量号的顺序依次存放中断向量(中断处理程序入口地址),每个中断向量是4字节,一个是256个中断向量,因此整个区域占1KB。
第五章 输入/输出与接口技术
第一节 I/O接口概述
- 接口是CPU与内存及CPU与外部设备之间通过总线进行连接的逻辑部件,前者称为存储器接口,后者称为I/O接口。
- 接口技术是把由处理器、存储器等组成的基本系统和外部设备连接起来,从而实现计算机与外部设备通信的一门技术。
- I/O接口的基本功能:
- 作为微机与I/O设备传递数据的缓冲。
- 正确寻址与微机交换数据的I/O设备。
- 信号转换功能。
- 提供微机与I/O设备间交换数据所需的控制逻辑和状态信号。
三、I/O接口的组成
- 接口硬件:数据缓冲寄存器、控制寄存器、状态寄存器、数据总线和地址总线缓冲器、端口地址译码器、内部控制逻辑、对外联络控制逻辑。
- 接口软件又称为设备驱动程序主要包括:
- 初始化程序段
- 传送方式处理程序段
- 主控程序段
- 程序终止与退出程序段
- 辅助程序段
第二节 I/O端口编址
- I/O统一编址:每个端口视为一个存储单元,并赋予相应的存储器地址,CPU访问端口,如同访问存储器,所有访问内存的指令同样适用于I/O端口。优点:一是任何存储器操作指令都可用来操作I/O接口,二是可以使外设数据或I/O寄存器数据只受总存储容量的限制,三是使微机系统的读/写控制逻辑较简单。缺点:占用了一部分存储器的地址空间,访问存储器指令一般较长,执行速度较慢;为了识别一个I/O端口,需要对全部地址线译码,增加了译码电路的复杂性。
- I/O独立编址:将I/O端口单独编制而不和存储空间合在一起,即两者的地址空间是互相独立的,I/O结构不会影响存储器的地址空间。优点:不占用存储器的空间;地址译码简单,寻址速度较快。缺点:专用I/O指令类型少,远不如存储器访问指令丰富,使程序设计灵活性较差;
第三节 8086小系统简单接口电路
- 不可编程接口芯片:接口电路简单,接口功能单一,工作方式基本固定,但这类芯片使用方便,如数据锁存器74LS373、数据缓冲器74LS244、数据收发器74LS245。
- 可编程接口芯片:内部的接口电路复杂,但接口能力强。通常这种芯片具有多种工作方式可以在不改变硬件连接的情况下,根据不同的应用通过软件编程来设置芯片的初始状态、选择芯片的工作方式以及接口功能,具有很好的灵活性和通用性。
- 74LS373锁存器
- 锁存器是一种对脉冲电平敏感的存储单元电路,它们可以在特定输入脉冲电平作用下改变状态。锁存器的主要功能:缓存,是次是完成高速控制器与慢速外设的不同步问题,再次是解决驱动的问题。
// 每次亮一盏LED灯,每隔1s换一盏灯。
MOV CX ,3600
MOV AL,11111110B
LP:OUT 50H,AL
CALL DELAY1S
ROL AL,1
LOOP LP
MOV AX ,4C00H
INT 21H
第四节 输入/输出数据传送的控制方式
- 无条件传送方式
- 程序查询方式
- 中断传送方式
- 直接存储器存取方式
- I/O通道方式
- I/O处理机方式
- 无条件传送方式:输入时假设输入设备数据已经准备好,输出时交涉输出设备是空闲的。
- 程序查询方式:CPU传送数据之前,主动去查询外设是否就绪,若没有就绪,则继续查询其状态,直至外设就绪。
该电路的工作原理:当外设准备好数据,就向接口电路发送选通信号STB,该信号将数据锁存到输入数据寄存器,同时,它使接口电路中的D触发器置“1”。表明数据已经准备好。CPU要完成数据的读入,首先通过IN指令读取31H端口的状态信息,由于数据准备好后,D触发器输出的“1”作为Ready信号被安排在状态信息的D0位,因此CPU可以同步不断的读取31端口是否为1来读取数据与否。
CHK:IN AL,31H
TEST AL,01H
JZ CHK
IN AL,30H
- 中断传送方式:无需反复测试外部设备的状态。在外部设备没有做好数据传送准备时,CPU可以运行与传送数据无关的其他指令。外设做好传送数据准备后,主动向CPU请求中断,CPU响应这一请求,暂停正在运行的程序,转入进行数据传送的中断服务子程序,完成中断服务子程序后,自动返回原来运行的程序。
- DMA操作类型:数据传送、数据校验、数据检索。
- DMA操作方式:单字节操作方式、连续操作方式、请求操作方式、级联传送方式。
第六章 中断系统
第一节 中断系统概述
- 中断就是CPU暂停执行现行的程序,转而处理随机事件,处理完毕后再回到被中断的程序,这一全过程称为中断。中断是为了解决快速的处理器与慢速的外设之间数据传输的矛盾而引入的。
- 中断系统的基本功能
- 为了加强中断系统的灵活,对各种中断请求,应该具有屏蔽和开放的功能。
- 具有中断级别的判断和控制功能
- 能实现中断嵌套
- 系统相应中断后,能自动进行中断处理。当中断处理完毕可以自动返回。
- 多个中断源到来优先执行哪一个:软件查询法(饿死)、硬件查询法(饿死)、请求线仲裁法。
- 每个中断源设备都会编上一个编号,这个编号称为中断识别号(中断向量号),在中断响应期间被选中的设备将这个编号发给CPU,CPU用这个编号通过某种方法找到中断处理程序的入口地址,转入中断处理。使用这种方法的中断方式称为向量中断。
第二节 8086的中断系统
1.外部中断
- 可屏蔽中断(INTR),当FLAGS寄存器的IF标志位为1时,8086处理器的INTR收到有效的中断请求信号后将给予响应。
- 不可屏蔽中断(NMI)
NMI由0跳变到1以后要维持至少4个连续的处理器时钟周期的高电平,否则该中断不能识别。
2.内部中断
- 溢出中断
- 除法出错中断
- 断点中断
- 单步中断
- INTn中断
二、8086中断系统的中断响应与处理
1.8086中断响应时序
- 中断响应后,会发出两个连续的响应周期,每个响应周期从T2状态到T4状态开始的这段时间,有效
- 的有效电平是低电平,该信号接到外设或中断控制器的中断响应信号引脚。
- 第一个总线周期,如果系统使用可编程中断控制器8259A,则8259A锁定中断的优先级状态。
- 第二个总线周期,请求中断的外设发送中断类型号到数据总线AD7-AD0,8086转到指定入口的中断处理程序。
- 两个响应周期,ALE都会在T1时钟有效,作为地址锁存信号。
- 两个响应周期之间,也就是在第一个响应周期T4时钟之后,8086会插入若干个空闲时钟周期。
2.8086中断系统中断响应与处理过程
- 外设申请中断
- 8086发出中断响应信号(两个给外设或中断控制器)
- 中断识别
- 保护断点
- 转入中断处理程序
- 保护寄存器原始数据
- 完成中断处理
- 恢复寄存器的内容
- 返回断点(IRET)
中断向量和中断向量表的使用
- 由于对每个中断而言,处理器都有相应的中断处理程序,而每个中断处理程序都有一个入口地址,该入口地址称为中断向量。因此中断类型号也称为中断向量号。
- CPU在取得中断类型号后自动将其乘以4,作为中断向量表的偏移地址,读取中断向量表相应表项的内容分别置入CS和IP。
第三节 可编程中断控制器Intel8259A
2.8259A的内部结构
- 中断请求寄存器(IRR),具有锁存功能,其内容可以用OCW3读出。
- 中断屏蔽寄存器(IMR),对应8级中断屏蔽,希望哪级中断被屏蔽,则哪位写“1”。屏蔽操作由屏蔽命令OCW1操作。
- 优先级电路PR
- 中断服务寄存器(ISR)
二、8259A的主要工作方式
- 边沿触发方式
- 电平触发方式
3.优先级排队的方式
- 固定优先级(IR0-IR7,IR0最高)
- 优先轮转法
- 中断嵌套是指在一个中断处理程序还未结束之前,有一个新的中断请求打断尚未执行完的中断处理程序,使得CPU进入到新中断的中断处理程序中。
5.结束中断的方式
- 自动中断结束方式:在中断处理程序返回之前,不需要发中断结束命令就会在第二个脉冲的后沿,使ISR相应的位自动清零。
- 非自动中断结束方式:在中断处理程序返回前,必须发中断结束命令才会清除该中断处理程序所对应的ISR位。
三、8259A的中断操作功能及命令
- 初始化命令ICW1-ICW4,此命令是对8259A中工作方式和工作条件的设置,采用“严格按照规定的顺序写入”。
8259A级联
- CAS2-CAS0互连,从片的INT直接链接主片的IR2上。主片的INT连接CPU的INTR,主片的链接总线控制器的,链接总线控制器的,链接总线控制器的。
第七章 可编程定时/计数器
第一节 定时/计数器概述
- 定时/计数的主要功能包括:
- 以均匀分布的时间间隔中断分时操作系统,以便切换程序。
- 向I/O设备输出精确的定时信号。
- 检测外部事件发生的频率和周期,如CPU风扇转速测量。
- 统计外部某过程中某一事件发生的次数。
二、定时方法
- 软件定时:通过执行一段固定的循环程序来实现定时。
- 不可编程硬件定时:采用中小规模集成电路器件来构成定时电路的,例如单稳态触发器和555定时器等。
- 可编程硬件定时:在上述不可编程硬件定时的基础上加以改进,使其定时值和定时范围可方便地由软件来确定和改变。可编程定时/计数器的本质是脉冲计数器。
第二节 可编程定时/计数器8254
- 有3个独立的16位计数器。
- 内部结构:数据总线缓冲器、读/写控制逻辑、控制字寄存器、计数器。
三、8254的工作方式
- 8254的3个计数器均有6种工作方式,其主要区别在于输出波形不同、启动计数器的触发方式不同和计数过程中门控信号GATE对计数操作的影响不同。二进制为0000H-FFFFH,0000H代表最多大65536。对十进制计数为0000-9999,0000代表最大10000。
方式0
- 软件启动,OUT低电平开始计数,GATE低电平停止计数。
方式1
- 硬件启动,OUT低电平开始计数,GATE由低到高的越变重新计数,具有可重复发性,及允许多次触发。
方式2
- 速率波发生器,具有“初值自动重装”的功能。写入初值后如果GATE是高电平,则开始减一计数,当计数值减到1,OUT输出低电平,维持一个CLK周期,又变为高电平,且计数初值重装。
方式3
- 方波发生器,初值自动重装的功能,每次减2.
方式4
- 软件触发选通,与方式0十分相似,OUT是高电平开始计数,计数值减到0,OUT低电平。
方式5
- 硬件触发选通,与方式1十分相似,GATE出现0到1的越变初值重装,OUT高电平计数,减到0,OUT低电平。
五、8254编程
试使用8254-2的计数器0做频率4khz的方波发生器,8254的端口地址为40H-43H,Fclk0=12MHZ。
由题知计数器0工作在方式3下,初值为12MHZ÷4KHZ = 3000
MOV AL,00110111B
OUT 43,AL ;写控制字,定义计数器0工作方式3,使用16位BCD计数
MOV AX,3000H
OUT 40H,AL
MOV AL,AH
OUT 40H,AL
第八章 可编程并行接口
第一节 并行接口概述
- 并行接口最基本的特点是一个待传送数据的各位同时传输,即在CPU与I/O设备之间传送信息的数据单位一般为“字节”或“字”,需要使用多根数据线,如打印机接口等。
第二节 可编程并行接口芯片8255A
- 8255A有3种工作方式,具有两个独立的8位I/O口(A口和B口),两个独立的4位I/O口(C口上半部和C口下半部)。
- A组控制模块管理A口和C口的高4位(PC7-PC4),B组控制模块管理B口和C口的低4位(PC3-PC0)。
- C口的作用:作为数据口、作为状态口、作为专用联络信号线、作按位控制。
三、8255A的工作方式
- 方式0:简单的输入/输出方式,一般用于无条件传送的场合,也可以用作查询式传送。
- 方式1:选通输入/输出方式
方式1输入
1) STB(上划线)选通输入信号,低电平有效。当其有效时,把输入装置来的数据送入8255A输入缓冲器。
2)IBF输入缓冲器信号,高电平有效。这是8255A输给外设的联络信号,作为STB的回到信号。当其有效时,表示数据已输至输入缓冲器,CPU还未将数据取走,通知外设停止送数。当CPU将数据取走后,IBF复位,外设可以继续送入数据。它由STB低电平信号置位,由RD低电平信号的后沿使其复位。
3)INTR中断请求信号,高电平有效,它是8255A向CPU发出的中断请求信号,当STB、IBF、和INTE(中断允许)均为高时被置高,由RD低电平信号的下降沿清除。
4)INTE中断允许信号,高电平有效。只有INTE=1时,A口和B口才能因输入缓冲器慢向CPU发出中断请求。用户用对PC4的置位控制字来使INTEA置为1,用对PC2的置位控制字使INTEB置1,使A口和B口允许中断,使用PC4或PC2的复位控制字可使INTEA或INTEB复位,以禁止中断。
方式1输出
1)OBF(低电平)输出缓冲器满信号,低电平有效。这是8255A给外设的联络信号。当其有效时表明CPU已经把数据输出给置顶的端口,外设可以从8255A取数。他由输出指令产生的WR(低电平)的上升沿置成有效,由ACK(低电平)使其恢复为高。
2)ACK(低电平)外设响应信号,高电平有效。作为对OBF的响应信号,表示外设已经数据从8255A的输出缓冲器取走。
3)INTR中断请求信号,高电平有效。当外设已经接收CU输出的数据后,8255A向CPU发出中断请求,要求CPU输出新的数据。
4)INTE中断允许信号,高电平有效。分别由PC6和PC2的置位/复位控制。
- 方式2为双向选通I/O方式,只有A口才有此方式。
四、8255A初始化编程
- 8255A的工作方式和接口功能是CPU通过把控制字写入控制寄存器来实现的,这就是初始化编程。
编程题
某系统要求使用8255A的A口工作方式1作为输入,B口工作方式0作为输出,C口上半部分输入,下半部分输出。8255A端口地址为60H-63H。请给出8255A的初始化编程。
控制字为 10111000B=0B8H
初始化程序为
MOV AL,0B8H
OUT 63H,AL
若A口工作于方式1,作为输入,要使用中断传送方式,请给出使能8255A中断的程序
对于A口工作在方式1输入,应当用C口按位置为让PC4=1。
MOV AL,00001001B
OUT 63H,AL
第九章 串行通信与串行接口
第一节 串行通信基本概念
- 串行通信是将数据的各个位一位一位地,通过单条一位宽的传输线按顺序分时传送,即通信双方一次传输一个二进制位。
- 微机系统串行接口常用的LSI芯片分为:UART、USRT、USART、ACIA。
- 数据传送方式:单工方式、半双工方式、全双工方式。
- 波特率:即单位时间内传送的二进制数据的位数,以位/秒表示。位周期是波特率的倒数。
- 调频(FM)、调幅(AM)、调相(PM)。
第二节 串行通信协议
- 通信协议又称通信规程,是指通信双方对数据传送方式的一种约定。约定中包括对数据格式、同步方式、传送速率、传送步骤、检验纠错的方式以及控制字符定义等问题进行统一规定,通信双方必须共同遵守,它也叫作链路控制规程。
- 异步通信信息由5部分组成:1位起始位、5-8位数据位、0或1位奇偶校验位、停止位、空闲位。
- 通过检测是否有9个连续的低电平来确定它是否是起始位。
- 同步通信规程:面向字符型、面向比特型、面向字节计数。
第三节 串行接口标准RS-232C
- RS-232C最简单连接:TxD、RxD、SG。
- 在数据线TxD和RxD上:逻辑1=-3~-15V,逻辑0=+3~+15V。
第四节 可编程串行接口芯片8251A
- 8251A主要组成部分:接收器、发送器、调制控制、读/写控制以及系统数据总线缓冲器。
- 接收器:在RxC的作用下,接收RxD引脚上的帧格式化串行数据。并发出接收器准备好信号(RxRDY=1),通知CPU读数。
- 常见的错位类型
- 奇偶错误:在接收时,8251A检查接收到的每个字符“1”的个数,若不符合要求发出奇偶校验错误信息。
- 帧错误:若接收的字格式不符合规定,则支出错标志,发出帧错误信息。
- 溢出错误:上个数据还未取走,又来新的数据。 4.发送器:在发送时钟TxC的作用下,由TxD引脚一位一位的串行发送出去。发送完一帧数据后,发送器准备好置位TxDRY=1,通知CPU发送下一个数据。
四、8251A变成看B站视频。
第十章模拟接口
第一节 模拟接口概述
- 采样、保持、量化、编码。
第二节 D-A转换器
一、D-A转换器接口技术性能
- 分辨率:指D-A转换器能够转换的二进制的位数。
一个D-A转换器能够转换8位二进制数,若转换后的电压满量程是5V,则它能够分辨的最小电压是5÷256=20mV
2.转换时间:指从数字量的输入到转换完成,且输出达到最终值并稳定为止所需的时间。 3.精度:指D-A转换器实际输出电压与理论值之间所存在的最大误差。
- 将D-A转换器的失调误差调整至零,并将转换器的最大输出调节至满量程值,那么此时D-A转换器对应不同输入数码时各点模拟器输出电平与理想的输出值之间的最大偏差即为转换器的相对精度。如果不对失调误差调零和不校正转换器的输出满量程值,那么此时测得的即为D-A转换器的绝对精度。
- DAC0832是8位分辨率的D-A转换集成芯片。
工作方式
- 双缓冲方式:这种方式适用于多路D-A同时进行转换的系统。因为各芯片的片选信号不同,可由每片的片选信号和分时将数据输入到每片的输出锁存器中,和分别连在一起,作为公共控制信号。
设输入锁存器的地址为200H,DAC寄存器的地址为201H,则完成一次D-A转换的参考程序片断如下:
MOV DX,200H
OUT DX,AL
MOV DX,201H
OUT DX,AL
2.单缓冲方式:接CPU的,接I/O地址译码器输出。
- 直通方式。
- DAC0832需要外接一个运算放大器。
第三节 A-D转换器
- 3种类型:逐次逼近型、V/F转换型和双积分型。
- A-D转换器的性能参数
- 分辨率
- 绝对精度:是指ADC转换后所得数字量代表的模拟输入值与实际模拟输入值之差。
- 转换时间:ADC完成一次对模拟量的测量到数字量的转换所需要的时间。转换时间的倒数称为转换速率。转换时间低于1ms的为低速、1us-1ms为中速、低于1us为高速、转换时间小于1ns为超高速。
- ADC0809是NSC公司生产的8路模拟输入逐次逼近型A-D转换器。
- START为A-D转换启动信号
- EOC为转换结束信号
- OE为输出允许信号,当该电平为高时,打开输出缓冲器的是三态门,转换结果输出到数据总线上。
- A-D转换器主要信号:模拟输入信号、数据输出信号、启动转换信号和转换结束信号。
- CPU一般可以采用以下几种方式和A-D转换器进行联络来实现对转换数据的读取。
- 程序查询方式
- 中断方式
- 固定延时等待方式
- DMA方式
第十一章 总线与实用接口
- 总线:总线就是在计算机内部各部件之间以及计算机与外设之间的一组进行互连和传输信息的信号线。
- 总线的性能参数:总线频率、总线宽度、总线的数据传输率。
总线的数据传输率=(总线宽度÷8位)*总线频率。
- 总线操作的4个阶段:总线请求和仲裁阶段、寻址阶段、数据传送阶段、结束阶段。
- 总线传送控制方式:同步方式、异步方式、半同步方式、分离方式。
- ISA总线:16位数据线、24根地址线、数据传输率16MB/s
- EISA总线:32位地址、32位数据线、数据传输率33.3MB/s
- PCS总线:数据位宽64位、数据传输率达266MB/s
- PCI上的基本总线传输机制是突发传输,一次突发传输由一个地址期和一个或多个数据期组成,支持存储器空间和I/O空间的突发传输。
- 通用串行总线USB
- USB数据流类型:控制信号流、块数据流、中断数据流和实时数据流。
- USB4中基本传输类型:控制传输、批传输、中断传输、等时传输。
- IEEE1394:IEEE1394是Apple公司于1993年首先提出,用来取代SCSI的高速串行总线“Fire Wire”,后经过IEEE协会于1995年12月正式接纳成为一个工业标准,全称是IEEE139高性能串行总线标准。其特点是通用性强、传输速率高、实时性好、总线提供电源、系统中各设备之间的关系平等、连接方便。