您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 基于51单片机的信号发生器
四川师范大学成都学院电子工程系课程设计报告1前言波形发生器是能够产生大量的标准信号和用户定义信号,并保证高精度、高稳定性、可重复性和易操作性的电子仪器。函数波形发生器具有连续的相位变换、和频率稳定性等优点,不仅可以模拟各种复杂信号,还可对频率、幅值、相移、波形进行动态、及时的控制,并能够与其它仪器进行通讯,组成自动测试系统,因此被广泛用于自动控制系统、震动激励、通讯和仪器仪表领域。在70年代前,信号发生器主要有两类:正弦波和脉冲波,而函数发生器介于两类之间,能够提供正弦波、余弦波、方波、三角波、上弦波等几种常用标准波形,产生其它波形时,需要采用较复杂的电路和机电结合的方法。这个时期的波形发生器多采用模拟电子技术,而且模拟器件构成的电路存在着尺寸大、价格贵、功耗大等缺点,并且要产生较为复杂的信号波形,则电路结构非常复杂。同时,主要表现为两个突出问题,一是通过电位器的调节来实现输出频率的调节,因此很难将频率调到某一固定值;二是脉冲的占空比不可调节。在70年代后,微处理器的出现,可以利用处理器、A/D/和D/A,硬件和软件使波形发生器的功能扩大,产生更加复杂的波形。这时期的波形发生器多以软件为主,实质是采用微处理器对DAC的程序控制,就可以得到各种简单波形。90年代末,出现几种真正高性能、高价格的函数发生器、但是HP公司推出了型号为HP770S的信号模拟装置系统,它由HP8770A任意波形数字化和HP1776A波形发生软件组成。HP8770A实际上也只能产生8中波形,而且价格昂贵。不久以后,Analogic公司推出了型号为Data-2020的多波形合成器,Lecroy公司生产的型号为9100的任意波形发生器等。到了二十一世纪,随着集成电路技术的高速发展,出现了多种工作频率可过GHz的DDS芯片,同时也推动了函数波形发生器的发展,2003年,Agilent的产品33220A能够产生17种波形,最高频率可达到20M,2005年的产品N6030A能够产生高达500MHz的频率,采样的频率可达1.25GHz。由上面的产品可以看出,函数波形发生器发展很快近几年来,国际上波形发生器技术发展主要体现在以下几个方面:(1)过去由于频率很低应用的范围比较狭小,输出波形频率的提高,使得波形发生器能应用于越来越广的领域。波形发生器软件的开发正使波形数据的输入变得四川师范大学成都学院电子工程系课程设计报告2更加方便和容易。波形发生器通常允许用一系列的点、直线和固定的函数段把波形数据存入存储器。同时可以利用一种强有力的数学方程输入方式,复杂的波形可以由几个比较简单的公式复合成v=f(t)形式的波形方程的数学表达式产生。从而促进了函数波形发生器向任意波形发生器的发展,各种计算机语言的飞速发展也对任意波形发生器软件技术起到了推动作用。目前可以利用可视化编程语言(如VisualBasic,VisualC等等)编写任意波形发生器的软面板,这样允许从计算机显示屏上输入任意波形,来实现波形的输入。(2)与VXI资源结合。目前,波形发生器由独立的台式仪器和适用于个人计算机的插卡以及新近开发的VXI模块。由于VXI总线的逐渐成熟和对测量仪器的高要求,在很多领域需要使用VXI系统测量产生复杂的波形,VXI的系统资源提供了明显的优越性,但由于开发VXI模块的周期长,而且需要专门的VXI机箱的配套使用,使得波形发生器VXI模块仅限于航空、军事及国防等大型领域。在民用方面,VXI模块远远不如台式仪器更为方便。(3)随着信息技术蓬勃发展,台式仪器在走了一段下坡路之后,又重新繁荣起来。不过现在新的台式仪器的形态,和几年前的己有很大的不同。这些新一代台式仪器具有多种特性,可以执行多种功能。而且外形尺寸与价格,都比过去的类似产品减少了一半。以下给出了几种波形发生器的性能指标,从中可以看出当今世界上重要电子仪器生产商在波形发生器上的研制水平。公司TektronixTektronix横河电机Wavetek型号AG320AWG710AG5100295最高采用频率16MS/s4GMS/s1GMS/s50MS/s通道数2224垂直分辨率12bit8bit8bit12bit存储容量64K8M8M64K输出电压10V2.5V2V15V四川师范大学成都学院电子工程系课程设计报告31.整体设计思路1.1设计思路课设需要各个波形的基本输出。如输出正弦波、方波、锯齿波、三角波。这些波形的实现的具体步骤:(1)正弦波:通过手动的方法计算出输出各点的电压值,然后在编写程序时以数组的方式给出。当需要时,只要按照顺序进行输出即可。这种方法比在软件中计算速度快且曲线的形状修改灵活。在本设计中将一个周期(360度)分为256个点,则每两个点之间的间隔为1.4度,然后计算出每个点电压对应的数字量,形成数组。只要反复输出这组数据到DAC0832,就可以在系统输出端得到想要的正弦波。(2)方波:按照设定的周期值将输出的电压改变即可。(3)锯齿波:也使用查表法。将三角波的一个周期(360度)分为256个点,相邻点等差,生成数组。反复输出前128个数据到DAC0832,就可以在系统输出端得到想要的锯齿波。(4)三角波:将(3)中的数组256个数据全部输出到DAC0832,循环,就可以在系统输出端得到想要的三角波。1.2元件选型单片机AT89S52系统,DAC0832一片,PC机一台,运算放大器LM324。1.3功能原理图通过P1口和轻触开关S1-S4相连接来切换波形输出。用P0口控制数码管静态显示波形代号。用P2口向DAC0832发送数据,经DAC0832转换后,再把信号放大,最后接到示波器上显示。四川师范大学成都学院电子工程系课程设计报告4图1功能原理图2.单元模块设计2.1按键电路通过P1.0-P1.3口和轻触开关S1-S4相连接来切换波形输出(如按S1键输出正弦波,按S2键产生方波,按S3键产生锯齿波,按S4键产生三角波),P1.4、P1.5接方波占空比调节开关,P1.6、P1.7接波形频率调节开关,如图2所示。图2按键电路2.2显示电路通过P0口控制数码管静态显示波形代号,如图3所示。波形输出P1P2P0AT89S52键盘控制数码管显示DAC0832运放四川师范大学成都学院电子工程系课程设计报告5图3显示电路图2.3DAC0832连接和幅值调节电路用P2口向DAC0832发送数据,经DAC0832转换后,再把信号放大,最后接到示波器上显示如图4所示。图4DAC0832连接图和幅值调节电路2.4滤波电路波形的幅值调节,使用硬件方法实现,如图4中DAC0832的VREF口接一滑动变阻器,通过改变DA转换的参考电压来实现波形幅值的改变。图5滤波电路图四川师范大学成都学院电子工程系课程设计报告62.5总电路图将以上电路图组建起来,就得到总电路图,如图5所示。图6总电路图四川师范大学成都学院电子工程系课程设计报告73.软件设计3.1主程序流程图图7主程序流程图3.2按键部分流程图开始switch(s)初始化变量和端口1234三角波锯齿波方波正弦波扫描按键四川师范大学成都学院电子工程系课程设计报告8图8按键部分流程图3.3正弦波的产生过程通过手动的方法计算出输出各点的电压值,形成数组sintab[256],反复顺序输出这组数据到DAC0832,就在系统输出端得到正弦波。3.4方波的产生过程按照设定的周期值改变输出的电压(分别向DAC0832输0x00或0xff)。3.5锯齿波的产生过程将一个周期(360度)分为128个点,递增,生成数组jctab[128],反复顺序输出这组数据到DAC0832,就在系统输出端得到锯齿波。NNNNNNYYYYYYYNY开始s1=0数码管显示1,s=1,初始化n、ps2=0s3=0s4=0s5=0s6=0s7=0s8=0数码管显示2,s=2,初始化n、p数码管显示3,s=3,初始化n、p数码管显示4,s=4,初始化n、p方波占空比增加方波占空比减小波形频率增加波形频率减小结束四川师范大学成都学院电子工程系课程设计报告93.6三角波的产生过程将三角波的一个周期(360度)分为256个点,相邻点等差,前128个点递增,后128个点递减,生成数组sjtab[256],反复顺序输出这组数据到DAC0832,就在系统输出端得到三角波。3.7通过开关实现波形切换和调频轻触开关S1-S4切换波形输出(S1键输出正弦波,按S2键产生方波,按S3键产生锯齿波,按S4键产生三角波),S5、S6调节方波占空比,S7、S8调节波形频率。3.8程序代码#includereg52.h#includeabsacc.h#defineucharunsignedchar#defineuintunsignedintsbits1=P1^0;sbits2=P1^1;sbits3=P1^2;sbits4=P1^3;sbits5=P1^4;sbits6=P1^5;sbits7=P1^6;sbits8=P1^7;uintd1,d2;uints,p;uintn;ucharcodesintab[256]={0x80,0x83,0x86,0x89,0x8d,0x90,0x93,0x96,0x99,0x9c,0x9f,0xa2,0xa5,0xa8,0xab,0xae,0xb1,0xb4,0xb7,0xba,0xbc,0xbf,0xc2,0xc5,0xc7,0xca,0xcc,0xcf,0xd1,0xd4,0xd6,0xd8,0xda,0xdd,0xdf,0xe1,0xe3,0xe5,0xe7,0xe9,0xea,0xec,0xee,0xef,0xf1,0xf2,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6,0xf5,0xf4,0xf2,0xf1,0xef,0xee,0xec,0xea,0xe9,0xe7,0xe5,0xe3,0xe1,0xde,0xdd,0xda,0xd8,0xd6,0xd4,0xd1,0xcf,0xcc,0xca,0xc7,0xc5,0xc2,0xbf,0xbc,0xba,0xb7,0xb4,0xb1,0xae,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x99,0x96,0x93,0x90,0x8d,0x89,0x86,0x83,0x80,0x80,0x7c,0x79,0x76,0x72,0x6f,0x6c,0x69,0x66,0x63,0x60,0x5d,0x5a,0x57,0x55,0x51,0x4e,0x4c,0x48,0x45,0x43,0x40,0x3d,0x3a,0x38,0x35,0x33,0x30,0x2e,0x2b,0x29,0x27,0x25,0x22,0x20,0x1e,0x1c,0x1a,0x18,0x16,0x15,0x13,0x11,0x10,0x0e,0x0d,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0d,0x0e,0x10,0x11,0x13,0x15,0x16,0x18,0x1a,0x1c,0x1e,0x20,0x22,0x25,0x27,0x29,0x2b,0x2e,0x30,0x33,0x35,0x38,0x3a,0x3d,0x40,0x43,0x45,0x48,0x4c,0x4e,0x51,0x55,0x57,0x5a,0x5d,0x60,0x63,0x
本文标题:基于51单片机的信号发生器
链接地址:https://www.777doc.com/doc-6748912 .html