急求单片机流水灯程序

来源:百度知道 编辑:UC知道 时间:2024/07/02 04:59:45
请大虾们帮帮忙,由STC89C51构成的8个LED管流水灯程序,要求程序尽量复杂,要求用C编写。谢谢!急求!!!
这个程序太简单了吧,我希望实现更难一点的功能

#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int

sbit longtime=P3^2; //增加灯的时间 按键
sbit shorttime=P3^3; //减少灯的时间 按键
uchar i,a;
uint num;
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}

void init()
{
num=10;
P0=0xFE;
a=P0;
}

void keyscan()
{
if(longtime==0)
{
delay(5);
if(longtime==0)
while(!longtime);
num=num+200;
}
if(shorttime==0)
{
delay(5);
if(shorttime==0)
while(!shorttime);
if(num>=200)
num=num-200;
else
num--;
if(num==0)
num++;
}
}

void main()
{
init();
while(1)
{

for(i=0;i<8;i++)
{
keyscan();
a=_crol_(a,1);
P0=a;<