/*间隔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++; }
|