新聞中心

單片機實驗--跑馬燈

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

ORG0000H;這個匯編程序?qū)崿F(xiàn)的是跑馬燈實驗

本文引用地址:http://m.butianyuan.cn/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跳轉(zhuǎn)到流水燈正序循環(huán)這個段

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

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

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

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

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--);

}



關(guān)鍵詞: 單片機實驗跑馬

評論


技術(shù)專區(qū)

關(guān)閉