王工在采用某16位嵌入式CPU进行A/D采集硬件电路设计时,利用8255控制器C

admin2022-08-02  27

问题 王工在采用某16位嵌入式CPU进行A/D采集硬件电路设计时,利用8255控制器C口中的PC0输出控制信号,利用PC7读入AD574的状态信号,利用A口和B口读入AD574转换好的12位数据。图2-1为该A/D采集硬件系统设计的部分连接示意图。其中,AD574各个管脚功能定义如表2-1所述。AD574的控制功能状态表如表2-2所示。8255控制器各个管脚及地址控制描述如表2-3所示。问题:2.1   在该嵌入式系统设计中,AD574是工作在12位转换模式还是8位转换模式? 问题:2.2   图2-1中245为双向缓冲器,在该硬件设计中配置8255控制字时,CPU需要向245进行数据输出(245的A口传输给B口);在获取AD采集数据时CPU需要接收245所传输过来的数据(245的B口传输给A口)。根据硬件设计,描述DR分别为高、低电平时,245双向缓冲器在A、B口之间进行数据传输的方向。 问题:2.3   在该A/D变换中,如果用1/2LSB(最低有效位)来表示量化误差,当该A/D控制器的量程范围为5V时,其量化误差是多大? 问题:2.4   王工根据上述硬件设计,编写对应的数据采集程序,首先需要对8255进行初始化,然后进行数据采集,请根据注释要求补全如下X86汇编程序。

选项

答案

解析 问题2.1、12位
问题2.2、DR=高电平时,A口传向B口;DR=低电平时,B口传向A口。
问题2.3、 5v/(4096*2)=0.61mv。

问题2.4、(1) #C003H   (2)#C002H    (3)#00H    (4)#01H(5)#80H    (6)#C000H    (7)#C001H    (8)#0FH


问题2.1、本题考查嵌入式硬件系统设计和基本的汇编程序编写知识。此类题目要求考生认真阅读题目,对题目中给出的原理图、器件描述等内容进行理解,根据原理图中所包含的硬件模块和原理设计,进行问题回答和程序补全。题目给出了主要器件的管脚功能描述和部分程序。在该嵌入式系统设计中,AD574是工作在12位转换模式还是8位转换模式依赖于AD574周边的管脚电路设计。从题目中已经给出的器件功能描述并结合原理图进行推断。从题目给出的器件描述中可以看出,根据AD574的A0管脚确定12位/8位模式,从原理图可以看出,A0接地,即低电平。结合AD574的功能描述,可以知道该系统设计中AD574工作在12位模式。

问题2.2、图2-1中245为双向缓冲器,在该硬件设计中配置8255控制字时,CPU需要向245进行数据输出(245的A口传输给B口);在获取AD采集数据时CPU需要接收245所传输过来的数据(245的B口传输给A口)。根据硬件设计图可以看出,当DR为高电平时,RD信号是无效的,也就是读信号无效,即此时为写信号有效。在写信号有效情况下,数据传输方向是从处理器向8255方向进行数据传输,即从A口传输给BP。反之如果RD为低电平时,此时RD信号有效,也就是读信号有效,既需要从外部将数据读入到CPU处理器中,即从8255进行数据读取,放到处理器中,所以方向应该是从B口传输到A口。

问题2.3、由于工作在12位,其范围为4096个刻度。另外考虑到采用1/2LSB作为量化误差,所以误差大小即为:5v/(4096*2)=0.61mv。

问题2.4、运行数据采集程序时,首先需要对8255进行初始化,然后进行数据采集。在该程序中,需要先进行8255的工作模式配置,由原理图和8255的工作模式可知,在该配置情况下,必须使得8255的A1A0=11,即工作在寻址控制器模式下,同时保证8255的片选有效,即必须使得A15=A14=1,A13=A12=All=…=A2=0才可以,所以此时需要给DPTR寄存器的地址为#C003H。

在进行数据采集过程中,需要先通过8255的C口进行AD574的转换控制,要对C口操作即需要A1A0=10,再考虑到片选的有效性,需要给DPTR的地址是#C002H。在进行一次数据转换时需要在PCO产生一个上升沿,所以要给C口输出配置为#00H和#01H。当从C口取出状态字后,需要借助C口的最高位STS进行转换完毕的状态判断,因此取出数据存在A寄存器后,需要和#80H进行与操作来判断最高位的完成状态。当判断有有效数据时候,需要分别从8255的A口和B口进行数据的获取,因此需要分别配置A口和B口的地址,依次为#C000H和#C001H。在进行12位数据合并时,只需要通过与操作取出低4位数据,和#OFH进行与操作即可。
转载请注明原文地址:https://www.tihaiku.com/congyezige/2424793.html

最新回复(0)