一鍵多能開關(guān).7z
(114.91 KB, 下載次數(shù): 13)
2020-5-7 07:32 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
先上程序。
哈哈! 大家如果不想花黑幣,何不來粘貼免費的程序(所有代碼如下):
;
;;
;;;
;;;一鍵多能開關(guān)程序
;;;
;;;電路結(jié)構(gòu):P1口接8個LED(低電平使能)
;;;P3.3口接鍵盤(占用中斷)
;;;
;;;程序功能:
;;;可以用單鍵實現(xiàn)6種功能,
;;;所有按鍵功能占用時間小于1秒.
;;;1秒內(nèi)單擊一次,1號燈亮
;;;1秒內(nèi)雙擊,2號燈亮
;;;1秒內(nèi)三次按鍵,3號燈亮
;;;1秒內(nèi)長按,4號燈亮
;;;1秒內(nèi)單擊加長按,5號燈亮
;;;1秒內(nèi)二次單擊加長按,6號燈亮
;;;程序正常工作時,8號燈閃爍(2HZ)
;;;
;;
;
;----------------------------------------程序入口
ORG 0000H;主程序入口
LJMP START
ORG 0013H;中斷程序入口
LJMP INTT1
ORG 0030H
;----------------------------------------引腳定義
LED1 EQU P1.0;1秒內(nèi)單擊一次,1號燈亮
LED2 EQU P1.1;1秒內(nèi)雙擊,2號燈亮
LED3 EQU P1.2;1秒內(nèi)三次按鍵,3號燈亮
LED4 EQU P1.3;1秒內(nèi)長按,4號燈亮
LED5 EQU P1.4;1秒內(nèi)單擊加長按,5號燈亮
LED6 EQU P1.5;1秒內(nèi)二次單擊加長按,6號燈亮
WLED EQU P1.7;程序正常工作閃爍指示燈
RAM1 EQU 20H ;按鍵功能寄存器
K1 EQU P3.3 ;按鍵(中斷)
;-----------------------------------------初始化程序
START:
CLR P3.7 ;選通WS 系列實驗板的LED 流水燈的電源控制端
SETB K1
CLR A
MOV R0,A
SETB IT1
SETB EX1
SETB EA
;--------------------------------------主程序循環(huán)
LOOP:;
CPL WLED;工作指示燈閃亮(表示程序正常)
CALL DL05S
JMP LOOP
;--------------------------------------按鍵中斷程序
INTT1:
CLR EA
PUSH PSW
PUSH ACC
CALL DL20MS;入鍵去抖
JB K1,INT1_OVER
MOV R5,#40;一次按鍵處理的總時間長度(800毫秒)
I1:;1秒內(nèi)長按,4號燈亮
CALL DL20MS
JB K1,I2
DJNZ R5,I1
MOV R0,#4
CPL LED4
JMP INT1_WORK
I2:;1秒內(nèi)單擊一次,1號燈亮
CALL DL20MS
JNB K1,I3
DJNZ R5,I2
MOV R0,#1
CPL LED1
JMP INT1_WORK
I3:;1秒內(nèi)單擊加長按,5號燈亮
CALL DL20MS
JB K1,I4
DJNZ R5,I3
MOV R0,#5
CPL LED5
JMP INT1_WORK
I4:;1秒內(nèi)雙擊,2號燈亮
CALL DL20MS
JNB K1,I5
DJNZ R5,I4
MOV R0,#2
CPL LED2
JMP INT1_WORK
I5:;1秒內(nèi)二次單擊加長按,6號燈亮
CALL DL20MS
JB K1,I6
DJNZ R5,I5
MOV R0,#6
CPL LED6
JMP INT1_WORK
I6:;1秒內(nèi)三次按鍵,3號燈亮
MOV R0,#3
CPL LED3
INT1_WORK:;按鍵寄存器處理,備其它程序查用。
MOV 20H,R0
MOV R0,#0
MOV R5,#80
INT1_OVER:;按鍵程序退出去抖動。
CALL DL20MS
JB K1,I00
DJNZ R5,INT1_OVER
I00:;退出中斷
POP ACC
POP PSW
SETB EA
RETI
;---------------------------------延時子程序
DELAY:
DL20MS: ;
MOV R6,#255
DL20MS_1:MOV R7,#255
DJNZ R7,$
DJNZ R6,DL20MS_1
RET
DL100MS: ;
MOV R4,#5
DL100MS_1:CALL DL20MS
DJNZ R4,DL100MS_1
RET
DL05S: ;
MOV R4,#25
DL05S_1:CALL DL20MS
DJNZ R4,DL05S_1
RET
;--------------------------------程序結(jié)束
END
|