基于AVR单片机的高精度频率调节器

发布者:技术旅人最新更新时间:2006-07-10 来源: 电子产品世界关键字:单片机  频率  正弦 手机看文章 扫描二维码
随时随地手机看文章

1?引言?
在现代化工业生产与高精度测试中,我们需要相当精确的频率来帮助判断设备性能指标。而且我们希望能够微调该频率。采用压控振荡器得到的频率不够精确,微调频率步骤烦琐,耗时漫长,因此有些测试项目限制了压控振荡器的使用。

Mega系列单片机是Atmel公司于2002年起陆续推出的。这款AVR增强型单片机具有速度快,抗干扰能力强,价格低廉等诸多优点。为了加快AVR单片机的软件编制,Atmel以及第三方提供的开发工具多种多样,程序开发方便有效。该单片机内部FLASH结构功能灵活,加锁后很难解密,可以最大限度地保护知识产权。AVR单片机可以广泛应用于通信、野外测试、汽车电子、医疗器械等领域,并且适用于各种低电压、低功耗的场合。?

本文提出一种方法能够基于AVR单片机,采用AD9850提供精确到1Hz的频率信号,不但可以发生正弦波,也可以发生方波,从而为要求频率精度高的企业解决了难题。它以Atmel公司的AVR单片机Atmega16L作为核心,能够方便、准确地控制输出频率。由于AVR单片机实现了在线可编程,所以大大简化了设计步骤,加快了设计进程,同时不会烧毁、烧费芯片,节约了成本。?

图1给出了该频率调节器的整体设计框图。用户通过4×4键盘设定频率值,AVR单片机使用I/O端口,扫描读入频率值。随后AVR单片机控制AD9850调节到用户要求的频率。AD9850的输出可以接电压比较器整形为方波,也可以经过低通滤波器限制带宽,输出正弦波形。AVR单片机同时控制液晶显示模块,使之实时显示当前频率。

图1.?频率调节器整体框图

2?控制核心与频率发生技术
2.1?控制核心
??? 本设计采用了Atmel公司的AVR单片机Atmega16L作为控制核心。AVR单片机的单周期指令能够保证高的执行效率和低成本,是精简指令集CPU中的高性能器件。AVR单片机可以提供高达16?MIPS的执行时间,具有128K字节的可编程Flash存储器,同时具备4096字节的静态RAM。AVR单片机自带看门狗定时器,在强烈的电磁干扰条件下可以防止程序跑飞。本设计中采用的Atmega16L还具有以下特点:
·???内部包含有硬件乘法器,加快乘法运算速度;I/O端口引脚数多达32根;?
·???支持在线可编程功能,不需要频繁从电路板插拔芯片;带有可编程的支持同步传输的UART端口;
·????支持三线传输SPI端口;具有方便的I2C总线端口,直接与Philips芯片接驳;
·???支持JTAG边界扫描电路;具有BOD低电压检测功能;
·???内部有8路10位的A/D变换器;具有4个PMW,可以协同或单独工作;
·? ?内部带有实时时钟电路;工作频率最高可达16MHz。

2.2?AD9850频率发生技术
??? AD9850是AD公司推出的低功耗直接数字频率合成器芯片,可以产生从直流到62.5MHz的宽频率信号,从投入市场到今天已经应用在雷达系统、低功耗频率源中。它良好的频率合成功能适合于应用在高精度测试中。本设计采用了AD9850作为波形发生器,具有体积小,功耗低的优点。

?? 在控制流程中,AVR单片机为AD9850计算了频率控制字,并且将频率控制字写入其中。联合小键盘上的“+1Hz”键和“-1Hz”键,本设计使得频率可以精确到步长为1Hz的调节。它可以产生方波和正弦波。用户要求产生正弦波时,我们设计了低通滤波器用来滤除信号的高频分量。该低通滤波器还可以使用五阶椭圆滤波器实现。图2示出了本系统的AD9850电路设计图。PC2——PC5可以同时作为I2C总线端口。

图2??AD9850电路设计

3?输入设备与输出设备
3.1?键盘输入设备与相应软件
???
? 本设计采用了4×4键盘作为频率输入设备。由于按键个数少,只有16个,需要表示从1Hz?—?10MHz的广泛频率,故在软件设计中采用了AVR单片机扫描方式。将端口A的8根I/O引脚全部作为扫描键盘使用。键盘定义除了0——9共10个数字之外,还定义了“退格”键、“全删”键、“输入”键、“+1Hz”键和“-1Hz”键,这样就可以极大地方便用户随时修改频率和微调频率。读入用户输入的频率值时,采用了延时防抖抗干扰的软件程序。扫描变量的初始值设置为0xFE,以低电平0依次变化实现扫描。本单片机键盘扫描的C代码如下所示:
????????????sccode=0xFE;/*every?scan?initiative?value,11111110*/
????????????while(sccode!=0xEF)/*sccode?is?not?11101111,follow;or?return?0*/
????????????{
????????????????PORTA=sccode;/*send?scan?code?11111110?to?portA*/
????????????????PORTA=sccode;/*send?scan?code?11111110?to?portA*/
????????????????if((PINA&0xF0)!=0xF0)/*read?portA,if?high?4?bits?are?not?1111,key?pressed?in?this?line*/
????????????????{
????????????????????recode=(PINA&0xF0)|0x0F;/*portA?high?4?bits?reserved,low?4?bits?are?1111*/
????????????????????while((PINA&0xF0)!=0xF0)
????????????????????{};
????????????????????/*read?portA,if?portA?high?4?bits?are?not?1111,key?pressed,
????????????????????if?key?pressed,we?must?wait,wait?for?key?released*/
????????????????????return((~sccode)+(~recode));/*return?row+column*/
????????????????}
????????????????else
????????????????{
????????????????????sccode=(sccode<<1)|0x01;
????????????????????/*scan?code?left?shift?1?bit,?add?1?to?right,11111101*/
????????????????}
????????????}
????最终返回的扫描结果包括按键所在的行值和列值。判断步骤是:先将端口A的高4比特记录在扫描变量recode中,低4比特置为1111。再次读入端口A的高4比特,由此判断按键是否松开。用户还未松开按键时,高4比特当中有低电平0存在,此时只能循环等待。只有当用户松开按键之后,才将高4比特与低4比特进行按位反操作,并复合形成最终返回的扫描结果。如果没有检测到有按键按下,则将扫描变量sccode向左移位1比特,继续进行下一次扫描。

3.2?液晶显示模块
??? 用户在多次进行输入频率以及“+1Hz”和“-1Hz”微调后,专注于观察信号输出对下一级电路的影响,往往忘了目前系统的输出频率。这样导致在精确测试中要求微调时也不知该向高调整还是向低调整。为了告知用户系统所处的当前频率,我们扩展了液晶显示模块,实现了当前频率在液晶显示模块上实时显示。液晶显示模块占用了单片机Atmega16L的PD0-PD7作为数据接口,采用了单片机的PB0-PB4作为控制端口。图3给出了液晶显示模块与控制器电路设计电路图。
?
?? PB0引脚选择液晶显示模块的数据存储器或指令存贮器,PB1引脚表明此次操作是读液晶显示模块还是写液晶显示模块,PB2则构成上升沿与下降沿完成读写时序。PB3负责选中液晶显示模块的左半部分,PB4负责选中右半部分,通常PB3与PB4都置为1。需要注意的是,在数据或指令准备好了之后,再让PB2进行电平变化,否则读写会出错。

?? 本设计借助单片机Atmega16L的大容量程序存贮器,将英文字母和若干汉字的字型点阵作为数组存入单片机的程序存贮器中。需要显示某字符时直接调用数组,从而简化了设计,实现了英文、汉字以及图形的显示。本设计显示界面友好,操作可控性强。

图3??液晶显示模块与控制器电路设计

4?结论
??? 为了方便现代化工业生产与精确的频率测试,我们设计了基于AVR单片机的高精度频率调节器。在本设计中,可以使用小键盘上的“+1Hz”键和“-1Hz”键,方便地进行频率精确到1Hz的调节。此频率调节器体积小而功能强,由Atmel公司的AVR单片机Atmega16L作控制核心,用户可随时调整系统输出频率。采用了4×4键盘输入用户设定的频率值,占位小而效率高,编制程序让AVR单片机扫描即可得到频率,省去了专用键盘接口芯片8279。液晶显示模块可实时显示当前频率,显示界面友好,操作可控性强。本系统可以产生方波和正弦波。

?? 本设计的硬件与软件均已经应用在某频率测试生产线中。工业生产与测试使用表明,本设计简化了频率调节过程,用户使用方便,具有节电、低成本、抗干扰能力强、频率控制精度高速度快的特点。

参考文献
[1]?Atmel?Corporation.?8-bit?AVR?Microcontroller?with?16K?Bytes?In-System?Programmable?Flash?Atmega16L?data?sheet.?Atmel?Corporation,?2003:?3-18.
[2]?Atmel?Data?Sheets.?http://www.atmel.com/dyn/products/devices.asp?family_id=607%20
[3]?Atmel?Application?Note.?http://www.atmel.com/dyn/products/app_notes.asp?family_id=607

关键字:单片机  频率  正弦 引用地址:基于AVR单片机的高精度频率调节器

上一篇:第一页
下一篇:基于AVR单片机的高精度频率调节器

推荐阅读最新更新时间:2024-03-16 12:17

51_单片机_点阵深度分析
感谢 大熙熙 的代码解析 网址 http://www.cnblogs.com/one-meter/p/4188277.html 他对具体的代码做了形象的解释 由于部分代码解析还不够具体 融入了 个人对该代码的理解 网上类似的源码很多, 可以自己找个合适的进行学习和验证 我是参考普中单片机的源码(注释函数太少) 代码如下: #include reg52.h #include intrins.h //重定义 函数变量 #define uchar unsigned char #define uint unsigned int #define ulong unsigned long //spi 所使用
[单片机]
基于MSP430单片机的光电跟踪伺服系统研究方案
  研究设计中利用光敏感器件对特定光波长范围的光信号敏感原理,将四象限光电位置探测器与MSP430系列单片机相结合,根据四象限光电探测器输出电压与光斑位置的线性关系,通过数字PID闭环控制输出电压调节单片机输出PWM 的占空比来实现精确稳定的搜寻和小范围跟踪目标。   0 引言   光电跟踪系统是以光电器件(主要是激光器和光电探测器)为基石,将光学技术、电子/微电子技术和精密机械技术等融为一体,形成具有特定跟踪功能的装置。   目前国内外较先进的光电跟踪系统多以激光测距仪、电视跟踪仪和红外跟踪仪三位一体为核心构成。采用机械方法实现跟踪系统控制起来还不太灵敏。对于一个光电追踪系统,一般通过目标识别、位置信号检测、位置信号处理
[单片机]
基于MSP430<font color='red'>单片机</font>的光电跟踪伺服系统研究方案
基于AVR单片机的节能电梯介绍
一、项目概述 1.1 引言 随着社会的发展,高层建筑和智能化建筑的不断出现,作为垂直运输工具的电梯得到了越来越广泛的应用,人们对电梯服务质量及可靠运行提出了越来越高的要求。在2010年4月22日电梯行业“节能·安全·智能”技术交流会上中国电梯协会副秘书长张乐祥提出节能、安全、智能已成为电梯技术发张的主流,驱动与控制系统仍存在改善空间,远程监控维修技术成为焦点。 本文在节能方面运用电梯群控分配控制技术,以能量消耗作为主要指标把侯梯和乘梯时间作为模型约束建立数学模型,另外如果持续3 分钟没有轿厢、层站召唤,电梯将自动关闭照明及风扇,并降低梯厅位置显示器的亮度,从而大幅度减少待机电力消耗;在安全和智能方面通过对电梯的各种状态进行实时
[单片机]
基于AVR<font color='red'>单片机</font>的节能电梯介绍
单片机C语言易错知识点
在进行单片机开发时,经常都会出现一些很不起眼的问题,这些问题其实都是很基础的c语言知识点,是一些小细节。但是正是因为很基础,又都是小细节,所以我们往往容易忽视它们。结果有时候我们会花很长的时间纠结一个问题,迟迟找不到问题的所在。当发现原因竟然是这么的简单和不起眼时,我想不单是我,大家都会感到痛不欲生。笔者今天又碰到了这样的问题,实在忍不住了。因为这些问题都是小的知识点,考虑到之前也遇到好多这种问题,于是决定每次遇到问题就记录下来,时刻提醒自己。 1. !和 ~ 不一样 ! 是逻辑非符号,~ 是位取反符号。 对IO口某个管脚赋值时不要错用 !,如 2. 和 的优先级低于+、- 比如要实现c=x*2+1,没有加括号会出错 3.移
[单片机]
<font color='red'>单片机</font>C语言易错知识点
单片机编程,输出周期为2S和0.5S的方波
在80C51单片机中,已知时钟频率为 6MHz,请编程使 P1.0 和 P1.1 分别输出周期为 2s 和 0.5s 的方波。 求答案,过程。 ;===================================== 最佳答案: ;------------------------------------- ;下列程序,经过编译、仿真,符合要求: ;------------------------------------- ORG 0000H SJMP START ORG 000BH SJMP T0_INT ;------------------------------------- START: MOV T
[单片机]
SEGGER和Geehy合作,全面支持APM32系列微控制器
SEGGER和Geehy合作,全面支持APM32系列微控制器 蒙海姆,德国 - 2022年9月15号 作为与Geehy极海半导体合作的一部分,SEGGER的J-Link调试探头,以及它的Flasher在线烧录器家族, 完全支持Geehy Polaris APM32系列MCU 。Geehy和他们的客户现在享受着J-Link Prime的好处,这些设备都是开箱即用的。 Geehy极海半导体常务副总经理王远学表示:“非常有幸能与SEGGER达成合作,目前极海APM32系列MCU所有在售产品均已获得SEGGER J-Link系列下载调试器的全面支持。对极海来说,这将有助于更好地服务国内外客户,支持开发人员快速、便捷地开
[单片机]
SEGGER和Geehy合作,全面支持APM32系列<font color='red'>微控制器</font>
英飞凌推出800V和950V AC-DC集成式功率级产品,进一步扩展其固定频率CoolSET™产品组合
英飞凌推出800V和950V AC-DC集成式功率级产品,进一步扩展其固定频率CoolSET™产品组合 【2022年 9 月 22 日,德国慕尼黑讯】在提高高压电源的性能、效率和可靠性的同时,也需要减少元器件的数量和BOM(材料清单)成本,并降低所需的设计工作量。 为了满足这些需求,英飞凌科技股份公司 推出第五代固定频率(FF)CoolSET™ 产品组合,旨在提供合适的关键器件,以优化设计。 英飞凌全新的800V和950V AC-DC集成式功率级(IPS)产品均采用DIP-7封装,可满足家用电器辅助电源、AC-DC转换器、电池充电器、太阳能系统以及电机控制和驱动等应用的需求。 固定频率 CoolSETTM解决方案在单
[电源管理]
英飞凌推出800V和950V AC-DC集成式功率级产品,进一步扩展其固定<font color='red'>频率</font>CoolSET™产品组合
黄晓庆详解TD终端芯片:三单待成趋势
  C114讯 6月8日下午消息(裴军)在TD智能终端技术发展研讨会上,中国移动研究院黄晓庆院长表示,Marvell已商用全球首款TD单芯片,而TD-SCDMA/WCDMA/CDMA2000三模单待芯片将是未来主流。   全球首款TD单芯片已商用   由于芯片集成度与功耗的问题,TD终端在外型与续航能力受到制约,据黄晓庆透露,中国移动已开始利用公版模式,将元器件、软件与硬件集成,以达到SOC单芯片规格,形成终端产品标准解决方案,“保证质量一致性的同时快速量产推出产品”。   据C114了解,Marvell推业界首款TD单芯片PXA920,其将处理器、射频模块、电源管理芯片以及Wi-Fi/蓝牙/FM调频等功能集成。值得一提的是,该方案
[手机便携]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved