找回密码
 立即注册

QQ登录

只需一步,快速开始

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

请大神看看我的红外对管的程序为什么只执行最后一个程序

[复制链接]
跳转到指定楼层
楼主
ID:117677 发表于 2016-5-21 13:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<reg52.h>
sbit led1=P0^4; //0为开 1为关
sbit led2=P0^5;
sbit led3=P0^6;
sbit led4=P0^7;
sbit HW1=P2^7;
//sbit HW2=P2^6;
void GD();
void LED1();
void LED2();
void LED3();
void LED4();
void GS();
unsigned int num=0;
void main()
{
   while(1)
  {
   GS();
  if(num==1)
  {
   LED1();
  }
   else if(num==2)
  {
   LED2();
  }
  else if(num==3)
  {
   LED3();
  }
  else if(num==4)
  {
   LED4();
  }
//  switch(num)
//  {
//   case 2:LED1();break;
//   case 3:LED2();break;
//   case 4:LED3();break;
//   case 0:LED4();break;
//  }
}
}
void GS()
{
   if(HW1==0)
  {
   HW1=1;
   num++;
  }
}
void LED1()
{
    led1=0;
   led2=1;
   led3=1;
   led4=1;
}
void LED2()
{
     led1=0;
    led4=0;
    led2=1;
    led3=1;
}
void LED3()
{
   led1=0;
   led2=1;
   led3=0;
   led4=0;
}
void LED4()
{
       led1=0;
   led2=0;
   led3=0;
   led4=0;
}


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

使用道具 举报

沙发
ID:117677 发表于 2016-5-21 13:59 | 只看该作者
有没有大神看看为什么我的红外对管不管检测外部多少次变化 主函数while(1)中只执行最后一个if语句
回复

使用道具 举报

板凳
ID:110895 发表于 2016-6-25 18:08 | 只看该作者
应该是都执行了,只是太快了,看起来效果是最后一个。加延时能看出来。
回复

使用道具 举报

地板
ID:121867 发表于 2016-6-30 16:50 | 只看该作者
加延时函数
回复

使用道具 举报

5#
ID:117677 发表于 2016-7-15 20:13 | 只看该作者
恩 已经解决了 谢谢了
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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