Proteus实现80C51 七段码显示十进制0~255计数

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

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用于更大数的计数。对实例无作用。

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值