單片機流水燈c程序

 

/*單片機流水燈c程序*/
/*本程序中流水燈爲共陽極*/
#include <reg51.h>
#include <intrins.h>//51c語言中的頭文件:是將第一個參數循環左移n位
#define uchar unsigned char
#define uint unsigned int

//最初算的時候,是按照xms*111(如1*111=111us=0.111ms可是還要加上判斷週期,減減週期,是最終的時間按達到1ms)
void delay(uint xms)
{
   uint i,j;                   //(仿真過的),此程序延時x‘ms’
   for (i=xms;i>0;i--)     //這個延時時間是按照12M的晶振來推算出來的,此時一個機器週期是1us
      for(j=111;j>0;j--)   
                 ;
}

 

void main()
{
    unsigned char LED;
    LED=0xfe;     //不能直接把0xfe付給P0口,因爲如果直接付給的話,PO口就是一個固定的值,沒法進行位的移動
    P0=LED;
    while(1)
    {

           delay(500);     //延時500ms
           LED=_crol_(LED,1);//循環左移1位,點亮一個LED 
           P0=LED;
    }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章