标题: 单片机小制作—数码管轮流显示程序 [打印本页]

作者: lianlian    时间: 2015-7-10 02:20
标题: 单片机小制作—数码管轮流显示程序


以为很简单,没想到遇到点麻烦。

;单片机的汇编程序 8 位轮流显示  0~7,8~F

;E:\DPJ\7SEG8CC\7SEGCC8-2.ASM
;2011 11 14

ORG 00H
AJMP MAIN
ORG 30H

MAIN:
MOV DPTR,#TAB
MOV R4,#100    ;0~7,8~F 各显示100次

DISP:
MOV R0,#30   
MOV R3,#0FEH   ;R3存放位码
DISP1:
MOV A,@R0  ;@R0存放0~F
MOVC A,@A+DPTR
MOV P0,A  ;送段码
MOV P2,R3
ACALL D1MS  ;延时1MS,消鬼影
MOV P2,#0FFH   ;关显示
MOV A,R3
RL A
MOV R3,A
INC R0
INC R2  ;R2存放位数
MOV A,R2
MOV @R0,A
JB F0,D2  ;F0=0显示 0~7  F0=1显示 8~F  
CJNE    R2,#8,DISP1
MOV R0,#30
MOV R2,#0
DJNZ R4,DISP1
MOV R4,#100
MOV R0,#38
MOV R2,#8
SETB F0
D2:
CJNE    R2,#16,DISP1
MOV R0,#38
MOV R2,#8
DJNZ R4,DISP1
MOV R4,#100
MOV R0,#30
MOV R2,#0
CLR F0
AJMP DISP1

D1MS:
MOV R7,#5
MOV R6,#100
DJNZ R6,$
DJNZ R7,$-4
RET

TAB:
DB      3FH;0

DB      06H;1
DB      5BH;2
DB      4FH;3
DB      66H;4
DB      6DH;5
DB      7DH;6
END






2011 11 15 更新 睡了一觉,头脑清醒多了。修改一下,简洁了。

ORG 00H
AJMP MAIN
ORG 30H

MAIN:
MOV DPTR,#TAB
MOV R4,#100    ;0~7,8~F 各显示100次
MOV R3,#0FEH   ;R3存放位码
DISP:
MOV A,R0  ;R0 为0~F
MOVC A,@A+DPTR
MOV P0,A  ;送段码
MOV P2,R3
ACALL D1MS  ;延时1MS
MOV P2,#0FFH   ;关显示,消鬼影
MOV A,R3
RL A
MOV R3,A
INC R0
JB F0,D2  ;F0=0显示 0~7  F0=1显示 8~F  
CJNE R0,#8,DISP
MOV R0,#0
DJNZ R4,DISP
MOV R4,#100
MOV R0,#8
SETB F0
D2:
CJNE       R0,#16,DISP
MOV R0,#8
DJNZ R4,DISP
MOV R4,#100
MOV R0,#0
CLR F0
AJMP DISP

D1MS:
MOV R7,#5
MOV R6,#100
DJNZ R6,$
DJNZ R7,$-4
RET

TAB:
DB      3FH;0
DB      06H;1
DB      5BH;2
DB      4FH;3
DB      66H;4
DB      6DH;5
DB      7DH;6
DB      07H;7
DB      7FH;8
DB      6FH;9
DB      77H;A
DB      7CH;b
DB      39H;C
DB      5EH;d
DB      79H;E
DB      71H;F

END







欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1