单片机程序 怎样用按键控制流水灯,用中断法,还有,怎么实现两个中断控制流水灯?

怎么用
我这里只有部分程序 不太懂
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
void delay(uint z)
{
uint i,j;
for(i=0;i<z;i++)
for(j=0;j<114;j++);
}
sbit key5=P3^2;
sbit led=P1^3;

void main()
{

IT1=1;//下降沿触发
EX1=1;//外部中断0中断允许
EA=1;//开总中断
{

while(1)
{

}
}
}
void key5_INT1(void) interrupt 2
{
uchar i;
while(!key5);
for(i=0;i<8;i++)
{
P1=~(0x01<<i);
delay(200);
}
}

你的中断没设置好啊,要给初值的,就是多久中断一次,你仔细理解了中断的概念,就不难了追问

能写一个程序吗?大神

追答

汗,不是什么大神,这种简单的程序,网上一搜一大堆啊,关键是自己看懂理解了才行,沉下心,别急,大家都是这么过来的

追问

那这个应该怎么改啊

温馨提示:内容为网友见解,仅供参考
无其他回答

单片机C语言编程:控制流水灯
T0 工作模式2 计时器中断,一次200us,1s流水灯左移或右移一次。k3触发外部中断0,级别高于计时器中断,故暂停。include <reg52.h>#include <intrins.h> #defineuint unsigned int#defineuchar unsigned charsbit k1=P1^0; \/\/左循环按钮sbit k2=P1^1; \/\/右循环按钮sbit k4=P1^2; \/\/恢复暂停...

用单片机怎样控制流水灯?
1、用精确定时的方法,设置流水灯运行时的时间间隔,延时时间为500MS。2、#include "reg51.h"首先写出单片机的头函数。3、#include "intrins.h"输入位移函数。4、unsigned int count=0,led;定义函数。5、输入主函数,定义单片机的端口,写入延时函数。6、中断跳转,使流水灯运行起来。

单片机c语言编了个流水灯,用按键怎么实现它暂停。
实现流水灯的方式有很多种(中断,定时器,延时等等),看用哪种方式,最简单的是延时做流水灯,那么在死循环里面增加按键检测,判断出有按键按下来时,再进入死循环,程序不往下走就可以暂停,再按跌出死循环。include \/\/51系列单片机定义文件 define uchar unsigned char \/\/定义无符号字符 define uint ...

单片机中流水灯如何控制
主要靠软件控制,简单的可以使用左移或右移指令,将低电平0 逐渐移入寄存器中,即控制LED指示灯逐渐一个一个地点亮或一个一个地熄灭。复杂点: 可以进行花式流水控制。例如: 可以由两边逐渐向内点亮 然后再由内逐渐向外一个一个熄灭。还可以由由内逐渐向两边内点亮 然后再由两边渐向内逐一个一...

51单片机流水灯如何通过两个按键启动和停止 ,怎么停止
define led P2\/\/ char i;sbit k1=P3^6; \/\/启动按键 sbit k2=P3^7;\/\/停止按键 bit s=0; \/\/ 启停标志 char a[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; \/\/LED灯的数组 void delay1s(void); \/\/延时函数 void liushuideng(); \/\/流水灯的循环 void main(){ led...

单片机中流水灯如何控制
主要靠软件控制,简单的可以使用左移或右移指令,将低电平0 逐渐移入寄存器中,即控制LED指示灯逐渐一个一个地点亮或一个一个地熄灭。复杂点:可以进行花式流水控制。例如:可以由两边逐渐向内点亮 然后再由内逐渐向外一个一个熄灭。还可以由由内逐渐向两边内点亮 然后再由两边渐向内逐一个一个熄灭。...

如何用单片机控制流水灯闪烁?
可以用for循环试试unsingned char i;for(i=0;i<5;i++)\/\/流水灯闪烁程序。若干个灯泡依次点亮就叫流水灯,它用在夜间建筑物装饰方面。例如在建筑物的棱角上装上流水灯,可起到变换闪烁美不胜收的效果。单片机(Single-Chip Microcomputer)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据...

单片机控制流水灯,
单片机中流水灯控制:硬件连接很简单,只要将8个led指示灯接在p1口上 另一端通过220欧姆的电阻接+5v电源上,就可以了。主要靠软件控制,简单的可以使用左移或右移指令,将低电平0 逐渐移入寄存器中,即控制led指示灯逐渐一个一个地点亮或一个一个地熄灭。复杂点:可以进行花式流水控制。例如:可以由...

52单片机独立按键控制LED流水灯
怎么个控制法,按一下,流水灯停下,再按一下开始,还是按一下对应亮一个或亮下一个 还是想知道怎么用按键 教你用按键的方法,功能你自己去实现。把io口拉高电平后,接按键,如果按键按下,会接地,读出的io口电平会变为低,这样就可以判断说法按下按键,但要一直重复读取io口数据,而且要防抖动...

C51单片机编程,按键控制流水灯
\/\/若run=dir=1,自上而下流动 if(dir)for(i=0;i<=3;i++){ P2=led[i];delay(200);} else for(i=3;i>=0;i--){ \/\/run=1,dir=0,自下而上流动 P2=led[i];delay(200);} else P2=0xff; \/\/若run=0,全部灯灭 } } ...

相似回答