西工大 微机原理 试题 例题DOC.docx

上传人:b****6 文档编号:7312779 上传时间:2023-01-22 格式:DOCX 页数:15 大小:131.17KB
下载 相关 举报
西工大 微机原理 试题 例题DOC.docx_第1页
第1页 / 共15页
西工大 微机原理 试题 例题DOC.docx_第2页
第2页 / 共15页
西工大 微机原理 试题 例题DOC.docx_第3页
第3页 / 共15页
西工大 微机原理 试题 例题DOC.docx_第4页
第4页 / 共15页
西工大 微机原理 试题 例题DOC.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

西工大 微机原理 试题 例题DOC.docx

《西工大 微机原理 试题 例题DOC.docx》由会员分享,可在线阅读,更多相关《西工大 微机原理 试题 例题DOC.docx(15页珍藏版)》请在冰豆网上搜索。

西工大 微机原理 试题 例题DOC.docx

西工大微机原理试题例题DOC

例9.1设某系统中有两片8255A芯片,由74LS138译码器产生两个芯片的片选信号。

如图9.1所示,要求:

第一片8255A(J1)的A口工作在方式0输出,B口工作在方式0输入,C口高4位为输出,低4位为输入。

第二片8255A(J2)的A口为方式0输入,B口为方式1输出,C口高4位输出,C口低4位为B口控制信号。

(1)试指出两片8255A芯片各自的端口地址;

(2)试写出两片8255A芯片各自的方式控制字;

(3)试写出两片8255A芯片各自的初始化程序。

图9.1译码电路图

(1)根据译码电路图,可分析出:

J1的A、B、C和控制端口的地址分别为0138H、013AH、013CH、013EH。

J2的A、B、C和控制端口的地址分别为0130H、0132H、0134H、0136H。

(2)按照8255A方式控制字的格式,两片8255A的控制字分别为:

J1:

10000011BJ2:

10010100B或10010101B

(3)J1的初始化程序:

J2的初始化程序:

MOVDX,013EHMOVDX,0136H

MOVAL,83HMOVAL,94H(或95H)

OUTDX,ALOUTDX,AL

【评注】注意8255A方式控制字的标志为D7=1。

控制字要写入控制端口,这里由于端口地址为16位,输出指令中必须采用DX间接寻址。

例9.3某系统采用串行异步方式与外设通讯,发送字符格式由1位起始位、7位数据位、1位奇偶校验位和2位停止位组成,波特率为2200b/s。

试问,该系统每分钟发送多少个字符?

若选波特率因子为16,问发时钟频率为多少?

(1)因为发送字符格式由1位起始位、7位数据位、1位奇偶校验位和2位停止位组成,所以一帧数据长度为11位,而波特率为2200b/s,由此计算出该系统每秒钟发送2200÷11=200字符,每分钟为200×60=12000字符。

(2)发送时钟频率为2200×16=35200HZ。

例9.4图9.2为一利用8255A实现的打印机接口。

(1)设8255A的A口工作在方式0输入,B口工作在方式0输出。

写出初始化程序片段。

(2)写出查询方式下输出一个字符至打印机的程序片段(假设输出字符已经在AL中)。

图9.2打印机接口图

 

解根据接口图可知8255A的地址为200H~203H。

(1)8255A初始化程序:

MOVDX,0203H

MOVAL,10010001B

OUTDX,AL

(2)打印控制程序:

PUSHAX;暂存AL中的打印字符

MOVDX,0202H

WAIT:

INAL,DX;读C口内容

TESTAL,08H;测

信号

JZWAIT;打印机忙,则等待

MOVDX,201H

POPAX

OUTDX,AL;打印字符输出到B口

MOVDX,203H;从PC7发一个负脉冲,将

MOVAL,0EH打印字符锁入打印机

OUTDX,AL

MOVAL,0FH

OUTDX,AL

【评注】注意控制打印机的工作流程。

首先判断打印机忙否,若忙继续检测,否则就可以建立数据并发出选通,将数据锁入打印机。

其中打入锁存信号为一负脉冲,由软件产生,注意发脉冲信号的编程方法。

例9.5有如下接口原理图,如图9.3所示。

输入机启动一次输入一个数据;打印机启动一次打印一个数据。

要求从输入机输入一个数并存入存储器中,然后再由打印机将该数打印出来!

一共输入10个数,打印10个数。

图9.3接口图

编写出满足上述要求的源程序。

 

解由接口图分析可知,8255A的端口地址为E0H、E4H、E8H、ECH。

程序如下:

.MODELSMALL

.DATA

WPDB10DUP(?

.CODE

.STARTUP

MOVAL,83H

OUT0ECH,AL;初始化8255A

MOVCX,10;循环次数送CX

MOVBX,OFFSETWP

AGAIN:

MOVAL,00001111B

OUT0ECH,AL;启动输入机

PRT:

INAL,0E8H

TESTAL,08H;检测PC3,判断输入数据是否准备好?

JZPRT;若否,继续检测等待

INAL,0E4H;否则,读B口数据

MOV[BX],AL;送入内存单元

MOVAL,00001110B

OUT0ECH,AL;关闭输入机

PST:

INAL,0E8H

TESTAL,02H;检测PC1,判断打印机忙否?

JNZPST;若忙,继续检测等待

MOVAL,[BX]

OUT0E0H,AL;否则,刚存入内存的数据送入A口

MOVAL,00001001B

OUT0ECH,AL;启动打印机

MOVAL,00001000B

OUT0ECH,AL;断开打印机

INCBX

LOOPAGAIN

.EXIT

END

【评注】注意控制输入机的工作流程。

首先启动输入机,然后判断输入机是否将数据准备好,如果没有准备好,继续循环检测,否则读取数据。

打印机的工作流程同上题。

 

例9.6接口图如图9.4所示,设:

8259A边沿触发,八个中断类型码为60~67H。

写出对以内存DSR开始连续10个字节数进行打印的汇编程序片段。

注:

未用的地址线可设为0。

图9.4接口图

 

解根据接口图,8255A的A、B、C、控制口地址分别为8000H、8002H、8004H、8006H,B口工作在方式1。

8259A的地址为8028H和802AH。

;初始化8259A

MOVDX,8028H

MOVAL,13H

OUTDX,AL;ICW1

MOCDX,802AH

MOVAL,60H

OUTDX,AL;ICW2

MOVAL,01H

OUTDX,AL;ICW4

;建立中断向量表

PUSHDS

MOVAX,0

MOVDS,AX

MOVSI,OFFSETXY

MOVDI,SEGXY

MOV[018CH],SI

MOV[018EH],DI

POPDS

;初始化8255A

MOVDX,8006H

MOVAL,84H

OUTDX,AL

MOVAL,05H

OUTDX,AL;INTE置1

;循环10次

MOVCX,10

LEABX,DSR

W:

HLT

LOOPW

……

;中断服务程序

XY:

MOVAL,[BX]

MOVDX,8002H

OUTDX,AL

INCBX

IRET

【评注】由于中断源从8259A的IR3接入,故该中断源的中断类型码为63H,由此计算出中断向量地址为63H×4=018CH。

 

例9.7某系统中,8254芯片的计数器0,计数器1,计数器2及控制端口地址分别为70H,71H,72H,73H。

若利用计数器0对外部事件计数,其GATE接高电平,当计数计满3000次向CPU发出中断申请;且利用计数器1输出频率为100HZ的方波,CLK1=2MHZ。

试编写8254的初始化程序。

 

解根据题意分析,计数器0工作在方式0,计数置3000次;

计数器1工作在方式3,计数值n=20000=4E20H次

;8254初始化程序片段为:

MOVAL,21H

OUT73H,AL;设置计数器0的控制字

MOVAL,30H

OUT70H,AL;给计数器0送计数初值

MOVAL,76H

OUT73H,AL;设置计数器1的控制字

MOVAL,20H

OUT71H,AL

MOVAL,4EH

OUT71H,AL;给计数器1送计数初值

【评注】对每一个计数器,其控制字必须写在它的计数值之前。

计数值写入计数器的格式,必须按照控制字的RL1、RL0的规定格式来写。

 

例9.8有如下接口原理图,如图9.5所示。

要求发光二极管L0亮5秒后就熄灭;L1在K1启动后亮6秒后就熄灭;L2亮4秒灭4秒交替进行。

写出源程序片段(段定义语句可以省略)。

解由译码电路分析可知,8254芯片计数器0、计数器1、计数器2及控制端口的地址分别为91H,93H,95H,97H。

根据接口图及题目要求,8254的计数器0应该工作在方式0,计数初值N0=5000;计数器1应工作在方式1,N1=6000;计数器2应工作在方式3,N2=8000。

根据以上分析,可以编写出8254初始化程序。

图9.5接口图

8254初始化程序片段如下:

;初始化计数器0

MOVAL,21H

OUT97H,AL

MOVAL,50H

OUT91H,AL

;初始化计数器1

MOVAL,63H

OUT97H,AL

MOVAL,60H

OUT93H,AL

;初始化计数器2

MOVAL,0A7H

OUT97H,AL

MOVAL,80H

OUT95H,AL

四.接口设计题:

1.某系统中8254芯片的通道0~通道2和控制端口地址分别为FFF0H~FFF6H,定义通道0工作在方式2,CLK0=2MHZ,要求输出OUT0为1KHZ的速率波;定义通道1工作在方式0,其CLK1输入外部计数事件,每计满1000个向CPU发出中断请求。

试写出8254通道0和通道1的初始化程序。

 

解:

;8254通道0的初始化程序

MOVAL,00100101B

MOVDX,0FFF6H

OUTDX,AL

MOVAL,20H

MOVDX,0FFF0H

MOVDX,AL

;8254通道1的初始化程序

MOVAL,01100001B

MOVDX,0FFF6H

OUTDX,AL

MOVAL,10H

MOVDX,0FFF2H

OUTDX,AL

 

14.利用8254的2#计数器周期性地每隔10ms产生一次中断,已知CLK频率为2MHZ,试选择工作方式,并编写出相应初始化程序。

 

解答:

设2#计数器的地址为72H,控制寄存器的地址为73H。

根据题意要产生周期性的中断信号,可选择方式2。

计数初值:

n=10ms×2MHZ=20000=4E20H

初始化程序片段如下:

MOVAL,10110100B

OUT73H,AL

MOVAL,20H

OUT72H,AL

MOVAL,4EH

OUT72H,AL

 

 

18.有如下接口原理图,如图9.13所示。

要求发光二极管L1在K1启动后亮3秒钟就熄灭;发光二极管L2亮2秒灭2秒交替进行。

编写出简化汇编源程序。

图9.13接口图

解答:

据译码电路,8254的端口地址为B0H,B4H,B8H,BCH。

根据题目要求,经分析得出:

计数器1工作在方式1,计数初值N=6000;计数器2工作在方式3,计数初值N=8000。

初始化程序片段如下:

MOVAL,01100011B

OUT0BCH,AL

MOVAL,10100111B

OUTOBCH,AL

MOVAL,60H

OUT0B4H,AL

MOVAL,80H

OUT0B8H,AL

 

21.已知8254芯片的A0、A1分别连接到CPU的A0、A1上,要求该芯片的1#计数器输出频率为1KHZ的方波,CLK1=20MHZ,端口地址可合理假设,试编写8254的初始化程序。

 

解答:

假设端口地址为70H~73H,依题意:

1#计数器应选方式3,n=20000次=4E20H次,初始化程序片段如下:

MOVAL,01110110B

OUT73H,AL

MOVAL,20H

OUT71H,AL

MOVAL,4EH

OUT71H,AL

 

22.设8255A的A口工作在方式1,作为中断方式下的字符打印机的接口,此时,若CPU发出控制信号通过8255A的C口向打印机发出数据锁存信号,则CPU送来打印的数据被锁存到打印机等待打印。

打印机收到打印数据后向8255A发出应答信号。

此时8255A就发出中断请求,中断信号从8259A的IR3引入,中断类型号为5BH。

设中断服务程序必须装配在2000H:

2340H处。

I/O端口地址任选。

(1)试写出8255A的初始化程序;

(2)设8259A以固定优先权、完全嵌套、自动结束方式工作,试写出8259A的预置命令;

(3)用直接置入法,将中断服务程序的地址置入矢量表中;

(4)写出中断服务程序;

(5)画出连接线路图。

解答:

(1)假设8255A的端口地址为80H~83H,则初始化程序为:

MOVAL,0A0H;方式控制字

OUT83H,AL

MOVAL,0DH;INTE置1

OUT83H,AL

(2)假设8259A的地址为90H,91H,则预置命令:

MOVAL,13H;ICW1

OUT90H,AL

MOVAL,5BH;ICW2

OUT91H,AL

MOVAL,03H;ICW4

OUT91H,AL

(3)中断向量表的建立

PUSHDS

MOVAX,0

MOVDS,AX

MOVBX,offsetprinter;2340H

MOVWORDPTR[016CH],BX

MOVBX,segprinter;2000H

MOVWORDPTR[016EH],BX

POPDS

(4)中断服务程序:

PRINTER:

PUSHAX

STI

MOVAL,BL

OUT80H,AL

CLI

POPAX

IRET

(5)接口电路图如图:

 

23.设8253的通道2工作在计数方式,外部事件从CLK2引入,通道2每计若干个脉冲向CPU发出中断请求,CPU响应这一中断后继续写入计数值,重新开始计数,保持每1秒钟向CPU发出中断请求。

假设条件如下:

(1)8253的通道2工作在方式4;

(2)外部计数事件频率为1KHZ;

(3)中断类型号为54H;

(4)8253的通道0~通道2和控制端口地址分别为FFF0~FFF6H;

(5)用8212芯片产生中断类型号。

试编写程序完成以上任务,并画出硬件连接图。

程序如下:

PUSHDS

MOVAX,0

MOVDS,AX

MOVBX,OFFSETXY;XY为中断服务程序

MOVSI,SEGXY

MOV[0150H],BX

MOV[0152H],SI

POPDS

MOVDX,0FFF6H

MOVAL,10101001B;8254控制字

OUTDX,AL

MOVDX,0FFF4H

MOVAL,10H;计数器2的计数值为1000

OUTDX,AL

HLT

;中断服务程序:

XY:

MOVDX,0FFF4H

MOVAL,10H

OUTDX,AL

IRET

电路图如附图5。

附图5

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1