原创 TLC5618产生锯齿和阶梯波

2007-9-10 21:32 5191 3 3 分类: MCU/ 嵌入式

#include
#include
#include


sbit din5618=P1^3;
sbit clk5618=P1^2;
sbit cs5618=P1^1;


#define uchar unsigned char
#define uint unsigned int


/**************************************************
TLC5618驱动程序
函数名write5618(void)
说明:无参数,无返回值
*************************************************/
void write5618(void)
{  uchar n="0",j,k;
   uint iicon,icon,vvcon,vcon;
   iicon="0x0500";  //设定阶梯电压初始值0(写入缓冲器,B通道输出)     
   vvcon="0xC000";  //设定锯齿电压初始值0(A通道输出)
   while(1)
   { icon="iicon";
      clk5618=1; 
      cs5618=0;
      for(j=0;j<16;j++)   //传送阶梯电压数据
      { din5618=icon&0x8000;  //从高位开始传送16位数据
        icon<<=1;
        clk5618=0;  //时钟下降沿转移数据
        clk5618=1;
      }
      cs5618=1;
      clk5618=0;
      for(k=40;k>0;k--)   //锯齿电压设定为40个阶梯
      { vcon="vvcon";
        clk5618=1;
        cs5618=0;
        for(j=0;j<16;j++) //从高位开始传送16位数据
        { din5618=vcon&0x8000;
          vcon<<=1;
          clk5618=0;   //时钟下降沿转移数据
          clk5618=1;
        }
        cs5618=1;
        clk5618=0;
        vvcon+=102;   //每一阶梯含有102个小阶梯
   }
    n++;
       iicon+=819;
       if(n==5)   //第四个阶梯输出后复位
       { n="0";
         iicon="0x0500";
       }
       vvcon="0xC000"; //锯齿电压一周期后复位
   }
}

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
3
关闭 站长推荐上一条 /3 下一条