#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define initial 0xfe
sbit dula=P2^0;
sbit wela=P2^1;
sbit led0=P1^0;
sbit led1=P1^1;
sbit led2=P1^2;
sbit led3=P1^3;
sbit led4=P1^4;
sbit led5=P1^5;
sbit led6=P1^6;
sbit led7=P1^7;
sbit EN=P2^5;
sbit FM=P2^3;
sbit RST=P1^2;
uchar temp;
uint i;
uchar code table[]={
0x3f,0x06,0x5b,
0x4f,0x66,0x6d,
0x7d,0x07,0x7f,
0x6f,0x77,0x7c,
0x39,0x5e,0x79,
0x71};
void regc52_init();
void delay1s(void);
void main() {
wela=1;
P0=0xc0;
wela=0;
while(1) {
//流水式点亮led灯
temp=0xfe;
P1=temp;
delay1s();
for(i=1;i<7;i++) {
temp=_crol_(temp,1);
P1=temp;
delay1s();
}
//数码管变换
regc52_init();
for(i=0;i<15;i++) {
dula=1;
P0=table[i];
dula=0;
delay1s();
}
}
}
void regc52_init() {
FM=0;
EN=0;
RST=0;
}
void delay1s(void) //误差 0us
{
unsigned char a,b,c;
for(c=167;c>0;c--)
for(b=171;b>0;b--)
for(a=16;a>0;a--);
_nop_(); //if Keil,require use intrins.h
}