a) 單個按鍵與多個LED燈(位操作—輸入與字節操作—輸出)—判斷與子程序
此處只是將輸出指令由位指令換成了字節指令,而輸入判斷仍然是位判斷指令。
ORG 0000H
MAIN:
; CLR C
JNC ZIJIE;JC位累加器—進位位為1轉移到ZIJIE ,
JNC位累加器為0轉移到ZIJIE,否則順序執行。
MOV C,P1.0
ZIJIE:;子程序起始
MOV A,#00H
RET;子程序結束并返回調用處
END
b) 單個按鍵與多個LED燈(位操作—輸入與位、字節操作—輸出)
l 位輸入控制位或字節輸出
ORG 0000H
MAIN:
; CLR C
JNC ZIJIE ;JC位累加器—進位位為1轉移到ZIJIE ,JNC位累加器為0轉移到ZIJIE,否則順序執行。
SJMP MAIN ;相對轉移時間短,用AJMP絕對轉移時間長,RET是用于子程序的返回
ZIJIE:
F1:
l 位輸入控制字節輸出
c) 單個按鍵與單個電機控制—開環控制
單“位”—P口1位--單個燈—位輸出,單個按鍵控制—硬控制與軟控制
一個按鍵,一盞照明燈,一個繼電器。硬件接口問題—線路連接、硬件硬驅動問題(程序稱為軟驅動)。
一個按鍵,兩盞燈(指示、照明),一個繼電器。硬件接口問題—線路連接、硬件硬驅動問題。程序稱為軟驅動:就是利用兩個端口,通過延時或計時器完成轉換。
說明:
硬件特性,驅動與控制信號,程序編寫
由繼電器引出的強電驅動電器的控制問題,如電動機—交流電機、直流電機、步進電機、伺服電機;單項或多項
1. 單個開關(按鍵)與多個LED燈→數碼管→點陣問題—最小系統—輸出擴展
a) 單個按鍵與多個LED燈(位操作—輸入與字節操作—輸出)
b) 單個按鍵與多個LED燈—數碼管(位操作—輸入與字節操作—輸出)—數組
c) 單個按鍵與多個數碼管(位操作—輸入與多字節操作—輸出)—靜態—數組
d) 多個按鍵與多個數碼管(位操作—輸入與字節操作—輸出)—動態—掃描函數
e) 單個按鍵與多個數碼管—點陣(位操作—輸入與字節操作—輸出)—靜態
3.單個開關(按鍵)與多個LED燈→數碼管→點陣問題—輸出擴展—最小系統
a) 單個按鍵,多個LED燈(位操作—輸入與字節操作—輸出)
l 單輸入與多輸出的電子線路—靜態特性—結構與聯接
對于多個LED燈(LED數 < 8個)來說(圖4),在硬件連接方面、軟件編寫方面均沒有大的難點。按照單個LED的連接方式增加便可。控制程序編寫基本上也是重復性工作—用COPY簡單修改即可。
對于LED數= 8個或是8的倍數的情況,需要解決兩個方面的問題。一個是硬件的連接方法,一個是控制程序的編寫指令—用詞方法—字節操作指令。硬件方面可以用單個或多個成組(NET)的LED或總線接口、單個接口擴展等實現。程序編寫則可以使用重復性工作、可以使用字節操作指令而摒棄位操作指令,使得程序簡潔、可讀性好、硬件運行效率高。
對于LED數> 8個且不能被8整除的,仍需要用位操作指令。參見圖5,指令如下:
l 單輸入與多輸出電子線路的控制指令—動態特性
ORG 0000H
MOV P1,A ;P1口的狀態,低電平為關
MOV C,0A0H ;按位操作,P2.0口的狀態—按鍵定,關為低電平,開為高電平
MOV P1.0,C ;P1.0口的狀態,按位高電平顯示燈亮,低電平顯示燈滅
MOV P1.1,C
MOV P1.2,C
MOV P1.3,C ;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 P1,A
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
RET
GUAN :