单片机编程实例大全(单片机编程100例)

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

  系统功能

  AVR内部脉宽调制OC0输出实验,用LED指示PWM的频率,在PWM速度较低时,可观察到LED的闪烁。

单片机编程实例大全(单片机编程100例)

  硬件设计

  

  AVR主控电路原理图

  软件设计

  //目标系统: 基于AVR单片机

  //应用软件: ICC AVR

  /*01010101010101010101010101010101010101010101010101010101010101010101

  ----------------------------------------------------------------------

  实验内容:

  AVR内部脉宽调制输出实验,用LED指示PWM的频率,在PWM速度较低时,可观察到LED的闪烁。

  ----------------------------------------------------------------------

  硬件连接:

  将UserLed指示灯连接至PWM的端口PB3/OC0。

  ----------------------------------------------------------------------

  注意事项:

  (1)若有加载库程序,请将光盘根目录下的“库程序”下的“ICC_H”文件夹拷到D盘

  (2)请详细阅读:光盘根目录下的“产品资料开发板实验板SMK系列SMK1632说明资料”

  ----------------------------------------------------------------------

  10101010101010101010101010101010101010101010101010101010101010101010*/

  #include <iom16v.h>

  #include <macros.h>

  #define OC0_OUT_EN DDRB |= 0b00001000

  /*--------------------------------------------------------------------

  程序名称:定时器0初始化程序

  程序功能:定时器作PWM使用,设置PWM的工作模式

  注意事项:

  提示说明:

  输入:

  返回:

  --------------------------------------------------------------------*/

  void timer0_init(void)

  {

  TCCR0 = (1<<WGM01)|(1<<WGM00)|(1<<COM01)|(1<<COM00)|(1<<CS00);

  /*

  WGM01=1; WGM00=1; --> fast PWM modle

  COM01=1; COM00=0; --> 比较匹配时set OC0 pin

  CS00=1; --> timer0 source 不经过任何分频,直接为Clk,使得PWM可以工作得足够快

  */

  TCNT0 = 0x00;//设置TC0计数寄存器初值

  OCR0 = 0x10;//输出比较寄存器初值,设置该值可用于调节OC0输出占空比

  }

  /*--------------------------------------------------------------------

  程序名称:

单片机编程实例大全(单片机编程100例)

  程序功能:

  注意事项:

  提示说明:

  输入:

  返回:

  --------------------------------------------------------------------*/

  void main(void)

  {

  OC0_OUT_EN;//为允许PWM工作,需设置PB3为输出

  timer0_init();

  SEI();

  while(1);

  }

  系统调试

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

  TCNT0 = 0x00;//设置TC0计数寄存器初值

  OCR0 = 0x10;//输出比较寄存器初值,设置该值可用于调节OC0输出占空比

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

  原文链接:https://www.eeworld.com.cn/mcu/article_2016093029973.html

本文来自作者[门雨石]投稿,不代表调研号立场,如若转载,请注明出处:https://kydy.org.cn/miao/3781.html

(20)

文章推荐

发表回复

本站作者才能评论

评论列表(4条)

  • 门雨石
    门雨石 2026-09-08

    我是调研号的签约作者“门雨石”!

  • 门雨石
    门雨石 2026-09-08

    希望本篇文章《单片机编程实例大全(单片机编程100例)》能对你有所帮助!

  • 门雨石
    门雨石 2026-09-08

    本站[调研号]内容主要涵盖:调研号,生活百科,小常识,生活小窍门,百科大全,经验网

  • 门雨石
    门雨石 2026-09-08

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

    联系我们

    邮件:调研号@sina.com

    工作时间:周一至周五,9:30-18:30,节假日休息

    关注我们