欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    温湿传感子程序计算机Labview_计算机-Labview.pdf

    • 资源ID:95397047       资源大小:126.18KB        全文页数:4页
    • 资源格式: PDF        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    温湿传感子程序计算机Labview_计算机-Labview.pdf

    include,rioCC2530.h,r#define uchar unsigned char#define uint unsigned int#define DHT11_DATA Pl_2 温湿度传感器数字输出口 uchar Overtime_counter;/判断等待是否超时的汁数器。利用 uchar 型的数值范围进展自动 延时控制(时长由初值决定),并判断是否超时 uchar bitvalue;从 DATA 总线上读到的位值 uchar T_dan_H.T_d&_LRH_dMa_HRH_data_L,checkda(a;/校验过的温度高 8 位,温度低 8 位,湿度高 8 位,湿度低 8位,校验和 8 位 uchar T_data_Hjemp,T_data_L_temp,RH_data_Hjemp.RH_data_L_tenip.checkdata_temp;/未经校验的数据 uchar comdatay/从 DHT11 读取的一个字节的数据 void initUART(void);void UartTX_Send_String(uchar*Datajnt len);uchar table16;延时函数 void Delay_l Ous(void)uchar i;for(i=0;i0;i-)for(j=0;j10;j+)Delay_10us();串口初始化 void initUARTtest(void)CLKCONCMD&=-0 x40;晶振 while(!(SLEEPSTA&0 x40);/等待晶振稳泄 CLKCONCMD&=0 x47;/TICHSPD128 分频,CLKSPD 不分频 SLEEPCMD 1=0 x04;关闭不用的 RC 振荡器 PERCFG=0 x00;位置 1 P0 口 POSEL=0 x3c;/P0 用作串口 P2DIR&=0XC0;/P0 优先作为串口 0 UOCSR 1=0 x80;/UART 方式 UOGCR 1=10;/baud_c UOBAUD 1=216;波特率设为 57600 UTXOIF=0;)/串口发送字符串函数 void UartTX_Send_String(uchar*Data,int len)intj;for(j=0;jlen;j+)UODBUF=Paia 卄;while(UTXOIF=0);UTXOIF=0;从 DHT11 读取一个字节函数 void Read_Byte(void)uchar i;for(i=0;i8;i 卄)循环 8 次,读取 8bit 的数据(Overtime_counter=2;/读取并等待 DHT11 发岀的 12-14us低电平开场信号 PlDIR=OxOO;while(!DHTl 1_DATA)&O vertime_counter+);DelayOus();DelayOus();Delay_10us();Delay_10us();Delay_10us();Dclay_10us();Dclay_10us();Dclay_10us();/50us 的低电平再加上26-28us的髙电平判断上下电平 bit_vahic=O:/跳过门限后判断总线是高还是低,高为 1,低为 0 if(DHTll_DATA)bit_value=l;Overtime_counter=2 JI 等待 lbit 的电平信号完毕,不管是 0 是 1 在 118us 后都变为低电 平,否那么错误超时 whilc(DHTl 1_DATA)&Overtime_counter+);/i U8FLAG 加到 255 后溢岀为 0,跳出 循环,并后加加为 1 if(Overtime-counter=1)break;超时那么跳岀 for 循环 comdata=l;/左移 1 位,LSB 补 0 是否超时从总线上读到的位值校验过的温度高位温度低位湿度高位湿度低位校验和位未经校验的数据从读取的一个字节的数据延时函数卄延时晶振大约为串口初始化晶振等待晶振稳泄分频不分频关闭不用的振荡器位置口用作串口优电平开场信号的低电平再加上的髙电平判断上下电平跳过门限后判断总线是高还是低高为低为等待的电平信号完毕不管是是在后都变为低电平否那么错误超时加到后溢岀为跳出循环并后加加为超时那么跳岀循环左移位补赋值读取个应信号判断从机是否有低电平响应信号如不响应那么跳岀响应那么向下运行判断发出的的低电平响应信号是否完毕判断是否发出的髙电平如发岀那么进入数据接收状态读取湿度值整数局部的高读取湿度值小数局部的低读取温度值整comdatal=bit_value;/LSB 赋值 读取 5 个字节的函数 void Read_DHTll(void)uchar checksum;PlDIR=0 x04;DHT1 l.DATA=0;/主机拉低 18ms Dclay_100us(180);DHT11_DATA=1;总线由上拉电阻拉髙 主机延时 20us-40us DelayOus();DelayOus();DelayOus();DelayOus();DHTU_DATA=1;/主机转为输入或者输岀髙电平,DATA 线由上拉电阻拉高,准备判断 DHT11 的响应信号 PlDIR=0 x00;if(!DHTll_DATA)/判断从机是否有低电平响应信号如不响应那么跳岀,响应那么向下 运行 Overtime_counter=2;/判断 DHT11 发出的 80us 的低电平响应信号是否完毕 while(!DHTl 1_DATA)&Ovcrtimc_coumcr+);Overtime_counter=27/判断 DHT11 是否发出 80us 的髙电平,如发岀那么进入数据接收 状态 whilc(DHTl 1_DATA)&O vert i me.coun ter+);Read_Byte();/读取湿度值整数局部的高 8bit RH_data_H_temp=comdata;Rcad_Bytc();读取湿度值小数局部的低 8bit RH_data_L_temp=comdata;Read_Byte();/读取温度值整数局部的髙 8bit T_data_H_temp=comdata;Rcad_Bytc();读取温度值小数局部的低 8bit T_data_Ljemp=comdata;Read_Byte();/读取校验和的 8bit checkdata_temp=comdata;PlDIR=0 x04;DHTl 1_DATA=1;/读完数据将总线拉高 checksum=(T_data_H_temp+T_data_L_temp+RH_data_H_temp+R H_d ata_LJe mp);/进展数据校验 if(checksum=checkdata_temp)RH_data_H=RH_data_H_temp;是否超时从总线上读到的位值校验过的温度高位温度低位湿度高位湿度低位校验和位未经校验的数据从读取的一个字节的数据延时函数卄延时晶振大约为串口初始化晶振等待晶振稳泄分频不分频关闭不用的振荡器位置口用作串口优电平开场信号的低电平再加上的髙电平判断上下电平跳过门限后判断总线是高还是低高为低为等待的电平信号完毕不管是是在后都变为低电平否那么错误超时加到后溢岀为跳出循环并后加加为超时那么跳岀循环左移位补赋值读取个应信号判断从机是否有低电平响应信号如不响应那么跳岀响应那么向下运行判断发出的的低电平响应信号是否完毕判断是否发出的髙电平如发岀那么进入数据接收状态读取湿度值整数局部的高读取湿度值小数局部的低读取温度值整RH_data_L=RH_data_L_temp;T_data_H=T_data_H_temp:T_data_L=T_data_L_temp;checkdata=checkdatajemp;字符输出函数 void outchar(void)table0=RH_data_H/10+O;tablet 1=RH_da(a_H%10+0:table2=1?;table3=RH_data_L/10+,0,;table4=RH_data_L%40+0;tablet 5=%;table6=T_data_H/10+,0,;table7=T_data_H%10+0;table8=7;table9=T_data_U10+,0,;tablet 10=T_data_L%10+0;tablell=C;table 12=f;void main(void)initUARTtest();Delay00us(1500):/延时 100US(32M 晶振)while(l)Read_DHTll();/调用温湿度读取子程序 outchar();UartTX_Send_String(tabIeJ4);Delay00us(20000);循环采样的延时,读取模块数据周期不易小于 2S 是否超时从总线上读到的位值校验过的温度高位温度低位湿度高位湿度低位校验和位未经校验的数据从读取的一个字节的数据延时函数卄延时晶振大约为串口初始化晶振等待晶振稳泄分频不分频关闭不用的振荡器位置口用作串口优电平开场信号的低电平再加上的髙电平判断上下电平跳过门限后判断总线是高还是低高为低为等待的电平信号完毕不管是是在后都变为低电平否那么错误超时加到后溢岀为跳出循环并后加加为超时那么跳岀循环左移位补赋值读取个应信号判断从机是否有低电平响应信号如不响应那么跳岀响应那么向下运行判断发出的的低电平响应信号是否完毕判断是否发出的髙电平如发岀那么进入数据接收状态读取湿度值整数局部的高读取湿度值小数局部的低读取温度值整

    注意事项

    本文(温湿传感子程序计算机Labview_计算机-Labview.pdf)为本站会员(Q****o)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开