标题: 大神帮我看下这个灯的单片机程序 按下后等延时30面要怎么改。这里面的延时现在变成... [打印本页]

作者: maidezhu    时间: 2017-5-9 22:04
标题: 大神帮我看下这个灯的单片机程序 按下后等延时30面要怎么改。这里面的延时现在变成...
大神帮我看下程序后面一个是按下后等延时30面要怎么改。这里面的延时现在变成了消抖了。是不是不能用while来写啊。


#include <STC15W4K.h>
#include"delay.h"
#define on 1
#define off 0
sbit SW1=P1^0;
sbit SW2=P1^1;
sbit SW3=P3^0;
sbit SW4=P1^2;//定义开关接口
sbit L=P2^6;
sbit Y=P2^7;//输出脚

main(){
        while(1)
        {
                if(SW1!=SW2!=SW3)L=off;//SW1与SW2与SW3不相等时亮               (随便三个按键都可以控制开灯关灯)
                else L=on;                 //否则灭灯
               
                if(SW4==off)  //sw4与off不相等时亮                 (按下这个按键后灯开后面延时30秒)
                Y=off;
                {           
            delay_ms(1);          //延时                      (这个延时变成按键的消抖了而不是电灯的延时控制)        
            Y=on;                //时间到后灯灭                        (这里想延时30秒后关灯。但是不会影响上一个程序)
                }
        }

        
        

}



作者: zl2168    时间: 2017-5-10 10:39
重新换了一个马甲,“30面”怎么还没换?
作者: maidezhu    时间: 2017-5-10 14:02
zl2168 发表于 2017-5-10 10:39
重新换了一个马甲,“30面”怎么还没换?

30秒哈哈哈打错了
作者: 微微的笑    时间: 2017-5-10 15:53
main(){
        while(1)
        {
                if(SW1!=SW2!=SW3)L=off;//SW1与SW2与SW3不相等时亮               (随便三个按键都可以控制开灯关灯)
                else L=on;                 //否则灭灯
               
                if(SW4==off)  //sw4与off不相等时亮                 (按下这个按键后灯开后面延时30秒)
                 {
                   Y=off;
                   for(i=0;i<300;i++)         
                      {
                        delay_ms(100);          //延时                      (这个延时变成按键的消抖了而不是电灯的延时控制)        
                      }                  Y=on;                //时间到后灯灭                        (这里想延时30秒后关灯。但是不会影响上一个程序)
                }
        }






欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1