




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、#include iocc2530. h#inc1udo "stdio. h"#include "string.h"#define uchar unsigned char /* defined for unsigned 8-bits integer variable无符号8位整型变量*/define uint unsigned int /* def incd for unsignod 16-bits integer variable无符号16位整型变量*/#define dht11 data pl 0uchar overtime_counter; /判断
2、等待是否超时的计数器。利用uchar型的数 值范围进行自动延时控制(时长由初值决定),并判断是否超时uchar bit value; /从data总线上读到的位值uchar t_data_h, t_data_l, rh_data_h, rh_data_l, checkdata;/校验过的温度 高8位,温度低8位,湿度高8位,湿度低8位,校验和8位uchart_data_ii_temp, t_data_l_temp, ril_data_temp, ril_data_l_temp, checkdata _temp; /未经校验的数据 uchar comdata; /从dht11读取的一个字节的数据
3、 uchar count; /串口发送的字节计数变量void delay(uint);void inituart(void);void initialad(void);void uarttx send string(char *data, int len);char str16;void delay_10us(void)uchar i;for (i=0;i<16;i+); void delay loous(uint i) uchar j;for (;i>0;i-)for (j=0;j<10;j+)delay !ous ();vtz丄丄丄“ !" 丄"丄&q
4、uot;f”、丫 t、"丫丫j丫j *7* "丫j |、"t、.、"丫夕、"丫0 夕、"丫."丫"丫"丫"丫"a、"丫. 、丫"丫' "a、丫j丫 "a、丫j "a、丫丫j丫j丫j 丫0丫0 jj"aj"ajj*函数功能:初始化串口 1 *入口参数:无*返回值:无*说明:57600-8-n-l *£# >1 / 1% t%"卜 xy% y% tw xy% .卜 卜夕;、卜夕广卜 卜祥
5、、xt% 訐 xt% 訐卜訐卜吓、xt% "訐 xt% 斤、叶xr* 吓、吓、吓、吓、吓j*t%xr% #t% xr% #t r% #t>r* fvoid inituart(void) sleepcmd&= "0x04;clkconcmd = 0x10; while(clkconsta!=0x10);sleepcmd = 0x04;percfg = 0x00; /位置 1 p0 口posel = 0x30; /p0 用作串口u1csr = 0x80; /uart 方式u1gcr |= 10; /baud_eu1baud |= 216; /波特率设为 57600
6、utx1if = 1;u1csk 二 0x40; /允许接收urx1ie = 1;ea =1;j* j"7" *2*2 7" *2*i>k!*k!* *2 >1 >( >1 >1 >1 >1 >1 >1 >1*函数功能:串口发送字符串函数*入口参数:data:数据* len :数据长度*返回值:无*说明:*2 丄"?x 丄"%y> 丄"丄"丄"%2 丄"丄"丄"丄"丄"%?>丄"丄&q
7、uot;丄"丄"丄".丄“.丄"x*丄丄"" 丄"“ 丄"" 丄".丄“k1xr*夕t> 哼v、叫、"t"t v、"4 夕vv、穆;."( ";、7 :、/void uarttx_send_string(char *data, int len)int j;for(j=0;j<len;j+)83. u1dbuf = *data+;84. while(utxlif = 0);85. utx1if = 0;86. 87. 88. /*从14
8、'1'11 读取一个字节函数*/89. void read_byte(void)90. 91. uchar i;92. for(i=0;i<8;i+) /循环 8 次,读取 8bit 的数据93. 94. overtime_counter=2; 读取并等待dht11发出的12-14us低电平开始信号95. pldir=0x00;96. while(!dht11data)&&0vertime_counter+);97. delay_10us(); /2628us 的低电平判断门限98. delay_10us();99. bit_valuc=0; /跳过门限后
9、判断总线是高还是低,高为1,低为0100. if(dhtll data)101. bit_value=l;102. overtime_counter=2;/等待lbit的电平信号结束,不管是0是1在118us后都变为低电平,否则错误超时103. whi le (dht1 l_data)&&overtime_counter+); /当 u8flag 加到 255 后溢 出为0,跳出循环,并后加加为1104. i f(overt i mecounter=l)105. break; /超时则跳出for循坏106. comdata«=l; 左移 1 位,lsb 补 0107.
10、 comdata | =bi t_val ue;/lsb 赋值10&109. 110.110. /* *dhti 1 读取五个字节函数* * * */111. void read_dhtll(void)112. 113. uchar checksum;114. p1dir二0x01;115. dht11 data=0; 主机拉低18ms116. delay_100us(180);11&dht11 data=1;/总线由上拉电阻拉高 主机延时20us-40us119. delay 10us ();120. delay_10us ();121. delay lous ();122.
11、 delay_10us();123. dht11 data=1; /主机转为输入或者输出高电平,data线由上拉电阻拉 高,准备判断dht11的响应信号124. p1dir二0x00;125. if(!dhtll_data) /判断从机是否有低电平响应信号 如不响应则跳出, 响应则向下运行126. 127. overtime_counter=2; 判断dht11发出的80us的低电平响应信号是否结束12&while(!dht1l_data)&&overtime_counter+);129. overtime counter=2; /判断dht11是否发出80us的高电平
12、,如发tl!则 进入数据接收状态130. while(diit11_data)&&overtime_counter卄);131. read byteo ; /读取湿度值整数部分的高8bit132. rh_data_h_temp=comdata;133. read_byte() ; /读取湿度值小数部分的低8bit134. rh_data_l_temp二comdata;135. read.byte (); /读取温度值整数部分的高8bit136. t data h temp二comdata;137. read_byte(); 读取温度值小数部分的低8bit138. t data
13、l temp=comdata;139. read byteo ; /读取校验和的 8bit140. checkdata_temp=comdata;141. pldir=0x01;142. dht11_data=1; /读完数据将总线拉高143. checksum= (t data h tenip + t datal temp + rh data h temp +rh_data_l_temp) ;/进行数据校验144. if (checksum 二二 checkdatjtemp)145. 146. rh_data_h=rh_data_h_temp;147. rh data l=rh data l
14、temp;148. tdatah = t_data_h_temp;149. t_data_l = t_data_l_temp;150. checkdata=checkdata temp;151. 152. 153. 154.155.154. int putchar (int c) 155. if (c = ' n')156. while (!utxotf);157. utx1if = 0;158. u1dbuf 二 oxod;/* output cr */159. 162.163.while (!utx1tf);164.utx1if = 0;165.return (u1dbuf
15、 = c);166.167.16&/2z2z/1%xt% #?% >t% #y xt%>t%xt% *<% >t%t% xt% >t% >1% *7% xt >t% xy% >t% >1%xy xy% >yx xt% >1% xy% "卜 xy% >t%*169.*函数功能:主函数*170.*入口参数:无*171.*返回值:无*172.*说明:无*173.kjx %l kj>azk|xxtxxtx jz %lxvlx jzlzlzsfz k1叫、“广 *;、*(、t> <|>卜7%
16、叶s 7%叮 jx叶> *1%*1%*1%吓j*/174.void main(void)175.176.inituarto ;177.delay 100us(500); 延时 100us (12m 晶振)178.wh i 1 e 仃)179.180.read_dhtll() ;/调用温湿度读取子程序181./ sprintf(str, "%d", rh_data_h);182./uarttx send string(str, 2);183.putchar (rh_data_h);184.putchar (rh data l);185.put char (tdataji);186.putchar (t_data_l);187.putchar (checkdata);188.delay_100us(20000) ;/循环采样的延时,读取模块数据周期
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广东金融学院《肿瘤生物治疗学》2023-2024学年第二学期期末试卷
- 山西信息职业技术学院《现代广告学》2023-2024学年第二学期期末试卷
- 南昌医学院《实验室安全与环保》2023-2024学年第二学期期末试卷
- 四川护理职业学院《水运工程施工技术》2023-2024学年第二学期期末试卷
- 活动三 老建筑的去和留(教学设计)-2023-2024学年六年级下册综合实践活动沪科黔科版
- 台州学院《教师口语技能训练》2023-2024学年第二学期期末试卷
- 广东邮电职业技术学院《会计信息系统单统计学双》2023-2024学年第二学期期末试卷
- 西南大学《数据采集与清洗》2023-2024学年第二学期期末试卷
- Unit 2 Period2 Section A Pronunciation 教学设计 2024-2025学年人教版英语七年级上册
- 贵阳康养职业大学《马克思主义经典文献导读(政治经济学)》2023-2024学年第二学期期末试卷
- 点亮生命-大学生职业生涯发展与就业指导全套教学课件
- 外墙清洗成本分析报告
- 特殊作业现场监护人安全培训课件
- 环境修复原理与技术-第5章-污染环境的植物修复原理
- 2024年1月浙江省首考普通高等学校招生全国统一考试英语试题
- 关于新能源场站“两个细则”的影响和管理措施
- 手术部位感染预防控制措施
- 中医类诊所规章制度与岗位职责
- 初中语文 中考总复习-文言文断句训练120题(含答案解析)
- 影视鉴赏-动画电影课件
- 美学原理全套教学课件
评论
0/150
提交评论