三角波发生器Word文档下载推荐.docx
《三角波发生器Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《三角波发生器Word文档下载推荐.docx(15页珍藏版)》请在冰豆网上搜索。
测量误差不大于10%。
【关键词】频率幅值三角波
目录
1.设计任务和要求
1.1设计任务---------------------------------------------------------------------------4
1.2设计指标及要求-----------------------------------------------------------------4
1.3方案论证--------------------------------------------------------------------------4
1.3.1三角波发生部分方案论证
1.3.2三角波测量部分方案论证
2.系统流程图
2.1系统流程---------------------------------------------------------------------------6
3.3测试分析及调试
3.3.1三角波发生部分测试与调试---------------------------------------------7
3.3.2三角波测量部分测试与调试---------------------------------------------8
4.设计制作总结----------------------------------------------------------------------------------10
5.参考文献-----------------------------------------------------------------------------------------10
6.附录-----------------------------------------------------------------------------------------------11
1,设计任务和要求:
1.1设计任务:
(1)设计频率可调的三角波发生器,作为三角波测量仪的信号输入。
(2)设计三角波测量电路,能够完成三角波频率的测量。
(3)设计显示电路,能够完成测量数据的显示。
1.2设计指标及要求:
1.基本要求
2.拓展要求
(1)三角波幅度测试:
要求测试电路完成三角波幅度的测量并显示出测量结果。
(2)三角波斜率测试:
1.3方案论证:
所选用的电路图如下:
电路工作原理分析:
以555电路为中心组成一个多谐振荡器的基本电路,如果不考虑由U1B等元器件组成的附加电路,它就是一个方波发生电路。
方波信号从555电路的3脚输出。
有U1B等组件组成了三角波发生及输出电路,三角波的波形由电容C1的充放电形成,通过U1B做缓冲变换后由发射极输出。
电路中;
R2,Q2组成一个恒流源电路,作为C1的恒流充电电路;
R3,Q1组成另一个恒流源电路,作为C1的恒流放电回路。
两恒流源电路参数相同。
D1作为充放电回路的隔离二极管,可防止充放电过程相互干扰。
电路的工作于三角波的形成过程分析如下:
在接通之初,电容C1上的电压为0V,这时由于接在C1上端的555电路的2,6脚电压小于Vdd/3,它的3脚输出高电平。
同时D1正向导通,由R2,Q2组成的恒流源从Q2源极流出,经D1向C1匀速充电,当充电使C1上端电压达到2Vdd/3时,通过6脚将电路触发而翻转,3脚由高电平转变为低电平。
此时D1反向截止,C1通过Q1放电,当放电时C1上电压达到Vdd/3时,通过3脚将555电路触发翻转,3脚重新变为高电平。
上述过程循环进行,由于C1充放电回路参数相同,C1上的充放电电压呈线性升降,因此在C1的上端就会输出连续的三角波。
这一连续的三角波通过电压跟随器U1A及反向加法器U1B后输出。
该电路同时产生方波信号,由3脚输出。
上述电路的振荡频率可通过下式计算:
F=10.3/[(R2+R3)C1]
通过改变R2和R3的数值,即可改变三角波的频率。
通过改变R7的数值,即可改变加法器的增益,从而改变三角波的幅值。
该电路产生的波形如图所示:
频率测量实际上就是在1s内对脉冲个数进行计数,计数值就是信号频率。
令定时器T0工作在方式1,得到100ms的定时间隔,再进行软件计数10次,形成一个1s的测量闸门信号。
在测量闸门信号期间令计数器T1工作在计数方式1,对脉冲信号的频率计数,计数值存入COUNT、COUNT+1和COUNT+2单元,计数值通过1602液晶显示出来。
同时555产生的方波和三角波频率相同,所以测三角波频率可以转化成测方波频率。
2系统流程图
3.实际制作与调试
3.1制作和测试所用工具和仪器
电烙铁,焊锡,万用表,便扣钱,扒皮钳,切断钳,示波器,直流电压源。
3.2测试仪器
双电源直流信号源(+15V和-15V),示波器,万用表
3.3.1三角波发生部分测试与调试
三角波发生电路图如下:
调试结果如下:
测得数据如下:
频率
峰峰值(V)
1kHz
4.2
5khz
10khz
4.3
1.97kHz
1v
1.98kHz
3V
4.5V
分析数据:
有以上数据可知,当固定电容C1数值,调节电阻R2,R3阻值可实现频率调节,其频率可以在1khz到30KHz的范围内完全满足设计要求;
调节电阻R7的值可以调节三角波幅值,其幅值可以在0V到25V的范围内完全满足设计要求。
3.3.2三角波频率测量部分测试与调试
单片机测量频率原理如图所示:
利用单片机的计数器和定时器即可很方便的利用算法得到外部输入信号的频率。
液晶显示结果如下:
示波器显示数据
单片机测得数据
1KHz
999hz
5KHZ
4.997kHz
3KHz
3kHz
10KHz
9.998kHz
4:
设计制作总结
4.1:
高频失真问题
在测量频率范围的过程中,出现了方波严重失真现象,将输出端加以电容滤波,使得输出波形得到好转。
4.2:
焊接电路
在焊接电路时,应该时刻注意15V、-15V和地三个接线端的连接,防止接错或少接。
注意元件和连线的布局,防止产生元器件的自身干扰。
各接口导线应该用不同颜色导线。
焊接板应用同一标准,方便各个模块统一组装,并制成仪表式封装。
5:
参考文献:
1.黄智伟编.全国大学生电子设计竞赛制作实训.北京航空航天大学出版社,2010.02.
2.黄智伟编.全国大学生电子设计竞赛电路实训.北京航空航天大学出版社,2009.12.
3.黄智伟编.全国大学生电子设计竞赛训练教程.北京航空航天大学出版社,2010.01.
4.胡汉才编.单片机原理及其接口技术.清华大学出版社,1996.
5.电子技术基础(模拟部分)康华光,高等教育出版社
6.肖景和编,555集成电路应用精粹,人民邮电出版社2007.9
7.何希才编.常用集成电路简明速查手册,2006.8.
6,附录:
6.1PCB原理图
三角波发生部分:
三角波测频部分:
限幅电路图
实物图:
三角波测频程序源代码:
#include<
reg51.h>
#defineucharunsignedchar
#defineuintunsignedint
sbiten=P3^0;
sbitrs=P3^1;
ucharcodetable[]="
0123456789"
;
uinta,b,c,d,aa,tt,f;
voiddelay(uintz)//延迟约为1ms****************************************
{
uintx,y;
for(x=z;
x>
0;
x--)
for(y=110;
y>
y--);
}
voidwrite_com(ucharcom)//写命令*********************************************
rs=0;
P2=com;
delay(5);
en=1;
en=0;
voidwrite_data(uchardate)//读命令*********************************
rs=1;
P2=date;
voidinterrupt_init()//单片机中断初始化************************
TMOD=0x51;
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
TH1=0;
TL1=0;
ET0=1;
ET1=1;
TR1=1;
TR0=1;
EA=1;
voidlcd_init()//LCD初始化**********************************
write_com(0x38);
//显示模式设置
write_com(0x0c);
//设置开关及光标q
write_com(0x06);
//同上q
write_com(0x01);
//清屏
write_com(0x80);
//显示的位数
voidmain()
lcd_init();
interrupt_init();
while
(1)
{
if(aa==990)
{
tt=256*TH1+TL1;
f=tt/10000;
write_data(table[f]);
a=tt/1000%10;
write_data(table[a]);
b=tt/100%10;
write_data(table[b]);
c=tt%100/10;
write_data(table[c]);
d=tt%10;
write_data(table[d]);
delay(500);
write_com(0x80);
tt=0;
TR1=0;
TH1=0;
TL1=0;
delay(50);
TR1=1;
aa=0;
}
}
voidtimer()interrupt1
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;
aa++;