您当前的位置:五五电子网电子知识单片机-工控设备AVR单片机SHT11温湿度传感器AVR单片机程序 正文
SHT11温湿度传感器AVR单片机程序

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

点击数:7951 次   录入时间:03-04 11:55:44   整理:http://www.55dianzi.com   AVR单片机
        lcd_write_dat(bcd32[5]+0x30);
    }
}

shtxx.H

#ifndef _SHTXX_H
#define _SHTXX_H
#include "config.h"

#define SHTXX_SCK_DDR  DDRC
#define SHTXX_SCK_PORT  PORTC
#define SHTXX_SCK_BIT  (0)

#define SHTXX_DAT_DDR  DDRC
#define SHTXX_DAT_PORT  PORTC
#define SHTXX_DAT_PIN  PINC
#define SHTXX_DAT_BIT  (1)

#define SHTXX_SCK_HIGH() {BITSET(SHTXX_SCK_DDR, SHTXX_SCK_BIT); BITSET(SHTXX_SCK_PORT, SHTXX_SCK_BIT); _delay_us(10);}
#define SHTXX_SCK_LOW()  {BITSET(SHTXX_SCK_DDR, SHTXX_SCK_BIT); BITCLR(SHTXX_SCK_PORT, SHTXX_SCK_BIT); _delay_us(10);}

#define SHTXX_DAT_1()  {BITSET(SHTXX_DAT_DDR, SHTXX_DAT_BIT); _delay_us(1); BITSET(SHTXX_DAT_PORT, SHTXX_DAT_BIT); _delay_us(5);}
#define SHTXX_DAT_0()  {BITSET(SHTXX_DAT_DDR, SHTXX_DAT_BIT); _delay_us(1); BITCLR(SHTXX_DAT_PORT, SHTXX_DAT_BIT); _delay_us(5);}

#define SHTXX_START()  {SHTXX_DAT_1(); SHTXX_SCK_LOW(); SHTXX_SCK_HIGH(); SHTXX_DAT_0(); SHTXX_SCK_LOW(); _delay_us(2); SHTXX_SCK_HIGH(); SHTXX_DAT_1();  SHTXX_SCK_LOW();}
#define SHTXX_ACK()   {BITCLR(SHTXX_DAT_DDR, SHTXX_DAT_BIT); if(!(BITCHK(SHTXX_DAT_PIN, SHTXX_DAT_BIT)));}
#define SHTXX_WAIT()  {BITCLR(SHTXX_DAT_DDR, SHTXX_DAT_BIT); while(BITCHK(SHTXX_DAT_PIN, SHTXX_DAT_BIT));}

#define SHTXX_CMD_TEMPTURE 0b00000011
#define SHTXX_CMD_HUMIDITY 0b00000101
#define SHTXX_RD_STATE_REG 0b00000111
#define SHTXX_WR_STATE_REG 0b00000110
#define SHTXX_SOFT_RST  0b00011110

#define SHTXX_MODE_TEMP  0x01
#define SHTXX_MODE_HUMI  0x02

uint16 shtxx_temp, shtxx_humi;
uint8 shtxx_crc;
uint32 t_c, rh_true;
uint8 bcd32[10];

void shtxx_init(void);
void shtxx_reconnect(void);
uint8 shtxx_write_byte(uint8 cmd);
uint8 shtxx_softrst(void);
uint8 shtxx_read_byte(uint8 dat_crc);

#endif



上一页  [1] [2] [3] 


本文关键字:传感器  单片机程序  AVR单片机单片机-工控设备 - AVR单片机