函数发生器.docx

上传人:b****6 文档编号:7865348 上传时间:2023-01-26 格式:DOCX 页数:10 大小:417.91KB
下载 相关 举报
函数发生器.docx_第1页
第1页 / 共10页
函数发生器.docx_第2页
第2页 / 共10页
函数发生器.docx_第3页
第3页 / 共10页
函数发生器.docx_第4页
第4页 / 共10页
函数发生器.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

函数发生器.docx

《函数发生器.docx》由会员分享,可在线阅读,更多相关《函数发生器.docx(10页珍藏版)》请在冰豆网上搜索。

函数发生器.docx

函数发生器

函数发生器报告

一.实验内容

用AT89C51为核心来设计的函数发生器,通过DA转换,软件编程和其他硬件辅助来产生不同波形,如三角波,正弦波等。

在一定范围内幅度和频率可随意转换。

二.实验原理

函数发生器一般是指能自动产生正弦波.三角波.方波及锯齿波等电压波形的电路或仪器,而单片机输出的是数字信号,要转换模拟信号,需要使用DA转换器,为了使实验简单,易于实现,本设计采用DAC0808为数模转换。

波形的产生是通过89c51执行某一波形发生程序,向D/A装换器的输出端按一定的规律发生数据,从而在D/A转换点路输出端得到相应的电压波形,在89c51的中断口接1个按键,通过软件编程来选择各种波形,通过调节D/A的模拟电压值范围来改变幅值,另接一按键通过编程改变延时时间来控制波形的频率调节。

三.实验设计图

图1

四.程序框图

图2主程序设计图3中断控制波形模块图4中断延时控制模块

五.软件程序

#include

#defineucharunsignedchar

#defineuintunsignedint

uchard,x1,i=0;

uinty2=1;

ucharcodesin_tab[]={0,0,0,0,1,1,2,3,4,5,6,8,9,11,13,15,17,19,22,24,

27,30,33,36,39,42,46,49,53,56,60,64,68,72,76,80,

84,88,92,97,101,105,110,114,119,123,128,132,136,141,145,150,

154,158,163,167,171,175,179,183,187,191,195,199,202,206,209,213,

216,219,222,225,228,231,233,236,238,240,242,244,246,247,249,250,251,252,253,254,254,255,255,255};

voiddelay(uintp)

{uinty;

while(p--)

{for(y=0;y<10;y++);}

}

voidfangbo()

{uchara;

for(a=0;a<127;a++)

{P0=0XFF;

delay(y2);

}

for(a=0;a<127;a++)

{P0=0;

delay(y2);

}

}

voidjuchi()

{uchara;

for(a=0;a<255;a++)

{P0=a;

delay(y2);

}

}

voidsanjiao()

{uchara;

for(a=0;a<254;a=a+2)

{P0=a;

delay(y2);

}

for(a;a>1;a=a-2)

{P0=a;

delay(y2);

}

}

voidtixing()

{uchara,b;

for(a=0;a<254;a=a+2)

{P0=a;

delay(y2);

}

for(b=0;b<100;b=b+1)

{P0=a;

delay(y2);

}

for(a;a>1;a=a-2)

{P0=a;

delay(y2);

}

for(b=0;b<100;b=b+1)

{P0=a;

delay(y2);

}

}

voidzhengxian()

{uchara;

for(a=0;a<92;a++)

{P0=sin_tab[a];

delay(y2);

}

for(a=a-1;a>0;a--)

{P0=sin_tab[a];

delay(y2);

}

}

voidmain()

{EA=1;

EX0=1;

IT0=1;

EX1=1;

IT1=1;

P0=0;

while

(1)

{

if(d==1)

{P1_0=0;

P1_7=1;

fangbo();

}

if(d==2)

{P1_1=0;

P1_0=1;

juchi();

}

if(d==3)

{P1_1=1;

P1_2=0;

sanjiao();

}

if(d==4)

{P1_2=1;

P1_3=0;

tixing();

}

if(d==5)

{P1_7=0;

P1_3=1;

zhengxian();

}

}

}

voidinto()interrupt0

{EX0=0;

d++;

if(d==6)

d=1;

EX0=1;

}

voidint1()interrupt2

{EX1=0;

y2++;

if(y2==9)

y2=1;

EX1=1;

}

六.元件清单

C51单片机1个

DAC08081个

阻排1个

UA741放大器1个

按键2个

电阻4个

滑动变阻器1个

电解电容30PF1个

七.实验波形

 

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1