打印
[51单片机]

【汇编语言/Proteus/单片机】数码管计时闪烁不稳定何解?

[复制链接]
864|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
交通灯下面的数码管倒计时显示模块 倒计时时不规律有时候会闪一下 不知道如何解决?
SECOND1 EQU 30H  
SECOND2 EQU 31H
DBUF EQU 40H
TEMP EQU 44H
LED_G1 BIT P2.1
LED_Y1 BIT P2.2
LED_R1 BIT P2.3
LED_G2 BIT P2.4
LED_Y2 BIT P2.5
LED_R2 BIT P2.6
;***********************************************
ORG 0000H
LJMP START
ORG 0100H
START:
MOV TMOD,#01H
MOV TH0,#3CH
MOV TL0,#0B0H
CLR TF0
SETB TR0
CLR A
MOV P2,A
;***********************************************
LOOP:
MOV R2,#20
MOV R3,#20
MOV SECOND1,#25
MOV SECOND2,#25
LCALL DISPLAY
LCALL STATE1
WAIT1:
JNB TF0,WAIT1
CLR TF0
MOV TH0,#3CH
MOV TL0,#0B0H
DJNZ R2,WAIT1
MOV R2,#20
DEC SECOND1
DEC SECOND2
LCALL DISPLAY
DJNZ R3,WAIT1
;***********************************************
MOV R2,#5  ;判断1s是否到,200ms*5=1s
MOV R3,#3  ;绿灯闪3s
MOV R4,#4  ;绿灯闪烁间隔为50ms*4=200ms
MOV SECOND1,#5
MOV SECOND2,#5
LCALL DISPLAY
WAIT2:
LCALL STATE2
JNB TF0,WAIT2
CLR TF0
MOV TH0,#3CH
MOV TL0,#0B0H
DJNZ R4,WAIT2
CPL LED_G1
MOV R4,#4
DJNZ R2,WAIT2
MOV R2,#5
DEC SECOND1
DEC SECOND2
LCALL DISPLAY
DJNZ R3,WAIT2
;***********************************************
MOV R2,#20
MOV R3,#2
MOV SECOND1,#2
MOV SECOND2,#2
LCALL DISPLAY
WAIT3:
LCALL STATE3
JNB TF0,WAIT3
CLR TF0
MOV TH0,#3CH
MOV TL0,#0B0H
DJNZ R2,WAIT3
MOV R2,#20
DEC SECOND1
DEC SECOND2
LCALL DISPLAY
DJNZ R3,WAIT3
;***********************************************
MOV R2,#20
MOV R3,#20
MOV SECOND1,#25
MOV SECOND2,#25
LCALL DISPLAY
WAIT4:
LCALL STATE4
JNB TF0,WAIT4
CLR TF0
MOV TH0,#3CH
MOV TL0,#0B0H
DJNZ R2,WAIT4
MOV R2,#20
DEC SECOND1
DEC SECOND2
LCALL DISPLAY
DJNZ R3,WAIT4
;***********************************************
MOV R2,#5
MOV R3,#3
MOV R4,#4
MOV SECOND1,#5
MOV SECOND2,#5
LCALL DISPLAY
WAIT5:
LCALL STATE5
JNB TF0,WAIT5
CLR TF0
MOV TH0,#3CH
MOV TL0,#0B0H
DJNZ R4,WAIT5
CPL LED_G2
MOV R4,#4
DJNZ R2,WAIT5
MOV R2,#5
DEC SECOND1
DEC SECOND2
LCALL DISPLAY
DJNZ R3,WAIT5
;***********************************************
MOV R2,#20
MOV R3,#2
MOV SECOND1,#2
MOV SECOND2,#2
LCALL DISPLAY
WAIT6:
LCALL STATE6
JNB TF0,WAIT6
CLR TF0
MOV TH0,#3CH
MOV TL0,#0B0H
DJNZ R2,WAIT6
MOV R2,#20
DEC SECOND1
DEC SECOND2
LCALL DISPLAY
DJNZ R3,WAIT6
LJMP START
;***********************************************
STATE1:
SETB LED_G1
CLR LED_Y1
CLR LED_R1
CLR LED_G2
CLR LED_Y2
SETB LED_R2
RET
STATE2:
CLR LED_Y1
CLR LED_R1
CLR LED_G2
CLR LED_Y2
SETB LED_R2
RET
STATE3:
CLR LED_G1
SETB LED_Y1
CLR LED_R1
CLR LED_G2
CLR LED_Y2
SETB LED_R2
RET
STATE4:
CLR LED_G1
CLR LED_Y1
SETB LED_R1
SETB LED_G2
CLR LED_Y2
CLR LED_R2
RET
STATE5:
CLR LED_G1
CLR LED_Y1
SETB LED_R1
CLR LED_G2
CLR LED_Y2
RET
STATE6:
CLR LED_G1
CLR LED_Y1
SETB LED_R1
CLR LED_G2
SETB LED_Y2
CLR LED_R2
RET
;***********************************************
DISPLAY:
MOV A,SECOND1
MOV B,#10
DIV AB
MOV DBUF+3,A
MOV A,B
MOV DBUF+2,A
MOV A,SECOND2
MOV B,#10
DIV AB
MOV DBUF+1,A
MOV A,B
MOV DBUF,A
MOV R0,#DBUF
MOV R1,#TEMP
MOV R7,#4
DP10:
MOV DPTR,#LEDMAP
MOV A,@R0
MOVC A,@A+DPTR
MOV @R1,A
INC R0
INC R1
DJNZ R7,DP10
MOV R0,#TEMP
MOV R1,#4
DP12:
MOV R5,#8
MOV R7,#8
MOV A,@R0
DP13:
RLC A
MOV P3.0,C
CLR P3.1
SETB P3.1
DJNZ R7,DP13
INC R0
DJNZ R1,DP12
RET
LEDMAP:
DB 3FH,06H,5BH,4FH,66H
DB 6DH,7DH,07H,7FH,6FH
END


XDTCP`6N$7L@M(TYZ~G`T6X.png (53.4 KB )

XDTCP`6N$7L@M(TYZ~G`T6X.png

使用特权

评论回复

相关帖子

沙发
xyz549040622| | 2020-11-4 15:43 | 只看该作者
纯汇编,看不懂,用什么方式扫描的?

使用特权

评论回复
板凳
MianQi| | 2020-11-5 12:47 | 只看该作者
本帖最后由 MianQi 于 2020-11-5 12:51 编辑

能把视频发一下吗?
如果正计数正常,不能用正计数取补的方法倒计数吗?
代码是否完整,有包含前面的“#include reg51.h” 以及“nolist...list”的完整代码吗?


使用特权

评论回复
地板
xys9190| | 2020-11-5 16:01 | 只看该作者
估计是扫描数码管的时间不均匀或者是 扫描间隔过长照成的。
其他功能尽量改为通过标志的方式实现使能而不是等待,类似并行的模式

使用特权

评论回复
5
MCU57863859| | 2020-11-12 09:08 | 只看该作者
单片机原厂, qq:57863859

使用特权

评论回复
6
jackyhuang1988| | 2020-11-12 17:09 | 只看该作者
闪烁就是164在移位引起的。你这个改成2ms刷新一次数码,也会微闪的。解决方法是,数码管的共阴极要控制,当164在移位的时候,就不让它导通。

使用特权

评论回复
评论
安临寒生 2020-11-13 21:36 回复TA
通过啥控制 
7
chineseboyzxy| | 2020-11-14 08:20 | 只看该作者
本帖最后由 chineseboyzxy 于 2020-11-14 08:23 编辑

真正的红绿灯,是4个方向各有一套控制的吧,应该不是和对面路口用一套控制的,根据需要随时可以分开自由控制。数码管闪,是因为164扫数据速度太慢,或是扫数据过程被打断了。拆过一个老式的电话计费器,也是164的输出端直接驱动数码管,COM端也没有控制,没见过闪。

使用特权

评论回复
8
ks11900| | 2020-12-2 10:01 | 只看该作者
扫描的时候遇到别的中断或者什么动作打断了。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

16

帖子

0

粉丝