怎么用一个按钮控制多种花样流水灯 ?
时间: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