简易波形发生器设计 - 图文(2)

2019-04-02 14:50

黑龙江科技学院 计算机科学与技术2007级控制01班 周伟

图1 硬件连线图

3

黑龙江科技学院 计算机科学与技术2007级控制01班 周伟

3详细分析

根据硬件设计,系统用按钮切换波形,可考虑采用查询或中断方式进行,这两种方式比较起来后者效率更高。若采用查询方式检测按钮,则系统需花费时间去定期检测P3.3口管脚电位,这样就增加了软件开销,降低了效率,因此采用中断方式编程比较理想。其编程思想是安排一个存储单元存放按钮次数,初值设为0,对应于某种波形,每中断一次数据加1,以对应另一种波形。因此中断程序的任务仅仅是通过改变按钮的次数来存放单元的数据而已,波形转换在主程序中进行。各种波形的输出频率是通过改变两次输出数据之间的时间间隔来实现的。具体做法是首先对模拟量进行采样,得到相应的A/D值用这个A/D值作为延时基数进行延时,这样输出波形的频率就和模拟电压联系起来,只要调整电位器旋钮改变输入电压模拟量,就可以改变波形频率。主程序框图和中断程序框图如图2所示。

读标志单元 延时去抖 调整标志 调整标志 =0 =1 =2 =3 N 正弦波 三角波 方波 阶梯波 P3.2=1 Y 恢复现场 读A/D转换值 根据A/D值延时 中断返回 图2 主程序及中断程序框图

下面分析各种波形的产生原理。 1.正弦波

正弦波可用两种方法,即计算法和查表法产生。计算法要用浮点运算,复杂且耗时太长,一般不采用。查表法是事先将正弦波的数据计算出来,列表放在程序中,运行时直接调取数据。用公式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,254,255

4

开始 初始化 中断入口 保护现场 黑龙江科技学院 计算机科学与技术2007级控制01班 周伟

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,128 2.三角波

三角波的产生较为简单,因为它的上升沿遵循数据加1的规律。下降沿则按数据减1的规律产生。所以在波形的上升沿只要判断上一次的数据是否为最大值FFH,如果不是最大值,将原数据加1输出;而在波形的下降沿只要判断上一次数据是否为0,如果不是0,则将原数据减1即可,当数据为FFH或0时,应当及时调整升降标志,以便下一次能输出正确的数据。根据上述编程思想绘制的三角波程序框图如图3所示。

3.方波

方波只有两个值,可以采用两个极端值0和FFH,这样只要将缓冲区中的数取出求反后输出即可。设计者可据此直接写出方波程序。

4.阶梯波

阶梯波也是一种很有用的波形,例如,在测晶体管的特性参数时就要用到它。阶梯的设计一般根据实际需要,在这里假定设置五级阶梯,可以将缓冲区中的数据增加到50后输出,如初值为0,则输出的数就是0、50、100、150、200及250这六个数。

为了将这六个数顺次输出,可以采用列表或将原数加50再判断这两种方式。采用后者输出数据的阶梯波程序框图如图4所示。

5.频率控制

每种波形输出一个数据后程序都转到程序控制部分,各种波形的频率就是通过这一部分控制的。它的控制原理是首先读出0809的A/D转换值,并以此为基值延时,延时完毕后再启动0809开始采样模拟电压,为下一次读数做准备。当然,也可以隔几秒钟进行一次A/D转换,这样要用到定时器中断。若直接将A/D转换值作为延时基数去延时,则频率的变换范围有限。若将A/D转换值乘以一个倍率再去延时,虽然可扩大频率的变化范围,但波形的失真会明显增大。

读取数据缓冲单元

N 是上升沿? 输出缓冲区数据 Y 数据输出后—1 数据输出后+1 数据=250? N Y N 数据=OFFH? 数据=00H? 缓冲区清零 数据+50 Y 置下降标志 Y 置上升标志 保存数据 跳出 5

转频率控制 黑龙江科技学院 计算机科学与技术2007级控制01班 周伟

图3 三角波程序框图 图4 阶梯波程序框图 4程序的调试与运行

完成硬件制作后,可将整个系统分成几个部分,先编出四种波形的程序,单独调试,成功后再加入频率调节部分。采用图2-2-1所示参数,正弦波的最高输出频率可大于200HZ,方波的最高输出频率在4KHZ左右,如果12MHZ晶振,则各种波形的最高输出频率可提高1倍。另外,按钮的抗干扰问题在编程时要加以考虑,由于图2-2-1所示电路中没有加硬件消除按钮抖动电路,所以必然要增加软件开销。一般开关、按钮的抖动在几毫秒时间以内,因而用延时程序避开10ms左右的时间即可防止按一次按钮产生多次中断的现象。为了节省硬件,0809的转换完成信号端EOC直接接到了单片机外部中断0输入端P3.2上。由于中断逻辑不匹配,因而不能用中断的方式读取A/D转换结果。最后,在程序统调时要借助调试工具采用单步和断点及连续运行的方式反复调试程序,迅速找出问题所在,及时修改,直至程序运行成功为止。

结论

通过这次毕业设计,使我得到了一次用专业知识、专业技能分析和解决问题全面系统的锻炼。使我在单片机的基本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧(特别是汇编语言)的掌握方面都能向前迈了一大步,为日后成为合格的应用型人才打下良好的基础。正所谓纸上得来终觉浅,绝知此事要躬行。

课程设计体会

两周的课程设计,我加深了对单片机的了解与应用,学会了如何把理论应用于实际,如何用我们所学的知识去解决正常生活中的问题。在当今科技发展如此迅速的时代,计算机已经成为了必不可少的工具,它无处不在,学习掌握计算机的技能已成为一项必修课,想要在这个社会有一立足之处,就必须学好计算机,能准确的掌握计算机知识,并熟练的贯彻到生活之中。

附录 程序清单:

;0809地址7000H,0832地址8000H, 0H位=0三角波上升沿标志

org 0000 ajmp main org 0013h

6

黑龙江科技学院 计算机科学与技术2007级控制01班 周伟

ljmp int_x1 org 0030h main:

mov sp,#60h ;初始化 mov a,#00

mov dptr,#7000h ;启动0809 movx @dptr,a mov ie,84h clr it0

clr 0 mov r4,#0

mov 10h,#0 mov 11h,#0 mov 12h,#0 mov 13h,#0 sign: mov a,r4

rl a

mov dptr,#base jmp @a+dptr

base: ajmp wave1 ajmp wave2 ajmp wave3 ajmp wave4 wave1:

mov dptr,#tab

mov a,10h movc a,@a+dptr mov dptr,#8000h movx @dptr,a mov a,10h

cjne a,#63,w11

mov 10h,#0 ajmp w12

w11: inc a mov 10h,a w12:

ajmp zad

wave2: mov a,11h jb 0,down

mov dptr,#8000h movx @dptr,a

;上升标志 ;正弦波数据指针 ;三角波初值 ;方波初值 ;梯形波初值 ;转正弦波程序 ;转三角波程序

;转方波程序 ;转梯形波程序 ;取数据指针 ;查表

;0832地址 ;输出到0832 ;指针回0 ;调整指针

;正弦波程序结束 ;三角波程序

7


简易波形发生器设计 - 图文(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2.1.5平面直角坐标系中的距离公式(北师大必修2)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: