使用的是普中開發(fā)板
可實現(xiàn)音樂播放和自己彈琴功能
通過keil4軟件編程,在普中科技HC6800-MS開發(fā)板上實現(xiàn)兩個主要功能,電子琴功能與音樂播放器功能。本次項目的設(shè)計目標有兩個
一:按下矩陣鍵盤上的不同按鍵發(fā)出不同的音調(diào)實現(xiàn)電子琴功能;
二:按下指定按鍵開始播放預(yù)設(shè)音樂,再次按動播放結(jié)束,實現(xiàn)音樂播放器功能。
0698b22a0c9a2d624290cf6547545ff1.png (50.99 KB, 下載次數(shù): 80)
下載附件
2021-5-11 13:35 上傳
e1af6797ce227bdca199bf12f43e3009.png (26.07 KB, 下載次數(shù): 83)
下載附件
2021-5-11 13:34 上傳
單片機源程序如下:
- #include "reg52.h" //此文件中定義了單片機的一些特殊功能寄存器
- #include "SoundPlay.h"
- #include"music.h"
- extern int num;
- extern u8 piano;
- extern u8 KeyValue;
- extern unsigned char Sound_Temp_TH0,Sound_Temp_TL0; //音符定時器初值暫存
- unsigned char code LED7Code[] = {~0x3F,~0x06,~0x5B,~0x4F,~0x66,~0x6D,~0x7D,~0x07,~0x7F,~0x6F,~0x77,~0x7C,~0x39,~0x5E,~0x79,~0x71};
- // 頻率-半周期數(shù)據(jù)表 高八位 本軟件共保存了四個八度的28個頻率數(shù)據(jù)
- code unsigned char FREQH[] = {
- 0xF9, 0xF9, 0xFA, 0xFA, 0xFB, 0xFB, 0xFC, 0xFC}; //1,2,3,4,5,6,7,i
- //超高音 1234567
- // 頻率-半周期數(shù)據(jù)表 低八位
- code unsigned char FREQL[] = {
- 0x21, 0xE1, 0x8C, 0xD8, 0x68, 0xE9, 0x5B, 0x8F}; //超高音 1234567
- void Delay1ms(unsigned int count)
- {
- unsigned int i,j;
- for(i=0;i<count;i++)
- for(j=0;j<120;j++);
- }
- void main()
- {
- InitialSound();
- while(1)
- {
- while(piano){
- keypros();
- if(KeyValue>=5&&KeyValue<=12)
- P0 = LED7Code[(KeyValue-4)%16]&0x7f;
- if((piano==1)&&(GPIO_KEY!=0xf0)){
- if(KeyValue>=4){
- Sound_Temp_TH0 = FREQH[KeyValue-5];
- Sound_Temp_TL0 = FREQL[KeyValue-5];
- TH0 = Sound_Temp_TH0; //控制音調(diào)
- TL0 = Sound_Temp_TL0;
- TR0 = 1; //啟動T0, 由T0輸出方波去發(fā)音
- }
- }
- else
- {
- TR0 = 0;
- }
- }
- P0=0xFF;
- if(piano==0){
- if(num==1){
- Play(Music_Girl,0,3,360);
- Delay1ms(500);
- }
- if(num==2){
- Play(Music_Same,0,3,360);
- Delay1ms(500);
- }
- if(num==3){
- Play(Music_Two,0,3,360);
- Delay1ms(500);
- }
- }
- }
- }
復(fù)制代碼
51hei.png (5.88 KB, 下載次數(shù): 85)
下載附件
2021-5-11 16:31 上傳
所有資料51hei提供下載:
音樂播放器程序.zip
(56.38 KB, 下載次數(shù): 12)
2021-5-11 13:15 上傳
點擊文件名下載附件
音樂播放器程序 下載積分: 黑幣 -5
|