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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 5. 廣告燈(利用取表方式)

          5. 廣告燈(利用取表方式)

          作者: 時間:2016-11-18 來源:網(wǎng)絡 收藏
          1.實驗任務
          利用取表的方法,使端口P1做單一燈的變化:左移2次,右移2次,閃爍2次(延時的時間0.2秒)。
          2.電路原理

          圖4.5.1
          3.系統(tǒng)板上硬件連線
          把“單片機系統(tǒng)”區(qū)域中的P1.0-P1.7用8芯排線連接到“八路發(fā)光二極管指示模塊”區(qū)域中的L1-L8端口上,要求:P1.0對應著L1,P1.1對應著L2,……,P1.7對應著L8。
          4.程序設計內(nèi)容
          在用表格進行程序設計的時候,要用以下的指令來完成
          (1).利用MOVDPTR,#DATA16的指令來使數(shù)據(jù)指針寄存器指到表的開頭。
          (2).利用MOVCA,@A+DPTR的指令,根據(jù)累加器的值再加上DPTR的值,就可以使程序計數(shù)器PC指到表格內(nèi)所要取出的數(shù)據(jù)。
          因此,只要把控制碼建成一個表,而利用MOVC工,@A+DPTR做取碼的操作,就可方便地處理一些復雜的控制動作,取表過程如下圖所示:
          5.程序框圖












          圖4.5.2
          6.匯編源程序
          ORG0
          START:MOVDPTR,#TABLE
          LOOP:CLRA
          MOVCA,@A+DPTR
          CJNEA,#01H,LOOP1
          JMPSTART
          LOOP1:MOVP1,A
          MOVR3,#20
          LCALLDELAY
          INCDPTR
          JMPLOOP
          DELAY:MOVR4,#20
          D1:MOVR5,#248
          DJNZR5,$
          DJNZR4,D1
          DJNZR3,DELAY
          RET
          TABLE:DB0FEH,0FDH,0FBH,0F7H
          DB0EFH,0DFH,0BFH,07FH
          DB0FEH,0FDH,0FBH,0F7H
          DB0EFH,0DFH,0BFH,07FH
          DB07FH,0BFH,0DFH,0EFH
          DB0F7H,0FBH,0FDH,0FEH
          DB07FH,0BFH,0DFH,0EFH
          DB0F7H,0FBH,0FDH,0FEH
          DB00H,0FFH,00H,0FFH
          DB01H
          END
          7.C語言源程序
          #include
          unsignedcharcodetable[]={0xfe,0xfd,0xfb,0xf7,
          0xef,0xdf,0xbf,0x7f,
          0xfe,0xfd,0xfb,0xf7,
          0xef,0xdf,0xbf,0x7f,
          0x7f,0xbf,0xdf,0xef,
          0xf7,0xfb,0xfd,0xfe,
          0x7f,0xbf,0xdf,0xef,
          0xf7,0xfb,0xfd,0xfe,
          0x00,0xff,0x00,0xff,
          0x01};
          unsignedchari;

          voiddelay(void)
          {
          unsignedcharm,n,s;
          for(m=20;m>0;m--)
          for(n=20;n>0;n--)
          for(s=248;s>0;s--);
          }

          voidmain(void)
          {
          while(1)
          {
          if(table!=0x01)
          {
          P1=table;
          i++;
          delay();
          }
          else
          {
          i=0;
          }
          }
          }


          關鍵詞: 廣告燈取表方

          評論


          技術專區(qū)

          關閉