📄 mr6928.asm
字号:
;MR6928测试程序,MR6928与V6928、HD6928、ET6202、SM1628等可直接替换
sem0 equ 20h
sem1 equ 21h
sem2 equ 22h
sem3 equ 23h
sem4 equ 24h
sem5 equ 25h
sem6 equ 26h
sem7 equ 27h
sem8 equ 28h
sem9 equ 29h
semA equ 2Ah
semB equ 2Bh
semC equ 2Ch
semD equ 2Dh
sig equ 2Eh
changesig bit sig.0
s11 bit sem0.0
s12 bit sem2.0
s13 bit sem4.0
s14 bit sem6.0
s15 bit sem8.0
s16 bit semA.0
s17 bit semC.0
s21 bit sem0.1
s22 bit sem2.1
s23 bit sem4.1
s24 bit sem6.1
s25 bit sem8.1
s26 bit semA.1
s27 bit semC.1
s31 bit sem0.2
s32 bit sem2.2
s33 bit sem4.2
s34 bit sem6.2
s35 bit sem8.2
s36 bit semA.2
s37 bit semC.2
s41 bit sem0.3
s42 bit sem2.3
s43 bit sem4.3
s44 bit sem6.3
s45 bit sem8.3
s46 bit semA.3
s47 bit semC.3
s51 bit sem0.4
s52 bit sem2.4
s53 bit sem4.4
s54 bit sem6.4
s55 bit sem8.4
s56 bit semA.4
s57 bit semC.4
s61 bit sem0.5
s62 bit sem2.5
s63 bit sem4.5
s64 bit sem6.5
s65 bit sem8.5
s66 bit semA.5
s67 bit semC.5
s71 bit sem0.6
s72 bit sem2.6
s73 bit sem4.6
s74 bit sem6.6
s75 bit sem8.6
s76 bit semA.6
s77 bit semC.6
s81 bit sem0.7
s82 bit sem2.7
s83 bit sem4.7
s84 bit sem6.7
s85 bit sem8.7
s86 bit semA.7
s87 bit semC.7
s91 bit sem1.0
s92 bit sem3.0
s93 bit sem5.0
s94 bit sem7.0
s95 bit sem9.0
s96 bit semB.0
s97 bit semD.0
sA1 bit sem1.1
sA2 bit sem3.1
sA3 bit sem5.1
sA4 bit sem7.1
sA5 bit sem9.1
sA6 bit semB.1
sA7 bit semD.1
;******************************************;
;
;******************************************;
p4 data 0xe8
clk equ p4.1
stb equ p4.2
din equ p4.0
cnt equ 3bh
org 0000h
ljmp main
org 000bh
ljmp t0int
org 0030h
main:
;清0位寻址区中的缓冲区(14B)
mov r2,#0dh
mov r0,#20h
clrbitbuf:
mov @r0,#00h
inc r0
djnz r2,clrbitbuf
;清0数据缓冲区(10B)
mov r2,#0Ah
mov r0,#30h
clrdatabuf:
mov @r0,#00h
inc r0
djnz r2,clrdatabuf
;控制寄存器初始化
mov tmod,#01h
mov th0,#3ch
mov tl0,#0ach
setb et0
setb ea
;生成显示数据
lcall aduj
;初始化MR6928
setb stb
setb clk
nop
dis:
mov a,#50h ;数据设置命令,普通显示模式,地址自动增量,写数据。
clr stb
lcall writeB
setb stb
setb stb
nop
mov a,#0D0h ;初始写数据地址为00H,(00H~0DH)
clr stb
lcall writeB
;显示特定的字符
; mov r4,#00h
; mov r3,#0Dh
;writecode:
; mov dptr,#table
; mov a,r4
; movc a,@a+dptr
; lcall writeB
; inc r4
; djnz r3,writecode
;清屏
; mov r2,#0dh
;initdata:
; mov a,#00h ;数据全部初始化为0,这一步可省略
; clr stb
; lcall writeB
; djnz r2,initdata
;显示00:00:00
lcall send
setb stb
setb stb
nop
nop
mov a,#53h ;设置显示为7位10段
clr stb
lcall writeB
setb stb
setb stb
nop
nop
mov a,#0A8h ;开显示
clr stb
lcall writeB
setb stb
setb stb
setb tr0
jnb changesig,$
clr changesig
lcall aduj
ljmp dis
;*************************************************
aduj:
;调整数据
mov dptr,#table
mov r0,#30h
mov a,@r0
movc a,@a+dptr
lcall changesegm2
inc r0
mov a,@r0
movc a,@a+dptr
lcall changesegm3
inc r0
mov a,@r0
movc a,@a+dptr
lcall changesegm4
inc r0
mov a,@r0
movc a,@a+dptr
lcall changesegm5
inc r0
mov a,@r0
movc a,@a+dptr
lcall changesegmA
inc r0
mov a,@r0
movc a,@a+dptr
lcall changesegm6
ret
;发送调整后的显示数据
send:
mov r0,#20h
mov r3,#0dh
; clr stb
senddata:
mov a,@r0
lcall writeB
inc r0
djnz r3,senddata
ret
;***************************************************
t0int:
mov tl0,#0ach
mov th0,#3ch
inc cnt
mov a,cnt
cjne a,#14h,quit
setb changesig
mov cnt,#00h
inc 30h
mov a,30h
cjne a,#0ah,quit
mov 30h,#00h
inc 31h
mov a,31h
cjne a,#06h,quit
mov 31h,#00h
inc 32h
mov a,32h
cjne a,#0ah,quit
mov 32h,#00h
inc 33h
mov a,33h
cjne a,#06h,quit
mov 33h,#00h
inc 34h
mov a,34h
anl a,#0f0h
mov 35h,a
mov a,34h
mov b,a
anl a,#0fh
mov 34h,a
mov a,b
cjne a,#24h,quit
mov 34h,#00h
quit:
reti
;***************************************************
writeB:
mov r2,#08h
write:
clr clk
rrc a
mov din,c
setb clk
setb clk
nop
nop
djnz r2,write
ret
changesegm1:
rrc a
mov s11,c
rrc a
mov s12,c
rrc a
mov s13,c
rrc a
mov s14,c
rrc a
mov s15,c
rrc a
mov s16,c
rrc a
mov s17,c
ret
;***********************************;
changesegm2:
rrc a
mov s21,c
rrc a
mov s22,c
rrc a
mov s23,c
rrc a
mov s24,c
rrc a
mov s25,c
rrc a
mov s26,c
rrc a
mov s27,c
ret
;***********************************;
changesegm3:
rrc a
mov s31,c
rrc a
mov s32,c
rrc a
mov s33,c
rrc a
mov s34,c
rrc a
mov s35,c
rrc a
mov s36,c
rrc a
mov s37,c
ret
;***********************************;
changesegm4:
rrc a
mov s41,c
rrc a
mov s42,c
rrc a
mov s43,c
rrc a
mov s44,c
rrc a
mov s45,c
rrc a
mov s46,c
rrc a
mov s47,c
ret
;***********************************;
changesegm5:
rrc a
mov s51,c
rrc a
mov s52,c
rrc a
mov s53,c
rrc a
mov s54,c
rrc a
mov s55,c
rrc a
mov s56,c
rrc a
mov s57,c
ret
;***********************************;
changesegm6:
rrc a
mov s61,c
rrc a
mov s62,c
rrc a
mov s63,c
rrc a
mov s64,c
rrc a
mov s65,c
rrc a
mov s66,c
rrc a
mov s67,c
ret
;***********************************;
changesegm7:
rrc a
mov s71,c
rrc a
mov s72,c
rrc a
mov s73,c
rrc a
mov s74,c
rrc a
mov s75,c
rrc a
mov s76,c
rrc a
mov s77,c
ret
;***********************************;
changesegm8:
rrc a
mov s81,c
rrc a
mov s82,c
rrc a
mov s83,c
rrc a
mov s84,c
rrc a
mov s85,c
rrc a
mov s86,c
rrc a
mov s87,c
ret
;***********************************;
changesegm9:
rrc a
mov s91,c
rrc a
mov s92,c
rrc a
mov s93,c
rrc a
mov s94,c
rrc a
mov s95,c
rrc a
mov s96,c
rrc a
mov s97,c
ret
;***********************************;
changesegmA:
rrc a
mov sA1,c
rrc a
mov sA2,c
rrc a
mov sA3,c
rrc a
mov sA4,c
rrc a
mov sA5,c
rrc a
mov sA6,c
rrc a
mov sA7,c
ret
;***********************************;
table:
db 7eh,30h,6dh,79h,33h,5bh,5fh,70h,7fh,7bh
; db 0beh,01h,0b8h,03h,0a2h,02,0b6h,03h,0fdh,03h,0cfh,03h,0f6h,03h
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -