• 大小: 967KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-09
  • 语言: 其他
  • 标签: AVR单片机  源代码  

资源简介

该代码已调试成功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个文件信息

评论

共有 条评论