微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 怎么用一个按钮控制多种花样流水灯 ?

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

时间:10-02 整理:3721RD 点击:

单片机怎么用一个按钮控制多种花样流水灯,只要一按就马上执行下一种花样?
用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.请大家帮帮忙。
分享到:

用外部中断设置标志位咯。用一个变量就可以了。在主程序根据这个标志位的不同执行不同的程序。不同的程序就是各类流水灯!

用计数器,软件,单片机 可以制作一键多种功用

建议去看下中断的概念。

LED使用定时器0,方式2,TCON设为0x53或0x55,IE设为0x8b或0x8f,开启外中断INT0还是不行。谢谢指教!

使用合泰单片机  何生QQ182875613

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top