📄 tlc5620.c
字号:
/*
* Copyright (C) 2006, 华中科技大学电气与电子科技创新中心
* All Rights Reserved.
*
* 文件名: tlc5620.c
* 文件描述: DA转换芯片TLC5620驱动文件
*
* 当前版本: 1.0
* 作者: SangWei(swkyer@gmail.com)
* 完成日期: 2005年12月12日
*
*/
#include "89c51rd2.h"
#include <INTRINS.H>
#include "TLC5620.h"
/**************************************
说明: TLC5620初始化
**************************************/
void TLC5620_Init(void)
{
TLC5620_CLK = 0;
TLC5620_DATA = 1;
TLC5620_LOAD = 1;
TLC5620_LDAC = 1;
}
/**************************************
说明: 输出单个通道的电压
chl: 通道号, 0--3
dat: 通道数据, 0--255
**************************************/
void TLC5620_SetOutput(unsigned char chl, unsigned char dat)
{
unsigned char i;
/* 四个通道,只有低两位有效 */
chl &= 0x03;
/* 左移一位,加上RNG位 */
chl <<= 1;
chl |= RNG;
/* 将数据移到高3位 */
chl <<= 5;
for(i=3; i>0; i--)
{
/* 从高位到低位依次移出数据 */
TLC5620_DATA = (bit)(chl&0x80);
/* 等待数据稳定 */
TLC5620_CLK = 1;
chl <<= 1;
/* 下降沿将数据锁存 */
TLC5620_CLK = 0;
}
for(i=8; i>0; i--)
{
/* 从高位到低位依次移出数据 */
TLC5620_DATA = (bit)(dat&0x80);
/* 等待数据稳定 */
TLC5620_CLK = 1;
dat <<= 1;
/* 下降沿将数据锁存 */
TLC5620_CLK = 0;
}
/* LOAD下降沿将数据锁入寄存器 */
TLC5620_LOAD = 0;
_nop_();
_nop_();
TLC5620_LOAD = 1;
_nop_();
_nop_();
/* LDAC下降沿将更新输出电压值 */
TLC5620_LDAC = 0;
_nop_();
_nop_();
TLC5620_LDAC = 1;
}
/**************************************
说明: 同时刻输出四个通道电压
chl1--chl4: 4个通道的数据
**************************************/
void TLC5620_AllOutput(unsigned char dat[])
{
unsigned char i, j, chl;
for(j=0; j<4; j++)
{
chl = j;
/* 左移一位,加上RNG位 */
chl <<= 1;
chl |= RNG;
/* 将数据移到高3位 */
chl <<= 5;
for(i=3; i>0; i--)
{
/* 从高位到低位依次移出数据 */
TLC5620_DATA = (bit)(chl&0x80);
/* 等待数据稳定 */
TLC5620_CLK = 1;
chl <<= 1;
/* 下降沿将数据锁存 */
TLC5620_CLK = 0;
}
for(i=8; i>0; i--)
{
/* 从高位到低位依次移出数据 */
TLC5620_DATA = (bit)(dat[j]&0x80);
/* 等待数据稳定 */
TLC5620_CLK = 1;
dat[j] <<= 1;
/* 下降沿将数据锁存 */
TLC5620_CLK = 0;
}
/* LOAD下降沿将数据锁入寄存器 */
TLC5620_LOAD = 0;
_nop_();
_nop_();
TLC5620_LOAD = 1;
_nop_();
_nop_();
_nop_();
_nop_();
}
/* LDAC下降沿将四个通道同时刻更新输出电压值 */
TLC5620_LDAC = 0;
_nop_();
_nop_();
TLC5620_LDAC = 1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -