找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2675|回复: 0
打印 上一主题 下一主题
收起左侧

单片机粮仓湿度检测Proteus仿真程序

[复制链接]
跳转到指定楼层
楼主
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)


单片机源程序如下:
  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, 下载次数: 53)

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶1 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表