教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 教育文库 >

微机原理 周荷琴 答案

来源:网络收集 时间:2026-09-13
导读: 周荷琴版微机原理习题答案 第九章(并行接口,8255A) 4. 若8255A的系统基地址为2F9H,则8255A的三个端口和控制口地址各是多少?已知CPU的 系统总线为A9~A0,D15~D0,M/IO,IOR,IOW,RESET,试画出8255A的地址译码电路及它与CPU系统总线的连线图。 【解答

周荷琴版微机原理习题答案

第九章(并行接口,8255A)

4. 若8255A的系统基地址为2F9H,则8255A的三个端口和控制口地址各是多少?已知CPU的

系统总线为A9~A0,D15~D0,M/IO,IOR,IOW,RESET,试画出8255A的地址译码电路及它与CPU系统总线的连线图。

【解答】A、B、C和控制口的地址分别为:2F9H、2FBH、2FDH、2FFH。

5. 设8255A的的地址为:80H、82H、84H、86H。要求A口工作在方式0输出,B口工作在方

式0输入,C口高4位输入,低4位输出,试编写8255A的初始化程序。 【程序段】 mov al , 10001010b out 86h , al 6. 8255A的地址同5题,要求PC4输出高电平,PC5输出低电平,PC6输出一个正脉冲,试写

出完成这些功能的程序段。

【程序段】方法1:设置C口置位/复位字 mov al , 80h mov al , 0ch nop out 86h , al out 86h , al nop mov al , 09h nop mov al , 0ch out 86h , al nop out 86h , al mov al , 0ah mov al , 0dh out 86h , al out 86h , al 方法2:直接从C口输出数据 mov al , 80h out 86h , al mov al , 00010000b out 84h , al

nop

nop mov out

nop nop mov out

al , 01010000b 84h , al al , 00010000b 84h , al

7. 8255A的端口地址同5题,(a)若A口方式0输入,B口方式1输出,C口各位的作用是什么?

控制字是何?(b)若B口方式0输出,A口方式1输入,C口各位的作用是什么?控制字是何? 【解答】(a) PC1:OBFB,PC2:ACKB,PC0:INTRB,以上3位当联络信号,其余各位当输入/输出线。

控制字:1001×11×B (b) PC4:STBA,PC5:IBFA,PC3:INTRA,以上3位当联络信号,其余各位当输入/输出线。

控制字:1011×00×B 8. 若A口工作在方式2,B口方式0输入,C口各位的作用是什么?若A口工作在方式2,B口

方式0输出,C口各位的作用是什么? 【解答】(a)PC3:INTRA,PC4:STBA,PC5:IBFA,PC6:ACKA,PC7:OBFA;作为A口的联络信号;PC0~PC2:作B口的联络信号。 (b)PC3~PC7: 意义同上,PC0~PC2:作输入/输出线。 9. 8255的口地址为:80H~83H,8253 的口地址为84H~87H。

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

亮,断开时灯灭,要求每隔0.5秒检测一次开关状态,并在开关上显示出来,试画出硬件连线图,并编写出实现该功能的程序。 【方法1】中断方式。设8253的输入时钟频率为1MHz。将计数器0和1串接,从OUT1输出周期为0.5秒的负脉冲序列,用它作为中断源,接到8259A的IR2端(设中断类型是0AH)。每进入中断就检测一次开关状态。程序段如下:

周荷琴版微机原理习题答案

;8253初始化,计数器0为3方式,初值N1=10000;计数器1为2方式,初值N2=50。 mov al , 00110110b mov ax , 10000d mov al , 50d out 87h , al out 84h , al out 85h , al mov al , 01010100b mov al , ah out 87h , al out 84h , al

;8255A初始化,工作于0方式,A口输入,B口输出。 mov al , 10010000b out 83h , al

;设置中断向量,等待中断。 mov ax , 350ah in al , 21h cli ;关中断 int 21h ;取原IMR中内容 pop ax push es out 21h , al push ax ;压栈保存 push bx ;恢复原IMR的内容 and al , 11111011b push ds out 21h , al pop dx mov ax , seg int_pro pop ds ;写OCW1,打开IR2中断 mov ds , ax mov ax , 250ah wite_int: sti ;开中断 mov dx , offset int_pro int 21h jmp wite_int ;等待中断 mov ax , 250ah ;恢复原0AH类型的中断向量 mov ah , 0bh int 21h

mov ah , 4ch int 21h pop ds int 21h inc al

cli ;关中断

jnz wite_int

;允许8259A的IR2中断

;判断有无键按下,有则退出

;中断服务子程序 int_pro proc out 20h , al ;向8259A发EOI命令 in al , 80h;从A口检测开关状态 iret out 81h , al;从B口输出控制灯亮 mov al , 20h 【方法2】查询方式。8253的计数器1工作于方式2,OUT1输出接到8255A的PC4端,作为STBA信号。8255A的A口工作于方式1输入,B口工作于方式0输出。当PC4收到负脉冲后,开关状态信息被锁入A口的输入缓冲器中,它使IBFA置1。程序可查询状态字的IBFA或查询INTRA,当其为1时再执行A口输入指令,并从B口输出信号控制LED发光。接线:A口输入,接8个开关;B口输出接8个LED。开关闭合为0,打开为1;B口输出为0时LED亮,输出为1时LED灭。 连线图如下。

程序如下: ;

;8253初始化如【方法1】

;8255A初始化

周荷琴版微机原理习题答案

;(A口输入方式1,B口输出方式0) mov al , 10110000b out 83h , al ;控制程序 scan: mov ah , 1 ;有键按下? int 16h jnz exit ;有则退出程序 in al , 82 ;读C口状态字

test

jz in out jmp exit: mov int

al , 20h scan al , 80h 81h , al scan ah , 4ch 21h

;PC5(IBFA)=1 ;No,继续查询 ;读A口

;输出到B口

【方法3】查询负脉冲(这是非正规做法)。8253的计数器1工作于方式0,将OUT1输出接到8255A的PC0。8255A工作方式同上,但C口低4位输入。不断检测PC0,当其为1时检测开关状态并控制灯亮。当为0时对8253的计数器1重新写初值,启动计数器工作。程序如下: ;8255A初始化,工作于0方式,A口输入,B口输出,C口低4位输入 mov al , 10010001b out 83h , al

;8253初始化,计数器0为3方式,初值N1=10000;计数器1为0方式,初值N2=50。 mov al , 00110110b redo: mov al , 01010000b out 87h , al ;写方式字 out 87h , al ;写方式字 mov ax , 10000d nop

nop out 84h , al ;写初值

mov al , 50d mov al , ah

out 85h , al ;写初值 out 84h , al

;判断检测 in al , 82h int 21h and al , 01h inc al jz redo jnz redo mov al , 10010001b mov ah , 4ch out 81h , al int 21h mov ah , 0bh (2) 若把接在端口A上的开关去掉,要求接在B口的指示灯轮流熄灭,每只灯熄灭1秒钟。请编程

实现这种功能。

【方法1】查询方式,基本同上【方法2】。8255A的B口工作于方式1输出。8253的OUT1接到8255A的PC2端,当作ACKB信号。程序反复查询OBFB(PC1),当其为1时从B口输出数据控制指示灯亮。检测编程如下。

;8255初始化(B口工作于方式1输出) mov al , 10000100b out 83h , al

mov bl , 00000001b scan:

mov ah , 1 ;有键按下? int 16h jnz exit ;有则退出程序 in al , 82h ;读C口 test al , 02h ;PC1=1?

jz scan ;No 继续查询 mov al , bl

out 81h , al ;从B口输出 rol bl , 1 jmp scan exit:

mov ah , 4ch int 21h

【方法2】方法基本同上(方法3),不同点是8253的计数器1工作于方式2,要求不断探测PC0,当其为0时改变熄灭的灯。要注意,控制灯熄灭后要延时一段时间(0.5秒>T>0.01秒一个脉冲宽度)。 mov al , 10000001b out 83h , al ;8255A工作于0方式, B口输出,C口低4位输入

;8253初始化,计数器0为3方式,初值N1=10000;计数器1为2方式,初值N2=100。 mov al , 00110110b mov ax , 10000d out 87h , al …… 此处隐藏:3857字,全部文档内容请下载后查看。喜欢就下载吧 ……

微机原理 周荷琴 答案.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/110812.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)