在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > PCF8591 AD/DA轉(zhuǎn)換MSP430程序

            PCF8591 AD/DA轉(zhuǎn)換MSP430程序

            作者: 時間:2016-11-30 來源:網(wǎng)絡(luò) 收藏
            PCF8591用的也是IIC 總線,有了昨晚寫的總線協(xié)議,倒不是很難,下一步可以考慮做一個不精確的信號發(fā)生器,睡覺去咯!iic.h文件的源碼在這里:http://www.51hei.com/mcu/2319.html

            本文引用地址:http://www.biyoush.com/article/201611/324032.htm

            #ifndef __PCF8591_h
            #define __PCF8591_h

            #include "basic.h"
            #include "IIC.H"
            //-------------------------------------------
            //宏定義
            #define AD_WRITE_MODE 0X90
            #define AD_READ_MODE 0X91

            #define EN_DA0 0X40//打開DA
            #define AI_M0 0X00//AD模式0,四個單通道輸入
            #define AI_M1 0X10//AD模式1,三個差分輸入
            #define AI_M2 0X20//AD模式2,兩個單通道,一個差分混合輸入
            #define AI_M3 0X30//AD模式3,兩個差分混合輸入
            #define AUTO 0X04//自動增加打開
            #define CH0 0X00//1通道
            #define CH1 0X01//2通道
            #define CH2 0X02//3通道
            #define CH3 0X03//4通道

            //--------------------------------------
            //進行DA轉(zhuǎn)換
            uchar AD_W_BYTE(uchar DATA)
            {
            IIC_START();//啟動IIC

            IIC_WRITE_DATA(AD_WRITE_MODE);//寫入模式
            //delay();
            if(TEST_ACK())
            return 1;
            IIC_WRITE_DATA(EN_DA0);//寫控制寄存器,打開DA轉(zhuǎn)換器
            //delay();
            if(TEST_ACK())
            return 1;
            IIC_WRITE_DATA(DATA);//寫入數(shù)據(jù)
            //delay();
            if(TEST_ACK())
            return 1;

            IIC_STOP();//停止IIC
            return 0;
            }
            //-----------------------------------------
            //進行AD轉(zhuǎn)化,并返回一個8位數(shù)據(jù)(單通道,自動增加關(guān)閉)
            uchar AD_R_BYTE(uchar CH)
            {
            uchar temp=0;
            IIC_START();//啟動IIC

            IIC_WRITE_DATA(AD_WRITE_MODE);//偽寫模式
            if(TEST_ACK())
            return 1;

            IIC_WRITE_DATA(AI_M0|CH);//寫入通道,已經(jīng)設(shè)定為四個單通道模式,如要改變方式,請改變值
            if(TEST_ACK())
            return 1;

            IIC_START();//重新啟動IIC

            IIC_WRITE_DATA(AD_READ_MODE);//讀取模式
            if(TEST_ACK())
            return 1;

            temp=IIC_READ_DATA();//讀取數(shù)據(jù)
            NO_ACK();

            IIC_STOP();
            delayms(10);
            return temp;
            }
            //-------------------------------------------------
            //連續(xù)的進行DA轉(zhuǎn)化,用于輸出一個特定的波形
            uchar AD_W_PAGE(uchar *p,uchar lengh)
            {
            uchar i=0;
            IIC_START();//啟動IIC

            IIC_WRITE_DATA(AD_WRITE_MODE);//寫入模式
            //delay();
            if(TEST_ACK())
            return 1;
            IIC_WRITE_DATA(EN_DA0);//寫控制寄存器,打開DA轉(zhuǎn)換器
            //delay();
            if(TEST_ACK())
            return 1;
            for(i=0;i {
            IIC_WRITE_DATA(*p);//寫入數(shù)據(jù)
            //delay();
            if(TEST_ACK())
            return 1;
            p++;
            delayms(1);
            }
            IIC_STOP();//停止IIC
            return 0;
            }
            //------------------------------------------------
            //連續(xù)的進行AD轉(zhuǎn)換,用于外界波形的采樣
            uchar AD_R_PAGE(uchar CH,uchar *p,uchar lengh)
            {
            uchar temp=0;
            uchar i;
            IIC_START();//啟動IIC

            IIC_WRITE_DATA(AD_WRITE_MODE);//偽寫模式
            if(TEST_ACK())
            return 1;

            IIC_WRITE_DATA(AI_M0|CH);//寫入通道,已經(jīng)設(shè)定為四個單通道模式,如要改變方式,請改變值
            if(TEST_ACK())
            return 1;

            IIC_START();//重新啟動IIC

            IIC_WRITE_DATA(AD_READ_MODE);//讀取模式
            if(TEST_ACK())
            return 1;
            for(i=0;i {
            *p=IIC_READ_DATA();//讀取數(shù)據(jù)
            IIC_ACK();
            p++;
            delayms(1);
            }
            *p=IIC_READ_DATA();//讀取數(shù)據(jù)
            NO_ACK();

            IIC_STOP();
            delayms(10);
            return temp;
            }
            #endif



            關(guān)鍵詞: PCF8591ADDA轉(zhuǎn)換MSP43

            評論


            技術(shù)專區(qū)

            關(guān)閉