51 匯編語(yǔ)言編程:走道燈控制程序
按一下按鍵燈就亮,延時(shí) 10s 后自動(dòng)滅。在亮燈期間再按一下鍵,燈立即就滅。
用定時(shí)器及中斷實(shí)現(xiàn)。
題目鏈接:http://zhidao.baidu.com/question/1302357964153805259.html
提問(wèn)者采納 2013-12-09 13:47
LED EQU P3.3
KEY EQU P3.7
ORG 0000H
LJMP START
ORG 000BH
LJMP T0_INT
ORG 0030H
;--------------------------------
START:
MOV TMOD, #01H
MOV TH0, #HIGH(65536-62500)
MOV TL0, #LOW(65536-62500)
MOV IE, #82H
;--------------------------------
LP1:
SETB LED ;關(guān)燈
JB KEY, LP1 ;等待第一次按鍵
CALL DELAY
JB KEY, LP1
JNB KEY, $
;-------------------
MOV R2, #160 ;10s
SETB TR0 ;啟動(dòng)定時(shí)器
CLR LED ;開(kāi)燈
LP2:
JNB TR0, LP1 ;如果已經(jīng)定時(shí)結(jié)束,就去等待第一次按鍵
JB KEY, LP2 ;等待第二次按鍵
CALL DELAY
JB KEY, LP2
JNB KEY, $
SJMP LP1 ;如果發(fā)生了第二次按鍵,就去等待第一次按鍵
;--------------------------------
T0_INT:
MOV TH0, #HIGH(65536-62500)
MOV TL0, #LOW(65536-62500)
DJNZ R2, T0_E ;定時(shí)10s
CLR LED ;時(shí)間到了,關(guān)燈
CLR TR0
T0_E:
RETI
;--------------------------------
DELAY: ;延時(shí)約10ms(fosc=12MHz)
MOV R6, #20
DJNZ R7, $
DJNZ R6, $ - 2
RET
;--------------------------------
END
編輯:admin 最后修改時(shí)間:2018-10-08