1、P3.三口为输入口,外部开关,开关K每次拨动(输入-脉冲),P一口按十六进制加一。
2.P一口作为输出口,编写程序P8个发光二极管1口连接L1-L8按16进制加一方式点亮发光二极管。
(1)Proteus原理图:
我们使用了AT89C51主控单片机,使用单片机P1、P3.3口来实现LED灯的控制。具体电路图如下图所示:
(2)keil代码如下:
ORG 0000H
LJMP START
ORG 1000H
START: MOV A, #00H
S1: JB P3.3,S1
MOV R2, #10H
LCALL DELAY
JB P3.3,S1
S2: JNB P3.3,S2
MOV R2, #10H
LCALL DELAY
JNB P3.3,S2
INC A
PUSH ACC
CPL A
MOV P1,A
POP ACC
AJMP S1
DELAY: ;误差 0us
MOV R7,#01H
DL1:
MOV R6,#26H
DL0:
MOV R5,#82H
DJNZ R5,$
DJNZ R6,DL0
DJNZ R7,DL1
RET
END
经过调试和操作,无警告
(3)keil与Protues联合调试
导入主控单片机hex运行正常的文件,如下图所示: