专栏中心

EEPW首页 > 专栏 > AVR笔记6:无源蜂鸣器驱动实验(GCC)

AVR笔记6:无源蜂鸣器驱动实验(GCC)

发布人:mayer 时间:2009-09-01 来源:工程师 发布文章
AVR笔记6:无源蜂鸣器驱动实验(GCC)

 

》》点此进入    http://bbs.armavr.com/   ARM-AVR嵌入式开发论坛

一、程序结构
程序结构

下载 (5.3 KB)
2009-7-23 21:13



二、仿真效果
点击看大图

下载 (176.84 KB)
2009-7-23 21:13



三、程序源码
1、main.c
/*******************************************************************************
Platform: AVR mega16学习板(www.iccavr.com)
Project : 实验六:无源蜂鸣器驱动实验(GCC)
Clock F : 3.6864M
Software: WinAVR-20071221+Proteus7.4
Author  : 林夕依然
Version : 08.12.06
Updata  : 09.02.26  模块化
          09.04.30  增加proteus仿真模型,通过仿真
    09.07.21  WinAVR-20071221环境下编译通过
comments:
1、以学习板蜂鸣器为硬件电路,实现蜂鸣器的周期鸣叫,同时LED流水灯运行
2、TC1的CTC工作模式下,频率发生器程序的编写
3、频率计算公式:F=系统时钟频率/(2*OCR1A)/预分频,如OCR1A=500时:
   当预分频为1时, F="3".6864MHz/2*500/1=3686.4HZ,频率表测得3678HZ
   当预分频为8时, F="3".6864MHz/2*500/8=460.8HZ,频率表测得459.8HZ
   当预分频为64时,F=3.6864MHz/2*500/64=57.6HZ,频率表测得57.4HZ
4、使用GCC自带延时函数,ICC中的DelayMs()函数在GCC中失效,不知何因
*******************************************************************************/
#include <avr/io.h>
#include <util/delay.h>
void port_init(void);
int main(void)
{
unsigned char i;
    port_init();
while (1)
      {
  for (i = 0; i < 8; i ++)
                  {
   PORTB = ~(1 << i);
   _delay_ms(300);        
   }
  TCCR1A = 0x40;        
  TCCR1B = 0x09;        //比较匹配时OCA1电平取反,CTC模式,无预分频
     //TCCR1B = 0x0A;      //比较匹配时OCA1电平取反,CTC模式,CLK/8预分频
  //TCCR1B = 0x0B;      //比较匹配时OCA1电平取反,CTC模式,CLK/64预分频
  OCR1A  = 500;         //无预分频时,频率=3.6864M/(2*500)=3686.4KHz
  _delay_ms(1000);        //蜂鸣器鸣叫1S钟,定时器一开始工作蜂鸣器即开始鸣叫
  TCCR1A = 0x00;        //定时器停止工作,无频率产生,蜂鸣器停止鸣叫
  //PORTD &= ~(1 << 5); //PD5端口置低,可以不要此句
      }
}
//端口初始化程序
void port_init(void)
{
DDRA = 0x00;      /*方向输入*/
PORTA = 0xFF;      /*打开上拉*/
DDRB = 0xFF;      /*方向输出*/
PORTB = 0xFF;      /*高电平*/
DDRC = 0x00;
PORTC = 0xFF;
DDRD = 0xFF;
PORTD = 0xFF;
}

四、完整项目文件下载

http://bbs.armavr.com/thread-799-1-2.html

专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们

关键词:

相关推荐

罗德与施瓦茨率先获得GCF对5G FR2 RRM独立模式一致性测试用例的认证

600mA输出, 30V高压输入降压DC/DC转换器--MCP16301演示板

关于单端反激变换器的变压器设计

ROHM开发出适用于AI服务器等高性能服务器电源的MOSFET

实现物流和零售自动化——第2部分

跟踪稳压电路

Microchip mTouch™电容触摸解决方案

泰克助力Magway打造零排放地下配送系统,引领物流新变革

Microchip PIC24FJ256DA210开发板在图形显示上的应用

道达尔能源将在15年内为意法半导体法国供电1.5亿千瓦时

国际整流器公司功率半导体封装介绍

瑞萨和Altium联合推出“Renesas 365”——软件定义产品的突破性解决方案

东芝推出应用于工业设备的具备增强安全功能的SiC MOSFET栅极驱动光电耦合器

高效正玄逆变器电路

高速模拟设计中电路板寄生效应测试

Power Integrations推出新款LLC开关IC,可提供1650W的连续输出功率

LISI AUTOMOTIVE在上海工厂启用罗克韦尔自动化旗下Plex ERP

Microchip超低功耗LCD单片机PIC18F87K90

Microchip dsPIC33 DSC数字电源

安森美拟以每股35.10美元现金收购Allegro MicroSystems

国际视野 2025-03-06
更多 培训课堂
更多 焦点
更多 视频

技术专区