精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于51單片機+TLC549芯片的簡易電壓采集系統設計

CHANBAEK ? 來源:逗比小憨憨 ? 作者:逗比小憨憨 ? 2023-06-16 16:28 ? 次閱讀

一,TLC549簡介

TLC549是美國德州儀器公司生產的8位串行A/D轉換器芯片,可與通用微處理器控制器通過CLK、CS、DATAOUT三條口線進行串行接口。具有4MHz片內系統時鐘和軟、硬件控制電路,轉換時間最長17μs,TLC549為40000次/s。總失調誤差最大為±0.5LSB,典型功耗值為6mW。采用差分參考電壓高阻輸入,抗干擾,可按比例量程校準轉換范圍,VREF-接地,VREF+-VREF-≥1V,可用于較小信號的采樣。

圖片

引腳定義:

  1. REF+:正基準信號輸入端
  2. ANALOG IN:模擬信號輸入端
  3. REF-:負基準電壓輸入端
  4. GND:接地端
  5. #CS:片選信號,低電平有效
  6. DATA OUT:轉換結果串行輸出端
  7. I/O CLOCK:外接時鐘輸入端
  8. VCC:電源輸入端

通信協議:

圖片

TLC549均有片內系統時鐘,該時鐘與I/O CLOCK是獨立工作的,無需特殊的速度或相位匹配。其工作時序如圖2所示。當CS為高時,數據輸出(DATA OUT)端處于高阻狀態,此時I/O CLOCK不起作用。當CS為低時,AD前一次轉換的數據A的最高位A7立馬出現在數據線DATA OUT上,其余七位在I/O CLOCK的下降沿依次由時鐘同步輸出,,因此可在I/O CLOCK的上升沿讀取數據,其中值得注意的是:1.圖中他tsu(cs)至少要1.4us;2.I/O CLOCK不能超過1.1MHz。讀完8位數據后,AD開始轉換這一次轉換的采樣數據B,以便下一次讀取轉換時,片選信號CS置高,每次轉換不超過17us,開始于CS拉低后的第八個I/O CLOCK的下降沿,沒有轉換完成標志,沒有啟動控制端,只要讀取前一次數據后就馬上可以開始新的AD轉換,轉換完成進入保持狀態。

(翻譯-摘自TLC549官方芯片參考手冊)

二,Proteus仿真

圖片

Proteus連線圖

三,程序源代碼

/*
*@brief:    51系列單片機+TLC549制作簡單的電壓采集系統
*@author: 逗比小憨憨
*@website:  https://space.bilibili.com/314404732
*/
#include < reg52.h >
#include < intrins.h >

#define uchar unsigned char 
#define uint  unsigned int  

sbit	dout=P1^0;//數據輸出端
sbit 	clock=P1^2;//時鐘線
sbit	cs=P1^1;//片選(低電平有效)

uchar TLC549_Obtain(void);
uchar TLC549_Read(void);
void Display_Data(uchar dat);
void Uart_Init(void);
void delay_xms(uint t);


void delay_xms(uint xms)
{
	uint i,j;
	for(i = 0; i < xms; i++)
		for(j = 0; j < 115; j++);
}                                      


void main(void)
{ 
	uchar TLC549_Data;   
 	Uart_Init();

	while(1)
	{
		TLC549_Data = TLC549_Obtain(); 
		Display_Data(TLC549_Data);     
		delay_xms(500);	 
	}						 
}


void Uart_Init(void)
{
	TMOD |= 0X20; 
	TL1 = 0XFD;
	TH1 = 0XFD;	  
	SCON = 0x50;
	PCON = 0;
	EA = 1;
	PS = 1;
	TR1 = 1;
}

uchar TLC549_Read(void)
{
	uchar n=0, tmp;	
	cs = 1;                     //CS置高,片選無效
	clock = 0;
	cs = 0;                     //CS置低,片選有效,同時DO輸出高位
	_nop_();
	_nop_();                     //適當延遲時間1.4us Setup Time	

	for(n = 0; n < 8; n++) //串行數據移位輸入
	{ 
	    tmp < <= 1;			
	    tmp |=  dout;
	    clock = 1;        //0.4us
	    _nop_();        //延遲0.1us
	    clock = 0;        //0.4us
	}
	cs = 1;            //CS置高,片選無效
	for(n = 17; n != 0; n--) 
		_nop_();  //下一次轉換需要延遲17us
	return tmp;
}

/*
*	TLC549數據獲取
*/
uchar TLC549_Obtain(void)
{
	uchar dat;
	dat=TLC549_Read();
	return dat;
}

void Display_Data(uchar dat)
{
	int disdat;
	uchar dis[4];
	uchar i = 0;
  	disdat = (int)(5.0*dat / 256 * 100);
	dis[0] = disdat/100+'0';
	dis[1] = 0x2e;
	dis[2] = disdat%100/10+'0';
	dis[3] = disdat%10+'0';
	while(i < 4)
	{
		SBUF = dis[i];
		while(!TI);
		TI = 0;	
		i ++;
	}
	SBUF = 0x0a;
	while(!TI);
	TI = 0;	
	SBUF = 0x0d;
	while(!TI);
	TI = 0;		
}

四,運行效果圖

圖片

運行效果圖

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 轉換器
    +關注

    關注

    27

    文章

    8627

    瀏覽量

    146872
  • 控制器
    +關注

    關注

    112

    文章

    16203

    瀏覽量

    177416
  • 通信協議
    +關注

    關注

    28

    文章

    858

    瀏覽量

    40263
  • 51單片機
    +關注

    關注

    273

    文章

    5697

    瀏覽量

    123198
  • 電壓采集
    +關注

    關注

    2

    文章

    21

    瀏覽量

    14179
收藏 人收藏

    評論

    相關推薦

    基于單片機TLC549的數控直流電流源的設計

    基于單片機TLC549的數控直流電流源的設計,單片機通過D/A轉換器來控制功率放大器輸出電壓,通過取樣電阻和A/D轉換器回檢負載電流,采用積分控制方法,調節電流輸出。通過取樣電阻采樣
    發表于 02-19 09:59 ?3427次閱讀
    基于<b class='flag-5'>單片機</b>和<b class='flag-5'>TLC549</b>的數控直流電流源的設計

    基于TLC549數字電壓表的設計

    本文對基于TLC549數字電壓表的設計進行了分析,主要介紹了TLC549A/D轉換器引腳圖及功能、TLC549內部結構、TLC549時序邏輯
    發表于 02-19 10:23 ?1.1w次閱讀
    基于<b class='flag-5'>TLC549</b>數字<b class='flag-5'>電壓</b>表的設計

    基于TLC549工作時序編程技術研究

    【摘要】:以單片機為核心的控制系統,利用匯編語言程序設計實現整個系統的控制過程。在軟件方面,結合TLC549串行8位A/D轉換器的工作時序,給出AT89C
    發表于 04-24 10:00

    求8086通過8255讀取TLC549的匯編!!

    這個TLC549是用在SPI總線下的串行AD轉換器,網上多是51單片機模擬SPI總線的程序(c和匯編),所以我也用8086+8255模擬了一下,卻總是出不來正確結果,求一段8086匯編
    發表于 04-29 22:13

    求8086通過8255讀取TLC549的匯編!!

    這個TLC549是用在SPI總線下的串行AD轉換器,網上多是51單片機模擬SPI總線的程序(c和匯編),所以我也用8086+8255模擬了一下,卻總是出不來正確結果,求一段8086匯編{:3:}{:3:}
    發表于 04-29 22:15

    基于TLC549電壓表 (測試程序)

    在前天,我還不知道有TLC549這款芯片,不得不說是孤陋寡聞了,本來是幫朋友 做的,可惜我也是菜鳥,還沒幫他搞定。不過仿真通過了,小弟我不敢藏私,特地獻出來與大家共享,不足之處還請拍磚這是仿真結果這是程序,我放在附件里了。[groupid=618]
    發表于 08-10 21:29

    TLC549的仿真與邏輯代碼問題

    基于TLC549電壓表 (測試程序)用TLC549ADC和ZLG7290設計一個簡易數字電壓表對特權FPGA控制ADC
    發表于 08-29 17:08

    基于TLC549工作時序編程技術研究

      以單片機為核心的控制系統,利用匯編語言程序設計實現整個系統的控制過程。在軟件方面,結合TLC549串行8位A/D轉換器的工作時序,給出AT89C
    發表于 02-11 12:40 ?98次下載

    TLC549英文

    TLC549數據手冊,有需要的下來看看。
    發表于 12-16 22:19 ?0次下載

    TLC549程序

    TLC549工作原理TLC549是TI 公司生產的- 一種性價比非常高的8位A/D 轉換器,它以8位開關電容逐次逼近的方法實現A/D 轉換,其轉換速度小于17us,它能方便地采用三線串行接方式與各種微處理器連接,構成各種廉價的測控應用
    發表于 11-22 18:14 ?2588次閱讀
    <b class='flag-5'>TLC549</b>程序

    tlc549單片機連接圖

    TLC549 是采用IinCMOSTM 技術并以開關電容逐次逼近原理工作的8 位串行A / D7 芯片,可與通用微處理器、控制器通過I/0 CLOCK、CS、DATA OUT.三條口線進行串行接口
    發表于 11-23 10:14 ?6565次閱讀
    <b class='flag-5'>tlc549</b>與<b class='flag-5'>單片機</b>連接圖

    tlc549中文資料匯總_tlc549引腳圖及功能_工作原理_特性參數及典型應用電路程序

    主要介紹了tlc549中文資料匯總_tlc549引腳圖及功能_工作原理_特性參數及典型應用電路程序。TLC549是8位串行A/D轉換器芯片,可與通用微處理器、控制器通過CLK、CS、D
    發表于 12-19 09:08 ?5.4w次閱讀
    <b class='flag-5'>tlc549</b>中文資料匯總_<b class='flag-5'>tlc549</b>引腳圖及功能_工作原理_特性參數及典型應用電路程序

    基于單片機TLC549的多功能智能照明系統

    主要介紹了基于單片機TLC549的多功能智能照明系統,以單片機為控制芯片,光敏電阻采集光信號并
    發表于 02-19 09:41 ?5272次閱讀
    基于<b class='flag-5'>單片機</b>和<b class='flag-5'>TLC549</b>的多功能智能照明<b class='flag-5'>系統</b>

    基于TLC549的數據采集系統設計

    本文分析了基于TLC549的數據采集系統設計,分析了TLC549芯片的主要參數和工作原理,利用了TLC5
    發表于 12-19 11:35 ?6676次閱讀
    基于<b class='flag-5'>TLC549</b>的數據<b class='flag-5'>采集</b><b class='flag-5'>系統</b>設計

    如何使用狀態實現對TLC549的采樣控制

    本文檔的主要內容詳細介紹的是如何使用狀態實現對TLC549的采樣控制。
    發表于 08-07 17:39 ?9次下載
    如何使用狀態<b class='flag-5'>機</b>實現對<b class='flag-5'>TLC549</b>的采樣控制