• <rp id="wfxtb"><acronym id="wfxtb"></acronym></rp><em id="wfxtb"></em><dd id="wfxtb"><big id="wfxtb"><video id="wfxtb"></video></big></dd>
  • <rp id="wfxtb"></rp>

    <mark id="wfxtb"><center id="wfxtb"></center></mark>

      <rp id="wfxtb"><span id="wfxtb"><u id="wfxtb"></u></span></rp>

      <rp id="wfxtb"><object id="wfxtb"></object></rp>

      注意:訪問本站需要Cookie和JavaScript支持!請設置您的瀏覽器! 打開購物車 查看留言付款方式聯系我們
      初中電子 單片機教材一 單片機教材二
      搜索上次看見的商品或文章:
      商品名、介紹 文章名、內容
      首頁 電子入門 學單片機 免費資源 下載中心 商品列表 象棋在線 在線繪圖 加盟五一 加入收藏 設為首頁
      本站推薦:
      26. 點陣式LED簡單圖形顯示技術
      文章長度[] 加入時間[2008/5/30] 更新時間[2024/3/24 9:29:36] 級別[0] [評論] [收藏]
       
      1.  實驗任務
      在8X8點陣式LED顯示“★”、“●”和心形圖,通過按鍵來選擇要顯示的圖形。
      2. 電路原理圖
      圖4.26.1
      3. 硬件系統連線
      (1).  把“單片機系統”區域中的P1端口用8芯排芯連接到“點陣模塊”區域中的“DR1-DR8”端口上;
      (2).  把“單片機系統”區域中的P3端口用8芯排芯連接到“點陣模塊”區域中的“DC1-DC8”端口上;
      (3).  把“單片機系統”區域中的P2.0/A8端子用導線連接到“獨立式鍵盤”區域中的SP1端子上;
      4. 程序設計內容
      (1).  “★”在8X8LED點陣上顯示圖如下圖所示
      1 2 3   4 5  6  7  8

      12H,14H,3CH,48H,3CH,14H,12H,00H
      (2).  “●”在8X8LED點陣上顯示圖如下圖所示
      1 2 3   4 5  6  7  8

      00H,00H,38H,44H,44H,44H,38H,00H
      (3).  心形圖在8X8LED點陣上顯示圖如下圖所示
      1 2 3   4 5  6  7  8

      30H,48H,44H,22H,44H,48H,30H,00H
      5. 匯編源程序
      CNTA        EQU 30H
      COUNT    EQU 31H
                         ORG 00H
                         LJMP START
                         ORG 0BH
                         LJMP T0X
                         ORG 30H
      START:      MOV CNTA,#00H
                         MOV COUNT,#00H
                         MOV TMOD,#01H
                         MOV TH0,#(65536-4000) / 256
                         MOV TL0,#(65536-4000) MOD 256
                         SETB TR0
                         SETB ET0
                         SETB EA
      WT:            JB P2.0,WT
                         MOV R6,#5
                         MOV R7,#248
      D1:             DJNZ R7,$
                         DJNZ R6,D1
                         JB P2.0,WT
                         INC COUNT
                         MOV A,COUNT
                         CJNE A,#03H,NEXT
                         MOV COUNT,#00H
      NEXT:       JNB P2.0,$
                         SJMP WT
      T0X: NOP
                         MOV TH0,#(65536-4000) / 256
                         MOV TL0,#(65536-4000) MOD 256
                         MOV DPTR,#TAB
                         MOV A,CNTA
                         MOVC A,@A+DPTR
                         MOV P3,A
                         MOV DPTR,#GRAPH
                         MOV A,COUNT
                         MOV B,#8
                         MUL AB
                         ADD A,CNTA
                         MOVC A,@A+DPTR
                         MOV P1,A
                         INC CNTA
                         MOV A,CNTA
                         CJNE A,#8,NEX
                         MOV CNTA,#00H
      NEX:         RETI
      TAB:          DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH
      GRAPH:    DB 12H,14H,3CH,48H,3CH,14H,12H,00H
                         DB 00H,00H,38H,44H,44H,44H,38H,00H
                         DB 30H,48H,44H,22H,44H,48H,30H,00H
                         END
      6. C語言源程序
      #include <AT89X52.H>
      unsigned char code tab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
      unsigned char code graph[3][8]={{0x12,0x14,0x3c,0x48,0x3c,0x14,0x12,0x00},
                                      {0x00,0x00,0x38,0x44,0x44,0x44,0x38,0x00},
                                      {0x30,0x48,0x44,0x22,0x44,0x48,0x30,0x00}
                                     };
      unsigned char count;
      unsigned char cnta;
      void main(void)
      {
        unsigned char i,j;
        TMOD=0x01;
        TH0=(65536-4000)/256;
        TL0=(65536-4000)%256;
        TR0=1;
        ET0=1;
        EA=1;
        while(1)
          {
            if(P2_0==0)
              {
                for(i=5;i>0;i--)
                for(j=248;j>0;j--);
                if(P2_0==0)
                  {
                    count++;
                    if(count==3)
                      {
                        count=0;
                      }
                    while(P2_0==0);
                  }
              }
          }
      }
      void t0(void) interrupt 1 using 0
      {
        TH0=(65536-4000)/256;
        TL0=(65536-4000)%256;
        P3=tab[cnta];
        P1=graph[count][cnta];
        cnta++;
        if(cnta==8)
          {
            cnta=0;
          }
      }
      1、 本站不保證以上觀點正確,就算是本站原創作品,本站也不保證內容正確。
      2、如果您擁有本文版權,并且不想在本站轉載,請書面通知本站立即刪除并且向您公開道歉! 以上可能是本站收集或者轉載的文章,本站可能沒有文章中的元件或產品,如果您需要類似的商品請 點這里查看商品列表!
      本站協議。 版權信息。 關于我們。 本站地圖。 營業執照。 發票說明。 付款方式。 聯系方式
      深圳市寶安區西鄉五壹電子商行——粵ICP備16073394號-1;地址:深圳西鄉河西四坊183號;郵編:518102
      E-mail:51dz$163.com($改為@);Tel:(0755)27947428
      工作時間:9:30-12:00和13:30-17:30和18:30-20:30,無人接聽時可以再打手機13537585389
      91嫩草黄片动漫版