資源簡介
。本系統(tǒng)設(shè)計(jì)是以51系列單片機(jī)AT89S52為主芯片,附有矩陣鍵盤、LED顯示管、揚(yáng)聲器組成,系統(tǒng)完成顯示輸入信息、播放相應(yīng)音符等基本功能。
附件為C代碼。
附件為C代碼。

代碼片段和文件信息
/**************************************************************
程序名稱:模擬電子琴
**************************************************************/?
#include ???? ? //定義頭文件
#define?uchar?unsigned?char //宏定義
#define?led?P0 //定義LED等位P0口
#define?sw_port?P1 //中間變量。。。使按鍵和led對應(yīng)
sbit?buzzer=P2^7; //揚(yáng)聲器管腳
sbit?key1=P3^2; //播放音樂與彈奏歌曲轉(zhuǎn)換
sbit?key3=P3^4; //掉電存儲(chǔ)按鍵
sbit?key4=P3^5;?????????????????//播放掉電存儲(chǔ)的歌曲?????????????????????????????????????????
sbit?keybofang=P3^3; //播放剛才彈奏的歌曲
sbit?key7=P3^0; //音調(diào)鍵。。。?和??歌曲鍵
sbit?key8=P3^1; //音調(diào)鍵。。。?和??歌曲鍵
sbit?key6=P1^7;
sbit?key5=P1^6;? ??
sbit?sda=P1^1; ?????? //24c02數(shù)據(jù)線??
sbit?scl=P1^0; //24c02時(shí)鐘線
uchar?keydikeysb; ?? //定義變量
uchar?tone_H; //定義變量
uchar?tone_L; //定義變量
void?beat_125(unsigned?char); //聲明函數(shù)
uchar?code?beat1[]={16888844168448444 //歌曲1節(jié)拍?
4441616884412816168444416};
uchar?code?song1[]={6535765635653 //歌曲1簡譜
21653223556321532161115};
uchar?code?beat2[]={777?789?123?624?444?12? //歌曲二節(jié)拍
822?444?822?444?2244?12};
uchar?code?song2[]={128?851?333?543 //歌曲二簡譜
?543?2?210?123?432?345?543?2115};
uchar?code?beat4[]={444?624?444?624?444?12?
822?444?822?444?2244?12};
uchar?code?song4[]={111?321?333?543
?543?2?210?123?432?345?543?21?15};
uchar?code?tone[]={115102918677686157}; //歌曲音調(diào)
unsigned?int?code?tone1[]={101295685275971663856850647842637953110};?//歌曲音調(diào)
uchar?song3[43]; ?????? //定義空數(shù)組
void?play(uchar*uchar*); ?? //演奏歌曲函數(shù)
void?delay8um(uchar); ?? //第一8um延時(shí)函數(shù)
void?sound(uchar); //彈奏發(fā)聲函數(shù)
/*******************************************
函數(shù)功能:節(jié)拍的延時(shí)的基本單位,用于24c08簡單延時(shí)
******************************************/ ?
void?delay() //簡單延時(shí)函數(shù)
{;;}
/*******************************************
函數(shù)功能:節(jié)拍的延時(shí)的基本單位,延時(shí)1ms
******************************************/
void?delay1ms(uchar?x) ?? //1um延時(shí)函數(shù)
{
uchar?j;
while(x--)
for(j=120;j>0;j--);
}
/**************************************************************
函數(shù)功能:24c02驅(qū)動(dòng)程序??????用IIC總線進(jìn)行傳輸
**************************************************************/?
void?init_c02() //24c02初始化
{
sda=1;
delay();
scl=1;
delay();
}
void?start_c02() ????????????? //24c02的啟動(dòng)信號(hào)
{
scl=1;
delay(); ??
sda=1; ?
delay();
sda=0;
delay();
}
void?stop_c02() ??? //24c02停止信號(hào)
{
sda=0;
delay();
scl=1;
delay();
sda=1;
delay();
}
void?response_c02() //24c02的應(yīng)答信號(hào)
{
uchar?i;
scl=1;
delay();
while((sda==1)&&(i<250))i++;
scl=0;
delay();
}
void?write_c02byte(uchar?date) ???? //對24c02寫一個(gè)字節(jié)
{
uchar?itemp;
temp=date;
for(i=0;i<8;i++)
{
temp=temp<<1;
scl=0;
delay();
sda=CY;
delay();
scl=1;
delay();
}
scl=0;
delay();
sda=1;
delay();
}
uchar?read_c02byte() //對2
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????10218??2015-05-19?14:58??1-源程序\電子琴.c
?????目錄???????????0??2020-03-25?12:58??1-源程序\
評論
共有 條評論