一、什么是并行接口和串行接口?他们各有什么作用?
并行接口是指接口电路和外设之间通过多根数据线同时传送多位数据的接口形式;串行接口是指接口电路和外设之间通过一根数据线分时传送多位数据的接口形式。 并行接口适用于近距离高速高效的传输场合。串行接口适用于远距离的传送场合。
三、
8255的工作方式有三种。
方式0特点:不需要联络信号,不使用中断;各个端口输出有锁存,输入有三态缓冲能力而无锁存功能。ABC口都可以工作在这种方式下。
方式1特点:需要设置专用的联络信号线,通常用于条件传送方式或中断方式;数据的输入输出都有锁存功能。AB口可以工作在这种方式下。
方式2特点:双向传输,可以实现程序查询方式和中断方式的I/O同步控制。只有C口可以工作在这种方式下。
六、用8255A作为CPU与打印机接口,8255的A口工作于方式0,输出;C口工作于方式0。8255A与打印机及CPU的连线如下图所示。试编写一程序,用查询方式将100个数据送打印机打印(8255A的端口地址及100个数据的存放地址自行设定)。
题9-6图
答:设8255的A、B、C及控制端口的地址分别为PORT0、POAT1、PORT2和PORT3,而需打印的数据放在数据段中以BUF开头的区域,则一种程序段实现如下:
MOV DX,PORT3;8255控制命令字端口地址
MOV AL,10000xx1B;A组方式0输出,C口上半(4-7)部分输出,下半(0-3)部分输入
OUT LEA MOV AG: MOV
IN TEST JNZ MOV MOV OUT MOV MOV
DX,AL
SI, BUF;数据缓冲区首址 CX,100;待打印的字符个数 DX,PORT2;8255的C口地址 AL,DX
AL,00000001B;检测PC0是否为高 AG;PC0为高则等待
DX,PORT0;8255的A口地址 AL,[SI];内存取数 DX,AL;数据送A口
DX,PORT3;8255的命令字端口地址 AL,00001100B;置/STB为低电平
OUT DX,AL
NOP;等待延时,产生负脉冲 NOP
MOV AL,00001101B; 置/STB为高电平 OUT
DX,AL
INC LOOP
SI;内存地址加1 AG;未完继续
P416
八、什么是同步通信和异步通信?各有什么特点? 同步通信是指在通信过程中信号之间的时间关系都以同一个同步时钟来作为参考,通信中的所有信息的传送和相应控制信号有效均以同步时钟为基准。特点是通信双方的信息传输必须严格与同步时钟同步。
异步通信是指通信的时序没有绝对的时间关系只有相对的时间关系,信息传输由一对或多根握手信号决定。通信的传输速度可以根据设备的相应速度自动调整,通信的适应能力强. 十五、
8253的特点有:定时/计数不占用CPU时间,使用灵活;具有三个独立的定时/计数端口;具有数据总线缓冲器;具有定时/计数初值寄存器、当前定时/计数值寄存器、输出锁存器;有六种工作方式。
十九、利用PC的8253作为定时器,用8255的一个输出控制8个指示灯,编一个程序使8个指示灯依次点亮,切换时间为每秒一次。 IRQ0
+5V 8 2 GATE0 1.19M I S A 总 线 AB CB DB +5V R 8 2 5 5 PA0 PA1 · · · PA7 · · · 5 CLK0 3 OUT0
题9-19图
答:根据题目要求,利用PC机内8253的计数器0,计数时钟频率为1.19MHz,输出端OUT0接8259的IRQ0端。PC机中8253的端口地址为40H—43H,8259的端口地址为20H和21H,IRQ0对应类型号为8的中断。假设并口8255A的A、B、C及控制端口的地址分别为PORTA、PORTB、PORTC和PCON,现用8255的A口控制指示灯的显示,系统如下图所示。微机正常工作时,每大约55ms产生一次IRQ0中断,本题指示灯的显示切换时间并不要求非常准确,因此不必再重新设置8253,直接利用55ms(65536*1/1.19M)的定时中断即可。一种可能的程序段如下实现:
主程序:
…… CLI MOV AX, MOV DS, MOV SI, LODSW MOV BX, LODSW
0 AX 0020H AX
; 关中断
; 将原来的中断向量放入堆栈保护 ; DS:SI指向8号中断的向量存放地址 ; 取原来中断向量中的偏移量存入BX ; 取原来中断向量中的段基址存入AX
; 重新设置IRQ0的中断向量,并初始化8255
PUSH AX PUSH BX MOV AX, MOV DS, MOV AX, MOV ES, MOV DI, MOV AX, STOSW MOV AX, STOSW MOV AL,
DATA AX 0 AX 0020H
; 建立本程序数据段
; 重新设置用户中断服务程序的入口地址
; ES:DI指向8号中断的向量存放地址
OFFSET LED_FLASH SEG LED_FLASH 80H
; 初始化8255,使A口工作于方式0输出
OUT PCON, AL
MOV AL, 0FEH
; (低电平)点亮第一个LED,以后每隔1s点亮下一个 MOV DRVNUM,AL ; 初始化驱动码单元DRVNUM(定义在数据段中)
OUT PORTA, AL MOV AL, 0 MOV COUNT, AL STI ……
; 初始化软件计数器COUNT(定义在数据段中) ; 开中断
; 每55ms产生一次,每计到1s后点亮LED
中断服务子程序:
LED_FLASH: PUSH AX INC COUNT MOV AL, COUNT
AAA1:
EXT:
IRET
CMP AL, JB EXT
18
; COUNT<18说明还未计到1s,退出子程序 ; 已计满1s,软件计数器清0,并点亮一个LED
MOV AL, 0 MOV COUNT, AL MOV AL,
DRVNUM
ROL AL, 1 MOV DRVNUM, OUT POP
PORTA, AL AX
AL ; 保存驱动码
; 将驱动码从8255的A口送出
另一种方法:
假设使用8255的A口作为输出口,使用8253的OUT0输出到8255的PC0引脚;8个指示灯为共地模式。PC机中8253的端口地址为40H—43H , 8255的A、B、C及控制端口的地址分别为60H~63H
MOV OUT MOV
题9-19图
+5V 8 2 GATE0 1.19M 8 2 5 PA0 PA1 · · · · · · R 5 CLK0 3 OUT0 5 PC0 PA7 AL,1000xxxx1;A组方式0输出,C组下半(0-3)部分输入
63H,AL
AL,00110000B;选择计数器0,先写计数器低8位,在写高8位,方式0,2进制表示
(参考P444) OUT 43H,AL
MOV BL,00000001B DOAG:MOV CX,20
;假设我们用的CLK的频率为1.19M,则我们需要1190000(59500*20)的初值. CG: MOV
OUT
OUT
TAG: IN TEST JZ LOOP
MOV
OUT
ROL JMP
AX,59500 40H,AH 40H,AL
AL,62H;8155 C口数据读入AL AL,00000001B;检测PC0是否为高 AG;循环直到一次从59500减到0 CG;;一秒钟到,点亮一个灯 AL,BL 60H,AL
BL,1
DOAG;继续进行,1S后点亮另一个灯。
二十二、什么使中断响应周期?在中断响应周期中,CPU和8259一般要完成那些工作?
中断响应周期是指一个中断响应的完成时间。在中断响应周期中,CPU要向8259发送两个/INTA负脉冲,8259完成的任务有:禁止IRR不再受IR7~IR0信号的再次变化的影响(直到第二个/INTA结束);将优先权处理器PR确定的最高优先级的中断请求信号存入服务器状态寄存器ISR,表示CPU已经为该中断服务;将中断请求寄存器IRR的相应位复位;在接受到第二个/INTA负脉冲后,将中断类型号通过数据总线送直CPU。
三十一、A/D转换器一般有那些外部引脚信号?分析A/D转换器外部引脚特性对A/D接口设计有何意义?
A/D转换器一般有:数字量输出信号、模拟量输入端、启动A/D信号、输出允许信号、基准电压输入、时钟信号、电源、地等外部引脚。
分析A/D转换器外部引脚特性可以知道该A/D转换器的分辨率以及基准电压和转换速度。

