AVR笔记9:蜂鸣器产生音节节拍(GCC)
》》点此进入 http://bbs.armavr.com/ ARM-AVR嵌入式开发论坛
一、程序结构

下载 (7.07 KB)
2009-8-10 10:03
二、仿真效果

下载 (117.78 KB)
2009-8-10 10:03
三、程序源码
1、main.c
- /*******************************************************************************
- Platform : AVR mega16学习板(www.iccavr.com)
- Project : 实验九:蜂鸣器产生音节节拍
- Clock F : 3.6864MHz
- Software: WinAVR-20090313+Proteus7.4
- Author : 林夕依然
- Version : 08.12.07
- Updata : 09.02.26 模块化
- 09.05.03 增加proteus仿真模型,仿真通过。
- 09.07.22 WinAVR-20090313调试通过
- comments:
- 1、以学习板LED和蜂鸣器为硬件电路,实现蜂鸣器音节控制:7音节由低到高-LED流水-
- -7音节由高到低-LED流水
- 2、TC1的CTC工作模式下,频率发生器频率可变程序的编写
- 3、使用GCC自带延时函数
- *******************************************************************************/
- #include <avr/io.h>
- #include <util/delay.h>
- #include "buzzer.h"
-
- int main(void)
- {
- unsigned char i;
-
- DDRA = 0x00; /*方向输入*/
- PORTA = 0xFF; /*打开上拉*/
- DDRB = 0xFF; /*方向输出*/
- PORTB = 0xFF; /*高电平*/
- DDRC = 0x00;
- PORTC = 0xFF;
- DDRD = 0xFF;
- PORTD = 0xFF;
-
- while (1)
- {
- TCCR1A = 0x40;
- TCCR1B = 0x09; //比较匹配时OCA1电平取反,CTC模式,无预分频
-
- buzzer01(); //7种声音,由低到高
- for (i = 0; i < 8; i ++)
- {
- PORTB = ~(1 << i);
- _delay_ms(200);
- }
- PORTB=0XFF; //关闭所有LED
-
- buzzer02(); //7种声音,由高到低
- for (i = 0; i < 8; i ++)
- {
- PORTB = ~(1 << i);
- _delay_ms(200);
- }
- PORTB=0XFF; //关闭所有LED
-
- }
- }
2、buzzer.c
- #include <avr/io.h>
- #include <util/delay.h>
-
- //7种声音,由低到高
- void buzzer01(void)
- {
- for(OCR1A= 1000;OCR1A<1700;OCR1A+=100)
- {
- TCCR1A = 0x40;
- TCCR1B = 0x09;
- _delay_ms(200); //蜂鸣器鸣叫300mS钟,定时器一开始工作蜂鸣器即开始鸣叫
- TCCR1A = 0x00; //定时器停止工作,无频率产生,蜂鸣器停止鸣叫
- }
- }
-
- //7种声音,由高到低
- void buzzer02(void)
- {
- for(OCR1A= 1600;OCR1A>900;OCR1A-=100)
- {
- TCCR1A = 0x40;
- TCCR1B = 0x09;
- _delay_ms(200); //蜂鸣器鸣叫300mS钟,定时器一开始工作蜂鸣器即开始鸣叫
- TCCR1A = 0x00; //定时器停止工作,无频率产生,蜂鸣器停止鸣叫
- }
- }
3、buzzer.h
- void buzzer01(void);
- void buzzer02(void);
四、完整项目文件下载
http://bbs.armavr.com/thread-906-1-2.html
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
C编译器软件安装演示视频
SHARP K-160/170型彩色显示器的电源电路图
编程求助——计数器
使用瞬时频率表示 PM 和 FM 信号
AI算力新材料,「磷化铟」市场崛起
SH7764车载导航系统解決方案
单片机驱动标准PC机键盘的C51程序
SAMSUNG KX-700型多频大屏幕彩色显示器的电源电路图
TDK推出适用于汽车应用的高电压、大电容3端子滤波器
决定:开启能力之道
SUNLIHT SM-348型彩色显示器的电源电路图
摩尔斯微电子携手Gateworks,利用Wi-Fi HaLow革新工业连接
理解射频系统中的互调失真和三阶截点
俺老爸关于伊拉克的回忆——二
单片机名词解释
嵌入式通信稳如老狗?试试这个环形FIFO缓冲区设计!
单片机扩展I2C总线的编程方法
单片机控制的视频音频切换器
通过可回收、可修复的电路板解决电子垃圾问题
汇编器与PM+软件安装演示
OpenGMSL™联盟宣告成立,推动未来车载连接技术变革
Applilet软件安装演示视频
单片机来电显示器的设计与实现
自供电人工突触模拟人类色觉
适用于电动汽车高压连接器的Ultramid Advanced N系列材料新品问世
庆祝主题帖数达到10000!
SUNLIHT SM-1416型彩色显示器的电源电路图
SM+软件安装演示视频
[求助]哪位大侠肯帮个忙呢??
SAMSUNG CK-4656型彩色显示器的电源电路图