導航:首頁 > 操作系統 > 51單片機tlc549

51單片機tlc549

發布時間:2022-07-14 15:03:08

⑴ 誰有晶元TLC549介紹(中文的謝謝!

8位串列模數轉換器TLC548、TLC549的應用
1. 概述
TLC548,TLC549是美國德州儀器公司生產的8位串列A/D轉換器晶元,可與通用微處理器、控制器通過CLK、CS、DATA OUT三條口線進行串列介面。具有4MHz片內系統時鍾和軟、硬體控制電路,轉換時間最長17μs,TLC548允許的最高轉換速率為45 500次/s,TLC549為40 000次/s。總失調誤差最大為±0.5LSB,典型功耗值為6mW。採用差分參考電壓高阻輸入,抗干擾,可按比例量程校準轉換范圍,VREF-接地,VREF+-VREF-≥1V,可用於較小信號的采樣。

2. 晶元簡介
2.1 TLC548、TLC549的內部框圖和管腳名稱
TLC548、TLC549的內部框圖和引腳名稱如圖1所示。
2.2 極限參數
TLC548/549的極限參數如下:
●電源電壓:6.5V;
●輸入電壓范圍:0.3V~VCC+0.3V;
●輸出電壓范圍:0.3V~VCC+0.3V;
●峰值輸入電流(任一輸入端):±10mA;
●總峰值輸入電流(所有輸入端):±30mA;
●工作溫度:TLC548C、TLC549C:0℃~70℃
TLC548I、TLC549I:-40℃~85℃
TLC548M、TLC549M:-55℃~125℃

3. 工作原理
TLC548、TLC549均有片內系統時鍾,該時鍾與I/O CLOCK是獨立工作的,無須特殊的速度或相位匹配。其工作時序如圖2所示。
當CS為高時,數據輸出(DATA OUT)端處於高阻狀態,此時I/O CLOCK不起作用。這種CS控製作用允許在同時使用多片TLC548、TLC549時,共用I/O CLOCK,以減少多路(片)A/D並用時的I/O控制埠。
一組通常的控制時序為:
(1)將CS置低。內部電路在測得CS下降沿後,再等待兩個內部時鍾上升沿和一個下降沿後,然後確認這一變化,最後自動將前一次轉換結果的最高位(D7)位輸出到DATA OUT端上。
(2) 前四個I/O CLOCK周期的下降沿依次移出第2、3、4和第5個位(D6、D5、D4、D3),片上采樣保持電路在第4個I/O CLOCK下降沿開始采樣模擬輸入。
(3)接下來的3個I/O CLOCK周期的下降沿移出第6、7、8(D2、D1、D0)個轉換位,
(4)最後,片上采樣保持電路在第8個I/O CLOCK周期的下降沿將移出第6、7、8(D2、D1、D0)個轉換位。保持功能將持續4個內部時鍾周期,然後開始進行32個內部時鍾周期的A/D轉換。第8個I/O CLOCK後,CS必須為高,或I/O CLOCK保持低電平,這種狀態需要維持36個內部系統時鍾周期以等待保持和轉換工作的完成。如果CS為低時I/O CLOCK上出現一個有效干擾脈沖,則微處理器/控制器將與器件的I/O時序失去同步;若CS為高時出現一次有效低電平,則將使引腳重新初始化,從而脫離原轉換過程。
在36個內部系統時鍾周期結束之前,實施步驟(1)-(4),可重新啟動一次新的A/D轉換,與此同時,正在進行的轉換終止,此時的輸出是前一次的轉換結果而不是正在進行的轉換結果。
若要在特定的時刻采樣模擬信號,應使第8個I/O CLOCK時鍾的下降沿與該時刻對應,因為晶元雖在第4個I/O CLOCK時鍾下降沿開始采樣,卻在第8個I/O CLOCK的下降沿開始保存。

4. 應用介面及采樣程序
TLC548、TLC549可方便地與具有串列外圍介面(SPI)的單片機或微處理器配合使用,也可與51系列通用單片機連接使用。與51系列單片機的介面如圖3所示。其采樣程序框圖如圖4所示,實際應用程序清單如下:

初始化:
SETB P1.2 ;置CS為1。
CLR P1.0 ;置I/O CLOCK為零。
MOV R0,#00H ;移位計數為零。
A/D過程:
A/DP: CLR P1.2
NOP ;等待1.4μs,NOP數根據晶振情況選擇
NXT: SETB P1.0
MOV C, P1.1
RLC A
CLR P1.0
INC R0
CJNE R0,#8,NXT
MOV R0,#00
SETB P1.2
MOV DTSVRM,A ;DTSVRM:DATA SAVE RAM.
RET
TLC548/549片型小,采樣速度快,功耗低,價格便宜,控制簡單。適用於低功耗的袖珍儀器上的單路A/D或多路並聯采樣。

⑵ 單片機AD(TLC549)轉換for(i=0;i<8;i )if(AD_DAT)value |= (0x80)>>i 怎麼理解!

value 丨=0x80》i
即 value=value丨(0x80》i)
"或"操作可以將相應位置1(其餘位不變)
AD模塊串列輸出,每個脈沖輸出一位二進制數,高位在前
Value的各位原來均為0
例如第一次輸出時i=0
如果 ADDAT是1,0x80最高位是1(二進制為1000 0000),右移0位仍然是0x80,Value與它"或"運算後最高位變為1(其它位不變),如果ADDAT是0就不用管它,Value的最高位仍然保特為0
第二次輸出時 i=1
如果ADDAT是1,0x80右移1位變成二進制0100 0000,Value與它"或"運算後,次高位被置1,同樣如果ADDAT是0還不用管它,value的次高位也保持為0
依次第3個脈沖至第8個脈沖,ADDAT埠上輸出的8位二進制數就保存在Value這個變數中了
如果AD輸出低位在前的話,可以這樣寫
value丨=0x01巜i
普通IO引腳模擬串口進行數據的接收和發送都是這個原理

⑶ 我stc89c52rc單片機板子上的ad晶元是tlc549,怎樣用它寫模數轉換程序盡量簡潔明了~

//////////***你自己看看吧******引腳改改就能用*********/////
#include <AT89X51.H>

#define uint unsigned int
#define uchar unsigned char
uint Volt;
sbit CS=P3^4;//////////////TLC549引腳
sbit CLK=P3^2;
sbit DO=P3^3;
uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//共陽
uchar code table1[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};
void delay(uint time)
{
int x,y;
for(x=time;x>0;x--)
for(y=time;y>0;y--);
}
void shortdelay(uint time)
{
uint i;
for(i<0;i<time;i++);
}
uchar TLC549_ADC(void)
{
uchar i, tmp;
CS=1;
CLK=0;
CS=0;
shortdelay(2);
for(i=0;i<8;i++)
{
tmp<<=1;
//tmp|=DO;
tmp=tmp|DO;
CLK=1;
shortdelay(2);
CLK=0;
}
CS=1;
shortdelay(17);
return (tmp);
}
void Data_Conversion(void)
{
uchar AD_Data;
AD_Data=TLC549_ADC();
Volt=5.0/255*AD_Data*100 ;
}
void display()
{
uint m;
for(m=0;m<80;m++)
{
P2=0xc1;
P1=0x08;
delay(5);
P1=0x00;

P2=table[Volt%10];
P1=0x04;
delay(5);
P1=0x00;

P2=table[Volt/10%10];
P1=0x02;
delay(5);
P1=0x00;

P2=table1[Volt/100];
P1=0x01;
delay(5);
P1=0x00;
}
}
void main()
{
while(1)
{
display();
delay(20);
Data_Conversion();

}

}

⑷ TLC1549模數轉換的問題,不知道是晶元的原因還是程序的原因,用51單片機驅動,請求高手幫忙解決……

關於TLC1549的問題解決了嗎,我想問幾個問題,謝謝

⑸ 誰有會單片機的匯編TLC549程序,只需採集數據的部分(不需要數據處理的),但確實能用的,謝謝,跪求!!!

DAT0 BIT P1.0
CLK0 BIT P1.1
CS BIT P1.2
;----------------------------------------------------------------------------
TLC549_ADC: ;串列顯示處理程序,結果存在A中
CLR A
CLR CLK0
CLR CS
MOV R6,#8
ADLOOP:
SETB CLK0
NOP
NOP
MOV C,DAT0
RLC A
CLR CLK0
NOP
DJNZ R6,ADLOOP
SETB CS
SETB CLK0
RET

⑹ TLC549晶元的CLK引腳怎麼用算是輸入還是輸出

這個晶元是模擬量轉數字量用的。
clk是輸入,接一個<1.1MHz的時鍾

授人以魚不如授人以漁。給你個晶元資料教教你怎麼看。http://www.21icsearch.com/download.asp?id=846966
你看第三頁最上邊的時序圖。你先把clk放到低電平,然後給cs高電平,等17*36微秒時間讓晶元測量模擬量。然後cs放到低電平數字量第8位就輸出到data out端了,你把這個量讀出來以後就可以給clk一個上升沿和一個下降沿,然後讀第7位,以此類推直到8位都讀完。每次給clk上升沿的時候data out會開始變成下一位。

⑺ 為什麼51單片機用tlc549做的AD轉換只有5v才有顯示,其它都為0,呢

應該是程序那裡錯了吧!看是不是加了IF(...==5)的判斷,或者是程序的方法不對,把程序貼上來看看!

閱讀全文

與51單片機tlc549相關的資料

熱點內容
樹莓派都用python不用c 瀏覽:755
access文件夾樹的構造 瀏覽:660
安卓多指操作怎麼設置 瀏覽:656
linux樹形目錄 瀏覽:727
平方根的簡單演算法 瀏覽:898
千牛訂單頁面信息加密取消 瀏覽:558
單片機自製紅外遙控燈 瀏覽:719
伺服器最小配置怎麼弄 瀏覽:853
ibm伺服器硬體如何升級 瀏覽:923
全球程序員節點贊 瀏覽:986
php函數傳遞數組 瀏覽:631
人工峰群演算法的目標函數 瀏覽:468
如何刪加密文檔 瀏覽:105
塗鴉app一鍵執行如何刪除 瀏覽:756
安卓手機如何打開fr3文件 瀏覽:743
壓縮袋8絲和14絲是什麼意思 瀏覽:647
程序員大咖java 瀏覽:70
蘋果手機文檔安卓上怎麼打開 瀏覽:527
如何做淘寶代理伺服器 瀏覽:672
gz壓縮文件夾 瀏覽:179