版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 課程設(shè)計(jì)報(bào)告</b></p><p> 課程名稱 單片機(jī)控制系統(tǒng)設(shè)計(jì)與調(diào)試 </p><p> 設(shè)計(jì)題目 基于單片機(jī)原理的電子琴設(shè)計(jì) </p><p><b> 成 績 評 定</b></p><p><b> 電氣與信息學(xué)院</b>
2、;</p><p> 課程設(shè)計(jì)考核和成績評定辦法</p><p> 課程設(shè)計(jì)的考核由指導(dǎo)教師根據(jù)設(shè)計(jì)表現(xiàn)、設(shè)計(jì)報(bào)告、設(shè)計(jì)成果、答辯等幾個(gè)方面,給出各項(xiàng)權(quán)重,綜合評定。該設(shè)計(jì)考核教研室主任審核,主管院長審批備案。</p><p> 成績評定采用五級分制,即優(yōu)、良、中、及格、不及格。</p><p> 參加本次設(shè)計(jì)時(shí)間不足三分之二或曠課四
3、天以上者,不得參加本次考核,按不及格處理。</p><p> 課程設(shè)計(jì)結(jié)束一周內(nèi),指導(dǎo)教師提交成績和設(shè)計(jì)總結(jié)。</p><p> 設(shè)計(jì)過程考核和成績在教師手冊中有記載。</p><p><b> 課程設(shè)計(jì)報(bào)告內(nèi)容</b></p><p> 課程設(shè)計(jì)報(bào)告內(nèi)容、格式各專業(yè)根據(jù)專業(yè)不同統(tǒng)一規(guī)范,經(jīng)教研室主任審核、主管院
4、長審批備案。</p><p> 注: 1. 課程設(shè)計(jì)任務(wù)書和指導(dǎo)書在課程設(shè)計(jì)前發(fā)給學(xué)生,設(shè)計(jì)任務(wù)書放置在設(shè)計(jì)報(bào)告封面后和正文目錄前。</p><p> 2. 為了節(jié)省紙張,保護(hù)環(huán)境,便于保管實(shí)習(xí)報(bào)告,統(tǒng)一采用A4紙,實(shí)習(xí)報(bào)告建議雙面打印(正文采用宋體五號字)或手寫。</p><p><b> 課程設(shè)計(jì)目的</b></p>&
5、lt;p> 靈活運(yùn)用單片機(jī)的基礎(chǔ)知識,依據(jù)課程設(shè)計(jì)內(nèi)容,能夠完成從硬件電路圖設(shè)計(jì),到PCB制版,再到軟件編程及系統(tǒng)調(diào)試實(shí)現(xiàn)系統(tǒng)功能,完成課程設(shè)計(jì),加深對單片機(jī)基礎(chǔ)知識的理解,并靈活運(yùn)用,將各門知識綜合應(yīng)用。</p><p> 能夠上網(wǎng)查詢器件資料,培養(yǎng)對新知識新技術(shù)的獨(dú)立的學(xué)習(xí)能力和應(yīng)用能力。</p><p> 獨(dú)立完成一個(gè)小的系統(tǒng)設(shè)計(jì),從硬件設(shè)計(jì)到軟件設(shè)計(jì),增強(qiáng)分析問題、解決
6、問題的能力,為日后的畢業(yè)設(shè)計(jì)及科研工作奠定良好的基礎(chǔ)。</p><p> 課程設(shè)計(jì)內(nèi)容(包括技術(shù)指標(biāo))</p><p> 1. 焊接。認(rèn)真、仔細(xì),避免缺焊、漏焊。</p><p> 2. 頻率計(jì)算。會(huì)計(jì)算脈沖值與頻率的關(guān)系。</p><p> 3. 工作過程。開機(jī)時(shí),第一步是對定時(shí)器T0進(jìn)行初始化,設(shè)定它的工作狀態(tài)(對于本系統(tǒng)將T0設(shè)
7、定為工作方式O);然后判斷是否有鍵按下,如果沒有按鍵按下,繼續(xù)判斷,如果有按鍵按下,則判斷是哪個(gè)鍵按下;再根據(jù)按鍵的功能將計(jì)數(shù)初值裝入定時(shí)器T0中中并啟動(dòng)T0,當(dāng)T0定時(shí)完畢后,重新裝入計(jì)數(shù)初值繼續(xù)定時(shí)并將P3.3取反,再次定時(shí)完畢后再一次的裝入計(jì)數(shù)初值繼續(xù)定時(shí)并將P3.3取反,一直循環(huán)此操作直到按鍵釋放為止,按鍵釋放后停止T0工作并再次判斷是否又有按鍵按下,并繼續(xù)執(zhí)行以前的過程。</p><p><b&g
8、t; 課程設(shè)計(jì)原則</b></p><p> 盡可能使音色、音律更準(zhǔn)確;</p><p> 在滿足控制的前提下,力求使控制系統(tǒng)簡單、經(jīng)濟(jì);</p><p> 保證控制系統(tǒng)安全可靠。</p><p><b> 課程設(shè)計(jì)步驟</b></p><p> 對控制系統(tǒng)任務(wù)和要求作深入
9、的調(diào)查研究,明確控制任務(wù):</p><p> 根據(jù)原理畫出電子琴原理圖及串口原理圖;</p><p><b> 選擇合適的芯片:</b></p><p> 依據(jù)原理圖,把所選用的板子焊接好。</p><p> 確定系統(tǒng)整體設(shè)計(jì)方案,進(jìn)行軟件編程。</p><p><b> 控制
10、系統(tǒng)的硬件設(shè)計(jì)</b></p><p><b> 電子琴原理圖;</b></p><p> 串口原理圖及PCB圖。</p><p><b> 控制系統(tǒng)的軟件設(shè)計(jì)</b></p><p> 設(shè)計(jì)七個(gè)基本高低音調(diào);</p><p><b> 設(shè)計(jì)歌
11、曲;</b></p><p><b> 設(shè)計(jì)流水燈程序。</b></p><p><b> 聯(lián)機(jī)調(diào)試。</b></p><p><b> 撰寫設(shè)計(jì)說明書。</b></p><p><b> 時(shí)間安排</b></p><
12、;p><b> 基本要求</b></p><p><b> ?。ㄒ唬┱n程設(shè)計(jì)報(bào)告</b></p><p> 電子琴原理圖一份(電子版)</p><p> 串口原理圖及PCB圖一份(電子版)</p><p> 設(shè)計(jì)說明書一份,包括以下內(nèi)容</p><p> 寫出
13、設(shè)計(jì)計(jì)劃和基本步驟。</p><p><b> 畫出軟件流程圖。</b></p><p> 寫出軟件程序,并加以注釋。</p><p> 寫出調(diào)試過程和結(jié)果。</p><p><b> 寫課程設(shè)計(jì)小結(jié)。</b></p><p><b> ?。ǘ┏煽冊u定標(biāo)準(zhǔn)
14、</b></p><p> 對學(xué)生進(jìn)行全面考核,重點(diǎn)考核設(shè)計(jì)圖紙、說明書質(zhì)量;獨(dú)立思考、獨(dú)立工作能力,綜合運(yùn)用知識的能力;平時(shí)的工作態(tài)度及表現(xiàn);答辯情況。</p><p> 最后按平時(shí)表現(xiàn)、報(bào)告質(zhì)量、答辯成績,其權(quán)重分別為0.2、0.4、0.4綜合評定成績,分優(yōu)、良、中、及、不及格五個(gè)等級。</p><p><b> 組長:袁麗玉<
15、/b></p><p> 組員:王曉明(副組長),張彥,車銘,郝立巖</p><p><b> 摘要</b></p><p> 隨著社會(huì)的發(fā)展進(jìn)步,音樂逐漸成為我們生活中很重要的一部分,有人曾說喜歡音樂的人不會(huì)向惡。電子琴是現(xiàn)代電子科技與音樂結(jié)合的產(chǎn)物,是一種新型的鍵盤樂器。我們此次設(shè)計(jì)中用以單片機(jī)作為主控核心AT89C52單片機(jī)為
16、核心控制元件,設(shè)計(jì)一個(gè)電子琴。以單片機(jī)作為主控核心,與鍵盤、揚(yáng)聲器、LED顯示器等模塊組成核心主控制模塊。在主控模塊上設(shè)有8個(gè)按鍵,其中7個(gè)按鍵控制7個(gè)音符,而1個(gè)作為功能轉(zhuǎn)換鍵使用,具有手動(dòng)隨意彈奏和自動(dòng)播放樂曲的功能。而且我們也制作了一個(gè)簡易,功能完善的串口下載器,能夠隨時(shí)隨地方便的下載和調(diào)試程序。</p><p> 關(guān)鍵詞:電子琴 串口下載器 AT89C52單片機(jī) 揚(yáng)聲器 </p>
17、<p><b> Abstract</b></p><p> With the development of society progress, music gradually become us to live in very important part of it, someone once said like music won't to evil Modern
18、 electronic technology and the keyboard is a product of the combination of music, a new type of keyboard instrument. We used to design the monolithic processor as the master core AT89C52 single chip as the core control e
19、lements, design a keyboard. Based on the single chip computer as the master core, and keyboard, speaker, LED monitor module c</p><p> Keyword: electronic organ Serial ports for download AT89C52 single chip
20、 loudspeaker LED display </p><p><b> 目 錄</b></p><p> 1 課程設(shè)計(jì)背景1</p><p> 2 系統(tǒng)方案設(shè)計(jì)1</p><p> 2.1采用以STC89C52單片機(jī)為核心的控制方案1</p><p><b>
21、2.2設(shè)計(jì)原理1</b></p><p> 3 STC89C52系列最小機(jī)系統(tǒng)設(shè)計(jì)2</p><p> 3.1 時(shí)鐘電路設(shè)計(jì)2</p><p> 3.2 復(fù)位電路設(shè)計(jì)3</p><p> 3.3 單片機(jī)芯片的選擇3</p><p> 4 電子琴硬件設(shè)計(jì)4</p><
22、p> 4.1 MAX232芯片介紹4</p><p> 4.2 LM386芯片介紹6</p><p> 4.3 發(fā)音電路接線圖8</p><p> 4.4 顯示電路設(shè)計(jì)9</p><p> 4.5 鍵盤電路設(shè)計(jì)9</p><p> 5 電子琴軟件設(shè)計(jì)10</p><p&
23、gt; 5.1 發(fā)音原理10</p><p> 5.2 系統(tǒng)主程序流程圖12</p><p> 5.3 其他子程序17</p><p><b> 6 調(diào)試環(huán)境19</b></p><p> 6.1 系統(tǒng)概述19</p><p> 6.2 Keil C51單片機(jī)軟件開發(fā)系統(tǒng)的整
24、體結(jié)構(gòu)19</p><p> 6.3 系統(tǒng)調(diào)試20</p><p><b> 7 總結(jié)21</b></p><p><b> 8 參考文獻(xiàn)22</b></p><p><b> 9 附圖23</b></p><p><b>
25、 1 課程設(shè)計(jì)背景</b></p><p> 隨著社會(huì)的發(fā)展進(jìn)步,音樂逐漸成為我們生活中很重要的一部分,有人曾說喜歡音樂的人不會(huì)向惡。電子琴是現(xiàn)代電子科技與音樂結(jié)合的產(chǎn)物,是一種新型的鍵盤樂器。它在現(xiàn)代音樂扮演著很重要的角色,單片機(jī)具有強(qiáng)大的控制功能和靈活的編程實(shí)現(xiàn)特性,它已經(jīng)融入現(xiàn)代人的生活中,成為不可缺少的一部分。本文的主要內(nèi)容是以STC89C52單片機(jī)為核心控制元件,設(shè)計(jì)一個(gè)電子琴。以單片機(jī)作
26、主控核心,與鍵盤、指示燈、揚(yáng)聲器等模塊組成核心主控制模塊。</p><p><b> 2 系統(tǒng)方案設(shè)計(jì)</b></p><p> 2.1采用以STC89C52單片機(jī)為核心的控制方案</p><p> STC89C52是一種低功耗、高性能的8位COMS微控制器,具有8KB的可編程Flash存儲(chǔ)器,具有在線編程可擦除技術(shù),當(dāng)對系統(tǒng)進(jìn)行調(diào)試時(shí),
27、由于程序的錯(cuò)誤修改或?qū)Τ绦蛐略龉δ苄枰獰氤绦驎r(shí),不需要對芯片多次插拔,所以不會(huì)造成對芯片的損壞,且方便靈活。</p><p> 基于以上因素本設(shè)計(jì)選用單片機(jī)STC89C52作為本設(shè)計(jì)的核心元件,利用單片機(jī)靈活的編程設(shè)計(jì)和豐富的I/O端口,及其控制的準(zhǔn)確性,實(shí)現(xiàn)基本的電子琴功能。在單片機(jī)的外圍接8個(gè)按鈕用于輸入控制,其中第8個(gè)按鈕用來播放一小段音樂。在外接8個(gè)發(fā)光二極管用來指示音樂的節(jié)拍等。</p>
28、;<p><b> 2.2設(shè)計(jì)原理</b></p><p> 圖2-1設(shè)計(jì)原理框圖</p><p> 主要利用單片機(jī)中的定時(shí)器中斷、LED顯示、以及揚(yáng)聲器實(shí)現(xiàn)了演奏和顯示功能。針對聲音有音階、音調(diào)和音長三種基本特性,通過對定時(shí)器T0送入不同的初值,調(diào)節(jié)T0的溢出時(shí)間,輸出頻率可控的方波,從而控制不同音階的音調(diào)高低。而對于音長的控制,則可以向定時(shí)器T
29、1送入一個(gè)固定初值,通過控制定時(shí)器中斷循環(huán)的次數(shù),來實(shí)現(xiàn)對發(fā)音時(shí)間長短的控制。對于音符和曲目的顯示,主要通過讀入鍵值,判斷所選曲目或音符,輸出到LED上顯示。我們主要使用單片機(jī)設(shè)計(jì)簡易電子琴,利用單片機(jī)產(chǎn)生不同頻率來獲得我們要求的音階,最終可隨意彈奏想要表達(dá)的音樂。 一首音樂是許多不同的音階組成的,而每個(gè)音階對應(yīng)著不同的頻率,這樣我們就可以利用不同的頻率的組合,即可構(gòu)成我們所想要的音樂了,當(dāng)然對于單片機(jī)來產(chǎn)生不同的頻率非常方便,我們可以
30、利用單片機(jī)的定時(shí)/計(jì)數(shù)器T0來產(chǎn)生這樣方波頻率信號,因此,我們只要把一首歌曲的音階對應(yīng)頻率關(guān)系整理出來即可。如圖2-1為設(shè)計(jì)原理框圖。</p><p> 3 STC89C52系列最小機(jī)系統(tǒng)設(shè)計(jì)</p><p> 3.1 時(shí)鐘電路設(shè)計(jì)</p><p> 時(shí)鐘電路用于產(chǎn)生STC89S52單片機(jī)工作時(shí)所必須的控制信號。STC89S52單片機(jī)的內(nèi)部電路正是在時(shí)鐘信號的
31、控制下,嚴(yán)格地按時(shí)序執(zhí)行指令進(jìn)行工作。</p><p> STC89C52單片機(jī)各功能部件的運(yùn)行都以時(shí)鐘控制信號為準(zhǔn),有條不紊、一拍一拍地工作。因此,時(shí)鐘頻率直接影響單片機(jī)的速度,時(shí)鐘電路的質(zhì)量也直接影響單片機(jī)系統(tǒng)的穩(wěn)定性。常用的時(shí)鐘電路有兩種方式:一種是內(nèi)部時(shí)鐘方式,另一種為外部時(shí)鐘方式。</p><p> 本設(shè)計(jì)中的時(shí)鐘電路選擇2個(gè)30pF的電容、1個(gè)震蕩頻率為11.0592Hz的
32、石英晶體,構(gòu)成內(nèi)部時(shí)鐘晶體電路如圖3-1所示。</p><p> 圖3-1 STC89C52內(nèi)部時(shí)鐘方式電路</p><p> 3.2 復(fù)位電路設(shè)計(jì)</p><p> STC89C52的復(fù)位是由外部的復(fù)位電路實(shí)現(xiàn)的復(fù)位是單片機(jī)的初始化操作,只需給STC89S52的復(fù)位引腳RST加上大于兩個(gè)機(jī)器周期(即24個(gè)時(shí)鐘震蕩周期)的高電平就可使STC89C52復(fù)位。如圖
33、3-2所示.當(dāng)STC89C52進(jìn)行復(fù)位時(shí),PC初始化為0000H,使STC89C52單片機(jī)從程序儲(chǔ)存器的0000H單元開始執(zhí)行程序。除了進(jìn)入系統(tǒng)的正常初始化之外,當(dāng)程序運(yùn)行出錯(cuò)(如程序“跑飛”)或操作錯(cuò)誤使系統(tǒng)處于“死鎖”狀態(tài)時(shí),也需按復(fù)位鍵即RST腳為高電平,使STC89C52擺脫“跑飛”或“死鎖”狀態(tài)而重新啟動(dòng)程序。復(fù)位電路通常采用上電復(fù)位和按鈕復(fù)位兩種方式。</p><p> 本設(shè)計(jì)中的復(fù)位電路選擇1個(gè)1
34、0uF的電容、1個(gè)10K,1個(gè)2K的電阻、以及1個(gè)復(fù)位開關(guān)。</p><p> 圖3-2 按鍵電平復(fù)位電路</p><p> 3.3 單片機(jī)芯片的選擇</p><p> 本次設(shè)計(jì)采用STC89C52系列單片機(jī),選用STC 單片機(jī)的理由:降低成本,提升性能,原有程序直接使用,硬件無需改動(dòng)。STC89C51RC/RD+系列單片機(jī)管腳圖如圖3-3所示。STC89C5
35、2是一種低功耗、高性能的8位COMS微控制器,具有8KB的可編程Flash存儲(chǔ)器,具有在線編程可擦除技術(shù),當(dāng)對系統(tǒng)進(jìn)行調(diào)試時(shí),由于程序的錯(cuò)誤修改或?qū)Τ绦蛐略龉δ苄枰獰氤绦驎r(shí),不需要對芯片多次插拔,所以不會(huì)造成對芯片的損壞,且方便靈活</p><p> 圖3-3 STC85C52單片機(jī)管腳圖</p><p><b> 4 電子琴硬件設(shè)計(jì)</b></p>
36、;<p> 4.1 MAX232芯片介紹</p><p> 該產(chǎn)品是由德州儀器公司(TI)推出的一款兼容RS232標(biāo)準(zhǔn)的芯片。由于電腦串口rs232電平是-10v +10v,而一般的單片機(jī)應(yīng)用系統(tǒng)的信號電壓是ttl電平0+5v,max232 就是用來進(jìn)行電平轉(zhuǎn)換的,該器件包含2驅(qū)動(dòng)器、2接收器和一個(gè)電壓發(fā)生器電路提供TIA/EIA-232-F 電平。</p><p>
37、該器件符合TIA/EIA-232-F 標(biāo)準(zhǔn),每一個(gè)接收器將TIA/EIA-232-F 電平轉(zhuǎn)換成5-V TTL/CMOS 電平。每一個(gè)發(fā)送TTL/CMOS 電平轉(zhuǎn)換成TIA/EIA-232-F 電平</p><p><b> 主要特點(diǎn)</b></p><p> 1、單5V 電源工作</p><p> 2、LinBiCMOSTM 工藝技術(shù)&
38、lt;/p><p> 3、兩個(gè)驅(qū)動(dòng)器及兩個(gè)接收器</p><p> 4、±30V 輸入電平</p><p> 5、低電源電流:典型值是8mA</p><p> 6、符合甚至優(yōu)于ANSI 標(biāo)準(zhǔn)EIA/TIA-232-E 及ITU 推薦標(biāo)準(zhǔn)V.28</p><p> 7、ESD 保護(hù)大于MIL-STD-88
39、3(方法3015)標(biāo)準(zhǔn)的2000V</p><p> MAX232引腳圖如圖4-1所示。</p><p> 圖4-1 MAX232引腳圖</p><p> 下圖4-2為MX232串口的連接圖,可以分別接單片機(jī)的串行通信口或者實(shí)驗(yàn)板的其它串行通信接口:</p><p> 圖4-2 MX232串口的連接圖</p><p
40、> MAX232 應(yīng)用電路,注意電容接法。</p><p> 232 是電荷泵芯片,可以完成兩路TTL/RS-232 電平的轉(zhuǎn)換,它的的9、10、11、12 引腳是TTL 電平端,用來連接單片機(jī)的。</p><p> MAX232 獲得正負(fù)電源的另一種方法在單片機(jī)控制系統(tǒng)中,我們時(shí)常要用到數(shù)/模(D/A)或者模/數(shù)(A/D)變換以及其它的模擬接口電路,這里面要經(jīng)常用到正負(fù)電源,
41、例如: 9V,-9V; 12V,-12V.這些電源僅僅作為數(shù)字和模擬控制轉(zhuǎn)換接口部件的小功率電源。在控制板上,我們有的只是5V 電源,可又有很多方法獲得非5V 電源。1.外接;2.DC-DC 變換......在這里我介紹一塊大家常用的芯片:MAX232. MAX232 是TTL--RS232 電平轉(zhuǎn)換的典型芯片,按照芯片的推薦電路,取振蕩電容為uF 的時(shí)候,若輸入為5V,輸出可以達(dá)到-14V 左右,輸入為0V ,輸出可以達(dá)到14V,在扇
42、出電流為20mA 的時(shí)候,處處電壓可以穩(wěn)定在12V 和-12V.因此,在功耗不是很大的情況下,可以將MAX232 的輸出信號經(jīng)穩(wěn)壓塊后作電源使用。</p><p> 4.2 LM386芯片介紹</p><p> 制造商:美國國家半導(dǎo)體公司 </p><p> 種類:音頻功率放大器 </p><p> LM386是一種音頻集成功放,具有
43、自身功耗低、電壓增益可調(diào)整、電源電壓范圍大、外接元件少和總諧波失真小等優(yōu)點(diǎn)的功率放大器,廣泛應(yīng)用于錄音機(jī)和收音機(jī)之中。 </p><p><b> 特性</b></p><p> 靜態(tài)功耗低,約為4mA,可用于電池供電。 </p><p> 工作電壓范圍寬,4-12V or 5-18V。 </p><p><
44、b> 外圍元件少。 </b></p><p> 電壓增益可調(diào),20-200。 </p><p><b> 低失真度。 </b></p><p> 圖4-3 LM386引腳圖</p><p> LM386是美國國家半導(dǎo)體公司生產(chǎn)的音頻功率放大器,主要應(yīng)用于低電壓消費(fèi)類產(chǎn)品。為使外圍元件最少,電壓
45、增益內(nèi)置為20。但在1腳和8腳之間增加一只外接電阻和電容,便可將電壓增益調(diào)為任意值,直至 200。輸入端以地位參考,同時(shí)輸出端被自動(dòng)偏置到電源電壓的一半,在6V電源電壓下,它的靜態(tài)功耗僅為24mW,使得LM386特別適用于電池供電的場合。</p><p> LM386的封裝形式有塑封8引線雙列直插式和貼片式。</p><p> LM386的外形和引腳的排列如圖4-3所示。引腳2為反相輸
46、入端,3為同相輸入端;引腳5為輸出端;引腳6和4分別為電源和地;引腳1和8為電壓增益設(shè)定端;使用時(shí)在引腳7和地之間接旁路電容,通常取10μF。</p><p> 查LM386的datasheet,電源電壓4-12V或5-18V(LM386N-4);靜態(tài)消耗電流為4mA;電壓增益為20-200dB;在1、8腳開路時(shí),帶寬為300KHz;輸入阻抗為50K;音頻功率0.5W。 盡管LM386的應(yīng)用非常簡單,但稍不注意
47、,特別是器件上電、斷電瞬間,甚至工作穩(wěn)定后,一些操作(如插拔音頻插頭、旋音量調(diào)節(jié)鈕)都會(huì)帶來的瞬態(tài)沖擊,在輸出喇叭上會(huì)產(chǎn)生非常討厭的噪聲。1、通過接在1腳、8腳間的電容(1腳接電容+極)來改變增益,斷開時(shí)增益為20dB。因此用不到大的增益,電容就不要接了,不光省了成本,還會(huì)帶來好處--噪音減少,何樂而不為?2、PCB設(shè)計(jì)時(shí),所有外圍元件盡可能靠近LM386;地線盡可能粗一些;輸入音頻信號通路盡可能平行走線,輸出亦如此。這是死理,不用多說
48、了吧。3、選好調(diào)節(jié)音量的電位器。質(zhì)量太差的不要,否則受害的是耳朵;阻值不要太大,10K最合適,太大也會(huì)影響音質(zhì),轉(zhuǎn)那么多圈圈,不煩那!4、盡可能采用雙音頻輸入/輸出。好處是:“+”、“-”輸出端可以很好地抵消共模信號,故能有效抑制共模噪聲。5、第7腳(BYPASS)的旁路電容不可少!實(shí)際應(yīng)用時(shí),BYPASS</p><p> 4.3 發(fā)音電路接線圖</p><p> 發(fā)音電路中包含一個(gè)
49、蜂鳴器,一個(gè)音頻功率放大器LM386。蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,采用直流電壓供電,廣泛應(yīng)用于計(jì)算機(jī)、打印機(jī)、復(fù)印機(jī)、報(bào)警器、電子玩具、汽車電子設(shè)備、電話機(jī)、定時(shí)器等電子產(chǎn)品中作發(fā)聲器件。在本設(shè)計(jì)中,用單片機(jī)P3.3口來控制發(fā)音裝置,提供發(fā)音信號,經(jīng)LM386放大之后送給蜂鳴器發(fā)出音樂。圖4-4為發(fā)音裝置接線圖。</p><p> 圖4-4 發(fā)音電路接線圖</p><p> 4
50、.4 顯示電路設(shè)計(jì)</p><p> 本設(shè)計(jì)采用8個(gè)發(fā)光二極管來顯示電子琴發(fā)音過程。采用共陽極接法。如圖4-5所示。</p><p><b> 圖4-5 顯示電路</b></p><p> 由于采用共陽極接法,為防止電流過高燒毀二極管所以采用在前面添加8個(gè)保護(hù)電阻。其中前7個(gè)發(fā)光二極管各自對應(yīng)一個(gè)按鍵和音節(jié)。當(dāng)某個(gè)按鍵按下時(shí)與它所對應(yīng)的發(fā)
51、光二極管發(fā)光。當(dāng)?shù)?個(gè)按鍵按下時(shí),則對應(yīng)播放一段小音樂。</p><p> 4.5 鍵盤電路設(shè)計(jì)</p><p> 電子琴鍵盤采用獨(dú)立式鍵盤。其特點(diǎn)是一鍵一線,各鍵相互獨(dú)立,每個(gè)按鍵各接一條I/O口線,通過檢測I/O口輸入線的電平狀態(tài),可以很容易的判斷哪個(gè)按鍵被按下,如圖4-6所示。</p><p><b> 圖4-6 鍵盤電路</b>&
52、lt;/p><p><b> 5 電子琴軟件設(shè)計(jì)</b></p><p> 本設(shè)計(jì)的軟件使用c語言編寫,采用模塊化設(shè)計(jì)思想,通過主程序調(diào)用各個(gè)子程序來實(shí)現(xiàn)顯示、按鍵掃描等功能</p><p><b> 5.1 發(fā)音原理</b></p><p> 由于本系統(tǒng)可以產(chǎn)生各種頻率的聲音,所以可由喇叭發(fā)出
53、“DO”、“RE”、“ME”……的音階。系統(tǒng)中的定時(shí)器O工作于模式0,計(jì)時(shí)時(shí)長可根據(jù)所發(fā)音的頻率而定,表2所列是各個(gè)音符所對應(yīng)的頻率值。而由頻率值推得的定時(shí)器計(jì)數(shù)初值。一首音樂是許多不同的音階組成的,而每個(gè)音階對應(yīng)著不同的頻率,這樣我們就可以利用不同的頻率的組合,即可構(gòu)成我們所想要的音樂了,當(dāng)然對于單片機(jī)來產(chǎn)生不同的頻率非常方便,我們可以利用單片機(jī)的定時(shí)/計(jì)數(shù)器T0來產(chǎn)生這樣方波頻率信號,因此,我們只要把一首歌曲的音階對應(yīng)頻率關(guān)系弄正確
54、即可。 若要產(chǎn)生音頻脈沖,只要算出某一音頻的周期(1/頻率),再將此周期除以2,即為半周期的時(shí)間。利用定時(shí)器計(jì)時(shí)半周期時(shí)間,每當(dāng)計(jì)時(shí)終止后就將P3.3反相,然后重復(fù)計(jì)時(shí)再反相。就可在P3.3引腳上得到此頻率的脈沖。利用AT89C51的內(nèi)部定時(shí)器使其工作計(jì)數(shù)器模式(MODE1)下,改變計(jì)數(shù)值TH0及TL0以產(chǎn)生不同頻率的方法產(chǎn)生不同音階,例如,頻率為523Hz,其周期T=1/523=1912μs,因此只要令計(jì)數(shù)器計(jì)時(shí)956μs/1μs=
55、956,每計(jì)數(shù)956次時(shí)將I/O反相,就可得到中音DO(523Hz)。</p><p> N=fi÷2÷fr
56、; 4-1</p><p> 式中,N是計(jì)數(shù)值;fi是機(jī)器頻率(晶體振蕩器為12MHz時(shí),其頻率為1MHz);fr是想要產(chǎn)生的頻率。</p><p> 其計(jì)數(shù)初值T的求法如下:</p><p> T=65536-N=65536-fi÷2÷fr</p><p> 例如:設(shè)K=65536,fi=1MHz,求低音DO(2
57、61Hz)、中音DO(523Hz)、高音DO(1046Hz)的計(jì)數(shù)值。</p><p> T=65536-N=65536-fi÷2÷fr=65536-1000000÷2÷fr=65536-500000/fr</p><p> 低音DO的T=65536-500000/262=63627</p><p> 中音DO的T=65
58、536-500000/523=64580</p><p> 高音DO的T=65536-500000/1046=65059</p><p> 單片機(jī)12MHZ晶振,高中低音符與計(jì)數(shù)T0相關(guān)的計(jì)數(shù)值如表5-1所示</p><p> 表5-1 音符頻率表</p><p><b> 賣報(bào)歌歌譜如下</b></p&g
59、t;<p> 5.2 系統(tǒng)主程序流程圖</p><p> 圖5-1 主程序流程圖</p><p><b> 主程序如下:</b></p><p> #include<reg51.h></p><p> sbit beer=P3^3;</p><p> int
60、num,count;</p><p> int code lab[]={61719,62435,62506,62679,62985,63263,63512,</p><p> 63628,63835,64021,64103,64260,64400,64524,</p><p> 64580,64684,64777,64820,64898,64968,65070
61、};</p><p> int code Song[]={ </p><p> 0x12,50,0x12,50,0x12,100,</p><p> 0x12,50,0x12,50,0x12,100,</p><p> 0x10,50,0x12,50,0x13,15,0x12,25,0x10,25,</p><p&
62、gt; 0x0f,75,0x10,75,0x12,50,</p><p> 0x12,75,0x10,75,0x12,75,0x10,37,0x0f,37,</p><p> 0x0e,75,0x10,75,0x0f,150,</p><p> 0x10,100,0x10,100,0x0f,200,</p><p> 0x0c,10
63、0,0x0e,100,0x0f,75,0xff,100,</p><p> 0x13,25,0x13,25,0x12,75,</p><p> 0x10,25,0x13,25,0x12,50,</p><p> 0x12,50,0x10,50,0x0f,50,0x10,50,</p><p> 0x12,75,0xff,75,0xff
64、,75,</p><p> 0x12,65,0x10,65,0x0f,65,0x10,65,</p><p> 0x12,65,0x10,65,0x0f,65,0x10,65,</p><p> 0x0c,65,0x0e,65,0x0f,65,0x10,65,</p><p> 0x0e,100,0xff,100,0xff,100,0
65、x00,0x00</p><p><b> };</b></p><p> int code table[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};</p><p> int code table2[]={0x7e,0xbd,0xdb,0xe7};</p><p>
66、void init()//計(jì)數(shù)器終端初始化</p><p><b> {</b></p><p><b> num=0;</b></p><p> TMOD=0x11;</p><p><b> TH0=0xff;</b></p><p>
67、;<b> TL0=0xff;</b></p><p> TH1=0xD8; //裝初值</p><p> TL1=0xEF;</p><p><b> EA=1;</b></p><p><b> ET0=1;</b></p><p>
68、<b> ET1=1;</b></p><p><b> }</b></p><p> void delay(int z) //延時(shí)子程序</p><p><b> {</b></p><p><b> int x,y;</b></p
69、><p> for(x=z;x>0;x--)</p><p> for(y=110;y>0;y--);</p><p><b> }</b></p><p> void inter() interrupt 1//計(jì)數(shù)器0</p><p><b> {</b>
70、;</p><p> TH0=lab[num]/256;</p><p> TL0=lab[num]%256;</p><p> beer=!beer;</p><p><b> }</b></p><p> void timer1() interrupt 3//計(jì)數(shù)器1</p
71、><p><b> {</b></p><p> TH1=0xD8; //裝初值</p><p><b> TL1=0xEF;</b></p><p><b> count++;</b></p><p><b> }</b>
72、;</p><p> void Play_Song()//放歌子程序</p><p><b> {</b></p><p> unsigned char Temp2;</p><p> unsigned int Addr,a=0;</p><p> count = 0;</
73、p><p><b> while(1)</b></p><p><b> {</b></p><p> num = Song[Addr];</p><p><b> Addr++;</b></p><p> TH0=lab[num]/256;<
74、;/p><p> TL0=lab[num]%256;</p><p> if ( num == 0xFF ) //休止符</p><p><b> {</b></p><p> Temp2 = Song[Addr++];</p><p><b> TR1 = 0;
75、</b></p><p> delay(Temp2);</p><p><b> }</b></p><p> else if ( num == 0x00 ) //歌曲結(jié)束符</p><p><b> {</b></p><p><b>
76、return;</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> Temp2 = Song[Addr++];</p><p> P1=t
77、able2[a];</p><p><b> a++ ;</b></p><p><b> if(a==4)</b></p><p><b> a=0;</b></p><p><b> TR1 = 1;</b></p><p&
78、gt; delay(1.1*Temp2);</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> void sound(unsigned char a)//按鍵發(fā)聲子程序</p
79、><p><b> {</b></p><p><b> switch(a)</b></p><p><b> {</b></p><p> case 0xfe: num=14;P1=table[0]; break;</p><p> case
80、0xfd: num=15;P1=table[1]; break;</p><p> case 0xfb: num=16;P1=table[2]; break;</p><p> case 0xf7: num=17;P1=table[3]; break;</p><p> case 0xef: num=18;P1=table[4]; break;</p&g
81、t;<p> case 0xdf: num=19;P1=table[5]; break;</p><p> case 0xbf: num=20;P1=table[6]; break;</p><p> case 0x7f: num=7; break;</p><p><b> }</b></p><p&
82、gt; if(num==7)</p><p> Play_Song();</p><p> TH0=lab[num]/256;</p><p> TL0=lab[num]%256;</p><p> while(P2!=0xff)</p><p><b> {}</b></p&g
83、t;<p><b> P1=0xff;</b></p><p><b> }</b></p><p> void main() //主程序</p><p><b> {</b></p><p><b> init();</b>
84、;</p><p><b> P2=0xff;</b></p><p><b> while(1)</b></p><p><b> {</b></p><p> if(P2!=0xff)//第一次判斷是否有按鍵按下</p><p><
85、b> {</b></p><p> delay(5);//消抖</p><p> if(P2!=0xff)//確認(rèn)是否有按鍵按下</p><p><b> {</b></p><p><b> TR0=1;</b></p><p> soun
86、d(P2);</p><p><b> }</b></p><p><b> TR0=0;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }<
87、/b></p><p><b> 5.3 其他子程序</b></p><p><b> 1)輪閃燈程序</b></p><p> #include<reg51.h></p><p> #include<intrins.h></p><p>
88、; void delay(int t)</p><p><b> {</b></p><p><b> int i,j;</b></p><p> for(i=t;i>0;i--)</p><p><b> {</b></p><p>
89、 for(j=0;j<333;j++)</p><p><b> {;}</b></p><p><b> }</b></p><p><b> }</b></p><p> void main()</p><p><b> {
90、</b></p><p> unsigned int temp;</p><p> temp=0xfe;</p><p><b> P1=temp;</b></p><p><b> while(1)</b></p><p><b> {<
91、;/b></p><p> delay(1000);</p><p> P1=_crol_(P1,1);</p><p><b> }</b></p><p><b> }</b></p><p> 2) 發(fā)射正脈沖程序</p><p>
92、; #include<reg51.h></p><p> sbit P33=P3^3;</p><p> void delay(int t)</p><p><b> {</b></p><p><b> int i,j;</b></p><p> f
93、or(i=t;i>0;i--)</p><p><b> {</b></p><p> for(j=0;j<333;j++)</p><p><b> {;}</b></p><p><b> }</b></p><p><b&
94、gt; }</b></p><p> void main()</p><p><b> {</b></p><p><b> while(1)</b></p><p><b> {</b></p><p><b> P3
95、3=1;</b></p><p> delay(1000);</p><p><b> P33=0;</b></p><p> delay(1000);</p><p><b> }</b></p><p><b> }</b>&l
96、t;/p><p><b> 3) 延時(shí)子程序</b></p><p> void delay(uint x)</p><p><b> {</b></p><p><b> uint i,j;</b></p><p> for(i=x;i>0
97、;i--)</p><p><b> {</b></p><p> for(j=80;j>0;j--);</p><p><b> };</b></p><p><b> }</b></p><p><b> 6 調(diào)試環(huán)境<
98、;/b></p><p> Keil C51是美國Keil Software公司出品的51系列兼容單片機(jī)C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢,因而易學(xué)易用。Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個(gè)集成開發(fā)環(huán)境(uVision)將這些部分組合在一起。運(yùn)行Keil軟件需要WIN98、NT、WIN
99、2000、WINXP等操作系統(tǒng)。如果你使用C語言編程,那么Keil幾乎就是你的不二之選,即使不使用C語言而僅用匯編語言編程,其方便易用的集成環(huán)境、強(qiáng)大的軟件仿真調(diào)試工具也會(huì)令你事半功倍。</p><p><b> 6.1 系統(tǒng)概述</b></p><p> Keil C51軟件提供豐富的庫函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,全Windows界面。另外重要的一點(diǎn),只要
100、看一下編譯后生成的匯編代碼,就能體會(huì)到Keil C51生成的目標(biāo)代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時(shí)更能體現(xiàn)高級語言的優(yōu)勢。下面詳細(xì)介紹Keil C51開發(fā)系統(tǒng)各部分功能和使用。</p><p> 6.2 Keil C51單片機(jī)軟件開發(fā)系統(tǒng)的整體結(jié)構(gòu)</p><p> C51工具包的整體結(jié)構(gòu),uVision與Ishell分別是C51 for Win
101、dows和for Dos的集成開發(fā)環(huán)境(IDE),可以完成編輯、編譯、連接、調(diào)試、仿真等整個(gè)開發(fā)流程。開發(fā)人員可用IDE本身或其它編輯器編輯C或匯編源文件。然后分別由C51及C51編譯器編譯生成目標(biāo)文件(.OBJ)。目標(biāo)文件可由LIB51創(chuàng)建生成庫文件,也可以與庫文件一起經(jīng)L51連接定位生成絕對目標(biāo)文件(.ABS)。ABS文件由OH51轉(zhuǎn)換成標(biāo)準(zhǔn)的Hex文件,以供調(diào)試器dScope51或tScope51使用進(jìn)行源代碼級調(diào)試,也可由仿真器
102、使用直接對目標(biāo)板進(jìn)行調(diào)試,也可以直接寫入程序存貯器如EPROM中。</p><p> Keil C51生成的目標(biāo)代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時(shí)更能體現(xiàn)高級語言的優(yōu)勢。</p><p><b> 6.3 系統(tǒng)調(diào)試</b></p><p> 經(jīng)過我們共同的努力終于寫出了程序,然后進(jìn)入調(diào)試階段。我們先
103、在UVision2 的環(huán)境中輸入C語言程序,然后選對應(yīng)的單片機(jī)型號,生成HEX文件,最后將程序通過STC-V35下載到我們制作的電子琴中,然后觀察現(xiàn)象。根據(jù)現(xiàn)象和要求的不同,再查找原因,對程序進(jìn)行修改。這樣一次又一次的嘗試,終于我們完美的完成了任務(wù)。</p><p><b> 7 總結(jié)</b></p><p> 本次課程設(shè)計(jì)歷時(shí)三周,算是比較長的時(shí)間了,同時(shí)也是我
104、在大學(xué)里學(xué)到知識最多的一次。這次的課程設(shè)計(jì)包含的基本知識很多,在過程中用到了很多以前學(xué)的東西,比如:數(shù)字電子技術(shù)基礎(chǔ)、模擬電子技術(shù)基礎(chǔ)和Altium Designer繪圖的相關(guān)知識、操作,復(fù)習(xí)了以前的知識,同時(shí)學(xué)到了很多新的知識,更重要的是使我對單片機(jī)系統(tǒng)有了一個(gè)全新的認(rèn)識,讓我懂得了設(shè)計(jì)時(shí)應(yīng)當(dāng)不怕麻煩,遇到不會(huì)的就查找資料或者請教老師。不要好面子或者不敢問老師,畢竟老師在這方面是很專業(yè)的,能跟好的傳授給你知識。</p>
105、<p> 我們組這次設(shè)計(jì)的是電子琴。剛拿到這個(gè)題目的時(shí)候,我就比較感興趣,想著起碼這個(gè)做出來還有聲音。確實(shí)有聲音的東西是好,但這個(gè)聲音卻給我們帶來了很多麻煩。在調(diào)音的過程中,我們一次又一次的失敗,很難做到發(fā)音準(zhǔn)確,讓我們嘗試到了辛苦的滋味。不過經(jīng)過老師的細(xì)心指導(dǎo)和大家的團(tuán)結(jié)合作我們終于調(diào)出了優(yōu)美的旋律。經(jīng)歷過努力才懂得成果是多么的美好。</p><p> 經(jīng)過這次課程設(shè)計(jì),我們不但得到了自己親手的小
106、制作,最主要的是我們學(xué)到了以前書本上學(xué)不到的知識。可以說3周的實(shí)習(xí)過程中同時(shí)體驗(yàn)了痛苦與快樂!</p><p> 另外,還讓我懂得了團(tuán)結(jié)合作能給我們帶來更大的力量。</p><p><b> 8 參考文獻(xiàn)</b></p><p> [1] 李軍,51系列單片機(jī)高級實(shí)例開發(fā)指南[M].北京:北京航空航天大學(xué)出版社,2003.</p&g
107、t;<p> [2]王東峰.單片機(jī)C語言應(yīng)用100例[M].電子工業(yè)出版社,2009.</p><p> [3] 于永,戴佳,常江.51單片機(jī)c語言常用模塊與綜合系統(tǒng)設(shè)計(jì)實(shí)例精講[M].北京:電子工業(yè)出版社,2007.</p><p> [4] 何立民.單片機(jī)高級教程——應(yīng)用于設(shè)計(jì)(第2版)[M].北京:北京航空航天大學(xué)出版社,2007.</p><
108、p> [5]鐘富昭.8051單片機(jī)典型模塊設(shè)計(jì)與應(yīng)用[M].人民郵電出版社,2007.</p><p> [6] 張毅剛,彭喜元,彭宇.單片機(jī)原理及應(yīng)用(第二版)[M].北京:高等教育出版社,2010年.</p><p> [7] 薛小玲,劉志群,賈俊榮.單片機(jī)接口模塊應(yīng)用于開發(fā)實(shí)例詳解[M].北京:北京航空航天大學(xué)出版社,2010.</p><p>
109、 [8] 李云剛,鄒逢興,龍志強(qiáng).單片機(jī)原理與應(yīng)用[M].中國水利水電出版社,2008.</p><p> [9]陳海宴.51單片機(jī)原理及應(yīng)用[M].北京航空航天大學(xué)出版社,2010.</p><p> [10]劉守義,李平.單片機(jī)技術(shù)基礎(chǔ)[M].西安電子科技大學(xué)出版社,2008.</p><p><b> 9 附圖</b></p&
110、gt;<p><b> 串口原理圖</b></p><p> 圖9-1 串口原理圖</p><p><b> 串口PCB圖</b></p><p> 圖9-2串口PCB圖</p><p><b> 電子琴原理圖</b></p><p&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電子琴課程設(shè)計(jì)--基于單片機(jī)的電子琴設(shè)計(jì)
- 電子琴課程設(shè)計(jì)-- 基于單片機(jī)的電子琴設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)—基于單片機(jī)的電子琴
- 基于單片機(jī)的電子琴課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---基于單片機(jī)的電子琴設(shè)計(jì)
- 基于單片機(jī)的電子琴課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---電子琴
- 單片機(jī)課程設(shè)計(jì)(電子琴)
- 單片機(jī)課程設(shè)計(jì)-電子琴
- 單片機(jī)課程設(shè)計(jì)——電子琴
- 基于單片機(jī)的電子琴設(shè)計(jì)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---電子琴設(shè)計(jì)
- 單片機(jī)簡易電子琴單片機(jī)課程設(shè)計(jì)
- 單片機(jī)電子琴課程設(shè)計(jì)--基于單片機(jī)的可存儲(chǔ)式電子琴設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---電子琴設(shè)計(jì)
- 課程設(shè)計(jì) ---基于單片機(jī)的電子琴設(shè)計(jì)
- 基于單片機(jī)的電子琴課程設(shè)計(jì)報(bào)告
- 單片機(jī)課程設(shè)計(jì)簡易電子琴
- 基于單片機(jī)的簡易電子琴課程設(shè)計(jì)
- 簡易電子琴單片機(jī)課程設(shè)計(jì)
評論
0/150
提交評論