毕设论文-机房环境参数监控系统(软件设计) - 图文 联系客服

发布时间 : 星期六 文章毕设论文-机房环境参数监控系统(软件设计) - 图文更新完毕开始阅读34ac915da417866fb84a8eaf

北华航天工业学院毕业论文

//----------------IO口定义区--------------------// //----------------------------------------------// sbit DQ = P3^0 ;

//----------------------------------------------//

//----------------定义区--------------------// //----------------------------------------------// U8 U8FLAG,k; U8 U8count,U8temp;

U8 U8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L,U8checkdata; U8

U8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp,U8RH_data_L_temp,U8checkdata_temp;

U8 U8comdata;

U8 outdata[5]; //定义发送的字节数 U8 indata[5]; U8 count, count_r=0; U16 U16temp1,U16temp2; //以上为变量的定义. void COM(void);

void Delay2(U16 j) //延时函数 { U8 i; for(;j>0;j--) { }

void Delay_10us(void) //延时10us的延时函数. { U8 i; i--; i--; i--;

for(i=0;i<27;i++);

}

33

北华航天工业学院毕业论文

i--; i--; i--;

}

void COM(void) {

U8 i;

for(i=0;i<8;i++) {

U8FLAG=2; Delay_10us(); Delay_10us(); U8temp=0;

while((!DQ)&&U8FLAG++);

Delay_10us();

if(DQ)U8temp=1;

U8FLAG=2;

while((DQ)&&U8FLAG++);

//超时则跳出for循环 if(U8FLAG==1)break; //判断数据位是0还是1

// 如果高电平高过预定0高电平值则数据位为 1 U8comdata<<=1; //左移1位

U8comdata|=U8temp; //U8comdata与U8temp相或,结果保存在U8comdata中.

} }

//-------------------------------- //-----湿度读取子程序 ------------ //-------------------------------- //----以下变量均为全局变量--------

//----温度高8位== U8T_data_H------ //----温度低8位== U8T_data_L------

34

北华航天工业学院毕业论文

//----湿度高8位== U8RH_data_H----- //----湿度低8位== U8RH_data_L----- //----校验 8位 == U8checkdata----- //----调用相关子程序如下---------- //---- Delay();, Delay_10us();,COM(); //-------------------------------- void RH(void) {

//主机拉低18ms DQ=0; Delay2(180); DQ=1;

//总线由上拉电阻拉高 主机延时20us Delay_10us(); Delay_10us(); Delay_10us(); Delay_10us();

//主机设为输入 判断从机响应信号 DQ=1;

//判断从机是否有低电平响应信号 如不响应则跳出,响应则向下运行 if(!DQ) //T !

{

U8FLAG=2;

//判断从机是否发出 80us 的低电平响应信号是否结束

while((!DQ)&&U8FLAG++); U8FLAG=2;

//判断从机是否发出 80us 的高电平,如发出则进入数据接收状态 while((DQ)&&U8FLAG++); //数据接收状态

COM(); //调用COM函数 U8RH_data_H_temp=U8comdata;

COM();

U8RH_data_L_temp=U8comdata;

35

北华航天工业学院毕业论文

COM();

U8T_data_H_temp=U8comdata; COM();

U8T_data_L_temp=U8comdata; COM();

U8checkdata_temp=U8comdata; DQ=1; //数据校验

U8temp=(U8T_data_H_temp+U8T_data_L_temp+U8RH_data_H_temp+U8RH_data_L_temp);

if(U8temp==U8checkdata_temp) {

U8RH_data_H=U8RH_data_H_temp; U8RH_data_L=U8RH_data_L_temp;

U8T_data_H=U8T_data_H_temp;

U8T_data_L=U8T_data_L_temp; U8checkdata=U8checkdata_temp; }//对数据作出相应的处理与运算. } }

2、LCD1602

1602将接受来的信息进过字符转换,反馈到了液晶屏上面,同时我们可以根据需要加减所学要的预设湿度值。

#include #include #define uint unsigned int

define uchar unsigned char

void delay(uint z) //延时函数 {

uint a,b; for(a=z;a>0;a--) for(b=120;b>0;b--);

36