深圳市微雪电子有限公司

首页   |   产品中心   |   购买指南   |   支付方式   |   销售网点   |   联系我们
 


 
AVR 8-BIT MCU
 >> AVR 简介
 >> AVR 选型列表
 >> AVR Datasheets
 >> AVR 应用笔记
 >> AVR 软件平台
 >> AVR仿真器 编程器
 >> AVR开发板 评估板
 >> AVR测试座 编程座
 >> 通用测试座 编程座
 
 
  微控制器
 >> AVR 8-BIT MCU
 >> ATMEL 51 MCU
 >> WINBOND 51 MCU
 
  可编程逻辑器
 >> ATMEL CPLD & FPGA
 >> ALTERA CPLD & FPGA
 >> XILINX CPLD & FPGA
 
  存储器
 >> EEPROM
 >> FLASH
 >> RAM
 
  接口器件
 >> USB 接口
 >> RS232 接口
 >> RS485 接口
 
  功能器件
 >> 实时时钟
 >> 光耦
 >> 其它
 
  模块 & 配件
 >> LCD模块
 >> 测试座 编程座

 首页 >> AVR应用笔记 >> AVR单片机笑傲江湖 >> AVR PWM OC2
AVR PWM OC2

系统功能
  AVR内部脉宽调制OC2输出实验,用LED指示PWM的频率,在PWM速度较低时,可观察到LED的闪烁。
  
硬件设计


AVR主控电路原理图(点击图片放大,不需要放大镜!

软件设计

下面部分从TXT拷出,拷到网页,代码部分缺省了很多空格,比较凌乱,请谅解!

//目标系统: 基于AVR单片机
//应用软件: ICC AVR

/*01010101010101010101010101010101010101010101010101010101010101010101
----------------------------------------------------------------------
实验内容:
AVR内部脉宽调制输出实验,用LED指示PWM的频率,在PWM速度较低时,可观察到LED的闪烁。
----------------------------------------------------------------------
硬件连接:
将UserLed指示灯连接至PWM的端口PD7/OC2。
----------------------------------------------------------------------
注意事项:
(1)若有加载库程序,请将光盘根目录下的“库程序”下的“ICC_H”文件夹拷到D盘
(2)请详细阅读:光盘根目录下的“产品资料\开发板实验板\SMK系列\SMK1632\说明资料”
----------------------------------------------------------------------
10101010101010101010101010101010101010101010101010101010101010101010*/

#include <iom16v.h>
#include <macros.h>

#define OC2_OUT_EN DDRD |= 0b10000000

/*--------------------------------------------------------------------
程序名称:定时器2初始化程序
程序功能:定时器作PWM使用,设置PWM的工作模式
注意事项:
提示说明:
输    入:
返    回:
--------------------------------------------------------------------*/
void timer2_init(void)
{
 TCCR2 = (1<<WGM21)|(1<<WGM20)|(1<<COM21)|(1<<COM20)|(1<<CS20); 
/*
 WGM21=1; WGM20=1; --> fast PWM modle
 COM21=1; COM20=0; --> 比较匹配时set OC2 pin
 CS20=1;  --> timer2 source 不经过任何分频,直接为Clk,使得PWM可以工作得足够快
*/
 TCNT2 = 0x00;   //设置TC2计数寄存器初值
 OCR2  = 0xE0;   //输出比较寄存器初值,设置该值可用于调节OC2占空比
}
/*--------------------------------------------------------------------
程序名称:
程序功能:
注意事项:
提示说明:
输    入:
返    回:
--------------------------------------------------------------------*/
void main(void)
{
 OC2_OUT_EN;    //为允许PWM工作,需设置PD7为输出
 timer2_init();
 SEI();
 while(1);
}


系统调试

改变PWM初始化代码的如下两个语句的赋值:

 TCNT2 = 0x00;   //设置TC2计数寄存器初值
 OCR2  = 0xE0;   //输出比较寄存器初值,设置该值可用于调节OC2占空比

从LED的闪烁频率可以看出,改变了PWM的频率。


资料说明

可作为如下AVR的参考资料: ATtiny13 ATtiny24 ATtiny44 ATtiny84 ATtiny2313 ATtiny26 ATmega48 ATmega88 ATmega168 ATmega8 ATmega16 ATmega32 ATmega64 ATmega128 ATmega162 ATmega169 ATmega169P ATmega8515 ATmega8535

相关AVR型号资料

ATtiny13
ATtiny24
ATtiny44
ATtiny84
ATtiny26
ATtiny2313
ATmega48
ATmega88
ATmega168
ATmega8
ATmega16
ATmega32
ATmega64
ATmega128
ATmega162
ATmega169
ATmega8515
ATmega8535


 
 

网站地图   |   人才招聘   |   关于我们
       深圳市微雪电子有限公司版权所有