|
1.ASM1_KEY: 按鍵控制LED亮滅,3種情況
- /**
- ******************************************************************************
- * @file asm.asm
- * @author Alex——小白
- * @version V1.0
- * @date 2019.9.1
- * @brief 3種方法實(shí)現(xiàn)KEY to LED
- ******************************************************************************
- * @attention All Rights Reserved
- **/
- ORG 0030H ;程序執(zhí)行的起始地址
- LJMP Main ;跳轉(zhuǎn)到main函數(shù)
- ORG 0100H ;程序跳轉(zhuǎn)到0100H開始執(zhí)行
- ;方法1:
- Main: ;最簡(jiǎn)單的按鍵賦值(8個(gè)按鍵)
- MOV P1,P0 ;將P0狀態(tài)賦給P1
- SJMP Main ;跳轉(zhuǎn)到main,死循環(huán)
- ;方法2:
- ; Main: ;P0.0按鍵控制P1.0的LED(1個(gè)按鍵)
- ; JB P0.0,Over ;判斷按鍵是否檢測(cè)到,若無跳到Main
- ; LCALL Delay ;若有,延時(shí)消抖
- ; JB P0.0,Over ;再次判斷按鍵是否檢測(cè)到
- ; JNB P0.0,[ DISCUZ_CODE_1 ]nbsp; ;長(zhǎng)按檢測(cè),若有則一直死循環(huán)
- ; CPL P1.0 ;若有按鍵,則LED狀態(tài)翻轉(zhuǎn)(CPL表示去反)
- ; Over:
- ; SJMP Main ;跳轉(zhuǎn)到main,死循環(huán)
-
- ;方法3:
- ; Main: ;P0.0-1按鍵控制P1.0-1的LED(2個(gè)按鍵)
- ; JB P0.0,Next ;判斷P0.0按鍵是否檢測(cè)到,若無跳到Next
- ; LCALL Delay ;若有,延時(shí)消抖
- ; JB P0.0,Next ;再次判斷按鍵是否檢測(cè)到
- ; JNB P0.0,[ DISCUZ_CODE_1 ]nbsp; ;長(zhǎng)按檢測(cè),若有則一直死循環(huán)
- ; CPL P1.0 ;若有按鍵,則LED狀態(tài)翻轉(zhuǎn)
- ; Next:
- ; JB P0.1,Over ;判斷P0.1按鍵是否檢測(cè)到,若無跳到Over
- ; LCALL Delay ;若有,延時(shí)消抖
- ; JB P0.1,Over ;再次判斷按鍵是否檢測(cè)到
- ; JNB P0.1,[ DISCUZ_CODE_1 ]nbsp; ;長(zhǎng)按檢測(cè),若有則一直死循環(huán)
- ; CPL P1.1 ;若有按鍵,則LED狀態(tài)翻轉(zhuǎn)
- ; Over:
- ; SJMP Main ;跳轉(zhuǎn)到main,死循環(huán)
-
- Delay: ;t=t1*20=10ms,修改R6的值即可更改時(shí)間(不精準(zhǔn))
- MOV R6, #014H ;014H=20
- D1:
- MOV R7, #0FAH ;t1=250*2=500
- D2:
- DJNZ R7, D2 ;R7=250自減,直到為0跳出循環(huán),雙周期
- DJNZ R6, D1 ;R6=020自減,直到為0跳出循環(huán),雙周期
- RET
- END
復(fù)制代碼
ASM1_KEY.zip
(65.37 KB, 下載次數(shù): 15)
2019-12-13 20:16 上傳
點(diǎn)擊文件名下載附件
|
|