📄 main.c
字号:
//-----------------------------------------------------------------
// 名称: 多首电子音乐的选播
//-----------------------------------------------------------------
// 说明: 本例运行时,每次按下K1将切换播放下一首电子音乐,对应的
// LED指示灯将被点亮.
//
//-----------------------------------------------------------------
#define F_CPU 1000000UL
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#define INT8U unsigned char
#define INT16U unsigned int
//指示灯控制(任一LED点亮时都会关闭其他指示灯)
//蜂鸣器
#define BEEP() PORTB ^= _BV(PB0)
//音符延时表,它们分别对应于0~15号音符的输出频率
INT16U Tone_Delay_Table[] =
{
};
//第一段(Tone为音符,Time为节拍)
INT8U Music1_Tone[] =
{ 3,5,5,3,2,1,2,3,5,3,2,3,5,5,3,2,1,2,3,2,1,1,0xFF };
INT8U Music1_Time[] =
{ 2,1,1,2,1,1,1,2,1,1,1,2,1,1,2,1,1,1,2,1,1,1,0xFF };
//第二段
INT8U Music2_Tone[] =
{ 1,3,3,3,3,5,4,2,5,3,7,6,5,5,7,4,4,3,6,7,2,1,0xFF };
INT8U Music2_Time[] =
{ 2,1,1,2,1,1,1,2,1,1,3,2,1,1,2,4,1,1,2,1,1,1,0xFF };
//第三段
INT8U Music3_Tone[] =
{ 0,1,2,3,4,5,5,6,7,8,9,10,11,12,13,14,15,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0xFF};
INT8U Music3_Time[] =
{ 1,1,1,1,1,1,1,1,1,1,1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1,1,1,1,1,1,1,1,1,0xFF};
//音符与延时指针数组
//音乐片段索引,音符索引
volatile INT8U Music_Idx = 2, Tone_Idx = 0;
//从当前数组中取音符的位置
volatile INT8U i = 0;
//暂停控制
volatile enum bool { FALSE = 0, TRUE = 1 } Pause = TRUE;
//-----------------------------------------------------------------
// 主程序
//-----------------------------------------------------------------
int main()
{
}
//-----------------------------------------------------------------
// T1定时器溢出中断控制音符输出
//-----------------------------------------------------------------
ISR (TIMER1_OVF_vect)
{
}
//-----------------------------------------------------------------
// 按键触发INT0中断,控制音乐段切换
//-----------------------------------------------------------------
ISR (INT0_vect)
{
}
//-----------------------------------------------------------------
// 播放启动/停止控制
//-----------------------------------------------------------------
ISR (INT1_vect)
{
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -