简易波形发生器设计

上传人:无*** 文档编号:160990856 上传时间:2022-10-12 格式:DOC 页数:18 大小:286KB
收藏 版权申诉 举报 下载
简易波形发生器设计_第1页
第1页 / 共18页
简易波形发生器设计_第2页
第2页 / 共18页
简易波形发生器设计_第3页
第3页 / 共18页
资源描述:

《简易波形发生器设计》由会员分享,可在线阅读,更多相关《简易波形发生器设计(18页珍藏版)》请在装配图网上搜索。

1、2022-10-3黑龙江科技学院 计算机科学与技术2007级控制01班 周伟15设计题目:简易波形发生器设计设计目的:用单片机产生各种波形及改变波形频率设计目标:设计一个简易波形发生器,要求该系统能通过开关或按钮有选择性的输出正弦波、三角波、方波、及阶梯波等四种波形,并且这四种波形的频率均可通过输入电位器在一定范围内调节任务下达时间:2010年3月1日任务完成时间:2010年3月11日指导教师评语: 年 月 日设计成绩:摘要:单片机主要面对的是测控对象,突出的是控制功能,所以它从功能和形态上来说都是应测控领域应用的要求而诞生的。随着单片机技术的发展,它在芯片内部集成了许多面对测控对象的接口电路

2、,如ADC、DAC、高速I/O接口、脉冲宽度调制器(Pulse Width Modulator, PWM)、监视定时器(Watch Dog Timer,WDT)等。这些对外电路及外设接口已经突破了微型计算机传统的体系结构,所以单片机也称为微控制器(Micro Controller)。关键词:中央处理器;随机存储器;只读存储器黑龙江科技学院 计算机科学与技术2007级控制01班 周伟黑龙江科技学院 计算机科学与技术2007级控制01班 周伟引言:一般函数发生器是由硬件组成的,它的输出频率范围宽,各项指标高,性能优良,因而在对输出波形要求较高的地方被广泛应用,这种仪器的缺点是电路复杂,成本高,输出

3、波形种类不多,不够灵活。在对波形指标要求不高,频率要求较低的场合,可以用单片机构成一个波形发生器。产生所需要的各种波形,这样的函数发生器靠软件产生各种波形,小巧灵活,便于修改,且成本低廉,容易实现。1设计概述1.1 课程设计的目的通过对本课题的设计,掌握A/D,D/A转换的应用,用单片机产生各种波形的方法及改变波形频率的方法。熟悉单片机应用系统的设计以及软硬件的调试。单片机本身并没有开发能力,必须借助开发工具即硬件开发环境才能进行开发。单片机的硬件开发环境有PC机、编程器和仿真机等。1.2 设计的内容、要求设计一个简易波形发生器,要求该系统能通过开关或按钮有选择性的输出正弦波、三角波、方波、及

4、阶梯波等四种波形,并且这四种波形的频率均可通过输入电位器在一定范围内调节。对于四种波形的切换,用两个开关的四种状态来表示(或用按钮)。选用常用的A/D转换芯片0809来实现模拟量的输入。D/A转换器选用0832来输出波形。2概要分析2.1 方案论证 一般函数发生器是由硬件组成的,它的输出频率范围宽,各项指标高,性能优良,因而在对输出波形要求较高的地方被广泛应用,这种仪器的缺点是电路复杂,成本高,输出波形种类不多,不够灵活。在对波形指标要求不高,频率要求较低的场合,可以用单片机构成一个波形发生器。产生所需要的各种波形,这样的函数发生器靠软件产生各种波形,小巧灵活,便于修改,且成本低廉,容易实现。

5、但受单片机工作频率的限制,它所构成的波形发生器的输出频率较低,各项指标也都不太高,只能用于波形要求不高的场合。2.2 硬件设计 根据设计要求,可以考虑四种波形切换,用两个开关的四种状态来实现。需要两根口线,如果用按钮来切换波形就只需要一根I/O线,而且使用也方便一些。另外,波形频率的改变是通过电位器输入电压来实现的,所以需要一个模拟量输入,选用常用的A/D转换器芯片0809可以满足要求。波形输出是通过D/A转换器实现的,可以选用D/A专用芯片0832来完成。这样系统的主要器件就确定了。其系统原理图如图1所示。系统选用6MHZ晶振,如用12MHZ晶振,则输出波形的频率可得到相应提高。A/D转换器

6、芯片的地址按图中所示接线为7000H,采样通道为IN0,三个通道地址选择端ADD-A,ADD-B及ADD-C接在数据线上,也可以接到P2口线上,只是按图所示接线,在启动A/D转换器时,累加器A中应送通道值。当然,按设计要求也可将这三根地址线接地,但这样不利于系统扩展,0809EOC端在A/D转换结束后会产生一个上跳变,将其接到P3.2口,这样当A/D转换结束时可按等待及查询两种方式读取数据,编程较为灵活,若采取中断方式读取结果,从EOC输出的信号应加反相器后再送到P3.2口,以便与单片机的中断逻辑相匹配。分频器74ALS74将1MHZ的地址锁存信号四分频,变为250KHZ脉冲后,提供给0809

7、作为其工作脉冲。D/A转换器芯片DAC0832将单片机输入的数字量转变为电流信号并以差分方式送给运算放大器LM324,后者将其变为电压信号输出。若要得到正负电压,则应该为运算放大器提供正负电源。按途中所示,接线0832地址为8000H。图1 硬件连线图3详细分析 中断入口开始根据硬件设计,系统用按钮切换波形,可考虑采用查询或中断方式进行,这两种方式比较起来后者效率更高。若采用查询方式检测按钮,则系统需花费时间去定期检测P3.3口管脚电位,这样就增加了软件开销,降低了效率,因此采用中断方式编程比较理想。其编程思想是安排一个存储单元存放按钮次数,初值设为0,对应于某种波形,每中断一次数据加1,以对

8、应另一种波形。因此中断程序的任务仅仅是通过改变按钮的次数来存放单元的数据而已,波形转换在主程序中进行。各种波形的输出频率是通过改变两次输出数据之间的时间间隔来实现的。具体做法是首先对模拟量进行采样,得到相应的A/D值用这个A/D值作为延时基数进行延时,这样输出波形的频率就和模拟电压联系起来,只要调整电位器旋钮改变输入电压模拟量,就可以改变波形频率。主程序框图和中断程序框图如图2所示。保护现场初始化 延时去抖读标志单元调整标志调整标志N=3=2=0=1P3.2=1正弦波阶梯波方波三角波 Y恢复现场读A/D转换值中断返回根据A/D值延时图2 主程序及中断程序框图下面分析各种波形的产生原理。1.正弦

9、波正弦波可用两种方法,即计算法和查表法产生。计算法要用浮点运算,复杂且耗时太长,一般不采用。查表法是事先将正弦波的数据计算出来,列表放在程序中,运行时直接调取数据。用公式y=127.5+127.5sin(360n/m)可计算出正弦波的输出值,公式中的m为输出点数,n=1,2,m。m值取小一些可以提高波形频率,但波形畸变会增大,增加输出点虽然可以改善波形,但输出频率会降低,实践表明,m取64时,可以得到很好的正弦波。用上式计算的正弦波如下(有舍入误差),将它放在程序中调用即可。TAB:DB 140,152,164,176,188,198,208,218,226,234,240,245,253,2

10、54,255 DB 254,253,245,240,234,226,218,208,198,188,176,164,152,140,128 DB 115,103,90,79,67,57,47,37,29,21,15,10,5,2,1,0 DB 1,2,5,10,15,21,29,37,47,57,67,79,90,103,115,1282.三角波三角波的产生较为简单,因为它的上升沿遵循数据加1的规律。下降沿则按数据减1的规律产生。所以在波形的上升沿只要判断上一次的数据是否为最大值FFH,如果不是最大值,将原数据加1输出;而在波形的下降沿只要判断上一次数据是否为0,如果不是0,则将原数据减1即可

11、,当数据为FFH或0时,应当及时调整升降标志,以便下一次能输出正确的数据。根据上述编程思想绘制的三角波程序框图如图3所示。3.方波方波只有两个值,可以采用两个极端值0和FFH,这样只要将缓冲区中的数取出求反后输出即可。设计者可据此直接写出方波程序。4.阶梯波阶梯波也是一种很有用的波形,例如,在测晶体管的特性参数时就要用到它。阶梯的设计一般根据实际需要,在这里假定设置五级阶梯,可以将缓冲区中的数据增加到50后输出,如初值为0,则输出的数就是0、50、100、150、200及250这六个数。为了将这六个数顺次输出,可以采用列表或将原数加50再判断这两种方式。采用后者输出数据的阶梯波程序框图如图4所

12、示。5.频率控制每种波形输出一个数据后程序都转到程序控制部分,各种波形的频率就是通过这一部分控制的。它的控制原理是首先读出0809的A/D转换值,并以此为基值延时,延时完毕后再启动0809开始采样模拟电压,为下一次读数做准备。当然,也可以隔几秒钟进行一次A/D转换,这样要用到定时器中断。若直接将A/D转换值作为延时基数去延时,则频率的变换范围有限。若将A/D转换值乘以一个倍率再去延时,虽然可扩大频率的变化范围,但波形的失真会明显增大。读取数据缓冲单元N输出缓冲区数据是上升沿?Y数据输出后1数据=250?N数据输出后+1YN数据=00H?数据=OFFH?数据+50缓冲区清零YY置上升标志保存数据

13、置下降标志转频率控制跳出图4 阶梯波程序框图图3 三角波程序框图4程序的调试与运行完成硬件制作后,可将整个系统分成几个部分,先编出四种波形的程序,单独调试,成功后再加入频率调节部分。采用图2-2-1所示参数,正弦波的最高输出频率可大于200HZ,方波的最高输出频率在4KHZ左右,如果12MHZ晶振,则各种波形的最高输出频率可提高1倍。另外,按钮的抗干扰问题在编程时要加以考虑,由于图2-2-1所示电路中没有加硬件消除按钮抖动电路,所以必然要增加软件开销。一般开关、按钮的抖动在几毫秒时间以内,因而用延时程序避开10ms左右的时间即可防止按一次按钮产生多次中断的现象。为了节省硬件,0809的转换完成

14、信号端EOC直接接到了单片机外部中断0输入端P3.2上。由于中断逻辑不匹配,因而不能用中断的方式读取A/D转换结果。最后,在程序统调时要借助调试工具采用单步和断点及连续运行的方式反复调试程序,迅速找出问题所在,及时修改,直至程序运行成功为止。结论通过这次毕业设计,使我得到了一次用专业知识、专业技能分析和解决问题全面系统的锻炼。使我在单片机的基本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧(特别是汇编语言)的掌握方面都能向前迈了一大步,为日后成为合格的应用型人才打下良好的基础。正所谓纸上得来终觉浅,绝知此事要躬行。课程设计体会两周的课程设计,我加深了对单片机的了解与应用,学会了如何把

15、理论应用于实际,如何用我们所学的知识去解决正常生活中的问题。在当今科技发展如此迅速的时代,计算机已经成为了必不可少的工具,它无处不在,学习掌握计算机的技能已成为一项必修课,想要在这个社会有一立足之处,就必须学好计算机,能准确的掌握计算机知识,并熟练的贯彻到生活之中。附录 程序清单: ;0809地址7000H,0832地址8000H, 0H位=0三角波上升沿标志org 0000ajmp mainorg 0013hljmp int_x1org 0030hmain: mov sp,#60h ;初始化mov a,#00mov dptr,#7000h ;启动0809movx dptr,amov ie,8

16、4hclr it0clr 0 ;上升标志mov r4,#0mov 10h,#0 ;正弦波数据指针mov 11h,#0 ;三角波初值mov 12h,#0 ;方波初值mov 13h,#0 ;梯形波初值sign: mov a,r4rl amov dptr,#basejmp a+dptrbase: ajmp wave1 ;转正弦波程序 ajmp wave2 ;转三角波程序ajmp wave3 ;转方波程序 ajmp wave4 ;转梯形波程序wave1:mov dptr,#tabmov a,10h ;取数据指针movc a,a+dptr ;查表mov dptr,#8000h ;0832地址movx d

17、ptr,a ;输出到0832mov a,10h cjne a,#63,w11 mov 10h,#0 ;指针回0ajmp w12w11: inc a ;调整指针mov 10h,a ;正弦波程序结束w12:ajmp zadwave2: ;三角波程序mov a,11hjb 0,downmov dptr,#8000hmovx dptr,ainc amov 11h,acjne a,#0ffh,zadsetb 0ajmp zaddown:mov dptr,#8000hmovx dptr,adec amov 11h,acjne a,#0,zadclr 0ajmp zad ;三角波程序结束wave3: ;方波

18、程序mov dptr,#8000hmov a,12hmovx dptr,acpl amov 12h,aajmp zad ;方波程序结束wave4: ;梯形波程序mov dptr,#8000hmov a,13hmovx dptr,acjne a,#250,w41mov 13h,#0ajmp zadw41: add a,#50mov 13h,aajmp zad ;梯形波程序结束zad: mov dptr,#7000h ;频率控制程序 jnb p3.2 ,$ ;没转换完,等待 movx a,dptr jz skip djnz acc,$ ;根据A/D转换值延时skip: movx dptr,a ;启

19、动0809 ljmp sign ;频率控制程序结束int_x1:push acc ;外部中断1中断子程序 acall delay jb p3.3,wexit mov a,r4 inc a anl a,#3 ;调整 mov r4,a ;保存标志 jnb p3.3,$wexit:pop accreti ;中断子程序结束delay: mov r6,#10 ;10ms延时子程序del: mov r7,#250 djnz r7,$ djnz r6,del rettab: db 140,152,164,176,188,198,208,218,226,234,240,245,253,254,255 db 2

20、54,253,245,240,234,226,218,208,198,188,176,164,152,140,128 db 115,103,90,79,67,57,47,37,29,21,15,10,5,2,1,0 db 1,2,5,10,15,21,29,37,47,57,67,79,90,103,115,128 end参考文献1 马忠梅.单片机的C语言应用程序设计M北京;北京航空肮天大学出版社,1996.2 何立民.单片机应用系统设计M.北京航空航天大学,1996.3 李 华.MCS51系列单片实用接口技术M北京:北京航空航天大学出版社,1993.4 何立民.单片机应用技术选编(一)M北京:北京航空航天大学出版社,1993.5 梁 钥,李爱齐.C语言程序设计实用技术与程序实例M上海:上海科普出版社,1996.6 邬宽明.单片机外围器件实用手册(数据传输接口器件分册)M北京:北京航空航天大学出版社.2002.7 李胡育.单片机原理及接口技术M北京:北京航空航天大学出版社,1994.

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!