ORG 0000H
LJMP 0100H
MAIN: MOV SP,#70H
MOV 60H,#0 ;给显示缓冲区送显示的初值 01234567
MOV 61H,#1
MOV 62H,#2
MOV 63H,#3
MOV 64H,#4
MOV 65H,#5
MOV 66H,#6
MOV 67H,#7
LY: LCALL DISP ;调用显示子程序 显示01234567
MOV R5,#8 ;延时一段时间
LLL0: LCALL YS1MS
DLNZ R5,LLL0
LLL: SJMP LY
;以下为显示子程序和延时子程序
DISP: MOV R0,#60H ;指针指向显示缓冲区
MOV R7,#8 ;设循环显示的次数 显示8位数据
CLR C
MOV R6,#00000001B ;从p2.0开始显示 即先显示第一位
LL: MOV DPTR,#TAB ;数据指针指向显示编码表达首地址
MOV A,@R0
MOVC A , @ A+ DPTR ;取显示编码
MOV P0,A ;送P0口显示
MOV A,R6
MOV P2,A ;控制显示位
RLC A ;修改显示位
MOV R6,A
INC R0 ;指向下一个要显示的数据
LCALL YS1MS ;延时显示时间
DJNZ R7,LL ;4位数据没显示完 则转LL继续显示
RET
TAB: DB 0C0H,0F9H,0A4H,0B0H,99H ;显示编码
DB 92H,82H,0F8H,80H,98H
YS1MS: MOV R5,#45 ;延时子程序
YSLL: MOV R4,#200
YYLL: DJNZ R4,YYLL
DJNZ R5,YSLL
RET
按你的要求设计的 哈哈 试试吧 别忘给加分啊
追问能不能附流程图?这个和我说的硬件不一样,是动态显示还是静态显示呀?
追答可以把你的电路图 发过来 我可以按你的电路改程序
当数码管较多时,一般都是采用动态显示 本显示就是动态的
想要这个的原理图和程序设计流程图就行,我还可以加分的。麻烦了
追答好啊 可以 就是在要一个流程图是吧 一会发给你
可以了吧 可以给俺加分了吧 呵呵
还没行,那个仿真的图没太看懂,给个原理图呀。
本回答被提问者采纳