資源簡介
該代碼已調試成功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個文件信息
評論
共有 條評論