8051单片机P0口接有16个LED,C语言实现流水灯

求代码 啊 不然给个思路也行

嘉定单片机是STC89C52RC这款常用51单片机,推荐用两个74HC573,输入全接P0;输出接16个LED负极(573有一定驱动能力,实际应用可以接LED正极,但是习惯上仍采用灌电流的驱动方式)然后LED另一极接正极,设573的所存分别用P3.7和P3.6控制,程序如下:
#include<reg52.h>sbit suocun1=P3^7;
sbit suocun2=P3^6;

void delay(int z){
int x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}

void main(){
char a;
while(1)
{
suocun1=1;
suocun2=0;
for(a=0;a<8;a++)
{
P0=0x01<<1;
delay(50);
}

suocun2=1;
suocun1=0;
for(a=0;a<8;a++)
{
P0=0x01<<1;
delay(50);
}
}
}

我在KEIL4上编译0错误0警告
573的接法可以百度 datasheet 很简单的
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-31
建议扩展接口把,单片机P0口就8个脚,要控制16只LED还要做跑马灯,建议用2个74HC595移位寄存器,联级输出,或者74HC138译码器 2个都可以,别问我怎么做,你可以到百度文库看一下595手册,按照说明写程序程序非常简单。