1。器件
a. 80C51一片
b. 4514(4-16线选芯片)一片,但也可以用74HC154代替,用其线路应能更简化一点,至少4511前的一个反相器可以省略去。
4514与74hc154主要区别是前者有一个锁存功能,且在相同的输入下两者输出电位刚好相反。
c. 4511(7段码译码器)和7段码至少各三个
d. 按钮一个
e. 其他略(见图)
2。连接线路图



3。编写程序
;latest update:2009-9-20 by alex shoal
;email:alex.shoal@gmail.com
KEY REG P1.7
ORG 0000H
MOV R6,#00H
MOV R3,#00H ;R3 is right the counter
WAIT: JB KEY,WAIT ;if key ==1 hold on
MOV R6,#00H
CJNE R3,#FFH,CC
MOV R6,#03H
CLRX: MOV P2,#00H
MOV P3,#00H
MOV P2,R6
DJNZ R6,CLRX
CC: INC R3
MOV A,R3
MOV R4,A
CALU: MOV A,R4
MOV B,#0AH
DIV AB
MOV R4,A
CALL NUMPL
CALL CHOICE
MOV A,R4
JZ NEXT
JMP CALU
NEXT: JNB KEY,NEXT
JMP WAIT
CHOICE:
INC R6
MOV P2,R6
RET
NUMPL: MOV P2,#00H
MOV P3,B
CALL DELAY
RET
;DELAY SUB PROGRAM
DELAY: MOV R0,#00H
D1: MOV R1,#0FH
D2: DJNZ R1,D2
DJNZ R0,D1
RET
END
4。运行程序并测试,得到结果如设想一致
当计数值达到255后又会从0开始重新计数。图虫多余的LED用于更大数的计数。对实例无作用。

本文介绍了一种使用80C51单片机、4514/74HC154、4511译码器和按钮构建的七段码计数器,计数范围为十进制0到255。程序通过检测按钮状态更新计数,并在七段码上显示。当计数值达到255后,会自动重置为0。
4314

被折叠的 条评论
为什么被折叠?



