標題: 16個LED的滅著移動(c語言定時器T0) [打印本頁]

作者: daniu    時間: 2014-12-27 19:08
標題: 16個LED的滅著移動(c語言定時器T0)
  1. ;張培            QQ:
  2. ;本程序實現(xiàn)16個LED的滅著移動  */
  3. #include  <reg51.h>
  4. #define uchar  unsigned  char
  5. #define  unit   unsigned  int
  6. bit     BT0;//定義20MS時間標志位
  7. main()
  8. {
  9.   unit   a,b,timecount;  
  10.   TMOD=0X01;//T0工作方式1
  11.   TH0=0X0B1;
  12.   TL0=0X0E0;
  13.   TR0=1;//開啟T0
  14.   EA=1;//開啟總中斷
  15.   ET0=1;//開啟T0中斷
  16.   timecount=25;
  17.   a=0xfe;  
  18.   while (1)
  19.    {      
  20.              P2=a;
  21.     if (BT0==1)      
  22.             {  BT0=0;
  23.             if (timecount==0)//如果時間到0.5S往下執(zhí)行,否則timecount--  
  24.                  {      
  25.           timecount=25;
  26.           a=a<<1;
  27.                    a=a|0x01;
  28.                    P2=a;      
  29.         if (P2==0Xff)//如果P2=FF把A的高八位給B
  30.            { b=a;
  31.              b=b/256;
  32.           P3=b;
  33.          if (P3==0xff)//如果P3=FF,把A賦FE返回
  34.              {a=0xfe;}
  35.                        }
  36.     }              
  37.       else
  38.                {timecount--;}  
  39.                     }
  40.   }
  41.    
  42. }
  43. void T0SER(void) interrupt 1 using 1//T0重新賦初植
  44. {
  45.   TH0=0X0B1;
  46.   TL0=0X0E0;
  47.   BT0=1;
  48.    
  49. }
復制代碼







歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1