#include
#include
#include
#define uchar unsigned char
#define uint unsigned int
***it DAC_SCLK=P1^0;
***it DAC_SDIN=P1^1;
***it DAC_SYNC=P1^2;
void delay10us(void)
{
uchar a,b;
for(b=1;b>0;b--)
for(a=2;a>0;a--);
}
void init_DAC7811(void)
{
DAC_SDIN=0;
DAC_SCLK=0;
DAC_SYNC=1;
}
void Ctrl_DAC(uint DA)
{
uchar i;
uint Vin;
Vin = DA;
DAC_SYNC=0;
for(i=0;i<16;i++){
DAC_SDIN=Vin&0x8000; //串行方式送16位数据
Vin<<=1;
DAC_SCLK=1;
_nop_();
_nop_();
DAC_SCLK=0;
_nop_();
_nop_();
}
DAC_SYNC=1;
}
void main()
{
init_DAC7811();
delay10us();
Ctrl_DAC(0x0f83);
while(1);
}
这是我网上找的,稍微改了点,但是不管我怎么改输入数据,它输出始终是-2.45V左右
已退回10积分
回帖(2)
2015-7-30 16:25:05
2017-1-15 14:08:42
怎么搞定的?
怎么搞定的?
举报
更多回帖