单片机音乐播放器,不能运行,出错,怎么解决

#include "iostm8s208mb.h"//主控芯片的头文件/常用数据类型定义*/#define u8 uint8_t#define u16 uint16_t#define u32 uint32_ttypedef unsigned char uint8_t;typedef unsigned short uint16_t;typedef unsigned long uint32_t;/**端口/引脚定义区域/#define KEY1 PC_IDR_IDR0/主频率16MHz/u8 Key_f=1,f=0,Music_f=0; u8 Music_i=0; //音乐计数u16 Fre,ms; //音乐频率,节奏u16 length;//计算数组长度////定义低音音名C//#define L1 262//#define L2 294 //#define L3 330 //#define L4 349 //#define L5 392 //#define L6 440 //#define L7 494 ////定义中音音名C//#define M1 523 //#define M2 587 //#define M3 659 //#define M4 698 //#define M5 784 //#define M6 880//#define M7 988 ////定义高音音名C //#define H1 1047 //#define H2 1175 //#define H3 1319 //#define H4 1397 //#define H5 1568//#define H6 1760 //#define H7 1976 //定义低音音名F (单位是Hz) #define L1 349 #define L2 392 #define L3 440 #define L4 466#define L5 523 #define L6 587 #define L7 659//定义中音音名F #define M1 698#define M2 784#define M3 880#define M4 932 #define M5 1047#define M6 1175 #define M7 1319 //定义高音音名F #define H1 1397 #define H2 1568 #define H3 1760 #define H4 1865 //定义时值单位,决定演奏的速度 ms为单位 2000为佳#define TT 2000 typedef struct { short mName; //音名short mTime; //时值,全音符,二分音符,四分音符 }tNote; const u16 music1[]={ //团结就是力量 H1,100,H1,100, M5,100,M3,50,M2,50, M1,100,M5,100, M3,100,L1,100, H1,100,H1,100, M5,10;0,M3,50,M2,50, M1,100,M6,100, M5,100,L1,50,M3,50, H1,100,L1,50,M3,50, H1,100,M6,50,M5,50, M6,100,L1,50,M3,50,H1,100,M6,100,M5,100,M3,100,H1,150,M6,50,H1,100,H1,100, //朝着法西斯 H1,100,M5,100,M3,75,M6,25,M5,50,M3,50,M2,100,M1,100,M3,100,L1,50,M3,50, H1,100,M5,100, M6,75,H1,25,M6,50,M5,50,M3,100,M3,50,M1,50,M6,100,M6,100,M6,100, H1,75,H1,25,M5,50,M5,50,M2,75,M3,25,M5,50,M5,50,M6,150,M5,50,M6,100,H2,100,H1,100,M6,50,M5,50, H1,100.,M6,50,M5,50, M3,100,M3,100,M3,100, M3,100,M3,100,H1,100,H1,100,H1,100, };const u16 music2[]={ //挥着翅膀的女孩 M6,50,M6,50,M6,50,M7,50,M7,50,M6,50,M5,50, M5,100,M3,50,M1,50,M1,50,M2,50,M3,50, M4,50,M4,25,M4,25,M4,50,M3,25,M4,25,M4,150,M3,50, M4,50,M3,50,M4,50,H2,50,H2,100,H1,50,M7,50, H1,150,H1,25,M7,25,M7,50,M5,50,M5,50,M1,50, M6,150,M6,50,M5,50,M1,50,M1,50,M3,50, M2,150,M3,25,M4,25,M4,25,M4,50,M5,50,H1,50,M7,50, H1,150,H2,50,H3,50,H2,50,H1,50,H7,50, H1,150,H1,50,M7,50,M5,50,M5,50,M1,50, M6,150,M6,50,M5,100,H1,50,M7,50, H1,400, M4,100,M4,50,M6,50,M5,50,M1,50,M1,100, M4,150,M1,50,H2,100,M3,100, M1,400,};const u16 music3[]={ //欢乐颂 M3,100,M3,100,M4,100,M5,100,M5,100,M4,100,M3,100,M2,100,M1,100,M1,100,M2,100,M3,100,M3,150,M2,50,M2,200, M3,100,M3,100,M4,100,M5,100,M5,100,M4,100,M3,100,M2,100,M1,100,M1,100,M2,100,M3,100,M2,150,M1,50,M1,200, M2,100,M2,100,M3,100,M1,100,M2,100,M3,50,M4,50,M3,100,M1,100,M2,100,M3,50,M4,50,M3,100,M2,100,M1,100,M2,100,L5,100,M3,100, M3,100,M3,100,M4,100,M5,100,M5,100,M4,100,M3,100,M4,50,M2,50,M1,100,M1,100,M2,100,M3,100,M2,150,M1,50,M1,200, M2,100,M2,100,M3,100,M1,100,M2,100,M3,50,M4,50,M3,100,M1,100,M2,100,M3,50,M4,50,M3,100,M2,100,M1,100,M2,100,L5,100,M3,100, M3,100,M3,100,M4,100,M5,100,M5,100,M4,100,M3,100,M4,50,M2,50,M1,100,M1,100,M2,100,M3,100,M2,150,M1,50,M1,200};int main(void){ Clk_Tran_HSE(); PC_DDR_DDR0 = 0; PC_CR1_C10 = 1; PC_CR2_C20 = 0; Buzz_Init(); TIM3_Init(); TIM4_Init(); TTS6288A_Init(); asm("rim"); //打开总中断 TTS6288A_Send("5");//声量 delay(10); TTS6288A_Send("开始听音乐吧"); while(1) { if(KEY1==0) { delay(10); if(KEY1==0&&Key_f==1) { if(++Music_f == 4) Music_f = 0; Key_f=0; } } else Key_f=1; switch(Music_f) { case 1: if(f==1) { f = 2; length = sizeof(music1)/sizeof(music1[0]); TIM3_CR1 |= 0x01; //使能计数器,CEN=1 Music_i = 0; } break; case 2: if(f==2) { f = 3; length = sizeof(music2)/sizeof(music2[0]); Music_i = 0; } break; case 3: if(f==3) { f = 0; length = sizeof(music3)/sizeof(music3[0]); Music_i = 0; } break; case 0: if(f==0) { f = 1; TIM3_CR1 &= 0xfe; Music_i = 0; } } }}void Buzz_Init(void){ //PD4低速推挽输出 PD_DDR_DDR4 = 1; PD_CR1_C14 = 1; PD_CR2_C24 = 0;}void TIM3_Init(void) //2ms{ TIM3_PSCR = 0x04; // 16分频1MHz TIM3_ARRH = (1000-1)>>8; TIM3_ARRL = (1000-1)&0x00ff; TIM3_IER = 0x01; //开启tim3更新中断 TIM3_CNTRH= 0x00; //初始值 TIM3_CNTRL= 0x00; //初始值 TIM3_CR1 &= 0xfe; //不使能计数器,CEN=1}void TIM4_Init(void) //1ms{ TIM4_PSCR = 0x07; // 128分频125kHz TIM4_ARR = 0x7c; // 自动重装载寄存器125,1ms TIM4_IER = 0x01; //开启tim4更新中断 TIM4_CNTR = 0x00; //初始值 TIM4_CR1 |= 0x01; //使能计数器,CEN=1}void TTS6288A_Init(void){ UART3_CR1=0x00; // 无校验 UART3_CR3=0x00; //位停止位 UART3_BRR2=0x03; // 配置波特率,9600 UART3_BRR1=0x68; UART3_CR2=0x08;//使能发送}void TTS6288A_Send(u8str){ while(*str != '\0') { UART3_SR &= 0xBF; UART3_DR = *str++; //将待发送数据放入数据寄存器 while(!(UART3_SR & 0x40)); //等待发送完成 UART3_SR &= 0xBF; //清除发送完成标志位 }}void delay(u16 Count)//延时函数{ u8 i,j; while(Count--) { for(i=0;i<50;i++) for(j=0;j<20;j++); }}#pragma vector=0x19__interrupt void TIM4_UPD_OVF_IRQHandler(void) //定时器4 1ms{ if(ms) ms--; if(Music_f) { if(!ms) //音乐播放 { if(Music_i<(length/2)) { switch(Music_f) { case 1: Fre = music1[2*Music_i]; ms =6*music1[2*Music_i+1];//音长的时间都乘以5即一拍为500微秒 break; case 2: Fre = music2[2*Music_i]; ms =6*music2[2*Music_i+1];//音长的时间都乘以5即一拍为500微秒 break; case 3: Fre = music3[2*Music_i]; ms =6*music3[2*Music_i+1];//音长的时间都乘以5即一拍为500微秒 } TIM3_ARRH = Fre>>8; //频率 TIM3_ARRL = Fre&0x00ff; TIM3_CNTRH= (Fre/2)>>8;; //初始值 50%占空比 TIM3_CNTRL= (Fre/2)&0x00ff; //初始值 // while(ms); Music_i++; } else Music_i=0; } } TIM4_SR = 0; //清除标志位}#pragma vector=0x11__interrupt void TIM3_UPD_OVF_IRQHandler(void) //定时器3 //频率调节{ BUZZ = !BUZZ; TIM3_SR1 = 0;}

错误:不能运行,很多错误,expected an identifier

可以放到程序卡片里嘛,太乱了