找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1380|回复: 0
收起左侧

单片机温控程序源码

[复制链接]
ID:236125 发表于 2017-10-26 18:02 | 显示全部楼层 |阅读模式
本帖最后由 一龙大师 于 2017-10-27 20:11 编辑

当按下K1键,进入手动设定加一,相对地恒温温度值的状态,此时按下K2键可以设定恒温温度值,每按一下K2,温度设定值,每按一下K3,设定值减一,设定好在正确温度范围内的温度值后,再按一下K2,系统开始执行,当前测得的温度将于设定值进行比较,以控制加热或散热装置运行或停止,期间,按下K4键,这设定值请零,系统恢复初始状态,停止所有动作。在设定好恒温温度值后, 可以按下K5键,系统在执行恒温的加热或散热的同时还进入定时时间设定状态,此时,同样可以按K1、K3键来加减设定定时时间值,设定好后再按一下K5,定时系统准备完成,等待环境温度降到或升到设定的恒定温度值,环境温度到达设定温度值时,定时开始,定时数值开始进入倒计时,时间值逐步减小,当减小到零时,系统恢复初始状态,一切运行停止,且恒温温度设定值和定时时间值都自动清零。期间,可以按下K6键,将定时时间值清零以重新设定。
void keyscan()
{
    if(!k2)
        {
                delay(10);
                if(!k2)        
                {
                        set_en =!set_en;
                }
        }
    if(set_en==1)
        {
         if(!k1);
         {
           delay(10);
           if(!k1)
           {  
             num2++;
                 while(!k1);
                }
         }
         if(!k3)
         {
           delay(10);
           if(!k3)
           {
             num2--;
                 while(!k3);
            }
          }
        
        }
        if(!k4)
        {num2=0;}
        if(!k5)
        {
                delay(10);
                if(!k5)        
                {
                        set_en1=set_en1+1;
                        if(set_en1==3)
                         set_en1=0;
                }
        }

    if((set_en1==1)&&(set_en==0))
        {
         if(!k1);
         {
           delay(10);
           if(!k1)
           {  
             num3++;
                 while(!k1);
                }
         }
         if(!k3)
         {
           delay(10);
           if(!k3)
           {
             num3--;
                 while(!k2);
            }
          }
        
        }
        if((set_en1==2)&&(num1==num2)&&(num2!=0))
        {
            TR0=1;
        }
    if(!k6)
        {num3=0;}
}
这是什么意思
if(!k2)
        {
                delay(10);
                if(!k2)        
                {
                        set_en =!set_en;
                }
        }


     if(!k5)
        {
                delay(10);
                if(!k5)        
                {
                        set_en1=set_en1+1;
                        if(set_en1==3)
                         set_en1=0;
                }
        }

回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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