#include<reg52.h>
#include<string.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit DAC_SCLK=P1^0;
sbit DAC_SDIN=P1^1;
sbit 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左右
一周热门 更多>