基于AVR单片机的高精度频率调节器_第1页
基于AVR单片机的高精度频率调节器_第2页
基于AVR单片机的高精度频率调节器_第3页
基于AVR单片机的高精度频率调节器_第4页
全文预览已结束

下载本文档

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

文档简介

1、    基于AVR单片机的高精度频率调节器摘要:精确的频率控制是现代化工业生产与高精度测试的必备手段。基于AD9850可以发生优于1Hz频率精确度的信号,这对于频率测试来说至关重要。本文介绍的这种频率调节器由Atmel公司的AVR单片机Atmega16L作为控制核心,采用4×4键盘作为频率值输入设备。AVR单片机扫描键盘并且读入用户设定的频率值。随后,AVR单片机计算出AD9850的控制字,并且对AD9850发出指令。本文介绍的频率控制器可以通过“+1Hz”键和“1Hz”键微调频率值。摘要: 精确的频率控制是现代化工业生产与高精度测试

2、的必备手段。基于AD9850可以发生优于1Hz频率精确度的信号,这对于频率测试来说至关重要。本文介绍的这种频率调节器由Atmel公司的AVR单片机Atmega16L作为控制核心,采用4×4键盘作为频率值输入设备。AVR单片机扫描键盘并且读入用户设定的频率值。随后,AVR单片机计算出AD9850的控制字,并且对AD9850发出指令。本文介绍的频率控制器可以通过“+1Hz”键和“1Hz”键微调频率值。本文对频率控制器扩展了液晶显示模块,因此当前频率值可以被实时显示。它可以生成方波和正弦波。设计中使用了看门狗定时器防止程序进入死循环而不能正常工作。   关键词:

3、 AVR, 单片机, 频率, 控制1 引言    在现代化工业生产与高精度测试中,我们需要相当精确的频率来帮助判断设备性能指标。而且我们希望能够微调该频率。采用压控振荡器得到的频率不够精确,微调频率步骤烦琐,耗时漫长,因此有些测试项目限制了压控振荡器的使用。Mega系列单片机是Atmel公司于2002年起陆续推出的。这款AVR增强型单片机具有速度快,抗干扰能力强,价格低廉等诸多优点。为了加快AVR单片机的软件编制,Atmel以及第三方提供的开发工具多种多样,程序开发方便有效。该单片机内部FLASH结构功能灵活,加锁

4、后很难解密,可以最大限度地保护知识产权。AVR单片机可以广泛应用于通信、野外测试、汽车电子、医疗器械等领域,并且适用于各种低电压、低功耗的场合。   本文提出一种方法能够基于AVR单片机,采用AD9850提供精确到1Hz的频率信号,不但可以发生正弦波,也可以发生方波,从而为要求频率精度高的企业解决了难题。它以Atmel公司的AVR单片机Atmega16L作为核心,能够方便、准确地控制输出频率。由于AVR单片机实现了在线可编程,所以大大简化了设计步骤,加快了设计进程,同时不会烧毁、烧费芯片,节约了成本。   图1给出了该频率调节器的整体设计框图。用户通过4

5、×4键盘设定频率值,AVR单片机使用I/O端口,扫描读入频率值。随后AVR单片机控制AD9850调节到用户要求的频率。AD9850的输出可以接电压比较器整形为方波,也可以经过低通滤波器限制带宽,输出正弦波形。AVR单片机同时控制液晶显示模块,使之实时显示当前频率。图1. 频率调节器整体框图2 控制核心与频率发生技术2.1 控制核心    本设计采用了Atmel公司的AVR单片机Atmega16L作为控制核心。AVR单片机的单周期指令能够保证高的执行效率和低成本,是精简指令集CPU中的高性能器件。AVR单片机可以提供高达16&

6、#160;MIPS的执行时间,具有128K字节的可编程Flash存储器,同时具备4096字节的静态RAM。AVR单片机自带看门狗定时器,在强烈的电磁干扰条件下可以防止程序跑飞。本设计中采用的Atmega16L还具有以下特点:·   内部包含有硬件乘法器,加快乘法运算速度;I/O端口引脚数多达32根; ·   支持在线可编程功能,不需要频繁从电路板插拔芯片;带有可编程的支持同步传输的UART端口;·    支持三线传输SPI端口;具有方便的I2C总线

7、端口,直接与Philips芯片接驳;·   支持JTAG边界扫描电路;具有BOD低电压检测功能;·   内部有8路10位的A/D变换器;具有4个PMW,可以协同或单独工作;·   内部带有实时时钟电路;工作频率最高可达16MHz。2.2 AD9850频率发生技术    AD9850是AD公司推出的低功耗直接数字频率合成器芯片,可以产生从直流到62.5MHz的宽频率信号,从投入市场到今天已经应用在雷达系统、低功耗频率源中。它良好的频率合成功能适合于

8、应用在高精度测试中。本设计采用了AD9850作为波形发生器,具有体积小,功耗低的优点。   在控制流程中,AVR单片机为AD9850计算了频率控制字,并且将频率控制字写入其中。联合小键盘上的“+1Hz”键和“-1Hz”键,本设计使得频率可以精确到步长为1Hz的调节。它可以产生方波和正弦波。用户要求产生正弦波时,我们设计了低通滤波器用来滤除信号的高频分量。该低通滤波器还可以使用五阶椭圆滤波器实现。图2示出了本系统的AD9850电路设计图。PC2PC5可以同时作为I2C总线端口。图2  AD9850电路设计3 输入设备与输出设备3.1 键

9、盘输入设备与相应软件     本设计采用了4×4键盘作为频率输入设备。由于按键个数少,只有16个,需要表示从1Hz  10MHz的广泛频率,故在软件设计中采用了AVR单片机扫描方式。将端口A的8根I/O引脚全部作为扫描键盘使用。键盘定义除了09共10个数字之外,还定义了“退格”键、“全删”键、“输入”键、“+1Hz”键和“-1Hz”键,这样就可以极大地方便用户随时修改频率和微调频率。读入用户输入的频率值时,采用了延时防抖抗干扰的软件程序。扫描变量的初始值设置为0xFE,以低电平0依次变化实现扫描。本单片机键盘扫描的C代码如下

10、所示:            sccode=0xFE;/*every scan initiative value,11111110*/            while(sccode!=0xEF)/*sccode is not 11101111,follow;or return 

11、0*/                            PORTA=sccode;/*send scan code 11111110 to portA*/         &

12、#160;      PORTA=sccode;/*send scan code 11111110 to portA*/                if(PINA&0xF0)!=0xF0)/*read portA,if high 4 bits are 

13、;not 1111,key pressed in this line*/                                    recode=(PINA&0xF0)|

14、0x0F;/*portA high 4 bits reserved,low 4 bits are 1111*/                    while(PINA&0xF0)!=0xF0)         

15、0;                              /*read portA,if portA high 4 bits are not 1111,key pressed,  &#

16、160;                 if key pressed,we must wait,wait for key released*/                  

17、  return(sccode)+(recode);/*return row+column*/                                else       

18、                             sccode=(sccode&lt;<1)|0x01;               &#

19、160;    /*scan code left shift 1 bit, add 1 to right,11111101*/                            

20、0;   最终返回的扫描结果包括按键所在的行值和列值。判断步骤是:先将端口A的高4比特记录在扫描变量recode中,低4比特置为1111。再次读入端口A的高4比特,由此判断按键是否松开。用户还未松开按键时,高4比特当中有低电平0存在,此时只能循环等待。只有当用户松开按键之后,才将高4比特与低4比特进行按位反操作,并复合形成最终返回的扫描结果。如果没有检测到有按键按下,则将扫描变量sccode向左移位1比特,继续进行下一次扫描。3.2 液晶显示模块    用户在多次进行输入频率以及“+1Hz”和“-1Hz”微调后,专注于观察信

21、号输出对下一级电路的影响,往往忘了目前系统的输出频率。这样导致在精确测试中要求微调时也不知该向高调整还是向低调整。为了告知用户系统所处的当前频率,我们扩展了液晶显示模块,实现了当前频率在液晶显示模块上实时显示。液晶显示模块占用了单片机Atmega16L的PD0-PD7作为数据接口,采用了单片机的PB0-PB4作为控制端口。图3给出了液晶显示模块与控制器电路设计电路图。    PB0引脚选择液晶显示模块的数据存储器或指令存贮器,PB1引脚表明此次操作是读液晶显示模块还是写液晶显示模块,PB2则构成上升沿与下降沿完成读写时序。PB3负责选中液晶显示模块的左半部分,PB4负责选中右半部分,通常PB3与PB4都置为1。需要注意的是,在数据或指令准备好了之后,再让PB2进行电平变化,否则读写会出错。   本设计借助单片机Atmega16L的大容量程序存贮器,将英文字母和若干汉字的字型点阵作为数组存入单片机的程序存贮器中。需要显示某字符时直接调用数组,从而简化了设计,实现了英文、汉字以及图形的显示。本设计显示界面友好,操作可控性强。图3  液晶显示模块与控制器电路设计4 结论    为了方便现代化工业生产与精确的频率测试,我们设计了基于AVR单片机的高精度频率调节器。在本设

温馨提示

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

评论

0/150

提交评论