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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5692|回復(fù): 5
打印 上一主題 下一主題
收起左側(cè)

51單片機(jī)大棚溫濕度檢測顯示源程序與Proteus仿真圖

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:474195 發(fā)表于 2021-5-28 21:56 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機(jī)源程序如下:
  1. #include <reg52.h>
  2. #include <intrins.h>
  3. #include <stdio.h>
  4. #include "1602.h"
  5. #include "delay.h"
  6. #include"18b20.h"
  7. #include"i2c.h"

  8. sbit led_l = P1^0;       
  9. sbit led_b = P1^1;
  10. sbit fan = P1^4;
  11. sbit relay = P1^3;

  12. sbit key_s = P3^4;
  13. sbit key_a = P3^5;
  14. sbit key_u = P3^6;

  15. unsigned char readTem = 0 ;
  16. unsigned char readADCFlag = 0 ;         

  17. int temp;                               
  18. float temperature = 0;          

  19. char disdat[16];                          
  20. char disset[16];
  21. unsigned long time_20ms=0;               

  22. float Lv=0.0;                         
  23. float Tv=0.0;                                 
  24. unsigned int Lval =0;               
  25. unsigned int Rval = 0;               
  26. unsigned int distem;                 
  27. unsigned char rekey = 0;         
  28. unsigned char SetFlag = 0;        
  29. unsigned char setLval = 50;
  30. unsigned char setRval = 50;
  31. unsigned char setTval = 35;

  32. void Init_Timer0(void);          

  33. void main (void)
  34. {     
  35.         unsigned char midval;            
  36.         Init_Timer0();

  37.         LCD_Init();           
  38.         DelayMs(20);         
  39.         LCD_Clear();      

  40.         led_l = 0;relay = 0;led_b = 0;fan = 0;
  41.         DelayMs(200);  
  42.         led_l = 1;relay = 1;led_b = 1;fan = 1;

  43.         sprintf(disdat,"L:%2d R:%2d T:%2d C",Lval,Rval,distem);
  44.         LCD_Write_String(0,0,disdat);
  45.         sprintf(disset," L:%2d R:%2d T:%2d",(unsigned int)setLval,(unsigned int)setRval,(unsigned int)setTval);
  46.         LCD_Write_String(0,1,disset);
  47.         while (1)        
  48.         {               
  49.                 if((key_s == 0)||(key_a == 0 )||(key_u == 0))
  50.                 {
  51.                         if(rekey == 0)                       
  52.                         {
  53.                                 DelayMs(10);
  54.                                 if(key_s == 0)
  55.                                 {               
  56.                                         if(SetFlag == 0)
  57.                                         {
  58.                                                 SetFlag =1;       
  59.                                         }
  60.                                         else if(SetFlag == 1)
  61.                                         {
  62.                                                 SetFlag =2;       
  63.                                         }
  64.                                         else if(SetFlag == 2)
  65.                                         {
  66.                                                 SetFlag = 3;       
  67.                                         }
  68.                                         else if(SetFlag == 3)
  69.                                         {
  70.                                                 SetFlag =0;       
  71.                                         }
  72.                                         rekey = 1;               
  73.                                 }
  74.                                 if(key_a == 0)
  75.                                 {               
  76.                                         if(SetFlag == 1)       
  77.                                         {       
  78.                                                 if(setLval <99)       
  79.                                                 {setLval++;}
  80.                                         }
  81.                                         else if(SetFlag == 2)
  82.                                         {
  83.                                                 if(setRval <99)       
  84.                                                 {setRval++;}
  85.                                         }
  86.                                         else if(SetFlag == 3)
  87.                                         {       
  88.                                                 if(setTval <99)       
  89.                                                 {setTval++;}
  90.                                         }
  91.                                         rekey = 1;               
  92.                                 }
  93.                                 if(key_u == 0)
  94.                                 {       
  95.                                         if(SetFlag == 1)       
  96.                                         {       
  97.                                                 if(setLval >0)       
  98.                                                 {setLval--;}
  99.                                         }
  100.                                         else if(SetFlag == 2)  
  101.                                         {
  102.                                                 if(setRval >0)       
  103.                                                 {setRval--;}
  104.                                         }
  105.                                         else if(SetFlag == 3)
  106.                                         {       
  107.                                                 if(setTval >0)               
  108.                                                 {setTval--;}
  109.                                         }       
  110.                                         rekey = 1;               
  111.                                 }

  112.                         }               
  113.                 }
  114.                 else
  115.                 {rekey = 0;}


  116.                 if(readADCFlag == 1)       
  117.                 {
  118.                         midval=ReadADC(1);       
  119.                         Lv=5.15-(float)midval*5.15/255;               
  120.                         Lval  = (unsigned int )(Lv * 100 )/5.16;
  121.                         DelayMs(10);         
  122.                         midval=ReadADC(0);                               
  123.                         Tv=5.15-(float)midval*5.15/255;       
  124.                         Rval  = (unsigned int )(Tv * 100 )/5.16;
  125.                         sprintf(disdat,"L:%2d R:%2d T:%2d C",Lval,Rval,distem);
  126.                         LCD_Write_String(0,0,disdat);
  127.                         LCD_Write_Char(14,0,0XDF) ;
  128.                         readADCFlag = 0 ;

  129.                         sprintf(disset," L:%2d R:%2d T:%2d ",(unsigned int)setLval,(unsigned int)setRval,(unsigned int)setTval);
  130.                         LCD_Write_String(0,1,disset);
  131.                         if(SetFlag == 1)       
  132.                         {
  133.                                 LCD_Write_Char(0,1,'S') ;       
  134.                                 LCD_Write_Char(5,1,' ') ;
  135.                                 LCD_Write_Char(10,1,' ') ;
  136.                         }
  137.                         else if(SetFlag == 2)
  138.                         {
  139.                                 LCD_Write_Char(0,1,' ') ;
  140.                                 LCD_Write_Char(5,1,'S') ;  
  141.                                 LCD_Write_Char(10,1,' ') ;
  142.                         }
  143.                         else if(SetFlag == 3)
  144.                         {
  145.                                 LCD_Write_Char(0,1,' ') ;
  146.                                 LCD_Write_Char(5,1,' ') ;  
  147.                                 LCD_Write_Char(10,1,'S') ;
  148.                         }
  149.                         else
  150.                         {
  151.                                 LCD_Write_Char(0,1,' ') ;
  152.                                 LCD_Write_Char(5,1,' ') ;
  153.                                 LCD_Write_Char(10,1,' ') ;
  154.                         }
  155.                         if(Lval <= setLval)       
  156.                         {
  157.                                  led_l = 0;                  
  158.                         }
  159.                         else
  160.                         {
  161.                                 led_l = 1;                 
  162.                         }
  163.                         if(Rval <= setRval)       
  164.                         {
  165.                                  relay = 0;               
  166.                         }
  167.                         else
  168.                         {
  169.                                 relay = 1;       
  170.                         }
  171.                         if(distem <= setTval)       
  172.                         {
  173.                                  led_b = 0;       
  174.                                 fan = 1;
  175.                         }
  176.                         else
  177.                         {
  178.                                 led_b = 1;          
  179.                                 fan = 0;
  180.                         }

  181.                 }
  182.                 if(readTem==1)               
  183.                 {
  184.                     temp=ReadTemperature();                          
  185.                         temperature=(float)temp*0.0625;          
  186.                         if(temperature >1)                               
  187.                         {distem = (unsigned int )temperature;}       
  188.                         readTem=0;
  189.                 }                       
  190.         }
  191. }

  192. void Init_Timer0(void)
  193. {
  194.         TMOD |= 0x01;                               
  195.         TH0=(65536-20000)/256;                 
  196.         TL0=(65536-20000)%256;
  197.         EA=1;           
  198.         ET0=1;           
  199.         TR0=1;         
  200. }

  201. void Timer0_isr(void) interrupt 1
  202. {
  203.         TH0=(65536-20000)/256;       
  204.         TL0=(65536-20000)%256;
  205.        
  206.         time_20ms++;
  207.         if(time_20ms % 20 == 0)
  208.         {
  209.                  readADCFlag = 1;
  210.         }
  211.         if(time_20ms % 40 == 0)       
  212.         {
  213.                  readTem = 1;       
  214.         }
  215. }
復(fù)制代碼
有對單片機(jī)感興趣的,研究技術(shù)的,歡迎加群955477798

所有資料51hei提供下載:
51大鵬溫濕度光照(準(zhǔn)) (2).zip (290.07 KB, 下載次數(shù): 192)

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏9 分享淘帖 頂2 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:1014556 發(fā)表于 2022-4-1 10:18 | 只看該作者
您好,您發(fā)表的“51單片機(jī)大棚溫濕度檢測顯示源程序與Proteus仿真圖”我下載了,在proteus中運(yùn)行的時候1602它為什么是沒有顯示的呢?
回復(fù)

使用道具 舉報

板凳
ID:474195 發(fā)表于 2023-4-10 17:53 | 只看該作者
小草半年 發(fā)表于 2022-4-1 10:18
您好,您發(fā)表的“51單片機(jī)大棚溫濕度檢測顯示源程序與Proteus仿真圖”我下載了,在proteus中運(yùn)行的時候1602 ...

調(diào)一下背光試下
回復(fù)

使用道具 舉報

地板
ID:1074025 發(fā)表于 2023-4-25 15:17 來自手機(jī) | 只看該作者
51小白冬 發(fā)表于 2023-4-10 17:53
調(diào)一下背光試下

怎么調(diào)節(jié)呢
回復(fù)

使用道具 舉報

5#
ID:474195 發(fā)表于 2023-5-10 16:03 | 只看該作者

這個百度一下 lcd1602背光調(diào)節(jié) 一大堆
回復(fù)

使用道具 舉報

6#
ID:641483 發(fā)表于 2023-5-23 15:59 | 只看該作者
謝謝樓主分享 先收藏 慢慢學(xué)習(xí)
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 狠狠操电影 | 免费a大片| 国产精品久久久久久久久久免费看 | 九九综合九九 | 亚洲欧美一区二区三区国产精品 | 久久精品成人 | 色伊人久久 | 欧美第一页| 国产精品国产精品国产专区不片 | aaa在线观看 | 国产日产欧产精品精品推荐蛮挑 | 91性高湖久久久久久久久_久久99 | 国产欧美精品一区二区色综合朱莉 | 懂色av色香蕉一区二区蜜桃 | 美女视频h | 欧美日本韩国一区二区三区 | 久久久久久国产精品免费免费男同 | 国产网站在线免费观看 | 欧美一级二级三级 | 国内激情av片 | 91在线网 | 91精品在线播放 | www.亚洲一区二区三区 | 久久久91精品国产一区二区精品 | 欧美在线观看一区 | 一区二区三区精品视频 | 在线黄色影院 | 国产福利在线免费观看 | 日韩欧美一区二区三区免费观看 | 久久噜噜噜精品国产亚洲综合 | 欧美精品一区二区三区在线四季 | av手机免费在线观看 | 美女天天操| 国产美女精品视频 | 国产黄色大片在线免费观看 | 观看av | 国产精品一区二区精品 | 中文字幕国产视频 | 日韩精品一区二区三区中文在线 | 久久综合伊人 | 日韩av一二三区 |