微机原理习题-1 下载本文

内容发布更新时间 : 2024/6/27 0:51:25星期一 下面是文章的全部内容请认真阅读。

微机原理习题-1

1. 设8255A 的A 口、B 口、C 口和控制字寄存器的端口地址分别为80H 、82H 、84H 和86H 。

要求A 口工作在方式0 输出,B 口工作在方式0 输入,C 口高 4 位输入,低 4 位输出,试编写8255A 的初始化程序。 MOV AL ,10001010B ;方式控制字 OUT 86H ,AL

2. 8255A 的A 口、B 口、C 口和控制字寄存器的端口地址分别为80H 、82H 、84H 和86H,要求 PC4 输出高电平,PC5 输出低电平,PC6 输出一个正脉冲,试写出完成这些功能的指令序列。

MOV AL ,00001001B ;PC4 输出高电平 OUT 86H ,AL

MOV AL ,00001010B ;PC5 输出低电平 OUT 86H ,AL

MOV AL ,000001100B ;PC6 先输出低电平 OUT 86H ,AL

MOV AL ,00001101B ;PC6 再输出高电平 OUT 86H ,AL

MOV AL ,00001100B ;PC6 再输出低电平,形成一个正脉冲 OUT 86H ,AL

3. 8255A 的口地址为 80H~83H ,8253 的口地址为 84H~87H ,

(1 )若A 口接8 个开关K7~K0,B 口接8 个指示灯LED 7~LED0,当开关合上时相应的

指示灯亮,断开时灯灭,要求每隔0.5s 检测一次开关状态,并在LED上显示出来,试画出

硬件连线图,编写实现这种功能的程序。

(2 )若把接在端口 A 上的开关去掉,要求接在端口 B 上的指示灯轮流熄灭,每只灯熄灭 1

秒钟,请编程实现这种功能。

答:(1 )8255A :A 口输入,B 口输出 8253:2MHz/2Hz=1000000 通道0 工作于方式 2 ,取N0=1000

通道1 工作于方式 0 ,取N1=999,即得OUT1 每0.5秒中断一次。 本题用 8253 定时中断,中断处理时检测开关状态,并点亮相应的 LED 。 假设8259A 已初始化,主程序如下:

MOV AX, SEG INTR ;形成中断矢量表 MOV DS, AX

MOV DX, OFFSET INTR MOV AL, N MOV AH, 25H INT 21H

MOV AL, 10010000B ;8255初始化 OUT 83H, AL

MOV AL, 00110101B ;通道0 方式 2 ,BCD计数 OUT 87H, AL

MOV AL, 00H ;置初值1000 OUT 84H, AL MOV AL, 10H OUT 84H, AL

MOV AL, 01110001B ;通道1 方式 0 ,BCD计数 OUT 87H, AL

MOV AL, 99H ;置初值999 OUT 85H, AL MOV AL, 09H OUT 85H, AL STI

AGAIN:HLT JMP AGAIN