久久久久久久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   

 

關閉窗口

相關文章

主站蜘蛛池模板: 欧美不卡| 免费观看的黄色网址 | 国产精品18久久久久久白浆动漫 | 欧美 日韩 中文 | 日韩av一区二区在线观看 | 亚洲免费成人av | 色偷偷噜噜噜亚洲男人 | 久草视频网站 | 日韩精品一 | 日韩欧美一区在线 | 一区在线视频 | 中文字幕在线精品 | 欧美黑人一级爽快片淫片高清 | 999在线精品 | 精品在线 | 浮生影院免费观看中文版 | 日本精品一区二区三区在线观看 | 国产在线中文字幕 | 免费一级片 | 91精品久久久久久久久久入口 | 国产精品一区二区无线 | 狠狠插天天干 | 男人视频网站 | 日本五月婷婷 | 一区二区三区在线免费观看视频 | 日本一区二区三区四区 | 亚洲精品久久久蜜桃网站 | 五月综合激情在线 | 欧美性大战久久久久久久蜜臀 | 91精品欧美久久久久久久 | 国产精品自产拍 | 欧美在线视频网站 | 中文字幕91 | 中文字幕第九页 | 日本高清中文字幕 | 精品欧美一区二区三区久久久 | 超碰最新在线 | 日韩精品 电影一区 亚洲 | 亚洲狠狠 | 国产91黄色 | 欧美日韩在线观看一区 |