<acronym id="xonnx"></acronym>
      <td id="xonnx"></td>
    1. <pre id="xonnx"></pre>

      1. 專注電子技術學習與研究
        當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

        51單片機匯編語言

        作者:未知   來源:會員上傳   點擊數:  更新時間:2014年05月20日   【字體:













        a)  單個按鍵與多個LED燈(位操作輸入與字節操作輸出)判斷與子程序
        此處只是將輸出指令由位指令換成了字節指令,而輸入判斷仍然是位判斷指令。
        ORG 0000H
        MAIN:
          CLR C
           MOV C,P2.0 ;獲取P2.0位狀態 送位累加器;位與字節轉換需要判斷指令
        JNC ZIJIE;JC位累加器—進位位為1轉移到ZIJIE ,
        JNC位累加器為0轉移到ZIJIE,否則順序執行。
        MOV C,P1.0
        ZIJIE:;子程序起始
        MOV  A,#00H
            MOV  P3,A
        RET;子程序結束并返回調用處
        END
         
        b)  單個按鍵與多個LED燈(位操作輸入與位、字節操作輸出)
        l  位輸入控制位或字節輸出
        ORG 0000H
        MAIN:
          CLR C
           MOV C,P1.0 ;獲取P1.0位狀態 送位累加器;位與字節轉換需要判斷指令
        JNC ZIJIE      ;JC位累加器—進位位為1轉移到ZIJIE ,JNC位累加器為0轉移到ZIJIE,否則順序執行。
          MOV P0.0,C ;送位累加器到P0.0位等,P1.0位狀態變化則輸出隨之變化
            ACALL  DELAY   ; 調延時子程序
          MOV P0.1,C
              ACALL  DELAY
          MOV P0.2,C
              ACALL  DELAY
          MOV P0.3,C
            ACALL  DELAY 
          MOV P0.4,C
            ACALL  DELAY 
                 MOV P0.5,C
            ACALL  DELAY          MOV P0.6,C
            ACALL  DELAY    MOV P0.7,C    ACALL  DELAY     
        SJMP MAIN ;相對轉移時間短,用AJMP絕對轉移時間長,RET是用于子程序的返回
        ZIJIE:
          MOV A,#00H
          MOV P2,A      ACALL  DELAY 
          MOV P3,A    ACALL  DELAY
             CLR A      MOV P0,A
           MOV P1,A     ACALL  DELAY  
          RET
          DELAY:      ; 延時子程序 - 這是一個非常有用、而且常見的一個子程序
          MOV R5,#04H    ;將16進制數04H傳遞給寄存器R5
        F1:
          DJNZ  R7, F1 ;寄存器R7減1非0跳轉到F1,直到減為0順序執行下一指令
          RET       ; 子程序結束,返回子程序入口處  ACALL  DELAY   ; 調延時子程序 
          END
        l  位輸入控制字節輸出
         
        c)  單個按鍵與單個電機控制開環控制
        單“位”P口1位--單個燈位輸出,單個按鍵控制硬控制與軟控制
        一個按鍵,一盞照明燈,一個繼電器。硬件接口問題—線路連接、硬件硬驅動問題(程序稱為軟驅動)。
        一個按鍵,兩盞燈(指示、照明),一個繼電器。硬件接口問題—線路連接、硬件硬驅動問題。程序稱為軟驅動:就是利用兩個端口,通過延時或計時器完成轉換。
        說明:
        硬件特性,驅動與控制信號,程序編寫
        由繼電器引出的強電驅動電器的控制問題,如電動機交流電機、直流電機、步進電機、伺服電機;單項或多項
         
        1.  單個開關(按鍵)與多個LED數碼管點陣問題最小系統輸出擴展
        a)        單個按鍵與多個LED燈(位操作輸入與字節操作輸出)
        b)        單個按鍵與多個LED數碼管(位操作輸入與字節操作輸出)數組
        c)         單個按鍵與多個數碼管(位操作輸入與多字節操作輸出)靜態數組
        d)        多個按鍵與多個數碼管(位操作輸入與字節操作輸出)動態掃描函數
        e)         單個按鍵與多個數碼管點陣(位操作輸入與字節操作輸出)靜態
        f)         多個按鍵與多個數碼管點陣(位操作輸入與字節操作輸出)動態
         
        3.單個開關(按鍵)與多個LED燈→數碼管→點陣問題—輸出擴展—最小系統
        a)  單個按鍵,多個LED燈(位操作—輸入與字節操作—輸出)
        l  單輸入與多輸出的電子線路—靜態特性—結構與聯接   
        對于多個LED燈(LED數 < 8個)來說(圖4),在硬件連接方面、軟件編寫方面均沒有大的難點。按照單個LED的連接方式增加便可?刂瞥绦蚓帉懟旧弦彩侵貜托怨ぷ—用COPY簡單修改即可。
        對于LED數= 8個或是8的倍數的情況,需要解決兩個方面的問題。一個是硬件的連接方法,一個是控制程序的編寫指令—用詞方法—字節操作指令。硬件方面可以用單個或多個成組(NET)的LED或總線接口、單個接口擴展等實現。程序編寫則可以使用重復性工作、可以使用字節操作指令而摒棄位操作指令,使得程序簡潔、可讀性好、硬件運行效率高。
        對于LED數> 8個且不能被8整除的,仍需要用位操作指令。參見圖5,指令如下:
        l  單輸入與多輸出電子線路的控制指令—動態特性
        ORG  0000H  
           MAIN: 
              MOV  A,#00H  
        MOV  P1,   ;P1口的狀態,低電平為關
        MOV  C,0A0H  ;按位操作,P2.0口的狀態—按鍵定,關為低電平,開為高電平
        MOV  P1.0,  ;P1.0口的狀態,按位高電平顯示燈亮,低電平顯示燈滅
        MOV  P1.1, 
        MOV  P1.2, 
        MOV  P1.3,  ;P1.3口的狀態,
        MOV  P1.7,C
        MOV  P2.1,C
        MOV  P2.2,C
        MOV  P2.4,C
        MOV  P3.0,C
        MOV  P3.3,C
        MOV  P3.5,C
        MOV  P3.7,C
        MOV  P0.0,C
        MOV  P0.4,C
        END  
        對于LED數> 8個且能被8整除的需要用字節操作指令。參見圖2所示。
        ORG  0000H  
        START: 
              MOV  A,#00H  
        MOV  P1,  
        MOV  C,0A0H 
        JB    0A0H,GUAN   ;按位操作;按P2.0口的狀態獲得兩種顯示結果,0跳轉
        MOV  P1,#0FFH   ;按P2.0口的狀態為非1時的順序顯示本指令
        RET  ;返回控制指令
        GUAN :   ;程序控制指令入口,跳轉入口
        MOV  P2,#0FFH   ;按P2.0口的狀態為1時的轉移顯示本指令
        RET  ;子程序返回控制指令
        END  
        程序說明
        每個口用位賦值指令來開關P1口的各個LED。也可以用字節賦值指令一次性的開關8位P1口全部LED。
        P1=0;   // P1口8位置低電平,點亮8個LED
        P1=1;   // P1口8位置高電平,關閉8個LED。圖5為多個LED燈-單個按鍵的運行結果與匯編語言。
        上面的單片機系統和匯編語言控制指令,很容易被更改為多口、多位的單鍵控制系統。圖5為多個LED燈-單個按鍵的運行結果與匯編語言。圖6中對P2.0口改用雙擲開關,實現P2.0口的兩種電平狀態。
        ORG 0000H
          START: 
            MOV  A,#0FFH  
            MOV  P3,A
               MOV  P1,A
               MOV C, 0A0H
            JNB  0A0H,GUAN
               MOV  P1,#00H
        RET
        GUAN : 
               MOV  P3,#00H
             RET   ;可以產生閃爍效果
         END   

         

        關閉窗口

        相關文章

        欧美性色欧美精品视频,99热这里只有精品mp4,日韩高清亚洲日韩精品一区二区,2020国自产拍精品高潮