資源簡介
基于51單片機的電子琴,已經試驗過,程序沒有問題

代碼片段和文件信息
?#include“reg52.h“
#define?uchar?unsigned?char
#define?uint?unsigned?int
sbit?k1=P1^0;
sbit?k2=P1^1;
sbit?k3=P1^2;
sbit?k4=P1^3;
sbit?k5=P1^4;
sbit?k6=P1^5;
sbit?k7=P1^6;
sbit?k8=P1^7;
sbit?k9=P0^1;
sbit?k10=P0^2;
sbit?beep=P2^0;
uchar?th0_f;
uchar?tl0_f;?
uchar?code?freq[36*2]={?
????0x8C0xF8//00262HZ?1??????//00
????0xF30xF8//00277HZ?1#??????//01
????0x560xF9//00293HZ?2??????//02
????0xB80xF9//00311HZ?2#??????//03
????0x100xFA//00329HZ?3??????//04
????0x670xFA//00349HZ?4??????//05
????0xB90xFA//00370HZ?4#??????//06
????0x040xFB//00392HZ?5???????//07
????0x4B0xFB//00415HZ?5#??????//08
????0x090xFB//00440HZ?6??????//09
????0xCF0xFB//00466HZ?6#??????//10
????0x0C0xFC//00494HZ?7????//11
????0x440xFC//00523HZ?1?????????//12
????0x780xFC//00553HZ?1#????//13
????0xAB0xFC//00586HZ?2?????????//14
????0xDB0xFC//00621HZ?2#????//15
????0x080xFD//00658HZ?3?????????//16
????0x330xFD//00697HZ?4?????????//17
????0x5B0xFD//00739HZ?4#????//18
????0x810xFD//00783HZ?5?????????//19
????0xA60xFD//00830HZ?5#????//20
????0xC70xFD//00879HZ?6?????????//21
????0xE70xFD//00931HZ?6#????//22
????0x050xFE//00987HZ?7?????????//23
????0x220xFE//01045HZ?‘1??????????//24
????0x3C0xFE//01106HZ?‘1#??????//25
????0x550xFE//01171HZ?‘2??????//26
????0x6D0xFE//01241HZ?‘2#??????//27
????0x840xFE//01316HZ?‘3??????//28
????0x990xFE//01393HZ?‘4??????//29
????0xAD0xFE//01476HZ?‘4#???//30
????0xC00xFE//01563HZ?‘5??????//31
????0xD20xFE//01658HZ?‘5#??????//32
????0xE30xFE//01755HZ?‘6??????//33
????0xF30xFE//01860HZ?‘6#??????//34
????0x020xFF//01971HZ?‘7??????//35
};
uchar?code?jie[8]={1214161719212324};?
//定時中斷?0用于產生唱歌頻率?
timer0()?interrupt?1??
{?
????TL0=tl0_f;
TH0=th0_f;??//調入預定時值?????
beep=~beep;???????????//取反音樂輸出?IO?
}
//******************************?
//音樂符號串解釋函數?
//入口:要解釋的音樂符號串輸出的音調串輸出的時長串?
changedata(uchar?*songuchar?*diaouchar?*jie)?
{?
????uchar?ii1j;?
????char?gaodi;?//高低+/-12?音階?
????uchar?banyin;//有沒有半個升音階?
????uchar?yinchang;//音長?
????uchar?code?jie7[8]={012141617192123};?//C?調的?7?個值?
?
????*diao=*song;?
????for(i=0i1=0;;)?
????{?
????????gaodi=0;?//高低=0?
????????banyin=0;//半音=0?
????????yinchang=4;//音長?1?拍?
????????if((*(song+i)==‘|‘)?||?(*(song+i)==‘?‘))?i++;??
??//拍子間隔和一個空格過濾?
?
????????switch(*(song+i))??
????????{?????
????????????case?‘‘:?gaodi=-12;i++;//低音?
????????????break;?
?????
????????????case?‘‘‘:?gaodi=12;i++;?//高音?
????????????break;?
????????}?
?
????????if(*(song+i)==0)??//遇到?0?結束?
????????{?
????????????*(diao+i1)=0;?//加入結束標志?0?
????????????*(jie+i1)=0;?
????????????return;?
????????}?
?
????????j=*(song+i)-0x30;?i++;?//取出基準音?
????????j=jie7[j]+gaodi;?//加上高低音?
???????
?
yinc:???switch(*(song+i))?????????
?{?????
????????????case?‘#‘:?//有半音?j?加一個音階??
????????????????i++;j++;?
????goto?yinc;??
?????????????
?
????????????case?‘-‘:?//有一個音節加長?
????
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2013-01-25?22:09??電子琴\
?????目錄???????????0??2013-01-25?22:09??電子琴\C版\
?????文件????????5115??2002-04-16?14:32??電子琴\C版\STARTUP.A51
?????文件???????11665??2012-12-24?15:59??電子琴\C版\STARTUP.LST
?????文件?????????749??2012-12-24?15:59??電子琴\C版\STARTUP.OBJ
?????文件????????5027??2012-12-24?15:59??電子琴\C版\TemMain.LST
?????文件????????4163??2012-12-24?15:59??電子琴\C版\TemMain.OBJ
?????文件????????2350??2010-10-10?11:50??電子琴\C版\TemMain.c
?????文件???????12097??2012-12-24?15:59??電子琴\C版\Temp
?????文件???????12141??2012-12-24?15:59??電子琴\C版\Temp.LST
?????文件???????17805??2012-12-24?15:59??電子琴\C版\Temp.M51
?????文件????????9574??2012-12-24?15:59??電子琴\C版\Temp.OBJ
?????文件????????2130??2011-05-11?16:33??電子琴\C版\Temp.Uv2.bak
?????文件????????6698??2011-02-10?12:10??電子琴\C版\Temp.c
?????文件????????3592??2012-12-24?15:59??電子琴\C版\Temp.hex
?????文件??????????72??2012-12-24?15:59??電子琴\C版\Temp.lnp
?????文件????????1473??2011-05-11?16:33??電子琴\C版\Temp.opt.bak
?????文件?????????417??2012-12-24?15:59??電子琴\C版\Temp.plg
?????文件???????60597??2012-12-24?16:00??電子琴\C版\Temp.uvopt
?????文件???????13507??2012-02-04?13:18??電子琴\C版\Temp.uvproj
?????文件????????1308??2011-02-13?23:02??電子琴\C版\Temp_Opt.Bak
?????文件????????1712??2011-01-31?10:52??電子琴\C版\Temp_Uv2.Bak
?????文件???????78536??2012-12-24?15:58??電子琴\C版\Temp_uvopt.bak
?????文件????????2691??2009-05-01?21:32??電子琴\C版\hc595.LST
?????文件????????2108??2009-05-01?21:32??電子琴\C版\hc595.OBJ
?????文件????????1110??2008-10-20?22:27??電子琴\C版\hc595.c
?????文件????????6376??2009-05-07?14:37??電子琴\STARTUP.A51
?????文件???????14048??2012-07-13?20:39??電子琴\STARTUP.LST
?????文件?????????758??2012-07-13?20:39??電子琴\STARTUP.OBJ
?????文件???????13175??2012-07-13?20:39??電子琴\zc1.LST
?????文件???????10913??2012-07-13?20:39??電子琴\zc1.OBJ
............此處省略11個文件信息
- 上一篇:串口抓包工具 非常好的!
- 下一篇:D3 地圖可視化數據美國地圖
評論
共有 條評論