[原创]
;TLC5615A,10位DA转换子程序
;P12=CLK
;P14=DIN
;IC1-Q5/Q6=CS
;R6 = 输入高位存储
;R7 = 输入低位存储
;R5 = 临时存储器
DA: SETB P1.4 ;DIN=1
clr P1.2 ;CLK=1
MOV A,R6 ;高位到A
RL a ;A左移2位
RL A
MOV B,R7 ;低位到B
MOV c,B.7 ;B的最高位到A的次低位
MOV Acc.1,C
MOV c,B.6 ;B的次高位到A的最低位
MOV Acc.0,C
MOV R5,#04H ;#4到R5
DA1: MOV C,acc.3 ;Acc的第3位到C
RL A ;A左移1位
MOV P1.4,C ;C到DIN
SETB P1.2 ;CLK=1
CLR P1.2 ;CLK=0
DJNZ R5,DA1 ;R5大于0重复
MOV A,R7 ;R7移到A
RL A ;A左移2位
RL A
CLR acc.1 ;A的0位1位均清零
clr acc.0
MOV R5,#08H
DA2: MOV C,Acc.7 ;Acc的第7位到C
RL A ;A左移1位
MOV P1.4,C ;C到DIN
SETB P1.2 ;CLK=1
CLR P1.2 ;CLK=0
DJNZ R5,DA2 ;R5大于0重复
RET
;end
发表时间:2003年5月23日22:02:06