51 汇编语言编程:8个按键控制8个LED
扫描二维码
随时随地手机看文章
;P2 外接八个按键,P1 外接八个 LED
;一个按键对应控制一个灯,比如 P2.0 只控制 P1.0。
;按一下键,对应的 LED 亮灭转换一次
;不按则保持状态,常亮或常灭
ORG 0000H
LJMP START
ORG 000BH
MOV TH0, #HIGH(65536 - 10000) ;10ms@12MHz
MOV TL0, #LOW(65536 - 10000)
MOV A, P2
CPL A
MOV B, A
XRL A, 21H
ANL A, 21H
MOV 22H, A
MOV 21H, B
XRL 20H, A
MOV P1, 20H
RETI
;---------------------------------
START:
MOV TMOD, #01H
MOV TH0, #HIGH(65536 - 10000) ;10ms@12MHz
MOV TL0, #LOW(65536 - 10000)
SETB TR0
MOV IE, #82H
LOP:SJMP LOP
END
本程序完全符合题目要求,但是并没有被提问者选中。
提问者选中的程序,比做而论道写的,罗嗦的也太多了。
该程序的作者,对题目要求都理解不了,甚至说题目有矛盾。
当其故作高深的提出建议后,由此就得到了提问者的认同。
感兴趣的网友,可以打开题目链接,看看两个程序功能,相差多少。
其实,本程序,还可以更简单一些:
ORG 0000H
MOV A, P2
CPL A
MOV B, A
XRL A, 21H ;C_T
ANL A, 21H ;
MOV 21H, B ;C_L
XRL P1, A
DJNZ R7, $
DJNZ R6, $ - 2
JMP 0000H
END