久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

dth11溫濕度傳感器的單片機程序

作者:佚名   來源:本站原創   點擊數:  更新時間:2012年12月17日   【字體:
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
typedef bit BOOL  ;
sbit io = P1^0 ;
sbit rs = P2^4 ;
sbit rw = P2^5 ;
sbit ep = P2^6 ;
uchar data_byte;
uchar RH,RL,TH,TL;
/
************************************************延時模塊***************************************************/
void delay(uchar ms)
{       // 延時子程序
  uchar i ;
  while(ms--)
  {
    for(i = 0 ; i<250;i++) ;
  }
}
void delay1()//延時10us
{
 uchar i;
 i--;
 i--;
 i--;
 i--;
 i--;
 i--;
}
void longdelay(uchar s) //長延時
{
  while(s--)
  {
    delay(60) ;
  }
}
/
***********************************************LCD模塊********************************************************/
BOOL lcd_bz()//測試LCD忙碌狀態
{     
  BOOL result ;
  rs = 0 ;
  rw = 1 ;
  ep = 1 ;
  result = (BOOL)(P0 & 0x80) ;
  ep = 0 ;
  return result ;
}
void write_cmd(uchar cmd)// 寫指令
{      
  while(lcd_bz()) ;
 rs = 0 ;
 rw = 0 ;
 ep = 0 ;
 P0 = cmd ;
 ep = 1 ;
 ep = 0 ; 
}
void write_addr(uchar addr)//寫地址
{      
  write_cmd(addr|0x80) ;
}
void write_byte(uchar dat)//寫字節
{     
  while(lcd_bz()) ;
   rs = 1 ;
   rw = 0 ;
   ep = 0 ;
   P0 = dat ;
   ep = 1 ;
   ep = 0 ;
}
void lcd_init()// 初始化
{      
  write_cmd(0x38) ;
  delay(1);
  write_cmd(0x08) ; 
  delay(1);
  write_cmd(0x01) ;
  delay(1);
  write_cmd(0x06) ;
  delay(1);
  write_cmd(0x0c) ;
  delay(1);
}
void display(uchar addr, uchar q)//在某一地址上顯示一字節
{  
  delay(10) ;
  write_addr(addr) ;
     write_byte(q) ;
  longdelay(2) ;
 
}
/
************************************************ DHT11測試模塊***********************************************/
void start()//開始信號
{
 io=1;
 delay1();
 io=0;
 delay(20);//>18ms
 io=1;
 delay1();//20-40us
 delay1();
 delay1();
 delay1();
 delay1();
}
uchar receive_byte()//接收一個字節
{
 uchar i,temp,count;
 for(i=0;i<8;i++)
 {
  count=2;
  while((!io)&&count++)//等待50us低電平結束
  temp=0;
  delay1();delay1();delay1();delay1();
  if(io==1)temp=1;
  count=2;
  while((io)&&count++);
  if(count==1)break;
  data_byte<<=1; 
  data_byte|=temp;
 }
 return data_byte;
}
void receive()//接收數據
{
 uchar T_H,T_L,R_H,R_L,check,num_check;
 uchar count;
 start();//開始信號
 io=1;
 if(!io)//讀取DHT11響應信號
 {
 count=2;
 while((!io)&&count++);//DHT11高電平80us是否結束
 count=2;
 while((io)&&count++);
 R_H=receive_byte();
 R_L=receive_byte();
 T_H=receive_byte();
 T_L=receive_byte();
 check=receive_byte();
 io=0;//拉低延時50us
 delay1();delay1();delay1();delay1();delay1();
 io=1;
 num_check=R_H+R_L+T_H+T_L;
 if(num_check=check)
 {
  RH=R_H;
  RL=R_L;
  TH=T_H;
  TL=T_L;
  check=num_check;
 }
 }
}
/*******
*************************************************主函數****/
void main()
{
 lcd_init();
 delay(10);
 while(1)
 {
   receive();
   delay(100);
   display(0x00,'R') ;
   display(0x01,':');
   display(0x02,RH/10+0x30);
   display(0x03,RH%10+0x30);
   display(0x04,'%');
   display(0x40,'T') ;
   display(0x41,':');
   display(0x42,TH/10+0x30);
   display(0x43,TH%10+0x30);
   display(0x44,0xdf);
   display(0x45,0x43);
  
 }
}/**********************************************/
關閉窗口

相關文章

主站蜘蛛池模板: 国产综合视频 | 全部免费毛片在线播放高潮 | 一级片观看 | 久久精品久久久久久久 | 国产精品亚洲精品 | 国产一区二区中文字幕 | 伊人色综合网 | 黄色一级片免费 | 国产片一区二区 | 色多多在线观看 | 看逼网站 | 午夜视频网| 毛片久久久 | 日韩一区二区三区免费视频 | 国产一区精品在线 | 国产理论片在线观看 | 久久视频一区二区 | 日韩福利在线 | 亚洲69| 亚洲三级在线观看 | 亚洲www| 亚洲国产精品一区二区三区 | 日韩视频二区 | 岛国一区二区三区 | 性av在线 | 18色av| 久久久天堂国产精品女人 | 日韩精品极品视频在线观看免费 | 欧美精品99 | 97精品视频 | 亚洲在线一区 | 精品国产一区二区三区四区 | 亚洲免费在线视频 | 黄色一级视频免费看 | 国产精品欧美日韩 | 成人免费福利 | 福利视频网址导航 | 黄色一级在线观看 | 国产3p视频| 日本三极片| 成人看|