问答题
【问题3】(8分)
图2-1中的连接可以简化,将AD574的CE和12/8(—)管脚接为高电平,而使CS和A0接地。此时只需要用R/C(—)来启动AD574的变换,然后通过查询STS状态来判断变换是否完成(AD574的STS管脚由高变低表明AD574变换完成)。对应的采集变换程序如下,最终结果是将变换好的数据放在BX中。请补全下面程序中的空(1)~(4),将答案填写在答题纸对应的栏目中。
;对8255初始化,此段程序放在应用程序开始的位置上
INT155:MOV DX,0063H
MOV AL, 10011010B ;8255的A口8位,B口8位,以及C口的高4位均设置为输入,C口的低4位设置为输出
OUT DX, AL ;控制字写入8255的控制寄存器
MOV AL, 00000001B
OUT DX, AL ;使用位控方式将PC0置位
;以下是对输入信号进行一次变换的程序
ACQUQ:MOV DX, 0062H
MOV AL, 0000000B
OUT DX, AL
MOV AL,(1)B ;二进制表示
OUT DX, AL ;由PC0输出低电平到高电平启动变换
NOP
NOP
WAITS: IN AL, DX ;取出AD574的STS状态
AND AL, (2) H ;判断变换是否结束,十六进制表示
JNZ WAITS
MOV DX,0060H
IN AL, DX ;读取A口取得A/D变换的低8位
MOV BL, (3) ;将A口获取的低8位放在BL中
MOV DX,0061H
IN AL, DX ;读取B口数据
AND AL, (4) H ;取AD574数据的高4位,十六进制表示
MOV BH,AL
RET