找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2668|回復: 0
收起左側

單片機糧倉濕度檢測Proteus仿真程序

[復制鏈接]
ID:891089 發(fā)表于 2021-5-1 17:00 | 顯示全部樓層 |閱讀模式
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
1.png 51hei.png

單片機源程序如下:
  1. #include "reg52.h"
  2. #include "display.h"
  3. #include "adc.h"


  4. sbit key1  =P1^0;
  5. sbit key2  =P1^1;
  6. sbit key3  =P1^2;
  7. sbit buzz  =P1^3;
  8. sbit p=P3^6;
  9. sbit j=P3^7;


  10. unsigned char fresh;
  11. unsigned char Setflag;
  12. unsigned char Setsdup=37;//設置的濕度
  13. unsigned char Setsddown=27;//設置的濕度
  14. unsigned char Hum;

  15. void Init_Timer0(void)
  16. {
  17.          TMOD |= 0x01;          //使用模式1,16位定時器,使用"|"符號可以在使用多個定時器時不受影響                     
  18.          EA=1;            //總中斷打開
  19.          ET0=1;           //定時器中斷打開
  20.          TR0=1;           //定時器開關打開
  21. }

  22. void main()
  23. {
  24.         Init_Timer0();//初始化定時器
  25.         while(1)
  26.         {
  27.                 Hum=adc0832(0);
  28.                 if(Setflag==0)Display_num2(Hum,fresh);//顯示溫度
  29.                 if(Setflag==1)Display_num2(Setsdup,fresh);//顯示設定的值
  30.                 if(Setflag==2)Display_num2(Setsddown,fresh);//顯示設定的值
  31.                 if(Hum>Setsdup)
  32.                 {
  33.                    buzz=0;
  34.                    p=0;
  35.                    j=1;
  36.                 }
  37.                 else if(Setsddown>Hum)
  38.                 {
  39.                    buzz=0;
  40.                    j=0;
  41.                    p=1;
  42.                 }
  43.                 else
  44.                 {
  45.                    buzz=1;
  46.                    j=1;
  47.                    p=1;
  48.                 }
  49.         }
  50. }

  51. void Timer0_isr(void) interrupt 1
  52. {
  53.         static unsigned char key1num;//按鍵一按下標志
  54.         static unsigned char key2num;//按鍵二按下標志
  55.         static unsigned char key3num;//按鍵三按下標志
  56.         static unsigned char num;

  57.         TH0=(65536-20000)/256;                  //重新賦值 2ms
  58.         TL0=(65536-20000)%256;
  59.        
  60.         num++;
  61.         if(num>18)
  62.         {
  63.                 num=0;
  64.                 if(Setflag)fresh=!fresh;
  65.         }

  66.         if(key1==0)key1num=1;
  67.         else if(key1num==1)
  68.         {
  69.           key1num=0;
  70.           Setflag++;
  71.           if(Setflag==3)Setflag=0;
  72.           if(Setflag==0)fresh=0;
  73.         }

  74.         if(key2==0)key2num=1;
  75.         else if(key2num==1)
  76.         {
  77.           key2num=0;
  78.           if(Setflag==1)if(Setsdup<100)Setsdup++;
  79.           if(Setflag==2)if(Setsddown<Setsdup)Setsddown++;
  80.         }

  81.         if(key3==0)key3num=1;
  82.         else if(key3num==1)
  83.         {
  84.           key3num=0;
  85.           if(Setflag==1)if(Setsdup>Setsddown)Setsdup--;
  86.           if(Setflag==2)if(Setsddown>0)Setsddown--;
  87.         }
  88. }
復制代碼

所有資料51hei提供下載:
糧倉濕度檢測.zip (81.13 KB, 下載次數(shù): 53)

回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表