请教高手关于单片机流水灯C语言编程

来源:百度知道 编辑:UC知道 时间:2024/06/07 11:09:47
用2051做56个点的流水灯C语言程序,用P1做行、P3做列,8*7的,应该怎么做啊??哪位高手能帮忙写个C语言的程序吗??谢谢,就是最简单的跑马灯,不用变速。
非常感谢 yjicss1234的回答,但是有个问题,2051没有P3.6口,程序走到这里的时候LED会有一个明显的停顿,有解决的办法吗?? 另外 525382594明显是从别的论坛上COPY来的嘛,文不对题啊

delay(unsigned int t)
{while(t--);}

main()
{unsigned char a=0x01,b=0xfe,i,j;
while(1)
{
b=0xfe;
for(i=0;i<7;i++)
{a=0x01 ;
for(j=0;j<8;j++)
{P1=a;
a<<=1;
P3=b;
delay(5000);
}
b<<=1;
b|=1;
}
}
}

如果这么简单的单片机程序都不会写,建议你看看书。

/*****************************************
*用P1口接LED
*****************************************/
#include<at89x52.h> //51系列单片机定义文件
#define uchar unsigned char //定义无符号字符
#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(500); //调用延时函数
temp<<=1;
}
temp=0x80;
for(i=0;i<8;i++) //8个流水灯反向逐个闪动
{
P1^=temp;
delay(