畢業(yè)設(shè)計(jì)—基于STC89C52單片機(jī)的電子琴_第1頁(yè)
畢業(yè)設(shè)計(jì)—基于STC89C52單片機(jī)的電子琴_第2頁(yè)
畢業(yè)設(shè)計(jì)—基于STC89C52單片機(jī)的電子琴_第3頁(yè)
畢業(yè)設(shè)計(jì)—基于STC89C52單片機(jī)的電子琴_第4頁(yè)
畢業(yè)設(shè)計(jì)—基于STC89C52單片機(jī)的電子琴_第5頁(yè)
已閱讀5頁(yè),還剩26頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、基于stc89c52單片機(jī)的電子琴學(xué)院名稱: 專 業(yè): 班 級(jí): 姓 名: 學(xué) 號(hào): 指導(dǎo)教師: *年*月目錄摘要第一章 引言第二章 任務(wù)要求與總體設(shè)計(jì)方案3 2.1 設(shè)計(jì)任務(wù)與要求3 2.2 設(shè)計(jì)方案3 2.2.1 播放模塊3 2.2.2 按鍵控制模塊4 2.3 總體硬件組成框圖4三、硬件設(shè)計(jì)及說(shuō)明3.1系統(tǒng)組成及總體框圖3.2元件簡(jiǎn)介3.2.1 stc89sc523.2.2 lm3863.3各功能模塊原理圖3.4.1 stc89c2模塊電路原理圖3.4.2鍵盤掃描模塊電路原理圖3.4.3音頻處理模塊電路原理圖四、軟件設(shè)計(jì)4.1 音樂(lè)相關(guān)知識(shí)4.2如何用單片機(jī)實(shí)現(xiàn)音樂(lè)的節(jié)拍4.3如何用單片機(jī)

2、產(chǎn)生音頻脈沖4.4系統(tǒng)總體功能流程圖五、系統(tǒng)調(diào)試5.1硬件調(diào)試5.2 軟件調(diào)試六、課程設(shè)計(jì)總結(jié)以及心得體會(huì)七、參考文獻(xiàn)附錄1:元器件清單附錄2:主要電路原理圖附錄3:程序清單摘 要 電子琴是現(xiàn)代電子科技與音樂(lè)結(jié)合的產(chǎn)物,是一種新型的鍵盤樂(lè)器。它在現(xiàn)代音樂(lè)扮演著重要的角色,單片機(jī)具有強(qiáng)大的控制功能和靈活的編程實(shí)現(xiàn)特性,它已經(jīng)溶入現(xiàn)代人們的生活中,成為不可替代的一部分。本文的主要內(nèi)容是用stc89c52單片機(jī)為核心控制元件,設(shè)計(jì)一個(gè)電子琴。以單片機(jī)作為主控核心,與鍵盤、揚(yáng)聲器等模塊組成核心主控制模塊,在主控模塊上設(shè)有16個(gè)按鍵和揚(yáng)聲器。本系統(tǒng)運(yùn)行穩(wěn)定,其優(yōu)點(diǎn)是硬件電路簡(jiǎn)單,軟件功能完善,控制系統(tǒng)可

3、靠性價(jià)比較高等,具有一定的實(shí)用和參考價(jià)值。關(guān)鍵詞:?jiǎn)纹瑱C(jī) 鍵盤揚(yáng)聲器 電子琴abstract electronic organ is a modern electronic music technology and the product is a new type of keyboard instruments. it played an important role in modern music. scm has powerful control functions and flexible programming characteristics. it has converged wi

4、th modern peoples lives, become an irreplaceable part. the main content is at89s51 control of the core components, design of a electronic organ. scm as a host to the core, with the keyboard, speaker and other core modules. in the main control module has 16 keys and a speaker. the system is steady, i

5、ts simple hardware circuits, software functions, reliability of control system and high cost performance is its advantages. it also has certain practical and reference value.key words : scm keyboard speaker electronic organ第1章 引言 單片微型計(jì)算機(jī)是大規(guī)模集成電路技術(shù)發(fā)展的產(chǎn)物,屬第四代電子計(jì)算機(jī),它具有高性能、高速度、體積小、價(jià)格低廉、穩(wěn)定可靠、應(yīng)用廣泛的特點(diǎn)。它的應(yīng)用

6、必定導(dǎo)致傳統(tǒng)的控制技術(shù)從根本上發(fā)生變革。因此,單片機(jī)的開(kāi)發(fā)應(yīng)用已成為高科技和工程領(lǐng)域的一項(xiàng)重大課題。 電子琴是現(xiàn)代電子科技與音樂(lè)結(jié)合的產(chǎn)物,是一種新型的鍵盤樂(lè)器。它在現(xiàn)代音樂(lè)扮演著重要的角色,單片機(jī)具有強(qiáng)大的控制功能和靈活的編程實(shí)現(xiàn)特性,它已經(jīng)溶入現(xiàn)代人們的生活中,成為不可替代的一部分。本文的主要內(nèi)容是用at89s51單片機(jī)為核心控制元件,設(shè)計(jì)一個(gè)電子琴。以單片機(jī)作為主控核心,與鍵盤、揚(yáng)聲器等模塊組成核心主控制模塊,在主控模塊上設(shè)有16個(gè)按鍵和揚(yáng)聲器。本文主要對(duì)使用單片機(jī)設(shè)計(jì)簡(jiǎn)易電子琴進(jìn)行了分析,并介紹了基于單片機(jī)電子琴統(tǒng)硬件組成。利用單片機(jī)產(chǎn)生不同頻率來(lái)獲得我們要求的音階,最終可隨意彈奏想要

7、表達(dá)的音樂(lè)。并且本文分別從原理圖,主要芯片,各模塊原理及各模塊的程序的調(diào)試來(lái)詳細(xì)闡述。 一首音樂(lè)是許多不同的音階組成的,而每個(gè)音階對(duì)應(yīng)著不同的頻率,這樣我們就可以利用不同的頻率的組合,即可構(gòu)成我們所想要的音樂(lè)了,當(dāng)然對(duì)于單片機(jī)來(lái)產(chǎn)生不同的頻率非常方便,我們可以利用單片機(jī)的定時(shí)/計(jì)數(shù)器t0來(lái)產(chǎn)生這樣方波頻率信號(hào),因此,我們只要把一首歌曲的音階對(duì)應(yīng)頻率關(guān)系弄正確即可。第二章 任務(wù)要求與總體設(shè)計(jì)方案2.1 設(shè)計(jì)任務(wù)與要求利用所給鍵盤的4*4十六個(gè)鍵,能夠發(fā)出16個(gè)不同的音調(diào),并用p1.7的高低電平控制功能是為按鍵還是播放存在芯片中的音樂(lè)。當(dāng)接高電平時(shí)為音樂(lè)盒,接低電平時(shí)為按鍵的電子琴。當(dāng)系統(tǒng)掃描到鍵

8、盤按下,則快速檢測(cè)出是哪一個(gè)按鍵被按下,然后單片機(jī)的定時(shí)器啟動(dòng),發(fā)出一定頻率的脈沖,該頻率的脈沖經(jīng)喇叭驅(qū)動(dòng)電路放大濾波后,就會(huì)發(fā)出相應(yīng)的音調(diào)。如果在前一個(gè)按下的鍵發(fā)聲的同時(shí)有另一個(gè)按鍵被按下,則啟動(dòng)中斷系統(tǒng)。前面的發(fā)音停止,轉(zhuǎn)到后按的鍵的發(fā)音程序。發(fā)出后按的鍵的音調(diào)。2.2 設(shè)計(jì)方案 2.2.1 播放模塊播放模塊是由喇叭構(gòu)成,它幾乎不存在噪聲,音響效果較好,而且由于所需驅(qū)動(dòng)功率較小,且價(jià)格低廉,所以,被廣泛應(yīng)用。 2.2.2 按鍵控制模塊電子琴設(shè)有16個(gè)按鍵,其中16個(gè)作為音符輸入。16個(gè)按鍵分別代表167個(gè)音符,包括中音段的全部音符,低高音的部分音符。通過(guò)軟硬件設(shè)計(jì),模式轉(zhuǎn)換按鍵觸發(fā)外部中斷

9、,中斷使程序跳轉(zhuǎn),實(shí)現(xiàn)模式轉(zhuǎn)換,啟動(dòng)電子琴。然后通過(guò)查詢電子琴所按下的按鍵,讀取電子琴輸入狀態(tài),跳轉(zhuǎn)到對(duì)應(yīng)的程序入口,實(shí)現(xiàn)自編歌曲的輸入。 2.3 總體硬件組成框圖該設(shè)計(jì)方案是通過(guò)按鍵隨意按下所要表達(dá)的音符,作為電平送給主體電路,中央處理器通過(guò)識(shí)別,解碼輸出音符,在揚(yáng)聲器中發(fā)出有效的聲音。通過(guò)這樣可以不斷的彈奏我們想要的音符或者是音調(diào),電路由復(fù)位電路和功能按鍵電路組成,通過(guò)p1.7的高低電平可以選擇播放音樂(lè)或者彈奏音節(jié),硬件主要有下面幾個(gè)部分組成。功 能 選 擇(彈奏/播放)單片機(jī)鍵盤輸入音頻放大喇叭發(fā)出聲音圖2-1電子琴硬件設(shè)計(jì)框圖用p2口的高四位和p2口的低四位作為按鍵的接口,用p1口做信

10、號(hào)輸出口。第三章 硬件設(shè)計(jì)及說(shuō)明 3.1系統(tǒng)組成及總體框圖硬件設(shè)計(jì)的任務(wù)是根據(jù)總體設(shè)計(jì)要求,在選擇的機(jī)型的基礎(chǔ)上,具體確定系統(tǒng)中所要使用的元器件,設(shè)計(jì)出系統(tǒng)的原理框圖、電路原理圖。該設(shè)計(jì)要實(shí)現(xiàn)一種由單片機(jī)控制的電子琴,單片機(jī)工作于12mhz時(shí)鐘頻率,使用其定時(shí)/計(jì)數(shù)器t0,工作模式為1,改變計(jì)數(shù)值th0和tl0可以產(chǎn)生不同頻率的脈沖信號(hào)。該設(shè)計(jì)具有16個(gè)音節(jié)的鍵盤,用戶可以根據(jù)樂(lè)譜在鍵盤上進(jìn)行演奏,音樂(lè)發(fā)生器會(huì)根據(jù)用戶的彈奏,通過(guò)揚(yáng)聲器將音樂(lè)播放出來(lái)。由于本例實(shí)現(xiàn)的音樂(lè)發(fā)生器是由用戶通過(guò)鍵盤輸入彈奏樂(lè)曲的,所以節(jié)拍由用戶掌握,不由程序控制。用單片機(jī)產(chǎn)生的音頻脈沖直接驅(qū)動(dòng)揚(yáng)聲器并不能產(chǎn)生所要實(shí)現(xiàn)

11、的音樂(lè),因?yàn)樗鼪](méi)有足夠的驅(qū)動(dòng)能力,這就需要音頻功率放大電路。本例使用國(guó)家半導(dǎo)體公司的低壓音頻功率放大器lm386來(lái)實(shí)現(xiàn)音頻功放電路。功 能 選 擇(彈奏/播放)鍵盤輸入單片機(jī)喇叭發(fā)出聲音音頻放大圖3-1 系統(tǒng)結(jié)構(gòu)圖3.2元件簡(jiǎn)介3.2.1 stc89c52stc89c52是一種帶8k字節(jié)閃爍可編程可檫除只讀存儲(chǔ)器(fperom-flash programable and erasable read only memory )的低電壓,高性能comos8的微處理器,俗稱單片機(jī)。該器件采用atmel搞密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的mcs-51指令集和輸出管腳相兼容。主要功能特性如表二所

12、示:表二 stc89c52主要功能主要功能特性兼容mcs51指令系統(tǒng)8k可反復(fù)擦寫flash rom32個(gè)雙向i/o口256x8bit內(nèi)部ram3個(gè)16位可編程定時(shí)/計(jì)數(shù)器中斷時(shí)鐘頻率0-24mhz2個(gè)串行中斷可編程uart串行通道2個(gè)外部中斷源共6個(gè)中斷源2個(gè)讀寫中斷口線3級(jí)加密位低功耗空閑和掉電模式軟件設(shè)置睡眠和喚醒功能3.2.2 lm386 lm386是美國(guó)國(guó)家半導(dǎo)體公司生產(chǎn)的音頻功率放大 器,主要應(yīng)用于低電壓消費(fèi)類產(chǎn)品。為使外圍元件最少,電壓增益內(nèi)置為20。但在1腳和8腳之間增加一只外接電阻和電容,便可將電壓增益調(diào)為任意值,直至 200。輸入端以地位參考,同時(shí)輸出端被自動(dòng)偏置到電源電壓

13、的一半,在6v電源電壓下,它的靜態(tài)功耗僅為24mw,使得lm386特別適用于電池供電的場(chǎng)合。lm386是一種音頻集成功放,具有自身功耗低、電壓增益可調(diào)整、電源電壓范圍大、外接元件少和總諧波失真小等優(yōu)點(diǎn),廣泛應(yīng)用于錄音機(jī)和收音機(jī)之中。lm386的封裝形式有塑封8引線雙列直插式和貼片式。圖3-2 lm386的封裝形式特性(features) 靜態(tài)功耗低,約為4ma,可用于電池供電。 工作電壓范圍寬,4-12v or 5-18v。 外圍元件少。 電壓增益可調(diào),20-200。 低失真度。 其典型應(yīng)用電路如下:圖3-3 放大器增益=20(最少器件)圖3-4 放大器增益=50 圖3-5 低頻提升放大器3.

14、4 各功能模塊原理圖3.4.1 stc89c52模塊電路原理圖 單片機(jī)主程序模塊通過(guò)對(duì)鍵盤掃描程序信號(hào)的讀取,在通過(guò)對(duì)應(yīng)的表,取出數(shù)碼管顯示編碼和定時(shí)器初始值以產(chǎn)生不同的聲音信號(hào)。在這一過(guò)程中,對(duì)數(shù)碼管編碼是直接賦值,對(duì)聲音信號(hào)則是通過(guò)中斷程序進(jìn)行控制。圖3-7stc89c52模塊電路原理圖3.4.2鍵盤掃描模塊電路原理圖對(duì)鍵盤掃描電路的掃描方式有行掃描法和線反轉(zhuǎn)法,在此次程序編寫中,采用行掃描法,通過(guò)在p3.0p3.3上循環(huán)送出0掃描信號(hào),p3.4p3.7輸入按鍵上的高低電平信息給單片機(jī),經(jīng)處理程序,判斷出是哪個(gè)開(kāi)關(guān)按下,并送主程序以實(shí)現(xiàn)不同功能。p3.7p3.6p3.5p3.4p3.0p3

15、.1p3.2p3.3圖3-8 鍵盤掃描模塊電路原理圖3.4.4音頻處理模塊電路原理圖 由于單片機(jī)驅(qū)動(dòng)能力不夠,在處理音符信號(hào)時(shí),需加功率放大裝置,因lm386芯片具有低功耗、高增益的特點(diǎn),這合適單片機(jī)低功耗輸出,所以加裝lm386音頻信號(hào)放大器對(duì)信號(hào)進(jìn)行放大。圖3-10 音頻處理模塊電路原理圖第四章 軟件設(shè)計(jì) 本軟件設(shè)計(jì)關(guān)鍵是要實(shí)現(xiàn)一種由單片機(jī)控制的簡(jiǎn)單音樂(lè)發(fā)生器,它由16個(gè)音節(jié)組成的的鍵盤,用戶可以根據(jù)樂(lè)譜在鍵盤上進(jìn)行演奏,音樂(lè)發(fā)生器會(huì)根據(jù)用戶的彈奏,通過(guò)揚(yáng)聲器將音樂(lè)播放出來(lái)。4.1 音樂(lè)相關(guān)知識(shí) 樂(lè)音聽(tīng)起來(lái)有的高,有的低,這就叫音高,音高是由發(fā)音物體振動(dòng)頻率的高低決定的,頻率高聲音就高,頻

16、率低聲音就低,不同音商的樂(lè)音是用c、d、e、f、g、a、b表示的,這7個(gè)字母就是樂(lè)音的音名,它們一般依次唱成do、re、mi、fa、so、la、si,這是唱曲時(shí)樂(lè)音的發(fā)音,所以叫唱名。音持續(xù)時(shí)間的長(zhǎng)短即時(shí)值,一般用拍數(shù)表示,休止符表示暫停發(fā)音。一首音樂(lè)是由許多不同的音符組成的,而每個(gè)音符對(duì)應(yīng)著不同的頻率,這樣就可以利用不同頻率的組合,加以與拍數(shù)對(duì)應(yīng)的延時(shí),構(gòu)成音樂(lè)。4.2如何用單片機(jī)實(shí)現(xiàn)音樂(lè)的節(jié)拍 除了音符以外,節(jié)拍也是音樂(lè)的關(guān)鍵組成部分。節(jié)拍實(shí)際上就是音持續(xù)時(shí)間的長(zhǎng)短,在單片機(jī)系統(tǒng)中可以用延時(shí)來(lái)實(shí)現(xiàn),如果1/4拍的延時(shí)是0.4秒,則1拍的延時(shí)是1.6秒,只要知道1/4拍的延時(shí)時(shí)間,其余的節(jié)拍

17、延時(shí)時(shí)間就是它的陪數(shù)。如果單片機(jī)要自己播放音樂(lè),那么必須在程序設(shè)計(jì)中考慮到節(jié)拍的設(shè)置,由于本例實(shí)現(xiàn)的音樂(lè)發(fā)生器是由用戶通過(guò)鍵盤輸入彈奏樂(lè)曲的,所以節(jié)拍由用戶掌握,不由程序控制。對(duì)于不同的曲調(diào)我們也可以用單片機(jī)的另外一個(gè)定時(shí)/計(jì)數(shù)器來(lái)完成。音樂(lè)的音拍,一個(gè)節(jié)拍為單位(c調(diào))具體如下表:表4-1 音樂(lè)節(jié)拍表曲調(diào)值delay曲調(diào)值delay調(diào)4/4125ms調(diào)4/462ms調(diào)3/4187ms調(diào)3/494ms調(diào)2/4250ms調(diào)2/4125ms 4.3如何用單片機(jī)產(chǎn)生音頻脈沖 了解音樂(lè)的一些基本知識(shí)后可知,產(chǎn)生不同頻率的音頻脈沖即能產(chǎn)生音樂(lè),對(duì)于單片機(jī)而言,產(chǎn)生不同頻率有脈沖非常方便,可以利用它的定時(shí)

18、/計(jì)數(shù)器來(lái)產(chǎn)生這樣的方波頻率信號(hào),因此,需要弄清楚音樂(lè)中的音符和對(duì)應(yīng)的頻率,以及單片機(jī)定時(shí)計(jì)數(shù)的關(guān)系。在本實(shí)驗(yàn)中,單片機(jī)工作于12mhz時(shí)鐘頻率,使用其定時(shí)/計(jì)數(shù)器t0,工作模式為1,改變計(jì)數(shù)值th0和tl0可以產(chǎn)生不同頻率的脈沖信號(hào),在此情況下,c調(diào)的各音符頻率與計(jì)數(shù)值t的對(duì)照如下表:表4-2 音符頻率與計(jì)數(shù)值t的對(duì)照表音符頻率(hz)計(jì)數(shù)值(t值)音符頻率(hz)計(jì)數(shù)值(t值)低1do26263628#4fa#74064860#1do#27763737中5so78464898低2re29463835#5so#83194934#2re#31163928中6la88064968低3mi3306

19、4021#6la#93264994低4fa34964103中7si96865030#4fa#37064185低1do104665058低so39264260#1do#110965085#5so#41564331高2re117565110低6la44064400#2re#124565134#6la#46664463高3mi131865157低7si49464524高4fa139765178中1do52364580#4fa#149065198#1do#55464633高5so156865217中2re58764633#5so#166165235#2re#62264884高6la176065252中

20、3mi65964732#6la#186565268中4fa69864820高7si196765283 t的值決定了th0和tl0的值,其關(guān)系為:th0=t/256,tl0=t%2564.4系統(tǒng)總體功能流程圖該程序設(shè)計(jì)思路比較清晰既從開(kāi)始到聲明變量與函數(shù)再到讀取按鈕開(kāi)關(guān),判斷是否按下,然后就是一個(gè)一個(gè)按鈕的動(dòng)作。其主程序如下: 開(kāi)始 yesp1.7為高電平 no為電子琴為音樂(lè)盒 圖4-1 主程序框圖 按鍵子程序流程圖如下:yesyesnonoyesyesyesyesnoyesyesnoyesnonokey1鍵按下key2鍵按下key3鍵按下key4鍵按下ke51鍵按下key6鍵按下key7鍵按下

21、重新裝sth0,tl0和sth0,stl0重新裝sth0,tl0和sth0,stl0重新裝sth0,tl0和sth0,stl0key8鍵按下重新裝sth0,tl0和sth0,stl0重新裝sth0,tl0和sth0,stl0重新裝sth0,tl0和sth0,stl0重新裝sth0,tl0和sth0,stl0重新裝sth0,tl0和sth0,stl0nonononononononoyesyesyesyesyesyesyesyeskey9鍵按下key10鍵按下key11鍵按下key12鍵按下key13鍵按下key14鍵按下key15鍵按下重新裝sth0,tl0和sth0,stl0重新裝sth0,t

22、l0和sth0,stl0重新裝sth0,tl0和sth0,stl0key16鍵按下重新裝sth0,tl0和sth0,stl0數(shù)碼管顯示12,并播放so的高音數(shù)碼管顯示13,并播放la的高音重新裝sth0,tl0和sth0,stl0重新裝sth0,tl0和sth0,stl0第五章 系統(tǒng)調(diào)試 電路調(diào)試是整個(gè)系統(tǒng)功能否實(shí)現(xiàn)的關(guān)鍵步驟,我們將整個(gè)調(diào)試過(guò)程分為三大部分:硬件調(diào)試、軟件調(diào)試和綜合調(diào)試。5.1硬件調(diào)試硬件調(diào)試主要是針對(duì)單片機(jī)部分進(jìn)行調(diào)試。在上電前,先確保電路中不在斷路或短路情況,這一工作是整個(gè)調(diào)試工作的第一步,也是非常重要的一個(gè)步驟。在這部分調(diào)試中主要使用的工具是萬(wàn)用表,用來(lái)完成檢測(cè)電路中是

23、否存在斷路或者短路情況等。注意焊點(diǎn)之間,確保焊點(diǎn)沒(méi)有短接在一起,同時(shí)注意焊點(diǎn)的美觀,確保沒(méi)有開(kāi)路以及短路的現(xiàn)象出現(xiàn)。在確保硬件電路正常,無(wú)異常情況(斷路或短路)方可上電調(diào)試,上電調(diào)試的目的是檢驗(yàn)電路是否接錯(cuò),同時(shí)還要檢驗(yàn)原理是否正確,在本次設(shè)計(jì)中,上電調(diào)試主要鍵盤單片機(jī)控制部分和音頻轉(zhuǎn)換電路硬件調(diào)試。鍵盤單片機(jī)控制部分調(diào)試:上電后,隨機(jī)按動(dòng)鍵盤可以發(fā)現(xiàn)各個(gè)按鍵對(duì)應(yīng)的音正確。5.2 軟件調(diào)試調(diào)試主要方法和技巧: 通常一個(gè)調(diào)試程序應(yīng)該具備至少四種性能:跟蹤、斷點(diǎn)、查看變量、更改數(shù)值。整個(gè)程序是一個(gè)主程序調(diào)用各個(gè)子程序?qū)崿F(xiàn)功能的過(guò)程,要使主程序和整個(gè)程序都能平穩(wěn)運(yùn)行,各個(gè)模塊的子程序的正確與平穩(wěn)運(yùn)行

24、必不可少,所以在軟件調(diào)試的最初階段就是把各個(gè)子程序模塊進(jìn)行分別調(diào)試。第六章 課程設(shè)計(jì)總結(jié)以及心得體會(huì)通過(guò)這周的單片機(jī)課程設(shè)計(jì),我學(xué)到了不少課本上沒(méi)有的知識(shí),也鍛煉了自己的動(dòng)手能力,將以前學(xué)過(guò)的零散的知識(shí)串到一起。首先在課程設(shè)計(jì)剛開(kāi)始的調(diào)研階段,我學(xué)會(huì)了怎么通過(guò)各種方式查詢相關(guān)的資料。通過(guò)對(duì)這些資料的學(xué)習(xí),我大致了解了單片機(jī)的發(fā)展現(xiàn)狀以及未來(lái)的發(fā)展趨勢(shì),認(rèn)識(shí)到目前單片機(jī)方面的各種各樣的發(fā)展,和它們之間的競(jìng)爭(zhēng)。了解了單片機(jī)方面的先進(jìn)技術(shù),這些都為我的未來(lái)的學(xué)習(xí)指明了方向。我的課程設(shè)計(jì)主要涉及軟件方面的內(nèi)容,通過(guò)這些我的軟件開(kāi)發(fā)能力都獲得了提高。設(shè)計(jì)了一個(gè)單片機(jī)最小系統(tǒng)。通過(guò)開(kāi)發(fā)板的設(shè)計(jì)和硬件搭建的

25、過(guò)程,使我對(duì)51系單片機(jī)的接口有了更深層次的理解,熟悉了一些單片機(jī)常用的外圍電路引腳和連接方法,如復(fù)位,鍵盤等。在軟件方面,通過(guò)串行口調(diào)試工具的開(kāi)發(fā),使我加深了對(duì)于封裝的理解,熟悉了51系列單片機(jī)內(nèi)部的寄存器和編程規(guī)則,以及如何控制外圍電路。 最后,感謝老師的精心指導(dǎo),使我能夠完成這次課程設(shè)計(jì)。參考文獻(xiàn)【1】譚會(huì)生,張昌凡.eda技術(shù)及應(yīng)用(第二版)m.西安電子科技大學(xué)出版社,2001年9月第1版【2】徐志軍,王金明,伊廷輝等. eda技術(shù)與pld設(shè)計(jì)m.人民郵電出版社, 2006年2月第1版【3】趙鑫,蔣亮,齊兆群等.數(shù)字電路設(shè)計(jì)m.北京機(jī)械工業(yè)出版社,2005年6月第一版.【4】蘇家健、曹

26、柏榮、汪志鋒.單片機(jī)原理及應(yīng)用技術(shù)m.高等教育出版社【5】美ashish wilfred meeta gupta kartik bhatnagar著,劉永明,賀民譯. php專業(yè)項(xiàng)目實(shí)例開(kāi)發(fā)j. 水利水電出版社,2003【6】于海生. 微型計(jì)算機(jī)控制技術(shù)選編m.清華大學(xué)出版社,1999.【7】李朝青. 單片機(jī)原理及接口技術(shù)m. 北京:北京航天航空大學(xué)出版色,2001.【8】胡漢才. 單片機(jī)原理及其接口技術(shù)m. 北京:清華大學(xué)出版社,2004.附錄1:元器件清單揚(yáng)聲器 一只按鍵 16只電容: 0.1f 五只晶振: 12m 一只 瓷片電容: 20pf 二只 電解電容: 10uf 三只 47uf 一

27、只 電阻 10k 四只集成塊: lm386 一只stc89c52 一只附錄2:主要電路原理圖 附錄3:程序清單main: keybuf equ 30h sth0 equ 31h stl0 equ 32h temp equ 33h org 0000h ljmp start org 000bh ljmp int_t0 org 1000h ljmp shengrige org 1100hstart: mov tmod,#01h ;定時(shí)器0方式一 setb ea ;開(kāi)中斷 setb et0loop: mov a,p1 ;判斷電子琴的功能為放置已存音樂(lè)還是按鍵電子琴,高電平為音樂(lè)盒,低電平為電子琴 an

28、l a,#80h cjne a,00h,loop1 jmp waitloop1: ljmp shengrige wait: mov p3,#0ffh ;判斷是否有鍵按下? clr p3.4 ;是否第一行有鍵按下? mov a,p3 anl a,#0fh xrl a,#0fh jz nokey1 lcall dely10ms mov a,p3 anl a,#0fh xrl a,#0fh jz nokey1 mov a,p3 anl a,#0fh ;若有,則判斷是該行哪一列按下 cjne a,#0eh,nk1 mov keybuf,#0 ljmp dk1nk1: cjne a,#0dh,nk2 m

29、ov keybuf,#1 ljmp dk1nk2: cjne a,#0bh,nk3 mov keybuf,#2 ljmp dk1nk3: cjne a,#07h,nk4 mov keybuf,#3 ljmp dk1nk4: nopdk1: mov a,keybuf ;判斷好后將初值裝入t0中 mov dptr,#table movc a,a+dptr mov p0,a mov a,keybuf mov b,#2 mul ab mov temp,a mov dptr,#table1 movc a,a+dptr mov sth0,a mov th0,a inc temp mov a,temp mo

30、vc a,a+dptr mov stl0,a mov tl0,a setb tr0dk1a: mov a,p3 ;判斷按鍵是否松開(kāi),若沒(méi)有繼續(xù)剛才的聲音,若松開(kāi)則音樂(lè)停止。 anl a,#0fh xrl a,#0fh jnz dk1a clr tr0nokey1: mov p3,#0ffh ;是否第二行有鍵按下? clr p3.5 mov a,p3 anl a,#0fh xrl a,#0fh jz nokey2 lcall dely10ms mov a,p3 anl a,#0fh xrl a,#0fh jz nokey2 ;若有則判斷該行哪一列按下? mov a,p3 anl a,#0fh c

31、jne a,#0eh,nk5 mov keybuf,#4 ljmp dk2nk5: cjne a,#0dh,nk6 mov keybuf,#5 ljmp dk2nk6: cjne a,#0bh,nk7 mov keybuf,#6 ljmp dk2nk7: cjne a,#07h,nk8 mov keybuf,#7 ljmp dk2nk8: nopdk2: mov a,keybuf ;若有按下,重裝t0 mov dptr,#table movc a,a+dptr mov p0,a mov a,keybuf mov b,#2 mul ab mov temp,a mov dptr,#table1 m

32、ovc a,a+dptr mov sth0,a mov th0,a inc temp mov a,temp movc a,a+dptr mov stl0,a mov tl0,a setb tr0dk2a: mov a,p3 ;是否鍵按彈開(kāi),若沒(méi)有繼續(xù),則繼續(xù)發(fā)出原來(lái)的聲音。 anl a,#0fh xrl a,#0fh jnz dk2a clr tr0nokey2: mov p3,#0ffh ;判斷第三行是否有鍵按下? clr p3.6 mov a,p3 anl a,#0fh xrl a,#0fh jz nokey3 lcall dely10ms mov a,p3 anl a,#0fh xrl

33、a,#0fh jz nokey3 mov a,p3 anl a,#0fh cjne a,#0eh,nk9 ;判斷該行哪一列按下? mov keybuf,#8 ljmp dk3nk9: cjne a,#0dh,nk10 mov keybuf,#9 ljmp dk3nk10: cjne a,#0bh,nk11 mov keybuf,#10 ljmp dk3nk11: cjne a,#07h,nk12 mov keybuf,#11 ljmp dk3nk12: nopdk3: mov a,keybuf ;判斷好哪個(gè)按鍵按下后,重裝t0 mov dptr,#table movc a,a+dptr mov

34、 p0,a mov a,keybuf mov b,#2 mul ab mov temp,a mov dptr,#table1 movc a,a+dptr mov sth0,a mov th0,a inc temp mov a,temp movc a,a+dptr mov stl0,a mov tl0,a setb tr0dk3a: mov a,p3 ;判斷按鍵是否彈開(kāi),若無(wú),繼續(xù)發(fā)出剛剛的聲音。 anl a,#0fh xrl a,#0fh jnz dk3a clr tr0nokey3: mov p3,#0ffh ;是否第四行有鍵按下? clr p3.7 mov a,p3 anl a,#0fh

35、xrl a,#0fh jz nokey4 lcall dely10ms mov a,p3 anl a,#0fh xrl a,#0fh jz nokey4 mov a,p3 ;判斷改行哪一列按鍵按下 anl a,#0fh cjne a,#0eh,nk13 mov keybuf,#12 ljmp dk4nk13: cjne a,#0dh,nk14 mov keybuf,#13 ljmp dk4nk14: cjne a,#0bh,nk15 mov keybuf,#14 ljmp dk4nk15: cjne a,#07h,nk16 mov keybuf,#15 ljmp dk4nk16: nopdk4

36、: mov a,keybuf ;判斷好后重裝t0 mov dptr,#table movc a,a+dptr mov p0,a mov a,keybuf mov b,#2 mul ab mov temp,a mov dptr,#table1 movc a,a+dptr mov sth0,a mov th0,a inc temp mov a,temp movc a,a+dptr mov stl0,a mov tl0,a setb tr0dk4a: mov a,p3 ;判斷按鍵是否彈開(kāi),若無(wú),繼續(xù)發(fā)出原來(lái)的聲音。 anl a,#0fh xrl a,#0fh jnz dk4a clr tr0nokey4: ljmp loop dely10ms: mov r6,#10 ;延時(shí)子程序c1: mov r7,

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論