版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、湖南工業(yè)職業(yè)技術學院Hunan Industry Polytechnic畢 業(yè) 實 踐類 別 畢業(yè)設計 題 目 基于MCS51單片機簡單音樂發(fā)生器的設計系 名 稱 專業(yè)及班級 學生姓名 學 號 10 指導教師 王皚 趙俊 完成日期 2009年 4月15日湖南工業(yè)職業(yè)技術學院畢業(yè)實踐任務書系 名 稱 電氣工程系 專業(yè)及班級 電信S06-4 學生姓名 毛 浩 學 號 10 畢業(yè)實踐題目: 畢業(yè)設計 基于MSC-51單片機簡單音樂發(fā)生器的設計 指 導 教 師(簽字): 教研室主任(簽字): 系 主 任(簽字): 2009年1月10日畢業(yè)實踐課題及任務課題簡介該課題主要利用單片機技術,采用匯編語言或C
2、語言編程來控制音樂發(fā)生器實現彈奏音樂的過程。其目的是培養(yǎng)學生利用單片機控制技術,匯編語言或C語言編程控制技術解決生產、生活中的實際問題,對提高學生的設計能力動手能力和工程實踐技能有較重要的意義。學生在設計該課題時,應具備電路分析、電子技術、電子CAD技術、單片機控制技術、C語言程序設計等方面的相關知識,掌握電路設計流程圖,電子元器件的選擇、電路原理圖的設計及連線。熟悉程序的編寫,輸入,修改和調試等。課題任務要求1、 選擇正確的電子元件2、 畫出電氣控制系統(tǒng)原理圖及PCB板的布線設計3、 用C語言或匯編語言編寫出系統(tǒng)控制程序4、 系統(tǒng)的安裝與調試進程安排第3周:根據課題要求,查閱相關理論書籍,設
3、計參考書及相關資料,進一步加深對課題的理解和認識。第4周:根據控制要求,設計控制電路狀態(tài)流程圖,設計系統(tǒng)控制程序,設計系統(tǒng)電氣控制原理圖。第5周:選擇電子電器元件。第6周:開始組裝電路,上機開始調試控制程序。第7周:調試 ,修改,完善設計,撰寫畢業(yè)設計說明書。第8周:設計資料的修改、整理、完善。畢業(yè)設計答辯。畢業(yè)實習(第1周第2周)地點:湘計算機廠、湖南機床廠、長沙電機廠、曙光電子廠、長沙水泵廠或自找實習單位實習內容及要求:了解企業(yè)現狀及發(fā)展趨勢,熟悉生產、裝配及加工工藝流程,了解企業(yè)的新技術、新工藝的應用情況,調查了解企業(yè)對專業(yè)技術人員人才需求情況及人才特點,寫出實習報告(5000字以上)參
4、考資料1、徐仁貴、廖哲智主編單片微型計算機應用技術 北京:機械工業(yè)出版社20032、劉仁宇、施偉主編.模擬電子技術 北京:機械工業(yè)出版社19983、盧慶林主編 數字電子技術 北京:機械工業(yè)出版社20054、龍志文主編 電力電子技術 北京:機械工業(yè)出版社20055、邱麗芳主編 單片機原理與應用 人民郵電出版社20076、王廷才主編 電子線路CAD Protel99使用指南 機械工業(yè)出版社20067、林志琦主編 基于Proteus的單片機可視化軟硬件仿真M北京航天航空大學出版20068、徐仁貴主編 單片微型計算機應用技術M 北京:機械工業(yè)出版社20009、戴佳 戴衛(wèi)恒主編51單片機C語言應用程序設
5、計實例精講M北京:電子工業(yè)出版社2007湖南工業(yè)職業(yè)技術學院畢業(yè)實踐開題報告書 電氣工程 系 電子信息工程 專業(yè) 學生姓名毛浩班級電信S06-4學號10課題名稱基于MSC-51單片機簡單音樂發(fā)生器的設計 課題準備情況在動手做設計之前,我們在網上查找了一些設計的思路和方法,再與之關聯的知識,在圖書館查閱了單片微型計算機應用技術、電力電子技術、電路分析、電子線路CAD、微機原理與應用技術、等與音樂發(fā)生器有關書籍資料。思路和方法本次設計的核心器件是單片機芯片和音頻功放芯片。單片機采用的是Atmel公司的51單片機芯片AT89C51,音頻功放芯片使用的是國家半導體公司的LM386,鍵盤使用44布局,用
6、戶可通過鍵盤上對應的音符鍵彈奏樂曲,編程語言使用語言。擬重點解決的問題課程設計中重點需要解決的有控制電路狀態(tài)流程圖的設計、匯編系統(tǒng)控制程序、電氣控制系統(tǒng)原理圖設計、上機調試控制程序。計劃進度該設計我們準備用八個星期完成,前三周用來查閱相關理論書籍,設計參考書,進一步加深對課題的理解和認識,再擬好整體設計方法與思路。第四周根據控制要求,設計控制電路狀態(tài)流程圖,設計系統(tǒng)控制程序,設計系統(tǒng)電氣控制原理圖。第五到七周用C語言編寫號系統(tǒng)運行的控制程序,選擇電子電器原件,設計電路,上機開始調試控制程序,第八周設計資料的修改、整理、完善。撰寫畢業(yè)設計說明書。指導教師意見 簽名:年 月 日湖南工業(yè)職業(yè)技術學院
7、畢業(yè)實踐考核表 電氣工程 系 電子信息工程 專業(yè) 學生姓名毛浩班級電信S06-4學號10課題名稱基于MSC-51單片機簡單音樂發(fā)生器的設計 課題完成情況及自我評價經過查找資料對音樂發(fā)生器的工作原理有了一定的了解與認識,在設計的過程中也遇到過不少問題,但是本著“世上無難事,只怕有心人”的心態(tài),同時在指導老師的指導、同學之間的相互討論下,最終按計劃進度完成了課題。通過設計使我對以前所學的知識進行了一次系統(tǒng)的整合與掌握,對系統(tǒng)的設計、產品的工藝流程也有了更進一步的了解認識。指導教師評價評語評分 (共40分)簽名: 年 月 日評閱教師評價評語評分 (共30分)簽名: 年 月 日答辯小組評價評語評分 (
8、共30分)組長簽名: 年 月 日畢業(yè)實踐評審組審核 經綜合考核該學生畢業(yè)實踐得分 分,評定為 組長簽名:年 月 日摘 要本文是應用MCS-51單片機原理和控制理論設計音樂發(fā)生器的硬件電路,并利用C語言進行程序設計。通過控制單片機內部的定時器來產生不同頻率的方波,驅動喇叭發(fā)出不同音調的音樂,再利用延遲來控制發(fā)音時間的長短。把樂譜轉化成相應的定時常數就可以從發(fā)音設備中演奏出悅耳動聽的音樂。首先在緒論中介紹了本課題的課題背景、研究意義及完成的功能。本系統(tǒng)是以單片機的基本語言C語言來進行軟件設計。正文中首先簡單描述系統(tǒng)硬件工作原理,且附以系統(tǒng)硬件設計框圖,并介紹了單片機微處理器的發(fā)展史,論述了本次畢業(yè)
9、設計所應用的各硬件接口技術和各個接口模塊的功能及工作過程。其次闡述了程序的流程和實現過程。本文撰寫的主導思想是軟、硬件相結合,以硬件為基礎,來進行各功能模塊的編寫。最后對我所開發(fā)的用單片機實現音樂發(fā)生器的設計思想作了詳細的論述。關鍵詞:單片機,音樂,C語言,AT89C51,LM386目 錄第一章 前言11.1 單片機技術的特點及應用11.1.1 單片機的特點11.1.2 單片機的應用11.2 單片機實現音樂發(fā)生器的意義2第二章 系統(tǒng)總體分析32.1音樂的基本知識32.2單片機產生音頻脈沖32.3單片機實現音樂節(jié)拍52.4建立音樂的步驟62.5音頻功放6第三章 硬件電路的設計73.1結構框圖73
10、.2主要器件73.3.1 LM38673.3.2 AT89C5183.3 電路原理圖及說明11第四章 系統(tǒng)主要程序的設計134.1 程序語言的選擇134.2 C語言程序設計13第五章 調試與檢測215.1 硬件的焊接215.2 硬件的調試機器故障排除22總 結24致 謝25參考文獻26第一章 前言1.1 單片機技術的特點及應用隨著大規(guī)模和超大規(guī)模集成電路技術的發(fā)展和計算機微型化的需要,將微型計算機的基本部件:中央處理器(CPU)、存儲器、輸入/輸出(I/O)接口、定時器/計數器等多種資源集成在一個半導體芯片上,使得一塊集成電力芯片就能構成一個完整的微型計算機。這種集成電路芯片被稱為單片微型計算
11、機(Single Chip Microcomuper),簡稱單片機。單片機在結構設計上,他的軟、硬件系統(tǒng)及I/O接口控制能力等方面都有獨到之處,具有較強而有效的功能。從其組成、邏輯功能上來看,單片機具備了微型計算機系統(tǒng)的基本部件。目前,8位高檔機和16位機在單片機應用中占主導地位,產品眾多,已有幾十個系列、幾百個型號,除了通用單片機以外,集成更多資源,如A/D轉換器、D/A轉換器、“看門狗”(Watchdog)電路、LCD控制器、網路控制模塊等,將單片機嵌入式系統(tǒng)和Intenet連接起來已是一種趨勢。還有專用單片機產品,如專門用于數據處理(圖像和語言處理等)的單片機??傊?,單片機正在向微型化、
12、低功耗、高速、集成、高集成度、多資源、網絡化、專用型方向發(fā)展。1.1.1 單片機的特點單片機在一塊芯片上集成了一臺微型計算機所需要的基本部件。它在硬件結構、指令功能等方面均有獨到之處,其特點如下:性價比高。單片機性能穩(wěn)定,功能強大,價格便宜。體積小,集成度高、可靠性高。單片機將一臺計算機所需要的基本部件集成在一塊芯片上,減少了各部件間的連線,能大大地提高運行速度和抗干擾能力??刂乒δ軓?。為了,滿足工業(yè)控制的需要,單片機有很強的位處理功能。在其他的邏輯控制功能等方面,也都優(yōu)于一般的8位微處理。單片機系統(tǒng)配置靈活、方便。由于單片機帶有一定數量的接口電路,容易構成各種規(guī)模的應用系統(tǒng)。單片機類型多。單
13、從ROM類型來說,單片機的只讀存儲器有ROM、EPROM、EEPROM、Flash Memory等多種,可以根據實際需要進行選擇。1.1.2 單片機的應用由于單片機具有如上所述的特點,因此在工業(yè)生產、日常生活等諸多領域,得到了日益廣泛的應用,單片機的主要應用領域有:工業(yè)控制,如在工業(yè)生產過程中參數(如溫度、壓力、流量、液位等)的控制,數據處理功能于一體,如轉速測試儀、噪聲測試儀、振動測試儀及電子秤等。計算機網絡與通信,單片機上有并行I/O接口角兒串聯I/0接口,可用于通信接口,如單片機控制的自動呼叫應答系統(tǒng)、列車無線通信系統(tǒng)、遙測遙控系統(tǒng)等。家用電器,由于單片機體積小,控制能力強,且片內與定時
14、器/計數器,所以廣泛應用于家用設備中。如空調、洗衣機、微波爐及防盜報警等。本設計是單片機在音樂發(fā)生器方面的應用。1.2 單片機實現音樂發(fā)生器的意義本設計是以AT89C51芯片的電路為基礎,外部加上功率放大器、放音設備,以此來實現音樂發(fā)生器的硬件電路,通過軟件程序來控制單片機內部的定時器使其演奏出優(yōu)美動聽的音樂。用戶可以按照自己的喜好選擇音樂并將其轉化成機器碼存入單片機的存儲器中。對于不同型號的單片機只需要相應的改變一下地址即可。該軟、硬件系統(tǒng)具有很好的通用性,很高的實際使用價值,為廣大單片機和音樂愛好者提供了很好的借鑒。為了完成音樂發(fā)生器的設計,我將進行以下工作:1.分析音樂實現方法,選擇合適
15、設計的芯片。2.進行硬件電路的設計,繪制音樂發(fā)生器電路原理圖。3.進行軟件設計,設計程序代碼。4.調試硬件和軟件電路,驗證整個設計。第二章 系統(tǒng)總體分析2.1音樂的基本知識在人類還沒有產生語言時,就已經知道利用聲音的高低、強弱等來表達自己的思想和感情。聲帶、琴弦等物體振動時會發(fā)出聲波,聲波通過空氣傳播入人耳,人民就聽到了聲音。聲音有噪音和樂音之分,振動有規(guī)律的聲音是樂音,如人發(fā)出的歌聲、有琴弦發(fā)出的琴音等,音樂中所用的聲音主要是樂音。樂音聽起來有的高有的低,這就叫高音。高音是由發(fā)音物體振動頻率的高低決定的,頻率高的就聲音高,頻率低的聲音低。比如男人唱歌時聲帶振動頻率低,聲音女人唱歌時聲帶振動頻
16、率高,所以男聲比女聲低。音樂中所用樂音的范圍從每秒鐘振動16次的最低音到每秒鐘振動4186次的最高音,大約97個?,F在最大的鋼琴可以演奏除其中的88個音,是樂音范圍最大的樂器,人唱歌時因受生理限制,所能唱出的樂音只是其中的一部分。不同的高音的樂音是用C、D、E、F、A、B來表示,這7個字母就是樂音的音名,他們依次唱成DO、RE、MI、FA、SO、LA、SI,即唱成簡譜的1、2、3、4、5、6、7、相當于漢字“多來米閥梭拉西”的讀音,這是唱曲時樂音的發(fā)音,所以叫唱名。把C、D、E、F、A、B這一組音的距離分成12個等分,每一個等分叫一個“半音”兩個音之間的距離有兩個“半音”的,就叫“全音”。在鋼
17、琴鍵盤樂器上,C-D、D-E、F-G、G-A、A-B兩音之間隔著一個黑鍵,它們之間的距離就叫做全音;E-F、B-C兩音之間沒有黑鍵相隔,它們之間隔的距離就是半音。通俗地說,那些唱成1、2、3、4、5、6、7的音叫做自然音,那些左上角加上#號的(如#4、#1)或者或者b號(如b7、b3)的叫變化音。#叫升記號,表示把音在原來的基礎上升高半音;b叫降記號,表示在原來的基礎上降低半音。音持續(xù)時間的長短即時值,一般用拍數表示,休止符表示暫停發(fā)音。一首音樂是有許多不同的音符組成的,而每個音符對應著不同的頻率,這樣就可以利用不同的頻率的組合,加以與拍數對應的延時,構成音樂。2.2單片機產生音頻脈沖 要產生
18、音頻脈沖,只要算出某一音頻的周期(1/頻率),然后將此周期除以2,即為半周期的時間。利用定時器計時這個半周期時間,每當計時到后就將輸出脈沖的I/O反相,然后重復計時此半周期時間再對I/O反相,就可在I/O腳上得到此頻率的脈沖。利用8051的內部定時器使其工作在計數器模式MODE1下,改變計數值TH0及TL0以產生不同頻率的方法。 例如頻率為523Hz,其周期T=1/523=1912us,因此只要令計數器計時956us/1us=956,在每計數956次時將I/O反相,就可得到中音DO(523Hz)。 計數脈沖值與頻率的關系公式如下: N=Fi2Fr N:計數值; Fi:內部計時一次為1us,故其
19、頻率為12MHz; Fr:要產生的頻率; 其計數值的求法如下: T=65536-N=65536-Fi2Fr 例如:設K=65536,F=Fi=1MHz,求低音DO(261MHz)、中音DO(523MHz)、高音DO(1046MHz)的計數值。 T=65536-N=65536-Fi2Fr=65536-2Fr=65536-/Fr 低音DO的T=65536-/262=63627 中音DO的T=65536-/523=64580高音DO的T=65536-/1047=650595. C調各音符頻率與計數值T的對照表如表1-1所示:表1-1 C調各音符頻率與計數值T的對照表音符低1DO頻率(Hz)簡譜碼(T
20、值)音符頻率(Hz)簡譜碼(T值)26263628#4FA#74064860#1DO#27763731中5SO78464898低2RE#2RE#29463835#5SO#8316493431163928中6LA88064968低3M33064021#693264994低4FA34964103中7SI98865030#4FA#37064185高1DO104665058低5SO39264260#1DO#110965085#5SO#41564331高2RE117565110低6LA44064400#2RE#124565134#646664463高3M131865157低7SI49464524高4FA
21、139765178中1DO52364580#4FA#148065198#1DO#55464633高5SO156865217中2RE58764684#5SO#166165235#2RE#62264732高6LA176065252中3M65964777#6186565268中4FA69864820高1967652832.3單片機實現音樂節(jié)拍除了音符以外,節(jié)拍也是音樂的關鍵組成部分。節(jié)拍實際上就是因持續(xù)時間的長短,在單片機系統(tǒng)中可以用延時來實現。如果1/4拍的延時設為0.4秒,則一拍的延時是0.4秒,只要知道1/4拍的延時時間,其余的節(jié)拍延時時間就是它的倍數。表1-2所示的為節(jié)拍與節(jié)拍碼對照。表1-
22、3所示的為各調1/4節(jié)拍的時間設定 各調1/4節(jié)拍的時間設定表1-2 節(jié)拍與節(jié)拍碼對照節(jié) 拍 碼節(jié) 拍 數節(jié) 拍 碼節(jié) 拍 數11/4拍11/8拍22/4拍21/4拍33/4拍33/8拍41拍41/2拍51又1/4拍55/8拍61又1/2拍63/4拍82拍81A2又1/2拍A1又1/4拍C3拍C1又1/2拍F3又3/4拍表1-3 各調1/4節(jié)拍的時間設定 各調1/4節(jié)拍的時間設定曲 調 值DELAY曲 調 值DELAY調4/4125毫秒調4/462毫秒調3/4187毫秒調3/494毫秒調2/4250毫秒調2/4125毫秒1/4拍的延遲時間=187毫秒DELAY: MOV R7,#02D2: M
23、OV R4,#187 別的延遲值,只需修改這兒的值為相應值,即可。D3: MOV R3,#248 DJNZ R3,$ DJNZ R4,D3 DJNZ R7,D2 DJNZ R5,DELAY 節(jié)拍值放在R5,決定節(jié)拍 RET2.4建立音樂的步驟 1)先把樂譜的音符找出,然后建立T值表的順序。 2)把T值表建立在TABLE1,構成發(fā)音符是計數值放在“TABLE”。 3)簡譜碼(音符)為高位,節(jié)拍為(節(jié)拍數)為低4位,音符節(jié)拍碼放在程序的“TABLE”處。2.5音頻功放在一定頻率范圍內,具有固定頻率的振動就能產生樂音,但是單片機產生的音頻脈沖直接驅動揚聲器并不能產生所要實現的音樂,因為它沒有足夠的驅
24、動能力,這就需要音頻功率放大電路。本次設計使用國家半導體公司的低壓高頻功率放大器LM386實現音頻功放電路。LM386具有以下功能特性: 適合于電池工作; 使用外部元件少; 供電范圍寬:412V或者518V; 低靜態(tài)電流消耗:4mA; 電壓增益范圍:20200V;LM386的增益可調,它廣泛應用與各種音頻電路中。第三章 硬件電路的設計這次設計的硬件電路較為簡單,主要由鍵盤、單片機、音頻功放及揚聲器組成。3.1結構框圖系統(tǒng)硬件的結構框圖如圖1-1所示:圖3-1 系統(tǒng)硬件結構框圖3.2主要器件本次設計的核心器件是單片機芯片和音頻功放芯片。單片機采用的是Atmel公司的51單片機芯片AT89C51,
25、它完全可以滿足本次設計的需求,而且使用方便,價格便宜,易于獲取。音頻功放芯片使用的是國家半導體公司的LM386。3.3.1 LM386 LM386的引腳分布圖如圖2-3所示:圖3-2 LM386引腳分布圖其引腳功能說明如下:GAIN(一腳、8腳):增益控制引腳,如果兩腳懸空,則增益為20V;如果兩腳之間接一個大的極性電容,則增益可達到200V;如果再和電容串一個電阻;增益可設置為20200V之間。-IN(2腳):負極性輸入腳。在單極性輸入時,此引腳接地。+IN(3腳):正極性輸入腳。在單極性輸入時,此引腳接輸入信號。GND(4腳):接地端。Vout(5腳):電壓輸出腳,此引腳為音頻功放電路的輸
26、出。Vs(6腳):電源腳。供電范圍:415V或者518V。BYPASS(7腳):旁路腳,此引腳可懸空或者旁邊接一個大電容接地。3.3.2 AT89C51如圖2-6所示。圖3-3 引腳圖1、電源引腳Vcc 40 電源端GND 20 接地端工作電壓為5V,另有AT89LV51 工作電壓則是2.7-6V, 引腳功能一樣。2、.外接晶振引腳 如圖2-7所示。XTAL1 是片內振蕩器的反相放大器輸入端,XTAL2 則是輸出端,使用外部振蕩器時,外部振蕩信號應直接加到XTAL1,而XTAL2 懸空。內部方式時,時鐘發(fā)生器對振蕩脈沖二分頻,如晶振為12MHz,時鐘頻率就為6MHz。晶振的頻率可以在1MHz-
27、24MHz內選擇。電容取30PF 左右。型號同樣為AT89C51 圖3-4 外接晶振引腳 的芯片,在其后面還有頻率編號,有12,16,20,24MHz 可選。大家在購買和選用時要注意了。如AT89C51 24PC 就是最高振蕩頻率為24MHz,40P6 封裝的普通商用芯片。3、復位 RST 9在振蕩器運行時,有兩個機器周期(24 個振蕩周期)以上的高電平出現在此引腿時,將使單片機復位,只要這個腳保持高電平,51 芯片便循環(huán)復位。復位后P0P3 口均置1 引腳表現為高電平,程序計數器和特殊功能寄存器SFR 全部清零。當復位腳由高電平變?yōu)榈?圖3-5 常用復位電路圖電平時,芯片為ROM 的00H
28、處開始運行程序。常用的復位電路如圖2-8所示。4、輸入輸出引腳(1) P0 端口P0.0-P0.7 P0 是一個8 位漏極開路型雙向I/O 端口,端口置1(對端口寫1)時作高阻抗輸入端。作為輸出口時能驅動8 個TTL。對內部Flash 程序存儲器編程時,接收指令字節(jié);校驗程序時輸出指令字節(jié),要求外接上拉電阻。在訪問外部程序和外部數據存儲器時,P0 口是分時轉換的地址(低8 位)/數據總線,訪問期間內部的上拉電阻起作用。如圖2-9所示。 圖3-6 P0口一位結構圖(2) P1 端口P1.0P1.7 P1 是一個帶有內部上拉電阻的8 位雙向I/0 端口。輸出時可驅動4 個TTL。端口置1 時,內部
29、上拉電阻將端口拉到高電平,作輸入用。對內部Flash 程序存儲器編程時,接收低8 位地址信息。如圖2-10所示。圖3-7 P1口一位(3) P2 端口P2.0P2.7 P2 是一個帶有內部上拉電阻的8 位雙向I/0 端口。輸出時可驅動4 個TTL。端口置1 時,內部上拉電阻將端口拉到高電平,作輸入用。對內部Flash 程序存儲器編程時,接收高8 位地址和控制信息。在訪問外部程序和16 位外部數據存儲器時,P2 口送出高8 位地址。而在訪問8位地址的外部數據存儲器時其引腳上的內容在此期間不會改變。(4) P3 端口P3.0P3.7 P2 是一個帶有內部上拉電阻的8 位雙向I/0 端口。輸出時可驅
30、動4 個TTL。端口置1 時,內部上拉電阻將端口拉到高電平,作輸入用。除此之外P3 端口還用于一些專門功能。如圖2-11所示。 圖3-8 P3口一位結構圖P13 端口在做輸入使用時,因內部有上接電阻,被外部拉低的引腳會輸出一定的電流。P3口也可作為AT89C51的一些特殊功能口,如下所示:P3口管腳 備選功能P3.0 RXD(串行輸入口)P3.1 TXD(串行輸出口)P3.2 /INT0(外部中斷0)P3.3 /INT1(外部中斷1)P3.4 T0(記時器0外部輸入)P3.5 T1(記時器1外部輸入)P3.6 /WR(外部數據存儲器寫選通)P3.7 /RD(外部數據存儲器讀選通)P3口同時為閃
31、爍編程和編程校驗接收一些控制信號。8051單片機的內部高128個字節(jié)為專用寄存器區(qū),其中51子系列有21個(52子系列有26個)特殊功能寄存器(SFR),它們離散的分布在這個區(qū)中,分別用于CPU并行口、串行口、中斷系統(tǒng)、定時/計數器等功能單元及控制和狀態(tài)寄存器。8051系列單片機在物理上有四個存儲空間:片內程序存儲器空間和片外程序存儲器空間,片內數據存儲器空間和片外數據存儲器空間。8051單片機內部有256字節(jié)的數據存儲空間RAM和4KB的程序存儲器ROM。除此外還可以在片外擴展RAM和ROM,并且各自有64KB的尋址空間。64KB的程序存儲器ROM中,有4KB地址區(qū)對于片內ROM和片外ROM
32、是公用的。這4KB的地址為0000H-FFFH而1000H-FFFFH地址為外部ROM專用。CPU的控制器專門提供一個控制信號EA,用來區(qū)分內部ROM和外部ROM的公用地址區(qū):當EA接高電平時,單片機從片內的4KB存儲區(qū)取出指令,當指令地址超過0FFFH后,就自動地轉向片外ROM取指令;當EA接低電平時CPU只從片外ROM取指令。程序存儲器的某些單元是保留給系統(tǒng)使用的:0000H-0002H單元是所有執(zhí)行程序的入口地址,復位后,CPU總是從0000H單元開始執(zhí)行程序;0003H-002A單元均勻地分為五段,用來做五個中斷服務程序的入口。數據存儲器RAM也有64KB的尋址空間,在地址上與ROM重
33、疊。8051通過不同的信號來選擇ROM或RAM;當從外部ROM取指令時用選通信號;當從外部RAM讀寫數據時采用讀寫信號線或來選通。因此不會因地址重疊而出現混亂。對于片內RAM的低128字節(jié)(00H-7FH),還可以分為三個區(qū)。第一個區(qū)從00H-1FH安排了四組工作寄存器,每組占8個RAM字節(jié),記為R0-R7。在某一時刻CPU只能用其中一組寄存器,工作寄存器的選擇是有PSW中的兩位來決定。第二個區(qū)域是可位尋址的區(qū),占用20H-2FH共16個字節(jié)(128位),這個區(qū)域除了作一般的RAM區(qū)還可以進行位操作。第三個區(qū)域就是一般的RAM區(qū),地址為30H-7FH共80個字節(jié)。3.3 電路原理圖及說明單片機
34、音樂電路原理圖如圖2-4所示;圖中單片機工作時鐘為20Hz,其中P1口為鍵盤接口,P2.0為音頻脈沖的輸出腳。 圖3-9 單片機音樂電路原理圖本次設計的44鍵盤布局如圖2-5所示;用戶可通過鍵盤上對應的音符鍵彈奏樂曲3456712345671234第四章 系統(tǒng)主要程序的設計4.1 程序語言的選擇51的編程語言常用的有二種,一種是匯編語言,一種是C 語言。匯編語言的機器代碼生成效率很高但可讀性卻并不強,復雜一點的程序就更是難讀懂,而C 語言在大多數情況下其機器代碼生成效率和匯編語言相當,但可讀性和可移植性卻遠遠超過匯編語言,而且C 語言還可以嵌入匯編來解決高時效性的代碼編寫問題。對于開發(fā)周期來說
35、,中大型的軟件編寫用C 語言的開發(fā)周期通常要小于匯編語言很多。綜合以上C 語言的優(yōu)點,我在學習時選擇了C 語言指令的執(zhí)行速度快,節(jié)省存儲空間。4.2 C語言程序設計此程序用了外中斷INT0,用于換歌曲,當有鍵按下時,產生中斷,演奏下一首歌。沒有中斷時,循環(huán)演奏此曲。#include reg51.h#define uint unsigned int#define uchar unsigned charuchar * TABLE ;code uint TABLE1 15=64260,64400,64524,64580, 64684,64777,64820,64898, 64968,65030,65
36、058,65110, 65157,65178,65217; code uchar SONG = /1. 遲來的愛 /0 0x08,0x08, /1 0x02,0x12,0x42,0x62,0x52,0x42,0x21,11, 0x18,0x18, 0x02,0x22,0x42,0x82,0x92,0x82,0x61,0x51,0x42, 0x58,0x58, /2 0x66,0x51,0x61,0x84,0x62,0x82, 0x52,0x62,0x42,0x52,0x28, 0x52,0x42,0x52,0x62,0x94,0x81,0x91,0x81,0x61, 0x1C,0x12,0x8
37、2; code uchar SONG1 = /2.兩只蝴蝶 /0 0x08,0x08, /1 326 0x51,0x61,0x81,0x61, 0x94,0x8C, 0x02,0x42,0x51,0x41,0x21,0x41,0x02,0x42,0x51,0x41,0x21,0x51, 0x04,0x03,0x11,0x21,0x41,0x52,0x51,0x41,0x21,0x41, 0x62,0x82,0x02,0x62,0x62,0x52,0x62,0x82, /2 0x94,0x93,0x81,0x86,0x81,0x91, 0xB2,0xB2,0xB2,0xC2,0xC2,0xB2,
38、0xB4, 0x04,0x02,0x82,0x71,0x61,0x51,0x61,0x51,0x41,0x21,0x41, 0x42,0x52,0x62,0x82,0x84,0x62,0x52; code uchar SONG2 = /3.祝你平安 /0 0x08,0x08, /1 0x62,0x82,0x81,0x62,0x81,0x88, 0x62,0x42,0x42,0x21,0x41,0x48, 0x62,0x82,0x81,0x93,0x88,0x51,0x61, /2 0x52,0x62,0x82,0x51,0x61,0x58, 0x62,0x42,0x42,0x21,0x61,0
39、x66,0x51,0x61, 0x62,0x42,0x42,0x21,0x61,0x68; code uchar SONG3 = /4.一個師傅三個徒弟 /0 0x08,0x08, /1 0xd2,0xe2,0xd2,0xe2,0xd2,0xe2,0xd2,0xb2, 0xa8,0x68, 0xd2,0xe2,0xd2,0xe2,0xd2,0xc2,0xb2,0xa2, /2 0xd8,0xd8, 0xd8,0xd8, 0x64,0x64,0x28, 0x44,0x22,0x12,0x24,0x04; code uchar SONG4 = /5.夢醒時分 /0 0x08,0x08, /1 0x
40、21,0x41,0x81,0x61,0x62,0x21,0x41,0x81,0x62,0x81,0x81,0x91,0xa1,0xb1, 0x82,0x81,0x81,0x81,0x93,0x68, /2 0x21,0x41,0x81,0x61,0x62,0x21,0x41,0x81,0x62,0x81,0x91,0xa1,0xa1,0x91, 0xc6,0x91,0x91,0x86; code uchar SONG5 = /6.祈禱 /0 0x08,0x08, /1 0x84,0x92,0xf2,0xd8, 0xc4,0xb2,0xa2,0x98, 0xc4,0xb2,0xf2,0xd2,0
41、xc4, 0xd8,0xd8, 0x14,0x22,0x82,0x68, 0x54,0x42,0x32,0x28, /2 0x14,0x22,0x42,0x44,0x14, 0x28,0x28, 0x28,0x28, 0x14,0x22,0x42,0x54,0x52,0x62; code uchar SONG6 = /7.春天的故事 /0 0x08,0x08, /1 0x02,0x12,0x22,0x12,0x68, 0x02,0x12,0x22,0x12, 0x58, 0x02,0x12,0x22,0x12, 0x58,0x52,0x52,0x62,0x92; code uchar SONG
42、7 = /8.好大一棵樹 /0 0x08,0x08, /1 0xdc,0xc2,0xd2, 0xc2,0x92,0xb2,0xa2,0xa2,0x82, 0x22,0x92,0xb2,0xd2,0xd2,0xc4,0x92, 0x94,0xd2,0xc2,0xb2,0xc2,0xc4, /2 0xe2,0xf2,0xfc, 0x62,0x82,0x83,0x61,0x86,0x02, 0x92,0xb2,0xb3,0x91,0x86,0x02; code uchar SONG8 = /9.愛就一個字 /0 0x08,0x08, /1 0x82,0x81,0x81,0x82,0xb1,0xb1,
43、0xb2,0x92,0x93,0x91, 0x82,0x91,0x81,0x82,0x71,0x61,0x72,0x82,0x84, /2 0x82,0x81,0x81,0x82,0xb2,0xb2,0x92,0x03,0x91, 0x82,0xc2,0xc2,0xa1,0xb1,0xb4,0xd2,0xc2; code uchar SONG9 = /大約在冬季 /0 0x08,0x08, /1 0xb6,0xa1,0x91,0xa8, 0x96,0x82,0x66,0x61,0x81, 0x94,0xa4,0xb4,0xc4,0xf8,0xf8, /2 0x41,0x42,0x41,0x02
44、,0x41,0x51,0x62,0x81,0x81,0x02,0x61,0x81, 0x92,0x61,0x61,0x52,0x51,0x61,0x64,0x02,0x61,0x51; code uchar SONG0 = /10.生日快樂 /0 0x08,0x08, /1 0x83,0x81,0x94,0x84,0xb4,0xa8, 0x83,0x81,0x94,0x84, 0xc4,0xb8; uchar hjsz; uchar ljsz; uchar jpm;uchar yfm;uchar t0 =0;uint i=0;sbit Speaker =P10;uint k; void Delay1() for ( k=0;k20000;k+); void Lignt( ) uchar t; for(t=0;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《家裝知識講座》課件
- 《癲癇本科》課件
- 《家族式增員》課件
- 單位管理制度合并選集【人員管理篇】
- 單位管理制度范例選集人事管理篇十篇
- 《投資經濟學》課程教學大綱
- 《現代經濟學》課程教學大綱1
- 《小學分數教學》課件
- 《電子元件基礎知識》課件
- 《企業(yè)環(huán)保管理》課件
- 棚戶區(qū)改造項目房屋拆除工程施工組織設計方案
- 流行病學知識考核試題題庫與答案
- DB11-T212-2017園林綠化工程施工及驗收規(guī)范
- 小學數學自制教具學具的研究及探討
- 廣東省幼兒園一日活動指引(試行)
- 光學材料-光學加工流程
- 奔馳卡車產品分析(課堂PPT)
- 反循環(huán)鉆孔灌注樁施工方案
- 新能源小客車購車充電條件確認書
- 發(fā)明專利專利答辯模板
- 市政府副市長年道路春運工作會議講話稿
評論
0/150
提交評論