失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 75 基于单片机钢琴电子节拍器系统设计【毕设课设】

75 基于单片机钢琴电子节拍器系统设计【毕设课设】

时间:2019-01-02 11:43:22

相关推荐

75 基于单片机钢琴电子节拍器系统设计【毕设课设】

void main(){unsigned char i=0,key=0,timer=0,flag1=0;LED1 = 0;LcdInit(); //液晶屏初始化timInit(); //定时器初始化// AT24C02_Init(); //EEPROM初始化ledOFF(); //关闭LED灯InitialSound(); //音乐播放器初始化displayInit();while(1){ key=key_Scan();if(key==0x16&&flag==0) //节拍增加{total++;if(total > 210) total = 40;Pai[0] = Number[total/100];Pai[1] = Number[total%100/10];Pai[2] = Number[total%100%10];lcd_pos(0x40); for(i=0;i<11;i++){LcdWriteData(ShowData22[i]);}for(i=0;i<5;i++){LcdWriteData(Pai[i]);}LED1 = 1;delay_ms(500);LED1 = 0;}if(key==0x17&&flag==0) //节拍减少{total--;if(total < 40) total = 210;Pai[0] = Number[total/100];Pai[1] = Number[total%100/10];Pai[2] = Number[total%100%10];lcd_pos(0x40); for(i=0;i<11;i++){LcdWriteData(ShowData22[i]);}for(i=0;i<5;i++){LcdWriteData(Pai[i]);}LED1 = 1;delay_ms(500);LED1 = 0;}if(key>0&&key<22&&flag==0) //21键音符{num=key-1;FreqTemp=Freqtab[key-1];TR0=1;}else {if(TR0==1) //之前音符键按下,延时一秒停止{delay_ms(1000);TR0=0;}}}}void displayInit(void){unsigned char i= 0;for(i=0;i<16;i++){LcdWriteData(ShowData[i]);}lcd_pos(0x40); for(i=0;i<6;i++){LcdWriteData(ShowData11[i]);}for(i=0;i<9;i++){LcdWriteData(ShowData1[i]);num=ShowData1[i]+6-'0';TR0=1;delay_ms(1000);}}//计算数组长度,最大256,针对歌谱,还需增加两个结束符unsigned char calcArrLen(unsigned char arr[]){unsigned char len=0;while(arr[len]!='\0')//计算歌曲长度{len++;}return len+2;}

资料下载地址

/s/11aSu3MeFcpolm_s0q516eg?pwd=8888

如果觉得《75 基于单片机钢琴电子节拍器系统设计【毕设课设】》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。