|
- ;張培 QQ:
- ;本程序實現16個LED的滅著移動 */
- #include <reg51.h>
- #define uchar unsigned char
- #define unit unsigned int
- bit BT0;//定義20MS時間標志位
- main()
- {
- unit a,b,timecount;
- TMOD=0X01;//T0工作方式1
- TH0=0X0B1;
- TL0=0X0E0;
- TR0=1;//開啟T0
- EA=1;//開啟總中斷
- ET0=1;//開啟T0中斷
- timecount=25;
- a=0xfe;
- while (1)
- {
- P2=a;
- if (BT0==1)
- { BT0=0;
- if (timecount==0)//如果時間到0.5S往下執行,否則timecount--
- {
- timecount=25;
- a=a<<1;
- a=a|0x01;
- P2=a;
- if (P2==0Xff)//如果P2=FF把A的高八位給B
- { b=a;
- b=b/256;
- P3=b;
- if (P3==0xff)//如果P3=FF,把A賦FE返回
- {a=0xfe;}
- }
- }
- else
- {timecount--;}
- }
- }
-
- }
- void T0SER(void) interrupt 1 using 1//T0重新賦初植
- {
- TH0=0X0B1;
- TL0=0X0E0;
- BT0=1;
-
- }
復制代碼
|
|