;89C51汇编语言写8个按键控制8个LED
;按键接P2口,LED接P1口。
;有6按键,按下对应LED长亮,重复按下,LED灭;
;有两个特殊按键,按下,对应LED每隔1秒闪烁,重复按下,LED灭。
;题目网址:http://zhidao.baidu.com/question/591052586.html
;做而论道编写的程序如下:
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP T0_INT
ORG 0030H
;---------------------------------
MAIN:
MOV TMOD, #01H
MOV TH0, #HIGH(65536 - 10000) ;10ms@12MHz
MOV TL0, #LOW(65536 - 10000)
SETB TR0
MOV IE, #82H
MOV R7, #50 ;500ms
LOP:SJMP LOP
;---------------------------------
T0_INT:
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
ANL A, #3FH
XRL 20H, A
MOV A, 22H
ANL A, #0C0H
XRL 23H, A
DJNZ R7, T0_E
MOV R7, #50 ;500ms亮500ms灭
JB 23H.7, S2
XRL 20H, #80H
SJMP S3
S2: ORL 20H, #80H
S3: JB 23H.6, S4
XRL 20H, #40H
SJMP T0_E
S4: ORL 20H, #40H
T0_E: MOV P1, 20H
RETI
;---------------------------------
END
;仿真电路如下:
;图片链接:http://xiangce.baidu.com/picture/detail/b13fd0df0ff8c029222ecb222f7b961dc49698d2
;经过仿真实验,本程序,符合题目要求。
;D1~D6,受 K1~K6 控制,长亮/熄灭;D7~D8,受到 K7~K8 控制,闪烁/熄灭。
C 语言程序可见:http://hi.baidu.com/do_sermon/item/f8812371c31434590d0a0791
注意这两个题目的接口要求不同。