基于数字温度传感器的单片机温度测控系统设计_孔夫子大爷的空间
基于数字温度传感器的单片机温度测控系统设计





1 程序设计思想
在应用数字温度传感器的单片机(简称MCU)温度测控系统中,数字温度传感器把被测温度转换为带符号位的二进制数据,MCU从传感器读入这些表示温度高低的二进制数据时,必须先经过数字滤波xx干扰的影响,而读入这些二进制数据后一般要按照预定的算法完成一些运算,{zh1}得到控制信号从MCU的I/O囗输出。常用的半导体数字温度传感器有AD7416、DS18B20等,它们能把温度(-55℃~+125℃)转换为补码形式的二进制数。如图1所示,这是一个温度测控系统的部分电路原理图,图中AD7416是美国AD公司生产的半导体数字温度传感器,它具有I2C串行总线接囗。按照系统设计要求,MCU需要通过AD7416采样温度256次,每一次温度采样后求温度值的累加和,16bit的累加和存放在MCU的内存单元27H、28H中,当温度采样到256次时,求温度的算术平均值并将其转换为BCD码保存到MCU的内存单元4CH、4DH中。



从计算机原理可知,引入补码后,在PC机中减法是通过加法来实现的。可以证明y-x=y+[-x]补 ,在完成等式右边的加法运算时应舍弃可能产生的进位。根据这个道理,本系统温度采样后得到的8bit温度值(补码形式,已存放在累加器A中)累加到27H、28H单元的方法应该是:
⑴   若A为正数,则完成下列运算
[(27H)(28H)]+A→[(27H)(28H)]
⑵   若A为负数(已用补码表示),则应把8bit的负数转换为16bit的补码,然后将16bit的补码累加到27H、28H单元中。将8bit的负数转换为16bit的补码方法是,在8bit的负数前面添加0FFH作为高8位从而扩展成为16bit的补码。
2 温度采样子程序流程框图
温度采样子程序流程框图如图2所示,该子程序流程框图是结合MCS—51汇编语言的特点而绘制出来的,根据该流程框图,不难写出相应的MCS—51汇编语言温度采样子程序。



入囗参数:无
出囗参数:27H、28H是温度值累加和;4BH单元存放温度平均值的“+、-”符号的ASCII码;4CH、4DH单元存放温度平均值的十位、个位(BCD码)。
占用资源:累加器A;寄存器B;MCU的内存单元25H、26H、27H、28H、4CH、4DH。
3 温度采样子程序清单
SAMPLE:   PUSH B
    PUSH PSW
         LCALL SAMPLEBY
       MOV 25H,#0
   JNB ACC.7,LOOP1
       DEC 25H
LOOP1:   ADD A,28H
       MOV 28H,A
       MOV A,27H
       ADDC A,25H
       MOV 27H,A
       DJNZ 26H,LOOP5
       MOV 26H,#8
LOOP2:   MOV A,27H
       RRC A
       MOV 27H,A
       MOV A,28H
       RRC A
       MOV 28H,A
       DJNZ 26H,LOOP2
       MOV 26H,#0
       MOV A,28H
       MOV 27H,#0
       MOV 28H,#0
       MOV B,#0AH
       JB ACC.7,LOOP3
       MOV 4BH,#02BH
       SJMP LOOP4
LOOP3:    CPL A
       INC A
       MOV 4BH,#02DH
LOOP4:    DIV AB
       MOV 4CH,A
       MOV 4DH,B
LOOP5:   POP PSW
    POP B
         RET



郑重声明:资讯 【基于数字温度传感器的单片机温度测控系统设计_孔夫子大爷的空间】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——