在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,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)用 > TLC5620產(chǎn)生頻率可調(diào)三相正弦信號

            TLC5620產(chǎn)生頻率可調(diào)三相正弦信號

            作者: 時間:2012-08-15 來源:網(wǎng)絡(luò) 收藏
            /*********************************************************/
            //一般說明
            // 串行通信
            //定時器控制其3路正弦波輸出頻率
            /*********************************************************/
            #include reg51.h> //用于調(diào)試子程序

            /*********************************************************/
            //的核心子程序
            /*********************************************************/
            #define uint unsigned int
            #define uchar unsigned char
            #define STC5620_A 0 //通道A,增益0 由于先寫高位所以已經(jīng)做過左移5位處理
            #define STC5620_B 64 //通道B,增益0
            #define STC5620_C 128 //通道B,增益0
            sbit STC5620_LDAC=P3^2; //定義與單片機(jī)的接口
            sbit STC5620_LOAD=P3^3;
            sbit STC5620_CLK=P3^5;
            sbit STC5620_DATA=P3^4;
            uchar code DAC_SIN[100]={128,136,144,152,160,168,175,182,190,197,
            203,210,216,221,227,232,236,240,244,247,
            250,252,254,255,255,255,255,255,254,252,
            250,247,244,240,236,232,227,221,216,210,
            203,197,190,182,175,168,160,152,144,136,
            128,120,112,104,96, 88, 81, 74, 66, 59,
            53, 46, 40, 35, 29, 24, 20, 16, 12, 9,
            6, 4, 2, 1, 0, 0, 0, 1, 2, 4,
            6, 9, 12, 16, 20, 24, 29, 35, 40, 46,
            53, 59, 66, 74, 81, 88, 96, 104,112,120,
            }; //對正弦波采100個樣點(diǎn)
            void STC5620_write_com(uchar channel,uchar vol) // 選通道,寫輸出電壓命令
            {
            uchar i;
            STC5620_LDAC=1;
            STC5620_LOAD=1; //總線拉高準(zhǔn)備寫入
            for(i=0;i3;i++) //寫入選擇通道命令,其中默認(rèn)了增益為1
            {

            STC5620_DATA=(bit)(channel0x80);
            STC5620_CLK=1; //下降沿鎖存數(shù)據(jù)
            STC5620_CLK=0;
            channel=1 ;
            }
            for(i=0;i8;i++) //寫入輸出電壓命令
            {

            STC5620_DATA=(bit)(vol0x80);
            STC5620_CLK=1; //下降寫數(shù)據(jù)入串口緩沖器
            STC5620_CLK=0;
            vol=1;
            }
            STC5620_LOAD=0; //下降沿寫串口緩沖器入通道指定的中間緩沖器
            STC5620_LDAC=0; //下降沿寫中間緩沖器入通道對應(yīng)的輸出緩沖器
            }
            void STC5620_sin(void)
            {
            static uchar ii=0,jj=33,kk=66; //總點(diǎn)數(shù)為100個點(diǎn),可以用于設(shè)定相位差
            //定義靜態(tài)變量 每次更新上次值
            {
            STC5620_write_com(STC5620_A,DAC_SIN[ii]);
            ii=ii+2; //控制通道A采樣點(diǎn)數(shù)
            if(ii>99) ii=0;
            STC5620_write_com(STC5620_B,DAC_SIN[jj]);
            jj=jj+2; //控制通道B采樣點(diǎn)數(shù)
            if(jj>99) jj=0;
            STC5620_write_com(STC5620_C,DAC_SIN[kk]);
            kk=kk+2; //控制通道C采樣點(diǎn)數(shù)
            if(kk>99) kk=0;
            }
            }
            /*********************************************************/
            //設(shè)置定時中斷控制TLC5620輸出正弦波的頻率
            /*********************************************************/
            void Init_T0(void)
            {
            EA=1;
            ET0=1;
            TMOD=0x02; //自動裝載計數(shù)
            TR0=1;
            TL0=TH0=256-90; //設(shè)置頻率 具體使用時計算出參數(shù)后再幅值
            //頻率計算公式a:計數(shù)個數(shù);p:晶振頻率;b:取樣點(diǎn)數(shù);則在單片機(jī)12分頻工作模式情況下頻率=p/(12ab)
            //此時頻率為
            }

            void time0() interrupt 1
            {
            STC5620_sin();
            }

            /*********************************************************/
            //主函數(shù)
            /*********************************************************/
            void main()
            {
            Init_T0(); //初始化定時器
            while(1); //等待中斷
            }


            評論


            相關(guān)推薦

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

            關(guān)閉