和我搜集到的这种程序(图一)不太一样下面这种程序是什么意思?TLC5615的输出电压是怎么控制的?(比如0~5v),TLC5615是怎么工作的(图一是控制0~1023,下面这个完全找不到头绪)求大佬帮忙解释
void shuma(uint buf)
{
uchar a,b,c,d;
a=buf/1000;
b=buf%1000/100;
c=buf%100/10;
d=buf%10;
void tlc_5615(uint buf)
{
uint a,c;
c=buf;
CS_5615=0;
for(a=16;a>0;a--)
{
DAT_5615=c>>15; (不太懂这个)
c=c<<1;
CLK_5615=1;
CLK_5615=0;
}
CLK_5615=1;
CLK_5615=0;
CLK_5615=1;
CLK_5615=0;
CS_5615=1;
}
void main(void)
{
uchar n,i;
n=5;
U=0;
led=0;
delay_ms(3000);
led=1;
while(1)
{
tlc_5615(U);
shuma(U/n*10);
if(flag==0)
{
if(KEY1==0)
{
shuma(U/n*10);
shuma(U/n*10);
shuma(U/n*10);
shuma(U/n*10);
shuma(U/n*10);
if(KEY1==0)
{
if(U<120*n) //最大电压
U=U+n;
else if(U>=120*n)
{
led=0;
for(i=0;i<50;i++)
shuma(U/n*10);
led=1;
}
}
}
if(KEY2==0)
{
shuma(U/n*10);
shuma(U/n*10);
shuma(U/n*10);
shuma(U/n*10);
shuma(U/n*10);
if(KEY2==0)
{
if(U>=n)
U=U-n;
}
}
if(KEY3==0)
{
shuma(U/n*10);
shuma(U/n*10);
shuma(U/n*10);
shuma(U/n*10);
shuma(U/n*10);
if(KEY3==0)
{
U=50*n;
}
}
if(KEY4==0)
{
shuma(U/n*10);
shuma(U/n*10);
shuma(U/n*10);
shuma(U/n*10);
shuma(U/n*10);
if(KEY4==0)
{
U=0;
}
}
}
if(Duan==0)
{
delay_ms(10);
if(Duan==0)
{
flag=1; //过流标志置高
led=0;
U=0;
tlc_5615(0);
}
}
}
}
|