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

標題: 51單片機大棚溫濕度檢測顯示源程序與Proteus仿真圖 [打印本頁]

作者: 51小白冬    時間: 2021-5-28 21:56
標題: 51單片機大棚溫濕度檢測顯示源程序與Proteus仿真圖
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機源程序如下:
  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. }
復制代碼
有對單片機感興趣的,研究技術的,歡迎加群955477798

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


作者: 小草半年    時間: 2022-4-1 10:18
您好,您發表的“51單片機大棚溫濕度檢測顯示源程序與Proteus仿真圖”我下載了,在proteus中運行的時候1602它為什么是沒有顯示的呢?
作者: 51小白冬    時間: 2023-4-10 17:53
小草半年 發表于 2022-4-1 10:18
您好,您發表的“51單片機大棚溫濕度檢測顯示源程序與Proteus仿真圖”我下載了,在proteus中運行的時候1602 ...

調一下背光試下

作者: 愛學習wh    時間: 2023-4-25 15:17
51小白冬 發表于 2023-4-10 17:53
調一下背光試下

怎么調節呢
作者: 51小白冬    時間: 2023-5-10 16:03
愛學習wh 發表于 2023-4-25 15:17
怎么調節呢

這個百度一下 lcd1602背光調節 一大堆
作者: Q__Q    時間: 2023-5-23 15:59
謝謝樓主分享 先收藏 慢慢學習




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 久久久成人网 | 成人不卡一区二区 | 区一区二在线观看 | 九九热在线免费视频 | 久久久观看 | 超级碰在线 | 人干人操 | 亚洲欧美国产一区二区三区 | 18av在线播放 | 久久亚洲一区二区三区四区 | 一区精品在线观看 | 日韩欧美在线一区 | 成人久久一区 | 亚洲精品在线免费观看视频 | 精品久久久久久久人人人人传媒 | 亚洲不卡一 | 每日更新av | 一区二区日本 | 国产成人免费视频网站视频社区 | 国产精品成人在线播放 | 你懂的在线视频播放 | 精品国产黄a∨片高清在线 成人区精品一区二区婷婷 日本一区二区视频 | 成人av观看 | h片免费在线观看 | 一区二区不卡高清 | 国产毛片久久久久久久久春天 | 免费看啪啪网站 | 免费看欧美一级片 | 欧美午夜精品 | 99精品视频一区二区三区 | 久久综合久久久 | 国产欧美精品一区 | 久久精品视频在线播放 | 日韩国产在线 | 久久久久久99 | 在线视频一区二区 | 欧美一区二区三区在线观看视频 | 99精品欧美一区二区三区 | 国产日韩久久 | 久久精品小视频 | 国产三区av|