色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)實(shí)驗(yàn)--跑馬燈

          單片機(jī)實(shí)驗(yàn)--跑馬燈

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

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

          本文引用地址:http://cafeforensic.com/article/201611/319586.htm

          JMPSTART

          ORG0200H

          DELAY:MOVR1,#50;延時(shí)程序,延時(shí)0.5秒

          DELAY0:MOVR2,#99

          DELAY1:MOVR3,#49

          DJNZR3,$

          DJNZR2,DELAY1

          DJNZR1,DELAY0

          RET

          ZX:MOVA,#0FEH;正序點(diǎn)亮流水燈

          L1:MOVP0,A

          RLA

          CALLDELAY

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

          SETBC;置C為1

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

          JNCJ2;C的值為0的時(shí)候跳到主程序的J2這個(gè)段

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

          JNCJ3;C為0的時(shí)候跳到主程序中J3這個(gè)段

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

          NX:MOVA,#7FH;逆序點(diǎn)亮流水燈

          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)這個(gè)段

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

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

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

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

          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()//正序點(diǎn)亮流水燈

          {

          uinti=0,k=0xfe;

          while(1)

          {

          P0=k;

          delay(100);

          k=_crol_(k,1);

          if(k2==0)break;

          if(k3==0)break;

          }

          }

          voidf2()//倒序點(diǎn)亮流水燈

          {

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

          }



          評(píng)論


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

          關(guān)閉