|
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51hei.png (36.34 KB, 下載次數(shù): 95)
下載附件
2021-7-17 22:37 上傳
51hei.png (60.41 KB, 下載次數(shù): 90)
下載附件
2021-7-17 22:37 上傳
利用已知器件完成一個(gè)簡(jiǎn)易信號(hào)發(fā)生器的設(shè)計(jì)。
二、設(shè)計(jì)內(nèi)容
請(qǐng)利用你熟悉的單片機(jī)和8路輸出串行8位D/A轉(zhuǎn)換器TLC5628設(shè)計(jì)一個(gè)鋸齒波信號(hào)發(fā)生器,相關(guān)TLC5628資料請(qǐng)自行檢索資料,設(shè)參考電壓,電源電壓,運(yùn)算放大器型號(hào)任意。
設(shè)計(jì)要求及指標(biāo): (1)輸出幅度。
(2)輸出頻率之間任意。
(3)畫(huà)出設(shè)計(jì)簡(jiǎn)略電路。
四、設(shè)計(jì)步驟
1.通過(guò)TLC5628引腳圖以及邏輯功能圖,設(shè)計(jì)出符合要求的電路圖(通過(guò)protus仿真)
電路圖設(shè)計(jì)結(jié)果:
2.程序設(shè)計(jì),通過(guò)TLC5628參數(shù)資料中的時(shí)序仿真,設(shè)計(jì)出產(chǎn)生鋸齒波的程序
程序如下:
#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 TCL5620_Write(unsigned char addr, bitrng, unsigned char dat);
void Init_TLC5620();
void jichiWave();
void delay5us(void); //誤差 0us
/*函數(shù)定義*/
/*延時(shí)函數(shù)*/
void delayms(unsigned char ms)
{
unsignedchar 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--);
}
/*TCL5620 driver*/
void TCL5620_Write(unsigned char addr, bitrng, unsigned char dat)
{
unsignedchar 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;
}
/*初始化TLC5620*/
void Init_TLC5620()
{
DAT= 1;
CLK= 1;
LDAC= 1;
LOAD= 1;
}
/*
TLC5620轉(zhuǎn)換一次大概要12.5us
即最高80KHz
但是用51單片機(jī),晶振為12MHz
最快產(chǎn)生一個(gè)方波為2us,即最高頻率為500KHz
正弦波產(chǎn)生函數(shù)
用32個(gè)點(diǎn)
*/
void SinWave()
{
/*根據(jù)曲線光滑來(lái)選取采樣點(diǎn)*/
codeunsigned char SinTab[] =
{
255,240,230,220,210,200,190,180,170,160,150,140,130,120,110,100,90,80,70,60,50,40,30,20,10,0
};
unsignedchar n;
for(n= 0; n < 25; n++)
{
TCL5620_Write(0,0,SinTab[n]);
delayms(1);
}
}
void main()
{
Init_TLC5620();
while(1)
{
SinWave();
}
}
3.燒錄HEX文件
五、實(shí)驗(yàn)結(jié)果的仿真與驗(yàn)證
信號(hào)為鋸齒波,符合設(shè)計(jì)要求。
六、實(shí)驗(yàn)總結(jié)
本系統(tǒng)的硬件電路非常簡(jiǎn)單,關(guān)鍵在于軟件算法的設(shè)計(jì)。信號(hào)發(fā)生器的最重要指標(biāo)就是頻率的穩(wěn)定性,因此,如何通過(guò)單片機(jī)來(lái)產(chǎn)生精確的控制信號(hào)以使頻率穩(wěn)定是其關(guān)鍵所在。本設(shè)計(jì)在程序中已設(shè)計(jì)好數(shù)據(jù)表格,每個(gè)周期的采樣點(diǎn)數(shù)為40個(gè)。這樣就將頻率穩(wěn)定問(wèn)題轉(zhuǎn)換為采樣周期的精確定位問(wèn)題了。
本設(shè)計(jì)采用定時(shí)器中斷方式來(lái)產(chǎn)生精確的采樣間隔,具體的算法。
首先是設(shè)定一個(gè)定時(shí)器中斷的基準(zhǔn)時(shí)間,然后將采樣時(shí)間間隔,設(shè)置為定時(shí)器中斷基準(zhǔn)時(shí)間的整數(shù)倍,倍數(shù)參量可根據(jù)頻率按鍵掃描函數(shù)的結(jié)果以及初值來(lái)確定。
D/A作為一種常見(jiàn)的應(yīng)用電子儀器設(shè)備,傳統(tǒng)的波形產(chǎn)生一般可以完全由硬件電路搭接而成,如采用555振蕩電路發(fā)生正弦波、三角波和方波的電路便是可取的路徑之一,不用依靠單片機(jī)。但是這種電路存在波形質(zhì)量差,控制難,可調(diào)范圍小,電路復(fù)雜和體積大等缺點(diǎn)。在科學(xué)研究和生產(chǎn)實(shí)踐中,如工業(yè)過(guò)程控制,生物醫(yī)學(xué),地震模擬機(jī)械振動(dòng)等領(lǐng)域常常要用到低頻信號(hào)源。而由硬件電路構(gòu)成的低頻信號(hào)其性能難以令人滿意,而且由于低頻信號(hào)源所需的RC要很大。大電阻,大電容在制作上有困難,參數(shù)的精度亦難以保證。體積大,漏電,損耗顯著更是其致命的弱點(diǎn)。一旦工作需求功能有增加,則電路復(fù)雜程度會(huì)大大增加。
利用單片機(jī)采用程序設(shè)計(jì)方法來(lái)產(chǎn)生低頻信號(hào),其頻率底線很低。具有線路相對(duì)簡(jiǎn)單,結(jié)構(gòu)緊湊,價(jià)格低廉,頻率穩(wěn)定度高,抗干擾能力強(qiáng),用途廣泛等優(yōu)點(diǎn),并且能夠?qū)Σㄐ芜M(jìn)行細(xì)微調(diào)整,改良波形,使其滿足系統(tǒng)的要求。只要對(duì)電路稍加修改,調(diào)整程序,即可完成功能升級(jí)。
(1)分析確定設(shè)計(jì)方案。在分析的過(guò)程中一定要多查資料多聽(tīng)取意見(jiàn),盡量站在別人的肩膀上少走彎路。對(duì)所選的也大概有了一些了解,下一步就是在這樣一個(gè)基礎(chǔ)上,綜合已有的資料來(lái)更透徹的分析。
(2)查閱資料。上網(wǎng)查資料是必不可少的,目前各大搜索引擎都推出有自己特色的搜索服務(wù),一定要找到適合自己的東西。
(3)學(xué)習(xí)的能力。明確了問(wèn)題并且分析了然后就是如何實(shí)現(xiàn)的問(wèn)題了。這個(gè)時(shí)候?qū)W習(xí)能力顯得特別的重要。如何通過(guò)自己的努力把不明白的東西搞明白,這對(duì)學(xué)習(xí)的能力有很高的要求。接著自己開(kāi)始編寫(xiě)簡(jiǎn)單的程序來(lái)檢驗(yàn)一下學(xué)習(xí)的效果,理論學(xué)習(xí)和工作實(shí)際緊密結(jié)合起來(lái)。
(4)要實(shí)際動(dòng)手,防止眼高手底。
51hei.png (9.84 KB, 下載次數(shù): 78)
下載附件
2021-7-17 22:38 上傳
仿真代碼51hei下載地址:
prj.zip
(49.23 KB, 下載次數(shù): 33)
2021-7-17 21:59 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
評(píng)分
-
查看全部評(píng)分
|