基于51單片機(jī)的八鍵電子琴( proteus仿真+程序+設(shè)計(jì)報(bào)告+原理圖PCB+講解視頻)
仿真圖proteus7.8及以上
程序編譯器:keil 4/keil 5
編程語(yǔ)言:C語(yǔ)言
設(shè)計(jì)編號(hào):S0102
1. 主要功能:
電子琴是現(xiàn)代電子科技與音樂結(jié)合的產(chǎn)物,是一種新型的鍵盤樂器。它在現(xiàn)代音樂扮演重要的角色,單片機(jī)具有強(qiáng)大的控制功能和靈活的編程實(shí)現(xiàn)特性,它已經(jīng)溶入現(xiàn)代人們的生活中,成為不可替代的一部分。單片機(jī)的開發(fā)應(yīng)用已成為高科技和工程領(lǐng)域的一項(xiàng)重大課題。我們對(duì)于電子琴如何實(shí)現(xiàn)其功能,如音色選擇、聲音強(qiáng)弱控制、節(jié)拍器、自動(dòng)放音功能等等也很好奇,設(shè)計(jì)要求:
(1)用AT89C51單片機(jī)為核心控制元件,設(shè)計(jì)一個(gè)電子琴。
(2)以單片機(jī)作為主控核心,與鍵盤揚(yáng)聲器等模塊組成核心主控制模塊,在主控模塊上設(shè)有8個(gè)按鍵,和一個(gè)復(fù)位按鍵。每一個(gè)按鍵分別指示不同的音符。
(3)數(shù)碼管顯示按下的音符標(biāo)號(hào)。
需注意仿真中51單片機(jī)芯片是兼容的,AT89C51,AT89C52是51單片機(jī)的具體型號(hào),內(nèi)核是一樣的。相同的原理圖里,無(wú)論stc還是at都一樣,引腳功能都是一樣的,程序是兼容的,芯片可以替換為STC89C52/STC89C51/AT89C52/AT89C51等51單片機(jī)芯片。
資料下載鏈接:
通過(guò)網(wǎng)盤分享的文件:KEY_S0102
鏈接: https://pan.baidu.com/s/1DS052dZFL8HxKB-q9g5hXg?pwd=e353
提取碼: e353
以下為本設(shè)計(jì)資料展示圖:
2. 講解視頻:
講解視頻包含仿真運(yùn)行講解和代碼講解
3. 仿真
打開仿真工程,雙擊proteus中的單片機(jī),選擇hex文件路徑,然后開始仿真。
按下DO按鍵,數(shù)碼管顯示1,蜂鳴器波放DO音調(diào)。
按下MI按鍵,數(shù)碼管顯示3,蜂鳴器波放MI音調(diào)
4. 原理圖PCB
有原理圖PCB
5. 程序代碼
使用keil4或者keil5編譯,代碼有注釋,可以結(jié)合視頻理解代碼含義。
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 Speak=P2^0; //喇叭
/***********************1ms*****************************/
void delay_1ms(unsigned int q)
{
unsigned int i,j;
for(i=0;i<q;i++)
for(j=0;j<120;j++);
}
void main(void) //主程序
{
TMOD=0x01;
ET0=1;
EA=1;
while(1)
{
if(!K1)
{
delay_1ms(20);//延時(shí)去抖
if(!K1)
{
key=0;//將音樂的值賦值給定時(shí)器以便發(fā)出對(duì)應(yīng)的聲音
P0=distab[key+1];//顯示1
STH0=tab[key]/256; //計(jì)算音符對(duì)應(yīng)的定時(shí)器計(jì)數(shù)值
STL0=tab[key]%256;
TR0=1;
while(!K1)
;
}
}
if(!K2)
{
delay_1ms(20);//延時(shí)去抖
if(!K2)
{
key=1;
P0=distab[key+1];//顯示2
STH0=tab[key]/256; //計(jì)算音符對(duì)應(yīng)的定時(shí)器計(jì)數(shù)值
STL0=tab[key]%256;
TR0=1;
while(!K2)
;
}
}
if(!K3)
{
delay_1ms(20);//延時(shí)去抖
if(!K3)
{
key=2;
P0=distab[key+1];//顯示3
STH0=tab[key]/256; //計(jì)算音符對(duì)應(yīng)的定時(shí)器計(jì)數(shù)值
STL0=tab[key]%256;
TR0=1;
while(!K3)
;
}
}
if(!K4)
{
delay_1ms(20);//延時(shí)去抖
if(!K4)
{
key=3;
P0=distab[key+1];//顯示4
STH0=tab[key]/256; //計(jì)算音符對(duì)應(yīng)的定時(shí)器計(jì)數(shù)值
STL0=tab[key]%256;
TR0=1;
while(!K4)
;
}
}
if(!K5)
{
delay_1ms(20);//延時(shí)去抖
if(!K5)
{
key=4;
P0=distab[key+1];//顯示5
STH0=tab[key]/256; //計(jì)算音符對(duì)應(yīng)的定時(shí)器計(jì)數(shù)值
STL0=tab[key]%256;
TR0=1;
while(!K5)
;
}
}
if(!K6)
{
delay_1ms(20);//延時(shí)去抖
if(!K6)
{
key=5;
P0=distab[key+1];//顯示6
STH0=tab[key]/256; //計(jì)算音符對(duì)應(yīng)的定時(shí)器計(jì)數(shù)值
STL0=tab[key]%256;
TR0=1;
while(!K6)
;
}
}
if(!K7)
{
delay_1ms(20);//延時(shí)去抖
if(!K7)
{
key=6;
P0=distab[key+1];//顯示7
STH0=tab[key]/256; //計(jì)算音符對(duì)應(yīng)的定時(shí)器計(jì)數(shù)值
STL0=tab[key]%256;
TR0=1;
while(!K7)
;
}
}
if(!K8)
{
delay_1ms(20);//延時(shí)去抖
if(!K8)
{
key=7;
P0=distab[key+1];//顯示8
STH0=tab[key]/256; //計(jì)算音符對(duì)應(yīng)的定時(shí)器計(jì)數(shù)值
STL0=tab[key]%256;
TR0=1;
while(!K8)
;
}
}
delay_1ms(20);
TR0=0;
Speak=1;//當(dāng)按鍵彈起的時(shí)候,蜂鳴器停止發(fā)音
}
//文章有下載鏈接有完整代碼
}
6. 設(shè)計(jì)報(bào)告
11314字設(shè)計(jì)報(bào)告,內(nèi)容包括硬件設(shè)計(jì)、軟件設(shè)計(jì)、軟硬件框圖、調(diào)試、結(jié)論等
隨著現(xiàn)代電子技術(shù)的持續(xù)進(jìn)步與革新,數(shù)字電壓表在電子測(cè)量領(lǐng)域的應(yīng)用范圍愈發(fā)廣泛,其重要性也日益凸顯。傳統(tǒng)的指針式電壓表,盡管在早期的電子測(cè)量中發(fā)揮了重要作用,但其固有的缺陷,如讀數(shù)誤差較大、精度相對(duì)較低以及讀數(shù)不夠直觀等問題,已經(jīng)難以滿足當(dāng)前高精度、高效率的測(cè)量需求。相比之下,數(shù)字電壓表以其讀數(shù)準(zhǔn)確無(wú)誤、測(cè)量精度高、顯示結(jié)果直觀明了等顯著優(yōu)勢(shì),成為了電子測(cè)量領(lǐng)域的主流工具。
鑒于數(shù)字電壓表的諸多優(yōu)點(diǎn),我們計(jì)劃設(shè)計(jì)一款基于51單片機(jī)和ADC0808模數(shù)轉(zhuǎn)換器的數(shù)字電壓表。這款設(shè)計(jì)不僅具備重要的實(shí)際應(yīng)用價(jià)值,能夠廣泛應(yīng)用于各種需要精確測(cè)量電壓的場(chǎng)合,如電子實(shí)驗(yàn)室、工業(yè)生產(chǎn)線等,而且對(duì)于學(xué)生而言,更是一次深入理解單片機(jī)應(yīng)用技術(shù)和模數(shù)轉(zhuǎn)換原理的絕佳機(jī)會(huì)。通過(guò)親手設(shè)計(jì)并制作這款數(shù)字電壓表,學(xué)生將能夠親身體驗(yàn)從理論到實(shí)踐的轉(zhuǎn)化過(guò)程,從而更加深入地掌握單片機(jī)的硬件電路設(shè)計(jì)、軟件編程以及模數(shù)轉(zhuǎn)換技術(shù)的核心要點(diǎn)。同時(shí),這一過(guò)程也將極大地鍛煉學(xué)生的實(shí)踐能力、創(chuàng)新能力和解決問題的能力,為他們未來(lái)的學(xué)習(xí)和職業(yè)生涯奠定堅(jiān)實(shí)的基礎(chǔ)。
7. 設(shè)計(jì)資料內(nèi)容清單&&下載鏈接
資料設(shè)計(jì)資料包括仿真,程序代碼、講解視頻、功能要求、設(shè)計(jì)報(bào)告、軟硬件設(shè)計(jì)框圖等。
0、常見使用問題及解決方法–必讀?。。?!
1、程序代碼注釋
2、proteus仿真
3、功能要求
4、軟硬件流程圖
5、開題報(bào)告
6、設(shè)計(jì)報(bào)告
7、原理圖
8、PCB圖
9、元器件清單
10、講解視頻
Altium Designer 安裝破解
KEIL+proteus 單片機(jī)仿真設(shè)計(jì)教程
KEIL安裝破解
Proteus元器件查找
Proteus安裝
Proteus簡(jiǎn)易使用教程
單片機(jī)學(xué)習(xí)資料
相關(guān)數(shù)據(jù)手冊(cè)
答辯技巧
設(shè)計(jì)報(bào)告常用描述
鼠標(biāo)雙擊打開查找嘉盛單片機(jī)51 STM32單片機(jī)課程畢業(yè)設(shè)計(jì).url
資料下載鏈接:
通過(guò)網(wǎng)盤分享的文件:KEY_S0102
鏈接: https://pan.baidu.com/s/1DS052dZFL8HxKB-q9g5hXg?pwd=e353
提取碼: e353