⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 music.h

📁 Altera的NIOS2SOPC平台上的音乐播放的软件模板。 Quartus 2版本5.0 Nios2 IDE版本5.0 硬件平台自己根据软件构建
💻 H
字号:

/*
** file name ?music.h
**  
*/

#ifndef _MUSIC_H
#define _MUSIC_H
#include "system.h"

// rhythm: quarter note as a meter
#define RHYTHM   36
#define _1      RHYTHM*4     //note
#define _1d     RHYTHM*6     //dotted note 
#define _2      RHYTHM*2     //halfnote
#define _2d     RHYTHM*3     //dotted halfnote 
#define _4      RHYTHM*1     //quarter note
#define _4d     RHYTHM*3/2   //dotted quarter note 
#define _8      RHYTHM*1/2   //eighth note
#define _8d     RHYTHM*3/4   //dotted eighth note 
#define _16     RHYTHM*1/4   //sixteenth note
#define _16d    RHYTHM*3/8   //dotted sixteenth note
#define _32     RHYTHM*1/8   //thirty-second note

//低音
#define _1DO    (ALT_CPU_FREQ/131)
#define _1DOr   (ALT_CPU_FREQ/139)
#define _1RE    (ALT_CPU_FREQ/147)
#define _1REr   (ALT_CPU_FREQ/155)
#define _1MI    (ALT_CPU_FREQ/165)
#define _1FA    (ALT_CPU_FREQ/175)
#define _1FAr   (ALT_CPU_FREQ/185)
#define _1SOL   (ALT_CPU_FREQ/196)
#define _1SOLr  (ALT_CPU_FREQ/207)
#define _1LA    (ALT_CPU_FREQ/220)
#define _1LAr   (ALT_CPU_FREQ/233)
#define _1SI    (ALT_CPU_FREQ/247)
//中音
#define _DO     (ALT_CPU_FREQ/262)
#define _DOr    (ALT_CPU_FREQ/277)
#define _RE     (ALT_CPU_FREQ/294)
#define _REr    (ALT_CPU_FREQ/311)
#define _MI     (ALT_CPU_FREQ/330)
#define _FA     (ALT_CPU_FREQ/349)
#define _FAr    (ALT_CPU_FREQ/370)
#define _SOL    (ALT_CPU_FREQ/392)
#define _SOLr   (ALT_CPU_FREQ/416)
#define _LA     (ALT_CPU_FREQ/440)
#define _LAr    (ALT_CPU_FREQ/466)
#define _SI     (ALT_CPU_FREQ/492)
//高音
#define _DO1    (ALT_CPU_FREQ/523)
#define _DO1r   (ALT_CPU_FREQ/554)
#define _RE1    (ALT_CPU_FREQ/579)
#define _RE1r   (ALT_CPU_FREQ/740)
#define _MI1    (ALT_CPU_FREQ/651)
#define _FA1    (ALT_CPU_FREQ/695)
#define _FA1r   (ALT_CPU_FREQ/740)
#define _SOL1   (ALT_CPU_FREQ/784)
#define _SOL1r  (ALT_CPU_FREQ/830)
#define _LA1    (ALT_CPU_FREQ/880)
#define _LAR1r  (ALT_CPU_FREQ/932)
#define _SI1    (ALT_CPU_FREQ/983)

#define SONG_SIZE 150
#define MUTE(TONE)      (TONE)>>2    //低音为25%占空比
#define LOUD(TONE)      (TONE)>>1    //高音为50%占空比

//1=G 3/4
//乐曲为一个多行3列的2维数组
//第1列为音调,第2列为节拍,第3列音高(高音、低音)
int dachangjin[SONG_SIZE][3] = {
  {_LA, _4, LOUD(_LA)}, //2
  {_SI, _4, MUTE(_SI)}, //3
  {_SI, _4, MUTE(_SI)}, //3
  {_SI, _4d,LOUD(_SI)}, //3.
  {_LA, _8, MUTE(_LA)}, //2_
  {_SOL,_4, MUTE(_SOL)},//1
  {_MI, _4, LOUD(_MI)}, //.6
  {_SOL,_4, MUTE(_SOL)},//1
  {_SOL,_8d, MUTE(_SOL)},//1
  {_LA, _32,MUTE(_LA)}, //2__
  {_SOL,_2d,MUTE(_SOL)},//1--
  
  {_LA, _4, LOUD(_LA)}, //2
  {_SI, _4, MUTE(_SI)}, //3
  {_SI, _4, MUTE(_SI)}, //3
  {_SI, _4d,LOUD(_SI)}, //3.
  {_RE1,_8, MUTE(_RE1)},//5
  {_SI, _4, MUTE(_SI)}, //3
  {_SI, _4, MUTE(_SI)}, //3
  {_LA, _4, MUTE(_LA)}, //2
  {_SI, _4, MUTE(_SI)}, //3
  {_SI, _2d,MUTE(_SI)}, //3--
  
  {_RE1,_4, LOUD(_RE1)},//5
  {_MI1,_4, MUTE(_MI1)},//6
  {_MI1,_4, MUTE(_MI1)},//6
  {_MI1,_4d,LOUD(_MI1)},//6
  {_RE1,_8, MUTE(_RE1)},//5
  {_SI, _4, MUTE(_SI)}, //3
  {_SI, _4, LOUD(_SI)}, //3
  {_RE1,_4, MUTE(_RE1)},//5
  {_MI1,_8, MUTE(_MI1)},//6
  {_RE1,_32,MUTE(_RE1)},//5
  {_MI1,_32,MUTE(_MI1)},//6
  {_RE1,_2d,MUTE(_RE1)},//5
  
  {_LA, _4, LOUD(_LA)}, //2
  {_SI, _4, MUTE(_SI)}, //3
  {_SI, _4, MUTE(_SI)}, //3
  {_LA, _4d,LOUD(_LA)}, //3.
  {_SI, _8, MUTE(_SI)}, //2
  {_SI, _4, MUTE(_SI)}, //3
  {_LA, _4, LOUD(_LA)}, //2
  {_SI, _4, MUTE(_SI)}, //3
  {_MI, _4, LOUD(_MI)}, //.6
  {_SOL,_16,MUTE(_SOL)},//1
  {_MI, _2d,MUTE(_MI)}, //.6
  {_MI, _4,0},          //stop
  {_LA, _4, LOUD(_LA)}, //2
  {_SI, _4, MUTE(_SI)}, //3
  {_SI, _4, MUTE(_SI)}, //3
  {_SI, _4d,LOUD(_SI)}, //3.
  {_LA, _8, MUTE(_LA)}, //2_
  {_SOL,_4, MUTE(_SOL)},//1
  {_MI, _4, LOUD(_MI)}, //.6
  {_SOL,_4, MUTE(_SOL)},//1
  {_SOL,_8d,MUTE(_SOL)},//1
  {_LA, _32,MUTE(_LA)}, //2__
  {_SOL,_2d,MUTE(_SOL)},//1--
  
  {_LA, _4, LOUD(_LA)}, //2
  {_SI, _4, MUTE(_SI)}, //3
  {_SI, _4, MUTE(_SI)}, //3
  {_SI, _4d,LOUD(_SI)}, //3.
  {_RE1,_8, MUTE(_RE1)},//5
  {_SI, _4, MUTE(_SI)}, //3
  {_SI, _4, MUTE(_SI)}, //3
  {_LA, _4, MUTE(_LA)}, //2
  {_SI, _4, MUTE(_SI)}, //3
  {_SI, _2d,MUTE(_SI)}, //3--
  
  {_RE1,_4, LOUD(_RE1)},//5
  {_MI1,_4, MUTE(_MI1)},//6
  {_MI1,_4, MUTE(_MI1)},//6
  {_MI1,_4d,LOUD(_MI1)},//6
  {_RE1,_8, MUTE(_RE1)},//5
  {_SI, _4, MUTE(_SI)}, //3
  {_SI, _4, LOUD(_SI)}, //3
  {_RE1,_4, MUTE(_RE1)},//5
  {_MI1,_4, MUTE(_MI1)},//6
  {_RE1,_2d,MUTE(_RE1)},//5
  
  {_LA, _4, LOUD(_LA)}, //2
  {_SI, _4, MUTE(_SI)}, //3
  {_SI, _4, MUTE(_SI)}, //3
  {_LA, _4d,LOUD(_LA)}, //3.
  {_SI, _8, MUTE(_SI)}, //2
  {_SI, _4, MUTE(_SI)}, //3
  {_LA, _4, LOUD(_LA)}, //2
  {_SI, _4, MUTE(_SI)}, //3
  {_MI, _4, LOUD(_MI)}, //.6
  {_SOL,_16,MUTE(_SOL)},//1
  {_MI, _2d,MUTE(_MI)}, //.6--
  
  {_LA, _16,LOUD(_LA)}, //2
  {_LA, _16,LOUD(_LA)}, //2
  {_LA, _16d,LOUD(_LA)}, //2
  {_SOL,_8, MUTE(_SOL)},//1
  {_MI, _4, MUTE(_MI)}, //.6
  {_LA, _16,LOUD(_LA)}, //2
  {_LA, _16,LOUD(_LA)}, //2
  {_LA, _16d,LOUD(_LA)}, //2
  {_SOL,_8, MUTE(_SOL)},//1
  {_MI, _4, MUTE(_MI)}, //.6
  {_LA, _4, LOUD(_LA)}, //2
  {_SI, _4, MUTE(_SI)}, //3
  {_SOL,_4, MUTE(_SOL)},//1
  {_LA, _4d,LOUD(_LA)}, //2
  {_SI, _8, MUTE(_SI)}, //3
  {_RE1,_4, MUTE(_RE1)},//5
  {_MI1,_16,LOUD(_MI1)},//6
  {_MI1,_16,LOUD(_MI1)},//6
  {_MI1,_16d,LOUD(_MI1)},//6
  {_RE1,_8, MUTE(_RE1)},//5
  {_SI, _4, MUTE(_SI)}, //3
  {_LA, _16,LOUD(_LA)}, //2
  {_LA, _16,LOUD(_LA)}, //2
  {_LA, _16d, LOUD(_LA)}, //2
  {_SOL,_8, MUTE(_SOL)},//1
  {_MI, _4, MUTE(_MI)}, //.6
  {_MI, _4, LOUD(_MI)}, //.6
  {_RE, _4, MUTE(_RE)}, //.5
  {_MI, _4, MUTE(_MI)}, //.6
  {_MI, _2d,MUTE(_MI)}, //.6
  {_MI, _4,0},          //stop
  {_MI, _4,0},          //stop
   };

/*{_1SOL, _4d, MUTE(_1SOL)}, //.1    
{_1LA, _4d, MUTE(_1LA)}, //.2   
{_1SI, _4d, MUTE(_1SI)}, //.3   
{_DO, _4d, MUTE(_DO)}, //.4   
{_RE, _4d, MUTE(_RE)}, //.5
{_MI, _4d, MUTE(_MI)}, //.6
{_FA, _4d, MUTE(_FA)}, //.7   
{_SOL, _4d, MUTE(_SOL)}, //1    
{_LA, _4d, MUTE(_LA)}, //2   
{_SI, _4d, MUTE(_SI)}, //3   
{_DO1, _4d, MUTE(_DO1)}, //4   
{_RE1, _4d, MUTE(_RE1)}, //5
{_MI1, _4d, MUTE(_MI1)}, //6
{_FA1, _4d, MUTE(_FA1)}, //7
{_SOL1, _4d, MUTE(_SOL1)}, //1.
{_LA1, _4d, MUTE(_LA1)}, //2.
{_SI1, _4d, MUTE(_SI1)}, //3.
*/
#endif


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -