?? key.asm
字號:
;-----------------------------------
; 受控輸出實例2
;功能:中斷方式檢測按鍵狀態,8只LED顯示按鍵被按下次數的二進制值
;-----------------------------------
KEY_PIN EQU P3.2
COUNT DATA 30H
ORG 0000H ;偽指令,指定程序從0000H開始存放
LJMP MAIN ;跳轉指令,程序跳轉到MAIN處
ORG 0003H ;偽指令,外部中斷0中斷程序入口地址
LJMP KEY_INT ;跳轉指令,程序跳轉到KEY_INT處
ORG 0100H ;偽指令,指定以下程序從0100H開始存放
MAIN:
MOV SP,#60H ;給堆棧指針賦初值
SETB KEY_PIN ;置一P3.2,初始化輸入口
MOV COUNT,#0FFH ;給計數變量COUNT賦初值
MOV P1,COUNT ;給P1賦初值,LED全滅
LCALL X0_INIT ;調用外部中斷0初始化子程序
SJMP $ ;程序原地跳轉,等待中斷
;延時10MS子程序
DELAY10MS:
MOV R7,#20
DELAY0:
MOV R6,#250
DJNZ R6,$
DJNZ R7,DELAY0
RET
X0_INIT:
;---------------------------------
; 外部中斷0初始化子程序
;---------------------------------
MOV TCON,#01H ;外部中斷0為下降沿觸發
MOV IP,#01H ;外部中斷0為高優先級
MOV IE,#81H ;允許外部中斷0
RET
KEY_INT:
;---------------------------------
; 外部中斷0服務程序
;---------------------------------
PUSH PSW
SETB RS1
LCALL DELAY10MS ;延時10MS,按鍵抖動消除
MOV C,KEY_PIN
JC KEY_INT_EXIT
DEC COUNT ;按鍵被按下,計數加一
MOV P1,COUNT ;LED輸出顯示
KEY_INT_EXIT:
POP PSW
RETI
END
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -