#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit SPI_CLK = P1^1;
sbit SPI_DATA = P1^0;
sbit CS_DA = P1^2;
/********************************************************************
* 名称 : Delay()
* 功能 : 延时,延时时间为 10ms * del
* 输入 : del
* 输出 : 无
***********************************************************************/
void Delay(uint del)
{
uint i,j;
for(i=0; i<del; i++)
for(j=0; j<1827; j++)
;
}
void da5615(uint da)
{
uchar i;
da<<=6;
CS_DA=0;
SPI_CLK=0;
for (i=0;i<12;i++)
{
SPI_DATA=(bit)(da&0x8000);
SPI_CLK=1;
da<<=1;
SPI_CLK=0;
}
CS_DA=1;
SPI_CLK=0;
for (i=0;i<12;i++);
}
void main()
{
while(1){
da5615(512); //大约输出2.50V,点亮LED指示灯(DAC OUT)
Delay(100);
da5615(1023);//大约输出5.00V,点亮LED指示灯(DAC OUT)
Delay(100);
}
}