基于ATmega8 单片机的工频电压/频率仪设计

分享到:

1.引言

在电力生产和电气测试工作中,经常需要测量工频电压和频率。目前市面上工频电压表和频率表种类繁多,本设计与其相比具有电路简单、体积小、功耗低、性价比高等特点。利用低价位具备AVR高档单片机性能的ATmega8单片机,设计工频电压和频率两用测量仪。ATmega8单片机除了有A/D转换和定时计数器功能外,其内部的模拟比较器在测量频率电路中省了测量过零电路;I/O端口20mA驱动能力直接驱动LED数码管,省了驱动电路。使整个硬件电路非常简单。

2.硬件设计

基于ATmega8单片机工频电压/频率仪设计硬件电路如图1所示。以单片机为核心,加上少量的外部元件构成。

 
频率仪设计硬件电路

 

图1中:T1是电源变压器和电压互感器两用器件(电压互感器有变比精度要求),提供测量仪运行电源,并兼做为被测输入源使用;AD1、C1是电源整流滤波电路元件;U1是三端稳压器件;C2、C6是+5V电源滤波电容;L1、C4、C5是测量电压用基准电压和模拟端电源解耦电路元件;DS是大尺寸低功耗LED数码管,与Rd1-Rd8构成测量结果显示电路;D1、D2、R1是测量频率输入波形整形电路元件;R2、R3、R4、C3是测量电压取样输入电路元件;R6、R7、LED2、LED3是测量频率或电压状态指示电路元件;R8、LED1是电源指示电路元件;E1(8MHz)晶体和两个20p的电容组成单片机运行所必须的时钟(保证测量频率的精度)。S1是测量电压/频率选择开关。

ATmega8单片机:

ATmega8是ATMEL公司AVR系列单片机。

采用低功耗CMOS工艺生产的基于AVR RISC结构的8位单片机,大多数指令执行时间为单个周期。

1)内有10位精度的逐次逼近型ADC

ADC与一个8通道的模拟多路复用器连接,能对来自端口C的8路单端输入电压进行采样。单端电压输入以0V(GND)为基准。ADC包括一个采样保持电路,以确保在转换过程中输入到ADC的电压保持恒定。ADC由AVCC引脚单独提供电源。AVCC与VCC之间的偏差不能超过±0.3V.器件之内有标称值为2.56V和AVCC基准电压。基准电压可以通过在AREF引脚上加一个电容进行解耦,以更好地抑制噪声。

2)16位定时器/计数器

16位的T/C可以实现精确的程序定时(事件管理)、波形产生和信号测量。其主要特点如下:真正的16位设计;2个独立的输出比较单元;双缓冲的输出比较寄存器;一个输入捕捉单元;输入捕捉噪声抑制器;比较匹配发生时清除寄存器(自动重载);无干扰脉冲,相位正确的PWM;可变的PWM周期;频率发生器;外部事件计数器。

3)片内模拟比较器

模拟比较器对正极AIN0的值与负极AIN1的值进行比较。当AIN0上的电压比负极AIN1上的电压要高时,模拟比较器的输出ACO即置位。比较器的输出可用来触发定时器/计数器1的输入捕捉功能。此外,比较器还可触发自己专有的、独立的中断。

AVR单片机的系统内可编程特性,无需购买昂贵的仿真器和编程器也可进行单片机嵌入式系统的设计和开发;同时也为单片机的初学者提供了非常方便和简捷的学习开发环境。而且在省电性能、稳定性、抗干扰性以及灵活性方面考虑得更加周全和完善。

ATmega8单片机与其它单片机比较而言,简便易用、费用低,相对进入AVR系列单片机开发的门槛也低,软件资源丰富,程序容易开发。由于Atmega8单片机是常用芯片,本文对其特性、内部结构、引脚说明等不做介绍。

3.ATmega8程序的设计

ATmega8芯片是ATMEL(爱特梅尔)公司的AVR系列单片机。ATMEL公司网站提供AVRStudio集成环境(IDE)开发软件免费下载。

本固件程序采用开发软件汇编编译并烧写。

3.1 主程序

程序主要由初始化程序、数据处理程序(包括各种计算子程序)、LED位显示程序(包括LED显示刷新和字形码查表)、中断处理程序等模块组成。

主程序流程如图2所示。程序首先对系统初始化。初始化程序流程为:设置堆栈地址--初始化定时器(含显示和测频率计数器)--A/D转换初始化--存储器及寄存器初始化。接下来进入主程序闭合循环体,在循环体中不断检查电压/频率选择开关状态。如开关为合的状态,程序检查A/D转换是否完成。并对A/D转换做相应操作。如开关为断的状态,程序启动测量频率计数器工作,并允许计数器中断产生。然后无论电压/频率选择开关状态,都进入显示数据更新检查,并对LED显示做相应操作。程序最后对LED显示(4位轮流)进行刷新。完成后循环重新开始。

 主程序流程


 

3.2 中断程序

本主程设置2个中断源。分别是LED显示扫描定时中断和频率测量计数器中断。为了保证频率测量精度,设置计数器中断优先级为最高。LED显示扫描由定时器0产生中断后做显示扫描标志。频率测量计数器由模拟比较器产生中断后,读取16位定时器计数值并保存(数据由主程序处理),并设置数据更新标志。程序处理流程如图3所示。

 

中断程序
 

4.结束语

基于ATmega8单片机工频电压/频率仪硬件电路简单、性能稳定可靠、经济适用,能满足一般的测量精度要求。

继续阅读
基于ATmega8 单片机的工频电压/频率仪设计

基于ATmega8单片机工频电压/频率仪硬件电路简单、性能稳定可靠、经济适用,能满足一般的测量精度要求。

满足您创新创意的需要,亲手打造属于你的Arduino

Arduino,满足您创新创意的需要!Arduino 是一款便捷灵活、方便上手的开源电子原型平台,包含硬件(各种型号的Arduino板)和软件(Arduino IDE)。它适用于艺术家、设计师、爱好

用Arudino打造多功能电子闹钟

前段时间入手了一块 LCD12864中文屏幕,带中文字库,有驱动库可以直接驱动;还有一个时钟模块,型号是最常见的DS1302,突发奇想,就做个电子闹钟玩玩吧,又想只做个闹钟有点单调了,既然手头有温湿

基于AVR单片机的LED显示屏的灰度设计与实现

LED点阵块具有亮度高、发光均匀、可靠性好、拼装方便等优点,能构成各种尺寸的显示屏。目前,LED显示屏已被广泛应用于文字显示并取得了很好的效果,但是大部分仅能显示滚动的文字信息而不能显示图像,并且还

基于ATMEGA8的LED彩灯控制器设计

如果你想改变LED接的管脚,请修改hardware.h文件。如果想修改LED的亮度,请修改globals.h 中的Timings 段定义。本设计外接了两个按钮,一个是选择工作模式,另一个是电源的开关。当你按下模式按钮1.5秒以上时,进入自动模式,会自动演示所有的预设模式。

©2019 Microchip Corporation
facebook google plus twitter linkedin youku weibo rss