標(biāo)題:
大佬幫我看下這個單片機(jī)匯編代碼為什么按鍵用不了?
[打印本頁]
作者:
1798351955
時間:
2022-10-26 12:39
標(biāo)題:
大佬幫我看下這個單片機(jī)匯編代碼為什么按鍵用不了?
2.jpg
(214.38 KB, 下載次數(shù): 15)
下載附件
2022-10-26 17:40 上傳
1.jpg
(127.42 KB, 下載次數(shù): 15)
下載附件
2022-10-26 17:40 上傳
單片機(jī)匯編語言源程序如下:
ORG 0000H ;程序上電從0000H開始
AJMP MAIN ;跳轉(zhuǎn)到主程序
ORG 0004H ;主程序起始地址
KEY0 BIT P3.1 ;定義IO端口
KEY1 BIT P3.0
KEY2 BIT P3.2
KEY3 BIT P3.3
LED0 BIT P2.0
LED1 BIT P2.1
LED2 BIT P2.2
LED3 BIT P2.3
LED4 BIT P2.4
LED5 BIT P2.5
LED6 BIT P2.6
LED7 BIT P2.7
MAIN:
;初始按鍵全部彈起
SETB KEY0
SETB KEY1
SETB KEY2
SETB KEY3
;初始LED全部熄滅
SETB LED0
SETB LED1
SETB LED2
SETB LED3
SETB LED4
SETB LED5
SETB LED6
SETB LED7
SETB LED0 ;初始化LED0熄滅
CLR LED0 ;給低電平LED0亮
LCALL DELAY_250MS
CPL LED0
SETB LED1 ;初始化LED1熄滅
CLR LED1 ;給低電平LED1亮
LCALL DELAY_250MS
CLR LED0
LCALL DELAY_250MS
CPL LED1
SETB LED2 ;初始化LED2熄滅
CLR LED2 ;給低電平LED2亮
CPL LED0
LCALL DELAY_250MS
CLR LED0
LCALL DELAY_250MS
CPL LED0
CLR LED1
LCALL DELAY_250MS
CLR LED0
LCALL DELAY_250MS
CPL LED1
CPL LED2
SETB LED3 ;初始化LED3熄滅
CLR LED3 ;給低電平LED3亮
CPL LED0
LCALL DELAY_250MS
CLR LED0
LCALL DELAY_250MS
CPL LED0
CLR LED1
LCALL DELAY_250MS
CPL LED0
LCALL DELAY_250MS
CPL LED1
CLR LED2
CPL LED0
LCALL DELAY_250MS
CLR LED0
LCALL DELAY_250MS
CLR LED1
CPL LED0
LCALL DELAY_250MS
CLR LED0
LCALL DELAY_250MS
CPL LED3
CPL LED0
CPL LED1
CPL LED2
LCALL LOOP
LOOP:
JB KEY0,LOOP1 ;KEY0按下
LCALL DELAY10MS ;延時去按下抖動
JB KEY0,LOOP1
JNB KEY0,[ DISCUZ_CODE_1 ]nbsp;
LCALL DELAY10MS ;延時去彈起抖動
CPL LED4
LOOP1:
JB KEY1,LOOP2 ;KEY1按下
LCALL DELAY10MS ;延時去按下抖動
JB KEY1,LOOP
JNB KEY1,$
LCALL DELAY10MS ;延時去彈起抖動
CPL LED5
LOOP2:
JB KEY2,LOOP3 ;KEY2按下
LCALL DELAY10MS ;延時去按下抖動
JB KEY2,LOOP3
JNB KEY2,$
LCALL DELAY10MS ;延時去彈起抖動
CPL LED6
LJMP LOOP
LOOP3:
JB KEY3,LOOP ;KEY3按下
LCALL DELAY10MS ;延時去按下抖動
JB KEY3,LOOP
JNB KEY3,$
LCALL DELAY10MS ;延時去彈起抖動
CPL LED7
LJMP LOOP
DELAY10MS:
NOP
NOP
NOP
PUSH 30H
PUSH 31H
MOV 30H,#87
MOV 31H,#10
RET
DELAY_250MS:
MOV R7,#10
D1: MOV R6,#100
D2: MOV R5,#250
DJNZ R5,$
DJNZ R6,D2
DJNZ R7,D1
RET
END
復(fù)制代碼
作者:
人中狼
時間:
2022-10-26 14:47
LOOP1:
JB KEY1,LOOP2 ;KEY1按下
LCALL DELAY10MS ;延時去按下抖動
JB KEY1,LOOP
第二個跳轉(zhuǎn)不對,控制的LED是4,5,6,7,應(yīng)該有一兩個按鍵能起作用吧
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1