新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > AT89S52+TLC5615驅動

        AT89S52+TLC5615驅動

        作者: 時間:2016-11-29 來源:網絡 收藏
        一.概述

        TLC5615是德州儀器公司生產的一款10位D/A轉換器,單路電壓輸出,輸出電壓最大可達到基準電壓的兩倍,可帶最小2K歐姆的負載。這款芯片帶有上電復位功能,采用三線制串行總線接口,兼容SPI通信,最大轉換時間為12.5微秒(輸入從0x000變為0x3ff或者從0x3ff變為0x000,輸出穩定信號的時間),還能進行多片級聯使用。TLC5615是一款性價比高、很常用的10位數模轉換芯片。

        本文引用地址:http://www.104case.com/article/201611/323544.htm

        二.電路設計

        在WSF-51DB開發板上,TLC5615的輸出端不接任何負載,只是擴展了一個接口,作為測量儀器的接口。芯片的基準電壓取自電源電壓DC5V。

        三.軟件設計

        /**************************************************************************

        *程序名稱:TLC5615驅動

        *程序功能:向TLC5615寫入數字信號,測量觀察輸出模擬信號

        *開發工具:WSF-51DB開發板

        * MCU型號:AT89S52-24PU

        *時鐘頻率:12MHZ

        *程序作者:吳師傅

        *版權說明:吳師傅版權所有。轉載請注明來源和作者。

        **************************************************************************/

        #i nclude

        sbit sclk=P3^3;//串行時鐘

        sbit din=P3^2;//串行數據輸入

        sbit cs=P3^4;//片選

        sbit dout=P0^7;//串行數據輸出

        //延時毫秒函數:

        void Delayms(unsigned int t)

        {

        unsigned int x,y;

        for(x=t;x>0;x--)

        for(y=120;y>0;y--);

        }

        //寫TLC5615數據函數:

        void WriteTLC5615(unsigned int wdata)

        {

        unsigned char i;

        cs=0;//片選使能

        wdata<<=2;//將數據左移兩位,補兩位擴展位,組成12位數據寫入

        for(i=0;i<12;i++)//寫入12位數據

        {

        sclk=0;

        din=(wdata&0x0800)?1:0;//取出最高位(第11位)寫入

        sclk=1;//上升沿送數據

        wdata<<=1;//下一位移到最高位

        }

        cs=1;//片選禁止

        }

        //主函數:

        int main(void)

        {

        unsigned int i;

        while(1)

        {

        //因參考電壓取自電源電壓5V,輸入數據達到512時,轉換輸出電壓就已達到參考電壓

        //輸入數據大于512時,輸出電壓已經無法再上升。

        for(i=0;i<512;i++)

        {

        WriteTLC5615(i);//輸入數據從0-512每間隔200ms遞增,

        Delayms(200);

        //用萬用表測量輸出引腳,會看到電壓從0V-4V每間隔200ms以約10mv遞增

        }

        }

        return 0;

        }




        關鍵詞: AT89S52TLC5615驅

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 永康市| 铅山县| 社会| 普洱| 盐亭县| 英超| 长岭县| 文昌市| 高雄市| 锦州市| 托克托县| 沂南县| 济阳县| 德州市| 蒙城县| 集贤县| 太和县| 莎车县| 隆子县| 宜都市| 莆田市| 集贤县| 弥渡县| 乐平市| 穆棱市| 台中市| 汶上县| 温泉县| 武平县| 延安市| 永兴县| 元江| 安仁县| 甘谷县| 盘山县| 云霄县| 洞口县| 沈丘县| 宜州市| 县级市| 交口县|