西工大 微机原理 试题 例题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
例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:10000011B J2:10010100B或10010101B (3)J1的初始化程序: J2的初始化程序: MOV DX,013EH MOV DX,0136H MOV AL,83H MOV AL,94H(或95H) OUT DX,AL OUT DX,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初始化程序:
MOV DX,0203H
MOV AL,10010001B
OUT DX,AL
(2)打印控制程序:
PUSH AX ;暂存AL中的打印字符 MOV DX,0202H
WAIT:IN AL,DX ;读C口内容
TEST AL,08H ;测BUSY信号
JZ WAIT ;打印机忙,则等待
MOV DX,201H
POP AX
OUT DX,AL ;打印字符输出到B口 MOV DX,203H ;从PC7发一个负脉冲,
将
MOV AL,0EH 打印字符锁入打印机
OUT DX,AL
MOV AL,0FH
OUT DX,AL
【评注】注意控制打印机的工作流程。首先判
断打印机忙否,若忙继续检测,否则就可以建立数据并发出选通,将数据锁入打印机。其中打入锁存信号为一负脉冲,由软件产生,注意发脉冲信号的编程方法。
例9.5有如下接口原理图,如图9.3所示。输入机启动一次输入一个数据;打印机启动一次打印一个数据。要求从输入机输入一个数并存入存储器中,然后再由打印机将该数打印出来!一共输入10个数,打印10个数。
图9.3 接口图
编写出满足上述要求的源程序。
解由接口图分析可知,8255A的端口地址为E0H、E4H、E8H、ECH。
程序如下:
.MODEL SMALL
.DATA
WP DB 10DUP(?)
.CODE
.STARTUP
MOV AL,83H
OUT 0ECH,AL ;初始化8255A
MOV CX,10 ;循环次数送CX
MOV BX,OFFSET WP
AGAIN:MOV AL,00001111B
OUT 0ECH,AL ;启动输入机
PRT:IN AL,0E8H
TEST AL,08H ;检测PC3,判断输入数据是否
准备好?
JZ PRT ;若否,继续检测等待
IN AL,0E4H ;否则,读B口数据
MOV [BX],AL ;送入内存单元
MOV AL,00001110B
OUT 0ECH,AL ;关闭输入机
PST:IN AL,0E8H
TEST AL,02H ;检测PC1,判断打印机忙否?
JNZ PST ;若忙,继续检测等待
MOV AL,[BX]
OUT 0E0H,AL ;否则,刚存入内存的数据
送入A口MOV AL,00001001B
OUT 0ECH,AL ;启动打印机
MOV AL,00001000B
OUT 0ECH,AL ;断开打印机
INC BX
LOOP AGAIN
.EXIT
END
【评注】注意控制输入机的工作流程。首先启动输入机,然后判断输入机是否将数据准备好,如果没有准备好,继续循环检测,否则读取数据。打印机的工作流程同上题。
例9.6接口图如图9.4所示,设:8259A边沿触发,八个中断类型码为60~67H。写出对以内存DSR开始连续10个字节数进行打印的汇编程序片段。
注:未用的地址线可设为0。
图9.4 接口图