ADuC841片内A/D转换
0赞
发表于 12/14/2011 10:22:10 AM
阅读(4263)
ADuC841片内的ADC模块进行A/D转换,该部分的主要功能是将模拟量转换为数字量,根据测量的电压值求出对应的温度值。A/D子程序流程图如图4-2所示。由测量电桥输出的随温度变化的电压信号经放大后,进入ADC转换模块将模拟量转换为数字量,通过查表子程序求出所对应的温度值,并将该温度值存储在存储区内,为以后其它模块的处理

A/D转换流程图
提供数据。在使用查表子程序时,表格存放在程序存储器内,单片机用查表指令读出表格内的数值,在ADuC841的指令系统中,提供了两条极有用的查表指令:MOVC A,@A+PC、MOVC A,@A+DPTR。在这里使用MOVC A,@A+DPTR,因为使用该指令时不必计算偏移量,而且表格可以设在64K程序存储器空间内的任何地方,而不必像MOVC A,@A+PC那样只设在PC下面的256个单元中,所以使用比较方便。须注意的是,如果该指令若已被使用,则在进入查表以前必须保护DPTR,并且结束以后恢复DPTR。转换过程如下:进入A/D子程序之后,为了不影响其它部分程序内各寄存器中的内容,需要进行现场保护,把一些在本程序中要用到的寄存器中的内容先保存起来,接着设置ADC的控制字、选择转换通道、开中断,然后启动一次单步转换,再将转换结果存入寄存器中,同时送入待显示单元,以供显示子程序调用,根据预先设置的表格查出所测的温度值,恢复现场,完成A/D转换。
