新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 單片機實驗--跑馬燈

        單片機實驗--跑馬燈

        作者: 時間:2016-11-22 來源:網(wǎng)絡 收藏
        1.匯編語言的源代碼如下:

        ORG0000H;這個匯編程序實現(xiàn)的是跑馬燈實驗

        本文引用地址:http://www.104case.com/article/201611/319586.htm

        JMPSTART

        ORG0200H

        DELAY:MOVR1,#50;延時程序,延時0.5秒

        DELAY0:MOVR2,#99

        DELAY1:MOVR3,#49

        DJNZR3,$

        DJNZR2,DELAY1

        DJNZR1,DELAY0

        RET

        ZX:MOVA,#0FEH;正序點亮流水燈

        L1:MOVP0,A

        RLA

        CALLDELAY

        MOVP2,#0FFH;把P2口寫1,

        SETBC;置C為1

        MOVC,P2.1;如果P2.1按下,則C的值為0,

        JNCJ2;C的值為0的時候跳到主程序的J2這個段

        MOVC,P2.2;讀P2.2的值,賦給C

        JNCJ3;C為0的時候跳到主程序中J3這個段

        JMPL1;跳到ZX這里,死循環(huán)實現(xiàn)燈的流動

        NX:MOVA,#7FH;逆序點亮流水燈

        L2:MOVP0,A

        RRA

        CALLDELAY

        MOVP2,#0FFH

        SETBC

        MOVC,P2.0

        JNCJ1

        MOVC,P2.3

        JNCJ3

        JMPL2

        XM:MOVA,#0FFH;熄滅流水燈

        L3:MOVP0,A

        MOVP2,#0FFH

        SETBC

        MOVC,P2.0

        JNCJ1

        MOVC,P2.1

        JNCJ2

        JMPL3

        START:;主程序段,也是程序開始的地方

        MOVP2,#0FFH;將P2口寫1

        MOVP0,#0FFH;將P1口寫1

        SETBC;將C的值置1

        J1:MOVC,P2.0;讀P2.0的數(shù)據(jù),賦給C

        JNCZX;如果C的值為0跳轉到流水燈正序循環(huán)這個段

        J2:MOVC,P2.1;讀P2.1的數(shù)據(jù),賦給C

        JNCNX;如果C的值為0,跳轉到流水燈逆序循環(huán)這個段

        J3:MOVC,P2.2;讀P2.2的數(shù)據(jù),賦給C

        JNCXM;如果C的值為0,跳轉到流水燈熄滅這個段

        JMPSTART

        END

        2.C語言源代碼如下:

        #include//C語言我們都比較熟悉,就不做過多的注釋

        #include

        #defineuintunsignedint

        #defineucharunsignedchar

        sbitk1=P2^0;

        sbitk2=P2^1;

        sbitk3=P2^2;

        uchars1,s2,s3;

        voiddelay(uintt);

        voidf1();

        voidf2();

        voidf3();

        voidmain()

        {

        uchark=0xfe;

        while(1)

        {

        if(k1==0)f1();

        if(k2==0)f2();

        if(k3==0)f3();

        }

        }

        voidf1()//正序點亮流水燈

        {

        uinti=0,k=0xfe;

        while(1)

        {

        P0=k;

        delay(100);

        k=_crol_(k,1);

        if(k2==0)break;

        if(k3==0)break;

        }

        }

        voidf2()//倒序點亮流水燈

        {

        uintk=0x7f;

        while(1)

        {

        P0=k;

        delay(100);

        k=_cror_(k,1);

        if(k1==0)break;

        if(k3==0)break;

        }

        }

        voidf3()//熄滅流水燈

        {

        while(1)

        {

        P0=0xff;

        if(k1==0)break;

        if(k2==0)break;

        }

        }

        voiddelay(uintt)

        {uinti,j;

        for(i=t;i>0;i--)

        for(j=114;j>0;j--);

        }



        關鍵詞: 單片機實驗跑馬

        評論


        技術專區(qū)

        關閉
        主站蜘蛛池模板: 广昌县| 依安县| 高陵县| 康平县| 葫芦岛市| 枣庄市| 平罗县| 南江县| 扬中市| 东平县| 大城县| 丰县| 巫溪县| 昭平县| 贵州省| 安塞县| 吴旗县| 雷山县| 利川市| 樟树市| 百色市| 辉县市| 永城市| 华安县| 屏边| 理塘县| 乌兰浩特市| 溆浦县| 突泉县| 米林县| 梁山县| 托里县| 广丰县| 镇巴县| 苏尼特右旗| 京山县| 福海县| 阜城县| 鄂托克前旗| 仪陇县| 青海省|