PWM:脉冲宽度调制,图中T为脉冲周期,t为高电平时间,t与T的比值t/T称为占空比,脉宽调制指的是调整t的大小,即改变脉冲的占空比,占空比值越大,输出的电压越高。改变占空比就改变输出的电压,常用于实现D/A,调节电压或电流,改变电动机的转速等。
快速PWM模式:它的计数方式是TCNT0由0开始计数到255式,计数加1返回到0,然后继续加1计数,相对于相位PWM修正模式(由0计数到255,再从255计数到0),只有一个斜坡,因此PWM输出频率高。在快速PWM模式下,计数器的最大值决定了PWM的频率,而比较寄存器OCR0决定了占空比的大小。T/C0是8位计数器, 输出PWM的频率=系统时钟频率/(分频系数*255) 。
PWM产生过程:定时器启动后,当TNCT0和OCR0的值相等时,输出引脚OC0(PB3)清0,当TNCT0到255时OC0置位,在程序运行过程中改变OCR0中的数值,就改变了OC0输出的占空比。
//函数功能:控制PB3引脚上的发光二极管由亮到灭,再由灭到亮 (代码来自轻松玩转AVR单片机c语言cd)
#include
#define uchar unsigned char
#define uint unsigned int
unsigned int count;
/*********以下是延时函数*********/
void Delay_ms(uint xms)
{
int i,j;
for(i=0;i
{ for(j=0;j<1140;j++) ; }
}
/********以下是端口初始化函数********/
void port_init()
{
DDRB|=(1<
PORTB&=(0<
}
/********定时器0初始化********/
void timer0_init()
{
TCCR0=(1<
// T/C0工作于快速PWM模式,不分频
//比较匹配时,OC0置位,记数到0XFF时,清零OC0
OCR0=0; //比较匹配寄存器初值,
SREG=0x80; //使能全局中断
}
/*********以下是主函数*********/
void main(void)
{
port_init();
timer0_init();
while(1)
{
for(count=0;count<256;count++) //OCR=0时,LED最亮,然后逐渐变暗
{
OCR0=count; //比较匹配寄存器赋值
Delay_ms(20); //延时一段时间,以观察效果
}
Delay_ms(3000); // LED最暗时,延时一段时间
for(count=255;count>0;count--) //OCR=255时,LED最暗,然后逐渐变亮
{
OCR0= count;
Delay_ms(20);
}
Delay_ms(3000); //LED最亮时,延时一段时间
}
}
关键字:AVR单片机 TC0 快速PWM
引用地址:
AVR单片机TC0快速PWM
推荐阅读最新更新时间:2024-03-16 13:16
基于AVR单片机USART与PC机的串行通信
PC机发送字符给单片机控制发光管亮,同时将其传回PC机,其中单片机的发送和接收都采用查询方式 1、USART的主要特点 通用同步和异步串行接收器和转发器(USART) 是一个高度灵活的串行通讯设备。主要特点为: 全双工操作( 独立的串行接收和发送寄存器) 异步或同步操作 主机或从机提供时钟的同步操作 高精度的波特率发生器 支持5, 6, 7, 8, 或9 个数据位和1 个或2 个停止位 支持的奇偶校验操作 数据过速检测? 帧错误检测 噪声滤波,包括错误的起始位检测,以及数字低通滤波器 三个独立的中断:发送结束中断, 发送数据寄存器空中断,以及接收结束中断 多处理器通讯模式 倍速异步通讯模式 2、异步串行收发器 USART
[单片机]
红外舒适型节能电源插座的应用设计
一、项目概述 1.1 引言 如今可持续发展成为社会的主题,从而电器的节能与环保越来越受到重视。随着电视机、计算机的使用越来越普遍,其节能与环保成为人们关心的问题。该节能插座的设计利用AVR单片机来控制计算机外部设备电源接口的开或关,具有智能节能和定时开关功能,也可作为普通插座使用,充分显示出设计的智能化与人性化。智能节能插座能有效地控制能源浪费,具有巨大的市场空间。 1.2 项目背景/选题动机 据有关部门调查,有近七成的居民家庭使用家电后不关闭电源,很多的居民不知道待机也会耗电。而由于电器关机没拔插头的原因,全国每年的耗电量十分惊人。电器待机耗电严重浪费着能源。人们在关闭计算机、电视的时候,处在待机状态
[单片机]
基于AVR单片机的温度测量系统
1 引言 传统温度测量系统中,一般选用模拟式温度传感器。常用的模拟式温度传感器,其中一个共同特点是输出为模拟量,因此在测量电路中必须经过A/D转换才能成为计算机所能处理的数字量。数字式温度传感器将非电模拟量转换到数字信号这一处理过程的多个环节集成在单芯片上,实现了在测量点将温度值数字化,有效解决了传统温度传感器外围电路复杂,抗干扰能力差的弊病,降低了对系统的要求。 该系统以Atmel公司的ATmega8L单片机为控制中心,温度测量使用DS18B20单总线数字温度传感器,采用1602字符型液晶显示器作为温度值的显示输出。编程使用CodeVision AVR C Compiler编译器,该编译软件自带了使用器件库函数文件
[单片机]
AVR单片机串口操作程序
#include #include #include #include #include #define FOSC 8000000 //mcu工作时钟频率 typedef unsigned int uint16; typedef unsigned char uchar8; uchar8 DoubleIRData ={0x64,0x00,0x20,0x04,0x40,0x00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; //双红外发射数据 取PD2作为驱动远程红外发射 //uchar8 SingleIRData ={0x60,0x00,0x04,0x00,0x
[单片机]
AVR单片机—(五)、ATMEGA16的USART与PC机串行通信—01(补充)
//------------------------------------------------------------------------------ //ATMEGA16与PC机的通信实验1 //PC机发送一个字符给单片机,单片机收到后既在发光二极管进行显示,同时将其回传给PC //单片机的发送和接收都采用查询方式 #include ioavr.h #include intrinsics.h #include delayics.h //------------------------------------------------------------------------------ typedef u
[单片机]
如何使用AVR单片机进行自整定PID控制器的设计
本文介绍了基于AVR单片机的自整定PID控制器的设计.该控制器以FESTO水位为控制对象,控制核心为ATmega128单片机.采用继电自整定PID算法,并用LED数码管实时显示控制情况.实验结果表明,本设计可以根据实际情况在线自整定PID参数.控制效果快速,平稳,超调量小。 PID控制器是过程控制中所用的主要控制器-由于其算法简单.鲁棒性好和可靠性高等特点,被广泛应用于工业过程控制.但是PID参数的整定一般需要经验丰富的工程技术人员来完成.既耗时又费力,加之实际系统有滞后和非线性等因素,增加了PID参数整定的难度.如何在线自整定PID参数,以符合过程控制的要求。是目前控制器设计中的一个重要课题,它不仅能减少操作人员的负担,还可
[单片机]
AVR单片机闪烁灯程序-第一个程序
自从无线通信完成后我没做什么,而是把AVR的学习列上日程,AVR的学习我是纯手工打造,所有的实验板全部自己焊接,因为用51习惯了,他是那么的方便,到AVR这却是一件很简单的事情显得如此复杂,那下载来说吧,51的ISP是通过串口直接写到FLASH,而AVR的还要设置熔丝位,如果搞不好芯片锁死就完蛋了,至少我的水平是够呛解决的。遇到的第一个问题是价格,AVR的价格比51的贵将近2-5倍,我选的是16L,因为他的FLASH足够我这种菜鸟用的,16KB,另一个是他的宽电压,以前51就没有这个优势,最重要的其实学哪种都无所谓,编程吗,其实就是一个中心思想的问题,只要你有好的算法,用什么语言描述就无关紧要了,关键AVR有个架构是不同于51的,
[单片机]
于AVR单片机的多协议读写器的设计
引言 射频识别(RFID)是利用无线方式对电子数据载体(电子标签)进行识别的一种新兴技术。与接触式IC卡和条形码识别等系统比较,它有着巨大的优势。利用射频识别技术,能有效实现对数量大、分布区域广的信息进行智能化管理,达到高效快捷运作的目的,特别是在第二代身份证、物流、交通航运、自动收费、超市、门禁系统管理、服务领域等方面有着广泛的应用前景。随着我国国民经济的快速发展,国内RFID行业也正经历着深刻的变革。 RFID系统一般是由读写器、射频卡、应用软件来组成。其中读写器的设计是至关重要的,它决定了系统的稳定性和准确性。 除了要求其能支持一系列协议、标准和收发器外,对读写器可能还有其它功能性方面的要求,如高性能、防冲突、远/近感应距离
[单片机]