チーム2125

課題名

Greeeen キセキ

研究者名

Masaya Suzuki
Ryunosuke Seki

使用器具

PSoC基板
PSoC MiniProg
スピーカー

概要

Greeeenの「キセキ」のタイトルと歌詞をLCDに表示させ、スピーカーで音楽を演奏する


ソースコード

#include <m8c.h> // part specific constants and macros
#include "PSoCAPI.h" // PSoC API definitions for all User Modules
#pragma interrupt_handler myISR
int PW=125; // Pulse Width
int SILENT=0, sss = 154, S=153, R=136,C=121, DDd = 117,DD=115,DDC=116, LLl=101,LL=102, LLC=103, MM=91, MMC=92,
FF=86, FFC=85, SS=77, RR=68, 
  CC=61;
int TC=0; //Time Count

void myISR(void)
{
TC += 1; //TC = TC +1
PWM16_1_WritePulseWidth(PW);
if(TC == 1){
LCD_1_Init();
LCD_1_Position(0,0);
LCD_1_PrCString("\xb7\xbe\xb7");
LCD_1_Position(1,0);
LCD_1_PrCString("\xcc\xc0\xd8\xd6\xd8\xbf\xaf\xc3\xb1\xd9\xb2\xc3");
PWM16_1_WritePeriod(DD);//ふ
}
else if (TC == 2)
PWM16_1_WritePeriod(DD);//た
else if(TC == 3)
PWM16_1_WritePeriod(LL);//り
else if (TC == 4)
PWM16_1_WritePeriod(LL);//よ
else if(TC == 5)
PWM16_1_WritePeriod(MM);//り
else if(TC == 7)
PWM16_1_WritePeriod(FF);//そ
else if(TC == 8)
PWM16_1_WritePeriod(FF);//って
else if(TC == 9)
PWM16_1_WritePeriod(MM);//あ
else if(TC == 12)
PWM16_1_WritePeriod(LL);//る
else if(TC == 13)
PWM16_1_WritePeriod(LLC);//い
else if(TC == 16){
LCD_1_Init();
LCD_1_Position(0,0);
LCD_1_PrCString("\xb7\xbe\xb7");
LCD_1_Position(1,0);
LCD_1_PrCString("\xc4\xdc\xc9\xb1\xb2\xb5\xb6\xc0\xc1\xc6\xbc\xc3");
PWM16_1_WritePeriod(S);//て
}

else if(TC == 17 )
PWM16_1_WritePeriod(DD);//と
else if (TC == 18)
PWM16_1_WritePeriod(DD);//わ
else if(TC == 19)
PWM16_1_WritePeriod(LL);//の
else if(TC == 20)
PWM16_1_WritePeriod(LL);//あ
else if (TC == 21)
PWM16_1_WritePeriod(MM);//い
else if(TC == 22)
PWM16_1_WritePeriod(MMC);//お
else if (TC == 23)
PWM16_1_WritePeriod(FF);//か
else if(TC == 24)
PWM16_1_WritePeriod(FFC);//た
else if (TC == 25)
PWM16_1_WritePeriod(SS);//ち
else if(TC == 28)
PWM16_1_WritePeriod(DD);//に
else if (TC == 29)
PWM16_1_WritePeriod(DDC);//し

else if(TC == 32){
LCD_1_Init();
LCD_1_Position(0,0);
LCD_1_PrCString("\xb7\xbe\xb7");
LCD_1_Position(1,0);
LCD_1_PrCString("\xb2\xc2\xcf\xc3\xde\xd3\xb7\xd0\xc9\xd6\xba\xc3\xde");
PWM16_1_WritePeriod(DD);//て
}
else if(TC == 33)//ン
PWM16_1_WritePeriod(DD);
else if(TC == 34)//ブ
PWM16_1_WritePeriod(LL);
else if(TC == 35)//
PWM16_1_WritePeriod(LL);
else if(TC == 36)//ゼ
PWM16_1_WritePeriod(MM);
else if(TC == 37)//ン
PWM16_1_WritePeriod(MM);
else if(TC == 38)//ブ
PWM16_1_WritePeriod(FF);
else if(TC == 39)//
PWM16_1_WritePeriod(FF);
else if(TC == 40)//ン
PWM16_1_WritePeriod(SS);
else if(TC == 42)//ブ
PWM16_1_WritePeriod(RR);
else if(TC == 43)//
PWM16_1_WritePeriod(SS);
else if(TC == 44)//ゼ
PWM16_1_WritePeriod(SS);
else if(TC == 46)//ン
PWM16_1_WritePeriod(MM);
else if(TC == 47)//ブ
PWM16_1_WritePeriod(SS);

else if(TC == 48){
LCD_1_Init();
LCD_1_Position(0,0);//
LCD_1_PrCString("\xb7\xbe\xb7");
LCD_1_Position(1,0);
LCD_1_PrCString("\xdc\xd7\xaf\xc3\xb2\xc0\xb8\xc3");
PWM16_1_WritePeriod(FF);//
}
else if(TC ==50)
PWM16_1_WritePeriod(MM);//
else if(TC == 51)
PWM16_1_WritePeriod(LL);//
else if(TC == 52)
PWM16_1_WritePeriod(LL);//
else if(TC == 54)
PWM16_1_WritePeriod(DD);//
else if(TC == 55)
PWM16_1_WritePeriod(MM);//
else if(TC == 56)
PWM16_1_WritePeriod(MM);//
else if(TC == 58)
PWM16_1_WritePeriod(S);//あ
else if(TC == 59){
LCD_1_Init();
LCD_1_Position(0,0);
LCD_1_PrCString("\xb7\xbe\xb7");
LCD_1_Position(1,0);
LCD_1_PrCString("\xb1\xd8\xb6\xde\xc4\xb3\xd4\x41\x68");
PWM16_1_WritePeriod(MM);//り
}

else if(TC == 60)
PWM16_1_WritePeriod(LL);//が
else if(TC == 61)
PWM16_1_WritePeriod(DD);//と
else if(TC == 62)
PWM16_1_WritePeriod(C);//う
else if(TC == 63)
PWM16_1_WritePeriod(DD);//や
else if(TC == 67)
PWM16_1_WritePeriod(RR);//ah
else if(TC == 71)
PWM16_1_WritePeriod(SS);//ah

else if(TC == 73){
LCD_1_Init();
LCD_1_Position(0,0);
LCD_1_PrCString("\xb7\xbe\xb7");
LCD_1_Position(1,0);
LCD_1_PrCString("\xb1\xb2\xbc\xc3\xd9\xbc\xde\xac\xcf\xc0\xde");
PWM16_1_WritePeriod(DD);//ど
}
else if(TC == 74)
PWM16_1_WritePeriod(DD);//あ
else if(TC == 75)
PWM16_1_WritePeriod(MM);//い
else if(TC == 76)
PWM16_1_WritePeriod(LL);//し
else if(TC == 77)
PWM16_1_WritePeriod(DD);//て
else if(TC == 78)
PWM16_1_WritePeriod(C);//る
else if(TC == 79)
PWM16_1_WritePeriod(DD);//じゃ
else if(TC == 83)
PWM16_1_WritePeriod(FF);//まあ
else if(TC == 87)
PWM16_1_WritePeriod(MM);//だ

else if(TC == 89){//わ
LCD_1_Init();
LCD_1_Position(0,0);
LCD_1_PrCString("\xb7\xbe\xb7");
LCD_1_Position(1,0);
LCD_1_PrCString("\xc0\xd8\xc5\xb2\xb9\xc4\xde\xbe\xd2\xc3\xb2\xdc\xbe\xc3");
PWM16_1_WritePeriod(DD);//せ
}
else if(TC == 90)
PWM16_1_WritePeriod(DD);//た
else if(TC == 91)
PWM16_1_WritePeriod(MM);//り」
else if(TC == 92)
PWM16_1_WritePeriod(LL);//な
else if(TC == 93)
PWM16_1_WritePeriod(DD);//い
else if(TC == 94)
PWM16_1_WritePeriod(C);//け
else if(TC == 95)
PWM16_1_WritePeriod(DDd);
else if(TC == 97)
PWM16_1_WritePeriod(sss);//せ
else if(TC == 98)
PWM16_1_WritePeriod(MM);//め
else if(TC == 99)
PWM16_1_WritePeriod(LL);//て

else if(TC == 100)
PWM16_1_WritePeriod(DDd);//い
else if(TC == 101)
PWM16_1_WritePeriod(LL);//わ
else if(TC == 102)
PWM16_1_WritePeriod(DD);//せ
else if(TC == 105)
PWM16_1_WritePeriod(S);//て
else if(TC == 106){
LCD_1_Init();
LCD_1_Position(0,0);
LCD_1_PrCString("\xb7\xbe\xb7");
LCD_1_Position(1,0);
LCD_1_PrCString("\xbc\xb1\xdc\xbe\xc3\xde\xbd\xc4");
}
else if(TC == 107)
PWM16_1_WritePeriod(sss);//し
else if(TC == 108)
PWM16_1_WritePeriod(SILENT);
else if(TC == 109)
PWM16_1_WritePeriod(sss);//あ
else if(TC == 110)
PWM16_1_WritePeriod(DDC);
else if(TC == 111)
PWM16_1_WritePeriod(MM);//で
else if(TC == 113)
PWM16_1_WritePeriod(LLl);//す
else if(TC == 115)
PWM16_1_WritePeriod(DD);//と
else if(TC == 116)
PWM16_1_WritePeriod(DDC);//と
else if(TC == 117)
PWM16_1_WritePeriod(DDC);
else if(TC == 119)
PWM16_1_WritePeriod(SILENT);

}
void main(void){
LCD_1_Start();
LCD_1_Position(0,0);
LCD_1_PrCString("\xb7\xbe\xb7");
LCD_1_Position(1,0);
LCD_1_PrCString("\xbc\xb1\xdc\xbe\xb3\xde\xbd\xc4");
// M8C_EnableGInt ; // Uncomment this line to enable Global Interrupts
  // Insert your main routine code here.
M8C_EnableGInt;
PWM16_1_Start();
Timer16_1_EnableInt();
Timer16_1_Start();
while(1)
{ };
}

考察

参考
チーム2113,2112,2028 timer_pwm2

続けて同じ音がなる部分を少しだけ周波数を変更することで表現した。

曲の部分はtimer_pwm2を参考にした。

歌詞は以下の参考サイトを参考にあらわした。



  • 最終更新:2021-06-15 18:13:29

このWIKIを編集するにはパスワード入力が必要です

認証パスワード