SHT11温湿度传感器AVR单片机程序.DOC

  1. 1、本文档被系统程序自动判定探测到侵权嫌疑,本站暂时做下架处理。
  2. 2、如果您确认为侵权,可联系本站左侧在线QQ客服请求删除。我们会保证在24小时内做出处理,应急电话:400-050-0827。
  3. 3、此文档由网友上传,因疑似侵权的原因,本站不提供该文档下载,只提供部分内容试读。如果您是出版社/作者,看到后可认领文档,您也可以联系本站进行批量认领。
查看更多
SHT11温湿度传感器AVR单片机程序

#include shtxx.h void shtxx_init(void) { shtxx_temp = shtxx_humi = 0; SHTXX_SCK_LOW(); SHTXX_DAT_1(); shtxx_reconnect(); } void shtxx_reconnect(void) { SHTXX_DAT_1(); SHTXX_SCK_LOW(); for(uint8 i=0; i9; i++) { SHTXX_SCK_HIGH(); SHTXX_SCK_LOW(); } SHTXX_START(); } uint8 shtxx_softrst(void) { uint8 error = 0; shtxx_reconnect(); error += shtxx_write_byte(SHTXX_SOFT_RST); return error; } //写命令函数 //参数:命令类型 //返回:0成功,1失败 uint8 shtxx_write_byte(uint8 cmd) { uint8 ack; for (uint8 i=8; i0; i--) { if (BITCHK(cmd, (i-1))) //trans ’1’ { SHTXX_DAT_1(); SHTXX_SCK_HIGH(); SHTXX_SCK_LOW(); } else //trans ’0’ { SHTXX_DAT_0(); SHTXX_SCK_HIGH(); SHTXX_SCK_LOW(); } } //SHTxx 会以下述方式表示已正确地接收到指令: //在第8 个SCK 时钟的下降沿之后,将DATA 下拉为低电平(ACK 位)。 //在第9 个SCK 时钟的下降沿之后,释放DATA(恢复高电平)。 BITCLR(SHTXX_DAT_DDR, SHTXX_DAT_BIT); SHTXX_SCK_HIGH(); ack = BITCHK(SHTXX_DAT_PIN, SHTXX_DAT_BIT); SHTXX_SCK_LOW(); return ack; } uint8 shtxx_read_byte(uint8 dat_crc) { uint8 dat8 = 0; for (uint8 i=8; i0; i--) { BITCLR(SHTXX_DAT_DDR, SHTXX_DAT_BIT); c4680504cSHTXX_SCK_HIGH(); if (BITCHK(SHTXX_DAT_PIN, SHTXX_DAT_BIT)) BITSET(dat8, (i-1)); SHTXX_SCK_LOW(); } if (dat_crc) { SHTXX_DAT_0(); SHTXX_SCK_HIGH(); SHTXX_SCK_LOW(); } else { SHTXX_DAT_1(); SHTXX_SCK_HIGH(); SHTXX_SCK_LOW(); } SHTXX_DAT_1(); return dat8; } int8 shtxx_measure(uint8 mode) { uint8 error = 0; SHTXX_START(); switch (mode) { case SHTXX_MODE_TEMP: error = shtxx_write_byte(SHTXX_CMD_TEMPTURE); for(uint16 i=0; i655

文档评论(0)

bodkd + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档