单片机_闪烁流水灯设计

试设计一个闪烁流水灯控制器,该控制器可以控制8个灯顺序亮灭,当按钮K按下1次后,每次顺序点亮一个灯。而且每个点亮的灯在闪烁3次后,才能灭,周而复始,直到按钮K二次按下。(用状态机设计)

我用C写的可以吗,效果应该是和你说的一样了,K按下,8个灯顺序亮一遍,亮的时候闪3次,然后一直循环;知道第二次按下,我用外中断做的,你自己弄的时候看一下你自己的外中断是哪个,吧P3^2改成你自己的,还有我的灯是P2口控制,你也把它改成你自己的就可以了
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit k=P3^2;
uchar temp,i; //赋值变量
void delay(uint z);
void main() //主程序
{
IT0=1;
EA=1;
EX0=1;
P2=0xff;
k=1;
while(k==0)
{
temp=0x01;
for(i=0;i<8;i++)
{
P2=~temp;
delay(100);
P2=0xff;
delay(100);
P2=~temp;
delay(100);
P2=0xff;
delay(100);
P2=~temp;
delay(100);
P2=0xff;
delay(100);
temp<<=1;
delay(200);
}
}
}
void Key() interrupt 0
{
k=~k;
}
void delay(uint z) //1ms延时子函数
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-08-21
请问你用的什么单片机?51 AVR ARM 还是STM?
程序不难
用状态机实现按键的返回是吧?

用单片机控制的LED流水灯设计
实现流水灯功能的关键在于控制单片机I\/O口电平,通过编程实现LED的点亮与熄灭。本设计采用多种编程方法,包括位控法、循环移位法和查表法。3.1 位控法 通过顺序控制P1口的每个位,实现LED的循环点亮与熄灭。程序简单,但代码量大。3.2 循环移位法 利用循环移位指令,简化代码,实现LED的流水效果。3....

单片机流水灯C语言程序(8个灯,依次点亮每个灯,延时500MS)
define uint unsigned int \/\/定义无符号整数 void delay(uint); \/\/声明延时函数 void main(void){ uint i;uchar temp;while(1){ temp=0x01;for(i=0;i<8;i++) \/\/8个流水灯逐个闪动 { P1=~temp;delay(100); \/\/调用延时函数 temp<<=1;} temp=0x80;for(i=0;i<8;i++) \/\/8个...

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

单片机流水灯怎么实现的?
在这个单片机流水灯代码中,假设使用的是8051单片机。需要定义8个LED灯,分别连接到P1端口的不同引脚上。然后使用一个循环结构来控制这8个LED灯按照一定的顺序逐个亮起,形成流水灯的效果。具体来说,使用for循环来控制LED灯的亮灭顺序。在每次循环中,通过给P1端口赋值来控制LED灯的亮灭状态。例如,给P...

用单片机控制的LED流水灯设计(电路、程序全部给出)
硬件部分,流水灯基于单片机最小应用系统构建,仅需八个LED、晶振、复位、电源等基本元件,每个LED的亮灭控制依赖P1口的电平调节。通过控制P1.0到P1.7的电平变化,连续点亮和熄灭,创造出流水灯效果。软件编程部分,有三种方法:位控法通过逐个位操作控制LED,虽然直观但代码较长;循环移位法利用循环指令...

用单片机控制的LED流水灯设计(电路、程序全部给出)
创意无限:自定义流水灯花样 最后,用户可以自由编写TAB数据表,如DB 11111110B, 11111101B, ... 0FFH,创造出独特的LED流水灯效果。编写好程序后,只需编译、烧录到AT89C51单片机,再连接电路,你将亲眼目睹LED的动态流水之美。结语:探索无限可能 本文的示例提供了一个基础的LED流水灯设计,但潜力无限...

基于51单片机设计的花样流水灯设计
在软件实现上,使用51单片机的定时器和端口控制来控制LED灯的亮灭顺序和时间。通过计数器变量控制LED灯的亮灭,每次定时器溢出后,改变LED灯的亮灭状态,实现花样流水灯效果。通过调整定时器的计数周期和每个灯亮起的时间,可以调整花样流水灯的效果。以下是三个不同的闪光灯效果代码实现示例,分别为常亮...

单片机流水灯怎么设置?
单片机流水灯1到8依次亮,是通过编程控制单片机的I\/O端口实现的。通常使用循环结构和延时函数,依次将每个LED灯对应的I\/O端口置为高电平,使其亮起,然后延时一段时间,再将其置为低电平,使其熄灭。通过不断循环这个过程,就可以实现流水灯的效果。单片机流水灯是一种常见的电子制作项目,它通过单片机...

如何用单片机制作一个流水灯?
1、首先要写入单片机的头函数,定义单片机P1口的8个管脚,让他们分别代表流水灯的8个led。2、写一个大约一小时的延时函数,为了清楚的看到流水灯的、效果。3、下面是流水灯的主函数,流水灯一个点亮后一个熄灭反复循环点亮熄灭。4、这样流水灯就可以反复循环了。把程序下到仿真软件或者是开发板,进行...

51单片机C程序实验LED灯:[2]左到右的流水灯
依旧是基础的LED灯部分的实验 说明:实现一排灯从左到右依次一个一个点亮熄灭,实现流水灯 proteus电路图 元件清单:(分别是) 51单片机 电容 瓷片电容(也可用普通电容) 晶振 红色二极管 电阻 电路图的连接方法 程序清单 说明:本例有两种程序写法 第一种是入门级别比较基础的写法 先是依旧延时子...

相似回答