/*间隔300ms先奇数亮再偶数亮,循环三次;一个灯上下循环三次;两个分别从两边往中间流动三次;再从中
间往两边流动三次;8个全部闪烁3次;关闭发光管,程序停止。*/
//P0口位输出口
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table[]={0x55,0xaa,0x7f,0x7e,0xbd,0xdb,0xe7};
uchar t,i,j,temp;
void delay(uint z)
{
while(t!=z);
t=0;
}
void main()
{
t=0;
TMOD=0x01;
TH0=(65536-50000)/256;//timer 50ms
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
while(1)
{
/*间隔300ms先奇数亮再偶数亮,循环三次;一个灯上下循环三次;两个分别从两边往中间流动三次;再从中
间往两边流动三次;8个全部闪烁3次;关闭发光管,程序停止。*/
for(i=0;i<3;i++)
{
temp=table[0];
P0=temp;
delay(6);
temp=table[1];
P0=temp;
delay(6);
}//间隔300ms先奇数亮再偶数亮,循环三次?
temp=table[2];
_nop_();
for(i=0;i<24;i++)
{
P0=temp;
delay(6);
temp=_cror_(temp,1);
}//一个灯上下循环三次?
//uchar code table[]={0x55,0xaa,0x7f,0x7e,0xbd,0xdb,0xe7};
for(i=0;i<3;i++)
{
for(j=3;j<8;j++)
{
P0=table[j];
delay(6);
}
}//liang bian dao zhong jian
for(i=0;i<3;i++)
{
for(j=6;j>2;j--)
{
P0=table[j];
delay(6);
}
}//zhongjian wang liangbian
for(i=0;i<3;i++)
{
P0=0xff;
delay(6);
P0=0x00;
delay(6);
} //8个全部闪烁3次
P0=0xff;
delay(10);
while(1);
}
}
void timer0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
t++;
}
转自:http://www.51hei.com/bbs/dispbbs.asp?boardid=2&id=4025
|