EDN首页   博客首页

日志档案

发表于 2007-9-10 21:32:25

1

标签: 无标签

TLC5618产生锯齿和阶梯波

#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"; //锯齿电压一周期后复位
   }
}

系统分类: 单片机   |   用户分类: 单片机程序   |   来源: 原创   |   【推荐给朋友】   |   【添加到收藏夹】

    阅读(487)    回复(0)  

投一票您将和博主都有获奖机会!