微机原理三导程序题.docx
- 文档编号:9023871
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:65
- 大小:34.42KB
微机原理三导程序题.docx
《微机原理三导程序题.docx》由会员分享,可在线阅读,更多相关《微机原理三导程序题.docx(65页珍藏版)》请在冰豆网上搜索。
微机原理三导程序题
E7.5
若8086系统中采用单片8259作为外部可屏蔽中断的优先级管理,正常全嵌套方式,边沿触发非缓冲连接,非自动中断结束端口地址为20h和21h其中某中断源的中断类型码为0ah,其中断服务子程序的入口地址为2000:
3A40H
请为8259a设置正确的初始化命令字,并编写初始化程序
请问本题中的中断源应与IR的哪一个输入端相连,其中断矢量地址为多少,矢量区对应的四个单元的内容是什么
MOVAL,l3H
0UT20H,AL
MOVAL,08H
OUT21H,AL
MOVAL,01H
OUT21H,AI
E7.6
主:
MOVAL,11H
MOVDX,140H
OUTDM,AL
MOVAL,08H
INCDX
OUTDX,AL
MOVAI,04H
OUTDX,AL
MOVAL,01H
OUTDX,AL
从:
MOVAL,11H
OUTDX,AL
MOVAL,70H
INCDX
OUTDX,AL
MOVAL,02H
OUTDX,AL
MOVAL,01H
OUTDX,AL
E7.7若以8259a以三片级联的方式管理22级中断
主:
MOVAL,11H
OUT80H,AL
MOVAL,60H
OUT81H,AL
MOVAL,01000100B
OUT8IH,AL
MOVAL,0000001IB
OUT81H,AL
从A:
MOVAL,1IH
OUT82H,AL
MOVAL,70H
OUT83H,AL
MOVAL,02H
OUT83H,AL
MOVAL,03H
OUT83H,AL
从B:
MOVAL,11H
OUT84H,AL
MOVAL,80H
OUT85H,AL
MOVAL,06H
OUT85H,AL
MOVAL,03H
OUT85H,AL
E7.8在ibmpc/xt系统中,通过读取isr的值
MOVAL,0BH
OUT20H,AL
NOP
INAL,20H
MOVAH,AL
ORAL,AH
JNZHW—INT
HW—INT:
INAI,21H
ORAL,AH
OUT2lH,AL
MOVAL,20H
0UT20H,AL
7.1在某应用中,8259a工作于正常完全嵌套方式,要求在为中断源ir4服务时,设置特殊屏蔽方式,开放较低级的中断请求,请编写有关的程序片段,已知8259a的端口地址为20h和21h
MOVAL,68H
OUT20H,AL
INAL,21H
ORAL,00010000B
OUT21H,AL
STI
...
CLT
INAL,21H
ANDAL,11101111B
OUT2IH,AL
MOVAL,48H
OUT20H,AL
…
MOVAL,20H
OUT20H,AL
IRET
7.2请为中断类型码为0fh的外部中断源设置中断矢量,中断服务子程序名为inter
MOVAX,0
MOVES,AX
MOVDI,0FH*4
MOVAX,OFFSETINTER
CLD
7.3是按照如下要求对8259a设置初始化命令字:
系统中有一片8259a,中断请求信号用电平触发方式,下面要用icw4设置嵌套及中断结束方式等状态,中断类型码为60h-67h用特殊全嵌套方式,无缓冲,采用自动中断结束方式。
8259a的端口地址为93和94h
MOVAL,00011011B
OUT94H,AL
MOVAL,01100000B
OUT93H,AL
MoVAL,0001001IB
OUT93H,AL
7.4
MOVAL,0
OUT21H,AL
INAL,21H
ORAL,AL
JNZERROR
MOVAL,0FFH
OUT21H,AL
TNAL,21H
ADDAL,l
JNZERROR
...
7.5某系统采用级联方式
主片初始化程序
MOVAL,0001000lB
OUT20H,AL
MOVAL,30H
OUT21H,AL
MOVAL,80H
OUT21H,AL
:
从片初始化程序
MOVAL,0001000IB
OUT22.H,AL
MOVAL,40H
OUT23H,AL
MOVAL,07H
OUT23H,AL
E9.4、如图所示为一利用8255A实现的打印机接口。
(1)设8255A的A口工作在方式0输入,B口工作在方式0输出。
写出初始化程序片段。
(2)写出查询方式下输出一个字符至打印机的程序片段(假设输出字符已经在AL中)。
(1)8255A初始化程序为:
MOVDX,203H
MOVAL,i0010001B
OUTDX,AI
(2)打印控制程序为:
PUSHAX
MOVDX,202H
WAIT:
INAL,DX
TESTAL,08H
JZWAIT
MOVDX,201H
POPAX
OUTDX,AL
MOVDX,203H
MOVAL,0EH
OUTDX,AL
E9.5接口原理如图所示,输入机启动一次输入一个数据;打印机启动一次打印一个数据。
要求从输入机输入一个数并存入存储器中,然后再由打印机将该数打印出来。
一共输入10个数,打印10个数。
编写满足上述要求的源程序。
【解】由接口图分析可知,8255A的端口地址为E0H、E4H、E8H、ECH。
程序如下:
:
MODELSMALL
.DATA
WPDB10DUP(?
)
.CODE
.STARTUP
MOVAL,83H
OUT0ECH,AL
MOVCX,10
MOVBX,OFFSETWP
AGAIN:
MOVAL,00001111B
OUT0ECH,AL
PRT:
INAL,0E8H
TESTAL,08H
JZPRT
INAL,0E4H
MOV[BXI,AL
MOVAL,00001110B
OUT0ECH,AL
PST:
INAL,0E8H
TESTAL,02H
JNZPST
NOVAL,[BXI
OUT0EOH,AL
MOVAI,00001001B
OUT0ECH,AL
MOVAL,00001000B
OUT0ECH,AL
INCBX
LOOPAGAIN
.EXIT
END
E9.6接口原理图如图所示,设:
8259A边沿触发,8个终端类型码为60~67H。
写出对以内存DSR开始连续10个字节数进行打印的汇编程序片段。
注意:
未用的地址线可设为0.
;初始化8259
MOVDX,8028H
MOVAL,13H
OUTDX,AL
MOVDX,802AH
MOVAL,60H
OUTDX,AL
MOVAL,03H
OUTDX,AL
;建立中断向量表
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置l
;循环10次
MOVCX,10
LEABX,DSR
W:
HLT
LOOPW
...
;中断服务程序
XY:
MOVAL,[BX]
MOVDX,8002H
OUTDX,AL
INCBX
IRET
E9.7、在某系统中。
8253芯片的计数器0、计数器1、计数器2及控制端口地址分别为70H,71H,72H,73H。
若利用计数器0对外部事件技术,其GATE接高电平,当计数计满3000次,向CPU发出中断申请;且利用计数器1输出频率为1000Hz的方波,CLK1=2MHz。
试编写8253的初始化程序。
;8253初始化程序片段
MOVAL,21H
OUT73H,AL
MOVAL,30H
OUT70H,AL
MOVAL,76H
OUT73H,AL
MOVAL,20H
OUT71H,AL
MOVAL,4EH
OUT71H,AL
E9.8接口原理图如图所示。
要求发光二极管L0亮5s后就熄灭;L1在K1,启动后亮6s后就熄灭;LZ亮4s灭4s交替进行。
写出源程序片段(可以省略段定义语句)。
,初始化计数器0
MOVAL,21H
OUT97H,AL
MOVAL,50H
OUT91H,AL
,初始化计数器1
MOVAL,63H
OUT97H,AL
MOVAL,60H
OUT93H,AL
,初始化计数器2
MOVAL,OA7H
OUT97H,AL
MOVAL,80H
OUT95H,AL
E9.9(不考)
E9.10(不考)
9.1某系统中8253芯片的通道0~通道2和控制端口的地址分别为FFF0H~FFF6H,定义通道0工作在方式2,CLK0=2MHz,要求输出OUT0为1MHz的速率波;定义通道1工作在方式0,其CLK1出入外部计数事件,每计满1000个向CPU发出中断请求。
试写出8253通道0和通道1的初始化程序。
;8253通道0的初始化程序
MOVAL,00100101B
MOVDX,0FFF6H
OUTDX,AL
MOVAL,20H
MOVDX,0FFF0H
MOVDX,AL
;8253通道1的初始化程序
MOVAL,011000001B
MOVDX,0FFF6H
OUTDX,AL
MOVAL,10H
MOVDX,0FFF2H
OUTDX,AL
9.2在某微机系统与CRT通信中,采用异步方式,设波特率为200bps,波特率因子为16,利用8253芯片产生发送和接受时钟。
设8253的通道1工作在方波方式,CLK1=1.2288MHz,试写出8253的初始化程序。
MOVAL,01110111B
OUT73H,AL
MOVAL,84H
OUT71H,AL
MOVAL,03H
OUT71H,AL
9.3(不考)
9.4、有一打印机引脚信号如图所示,请用8255A作为接口芯片,采用查询传送方式,写出连续打印10个字节数据的程序。
.MODELSMALL
.DATA
BLOCKDB1,2,3……
.CODE
.STARTUP
MOVBX,OFFSETBLOCK
MOVAL,10000010B
OUT53H,AL
MOVCX,10
INAL,5lH
TESTAL,04H
JZERR
INAL,51H
TESTAL,02H
JNZP1
MOVAL,51H。
TESTAL,01H
JNZP2
MOVAL,[BXJ
OUT50H,AL
MOVAL,00001100B
OUT53H,AL
INCBX
LP\OOPP1
.EXIT
END
9.5、某微机控制系统中扩展一片8255A作为并行口,如图所示。
其中,A口为方式1输入,以中断方式与CPU交换数据,中断类型号为0FH;B口工作于方式0输出,C口的普通I/O线作为输入。
请编写8255A的初始化程序,并设置A口的中断矢量。
;8255A初始化程序
MOVAL,10111001B
MOVDX,00B6H
OUTDX,AL
MOVAL,00001001B
OUTDX,AL
;中断矢量设置程序(使用串装入法)
MOVAX,0
MOVES,AX
MOVDI,0FH*4
MOVAX,OFFSETSERV
CLD
STOSW
MOVAX,SEGSERV
STOSW
9.6、设8255A的4个端口地址为00C0H,00C2H,00C4H和00C6H,要求用置位/复位方式对PC6置1,对PC4清0。
MOVDX,00C6H
MOVAL,00001101B
OUTDX,AL
MOVAL,00001000B
OUTDX,AL
9.7、对8255A设置工作方式,8255A的控制端口地址为00C6H。
要求端口A工作在方式1输入,端口B工作在方式0输出,端口C的普通I/O线为输入。
MOVAL,1011100IB
MOVDX,00C06H
OUTDX,AL
9.8、编程将8253的计数器0设置为方式0,计数初值为3000H;计数器1设置为方式2,计数初值为2010H;计数器2设置为方式4,计数初值为50,8253的端口地址为3B0H~3B3H。
ADDREQU3B0H
MOVDX,ADDR+3
MOVAL,00110010B
OUTDX,AL
MOVDX,ADDR
MOVAL,0
OUTDX,AL
MOVAL,30H
OUTDX,AL
MOVDX,ADDR+3
MOVAL,01110100B
OUTDX,AL
MOVDX,ADDR+1
MOVAL,10H
OUTDX,AL
MOVAL,20H
OUTDX,AL
MOVDX,ADDR+3
MOVAL,10011001B
OUTDX,AL
MOVDX,ADDR+2
MOVAL,50H
OUTDX,AL
9.9、用8255A作为A/D并行接口,如图所示。
8255A的A口工作于方式1,为输入口,端口C的PC7位设定为输出端,与A/D转换器的转换启动信号相连,由PC7端产生正脉冲信号以启动A/D转换。
A/D的转换结束端经反相后作为采样保持器的控制信号,并且转换结束端经下降沿触发单稳电路,再经反相输出一个负方波的波形到PC4端,作为端口A的数据输入锁存信号,将A/D转换结果存入A口的数据输入寄存器。
假设8255A的A、B、C和控制寄存器的I/O地址为别为300H、301H、302H、303H。
写出8255A的初始化程序及启动A/D转换的程序片段。
(I)8255A的初始化程序如下所示。
MOVDX,303H
MOVAL,10110000B
OUTDX,AL
(2)启动A/D转换器及读取转换数据
MOVDX,303H
MOVAL,0000111IB
OUTDX,AL
MOVAL,00001110B
OUTDX,AL;
MOVDX,302H
AGAIN:
INAL,DX
TKSTAL,00010000B
JZAGAIN
MOVDX,300H
INAL,DX
9.10(不考)
9.11(不考)
9.12、设有某微机控制系统,采用定时器8253产生定时中断信号,CPU响应中断后便执行数据采集、数字滤波和相应的控制算法,以控制输出,如图所示。
采用两个计数器串联的方式实现定时控制。
一旦定时时间到,OUT1信号由高变低,经反向送8259A的IR2。
IR2的中断类型码为0AH,中断处理程序首地址存储在28H~2BH。
8253端口地址为230H~233H。
试编制8253的初始化程序及设置中断处理程序首地址程序段。
CS8253DW230H。
TIMEDBxxH
MOVBx,DS:
CS8253
MOVDX,BX
ADDDX,03H
NOVAL,14H
OUTDX,AL
MOVDX,BX
MOVAL,0
OUTDX,AL
ADDDX,03H
MOVAL,54B
OUTDX.AL
ADDBX,01H
MOVDX,BX
MOVAL,DX:
BYTEPTRTIME
OUTDX,AL
CLI
NOVAX,0
MOVES,AX
MOVDI,28H
MOVAX,OFFSETINTER
CLD
STOSW
MOVAX,SEGINTER
STOSW
STI
9.13、试编程,将8253计数器0设置为方式1,计数初值为3000,计数器1设置为方式2,计数初值为2010H,计数器2设置为方式4,计数初值为4030H。
MOVAL,00100011B
OUT73H,AL
NOVAL,30H
OUT70,AL
NOVAI,01110100B
OUT73H,AL
NOVAI,10H
OUT71H,AL
MOVAL,20H
OUT71H,AL
MOVAL,10111000B
OUT73H,AL
MOVAL,30H
OUT72H,AL
MOVAL,40H
OUT72H,AL
9.14、利用8253的2#计数器周期性地每隔10ms产生一次中断,已知CLK频率为2MHz。
试选择工作方式,并编写出相应的初始化程序。
(选择方式2)
MOVAL,10110100B
OUT73H,AL
MOVAL,20H
OUT72H,AL
MOVAL,4EH
OUT12H,AL
9.15、如图所示为开关状态检测电路和继电器控制电路。
当开关K闭合是,将驱动对应的继电器(即动作);若开关处于断开状态,则无电流流过继电器线圈,继电器不动作。
若系统每隔10ms检测一次开关状态和对继电器做相应控制,定时控制又8253完成,试编写对应8255A的初始化程序(初始状态时应保证继电器不动作)和完成上述功能的检测、控制程序。
...
CLI
MOVAL,10000010B
OUTCS8255+3,AL
MOVAL,00H
OUTCS8255,AL
MOVAL,00110000B
OUTCS8253+3,AL
MOVAX,20000
OUTCS8253,AL
MOVAL,AH
OUTCS8253,AL
STI
INTCHECK:
PROCNEAR
PUSHAX
INAL,CS8255+1
OUTCS8255,AL
MOVAX,20000
OUTCS8253,AL
MOVAL,AH
OUTCS8253,AL
POP
IRET
INTCHECKENDP
9.16、利用8255A作为CPU与打印机的接口,硬件连线如图所示。
若要打印字符‘A’,试编写此接口程序(STB为选通信号,BUSY为忙信号)。
MOVAL,81H
OUT9CH,AL
W:
INAK,98H
TESTAL,08H
JNZW
MOVAL,‘A’
OUT90H,AL
MOVAL,0EH
MOV9CH,AL
INCAL
OUT9CH,AL
9.17、接口原理图如图所示。
设8255A的A口地址为50H,B口地址为51H,C口地址为52H,控制端口地址为53H。
输入机和输出机(打印机)启动信号为高电平,Ready为输入机就绪信号;BUSY为打印机“忙”信号。
要求编写出从输入机连续输入100个数据并存入存储器中,再由打印机打出该100个数据的简化汇编源程序。
.MODELSMALL
.DATA
BLOCKDB100DUP(?
)
.CODE
.STARTUP
MOVAL,10010001B
OUT53H,AL
MOVCX,64H
LEABX,BLOCK
X:
MOVAL,00001001B
0UT53H,AL
W1:
INAL,52H
TESTAL,01H
JZW1
INAL,50H
MOV[BX],AL
INCBX
MOVAL,08H
OUT53H,AL
LOOPX
MOVCX,100
LEABX,BLOCK
W2:
INAL,52H
TESTAL,04H
JNZW2
MOVAL,[BX】
OUT5lH,AL
INCBX
MOVAL,0000110lB
OUT,53H,AL
MOVAL,00001100B
OUT53H,AL
LOOPW2
.EXIT
END
9.18、接口原理图如图所示。
要求发光二极管L1在K1启动后亮3s就熄灭;发光二极管L2亮2s灭2s交替进行。
编写简化汇编源程序。
MOVAL,01100011B
OUT0BCH,AL
MOVAL,10100111B
OUT0BCH,AL
MOVAL,60H
OUT0B4H,AL
MOVAL,80H
OUT0B8H,AL
9.19、接口连接图如图所示,写出向打印机输出字符‘A’的接口程序。
提示:
当CPU的A0和A1均为0时,BE0=0。
MOVAL,10001000B
OUT9CH,AL
Wl:
INAL,98H
TESTAL,20H
JNZWl
MOVAL,‘A’
OUT94H,AL
MOVAL,02H
OUT9CH,AL
MOVAL,03H
OUT9CH,AL
9.20、接口连接图如图所示,写出连续向打印机输送10个字节的程序。
提示:
当CPU的A0和A1均为0时,BE0=0。
.MODELSMALL
.DATA
BLOCKDB10DUP(?
)
.CODE
.STARTUP
MOVAL,81H
OUT9CH,AL
MOVBX,OFFSETBLOCK
MOVCX,10
W:
INAL,98H-
TESTAL,02H
JNZW
MOVAL,[BXl
OUT90H,AL
MOVAL,09H
OUT9CH,AL
DECAL
OUT9CH,A
INCBX
LOOPW
.EXIT
END
9.21、已知8253芯片的A0和A1上分别连接到CPU的A0和A1上,要求该芯片的1#计数器输出频率为1kHz的方波,CLK1=20MHz,可合理假设端口地址。
试编写8253的初始化程序。
MOVAL,01110110B
OUT73H,AL
MOVAL,20H
OUT71H,AL
MOVAL,4EH
OUT71H,AL
9.22、设8255A的A口工作在方式1,作为中断方式下的字符打印机的接口,此时,若CPU发出的控制信号通过8255A的C口向打印机发出数据锁存信号,则CPU送来打印的数据被锁存到打印机等待打印。
打印机收到打印数据后向8255A发出应答信号,此时8255A就发出中断请求,中断信号从8259A的IR3引入,中断类型号为5BH。
设中断服务程序必须装配在2000H:
2340H处。
I/O端口地址任选。
(1)试写出8255A的初始化程序。
(2)设8259A以固定优先权、完全嵌套、自动结束方式工作,试写出8259A的预置命令。
(3)用直接置
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 程序
![提示](https://static.bdocx.com/images/bang_tan.gif)