找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4469|回复: 7
收起左侧

在一个单片机程序里两个按键控制房间灯不管按那个都可以开和关程序问题

[复制链接]
ID:183046 发表于 2017-5-14 00:57 | 显示全部楼层 |阅读模式
在一个程序里两个按键控制房间灯不管按那个都可以开和关,然后黑色按键按下过道灯亮然后过30秒灭。延时不能影响到按键和前面房间灯的程序。我自己写的这个,按下过道灯后,按房间灯就不能亮了,要等过道灯灭了才能用。求改下程序。
0.png 0.png
#define on 1
#define off 0
sbit SW1=P1^0;
sbit SW2=P1^1;
sbit SW3=P3^0; //这个接口i也算按键是wifi模块过来的信号
sbit SW4=P1^2;//定义开关接口
sbit L=P2^6;
sbit Y=P2^7;//输出脚

main()
{
        while(1)
        {
                if(SW1!=SW2!=SW3){
                L=off;
                }else{L=on;}


                                
                if(SW4==1 && Y==1){
                        delay_ms(3000);
                             Y=0;
                        }else if(SW4==0 && Y==0){
                        Y=1;
                        }


回复

使用道具 举报

ID:169944 发表于 2017-5-14 01:11 | 显示全部楼层
你可以用定时器来延时,时间到了改变状态,用delay的话,系统一直在延时,不能干别的

评分

参与人数 1黑币 +30 收起 理由
admin + 30 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:111634 发表于 2017-5-14 07:54 | 显示全部楼层
单片机控制最终还是要通过连线实现,楼主的题目不值得用单片机。
回复

使用道具 举报

ID:192235 发表于 2017-5-14 09:37 | 显示全部楼层
延时程序拿来计时的话,时间久了会产生误差,计时最好拿定时器中断来计时,加几个标志位,就能实现你说的功能了
回复

使用道具 举报

ID:154074 发表于 2017-5-14 11:09 | 显示全部楼层
把房间开关接到外部中断上也可以
回复

使用道具 举报

ID:183046 发表于 2017-5-14 14:42 | 显示全部楼层
zha 发表于 2017-5-14 01:11
你可以用定时器来延时,时间到了改变状态,用delay的话,系统一直在延时,不能干别的

写一个给我看下怎么的构架
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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