• <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支持!請設置您的瀏覽器! 打開購物車 查看留言付款方式聯系我們
      初中電子 單片機教材一 單片機教材二
      搜索上次看見的商品或文章:
      商品名、介紹 文章名、內容
      首頁 電子入門 學單片機 免費資源 下載中心 商品列表 象棋在線 在線繪圖 加盟五一 加入收藏 設為首頁
      本站推薦:
      17. 99秒馬表設計
      文章長度[] 加入時間[2008/5/30] 更新時間[2025/5/15 6:29:43] 級別[0] [評論] [收藏]
       
      1.             實驗任務
      (1.       開始時,顯示“00”,第1次按下SP1后就開始計時。
      (2.       第2次按SP1后,計時停止。
      (3.       第3次按SP1后,計時歸零。
      2.           電路原理圖
      圖4.17.1
      3.           系統板上硬件連線
      (1.       把“單片機系統”區域中的P0.0/AD0-P0.7/AD7端口用8芯排線連接到“四路靜態數碼顯示模塊”區域中的任一個a-h端口上;要求:P0.0/AD0對應著a,P0.1/AD1對應著b,……,P0.7/AD7對應著h。
      (2.       把“單片機系統”區域中的P2.0/A8-P2.7/A15端口用8芯排線連接到“四路靜態數碼顯示模塊”區域中的任一個a-h端口上;要求:P2.0/A8對應著a,P2.1/A9對應著b,……,P2.7/A15對應著h。
      (3.       把“單片機系統“區域中的P3.5/T1用導線連接到”獨立式鍵盤“區域中的SP1端口上;
      4.           程序框
      T0中斷服務程序框

      T0中斷入口
      TCNT加1
      TCNT=400嗎?
      TCNT=0
      SEC加1
      SEC=100嗎?
      SEC=0
      處理SEC并顯示
      中斷返回
       


       

      圖4.17.2
      5.           匯編源程序
      TCNTA            EQU 30H
      TCNTB           EQU 31H
      SEC       EQU 32H
      KEYCNT          EQU 33H
      SP1       BIT P3.5
              ORG 00H
              LJMP START
                 ORG 0BH
              LJMP INT_T0
      START:    MOV KEYCNT,#00H
              MOV SEC,#00H
              MOV A,SEC
              MOV B,#10
              DIV AB
              MOV DPTR,#TABLE
              MOVC A,@A+DPTR
              MOV P0,A
              MOV A,B
              MOV DPTR,#TABLE
              MOVC A,@A+DPTR
              MOV P2,A
              MOV TMOD,#02H
              SETB ET0
              SETB EA
      WT:       JB SP1,WT
              LCALL DELY10MS
              JB SP1,WT
              INC KEYCNT
              MOV A,KEYCNT
              CJNE A,#01H,KN1
              SETB TR0
              MOV TH0,#06H
              MOV TL0,#06H
              MOV TCNTA,#00H
              MOV TCNTB,#00H
              LJMP DKN
      KN1:      CJNE A,#02H,KN2
              CLR TR0
              LJMP DKN
      KN2:      CJNE A,#03H,DKN
              MOV SEC,#00H
              MOV A,SEC
              MOV B,#10
                 DIV AB
              MOV DPTR,#TABLE
              MOVC A,@A+DPTR
              MOV P0,A
              MOV A,B
              MOV DPTR,#TABLE
              MOVC A,@A+DPTR
              MOV P2,A
              MOV KEYCNT,#00H
      DKN:    JNB SP1,$
              LJMP WT
      DELY10MS:
                 MOV R6,#20
      D1:        MOV R7,#248
              DJNZ R7,$
              DJNZ R6,D1
              RET
      INT_T0:
              INC TCNTA
              MOV A,TCNTA
              CJNE A,#100,NEXT
              MOV TCNTA,#00H
              INC TCNTB
              MOV A,TCNTB
              CJNE A,#4,NEXT
              MOV TCNTB,#00H
              INC SEC
              MOV A,SEC
              CJNE A,#100,DONE
              MOV SEC,#00H
      DONE:             MOV A,SEC
              MOV B,#10
              DIV AB
              MOV DPTR,#TABLE
              MOVC A,@A+DPTR
              MOV P0,A
              MOV A,B
              MOV DPTR,#TABLE
              MOVC A,@A+DPTR
              MOV P2,A
      NEXT:   RETI
      TABLE:  DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
              END
      6.           C語言源程序
      #include <AT89X51.H>
      unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,
                                     0x66,0x6d,0x7d,0x07,
                                     0x7f,0x6f,0x77,0x7c,
                                     0x39,0x5e,0x79,0x71,0x00};
      unsigned char second;
      unsigned char keycnt;
      unsigned int tcnt;
      void main(void)
      {
        unsigned char i,j;
        TMOD=0x02;
        ET0=1;
        EA=1;
        second=0;
        P0=dispcode[second/10];
        P2=dispcode[second%10];
        while(1)
          {
            if(P3_5==0)
              {
                for(i=20;i>0;i--)
                for(j=248;j>0;j--);
                if(P3_5==0)
                  {
                    keycnt++;
                    switch(keycnt)
                      {
                        case 1:
                          TH0=0x06;
                          TL0=0x06;
                          TR0=1;
                          break;
                        case 2:
                          TR0=0;
                          break;
                        case 3:
                          keycnt=0;
                          second=0;
                          P0=dispcode[second/10];
                          P2=dispcode[second%10];
                          break;
                      }
                    while(P3_5==0);
                  }
              }
          }
      }
      void t0(void) interrupt 1 using 0
      {
        tcnt++;
        if(tcnt==400)
          {
            tcnt=0;
            second++;
            if(second==100)
              {
                second=0;
              }
            P0=dispcode[second/10];
            P2=dispcode[second%10];
          }
      }
      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嫩草黄片动漫版