资源简介
该代码已调试成功LCD1602显示温湿度。
代码片段和文件信息
#include
#define uchar unsigned char
#define uint unsigned int
void delay_us(uint us); //delay
void delay_ms(uint ms);
uchar dht_read_byte(void); //dht11
void dht_read_data(void);
void lcd1602_init(void); //1602_init
void write_com(uchar com);
void write_dat(uchar dat);
void lcd_busy(void);
void show_display(void);
uchar Data[5];
uchar table0[]={“0123456789“};
uchar table3[]={0x100x060x090x080x090x060x00};//℃
uchar table1[]=“temp:“;
uchar table2[]=“humi:“;
uchar RH_data_hRH_data_ltemp_data_htemp_data_lcheck_data;
void lcd1602_init(void) //初始化
{
DDRC|=0XFF;
DDRA|=0XE0;
PORTA&=~(1< write_com(0x3c);
delay_ms(10);
write_com(0x06);
delay_ms(10);
write_com(0x0c);
delay_ms(10);
write_com(0x01);
delay_ms(10);
}
void lcd_busy(void)
{
PORTA&=~(1< PORTA|=1< DDRC=0x00;
PORTA|=1< while(PINC&0x80);
PORTA&=~(1< DDRC=0xff;
}
void write_com(uchar com) //写命令
{
lcd_busy();
//delay_ms(10);
PORTA&=~(1< PORTA&=~(1< PORTC=com;
delay_ms(10);
PORTA|=1< //delay_ms(10);
PORTA&=~(1< }
void write_dat(uchar dat) //写数据
{
lcd_busy();
//delay_ms(10);
PORTA&=~(1< PORTA|=1< PORTC=dat;
delay_ms(10);
PORTA|=1< //delay_ms(10);
PORTA&=~(1< }
void show_display(void)
{
uchar i;
write_com(0x80+0);
for(i=0;i<5;i++)
{
write_dat(table1[i]);
delay_us(500);
}
write_com(0xc0+0);
for(i=0;i<5;i++)
{
write_dat(table2[i]);
delay_us(500);
}
}
uchar dht_read_byte(void) //数据采集
{
uchar idata=0;
DDRB=0x00;
for(i=0;i<8;i++)
{
while(!(PINB&0X80)); //等待50us的低电平数据位间隙过去,等待高电平
delay_us(15);
delay_us(15);
delay_us(10);
data<<=1;
if((PINB&0x80))
{
data|=0x01;
}
else
{
data|=0x00;
}
while((PINB&0x80)); //等待50us低电平到来,然后去读取下一位数据
}
return(data);
}
void dht_read_data(void) //启动信号
{
uchar i;
DDRB=0xff;
PORTB=0xff;
delay_ms(5);
PORTB&=~(1< delay_ms(10);
delay_ms(8); //启动信号至少大于18ms
PORTB|=1< delay_us(15);
delay_us(15);
DDRB=0x00; //输入模式
PORTB&=~(1< delay_us(15);
delay_us(15);
if(!(PINB&0X80)) //判断从机是否有低电平响应信号
while(!(PINB&0x80)); //判断从机是否发出80us的低电平,等待响应信号结束
while((PINB&0X80)); //等待高电平结束
//先拉低总线80us应答,再拉高总线80us,进入到数据传输
for(i=0;i<5;i++)
{
Data[i]=dht_read_byte();
}
if(Data[0]+Data[2]==Data[4])//校验和=8bit_temp+8bit_RH
{
RH_data_h=Data[0]; //整数
RH_data_l=Data[1]; //小数点
temp_data_h=Data[2]; //整数
temp_data_l=Data[3]; //小数点
check_data=Data[4]; //校验和
}
}
void main(void )
{
lcd1602_init();
// show_display();
while(1)
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 51200 2013-06-16 16:29 DHT11\AVR_mega128_mega16驱动温湿度传感器DHT11调试说明.doc
文件 0 2013-06-16 09:10 DHT11\BACKUP\dht11.c.130616091038
文件 444 2013-06-16 09:48 DHT11\BACKUP\dht11.c.130616094848
文件 444 2013-06-16 09:48 DHT11\BACKUP\dht11.c.130616094854
文件 428 2013-06-16 09:49 DHT11\BACKUP\dht11.c.130616094908
文件 778 2013-06-16 10:13 DHT11\BACKUP\dht11.c.130616101340
文件 943 2013-06-16 10:18 DHT11\BACKUP\dht11.c.130616101832
文件 1067 2013-06-16 10:25 DHT11\BACKUP\dht11.c.130616102540
文件 1161 2013-06-16 10:26 DHT11\BACKUP\dht11.c.130616102646
文件 1388 2013-06-16 10:32 DHT11\BACKUP\dht11.c.130616103246
文件 1458 2013-06-16 10:38 DHT11\BACKUP\dht11.c.130616103822
文件 1387 2013-06-16 10:41 DHT11\BACKUP\dht11.c.130616104124
文件 1390 2013-06-16 10:41 DHT11\BACKUP\dht11.c.130616104150
文件 1392 2013-06-16 10:43 DHT11\BACKUP\dht11.c.130616104330
文件 1392 2013-06-16 10:43 DHT11\BACKUP\dht11.c.130616104334
文件 1390 2013-06-16 10:45 DHT11\BACKUP\dht11.c.130616104514
文件 1400 2013-06-16 10:47 DHT11\BACKUP\dht11.c.130616104702
文件 1400 2013-06-16 10:47 DHT11\BACKUP\dht11.c.130616104710
文件 1400 2013-06-16 10:47 DHT11\BACKUP\dht11.c.130616104740
文件 1400 2013-06-16 10:47 DHT11\BACKUP\dht11.c.130616104756
文件 1406 2013-06-16 10:48 DHT11\BACKUP\dht11.c.130616104828
文件 1405 2013-06-16 10:48 DHT11\BACKUP\dht11.c.130616104840
文件 1408 2013-06-16 10:48 DHT11\BACKUP\dht11.c.130616104848
文件 1405 2013-06-16 10:48 DHT11\BACKUP\dht11.c.130616104900
文件 1508 2013-06-16 10:53 DHT11\BACKUP\dht11.c.130616105348
文件 1512 2013-06-16 11:08 DHT11\BACKUP\dht11.c.130616110820
文件 1530 2013-06-16 11:09 DHT11\BACKUP\dht11.c.130616110912
文件 1532 2013-06-16 11:22 DHT11\BACKUP\dht11.c.130616112216
文件 1532 2013-06-16 11:22 DHT11\BACKUP\dht11.c.130616112222
文件 1531 2013-06-16 11:22 DHT11\BACKUP\dht11.c.130616112226
............此处省略118个文件信息
相关资源
- am2301 温湿度传感器程序
- DSP28335控制DHT11温湿度传感器
- 基于MC9S12XS128的温湿度传感器DHT11程序
- 关于avr单片机红外遥控解码的程序
- SHT20温湿度传感器程序gpio模拟I2C+中文
- hdc1080_drive.rar
- SHT20温湿度传感器英文数据手册。内含
- SHT20温湿度传感器
- AVR单片机ATmega16L驱动一个数码管Prot
- AVR M16例程大全
- 基于AVR单片机人体热释红外感应
- ATH15调试 - 20190528 - SHERAUPLOAD.rar
- 温湿度传感器DHT11数字(附1602显示程
- Arduino uno+esp8266+onenet+dht11温湿度传感器
- 基于AVR单片机的土壤水分检测系统设
- 基于STM32F103ZET DHT11 温湿度传感器程序
- SHT11 温湿度传感器 STM32驱动
- MSP430G2553驱动DHT11温湿度传感器
- Arduino-DHT11温湿度传感器库文件
- 基于STM32F103的SHT11温湿度传感器采集程
- SHT11温湿度传感器仿真
- STM32F103读SHT31温湿度传感器代码,实测
- 温湿度传感器DHT11+1602显示+串口
- 温湿度传感器DHT11在mini2440上基于lin
- STC15+AHT10温湿度传感器+LCD12864.rar
- 基于STM32F4的DHT11温湿度传感器的源代
- DHT11库文件和
- STC15F2K60S2读取DHT11温湿度传感器数据串
- DHT11温湿度传感器MSP430F149)
- stc12单片驱动DHT11温湿度传感器
评论
共有 条评论