新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機LED流水燈閃爍燈程序大集合

        單片機LED流水燈閃爍燈程序大集合

        作者: 時間:2012-08-15 來源:網絡 收藏
        /*點亮燈:方1  位操作方式   sbit D1=P1^0;方2  總線方工     P1=0x??;讓燈閃爍*//*//方1:位操作方式點亮#includereg52.h>sbit  D1=P1^0;      //P1^0的P必須是大寫void main(){D1=0;        //使用P1^0必須先經過sbit定義,而不能直接用P1^0=0;否則編譯過不了}*///-------------------------------------------------
        :總線方式點亮LED#includereg52.h>void main(){P1=0xfd;         //1111 1100 LED是共陽的,低電平時點亮,
        所以就是LED1和2燈被點亮}*///-------------------------------------------------------------/* 讓LED燈閃爍    采用位點亮+內部循環進行延時#include reg52.h>sbit D1=P1^3;              //隨便一個你也可改為P1^0,注意P要大寫的才可以unsigned int a;void main(){D1=0;for (a=0;a=20000;a++) {};       //for循環 {}空操作即可形成延時效果D1=1;for (a=0;a=20000;a++) {};}*///--------------------------------------------------------------/*//讓LED燈閃爍    采用位方式+delay延時函數方式#include reg52.h>sbit D1=P1^0;    //位操作方式unsigned int a;void delay(int x)         //延時{int a,b;for(a=x;a>0;a--)for(b=110;b>0;b--);}void  main(){D1=0;delay(50);           //調用延時D1=1;delay(50);/}*///-----------------------------------------------/*//讓3個燈一起閃爍  ,采用總線方式#includereg52.h>unsigned int a;void delay(int x)          //延時{int a,b;for(a=x;a>0;a--)for(b=110;b>0;b--);}void main(){P1=0xf8;             //1111 1000,點亮前3個燈,3個燈一起閃爍delay(500);P1=0xff;delay(500);}*///----------------------------------------------------/*//讓LED燈閃爍   采用wlile方式#include reg52.h>sbit P10=P1^0;int a;void main(){while(1){a=51000;P10=0;         //點亮燈while(a--);    //程序停在這里,一直執行減法,直到a從51000減到0后退出循環,
        這就形成延時a=5100;      //前面a已經減成0了,這里再給它個初值P10=1;while(a--);    //又從初值51000減到0為止,形成延時效果}}*///-----------------------------------------------------------/*// ,在PIC只要設整個端的0x??
        值然后采用端口值=端口值1左移1位即可形成//而在52里卻不行,得用_crol關皺字,
        而這個關鍵字又是在另一頭文件intrins.h里,所以在開頭就得先包含它_#include reg52.h>#include intrins.h>     //因為要用到corol這一關鍵字#define uchar unsigned charsbit P23=P2^3 ;sbit D1=P1^0;void delay(int x){int a,b;for(a=x;a>0;a--)for(b=110;b>0;b--);}void main(){uchar a,temp;temp=0xfe;for (a=8;a>0;a--)   //循環8次,即流水燈8個循環8次即可點亮8個{P1=temp;temp=_crol_(temp,1); //移動delay(100);}}*///--------------------------------------------------------------//流水燈 :正流+倒流;在PIC里流水燈只要設整個端的0x??
        值然后采用端口值=端口值1左移1位即可形成流水燈//而在52里卻不行,得用_crol關皺字,
        而這個關鍵字又是在另一頭文件intrins.h里,所以在開頭就得先包含它#include reg52.h>#include intrins.h>     //因為要用到corol這一關鍵字#define uchar unsigned charsbit P23=P2^3 ;sbit D1=P1^0;void delay(int x){int a,b;for(a=x;a>0;a--)for(b=110;b>0;b--);}void main(){uchar a,temp;temp=0xfe;for (a=8;a>0;a--)   //循環8次,即流水燈8個循環8次即可點亮8個{P1=temp;temp=_crol_(temp,1); //移動delay(100);}temp=0x7f;              //注意這一句,
        如果沒有這一句,下面的語句循環是循環了,卻沒東西出來for (a=8;a>0;a--)   //循環8次,即流水燈8個循環8次即可點亮8個{P1=temp;temp=_crol_(temp,-1); //移動delay(100);}} 


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 紫阳县| 洛隆县| 阿城市| 武鸣县| 彭泽县| 吉木乃县| 高青县| 江源县| 武隆县| 三台县| 盈江县| 永清县| 泽普县| 潼关县| 南华县| 新宁县| 永修县| 齐齐哈尔市| 马尔康县| 麻栗坡县| 南溪县| 古田县| 津南区| 益阳市| 沛县| 祥云县| 乐安县| 玉龙| 漳平市| 从江县| 通州市| 婺源县| 文山县| 景谷| 长汀县| 巴塘县| 古浪县| 仲巴县| 隆尧县| 娱乐| 库尔勒市|