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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1997|回復: 0
打印 上一主題 下一主題
收起左側

溫濕度檢測儀設計報告

[復制鏈接]
跳轉到指定樓層
樓主
ID:272001 發表于 2018-1-5 17:56 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
目  錄

1 目的與意義--------------------------------------------------------------------------------------- 1
2 設計要求------------------------------------------------------------------------------------------ 1
3 方案設計------------------------------------------------------------------------------------------ 1
3.1 方案一------------------------------------------------------------------------------------- 1
        3.2 方案二------------------------------------------------------------------------------------------2
4 系統硬件設計------------------------------------------------------------------------------------- 2
4.1 STC89C52主控電路---------------------------------------------------------------------- 3
4.2 DTH11溫濕度檢測電路----------------------------------------------------------------- 4
4.3 LCD1602液晶屏顯示電路--------------------------------------------------------------- 5
5 系統軟件設計------------------------------------------------------------------------------------- 6
5.1 主程序程序流程圖----------------------------------------------------------------------- 6
5.2 溫濕度檢測程序-------------------------------------------------------------------------- 2
5.3 LCD1206顯示程序----------------------------------------------------------------------- 9
6 系統測試結果與分析--------------------------------------------------------------------------- 11
6.1 系統測試結果--------------------------------------------------------------------------- 11
6.2 系統結果分析--------------------------------------------------------------------------- 11
7 總結----------------------------------------------------------------------------------------------- 11
參考文獻-------------------------------------------------------------------------------------------- 11
附錄------------------------------------------------------------------------------------------------- 12
附錄A  系統實物圖------------------------------------------------------------------------ 12
附錄B 系統主程序------------------------------------------------------------------------- 12




1 目的與意義溫濕檢測在倉庫管理、生產制造、氣象觀測、科學研究、國防軍事以及日常生活中有廣泛的應用,傳統的模擬式溫濕度傳感器一般都要設計信號調理電路并需要經過復雜的校準和標定過程,因此測量精度難以保證,且在線性度、重復度、互換性、一致性等方面往往不盡人意。
由于溫濕度傳感器及其控制系統是20世紀90年代才興起的行業,因此利用溫濕度傳感器設計一款將度高、穩定性好、成本低的溫濕度檢測器有一定的市場前景。此單片機課程設計采用具有高精度,防干擾等優點的傳感器,結合單片機技術,設計完成的溫濕度檢測器具有易攜帶、低功率等特點。克服了傳統溫濕度檢測器需要校準的過程和精度較低的缺點。

2 設計要求  (1)模擬單總線協議與DTH11進行通信;
  (2)LCD1602第一行顯示檢測的溫度值:Temperature 22℃
  (3)LCD1602第二行顯示檢測的濕度值:Humidity 75%RH

3 方案設計溫濕度檢測器的組成部分:
附錄B 系統主程序



  1. #include<reg52.h>#include<intrins.h>//****************************************************
  2. //***********************定義區***********************
  3. //****************************************************#define uchar unsigned char#define uint unsigned int
  4. #define LCD1602_DB P2     sbit DQ=P3^7;   sbit LCD1602_RS = P0^7;sbit LCD1602_RW = P0^6;sbit LCD1602_EN = P0^5;  

  5. void Lcd1602_Delay1ms(uint c);
  6. void Read_Busy();        void Write_Cmd(unsigned char cmd);   void Write_Data(unsigned char dat);   void LcdSetCursor(unsigned char x,unsigned chary);  void DisplayOneChar (uchar X,uchar Y,uchar DData);void LcdShowStr(unsigned char x,unsigned chary,unsigned char *str);   void InitLcd1602();            //****************************************************
  7. //******************1602顯示初始化****************
  8. //****************************************************uchar code ASCII[]="0123456789%c";uchar code table0[]="Temperature:00";uchar code table1[]="Humidity:00";uchar tem;uchar hum;
  9. void InitLcd1602()         {Write_Cmd(0x38);      Write_Cmd(0x0c);   Write_Cmd(0x06);   Write_Cmd(0x01);      }  
  10. void Read_Busy()             unsignedchar sta;          LCD1602_DB =0xff;    LCD1602_RS =0;    LCD1602_RW =1;    do    {       LCD1602_EN = 1;        sta =LCD1602_DB;       LCD1602_EN = 0;      }              while(sta& 0x80);}
  11. void Write_Cmd(uchar cmd)     //寫命令{    Read_Busy();    LCD1602_RS =0;    LCD1602_RW =0;    LCD1602_DB =cmd;    LCD1602_EN =1;    LCD1602_EN =0;   }
  12. void Write_Data(uchar dat)   //讀數據     Read_Busy();      LCD1602_RS= 1;      LCD1602_RW= 0;      LCD1602_DB = dat;      LCD1602_EN= 1;      LCD1602_EN= 0;}

  13. //*****************************************************//*********************定義顯示函數********************//*****************************************************
  14. void LcdSetCursor(unsigned char x,unsigned char y){    unsignedchar addr;    if(y == 0)        addr =0x00 + x;    else        addr =0x40 + x;      Write_Cmd(addr|0x80);}
  15. void DisplayOneChar (uchar X,uchar Y,uchar DData)//顯示字符{  if(Y)   X|=0X40;  //Y=1顯示第一行,Y=0顯示第二行             X|=0X80;             Write_Cmd(X);//X用來選擇哪一位Write_Data(DData); //Ddata用來寫數據}
  16. void LcdShowStr(unsigned char x,unsigned chary,unsigned char *str) //顯示字符串{   LcdSetCursor(x,y);      //當前字符坐標    while(*str!= '\0')    {     Write_Data(*str++);    }}

  17. //************************************************
  18. //**********************延時函數******************
  19. //*************************************************void delay_ms(uint z){uint x,y;for(x=z;x>0;x--)for(y=114;y>0;y--);}
  20. //*******************************************************
  21. //*************************DTH11模塊*********************
  22. //*******************************************************//**************************初始化DTH11bit Init_DTH11(){bit flag;uchar num;DQ=0;delay_ms(19);   // >18msDQ=1;for(num=0;num<11;num++);   // 20-40us 34.7usflag=DQ;for(num=0;num<27;num++);   for(num=0;num<27;num++);   return flag;}//****************************讀DTH11數據uchar DTH11_RD_CHAR(){uchar byte=0;uchar num;uchar num1;while(DQ==1);for(num1=0;num1<8;num1++){  while(DQ==0);byte<<=1;     //¸ßλÔúǰfor(num=0;DQ==1;num++);  if(num<10)   byte|=0;  else   byte|=1;}return byte;}//******************************讀取DTH11溫度和濕度void DTH11_DUSHU(){uchar num;if(Init_DTH11()==0){hum=DTH11_RD_CHAR();DTH11_RD_CHAR();tem=DTH11_RD_CHAR();DTH11_RD_CHAR();DTH11_RD_CHAR();for(num=0;num<17;num++);  DQ=1;}}


  23. //****************************************************
  24. //***************將檢測到的數據顯示模塊***************
  25. //****************************************************
  26. display0[2]={0,0};display1[2]={0,0};void Display_DTH11(){display0[1]=tem/10%10;display0[0]=tem%10;LcdShowStr(0, 0, table0);DisplayOneChar(12,  0, ASCII[ display0[1] ] );DisplayOneChar(13,  0, ASCII[ display0[0] ] );DisplayOneChar(14, 0, 0xdf );DisplayOneChar(15, 0, 0x43 );      display1[1]=hum/10%10;display1[0]=hum%10;LcdShowStr(0, 1, table1);DisplayOneChar( 9, 1, ASCII[ display1[1] ] );DisplayOneChar(10, 1, ASCII[ display1[0] ] );DisplayOneChar(11, 1, ASCII[10] );   DisplayOneChar(12, 1, 0x52);DisplayOneChar(13, 1, 0x48);}  //*****************************************************
  27. //********************主函數***************************
  28. //*****************************************************
  29. void main(){tem=0;hum=0;delay_ms(1000);   InitLcd1602();while(1){  DTH11_DUSHU();Display_DTH11();delay_ms(1000);}
  30. }
復制代碼
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品视频一区二区三区不卡 | 久久一区二区三区免费 | 欧美国产一区二区 | www.亚洲 | 91精品久久久久久久久 | 亚洲精品国产精品国自产在线 | 精品九九在线 | 免费在线一区二区 | 国产精品久久久久久久免费观看 | а天堂中文最新一区二区三区 | 免费a级毛片在线播放 | 欧美黑人又粗大 | 97国产一区二区精品久久呦 | 污片在线免费观看 | 激情av免费看 | 成人久久一区 | 午夜影院在线观看版 | 嫩草视频网| av片免费观看 | 911精品国产 | 国产精彩视频一区 | 91精品国产91久久久久久吃药 | 婷婷精品| 精品国产精品一区二区夜夜嗨 | 精品人伦一区二区三区蜜桃网站 | 手机在线一区二区三区 | 日韩在线视频一区 | a在线视频| 黄视频在线网站 | 国产成人免费视频网站视频社区 | 国产一级片免费在线观看 | 亚洲网址在线观看 | 狠狠色狠狠色综合日日92 | 中文字幕在线一区二区三区 | 国产美女在线免费观看 | 精品久久久久久久久久 | 日本三级电影在线免费观看 | 亚洲九九 | 久久国产秒 | 中文字幕在线免费观看 | 可以免费观看的av |