微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 这数码管的动态显示的延迟程序(汇编)怎么定好?

这数码管的动态显示的延迟程序(汇编)怎么定好?

时间:10-02 整理:3721RD 点击:
ORG 0000H
AJMP MAIN
ORG    000BH
AJMP INT
ORG 0100H ;主程序开始地址
MAIN:
MOV R4,#20
MOV TMOD,#01H
MOV TH0,#3CH ;12M晶振时定时初值取#3CB0H,50MS中断一次
MOV TL0,#0B0H
SETB ET0
SETB EA
SETB TR0
DISP:
MOV A,R0
MOV B,#10
div AB             ;商保存在A里面,即十位数,余数保存在B内,即个位数。
CLR P3.1            ;把个位数显示屏蔽
MOV P0,A        ;用LED数码管在P0口输出十位数
ACALL D1MS       ;调用延时子程序
SETB P3.1
MOV A,B          ;将个位数move给A累加器
CLR P3.0             ;将十位屏蔽
MOV P0,A          ;用LED数码管在P0口输出个位数
ACALL D1MS
SETB P3.0
AJMP DISP
  
INT:
MOV TH0,#03CH; 重装定时常数
MOV TL0,#0B0H;
DJNZ R4,RTI ;50msX20=1S,未满20次,跳出中断子程序
MOV R4,#20
INC R0
CJNE R0,#100,RTI
MOV R0,#0
RTI:
RETI
D1MS:
MOV R7,#44
MOV R6,#100
DJNZ R6,$
DJNZ R7,$-4
RET
END

用上面的延迟程序,proteus仿真,数码管不显示,,
将延时程序改成
D1MS:
MOV R7,#144
MOV R6,#100
DJNZ R6,$
DJNZ R7,$-4
RET
之后又太闪烁。
这时间应该怎么定才正确,,用的是11.0592MHZ。共阳数码管(还是电路有问题?)
新手不懂,请各位大神指教。

电路图


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top