代码有很多错误,因为没搞清楚咋个接线(能传输数据就OK),反正缝缝补补总算是给这一堆玩意点亮了。
#include <REGX52.H>
#include <intrins.h>
unsigned char a;
unsigned char b;
unsigned char sum = 7;
void delay() //@12.000MHz 延迟函数(执行函数)
{
unsigned char i, j, k;
_nop_();
i = 8;
j = 154;
k = 122;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
P1--;//交通灯二进制计数
sum++;//动态数码管中的单个数码管(右移)
a = sum & 4;
P0_0 =a >> 2;
b = sum & 2;
P0_1 = b>> 1;
P0_2 = sum & 1;
P0_6=P0_2;
P0_7=~P0_2;//led 交通灯下面两个led循环点亮
P2=~P3;
}
void main ()//主函数
{
P1=0xff;
while(1)
{
P3=~0x3f; delay();
P3=~0x06; delay();
P3=~0x5b; delay();
P3=~0x4f; delay();
P3=~0x66; delay();
P3=~0x6d; delay();
P3=~0x7d; delay();
P3=~0x07; delay();
P3=~0x7f; delay();
P3=~0x6f; delay();
}//静态数码管显示,并执行延迟函数
}