<acronym id="xonnx"></acronym>
      <td id="xonnx"></td>
    1. <pre id="xonnx"></pre>

      1. 專注電子技術學習與研究
        當前位置:單片機教程網 >> 常用芯片 >> 瀏覽文章

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

        作者:huqin   來源:本站原創   點擊數:  更新時間:2014年08月16日   【字體:

        TLC1543 是11通道10位串行A/D轉換器,TLC2543是11通道12位串行A/D轉換器.

        TLC1543是美國TI公司生產的多通道、低價格的模數轉換器。采用串行通信接口,具有輸入通道多、性價比高、易于和單片機接口的特點,可廣泛應用于各種數據采集系統。 TLC1543為20腳DIP封裝的CMOS 10位開關電容逐次A/D逼近模數轉換器

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

        時序圖:

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

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

                                         tlc1543 protues仿真圖
         
        下面提供TLC1543.c文件,完整的代碼及其仿真文件下載地址:http://www.thefapper.com/f/TLC1543c51.rar
        /*----File Description----
        -  File Name              : TLC5615.H
        -  Functions              : 初使化:TLC1543_init(void)
                                    讀ADC :uint16 ReadADC_TLC1543(uchar ain)
        -  Description            : 先調用初使化函數,再調用讀ADC函數,形參ain
                                    為模擬通道,其值為 0 ~ 10. 注意:返回值為
                                    上一次轉換結果。
        -  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       :下一次轉換選通的ADC通道。
        -  Return Code             : uint16 adc_value:上一次ADC轉換的結果。
        -  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中文資料下載地址:http://www.thefapper.com/f/串行12位A_DTLC2543及其應用.pdf
         
        /*TLC2543驅動程序(dhd0)*/
         

        /**************************************
                     TLC2543驅動程序
        *************************************/

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

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

        #define uint unsigned int
        #define uchar unsigned char

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

        /**************************************
          名稱:read2543
          功能:TLC2543驅動模塊
          輸入參數:port通道號
          輸出參數:ad轉換值
        *************************************/
        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
          功能:主函數
          輸入參數:無
          輸出參數:無
        *************************************/
        void main()
        {uint ad;
        while(1)
        {
          ad=read2543(0);
        }
        }  
         
        關閉窗口

        相關文章

        欧美性色欧美精品视频,99热这里只有精品mp4,日韩高清亚洲日韩精品一区二区,2020国自产拍精品高潮