基于51单片机SHT11温湿度传感器检测程序

上传人:卷*** 文档编号:121401850 上传时间:2022-07-19 格式:DOC 页数:11 大小:151.50KB
收藏 版权申诉 举报 下载
基于51单片机SHT11温湿度传感器检测程序_第1页
第1页 / 共11页
基于51单片机SHT11温湿度传感器检测程序_第2页
第2页 / 共11页
基于51单片机SHT11温湿度传感器检测程序_第3页
第3页 / 共11页
资源描述:

《基于51单片机SHT11温湿度传感器检测程序》由会员分享,可在线阅读,更多相关《基于51单片机SHT11温湿度传感器检测程序(11页珍藏版)》请在装配图网上搜索。

1、基于51单片机SHT11温湿度传感器检测程序(含电路图) 下面是原理图:下面是SHT11与MCU连接的典型电路:下面是源代码:view sourceprint?001.#include 002.#include 003.004./*005.宏定义006.*/007.#define uint unsigned int008.#define uchar unsigned char009.#define noACK 0010.#define ACK 1011.#define STATUS_REG_W 0x06012.#define STATUS_REG_R 0x07013.#define MEASU

2、RE_TEMP 0x03014.#define MEASURE_HUMI 0x05015.#define RESET 0x1e016.017.enumTEMP,HUMI;018.019.typedefunion/定义共用同类型020.021.unsignedinti;022.floatf;023. value;024.025.026./*027.位定义028.*/029.sbit lcdrs=P20;030.sbit lcdrw=P21;031.sbit lcden=P22;032.sbit SCK = P10;033.sbit DATA = P11;034.035./*036.变量定义037

3、.*/038.uchar table2=SHT11 温湿度检测;039.uchar table3=温度为: ;040.uchar table4=湿度为:;041.uchar table5=.;042.uchar wendu6;043.uchar shidu6;044.045./*046.1ms延时函数047.*/048.voiddelay(intz)049.050.intx,y;051.for(x=z;x0;x-)052.for(y=125;y0;y-);053.054.055./*056.50us延时函数057.*/058.voiddelay_50us(uint t)059.060.uint

4、 j;061.for(;t0;t-)062.for(j=19;j0;j-);063.064.065./*066.50ms延时函数067.*/068.voiddelay_50ms(uint t)069.070.uint j;071.for(;t0;t-)072.for(j=6245;j0;j-);073.074.075./*076.12864液晶写指令077.*/078.voidwrite_12864com(uchar com)079.080.lcdrs=0;081.lcdrw=0;082.delay_50us(1);083.P0=com;084.lcden=1;085.delay_50us(1

5、0);086.lcden=0;087.delay_50us(2);088.089.090./*091.12864液晶写数据092.*/093.voidwrite_dat(uchar dat)094.095.lcdrs=1;096.lcdrw=0;097.delay_50us(1);098.P0=dat;099.lcden=1;100.delay_50us(10);101.lcden=0;102.delay_50us(2);103.104.105./*106.12864液晶初始化107.*/108.voidinit12864lcd(void)109.110.delay_50ms(2);111.w

6、rite_12864com(0x30);112.delay_50us(4);113.write_12864com(0x30);114.delay_50us(4);115.write_12864com(0x0f);116.delay_50us(4);117.write_12864com(0x01);118.delay_50us(240);119.write_12864com(0x06);120.delay_50us(10);121.write_12864com(0x0c);122.delay_50us(10);123.124.125./*126.12864液晶显示函数127.*/128.void

7、display1(void)129.130.uchar i;131.write_12864com(0x80);132.for(i=0;i18;i+)133.134.write_dat(table2i);135.delay_50us(1);136.137.138.139./*140.12864液晶显示函数141.*/142.voiddisplay2(void)143.144.uchar i;145.write_12864com(0x90);146.for(i=0;i18;i+)147.148.write_dat(table3i);149.delay_50us(1);150.151.152.153

8、./*154.12864液晶显示函数155.*/156.voiddisplay3(void)157.158.uchar i;159.write_12864com(0x88);160.for(i=0;i8;i+)161.162.write_dat(table4i);163.delay_50us(1);164.165.166.167./*168.12864液晶显示函数169.*/170.voiddisplaywendu(void)171.172.uchar i;173.write_12864com(0x94);174.for(i=0;i3;i+)175.176.write_dat(wendui);

9、177.delay_50us(1);178.179.for(i=0;i1;i+)180.181.write_dat(table5i);182.delay_50us(1);183.184.for(i=4;i5;i+)185.186.write_dat(wendui);187.delay_50us(1);188.189.190.191.192./*193.12864液晶显示函数194.*/195.voiddisplayshidu(void)196.197.uchar i;198.write_12864com(0x8C);199.for(i=0;i3;i+)200.201.write_dat(shi

10、dui);202.delay_50us(1);203.204.for(i=0;i1;i+)205.206.write_dat(table5i);207.delay_50us(1);208.209.for(i=4;i0;i=1)/高位为1,循环右移223.224.if(i&value) DATA=1;/和要发送的数相与,成果为发送的位225.elseDATA=0;226.SCK=1;227._nop_();_nop_();_nop_();/延时3us228.SCK=0;229.230.DATA=1;/释放数据线231.SCK=1;232.error=DATA;/检查应答信号,确认通讯正常233.

11、_nop_();_nop_();_nop_();234.SCK=0;235.DATA=1;236.returnerror;/error=1 通讯错误237.238.239./*240.SHT11读字节程序241.*/242.chars_read_byte(unsignedcharack)243.244.unsignedchari,val=0;245.DATA=1;/释放数据线246.for(i=0x80;i0;i=1)/高位为1,循环右移247.248.SCK=1;249.if(DATA) val=(val|i);/读一位数据线的值250.SCK=0;251.252.DATA=!ack;/如果

12、是校验,读取完后结束通讯 ;253.SCK=1;254._nop_();_nop_();_nop_();/延时3us255.SCK=0;256._nop_();_nop_();_nop_();257.DATA=1;/释放数据线258.returnval;259.260.261./*262.SHT11启动传播263.*/264.voids_transstart(void)265.266.DATA=1; SCK=0;/准备267._nop_();268.SCK=1;269._nop_();270.DATA=0;271._nop_();272.SCK=0;273._nop_();_nop_();_n

13、op_();274.SCK=1;275._nop_();276.DATA=1;277._nop_();278.SCK=0;279.280.281.282./*283.SHT11连接复位284.*/285.voids_connectionreset(void)286.287.unsignedchari;288.DATA=1; SCK=0;/准备289.for(i=0;i9;i+)/DATA保持高,SCK时钟触发9次,发送启动传播,通迅即复位290.291.SCK=1;292.SCK=0;293.294.s_transstart();/启动传播295.296.297./*298.SHT11温湿度检

14、测299.*/300.chars_measure(unsignedchar*p_value, unsignedchar*p_checksum, unsignedcharmode)301.302.unsigned error=0;303.unsignedinti;304.305.s_transstart();/启动传播306.switch(mode)/选择发送命令307.308.caseTEMP : error+=s_write_byte(MEASURE_TEMP);break;/测量温度309.caseHUMI : error+=s_write_byte(MEASURE_HUMI);break

15、;/测量湿度310.default:break;311.312.for(i=0;i100)rh_true=100;/湿度最大修正340.if(rh_true0.1)rh_true=0.1;/湿度最小修正341.342.*p_temperature=t_C;/返回温度成果343.*p_humidity=rh_true;/返回湿度成果344.345./*346.主函数347.*/348.voidmain(void)349.350.unsignedinttemp,humi;351.value humi_val,temp_val;/定义两个共同体,一种用于湿度,一种用于温度352.unsignedch

16、arerror;/用于检查与否浮现错误353.unsignedcharchecksum;/CRC354.init12864lcd();355.display1();356.display2();357.display3();358.s_connectionreset();/启动连接复位359.while(1)360.361.error=0;/初始化error=0,即没有错误362.error+=s_measure(unsignedchar*)&temp_val.i,&checksum,TEMP);/温度测量363.error+=s_measure(unsignedchar*)&humi_val

17、.i,&checksum,HUMI);/湿度测量364.if(error!=0) s_connectionreset();/如果发生错误,系统复位365.else366.367.humi_val.f=(float)humi_val.i;/转换为浮点数368.temp_val.f=(float)temp_val.i;/转换为浮点数369.calc_sth10(&humi_val.f,&temp_val.f);/修正相对湿度及温度370.temp=temp_val.f*10;371.humi=humi_val.f*10;372.wendu0=temp/1000+0;/温度百位373.wendu1=

18、temp%1000/100+0;/温度十位374.wendu2=temp%100/10+0;/温度个位375.wendu3=0x2E;/小数点376.wendu4=temp%10+0;/温度小数点后第一位377.displaywendu();378.shidu0=humi/1000+0;/湿度百位379.shidu1=humi%1000/100+0;/湿度十位380.shidu2=humi%100/10+0;/湿度个位381.shidu3=0x2E;/小数点382.shidu4=humi%10+0;/湿度小数点后第一位383.displayshidu();384.385.delay(800);/等待足够长的时间,以现行下一次转换386.387.有关手册资料及源码下载地址:基于51单片机SHT11温湿度传感器检测程序有关资料

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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