阅读以下说明,回答问题1至问题4,将解答填入答题纸的对应栏内。 【说明】 王工在采用某16位嵌入式CPU进行AiD采集硬件电路设计时,利用8255控制器C口中的PC0输出控制信号,利用PC7读入AD574的状态信号,利用A口和B口读入AD574转换

admin2017-11-27  32

问题 阅读以下说明,回答问题1至问题4,将解答填入答题纸的对应栏内。
【说明】
    王工在采用某16位嵌入式CPU进行AiD采集硬件电路设计时,利用8255控制器C口中的PC0输出控制信号,利用PC7读入AD574的状态信号,利用A口和B口读入AD574转换好的12位数据。图2-1为该A/D采集硬件系统设计的部分连接示意图。

其中,AD574各个管脚功能定义如表2-1所述。

AD574的控制功能状态表如表2-2所示。

8255控制器各个管脚及地址控制描述如表2-3所示。

王工根据上述硬件设计,编写对应的数据采集程序,首先需要对8255进行初始化,然后进行数据采集,请根据注释要求补全如下X86汇编程序。
    初始化8255程序如下:
    INIT8255:  MOV DPTR,    (1)    ;进行8255的工作模式配置
    MOV    A,    10011010B
    MOVX    @DPRT,  A
    MOV    A,0000000IB
    MOVX@DPRT,  A
    数据采集程序如下:
    ORG 0200H
    ACQU    NOP
    MOV DPTR,    (2)    ;通过8255的C口进行AD574的
    MOV    A,    (3)    ;转换控制
    MOVX    QDPRT,  A
    MOV    A,   (4)
    MOVX    @DPRT,  A
    WAIT:    MOVX    A,    @DPTR
    ANL    A,    (5)    :通过与操作判断AD转换是否完毕
    JNZ    WAIT
    MOV DPTR,    (6)    ;读取8255 A口的AD转换数据
    MOVX    A,    @DPTR
    MOV    R2,    A    ;有效数据存放在R2寄存器中
MOV DPTR,    (7)    ;读取8255 B口的AD转换数据
    MUVX    A,    @DPTR
    ANL     A,    (8)    ;提取A寄存器中有效的低4位数据
    MOV    R3,    A    ;4位有效数据存放在R3寄存器中
    RET

选项

答案(1)#C003H (2)#C002H (3)#00H (4)#01H (5)#80H (6)#C000H (7)#C001H (8)#0FH

解析 运行数据采集程序时,首先需要对8255进行初始化,然后进行数据采集。
    在该程序中,需要先进行8255的工作模式配置,由原理图和8255的工作模式可知,在该配置情况下,必须使得8255的A1 A0=11,即工作在寻址控制器模式下,同时保证8255的片选有效,即必须使得A15=A14=1,A13=A12=A11=…=A2=0才可以,所以此时需要给DPTR寄存器的地址为#C003H。
    在进行数据采集过程中,需要先通过8255的C口进行AD574的转换控制,要对C口操作即需要A1A0=10,再考虑到片选的有效性,需要给DPTR的地址是#C002H。
    在进行一次数据转换时需要在PC0产生一个上升沿,所以要给C口输出配置为#00H和#01H。
    当从C口取出状态字后,需要借助C口的最高位STS进行转换完毕的状态判断,因此取出数据存在A寄存器后,需要和#80H进行与操作来判断最高位的完成状态。
    当判断有有效数据时候,需要分别从8255的A口和B口进行数据的获取,因此需要分别配置A口和B口的地址,依次为#C000H和#C001H。
    在进行12位数据合并时,只需要通过与操作取出低4位数据,和#0FH进行与操作即可。
转载请注明原文地址:https://kaotiyun.com/show/0QWZ777K
0

相关试题推荐
最新回复(0)