串行数模转换 求解惑

2019-03-24 17:46发布

单片机串行输入到 芯片DAC6311,输出0-5V的电平。程序应该怎么写。
下图是 芯片输入口资料 ,弄了差不多两天自己照资料图上编了个串行信号 到芯片一直没输出电压,求程序参考。。。

ORG 00H
    JMP ST

ORG 30H
ST:
   DADIN BIT P3.0
   DASCLK BIT P3.1
   DACS BIT P3.5
ST1:MOV R1,#10101010B
MOV R2,#11101111B
CLR DACS
NOP
NOP
NOP
SETB DACS
NOP
NOP

CLR DADIN
SETB DASCLK
CLR DACS
NOP
NOP
MOV A,R1;输出数据高位
MOV R3,#02H
DA1:
RLC A
MOV DADIN,C
NOP
NOP
CLR DASCLK
NOP
NOP
SETB DASCLK
DJNZ R3,DA1
MOV R3,#08H
MOV A,R2;取得输出低位
DA2:
RLC A
MOV DADIN,C
NOP
NOP
CLR DASCLK
NOP
NOP
SETB DASCLK
DJNZ R3,DA2

CLR DASCLK
CLR DADIN
NOP
SETB DACS
MOV R3,#0FFH
X1: NOP
   NOP
   NOP
   NOP
   DJNZ R3,X1
   JMP ST1

END
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
2条回答
hg200300
2019-03-25 03:27
这贴已经很久了,还没有被删,很高兴回头看以前的想法。我现在回复应该可以吧?

程序是在汇编时代,汇编很好认,就是不让人看懂的那种。哈哈。

回复:查看DAC6311手册,上面写提到该器件接收16位二进制数据是有效时序,不管是10位的DAC还是12位的DAC。但以上给的程序只写了10位。
         当然不可能输出正确的电压值啊,害怕看英语不能完整理解的,所以以上程序只是看图写作+幻觉。

一周热门 更多>