欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: 單片機(jī)+TLC5628信號(hào)發(fā)生器Proteus仿真圖與程序 [打印本頁(yè)]

作者: 14541564    時(shí)間: 2021-7-19 15:08
標(biāo)題: 單片機(jī)+TLC5628信號(hào)發(fā)生器Proteus仿真圖與程序
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機(jī)源程序如下:
#include <reg52.h>
#include <intrins.h>

/*定義I/O端口*/
sbit CLK = P0^0; //串行時(shí)鐘,下降沿有效
sbit DAT = P0^1; //串行數(shù)據(jù)
sbit LOAD = P0^7; //串行數(shù)據(jù)加載,下降沿有效
sbit LDAC = P0^3; //DAC更新鎖存控制,下降沿有效

/*函數(shù)申明*/
void delayms(unsigned char ms);
void TCL5628_Write(unsigned char addr, bit rng, unsigned char dat);
void Init_TLC5628();
void jichiWave();
void delay5us(void);   //誤差 0us
/*函數(shù)定義*/

/*延時(shí)函數(shù)*/
void delayms(unsigned char ms)
{
        unsigned char i;
        while(ms--)
        {
                for(i = 0; i < 250; i++)
                {
                        _nop_();
                        _nop_();
                        _nop_();
                        _nop_();
                }
        }        
}

void delay5us(void)   //誤差 0us
{
    unsigned char a;
    for(a=1;a>0;a--);
}


/*TCL5628 driver*/
void TCL5628_Write(unsigned char addr, bit rng, unsigned char dat)
{
        unsigned char n;
        // 發(fā)送通道地址
        n = 3;
        do
        {
                DAT = (bit)(addr & 0x02);
                addr <<= 1;
                CLK = 0;
                CLK = 1;
        }while(--n != 0);
        //發(fā)送RNG位
        DAT = rng;
        CLK = 0;
        CLK = 1;
        //發(fā)送8位DAC數(shù)據(jù)
        n = 8;
        do
        {
                DAT = (bit)(dat & 0x80);
                dat <<= 1;
                CLK = 0;
                CLK = 1;
        }while(--n != 0);
        
        //加載數(shù)據(jù)
        LOAD = 0;
//        delay5us();
        LOAD = 1;
//        delay5us();
        LDAC = 0;
//        delay5us();
        LDAC = 1;
}

/*初始化TLC5628*/
void Init_TLC5628()
{
        DAT = 1;
        CLK = 1;
        LDAC = 1;
        LOAD = 1;
}

///*方法一:采樣設(shè)計(jì)
//        TLC5628轉(zhuǎn)換一次大概要12.5us
//        即最高80KHz
//        但是用51單片機(jī),晶振為12MHz
//        最快產(chǎn)生一個(gè)方波為2us,即最高頻率為500KHz
//        
//        正弦波產(chǎn)生函數(shù)
//        用32個(gè)點(diǎn)
//*/
//void juchiWave()
//{
//        /*根據(jù)曲線光滑來(lái)選取采樣點(diǎn)*/
//        code unsigned char juchiTab[] =
//        {
//                0,10,20,30,40,50,60,70,80,90,100,110,120,130,140,150,160,170,180,190,200,210,220,230,240,250
//        };

//        unsigned char n;
//        for(n = 0; n < 25; n++)
//        {
//                TCL5628_Write(0,0,juchiTab[n]);
//                delayms(1);
//        }
//}

//void main()
//{
//        Init_TLC5628();
//        while(1)
//        {
//                juchiWave();
//        }
//        
//}

/*方法二:算法設(shè)計(jì)*/
void juchiwave()
{
      unsigned char n;
for(n=0;n<50;n++)
                                        {
  TCL5628_Write(0,0,n);
                delayms(1);
}
     }
void main()
{
        Init_TLC5628();
        while(1)
        {
                juchiWave();
        }
        
}



全部資料51hei下載地址:
信號(hào)發(fā)生器.zip (91.61 KB, 下載次數(shù): 21)





歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1