📄 007.asm
字号:
/******************************************************************
*** description: ***
*** A/D tlc549驱动,显示程序 ***
******************************************************************/
org 0000h
ad: setb p2.7 ;使蜂鸣器不发声
mov a,#0
setb p3.5 ;T1--DOUT
setb p3.3 ;INT1--CS
clr p3.4 ;T0--CLK
clr p3.3
acall read
setb p3.3
acall delay
acall display
sjmp ad
read: mov c,p3.5 ;读入转换数据一位
rlc a ;将进位左移给A,即将转换的数据的一位读入
mov r4, #07h
re0: setb p3.4 ;置I/O时钟为高
nop ;等待转完
nop
clr p3.4 ;置I/O时钟为低
nop
nop
mov c,p3.5 ;读入转换数据一位
rlc a
djnz r4,re0 ;8位数据是否转完?
setb p3.4
nop
nop
clr p3.4
nop
nop
ret
delay: mov r7,#05h
delay1: nop
nop
djnz r7,delay1
ret
;***************
display:
mov p1,#0
mov r2,a
mov a,r2
anl a,#0f0h
swap a
mov dptr,#tab1
mov r0,a ;段码偏移
mov r1,#01 ;位码
mov a,r0
movc a,@a+dptr ;查到段码
orl a,#80h
mov p2,a ;送出段码,并使p2.7=1,禁止蜂鸣器发声
mov a,r1
mov p1,a ;送出位码
mov r6,#40h
dl21: mov r7,#5dh
dl11: nop
nop
djnz r7,dl11
djnz r6,dl21
mov a,r2
anl a,#0fh
mov r0,a ;找到下一个要显示的段码
mov a,r1 ;位码
rl a ;位码左移
mov r1,a
mov a,r0
movc a,@a+dptr ;查到段码
orl a,#80h
mov p2,a ;送出段码,并使p2.7=1,禁止蜂鸣器发声
mov a,r1
mov p1,a
mov r6,#30h
dl22: mov r7,#7dh
dl12: nop
;nop
djnz r7,dl12
djnz r6,dl22
reti
tab1: db 3Fh,06h,5Bh,4Fh,66h,6Dh,7Ddh,07h,7Fh,6Fh,77h,7Ch,39h,5Eh,79h,71h
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -