>8; TL0=(65536-5"/> >8; TL0=(65536-5"/>
首页 温湿度传感器am2302程序

温湿度传感器am2302程序

举报
开通vip

温湿度传感器am2302程序温湿度传感器am2302程序 定义三个C文件 主函数:main.c #include "STC15F2K.h" //#include "at89x51.h" #include "1602.c" #include "intrins.H" #include "shi.c" char DIS; void main(void) { P2=0x01; init(); EA=1; TR0=1; ET0=1; TMOD=0X01; TH0=(65536-50000)>>8; TL0=(65536-5...

温湿度传感器am2302程序
温湿度传感器am2302程序 定义三个C文件 主函数:main.c #include "STC15F2K.h" //#include "at89x51.h" #include "1602.c" #include "intrins.H" #include "shi.c" char DIS; void main(void) { P2=0x01; init(); EA=1; TR0=1; ET0=1; TMOD=0X01; TH0=(65536-50000)>>8; TL0=(65536-50000); DIS=2; while(1) { if(DIS>0) { DIS--; commd_SET(0x80); commd_DATA(str[0]/100%10+0x30); commd_DATA(str[0]/10%10+0x30); commd_DATA('.'); commd_DATA(str[0]%10+0x30); commd_SET(0xc0); commd_DATA(str[1]/100%10+0x30); commd_DATA(str[1]/10%10+0x30); commd_DATA('.'); commd_DATA(str[1]%10+0x30); } } } void time0() interrupt 1 { static i; TH0=(65536-50000)>>8; TL0=(65536-50000); if(++i>=50) { i=0; DIS=2; RH(); commd_SET(0x01); str[0]=(8<0;x--) for(y=110;y>0;y--); } /***********写指令*************/ void commd_SET(uchar com) { lcdrs=0; P0=com; delay_(5); lcden=1; delay_(5); lcden=0; } /***********写数据****************/ void commd_DATA(uchar date) { lcdrs=1; P0=date; delay_(5); lcden=1; delay_(5); lcden=0; } void display_china(char addr,char *p) { commd_SET(addr); while(*p!='\0') { commd_DATA(*p); p++; } } /***********初始化*****************/ void init () { lcden=0; lcdwr=0; commd_SET(0X38); commd_SET(0X0c); commd_SET(0X01); commd_SET(0X06);// hour=14;minute=41;second=51; } 数据采集函数shi.c typedef unsigned char U8; /* defined for unsigned 8-bits integer variable 无符号8位整型变量 */ typedef signed char S8; /* defined for signed 8-bits integer variable 有符号8位整型变量 */ typedef unsigned int U16; /* defined for unsigned 16-bits integer variable 无符号16位整型变量 */ typedef signed int S16; /* defined for signed 16-bits integer variable 有符号16位整型变量 */ typedef unsigned long U32; /* defined for unsigned 32-bits integer variable 无符号32位整型变量 */ typedef signed long S32; /* defined for signed 32-bits integer variable 有符号32位整型变量 */ typedef float F32; /* single precision floating point variable (32bits) 单精度浮点数(32位长度) */ typedef double F64; /* double precision floating point variable (64bits) 双精度浮点数(64位长度) */ #define uchar unsigned char #define uint unsigned int sbit P2_0 = P1^7 ; 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_t emp; U8 U8comdata; unsigned int str[6]={0}; void Delay(U16 j) { U8 i; for(;j>0;j--) { for(i=0;i<27;i++); } } //特别注意的是Delay_20us,不同单片机不一样 void Delay_20us(void)//STC15 { unsigned char i; _nop_(); _nop_(); _nop_(); i = 50; while (--i); } /* void Delay20us() //89c51系列@11.0592MHz { unsigned char i; _nop_(); i = 6; while (--i); } */ void COM(void) { U8 i; for(i=0;i<8;i++) { U8FLAG=2; while((!P2_0)&&U8FLAG++); Delay_20us(); Delay_20us(); Delay_20us(); U8temp=0; if(P2_0) { U8temp=1; } U8FLAG=2; while((P2_0)&&U8FLAG++); //超时则跳出for循环 if(U8FLAG==1)break; //判断数据位是0还是1 U8comdata<<=1; // 如果高电平高过预定0高电平值则数据位为 1 U8comdata|=U8temp; //0 }//rof } void RH(void) { //主机拉低18ms P2_0=0; Delay(180); P2_0=1; //总线由上拉电阻拉高 主机延时20us Delay_20us(); Delay_20us(); //主机设为输入 判断从机响应信号 //P2_0=1; //判断从机是否有低电平响应信号 如不响应则跳出,响应则向下运行 if(!P2_0) //T ! { U8FLAG=2; //判断从机是否发出 80us 的低电平响应信号是否结束 while((!P2_0)&&U8FLAG++); U8FLAG=2; //判断从机是否发出 80us 的高电平,如发出则进入数据接收状态 while((P2_0)&&U8FLAG++); //数据接收状态 COM(); U8RH_data_H_temp=U8comdata; COM(); U8RH_data_L_temp=U8comdata; COM(); U8T_data_H_temp=U8comdata; COM(); U8T_data_L_temp=U8comdata; COM(); U8checkdata_temp=U8comdata; P2_0=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; }//fi }//fi } 本程序调试成功的,可以参考下
本文档为【温湿度传感器am2302程序】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_977556
暂无简介~
格式:doc
大小:23KB
软件:Word
页数:9
分类:企业经营
上传时间:2017-09-26
浏览量:31