久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機教程網(wǎng) >> MCU設(shè)計實例 >> 瀏覽文章

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

作者:佚名   來源:本站原創(chuàng)   點擊數(shù):  更新時間:2011年09月16日   【字體:
/*********************************************************/
//一般說明
//TLC5620 串行通信
//定時器控制其3路正弦波輸出頻率
/*********************************************************/
#include <reg51.h> //用于調(diào)試子程序

/*********************************************************/
//TLC5620的核心子程序
/*********************************************************/
#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;    //定義TLC5620與單片機的接口
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個樣點
void STC5620_write_com(uchar channel,uchar vol)      // 選通道,寫輸出電壓命令
{               
uchar i;
 STC5620_LDAC=1;
 STC5620_LOAD=1;             //總線拉高準(zhǔn)備寫入
for(i=0;i<3;i++)             //寫入選擇通道命令,其中默認了增益為1
 {

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

 STC5620_DATA=(bit)(vol&0x80);
 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;         //總點數(shù)為100個點,可以用于設(shè)定相位差
               //定義靜態(tài)變量 每次更新上次值
 {
 STC5620_write_com(STC5620_A,DAC_SIN[ii]);
  ii=ii+2;             //控制通道A采樣點數(shù)
 if(ii>99) ii=0;
 STC5620_write_com(STC5620_B,DAC_SIN[jj]);
 jj=jj+2;             //控制通道B采樣點數(shù)
 if(jj>99) jj=0;
 STC5620_write_com(STC5620_C,DAC_SIN[kk]);
 kk=kk+2;               //控制通道C采樣點數(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:取樣點數(shù);則在單片機12分頻工作模式情況下頻率=p/(12ab)
       //此時頻率為
}

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

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

//程序與原理過于簡單,不多做解釋,僅為備份。

關(guān)閉窗口

相關(guān)文章

主站蜘蛛池模板: 亚洲乱码国产乱码精品精的特点 | 在线观看免费av网 | 精品国产一区二区三区久久久久久 | 久久777| 日韩在线不卡 | 亚洲欧美日韩电影 | 在线播放一区 | 在线播放国产一区二区三区 | 中文精品视频 | re久久| 亚洲欧美国产毛片在线 | 一区二区免费高清视频 | 国产91在线播放 | 久久久看 | 丁香五月网久久综合 | 精品一二三区在线观看 | 一区欧美| 狠狠婷婷综合久久久久久妖精 | 国产精品亚洲第一区在线暖暖韩国 | 97超在线视频 | 亚洲国产视频一区二区 | av香港经典三级级 在线 | 国产中文字幕在线观看 | 亚洲精品视频免费观看 | 欧美精品网站 | 国产精品五月天 | 日韩成人国产 | 国产一区二区三区四区 | 国产免费视频 | 精品欧美乱码久久久久久1区2区 | 99久久精品免费视频 | 亚洲精品一区二三区不卡 | 亚洲理论在线观看电影 | 精品一区二区电影 | 夜夜爽夜夜操 | 五月天婷婷丁香 | 中文在线а√在线8 | 国产精品久久久久久久久久 | 欧美日韩视频在线播放 | 国产精品久久久99 | 一区二区国产精品 |