提问者追求的是:还有没有更简单的,语句更少的?
但是,提问者采纳的答案中,最后的程序,还不是最简的。
还有一条多余的指令。
最简的程仿咐序,如下:
;---------------------------------------------------------
LOOP:
MOV A, P1 ;读入P1口
ORL A, #0FH ;置位低四位
SWAP A ;交换高低半字节,用按键位状态驱动LED
MOV P1, A ;写入P1口
SJMP LOOP
;---------------------------------------------------------
这个程序,早大颤效率,比采纳答陆败案中的程序,大约提高了 14%。
这肢族个非常仔喊简单啊:
L1 EQU P1.0 ;LED1
L2 EQU P1.1 ;LED2
L3 EQU P1.2 ;LED3
L4 EQU P1.3 ;LED4
ANK1 EQU P1.4 ;按键1
ANK2 EQU P1.5 ;按念饥野键2
ANK3 EQU P1.6 ;按键3
ANK4 EQU P1.7 ;按键4
ORG 0100H
MOV P1, #0FFH
LOP10: JB ANK1, LOP11
CLR L1
SJMP LOP20
LOP11: SETB L1
LOP20: JB ANK2, LOP21
CLR L2
SJMP LOP30
LOP21: SETB L2
LOP30: JB ANK3, LOP31
CLR L3
SJMP LOP40
LOP31: SETB L3
LOP40: JB ANK4, LOP41
CLR L4
SJMP LOP10
LOP41: SETB L4
SJMP LOP10
END
为什么要用汇编呢?C的要不要?
采用一楼的吧.
无语