📄 ceshida.bak
字号:
org 0000h
ajmp main
org 0030h
main:
mov sp,#60h
mov r0,#00h
mov r1,#00h
l: inc r1
inc r1
inc r1
inc r1
cjne r1,#0fch ,g
inc r0
mov r1,#00h
cjne r0,#0fh,g
mov r1,#00h
mov r0 ,#00h
g:
acall send
; acall delay
sjmp l
;TLC5615采用非级联方式,将要输入的12位数据存在R0、R1寄存器中,其D/A转换程序如下
send:
CLR P1.2;片选有效
MOV R2,#4;将要送入的前四位数据位数
MOV A,R0;前四位数据送累加器低四位
SWAP A;A中高四位与低四位互换
LCALL WRdata;DIN输入前四位数据
MOV R2,#8;将要送入的后八位数据位数
MOV A,R1;八位数据送入累加器A
LCALL WRdata;DIN输入后八位数据
CLR P1.1;时钟低电平
SETB P1.2;片选高电平,输入的12位数据有效
ret
;送数子程序如下:
WRdata:
nop ;空操作
LOOP:CLR P1.1;时钟低电平
RLC A;数据送入位标志位CY
MOV P1.0,c ; C数据输入有效
SETB P1.1;时钟高电平
DJNZ R2,LOOP;循环送数
RET ;返回
;TLC5615采用非级联方式,将要输入的12位数据存在R0、R1寄存器中,其D/A转换程序如下
send1:
CLR P1.6;片选有效
MOV R2,#4;将要送入的前四位数据位数
MOV A,R0;前四位数据送累加器低四位
SWAP A;A中高四位与低四位互换
LCALL WRdata1;DIN输入前四位数据
MOV R2,#8;将要送入的后八位数据位数
MOV A,R1;八位数据送入累加器A
LCALL WRdata1;DIN输入后八位数据
CLR P1.5;时钟低电平
SETB P1.6;片选高电平,输入的12位数据有效
ret
;送数子程序如下:
WRdata1:
nop ;空操作
LOOP1:CLR P1.5;时钟低电平
RLC A;数据送入位标志位CY
MOV P1.4,c ; C数据输入有效
SETB P1.5;时钟高电平
DJNZ R2,LOOP1;循环送数
RET ;返回
delay: mov r7, #18h
d1: mov r6, #01h
djnz r6, $
djnz r7, d1
ret
sjmp loop
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -