单片机串行输入到 芯片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
此帖出自
小平头技术问答
程序是在汇编时代,汇编很好认,就是不让人看懂的那种。哈哈。
回复:查看DAC6311手册,上面写提到该器件接收16位二进制数据是有效时序,不管是10位的DAC还是12位的DAC。但以上给的程序只写了10位。
当然不可能输出正确的电压值啊,害怕看英语不能完整理解的,所以以上程序只是看图写作+幻觉。
呵呵 4年的时间应该成长了不少。赞一个多年之后还能把解决问题的经验分享。
一周热门 更多>