TLC5615 串行数模转换IC 驱动程序 C语言
/*DA控制输出,二极管明暗闪烁*/
#include<reg51.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit din = P2^7; //数据输入
sbit sclk = P2^6; //读定时钟
sbit cs = P2^5; //器件片选
//延时毫秒函数:
void Delayms(unsigned int t)
{
unsigned int x,y;
for(x=t;x>0;x--)
for(y=120;y>0;y--);
}
//写TLC5615数据函数:
void WriteTLC5615(unsigned int wdata)
{
unsigned char i;
cs=0;//片选使能
wdata<<=2;//将数据左移两位,补两位扩展位,组成12位数据写入
for(i=0;i<12;i++)//写入12位数据
{
sclk=0;
din=(wdata&0x0800)?1:0;//取出最高位(第11位)写入
sclk=1;//上升沿送数据
wdata<<=1;//下一位移到最高位
}
cs=1;//片选禁止
}
//主函数:
int main(void)
{
unsigned int i;
WriteTLC5615(512);
while(1);
while(1)
{
//因参考电压取自电源电压5V,输入数据达到512时,转换输出电压就已达到参考电压
//输入数据大于512时,输出电压已经无法再上升。
for(i=0;i<512;i++)
{
WriteTLC5615(i);//输入数据从0-512每间隔200ms递增,
Delayms(200);
//用万用表测量输出引脚,会看到电压从0V-4V每间隔200ms以约10mv递增
}
}
return 0;
}
凯特网版权声明:以上内容允许转载,但请注明出处,谢谢!
