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