||
/******************************************************
* 名称: void upx9312(float x)
* 说明: 100位数字电位器9312写入数据
* 功能: 往9312写入一条指令以及对应的参数
* 调用:
* 输入: 电位器数据参数x
* 返回值: 无
****************************************************/
void upx9312(float x)
{
uchar i;
CS9312L;
delay(10);
for(i=0;i<100;i++)
{
DATAH;
DATAL;
}
for(i=0;i<x;i++)
{
DATAH;
DATAL;
}
CS9312H;
}
/******************************************************
* 名称: void upx7376a(uchar x)
* 说明: 128位交流数字电位器AD7376A写入数据
* 功能: 往AD7376A写对应的参数
* 调用:
* 输入: 电位器数据参数x
* 返回值: 无
****************************************************/
void upx7376a(uchar x)
{
uchar i;
CS7376L;
for(i=0;i<8;i++)
{
if((x&(1<<(7-i))))
SDIH;
else
SDIL;;
CLKL;
asm("nop");
asm("nop");
CLKH;
}
CS7376H;
}
/******************************************************
* 名称: void SendData_W(uchar cmd,uchar datah,uchar datal)
* 说明: 1024位数字电位器 AD5231写入数据
* 功能: 往AD5231写入一条指令以及对应的参数
* 调用:
* 输入: 指令名称 cmd
参数高位 datah
参数低位 datal
* 返回值: 无
****************************************************/
void SendData_W(uchar cmd,uchar datah,uchar datal)
{
uchar i,d;
CS5231L; //ad5231片选
D_SCLKL;
asm("nop");
d=cmd;
for(i=0;i<8;i++)
{
if((d&(1<<(7-i))))
WDATAH;
else
WDATAL;
D_SCLKH;
D_SCLKL;
}
d=datah;
for(i=0;i<8;i++)
{
if((d&(1<<(7-i))))
WDATAH;
else
WDATAL;
D_SCLKH;
D_SCLKL;
}
d=datal;
for(i=0;i<8;i++)
{
if((d&(1<<(7-i))))
WDATAH;
else
WDATAL;
D_SCLKH;
D_SCLKL;
}
CS5231H;
}