数字温湿度变送器自动标定仪设计论(4)

2019-04-08 20:10

第4章 软件程序设计

4.1主程序

首先,单片机通过单总线接收来自数字接口温湿度变送器和作为基准的AMS2302数字温湿度传感器采集到的数据(其中数字接口温湿度变送器湿度部分直接传送电容式传感器HS1101和TLC555芯片组成的振荡电路所给出的频率)。然后将两者的数据进行比较计算得出需要的标定值传输给数字接口温湿度变送器。程序流程图如下:

- 16 -

图3.4

4.2 主程序代码 #include<12C5A.TXT> #include #include #include \#include //-------------------------

typedef unsigned char BYTE; typedef unsigned int WORD; WORD

tem=257;

BYTE hum=58;

//555

//---------------------------- WORD tem_2301 = 241;

WORD

hum_2301 = 657; //2301

BYTE code t[]={\BYTE code rt[]={\BYTE tempra_2301[4]; BYTE humini_2301[4]; uchar tempra[4]; uchar humini[2];

- 17 -

//---------------------------------------------------- void delay(WORD i) //延时约x个ms { WORD j; for(i;i>0;i--)

for(j=950;j>0;j--);

}

void delaytime(WORD i) //延时约x个ms { while(i--){

_nop_ ();

_nop_ (); }}

//-----------------2301------------------------ sbit wire = P3^4; void check_rt()

//读数据准备信号

{ P3M1 = 0XFF; P3M0 = 0XFF; wire = 0; delaytime(600); //延时*us

wire = 1; delaytime(16); // 31us

_nop_ ();

_nop_ ();

- 18 -

_nop_ (); P3M1 = 0XFF; P3M0 = 0X00; while(wire); // 等待2301拉低

_nop_ ();

_nop_ ();

//低

_nop_ ();

while(!wire); // 等待拉高

_nop_ ();

_nop_ ();

//高

_nop_ ();

while(wire); // 等待2301拉低

_nop_ ();

_nop_ ();

_nop_ ();

}

//--------------------------------------------- BYTE redata_2301() //接收一位数据{ WORD WEI;

TH0 = 0; TL0 = 0;

EA = 0;

- 19 -

while(!wire); TR0 = 1; while(wire); TR0 = 0; EA = 1; if(TL0>50)

WEI = 1;

else WEI = 0; return WEI;

}

//------------------------------------------- BYTE read_byte_2301() //接收一个字节{ BYTE dat = 0;

BYTE temp; BYTE a; int i = 7; while(i>=0)

{ a = redata_2301(); temp = a<

}

- 20 -


数字温湿度变送器自动标定仪设计论(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:酒精测试仪毕设

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: