📄 tlv5617.c
字号:
sbit DA_SCLK=P1^2;
sbit DA_DIN=P1^3;
sbit DA_CS=P1^0;
///////////////////////////////////////////
//10位双通道DAC转换程序
//mode:工作模式 udata: 10位DAC数据
///////////////////////////////////////////
void TLV5617_Write(uchar mode,uint udata)
{
uchar i;
uint dat;
DA_CS=0;
switch(mode)
{
case 0:dat=0x2000; break; //掉电方式
case 1:dat=0xc000|(udata<<2);break; //快速方式 DAC A 输出
case 2:dat=0x4000|(udata<<2); break;//快速方式 DAC B 输出
case 3:dat=0x1000|(udata<<2);break; //慢速方式 写数据到B BUFFER //mode 3和4必须配合使用
case 4:dat=0x8000|(udata<<2);break; //慢速方式 写数据到A BUFFER 并同时更新两通道的值
default:break;
}
for(i=0;i<16;i++)
{
if(dat&0x8000) DA_DIN=1;
else DA_DIN=0;
DA_SCLK=1;
dat<<=1;
msdelay(1); //延时根据时钟频率必须足够长
DA_SCLK=0;
}
DA_CS=1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -