?? tlc5620.c
字號(hào):
/*
* Copyright (C) 2006, 華中科技大學(xué)電氣與電子科技創(chuàng)新中心
* All Rights Reserved.
*
* 文件名: tlc5620.c
* 文件描述: DA轉(zhuǎn)換芯片TLC5620驅(qū)動(dòng)文件
*
* 當(dāng)前版本: 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;
}
/**************************************
說明: 輸出單個(gè)通道的電壓
chl: 通道號(hào), 0--3
dat: 通道數(shù)據(jù), 0--255
**************************************/
void TLC5620_SetOutput(unsigned char chl, unsigned char dat)
{
unsigned char i;
/* 四個(gè)通道,只有低兩位有效 */
chl &= 0x03;
/* 左移一位,加上RNG位 */
chl <<= 1;
chl |= RNG;
/* 將數(shù)據(jù)移到高3位 */
chl <<= 5;
for(i=3; i>0; i--)
{
/* 從高位到低位依次移出數(shù)據(jù) */
TLC5620_DATA = (bit)(chl&0x80);
/* 等待數(shù)據(jù)穩(wěn)定 */
TLC5620_CLK = 1;
chl <<= 1;
/* 下降沿將數(shù)據(jù)鎖存 */
TLC5620_CLK = 0;
}
for(i=8; i>0; i--)
{
/* 從高位到低位依次移出數(shù)據(jù) */
TLC5620_DATA = (bit)(dat&0x80);
/* 等待數(shù)據(jù)穩(wěn)定 */
TLC5620_CLK = 1;
dat <<= 1;
/* 下降沿將數(shù)據(jù)鎖存 */
TLC5620_CLK = 0;
}
/* LOAD下降沿將數(shù)據(jù)鎖入寄存器 */
TLC5620_LOAD = 0;
_nop_();
_nop_();
TLC5620_LOAD = 1;
_nop_();
_nop_();
/* LDAC下降沿將更新輸出電壓值 */
TLC5620_LDAC = 0;
_nop_();
_nop_();
TLC5620_LDAC = 1;
}
/**************************************
說明: 同時(shí)刻輸出四個(gè)通道電壓
chl1--chl4: 4個(gè)通道的數(shù)據(jù)
**************************************/
void TLC5620_AllOutput(unsigned char dat[])
{
unsigned char i, j, chl;
for(j=0; j<4; j++)
{
chl = j;
/* 左移一位,加上RNG位 */
chl <<= 1;
chl |= RNG;
/* 將數(shù)據(jù)移到高3位 */
chl <<= 5;
for(i=3; i>0; i--)
{
/* 從高位到低位依次移出數(shù)據(jù) */
TLC5620_DATA = (bit)(chl&0x80);
/* 等待數(shù)據(jù)穩(wěn)定 */
TLC5620_CLK = 1;
chl <<= 1;
/* 下降沿將數(shù)據(jù)鎖存 */
TLC5620_CLK = 0;
}
for(i=8; i>0; i--)
{
/* 從高位到低位依次移出數(shù)據(jù) */
TLC5620_DATA = (bit)(dat[j]&0x80);
/* 等待數(shù)據(jù)穩(wěn)定 */
TLC5620_CLK = 1;
dat[j] <<= 1;
/* 下降沿將數(shù)據(jù)鎖存 */
TLC5620_CLK = 0;
}
/* LOAD下降沿將數(shù)據(jù)鎖入寄存器 */
TLC5620_LOAD = 0;
_nop_();
_nop_();
TLC5620_LOAD = 1;
_nop_();
_nop_();
_nop_();
_nop_();
}
/* LDAC下降沿將四個(gè)通道同時(shí)刻更新輸出電壓值 */
TLC5620_LDAC = 0;
_nop_();
_nop_();
TLC5620_LDAC = 1;
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -