怎么用一个按钮控制多种花样流水灯 ?

2019-07-15 22:06发布

本帖最后由 张绍能 于 2013-10-15 22:44 编辑

单片机怎么用一个按钮控制多种花样流水灯,只要一按就马上执行下一种花样?
用P3^2做按钮输入,按第一下执行第一种花样跑马灯程序,按第二下执行第二种花样跑马灯,……。P0,P1,P2口输出。一共有个18个输出口控制LED灯。大家帮我写一个这样的C程序,万分感谢!
void main(void)
  {
   EA=1;   //开放总中断
   EX0=1;  //允许使用外中断
   IT0=1;  //选择负跳变来触发外中断
x=0;

while(1)
   switch(x)
            {
              case 0:  rzmyy();
                      break;
      case 1:rzmzy();
                      break;
      case 2: P0=0xfb;
                      break;
      case 3: P0=0xf7;
                      break;            
            }
            }

/**************************************************************
函数功能:外中断T0的中断服务程序
**************************************************************/
void int0(void) interrupt 0 using 0 //外中断0的中断编号为0
{
  x++;  
  if(x==3)
   x=0;

}
为什么按完按钮后他还在执行case 1: 要等case 1执行完了才执行case 2.请大家帮帮忙。
分享到:

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
117788674
1楼-- · 2019-07-16 02:21
用外部中断设置标志位咯。。用一个变量就可以了。在主程序根据这个标志位的不同执行不同的程序。不同的程序就是各类流水灯!
BILVE梦中人
2楼-- · 2019-07-16 02:48
用计数器,软件,单片机 可以制作一键多种功用
shiqiankun424
3楼-- · 2019-07-16 04:56
 精彩回答 2  元偷偷看……
hjzsn
4楼-- · 2019-07-16 07:43
LED使用定时器0,方式2,TCON设为0x53或0x55,IE设为0x8b或0x8f,开启外中断INT0还是不行。谢谢指教!
瑞佑_黄S
5楼-- · 2019-07-16 12:59
使用合泰单片机  何生QQ182875613

一周热门 更多>