西工大 微机原理 试题 例题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 接口图

相关文档
最新文档