avr波形发生器._第1页
avr波形发生器._第2页
avr波形发生器._第3页
avr波形发生器._第4页
avr波形发生器._第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、本设计从功能简单、调整方便、功能完备出发,采用Atmega16单片机。具有LED 数字参数显示,矩阵键盘输入、小键盘微调 / 粗调频率值以及占空比,可实现输 出方波、正弦波、三角波,频率可调整,稳幅输出,频率范围0.1Hz- 3Mhz ,可粗调和细调频率值,输出波形清晰而稳定。一、方案设计1 、波形生成方案本设计的核心问题是信号的程控问题, 其中包括信号频率、 信号种类的程控。 在 设计过程中,我们综合考虑了两种实现方案:方案一:程控PWM结合D/A转换。这种方案可以实现三种基本波形。 具体方案如 下:首先通过AVR的相频可调PWM模式产生所需要频率的方波,通过低通滤 波 电路可以得到频率可调

2、的三角波以及正弦波。其优点是工作频率可以做得很高, 频率范围可以做得很宽, 也可以得到很高的频率分辨率; 缺点是使用的滤波电路 要 求通带可变。方案二:直接数字频率合成(DDFS 0 DDF战术是60年代末出现的第三代频率 合成技术,以 Nyquist 时域中进行频率合成,它可以快速转换频率, 频率、相 位、幅度都可以实现程控,便于单片机控制0缺点是该技术已经比较成熟,而且 有集成电路可以使用,并且如果直接使用单片机实现则很难达到高频率,另 一 方面成本太高0综合考虑各种因素,选择第一种方案02、显示界面方案这是决定系统使用是否方便的关键0我们采用的方案是用LED显示频率,信号输出到示波器上显

3、示波形。3、输入方式方案 本系统需要用户选择预设波形,调整波形0这对输入方式提出了较高的要求0 我们采用的方式是大键盘输入方波的频率,小键盘上实现对各种波的频率调整0二、系统设计1 、总体设计(1) 系统框图采用RC滤波电路,从AVR的PD4端口读出波形数据,经过 D/A模块说明 波形产生电路: 转换得到模拟的波形。矩阵键盘模块:4X4矩阵键盘按下后,引发INTO中断,AVR读取键值并做出相 应反应。此方案采用中断,实时性好。粗调/微调模块:;小键盘按下后,引发INT1软中断,可粗调/微调频率值、占 空比,以及调整档位值。显示模块:米用LED显示频率、占空比、档位值等。2、软件系统 流程图(2

4、) 方波发生程序本程序可产生频率相位占空比可调的方波, 频率可调得正弦波和频率可调的三角 波,其中方波部分是另外两部分的基础,调节最精细,功能最全面,程序最复杂。 方波部分采用Time1相频可调的PWM模式,采用7.3738M的外部晶振。输出方波频率公式7372800f =2迦 X0CRLA其中0CR1A范围为0-65535, N为分频值可取1, 8, 64, 256, 1024。对OCR1A勺调节采用外部中断INT1,由于它的数值比较大我们把它分为100 档, 对于前35档每档有656个微调值,对于以后的档位每当有655个微 调值。按住OCR1A勺档位加后OCR1不断自加直到100,按住OC

5、R1A勺档位减后它会自减直 到0,对于OCR1的微调采用同样的思路。根据公式 可算出方波的频率范围为(0占空比A .OCR 磁 *1top 血 0 占空比公式?OCRIAMOCR1 的取值范围为0OCR1A同样我们将OCR1分为100档和相应的微调值, 其功能与效果与OCR1A勺调节相同。在频率模式与占空比模式之间转换时我们引入了指示位一一全局变量 freq_occup,当freq_occup=0时为频率调节模式,当为1为占空比模式.(3) 正弦波发生程序C-原理:上图所示为一个周期内的方波形,其中C代表占空比。不妨将电压看作 x的函数,表示为v(x)=1x1 <

6、; 1) |x| < C)将它傅里叶展开为卩(X)= 5C +从公式中可以看出电压的第一项与占空比成正比,因此只要采用滤波电路滤去其 他的交变信号,就可以通过调节占空比来调节输出的电压。首先按照下面的公式建立一个正弦波样本表,样本表将一个正弦波的1/4周期分 为90个点:const unsigned char sin = 0x0, 0x2, 0x4, 0x6, 0x8, Oxb, Oxd, Oxf, 0x11,0x13, 0x16, 0x18, 0x1a, 0x1c, 0x1e, 0x20, 0x23, 0x25, 0x27, 0x29, 0x2b,0x2d, 0x2f, 0x31, 0

7、x33,0x35, 0x37, 0x39,0x3b,0x3d,0x3f, 0x41,0x43,0x45, 0x47,0x48, 0x4a,0x4c, 0x4e, 0x4f,0x51,0x53,0x54, 0x56,0x58,0x59, 0x5b,0x5c, 0x5e,0x5f, 0x61,0x62,0x64,0x65,0x66, 0x68,0x69,0x6a, 0x6b,0x6c, 0x6d,0x6f, 0x70, 0x71,0x72,0x73,0x74, 0x74,0x75,0x76, 0x77, 0x78, 0x78, 0x79, 0x7a, 0x7a, 0x7b, 0x7b, 0x7c,

8、 0x7c, 0x7d,0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e公式如下:sinn=128 x sin(n O)根据此样品表来调节OCR1B从而调节了占空比:OCR1B= 127+si nn 此时OCR1A勺值为255在一个正弦波周期中采用360个样点,根据正弦函数的变化规律依次取占空比的 合适的值。在正弦波波形发生时中周期性的取这 360个样点。其中每个样点保持的时间为 PX (256-TCNT0)输出占空比按正弦规律变化的方波,经过滤波电路即可得到正弦 波。通过以上分析可得到正弦波的频率公式360 X (2S6 - TCNTO

9、) x P从公式中可以看出,可以通过调节 P和TCNT(的值来改变正弦波的频率。其中 P 取值范围(1-10),TCNT0的范围为(0-255)(4)三角波发生程序三角波的原理与正弦波相同,不过取样时占空比按线性规律变化, 在程序正是通 过对占空比取样值加一实现的。其频率公式:73728007372SOOFe* 科'盂 3fiaxC2S6-TCNT0)xP(5)人机接口部分a)输入:包括4X4键盘和四个独立按键组成。大键盘:采用INTO中断下降沿触发,在中断中进行行列反转键盘扫描,并将扫描到的键 值存入频率数组,同时赋给 LED显示数组中。功能:完成方波频率的输入,以及波形输出模式和频

10、率占空比模式的转换。其中将PD3设为输出。在主函数中不断检测四个键中是否有健按下, 在程序中令 P 0RTD3&=-0x1即完成软中断的设置。在中断中对相1234 为 123X104。会自动转化为与输入频率最接近的可输出值,并显示到数码管上输入的频率前三位是频率的有效值,最后一位是数量级(如 输入频率后, 独立按键: 采用软中断, 旦有键按下,应的参数进行调整,将调整值存入对应的数组中,然后将这些数组中的数赋给 LED显示数组。功能:在频率模式下可以实现对频率参数 OCR1A勺100档位和对应的微调档位的 调整,从而改变频率。在占空比模式下可以实现对占空比参数OCR1B勺100档位和对

11、应的微调档位的调整,从而改变占空比。在正弦和三角波模式下,可以实 现对P和TCNT0的调整,从而改变正弦波频率。b)显示:4位7段数码管没有键按下或者只从大键盘输入时在主函数中对 LED进行动态扫描。在按下四位 独立按键时,由于INT1中断时间较长。在INT1中断中也会对LED进行动态扫描。 在中断中和正常模式下分别将要显示的数存入不同的数组中。4、系统设计图一 £"fpjwriwoe AMtrte*M4£>jbmciiwan *(Vl «uw>4 vnvwi 州STdz c = ianr显示*s块Qr 事'rII 'f Jj

12、sa_m _izzs_<斗 CR-1j-5 o唱邀r®调畫尿J波形发生器电路原理图二Tp 广心“ r Ir-=& MiJ.JA&L*r" 1p科=LTr 厂I1tf*=LT4 -7 i ,j=501 fEa中LB_三、系统调试1、软件调试本系统的程序较长,软件调试较复杂。除了语法差错和逻辑差错外,当确认程序没问题时,将程序下载到单片机,进行 在线仿真。具体采取的是自下到上、从小到大的调试方法,即单独调试好每一个模块,然后 再连接成一个完整的系统调试。2、软硬联调我们选用了三组R/C值进行波形的输出检测,R/C值如下:参数 组别RC时间常数RC第一组10

13、 K Q100 nF1 ms第二组10 K Q10 nF100 卩 s第三组100 K Q100 nF10 ms第二组输出的三角波失真较大,拐弯处太圆滑; 第三组输出的正弦波不如第一组清晰; 综上,我们选择了第一组的参数。四、系统测试1、测试仪器二踪示波器:XJ4318函数信号发生及检测器:SG16452、测试数据 方波频率范围测试预置频率/Hz转换频率/Hz输出频率/Hz0.069.9 X 10-20.10.1|1.0 X 10-10.1p.32.9 X 10-10.30.98.9 X 10-10.911.01.033.03.09.59.59.510.71.07 X 1010.7303.00

14、 X 1030.090.49.04 X 1090.41001.00 X 102100.01301.30 X 102130.11901.90 X 102190.03333.33 X 102330.09999.99 X 102999.01K1.0 X 10310003.45K3.45 X 10334529.87K9.88 X 103988310.7K1.07 X 10410716K30K2.99 X 10429.971K90.8K9.21 X 10492.159K100K9.96 X 10499.631K321K3.35 X 105335.123K911K9.21 X 105921.589K1M9

15、.21 X 105921.589K1.23M1.22 X 1061228.78K2M1.84 X 1061843.18K2.5M3.68 X 106超量程3M3.68 X 106超量程3.6M3.68 X 106超量程正弦波频率测试r1. 1412. 920. 330. 7404574. 9预置频率/Hz输出频率/Hz1152040. 141. 54445三角波频率测试预置频率/Hz1. 1412. 920. 330. 7404574. 9输出频率/Hz1152040. 141. 54445五、结论由表可以看出,在频率稳定度方面,方波在 0.1Hz100KHZ频率范围内非常好, 在大于1MHz

16、频率范围内较大误差;其原因在于高频附近,步进值较大,自动转 换的频率值与输入值可能相差较大。正弦波以及三角波模式下在示波器中可看到清晰、标准的波形,其频率也可通过键盘进行调节,由这两种波形产生的原理知,频率不能由频率发生器进行检测, 由示 波器进行目测试,可以初步看出正弦波在输出在频率方面不是十分精确, 误差较大。原因在于AVR在输出这两种波形时,需要不断调节占空比,所以数码 管的扫描 显示干扰了此项要求,导致误差较大。这个问题可以通过另外加一片 AVR来解决,考虑到成本问题,暂未采用。现将我们设计的系统的指标及系统实际性能列表如下:方波正弦波三角波频率范围0.1Hz 100KHz2Hz 40

17、Hz2Hz 40Hz频率步进”:皿扩+1 Qcai霑+斗误差大,略误差大,略占空比范围01/占空比步进缺1口.曰* + 1 ocRia宀t占空比步进pCRi-A*o己養i/六、问题总结1. 显示问题:在动态显示中出现重影.原因:由于动态扫描时相邻LED亮灭时间过短,由于视觉暂留,会产生重影. 解决方案:在显示一位后加一个灭的延迟2. 同时利用多个中断时,某个中断可用而其他中断无效,或只能中断中断一次. 原因:某个中断被连续触发,将其他中断被屏蔽.解决方案:更改触发方式3. 强制类型转换后公式计算的数值严重不准.原因:强制类型转换舍掉小数问题若转换后的数乘一个比较大的数就会产生很 大的误差时.解决方案:注意小数点后面的数字的取舍问题.可以在强制类型转换后加一个四 舍五入的功能以减少误差.4. 全局变量初值未赋开机后读不到预期的效果 原因?:初值未赋会使开机时状态不稳解决方案:根据想要的效果合理赋初值.5. 十六进制和十进制比较大小时出错 .原因? : 不同进制的数除零之外不能比较大小 .解决方案 : 将两个数转换为同一进制后在比较大小 .6. 在利用正确的公式进行计算时达不到正确的结果 .原因? : 在计算过程中某种类型的数字溢出而使结果错误解决方案 ? : 分析公式计算的过程找到溢出的数值选取正确的类型防止变量溢出7. 在设

温馨提示

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

评论

0/150

提交评论