发布时间 : 星期日 文章《微机原理与接口技术》复习练习题与答案更新完毕开始阅读
ADY db 26 dup(?) Data Ends Stack segment Db 100 dup(?) Stack ends Code segment
Assume cs:code,ds:data,ss :stack MAIN PROC FAR PUSH DS XOR AX,AX PUSH AX
MOV DX,Ctrol
MOV AL,88H ;方式控制字=10001000B OUT DX,AL
MOV AL,03H ;用C口置/复位控制字使PC1=1 OUT DX,AL
MOV CX,26 ;设置计数器初值为26 LEA SI,ADY LL:MOV DX,Cport
IN AL,DX ;读C口的值 AND AL,20H ;测试D5位
JNZ LL ;不为0,则PC5=1,打印机正忙,等待 MOV DX,Aport
MOV AL,[SI] ;打印机不忙,则送字符给A口 OUT DX,AL MOV DX, Ctrol
MOV AL,02H ;使PC1=0 OUT DX,AL
INC AL ;使PC1=1,则得一个负脉冲输出 OUT DX,AL
INC SI ;修改地址指针 DEC CX ;修改计数器的值
JNZ LL ;26个字符未输完,则继续 RET MAIN ENDP CODE ENDS END MAIN
5、某PC机应用系统以8255A作为接口,采集8位开关S0~S7的状态,然后通过一组发光二极管LED0~LED7显示出来(Si闭合,对应的LEDi亮)。电路连接图如下图所示。
(1)写出8255的四个端口地址;
(2)写出8255的方式控制字(未用的位设为0);
第 17 页 共 22 页
(3)编写实现给定功能的程序段。
附:8255A控制字格式:
D0:C口低4位方式,0—输出、1—输入 D1:B口I/O方式,0—输出、1—输入 D2:B口工作方式,0—方式0、1—方式1 D3:C口高4位方式,0—输出、1—输入 D4:A口I/O方式,0—输出、1—输入
D6、D5:A口工作方式,00--方式0、01--方式1、10或11--方式2 D7:标志位为1
解:(1)由图可知,当A9A8A7A6A5A4A3A2?11001000时,74LS138的Y0输出低电平,选中8255A。由此可知:
8255A的A口、B口、C口及控制口地址分别为:320H、321H、322H、323H。 (2)A口工作在方式0输出、B口工作在方式0输入,C口空闲,所以8255A的工作方式控制字为:82H。 (3)程序段如下: MOV AL,82H ;置方式字 MOV DX,323H ;置控制口地址 OUT DX,AL ;写控制字 MOV DX,321H ;置B口地址
IN AL,DX ;读开关状态(断开为1,接通为0) NOT AL ;状态取反
第 18 页 共 22 页
MOV DX,320H ;置A口地址
OUT DX,AL ;输出(1灯亮,0灯灭) HLT ;停机
6、某系统中8253地址为340H~343H,输入频率为10MHZ脉冲信号,输出为1HZ,占空比为1:1的脉冲信号(方波),请写出初始化程序并画出相应电路图及地址译码连接图。(12分)
提示∶(1) 地址总线只用A0~A9,控制线用IOR、IOW,译码器可采用逻辑电路与LS138译码器的组合; (2) 8253的工作方式字如下图。
解:(1)电路图及地址译码连接图如下:
当A9A8A7A6A5A4A3A2?11010000时,74LS138的Y0输出低电平,选中8253。由此可知:
8253的计数器0、计数器1、计数器2及方式控制口地址分别为:340H、341H、342H、343H。
又因为CLK频率为10MHz,要求在OUT端产生频率1Hz的脉冲,此时计数值为10000000,超过一个计数通道的范围,要把2个计数通道串联起来使用。
第 19 页 共 22 页
(2)
? 确定计数初值:
? CNT0: 10MHZ/1KHZ = 10000 ? CNT1: 1KHz/1Hz = 1000 ? 确定控制字:
? CNT0:方式3,16位计数值为 00 11 011 0B ? CNT1:方式3,16位计数值为 01 11 011 0B 8253初始化程序段如下:
MOV DX,343H ;8253方式控制字端口地址 MOV AL,00110110B ;置计数器0方式字 OUT DX,AL ;写入计数器0方式字 MOV AX,10000 ;置计数器0计数初值 MOV DX,340H ;计数器0端口地址
OUT DX,AL ;写入计数器0的计数初值低8位 MOV AL,AH
OUT DX,AL ;写入计数器0的计数初值高8位 MOV DX,343H ;8253方式控制字端口地址 MOV AL,01110110B ;置计数器1方式字 OUT DX,AL ;写入计数器1方式字 MOV DX,341H ;计数器1端口地址 MOV AX,1000 ;置计数器1计数初值
OUT DX,AL ;写入计数器1的计数初值低8位 MOV AL,AH
OUT DX,AL ;写入计数器1的计数初值高8位
7、某微机系统中8253的端口地址为250H~253H,如何用该定时/计数器将1MHz的脉冲变为1Hz的脉冲?画线路连接图,并编写初始化程序。
第 20 页 共 22 页