久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> 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  P3A
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  C0A0H  ;按位操作,P2.0口的狀態—按鍵定,關為低電平,開為高電平
MOV  P1.0  ;P1.0口的狀態,按位高電平顯示燈亮,低電平顯示燈滅
MOV  P1.1 
MOV  P1.2 
MOV  P1.3  ;P1.3口的狀態,
MOV  P1.7C
MOV  P2.1C
MOV  P2.2C
MOV  P2.4C
MOV  P3.0C
MOV  P3.3C
MOV  P3.5C
MOV  P3.7C
MOV  P0.0C
MOV  P0.4C
END  
對于LED數> 8個且能被8整除的需要用字節操作指令。參見圖2所示。
ORG  0000H  
START: 
      MOV  A#00H  
MOV  P1  
MOV  C0A0H 
JB    0A0HGUAN   ;按位操作;按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   

 

關閉窗口

相關文章

主站蜘蛛池模板: 蜜桃视频一区二区三区 | 91亚洲国产亚洲国产 | 97日日碰人人模人人澡分享吧 | 国产日韩精品久久 | 国产三区四区 | 羞羞视频免费观 | 日韩国产在线 | 天天操,夜夜爽 | 亚洲精品久久久一区二区三区 | 中文字幕不卡在线88 | aaa一区| 91人人澡人人爽 | 国产成人综合亚洲欧美94在线 | 国产精品久久毛片av大全日韩 | 羞羞视频在线观看 | 亚洲成人av | 一级免费看 | 婷婷综合五月天 | www.99热.com| 久久久久久久国产精品 | 天天干 夜夜操 | 亚洲精品观看 | 色婷婷久久久亚洲一区二区三区 | 欧美成人一区二区三区片免费 | 欧美日韩1区2区3区 欧美久久一区 | 亚洲国产精品久久久久婷婷老年 | 婷婷色婷婷 | 亚洲一区二区三 | 国产精品欧美一区二区三区不卡 | 欧州一区二区 | 国产激情毛片 | 久久久久久高潮国产精品视 | 五月天国产 | 亚洲美女在线视频 | 久久精品国产免费高清 | 国产日韩欧美在线播放 | 女人毛片a毛片久久人人 | 国产二区三区 | 国产精品区一区二 | 国产日韩一区二区 | 欧美亚洲另类在线 |