?? tlc5620.c
字號:
//本文件為TLC5620 8位串行DA轉換的程序模塊,實現DA轉換,調節聲音的大小輸出
//提供 TLC5620(vol) 聲音轉換接口
/*
存在問題:
1、程序中_nop_()會不會少點???,程序中沒有LDAC的操作,
根據電路圖,第一次的轉換能進行嗎?
2、這個函數要在程序中不斷的運行
3.查看PCB圖,看原理圖跟PCB圖是不是一樣的!!!????????????
*/
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
sbit DATA=P1^2; //數據串行輸入端
sbit CLK=P1^1; //串行輸入時鐘
sbit LOAD=P1^0; //數據進入第一級鎖存控制位
void TLC5620(float vol) //vol數值范圍:0----99
{
float volval;
uchar i;
uchar vollast; //定義此變量以取0---255的百分比
LOAD=1;
CLK=1;
DATA=0;
_nop_();
CLK=0; //下降沿送入第一個數A1
_nop_(); //
CLK=1;
DATA=0;
_nop_();
CLK=0; //下降沿送入第二個數A0
_nop_(); //
CLK=1;
DATA=0; //RNG=1使輸出位兩倍參考輸入的輸出
_nop_();
CLK=0; //下降沿送入第三個數RNG
_nop_(); //
volval=vol; //
vollast=(volval/100)*255; //
for(i=0;i<8;i++) //循環送入8位數字碼,從高位開始送入
{
CLK=1;
DATA=vollast&0x80;
vollast=vollast<<1;
_nop_(); //加嗎????????????
CLK=0;
_nop_(); //
}
_nop_(); //
LOAD=0; //開始轉換。
_nop_();
_nop_();
LOAD=1; //
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -