KEY BIT P1.0 ;按鍵低電平有效 LED BIT P2.0 ;LED高電平亮 MOV P1,#0FFH ;置P1為輸入方式 CHECK_KEY: JB P1.0,$ ;等待按鍵 LCALL DELAY10MS ;去抖動(dòng)10ms JB P1.0,CHECK_KEY ;確定有按鍵 LCALL DELAY1S ;延時(shí)1S后檢測(cè)按鍵 JB P1.0,short ;若已為高電平為短按 LCALL LED_FLASH ;若仍然為低電平為長(zhǎng)按 LCALL LED_FLASH JNB P1.0,$ ;等鍵松開 LCALL DELAY10MS ;去抖動(dòng) SJMP CHECK_KEY ;返回循環(huán)
short: LCALL LED_FLASH ;閃爍1次 SJMP CHECK_KEY ;循環(huán)
LED_FLASH: SETB LED ;閃爍程序 LCALL DELAY500MS ;延時(shí)500ms CLR LED LCALL DELAY500MS RET DELAY10MS: MOV R2,#100 L1: MOV R3,#50 DJNZ R3,$ DJNZ R2,L1 RET DELAY500MS: MOV R2,#100 L2: MOV R3,#250 DJNZ R3,$ DJNZ R2,L1 RET DELAY1S: MOV R2,#200 MOV R3,#250 DJNZ R3,$ DJNZ R2,L1 RET END |