一、實(shí)驗(yàn)?zāi)康?/p>
1、學(xué)習(xí)和運(yùn)用keilC的C語(yǔ)言;
2、學(xué)習(xí)通過(guò)proteus軟件畫(huà)原理圖,并利用keilC軟件形成的HEX文件運(yùn)行;
3、實(shí)現(xiàn)利用單片機(jī)AT98C51和8位D/A轉(zhuǎn)換芯片DAC0832共同實(shí)現(xiàn)方波、三角波、鋸齒波、梯形波這四種常見(jiàn)波形的發(fā)生。
4、進(jìn)一步學(xué)習(xí)和利用protel軟件,畫(huà)出實(shí)驗(yàn)原理圖,并生成PCB圖;
5、AT89S51為核心的單片機(jī)系統(tǒng)的軟硬件開(kāi)發(fā)過(guò)程;
6、基本信號(hào)的產(chǎn)生原理及函數(shù)發(fā)生器系統(tǒng)的設(shè)計(jì)流程
二、實(shí)驗(yàn)要求
設(shè)計(jì)一個(gè)低頻信號(hào)發(fā)生器:
1、查閱相關(guān)資料,完成原理圖設(shè)計(jì);
2、編寫(xiě)軟件,使該系統(tǒng)能輸出方波、三角波、鋸齒波和梯形波;波形頻率均為1khz,雙極性輸出。
3、用protel軟件完成系統(tǒng)的硬件設(shè)計(jì),并通過(guò)電器規(guī)則檢查;
4、仿真實(shí)現(xiàn);
5、畫(huà)pcb圖;
6、寫(xiě)綜合課程設(shè)計(jì)報(bào)告。
三、器件清單
1、AT80C51一個(gè);
2、DAC0832一個(gè);
3、OPAMP兩個(gè);
4、數(shù)碼管一個(gè);
5、按鍵開(kāi)關(guān)一個(gè);
6、電阻、電感若干;
四、實(shí)驗(yàn)原理
#include
unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66}// 0 1 2 3 4
unsigned char time1; //////延時(shí)函數(shù)參數(shù)///////
/////////////////////////////變量說(shuō)明//////////////////////////////////////
unsigned char time2;
unsigned char time3;
unsigned char count;
unsigned char ms;
////////////////////////////////////////函數(shù)說(shuō)明////////////////////////////////
void initial(void); ////初始化函數(shù)////
//void initial_time0(void); //////定時(shí)器0初始化///////
void anjian(void); ////////////按鍵函數(shù)////
void delay(unsigned char time1,time2,time3); ////延時(shí)函數(shù)////
void disp(unsigned char count); /////靜態(tài)顯示子函數(shù)/////
void delay1(char ms);
void fangbo(void); //方波函數(shù)//
void sanjiaobo(void); //三角波函數(shù)//
void juchibo(void); //鋸齒波函數(shù)//
void tixingbo(void); //正弦波函數(shù)//
void main (void)
{
initial();
while(1)
{
anjian();
}
}
/*************************************************************************
//函數(shù)名稱(chēng):void anjian(void)
//函數(shù)說(shuō)明:按鍵函數(shù)
//函數(shù)功能:
// 注意:
*************************************************************************/
void anjian(void)
{
if(P3_7==0)
{delay(1,50,248);
if(P3_7==0)
{count=1;
disp(count);
fangbo();
}
}
while(P3_7==0);
count=0;
disp(count);
anjian();
}
/*************************************************************************
//函數(shù)名稱(chēng):void fangbo(void)
//函數(shù)說(shuō)明:方波函數(shù)
//函數(shù)功能:
// 注意:
*************************************************************************/
void fangbo(void)
{
while(1)
{
unsigned char fangbo_1;
fangbo_1+=8;
if(fangbo_1>128&fangbo_1<256)?? {P0=0x00;}?? ?? ?? ?? ?
if(fangbo_1<128)?? ?? ?? ?? {P0=0xff;} ? ?
if(P3_7==0)
{delay(1,50,248);
if(P3_7==0)
{ count=2;
disp(count);
sanjiaobo();
}
}
while(P3_7==0);
}
}
/*************************************************************************
//函數(shù)名稱(chēng):void sanjiaobo(void)
//函數(shù)說(shuō)明:三角波函數(shù)
//函數(shù)功能:
// 注意:
*************************************************************************/
void sanjiaobo(void)
{
while(1)
{
unsignedchar sanjiaobo_2;
if(sanjiaobo_2<=128)
{P0=sanjiaobo_2;}
else
{P0=255-sanjiaobo_2;}
sanjiaobo_2+=5;
if(sanjiaobo_2>=255)
{sanjiaobo_2=0x00;}
if(P3_7==0)
{
delay(1,50,248);
if(P3_7==0)
{count=3;
disp(count);
juchibo();
}
}
while(P3_7==0);
}
}
/*************************************************************************
//函數(shù)名稱(chēng):void juchibo(void)
//函數(shù)說(shuō)明:鋸齒波函數(shù)
//函數(shù)功能:
// 注意:
*************************************************************************/
void juchibo(void)
{
while(1)
{
unsignedchar juchibo_3;
if(juchibo_3<180)?? {P0=juchibo_3;}??
juchibo_3+=4;
if(juchibo_3>=180) {juchibo_3=0x00;}
if(P3_7==0)
{
delay(1,50,248);
if(P3_7==0)
{count=4;
disp(count);
tixingbo();
}
}
while(P3_7==0);
}
}
/*************************************************************************
//函數(shù)名稱(chēng):void tixingbo(void)
//函數(shù)說(shuō)明:梯形波函數(shù)
//函數(shù)功能:
// 注意:
*************************************************************************/
void tixingbo(void)
{
while(1)
{
unsignedchar tixingbo_4;
if(tixingbo_4<120)
{P0=tixingbo_4;}
elseif(tixingbo_4==120)
delay1(1);
else if(tixingbo_4<240)
{P0=240-tixingbo_4;}
if(tixingbo_4==240)
{delay1(1);}
if(tixingbo_4>240)
{
tixingbo_4=0x00;
}
tixingbo_4+=10;
if(P3_7==0)
{delay(1,50,248);
if(P3_7==0)
{ count=0;
disp(count);
anjian();
}
}
while(P3_7==0);
}
}
/*************************************************************************
//函數(shù)名稱(chēng):void initial(void)
//函數(shù)說(shuō)明:初始化函數(shù)
//函數(shù)功能:
// 注意:
*************************************************************************/
void initial(void)
{
P0=0xff;
P1=0xff;
P2=0xff;
P3=0xff;
}
/*************************************************************************
//函數(shù)名稱(chēng):delay(unsigned char time1,time2,time3)
//函數(shù)說(shuō)明:延時(shí)函數(shù)
//函數(shù)功能:
//入口參數(shù):unsigned char time1,time2,time3
//出口參數(shù):
// 注意:延時(shí)時(shí)間的計(jì)算:(time1*time2*time3*8us)us
time1,time2,time3可以不進(jìn)行變量說(shuō)明
*************************************************************************/
void delay(unsigned char time1,time2,time3)
{
unsignedchar i,j,k;
for(i=time1;i>0;i--)
{ for(j=time2;j>0;j--)
{
for(k=time3;k>0;k--);
}
}
}
/*************************************************************************
//函數(shù)名稱(chēng):disp(unsigned char count)
//函數(shù)說(shuō)明:靜態(tài)顯示子函數(shù)
//函數(shù)功能:
//入口參數(shù):unsigned char count
//出口參數(shù):
// 注意:
*************************************************************************/
void disp(unsigned char count)
{
P2=table[count];
delay(1,5,248);
}
voiddelay1(char ms)
{
char ti;
while(ms--)
{
for(ti=0;ti<16;ti++){}
}
}
? ?
? ?
? ?
? ?
? ??
實(shí)驗(yàn)心得
通過(guò)該課題的設(shè)計(jì)掌握以AT89S51為核心的單片機(jī)系統(tǒng)的軟硬件開(kāi)發(fā)過(guò)程和基本信號(hào)的產(chǎn)生原理、測(cè)量及誤差分析方法,同時(shí)掌握函數(shù)發(fā)生器系統(tǒng)的設(shè)計(jì)流程;培養(yǎng)我們綜合運(yùn)用所學(xué)的基本知識(shí)、基本理論和基本技能的能力,學(xué)習(xí)解決一般工程技術(shù)和有關(guān)專(zhuān)業(yè)問(wèn)題的能力,學(xué)習(xí)工程設(shè)計(jì)和科學(xué)研究的基本方法,完成對(duì)所學(xué)知識(shí)的綜合訓(xùn)練。
-
原理圖
+關(guān)注
關(guān)注
1300文章
6358瀏覽量
234877 -
單片機(jī)
+關(guān)注
關(guān)注
6042文章
44617瀏覽量
637520 -
C語(yǔ)言
+關(guān)注
關(guān)注
180文章
7614瀏覽量
137420 -
低頻信號(hào)發(fā)生器
+關(guān)注
關(guān)注
1文章
11瀏覽量
11182
原文標(biāo)題:低頻信號(hào)發(fā)生器
文章出處:【微信號(hào):A1411464185,微信公眾號(hào):multisim】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論