ATmega128单片机PWM设计

发布者:alpha12最新更新时间:2016-08-08 来源: eefocus关键字:ATmega128  单片机  PWM 手机看文章 扫描二维码
随时随地手机看文章
脉宽调制(PWM:(Pulse Width Modulation)是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。PWM是一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。PWM信号仍然是数字的,因为在给定的任何时刻,满幅值的直流供电要么完全有(ON),要么完全无(OFF)。只要带宽足够,任何模拟值都可以使用PWM进行编码。本文提出AVR单片机ATmega128的PWM的设计方法。
1.定时/计数器PWM设计要点
  根据PWM的特点,在使用ATmega128的定时/计数器设计输出PWM时应注意以下几点:
  1)首先应根据实际的情况,确定需要输出的PWM频率范围,这个频率与控制的对象有关。如输出PWM波用于控制灯的亮度,由于人眼不能分辨42Hz以上的频率,所以PWM的频率应高于42Hz,否则人眼会察觉到灯的闪烁。
  2)然后根据需要PWM的频率范围确定ATmega128定时/计数器的PWM工作方式。AVR定时/计数器的PWM模式可以分成快速PWM和频率(或相位)调整PWM两大类。
  3)快速PWM可以的到比较高频率的PWM输出,但占空比的调节精度稍微差一些。此时计数器仅工作在单程正向计数方式,计数器的上限值决定PWM的频率,而比较匹配寄存器的值决定了占空比的大小。PWM频率的计算公式为:
  PWM频率 = 系统时钟频率/(分频系数*(1+计数器上限值))
  4)快速PWM模式适合要求输出PWM频率较高,但频率固定,占空比调节精度要求不高的应用。
  5)频率(相位)调整PWM模式的占空比调节精度高,但输出频率比较低,因为此时计数器仅工作在双向计数方式。同样计数器的上限值决定了PWM的频率,比较匹配寄存器的值决定了占空比的大小。PWM频率的计算公式为:
  PWM频率 = 系统时钟频率/(分频系数*2*计数器上限值))
  6)相位调整PWM模式适合要求输出PWM频率较低,但频率固定,占空比调节精度要求高的应用。当调整占空比时,PWM的相位也相应的跟着变化(Phase  Correct)。
  7)频率和相位调整PWM模式适合要求输出PWM频率较低,输出频率需要变化,占空比调节精度要求高的应用。此时应注意:不仅调整占空比时,PWM的相位会相应的跟着变化;而一但改变计数器上限值,即改变PWM的输出频率时,会使PWM的占空比和相位都相应的跟着变化(Phase  and Frequency Correct)。
  8)在PWM方式中,计数器的上限值有固定的0xFF(8位T/C);0xFF、0x1FF、0x3FF(16位T/C)。或由用户设定的0x0000-0xFFFF,设定值在16位T/C的ICP或OCRA寄存器中。而比较匹配寄存器的值与计数器上限值之比即为占空比。
2.PWM应用设计参考
  下面给出一个设计示例,在示例中使用PWM方式来产生一个1KHz左右的正弦波,幅度为0-Vcc/2。
  首先按照下面的公式建立一个正弦波样本表,样本表将一个正弦波周期分为128个点,每点按7位量化(127对应最高幅值Vcc/2):
  f(x) = 64 + 63 * sin(2πx/180) x∈[0…127]
  如果在一个正弦波周期中采用128个样点,那么对应1KHz的正弦波PWM的频率为128KHz。实际上,按照采样频率至少为信号频率的2倍的取样定理来计算,PWM的频率的理论值为2KHz即可。考虑尽量提高PWM的输出精度,实际设计使用PWM的频率为16KHz,即一个正弦波周期(1KHz)中输出16个正弦波样本值。这意味着在128点的正弦波样本表中,每隔8点取出一点作为PWM的输出。
  程序中使用ATmega128的8位T/C0,工作模式为相位调整PWM模式输出,系统时钟为8MHz,分频系数为1,其可以产生最高PWM频率为:
  8000000Hz / 510 =
  15686Hz。每16次输出构成一个周期正弦波,正弦波的频率为980.4Hz。PWM由OC0(PB4)引脚输出。参考程序如下(ICCAVR)。
  //ICC-AVR application builder : 2004-08
  // Target : M128
  // Crystal: 8.0000Mhz
  #include
  #include
  #pragma data:code
  // 128点正弦波样本表
  const unsigned char auc_SinParam[128] = {
    64,67,70,73,76,79,82,85,88,91,94,96,99,102,104,106,109,111,113,115,117,
    118,120,121,123,124,125,126,126,127,127,127,127,127,127,127,126,126,125,
    124,123,121,120,118,117,115,113,111,109,106,104,102,99,96,94,91,88,85,82,
    79,76,73,70,67,64,60,57,54,51,48,45,42,39,36,33,31,28,25,23,21,18,16,14,12,
    10,9,7,6,4,3,2,1,1,0,0,0,0,0,0,0,1,1,2,3,4,6,7,9,10,12,14,16,18,21,23,25,28,31,33,
    36,39,42,45,48,51,54,57,60};
  #pragma data:data
  unsigned char x_SW = 8,X_LUT = 0;
  #pragma interrupt_handler timer0_ovf_isr:17
  void timer0_ovf_isr(void)
  {
  X_LUT += x_SW; // 新样点指针
  if (X_LUT > 127) X_LUT -= 128; // 样点指针调整
  OCR0 = auc_SinParam[X_LUT]; // 取样点指针到比较匹配寄存器
  }
  void main(void)
  {
  DDRB |= 0x10; // PB4(OC0)输出
  TCCR0 = 0x71; // 相位调整PWM模式,分频系数=1,正向控制OC0
  TIMSK = 0x01; // T/C0溢出中断允许
  SEI(); // 使能全局中断
  while(1)
  {……};
  }
  每次计数器溢出中断的服务中取出一个正弦波的样点值到比较匹配寄存器中,用于调整下一个PWM的脉冲宽度,这样在PB4引脚上输出了按正弦波调制的PWM方波。当PB4的输出通过一个低通滤波器后,便得到一个980.4Hz的正弦波了。如要得到更精确的1KHz的正弦波,可使用定时/计数器T/C1,选择工作模式10,设置ICR1=250为计数器的上限值。
结束语:
      本文以ATmega128为例介绍了AVR单片机的PWM设计方法。随着电力电子技术,微电子技术和自动控制技术的发展PWM技术获得了空前的发展,被广泛应用在测量、通信到功率控制与变换的许多领域中。
关键字:ATmega128  单片机  PWM 引用地址:ATmega128单片机PWM设计

上一篇:I2c程序 51系列及 AVR系列
下一篇:ARM-LINUX按键中断驱动程序

推荐阅读最新更新时间:2024-03-16 15:04

MSP430的学习(3)
MSP430单片机具有基本定时器(Basic Timer1),经常用于低功耗当中,他工作的目的就是支持软件和各种外围模块工作于低频率 低功耗条件下。通过对SMCLK或者ACLK进行分频,向其他外围模块提供低频控制信号。 Bacis Timer1有两个计数单元(BTCN1 BTCN2和一个控制单元BTCTL。他可作为两个独立的8位定时器或一个16位定时器。 一:Basic Timer1的寄存器 同过控制仅存器的设置可以对计数单元BTCNT1 BTCNT2进行软件控制。当出现异常状况时,该寄存器各位保持原状态。用户程序在Basic Timer初始化期间来设定操作条件。 1:BTCTL控制寄存器:其信息决定了Timer1的运行状况
[单片机]
AT89C52单片机的SD卡读写电路与程序设计
设计方案   应用AT89C52读写SD卡有两点需要注意。首先,需要寻找一个实现AT89C52 单片机 与SD卡通讯的解决方案;其次,SD卡所能接受的逻辑电平与AT89C52提供的逻辑电平不匹配,需要解决电平匹配问题。   通讯模式   SD卡有两个可选的通讯协议:SD模式和SPI模式。SD模式是SD卡标准的读写方式,但是在选用SD模式时,往往需要选择带有SD卡控制器接口的MCU,或者必须加入额外的SD卡控制单元以支持SD卡的读写。然而,AT89C52单片机没有集成SD卡控制器接口,若选用SD模式通讯就无形中增加了产品的硬件成本。在SD卡数据读写时间要求不是很严格的情况下,选用SPI模式可以说是一种最佳的解决方案。因为在SPI模式
[单片机]
单片机中晶振的作用
  单片机工作时,是一条一条地从RoM中取指令,然后一步一步地执行。单片机访问一次存储器的时间,称之为一个机器周期,这是一个时间基准。—个机器周期包括12个时钟周期。如果一个单片机选择了12MHz晶振,它的时钟周期是1/12us,它的一个机器周期是12×(1/12)us,也就是1us。   MCS—51单片机的所有指令中,有一些完成得比较快,只要一个机器周期就行了,有一些完成得比较馒,得要2个机器周期,还有两条指令要4个机器周期才行。为了衡量指令执行时间的长短,又引入一个新的概念:指令周期。所谓指令周期就是指执行一条指令的时间。例如,当需要计算DJNZ指令完成所需要的时间时,首先必须要知道晶振的频率,设所用晶振为12MHz,则一
[单片机]
51单片机操作系统开发中的问题与技巧介绍
前 言 51系列 单片机 是美国Intel公司在1980年推出的高性能8位单片机,在我国的应用非常广泛。目前,在软件设计中需要软件工程师从底层做起,在系统软件设计方面需要做大量的重复性劳动。如果开发一套基于51系列单片机的操作系统,那么用户只需要编写各个任务的程序,不必同时将所有任务运行的各种情况记在心中,不但大大减少了程序编写的工作量,而且减少了出错的可能性。 1 开发平台的选择和论证 开发平台的选择至关重要,因为有时它不光影响进度、产品质量、可维护性等一般问题,还涉及到方案的可实现性。 在本系统中,选择51系列单片机作为操作系统的运行平台有以下原因。 首先,51系列单片机应用非常广泛,一大批性能优越
[单片机]
51<font color='red'>单片机</font>操作系统开发中的问题与技巧介绍
用DSP实现高功率因数PWM整流器的控制
1引言     PWM整流器是应用脉宽调制技术发展起来的一种新型电源变流器。其基本原理是通过控制功率开关管的通断状态,使整流器输入电流接近正弦波,并且电流和电压同相位,从而消除大部分电流谐波并使功率因数接近于1。本文采用TI公司的TMS320F240DSP对整流器实现数字控制,这一方法相对于模拟控制具有以下优点:        1)控制灵活在数字控制系统中,主要利用软件算法实现控制方案,相比于模拟控制较灵活;        2)可靠性高微机系统由于采用元器件较少,信号全部采用数字处理,故受干扰小,可靠性高;        3)故障分析容易信号检测将取得的信息寄存,具备记忆的能力,故容易实现故障诊断;     
[嵌入式]
基于AT89C52单片机实现并行打印接口数据采集系统的应用方案
在道路、桥梁施工等建筑领域中,有很多从国外引进的原料加工控制设备。这些设备上的操作系统并不是我们常见的WINDOWS操作系统,尽管它可以实现数据打印功能,但这些数据无法用文件存储到WINDOWS操作系统的管理PC机中,因此不便于对这些数据进行统计和分析,严重影响了管理效率。为此,需要对这些设备进行功能扩充,使之能够按要求对所需数据进行存储,并提供相应的数据分析和处理功能,从而方便管理部门工作,提高生产效率和项目的管理质量。 方案分析 在不影响原有设备正常工作的前提下,完成并行打印机的数据采集功能,考虑有以下2种方案: (1)在数据输出到打印纸后,利用扫描仪识别打印纸上的数据,并将识别后的数据输入到管理PC机的数据管理软件中。
[单片机]
基于AT89C52<font color='red'>单片机</font>实现并行打印接口数据采集系统的应用方案
基于单片机+ADC0809的数字电流表仿真+源程序+设计报告
仿真原理图如下 下面是设计报告: 目录 摘 要2 关键词2 1 概述3 1.1设计意义 1.2系统主要功能 2 硬件电路设计方案及描述3 2.1 设计方案 2.2 主要元器件的介绍 2. 3控制电路模块 2.4 元件清单 3数字式电流表的软件设计16 3.1系统程序设计总方案 3.2系统子程序设计 4数字式电流表的调试 4.1软件调试 4.2显示结果及误差分析 5总结 附录1.电路原理图及仿真图 附录2. 程序代码 参考文献 基于单片机的简易数字电流表设计 摘要 数字电流表的诞生打破了传统电子测量仪器的模式和格局。它显示清晰直观、读数准确,采用了先进的数显技术,大大地减少了因人为因素所造成
[单片机]
基于<font color='red'>单片机</font>+ADC0809的数字电流表仿真+源程序+设计报告
基于嵌入式PC104工控机和C8051F047单片机实现机器人系统的设计
1.引言 高压输电线及杆塔附件长期暴露在野外,因受到持续的机械张力、电气闪络、材料老化的影响而产生断股、磨损、腐蚀等损伤,如不及时修复更换,原本微小的破损和缺陷就可能扩大,最终导致严重事故。因此,电力公司需要定期对线路设备进行巡检,及时发现早期损伤和缺陷并加以评估,根据评估结果安排必要的维护和修复,从而确保供电的安全可靠性。传统的人工巡检方法不仅工作量大而且条件艰苦,特别是对于山区和大江大河等的输电线路巡检存在很大困难,甚至一些巡检项目靠常规方法都难以完成。因此,采用机器人自动巡线成为保障高压输电线安全运行的一种必要手段。 高压输电线路巡线机器人属于特种机器人的研究范畴,主要完成高压供电线缆的无损探伤、悬垂绝缘子绝缘特性检测、
[单片机]
基于嵌入式PC104工控机和C8051F047<font color='red'>单片机</font>实现机器人系统的设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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