- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
范文范例 指导参考
学习资料整理
AM2302温湿度传感器C程序(测试可以用)
2017-8-13
说明:
DHT22与DHT11程序基本相同,DHT11起始信号拉低18ms,DHT22起始信号拉低是800us,用户主机(MCU)发送一次起始信号(把数据总线SDA拉低至少800μs)后,AM2302从休眠模式转换到高速模式。待主机开始信号结束后,AM2302发送响应信号,从数据总线SDA串行送出40Bit?的数据,先发送字节的高位;发送的数据依次为湿度高位、湿度低位、温度高位、温度低位、校验位,发送数据结束触发一次信息采集,采集结束传感器自动转入休眠模式,直到下一次通信来临。
注意事项:
与DHT11相同,一次采集8个位数据,循环4次采集完成所有数据,40位采集完成后,校验数据,如果数据正确,将高8位左移8位与低8位相或,再保存到一个16位变量中,就可以得到一个整数值。默认采集的数据是实际值的10倍,例如当前实际温度是32.7度,采集到的数据是327,目的是为了编程时方便分离数据。(详细见后面说明书)
0000 0010 1000 1100 0000 0001 0101 1111 1110 1110
湿度数据 温度数据 校验和
湿度高8位+湿度低8位+温度高8位+温度低8位=的末8位=校验和
如果需要处理零下值,16位的最高位为1表示负数,温度最大量程:-20~80度,分辨率:0.1度。
如果用数据码管显示且有中断,采集数据开始需要关中断,采集结束开中断,否则在采集数据过程中,中断会打断DHT22时序,造成采集数据不正确。
每次采集间隔大于1秒,否则采集数据不准确。
C程序 :
为了方便程序阅读,其它器件的初始化及定义都删除掉了,以下代码纯DHT22代码,使用时直接调用RH函数即可。由于程序多次修改,可能有多余的变量,大家自己清理下。
RH函数调用后,以下四个变量会得相应的数据:
R_H 湿度高8位
R_L 湿度低8位(包含小数)
T_H 温度高8位
T_L 湿度低8位(包含小数)
如果采集的数据是:0000 0010 1000 1100 0000 0001 0101 1111
由上面四个变量是16位,采集数据是8位,分四次采完,8位放在16位里面应该是这样:
R_H=00000010
R_L=10001100
所以R_H左移8个位或上R_L才是我们要的数据。R_H =R_H & R_L
以上采集数据湿度为652,湿度为351,再除以10就是实际温湿度值。
#include <reg52.h>
#include <intrins.h>
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; /* dou
您可能关注的文档
- 2018年中学生防汛抗旱知识大赛标准答案.doc
- 2018年专业技术人员网络安全知识答案.doc
- 2018秋石油北京《化工设计概论》第一阶段在线作业.doc
- 2018秋湘教版八年级数学上《第1单元分式》检测卷附含答案解析.doc
- 2018泉州市初中学业质量检查语文试题.doc
- 2018三明市初中毕业班教学质量检测语文试题(答案解析及评分参考)word版A4.doc
- 2018山东东营市中考化学试题及答案解析word版.doc
- 2018上半年新能源汽车期中考试试题.doc
- 2018上半年重点手术分析报告.doc
- 2018天津市党员学习读本作业答案解析(内部交流全).doc
- 2023-2024学年江苏省江阴市祝塘中学中考历史对点突破模拟试卷含解析.doc
- 2023-2024学年江苏省淮安市洪泽区市级名校中考二模历史试题含解析.doc
- 2023-2024学年江苏省海安八校中考历史全真模拟试卷含解析.doc
- 山西省晋中市2024届高三下学期二模考试历史试卷(含答案).docx
- 贵州省2024届高三下学期4月适应性考试(二模)政治试卷(含答案).docx
- 青海湟川中学2023-2024学年高一上学期期中考试历史试卷(含答案).docx
- 湖南省长沙市第一中学2024届高三下学期月考(八)历史试卷(含答案).docx
- 江西省广丰贞白中学2024届高三下学期4月月考政治试卷(含答案).docx
- 开平市忠源纪念中学2022-2023学年高一下学期期中考试政治试卷(含答案).docx
- 黄石市有色第一中学2024届高三下学期模拟训练(三)历史试卷(含答案).docx
文档评论(0)