在51单片机实验板上,用C语言编程实现独立按键对LED流水灯显示的控制。 1.最多使用单片机实验板上3个独立按键,控制由8个LED组成的流水灯的显示。 2.通过独立按键控制流水灯实现4种不同样式的循环显示。 3.当流水灯显示某一种样式时,可通过独立按键实现暂停和重新开始显示,
时间: 2023-05-20 14:06:34 浏览: 93
回答:
以下是实现独立按键对LED流水灯显示的控制的C语言代码:
#include <reg51.h>
#define LED P0
#define KEY P1
sbit KEY1 = P1^0;
sbit KEY2 = P1^1;
sbit KEY3 = P1^2;
void delay(unsigned int t)
{
unsigned int i, j;
for(i=0; i<t; i++)
for(j=0; j<125; j++);
}
void main()
{
unsigned char mode = 0;
unsigned char pause = 0;
unsigned char led = 0x01;
while(1)
{
if(KEY1 == 0)
{
delay(10);
if(KEY1 == 0)
{
mode++;
if(mode > 3)
mode = 0;
pause = 0;
}
while(KEY1 == 0);
}
if(KEY2 == 0)
{
delay(10);
if(KEY2 == 0)
{
pause = !pause;
}
while(KEY2 == 0);
}
if(KEY3 == 0)
{
delay(10);
if(KEY3 == 0)
{
mode = 0;
pause = 0;
led = 0x01;
}
while(KEY3 == 0);
}
if(!pause)
{
switch(mode)
{
case 0:
LED = led;
led <<= 1;
if(led == 0)
led = 0x01;
break;
case 1:
LED = 0x55;
break;
case 2:
LED = 0xAA;
break;
case 3:
LED = 0xFF;
break;
}
delay(100);
}
}
}
这段代码实现了以下功能:
1. 通过3个独立按键控制8个LED组成的流水灯的显示。
2. 通过独立按键控制流水灯实现4种不同样式的循环显示。
3. 当流水灯显示某一种样式时,可通过独立按键实现暂停和重新开始显示。
其中,KEY1、KEY2、KEY3分别对应单片机实验板上的三个独立按键,LED对应8个LED灯。delay函数用于延时,实现流水灯的效果。mode表示当前的显示模式,led表示当前流水灯的状态,pause表示是否暂停。