欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> 常用芯片 >> 瀏覽文章

TLC2543,TLC1543程序及仿真電路圖中文資料

作者:huqin   來源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2014年08月16日   【字體:

TLC1543 是11通道10位串行A/D轉(zhuǎn)換器,TLC2543是11通道12位串行A/D轉(zhuǎn)換器.

TLC1543是美國(guó)TI公司生產(chǎn)的多通道、低價(jià)格的模數(shù)轉(zhuǎn)換器。采用串行通信接口,具有輸入通道多、性價(jià)比高、易于和單片機(jī)接口的特點(diǎn),可廣泛應(yīng)用于各種數(shù)據(jù)采集系統(tǒng)。 TLC1543為20腳DIP封裝的CMOS 10位開關(guān)電容逐次A/D逼近模數(shù)轉(zhuǎn)換器

TLC1543工作時(shí)序如圖所示,其工作過程分為兩個(gè)周期:訪問周期和采樣周期。工作狀態(tài)由CS使能或禁止,工作時(shí)CS必須置低電平。CS為高電平時(shí),I/O CLOCK、ADDRESS被禁止,同時(shí)DATA OUT為高阻狀態(tài)。當(dāng)CPU使CS變低時(shí),TLC1543開始數(shù)據(jù)轉(zhuǎn)換,I/O CLOCK、ADDRESS使能,DATA OUT脫離高阻狀態(tài)。隨后,CPU向ADDRESS端提供4位通道地址,控制14個(gè)模擬通道選擇器從11個(gè)外部模擬輸入和3個(gè)內(nèi)部自測(cè)電壓中選通1路送到采樣保持電路。同時(shí),I/O CLOCK端輸入時(shí)鐘時(shí)序,CPU從DATA OUT 端接收前一次A/D轉(zhuǎn)換結(jié)果。I/O CLOCK從CPU 接受10個(gè)時(shí)鐘長(zhǎng)度的時(shí)鐘序列。前4個(gè)時(shí)鐘用4位地址從ADDRESS端裝載地址寄存器,選擇所需的模擬通道,后6個(gè)時(shí)鐘對(duì)模擬輸入的采樣提供控制時(shí)序。模擬輸入的采樣起始于第4個(gè) I/O CLOCK的下降沿,而采樣一直持續(xù)6個(gè)I/O CLOCK周期,并一直保持到第10個(gè) I/O CLOCK的下降沿。轉(zhuǎn)換過程中,CS的下降沿使DATA OUT引腳脫離高阻狀態(tài)并起動(dòng)一次I/O CLOCK的工作過程。CS的上升沿終止這個(gè)過程并在規(guī)定的延遲時(shí)間內(nèi)使DATA OUT引腳返回到高阻狀態(tài),經(jīng)過兩個(gè)系統(tǒng)時(shí)鐘周期后禁止I/OCLOCK和ADDRESS端。

時(shí)序圖:

 
下降沿輸出數(shù)據(jù),上升沿輸入地址
 
CS片選拉低,一次轉(zhuǎn)換開始,同時(shí)輸出上次轉(zhuǎn)換的數(shù)據(jù)
時(shí)序使用方法:
1、CS片選拉高,EOC拉高,CLK時(shí)鐘拉低
2、CS片選拉低,開始讀出第一位數(shù)據(jù)
3、在第一個(gè)時(shí)鐘上升沿,輸入一個(gè)地址數(shù)據(jù)
4、之后在每個(gè)時(shí)鐘的下降沿輸出AD轉(zhuǎn)換數(shù)據(jù),在上升沿輸入地址數(shù)據(jù)
5、TLC1543是10位AD,因此有10個(gè)時(shí)鐘,TLC2543是位AD,因此有12個(gè)時(shí)鐘
6、一個(gè)操作過程結(jié)束后,片選CS拉高,EOC會(huì)在最后第10個(gè)時(shí)鐘的下降沿觸發(fā)拉低,開始AD轉(zhuǎn)換,此時(shí),輸出被禁止,等到轉(zhuǎn)換結(jié)束后EOC置位1,代表轉(zhuǎn)換結(jié)束。等到CS片選再次拉低,開始第二次操作。
 
TLC1543的電路圖(與單片機(jī)連接)
 
TLC15433的引腳圖
 

   TLC25433引腳圖
 A0~A10為11個(gè)模擬輸入通道
REF-通常接地
REF+接+5v
則輸入可測(cè)電壓為0~5v
cs位片選段,低電平有效,不用時(shí)置1,用時(shí)保持為0
DATAOUT為AD轉(zhuǎn)換數(shù)據(jù)輸出端(10位)
ADDRESS為地址輸入端,可輸入相關(guān)的命令,前四位用于選擇不同的輸入通道,如:0000位選擇0通道,0001位選擇1通道,及數(shù)據(jù)輸出的格式(高位先出還是低位先出)。
 
   TLC1543的三個(gè)控制輸入端CS、I/O CLOCK、ADDRESS和一個(gè)數(shù)據(jù)輸出端DATA OUT遵循串行外設(shè)接口SPI協(xié)議,要求微處理器具有SPI接口。但大多數(shù)單片機(jī)均未內(nèi)置SPI接口(如目前國(guó)內(nèi)廣泛采用的MCS51和PIC系列單片機(jī)),需通過軟件模擬SPI協(xié)議以便和TLC1543接口。TLC1543芯片的三個(gè)輸入端和一個(gè)輸出端與51系列單片機(jī)的I/O口可直接連接,具體連接方式可參見圖3。軟件設(shè)計(jì)中,應(yīng)注意區(qū)分TLC1543的11個(gè)模擬輸入通道和3個(gè)內(nèi)部測(cè)試電壓地址。附表為模擬通道和內(nèi)部電壓測(cè)試地址。程序軟件編寫應(yīng)注意TLC1543通道地址必須為寫入字節(jié)的高四位,而CPU讀入的數(shù)據(jù)是芯片上次A/D轉(zhuǎn)換完成的數(shù)據(jù)。在本文后附的程序中對(duì)此有詳細(xì)的說明。模擬輸入通道選擇 輸入寄存器地址(2進(jìn)制)。
A0 0000
A1 0001
A2 0010
A3 0011
A4 0100
A5 0101
A6 0110
A7 0111
A8 1000
A9 1001
A10 1010
內(nèi)部測(cè)試電壓選擇 輸入地址 輸出結(jié)果(16進(jìn)制)
(Vref++ Vref-)/2_ 1011 200
Vref- 1100 000
Vref+ 1101 3ff
注:Vref+為加到TLC1543 REF+端的電壓,Vref-是加到REF-端的電壓
 
 
TLC1543子函數(shù)
uint read1543(void)  
{    
uchar i=0;   
uint ad_value=0;
   
TCL2543_CLK=0; //一次轉(zhuǎn)換開始前,CS片選置1,EOC置1,時(shí)鐘置0   
TCL2543_CS=1;   
EOC=1;
 
delay_1ms(); //保持一段時(shí)間,拉低CS片選
TCL2543_CS=0;
delay_1ms();      //保持一段時(shí)間,等數(shù)據(jù)穩(wěn)定后再讀取第一位數(shù)據(jù)A9(最高位)
for(i=0;i<10;i++)   
{     
if(TCL2543_DOUT) ad_value|=0x0001;     //讀取第一位數(shù)據(jù)
TCL2543_DIN=0;     //將通道選擇數(shù)據(jù)準(zhǔn)備好,上升沿鎖存進(jìn)TLC1543
TCL2543_CLK=1;     //上升沿
delay_1ms();      //保持一段時(shí)間
TCL2543_CLK=0;     //下降沿保持一段時(shí)間,在讀取數(shù)據(jù)
delay_1ms();          
ad_value=ad_value<<1;    //移位,將最低位空出,以裝入第2位數(shù)據(jù)(A8)
}       
TCL2543_CS=1;    //一次轉(zhuǎn)換結(jié)束后將CS片選拉高
ad_value=ad_value>>1;    //由于多左移了1位,所以
return ad_value;  
}
 

                                 tlc1543 protues仿真圖
 
下面提供TLC1543.c文件,完整的代碼及其仿真文件下載地址:http://www.raoushi.com/f/TLC1543c51.rar
/*----File Description----
-  File Name              : TLC5615.H
-  Functions              : 初使化:TLC1543_init(void)
                            讀ADC :uint16 ReadADC_TLC1543(uchar ain)
-  Description            : 先調(diào)用初使化函數(shù),再調(diào)用讀ADC函數(shù),形參ain
                            為模擬通道,其值為 0 ~ 10. 注意:返回值為
                            上一次轉(zhuǎn)換結(jié)果。
-  Author                 : Mason    別名:小菜
-  Create Date            : 2013/7/26 
-  Performance            : Finished
-  Global Variable        : None
-  File static Variable   : None
-  -------------------------------------------
-  Revision History
-  No.    Date        Revised by    Item    Description
-  
-------------------------------------------------------------------------*/
/*----------------------------Head---------------------------------------*/
#include <reg52.h>
#include "TLC1543.h"
#include "MICRO.h"
#include "delay.h"
/*----------------------------Code---------------------------------------*/
void TLC1543_init(void)
{
    CS_1543 = 1;
    SCLK_1543 = 0;
}

/*----Important Function Description----
-  Function Name           : uint16 ReadADC_TLC1543(uchar ain)
-  Description             : None
-  Author                  : Mason    別名:小菜
-  Create Date             : 2013/7/27 
-  Parameters/Arguments    : uchar ain       :下一次轉(zhuǎn)換選通的ADC通道。
-  Return Code             : uint16 adc_value:上一次ADC轉(zhuǎn)換的結(jié)果。
-  Global Variable         : None
-  static Variable         : None
-  -------------------------------------------
-  Revision History
-  No.    Date        Revised by    Item    Description
-  
-------------------------------------------------------------------------*/
uint16 ReadADC_TLC1543(uchar ain)
{
    uchar temp;
    uint16 adc_value = 0;
    ain <<= 4;
    
    CS_1543 = 0;
    for(temp = 0;temp < 10;temp ++)         // 將判斷語句改為 temp<12
    {                                       // 程序可移殖至 TLC2543.
        adc_value <<= 1;
        ain <<= 1;
        ADDR_1543 = CY;
        if(DOUT_1543)   adc_value += 1;
        SCLK_1543 = 1;
        delayus(1);
        SCLK_1543 = 0;
    } 
    CS_1543 = 1;

    return  adc_value;
}
 
 
 
 
/*TLC2543驅(qū)動(dòng)程序(dhd0)*/
 

/**************************************
             TLC2543驅(qū)動(dòng)程序
*************************************/

#include <reg51.h>
#include <intrins.h>

/**************************************
        2543控制引腳宏定義
*************************************/
#define CLOCK p17 /*2543時(shí)鐘*/
#define D_IN p16 /*2543輸入*/
#define D_OUT p14 /*2543輸出*/
#define _CS p15 /*2543片選*/

#define uint unsigned int
#define uchar unsigned char

/**************************************
  名稱:delay
  功能:延時(shí)模塊
  輸入?yún)?shù):n要延時(shí)的周期數(shù)
  輸出參數(shù):無
*************************************/
void delay(uchar n)
{
uchar i;
for(i=0;i<n;i++)
{
   _nop_();
}
}

/**************************************
  名稱:read2543
  功能:TLC2543驅(qū)動(dòng)模塊
  輸入?yún)?shù):port通道號(hào)
  輸出參數(shù):ad轉(zhuǎn)換值
*************************************/
uint read2543(uchar port)
{
uint ad=0,i;
CLOCK=0;
_CS=0;
port<<=4;
for(i=0;i<12;i++)
{
  if(D_OUT) ad|=0x01;
  D_IN=(bit)(port&0x80);
  CLOCK=1;
  delay(3);
  CLOCK=0;
  delay(3);
  port<<=1;
  ad<<=1;
}
_CS=1;
ad>>=1;
return(ad);
}

/**************************************
  名稱:main
  功能:主函數(shù)
  輸入?yún)?shù):無
  輸出參數(shù):無
*************************************/
void main()
{uint ad;
while(1)
{
  ad=read2543(0);
}
}  
 
關(guān)閉窗口

相關(guān)文章