?? tlc5620.c
字號:
/*
* Copyright (C) 2006, 華中科技大學電氣與電子科技創新中心
* All Rights Reserved.
*
* 文件名: tlc5620.c
* 文件描述: DA轉換芯片TLC5620驅動文件
*
* 當前版本: 1.0
* 作者: SangWei(swkyer@gmail.com)
* 完成日期: 2005年12月12日
*
*/
#include <REGX51.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 + -