功能部分實現,框架已經寫好:
1、按鍵選擇音樂自動播放或自己演奏
2、EEPROM實現存儲音樂(未加入,代碼寫好需要調試)
3、.......
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png (16.98 KB, 下載次數: 69)
下載附件
2018-7-21 18:14 上傳
0.png (17.43 KB, 下載次數: 72)
下載附件
2018-7-21 18:14 上傳
0.png (55.01 KB, 下載次數: 67)
下載附件
2018-7-21 18:14 上傳
單片機源程序如下:
- #include <reg52.h>
- #include "led.h"
- #include "beep.h"
- #include "lcd1602.h"
- #include "key.h"
- #include "tim.h"
- #include "delay.h"
- #include "music.h"
- #include "musicArr.h"
- #include "SoundPlay.h"
- typedef unsigned int u16;
- typedef unsigned char u8;
- void show(u8 arr[],u8 length,u8 pos,u8 mode);
- unsigned char calcArrLen(unsigned char arr[]);
- void displayInit(void);
- u8 code ShowData[]="Electronic Organ";
- u8 code ShowData1[]="150802027";
- u8 code ShowData2[]="Welcome to use ";
- u8 code ShowData3[]="press note";
- u8 code ShowData4[]="Same song";
- u8 code ShowData5[]="Song name";
- u8 code ShowData6[]="aiwonijiubaobaowo";
- u16 FreqTemp=0;
- void main()
- {
- unsigned char i=0,key=0,timer=0,flag1=0;
- LcdInit(); //液晶屏初始化
- timInit(); //定時器初始化
- // AT24C02_Init(); //EEPROM初始化
- ledOFF(); //關閉LED燈
- InitialSound(); //音樂播放器初始化
- displayInit();
- while(1)
- {
- key=key_Scan();
- if(key==0x16&&flag==0) //播放/停止鍵 并且處于停止播放狀態,開始播放
- {
- flag=1;
- }
- else 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;
- }
- }
- if(flag==1)
- {
- if(status==1) //循環播放兩首歌曲
- {
- LcdWriteCom(0x01); //清屏
- show(ShowData5,9,4,0);
- show(ShowData4,15,0,1);
- Play(Music_Same,0,3,360);
- delay_ms(2000);
- }
- else
- {
- LcdWriteCom(0x01); //清屏
- show(ShowData5,9,4,0);
- show(ShowData6,16,0,1);
- Play(Music_Girl,0,3,360);
- delay_ms(2000);
- }
- }
- }
- }
- void displayInit(void)
- {
- unsigned char i= 0;
- for(i=0;i<16;i++)
- {
- LcdWriteData(ShowData[i]);
- }
- lcd_pos(0x40+3);
- for(i=0;i<9;i++)
- {
- LcdWriteData(ShowData1[i]);
- num=ShowData1[i]+6-'0';
- TR0=1;
- delay_ms(1000);
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載(仿真+代碼):
單片機開發實訓.zip
(321.68 KB, 下載次數: 163)
2018-7-21 17:54 上傳
點擊文件名下載附件
24鍵可播放音樂電子琴 下載積分: 黑幣 -5
|