<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 廣告燈的左移右移

          廣告燈的左移右移

          作者: 時間:2011-02-27 來源:網(wǎng)絡 收藏

          1. 實驗任務

          做單一燈的左移右移,硬件電路如圖4.4.1所示,八個發(fā)光二極管L1L8分別接在P1.0P1.7接口上,輸出“0”時,發(fā)光二極管亮,開始時P1.0→P1.1→P1.2→P1.3→┅→P1.7→P1.6→┅→P1.0亮,重復循環(huán)。

          2. 電路原理圖

          4.4.1

          3. 系統(tǒng)板上硬件連線

          把“系統(tǒng)”區(qū)域中的P1.0P1.78芯排線連接到“八路發(fā)光二極管指示模塊”區(qū)域中的L1L8端口上,要求:P1.0對應著L1P1.1對應著L2……,P1.7對應著L8。

          4. 程序設計內容

          我們可以運用輸出端口指令MOV P1,AMOV P1,#DATA,只要給累加器值或常數(shù)值,然后執(zhí)行上述的指令,即可達到輸出控制的動作。

          每次送出的數(shù)據(jù)是不同,具體的數(shù)據(jù)如下表1所示

          P1.7

          P1.6

          P1.5

          P1.4

          P1.3

          P1.2

          P1.1

          P1.0

          說明

          L8

          L7

          L6

          L5

          L4

          L3

          L2

          L1

          1

          1

          1

          1

          1

          1

          1

          0

          L1

          1

          1

          1

          1

          1

          1

          0

          1

          L2

          1

          1

          1

          1

          1

          0

          1

          1

          L3

          1

          1

          1

          1

          0

          1

          1

          1

          L4

          1

          1

          1

          0

          1

          1

          1

          1

          L5

          1

          1

          0

          1

          1

          1

          1

          1

          L6

          1

          0

          1

          1

          1

          1

          1

          1

          L7

          0

          1

          1

          1

          1

          1

          1

          1

          L8

          1

          5. 程序框圖

          4.4.2

          6. 匯編源程序

          ORG 0

          START: MOV R2,#8

          MOV A,#0FEH

          SETB C

          LOOP: MOV P1,A

          LCALL DELAY

          RLC A

          DJNZ R2,LOOP

          MOV R2,#8

          LOOP1: MOV P1,A

          LCALL DELAY

          RRC A

          DJNZ R2,LOOP1

          LJMP START

          DELAY: MOV R5,#20 ;

          D1: MOV R6,#20

          D2: MOV R7,#248

          DJNZ R7,$

          DJNZ R6,D2

          DJNZ R5,D1

          RET

          END

          7. C語言源程序

          #include AT89X51.H>

          unsigned char i;

          unsigned char temp;

          unsigned char a,b;

          void delay(void)

          {

          unsigned char m,n,s;

          for(m=20;m>0;m--)

          for(n=20;n>0;n--)

          for(s=248;s>0;s--);

          }

          void main(void)

          {

          while(1)

          {

          temp=0xfe;

          P1=temp;

          delay();

          for(i=1;i8;i++)

          {

          a=tempi;

          b=temp>>(8-i);

          P1=a|b;

          delay();

          }

          for(i=1;i8;i++)

          {

          a=temp>>i;

          b=temp(8-i);

          P1=a|b;

          delay();

          }

          }

          }



          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();