典型习题讲解2
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、8086系统中接口连接关系如下图所示。要求回答以下问题:
试分别确定8255,8253,8259及8251的端口地址。
8255的地址为、、、。
8253的地址为、、、。
8259的地址为、。
8251的地址为、。
8255的地址为:80H 82H 84H 86H 8253的地址为:90H 92H 94H 96H
8259的地址为:A0H A2H 8251的地址为:B0H B2H
2、假设可编程并行接口芯片8255A的地址为200H—203H,编写程序,对此芯片进行初始化处理,使A组以方式0工作,且A口指定为输出,PC4、PC5、PC6、PC7指定为输入;B组以方式0工作,且B口指定为输入,PC0、PC1、PC2、PC3指定为输出。
(1)MOV AL,8AH (2)MOV DX,203H (3)OUT DX,AL
3、8255A各端口处在如下工作方式:PA口为方式0输入;PB口工作于方式1输出;PC口为普通I/O,且使PC5端输出一个负脉冲。请编写8255A的初始化程序(端口地址为:7F8H—7FBH)。
(1)MOV DX,7FBH (2)MOV AL,1001 0100B (3)OUT DX,AL (4)MOV AL,0000 1010B (5)OUT DX,AL
4、下图所示为应用8253的计数器1给8251提供发送时钟信号,为简介起见,图中只给出部分有关的引脚信号。(8251地址端口为84H、85H;8253地址端口为:80H-83H)
要求如下:
(1)写出将工作方式控制字写入8251的指令。使8251工作在异步传送方式,字符8位、停止位2位,偶校验、波特率系数为16。
(2)写出将字符‘C’写入发送缓冲器的指令。
(3)写出将工作方式控制字写入8253的指令,使计数器1按工作方式3(方波发生器)工作,计数方式为BCD制。
(4)写出将计数器1计数初值写入8253的指令(OUT1输出16KHz)。
+5V
2MHz
(1)MOV AL,1111 1110B OUT 85H,AL
(2)MOV AL,‘C’OUT 84H,AL
(3)MOV AL,0111 0111B OUT 83H,AL
(4)MOV AL,25 OUT 81H,AL
MOV AL,1 OUT 81H,AL
1、编写初始化程序段,要求对8259A设置ICW1,请求信号为上升沿、单片方式,需设置ICW4;设置ICW2,中断类型码为08H;设置ICW4,正常完全嵌套,缓冲方式,从片,中断正常结束。8259A端口地址为40H、41H。
(1)PORT0 EQU 40H
(2)PORT1 EQU 41H......
(3)MOV AL,13H
(4)MOV DX,PORT0
(5)OUT DX,AL
(6)INC DX
(7)MOV AL,08H
(8)OUT DX,AL
(9)MOV AL,09H
(10)OUT DX,AL
2、编写封锁8259A的IR
3、IR4和IR6中断请求的程序。设8259A的端口地址为93H、94H。
(1)MOV AL,0101 1000B
(2)MOV DX,93H
(3)OUT DX,AL
3、已知8253端口地址为40H—43H,CLK2计数频率为1.2MHz,GATE2为高电平,执行以下程序段:
MOV AL,96H
OUT 43H,AL
MOV AL,40
OUT 42H,AL
则,OUT2 =
30KHZ。
4、8086系统中用8253可编程计数/定时器的通道0来对流水线的工件计数,每计满500个从OUT0端产生一高电平中断请求信号。CPU响应中断就使通道1的OUT端产生频率为1000HZ的方波推动扬声器发出提示声音,时间为4秒钟。GATE1通过一I/O端口接到DB总线的D0位,地址为88H,8253各地址为80H-86H。片外提供频率为2MHZ的时钟信号。原理图如下图所示。
(1)8253的A0和A1引脚与地址总线的A1和A2连接,如果改为与地址总线的A0和A1连接是否可行?为什么?
解答:因为8086是16位数据线,而8253是8位数据线,所以一般用A0和/BHE信号来参与片选端口,将存储空间分为高位库和地位库。所以一般不用A0直接和8位数据宽度的外设直接连接。但如果采取特殊措施,也可以,CPU获取的数据都要作高位或低位屏蔽,当然端口的地址也要改变。
(2)D0接到GATE1的I/O端口用什么器件?是什么种类的端口?
解答:用D触发器,属于缓冲器类型的端口。
(3)以下是完成流水线功能的程序段,要求在空格中填入相应的指令、数据和端口地址。
INT
+5V
2MHZ
A1
A2
光源
+5V
主程序:
(1);8253计数器0通道设置方式控制字MOV AL,00110000B (2);OUT 86H,AL (3);设置计数初值OUT 80H,0F4H (4)OUT 80H,01H MOV AX,(5);设置发声中断服务程序中断向量00H
MOV DS,AX;中断类型号为N
MOV BX,(6);中断服务程序在另一逻辑段N*4
MOV [BX],(7)OFFSET PRGSV
MOV [BX+2], (8) SEG PRGSV STI ;开中断 ......
LOP :JMP LOP ;等待中断 中断服务程序为:
PRGSV: MOV AL ,(9) ;通道1初始化 MOV AL ,0111 0110B OUT (10),AL OUT 86H ,AL MOV AL ,(11);计数初值 0D0H OUT (12), AL 82H MOV AL ,(13); 07H OUT (14), AL 82H MOV AL ,01H OUT 88H ,AL CALL DL58 MOV AL ,00H OUT 88H ,AL IRET
5、ADC0809通过并行8255A 与8086 CPU 连接的接口电路如下图所示,请回答如下问题:
RD WR D7~D0
A0
A1
A2A3A4A5A6A7A8A9
8086 CPU
A B C G1
G2A G2B 74LS138
A0A1CS
Y1
D7~D0RD
WR PB7~PB0D7~D0
8255A
ADC0809EOC
PC2PC7
START ALE
PC6PC5PC4
ADDC ADDB ADDA IN0IN1IN2IN3IN4IN5IN6IN7
(1)写出8255A 的端口地址。
(2)若选择ADC0809的通道IN1有模拟信号输入,此时的引脚PC6 PC5 PC4=? (3)如何控制ADC0809转换的开始。
(4)CPU 如何知道ADC0809转换的结束?CPU 如何得到ADC0809转换好的