




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、基于單片機的音樂盒設計 【摘要】本設計是一個基于 at89c51 系列單片機的音樂盒,依據(jù)單片 機技術原理,通過硬件電路制作以及軟件編譯,設計制作出一個多功能多 功能音樂盒。該音樂盒主要由按鍵電路、復位電路、時鐘電路以及蜂鳴器 組成。使用兩個按鍵控制音樂盒,一個用來切換歌曲,另一個用來切換 8 路 led 的變化花樣,本音樂盒共有兩首歌曲,花樣燈花樣共計 3 種。播放 歌曲時,蜂鳴器發(fā)出某個音調,與之對應的 led 亮起。本設計利用 keil 編程軟件對音樂盒源程序進行編程并調試,配合 proteus 仿真軟件對硬件 進行仿真調試,節(jié)約了設計時間。 【關鍵字】音樂盒;at89c51 單片機;
2、keil; proteus; 音調 目 錄 引言 .1 1 概述.2 1.1 課題意義 .2 1.2 設計方案.2 1.3 研究內(nèi)容.2 2 系統(tǒng)總體方案介紹 .3 2.1 系統(tǒng)組成框圖 .3 2.2 音樂盒的功能結構圖 .3 2.3 主要設計軟件介紹 .3 2.3.1 proteus 軟件簡介 .3 2.3.2 keil 簡介 .4 3 硬件設計.5 3.1 總體設計框圖 .5 3.2 各部分硬件設計及其原理.5 3.2.1 at89c51 簡介 .5 3.2.2 led 顯示電路設計與原理 .6 3.2.3 時鐘振蕩電路.6 3.3 硬件電路圖及功能 .6 4 軟件設計.8 4.1 音調、
3、節(jié)拍以及編碼的確定方法.8 4.1.1 音調的確定.8 4.1.2 節(jié)拍的確定.9 4.1.3 編碼.10 4.2 軟件程序設計 .11 4.2.1 程序流程圖及相應代碼塊.11 4.2.2 程序源代碼(見附錄 a) .15 5 調試.16 5.1 檢查硬件連接 .16 5.2 檢查軟件系統(tǒng) .16 5.3 測試結果 .16 5.3.1總體運行圖.16 5.3.2花樣燈 3 種花樣圖.17 6 總結 .18 致謝 .19 參考文獻 .20 科技外文文獻 .21 中文譯文 .24 附錄 a 程序源代碼及注釋.26 引言 21 世紀,電子技術獲得了飛速的發(fā)展,在其推動下,現(xiàn)代電子產(chǎn)品幾乎滲透了社會
4、的各個領 域,有力地推動了社會生產(chǎn)力的發(fā)展和社會信息化程度的提高,同時也使現(xiàn)代電子產(chǎn)品性能進一步 提高,產(chǎn)品更新?lián)Q代的節(jié)奏也越來越快。 目前,單片機正朝著高性能和多品種方向發(fā)展趨勢將是進一步向著 cmos 化、低功耗、小體積、 大容量、高性能、低價格和外圍電路內(nèi)裝化等幾個方面發(fā)展。單片機應用的重要意義還在于它從根 本上改變了傳統(tǒng)的控制系統(tǒng)設計思想和設計方法。從前必須由模擬電路或數(shù)字電路實現(xiàn)的大部分功 能,現(xiàn)在已能用單片機通過軟件方法來實現(xiàn)了。這種軟件代替硬件的控制技術也稱為微控制技術, 是傳統(tǒng)控制技術的一次革命。單片機滲透到我們生活的各個領域,幾乎很難找到哪個領域沒有單片 機的蹤跡。導彈的導航
5、裝置,飛機上各種儀表的控制,計算機的網(wǎng)絡通訊與數(shù)據(jù)傳輸,工業(yè)自動化 過程的實時控制和數(shù)據(jù)處理,廣泛使用的各種智能 ic 卡,民用豪華轎車的安全保障系統(tǒng),錄像機、 攝像機、全自動洗衣機的控制,以及程控玩具、電子寵物等等,這些都離不開單片機。 隨著科學技術的進步和社會的發(fā)展,人類所接觸的信息也在不斷增加并且日益復雜。面對浩如 煙海的信息,人們已經(jīng)能夠利用計算機等工具高效準確地對之進行處理,但要想將處理完的信息及 時,清晰地傳遞給別人,還必須通過尋求更加卓越的顯示技術來實現(xiàn)。單片機技術與液晶顯示技術 的結合,使信息傳輸交流向著智能可視化方向迅速發(fā)展。 隨著人類社會的發(fā)展,人們對視覺、聽覺方面的享受提
6、出了越來越高的要求。小小的音樂盒可 以給人們帶來美好的回憶,提高人們的精神文化享受。傳統(tǒng)音樂盒多是機械型的,體積笨重,發(fā)音 單調,不能實現(xiàn)批量生產(chǎn)。本文設計的音樂盒是以單片機為核心元件的電子式音樂盒,體積小,重 量輕,能演奏和旋音樂,功能多,外觀效果多彩,使用方便,并具有一定的商業(yè)價值。 1 概述 本設計是以 at89c51 芯片的電路為基礎,外部加上放音設備,以此來實現(xiàn)音樂演奏控制器的硬 件電路,通過軟件程序來控制單片機內(nèi)部的定時器使其演奏出優(yōu)美動聽的音樂。用戶可以按照自己 的喜好選擇音樂并將其轉化成機器碼存入單片機的存儲器中。對于不同型號的單片機只需要相應的 改變一下地址即可。該軟、硬件系
7、統(tǒng)具有很好的通用性,很高的實際使用價值,為廣大的單片機和 音樂愛好者提供了很好的借鑒。 1.11.1 課題意義課題意義 音樂盒的起源,可追溯至中世紀歐洲文藝復興時期。當時為使教會的鐘塔報時,而將大小的鐘 表裝上機械裝置,被稱為“可發(fā)出聲音的組鐘” 。音樂盒有著 300 多年的發(fā)展歷史,是人類文明發(fā) 展的歷史見證。 傳統(tǒng)的音樂盒多是機械音樂盒,其工作原理是通過齒輪帶動一個帶有鐵釘?shù)蔫F桶轉動,鐵桶上 的鐵釘撞擊鐵片制成的琴鍵,從而發(fā)出聲音。但是,機械式的音樂盒體積比較大,比較笨重,且發(fā) 音單調。水、灰塵等外在因素,容易使內(nèi)部金屬發(fā)音條變形,從而造成發(fā)音跑調。另外,機械音樂 盒放音時為了讓音色穩(wěn)定,
8、必須放平不能動搖,而且價格昂貴,不能實現(xiàn)大批量生產(chǎn)。 本文設計的音樂盒,是基于單片機設計制作的電子式音樂盒。與傳統(tǒng)的機械式音樂盒相比更小 巧,音質更優(yōu)美且能演奏和弦音樂。電子式音樂盒動力來源是電池,制作工藝簡單,可進行批量生 產(chǎn),所以價格便宜?;趩纹瑱C制作的電子式音樂盒,控制功能強大,可根據(jù)需要選歌,使用方便。 根據(jù)存儲容量的大小,可以盡可能多的存儲歌曲。另外,可以設計彩燈外觀效果,使音樂盒的功能 更加豐富。 1.21.2 設計方案設計方案 設計一個基于 at89c51 系列單片機的音樂盒,利用按鍵切換演奏出不同的樂曲。蜂鳴器發(fā)出 某個音調,與之相對應的 led 亮起。使用兩個按鍵,一個用來
9、切換歌曲,另一個切換八路 led 的 變化花樣。 1.31.3 研究內(nèi)容研究內(nèi)容 1)電路有兩種工作模式:演奏音樂模式和花樣燈模式。 演奏音樂模式:演奏完整的一首的歌曲,八路 led 隨著音樂變化。 花樣燈模式:八路 led 變化出各種花樣,蜂鳴器隨著發(fā)出“嘀嘀”聲 2)按下按鍵 1 進入演奏音樂模式,再按切換歌曲,共兩首歌曲。 3)按下按鍵 2 進入花樣燈模式,再按切換 led 花樣,共三種花樣。 此電路的程序只占用了 1k 左右,可編制更多的音樂和 led 花樣,使系統(tǒng)的功能更加強大。 2 系統(tǒng)總體方案介紹 2.12.1 系統(tǒng)組成框圖系統(tǒng)組成框圖 音樂盒的系統(tǒng)結構以 at89c51 單片機
10、位控制核心,加上 2 個按鍵、時鐘復位電路、蜂鳴器、 led 模塊組成。單片機負責接收按鍵的輸入,根據(jù)輸入控制音樂播放曲目和音樂花樣燈的顯示樣式 以及蜂鳴器發(fā)音。系統(tǒng)組成框圖如圖 2.1 所示。 圖 2.1 系統(tǒng)組成框圖 2.22.2 音樂盒的功能結構圖音樂盒的功能結構圖 音樂盒的功能結構如圖 2.2 所示。key1 負責切換播放歌曲,播放歌曲共 2 首,分別是揮著翅膀 的女孩和寂寞沙洲冷。key2 負責切換 led 顯示花樣,顯示花樣共 3 種,第一種順序顯示,第二種 由兩邊向中間移動然后向兩邊移動,第三種循環(huán)顯示。 圖 2.2 音樂盒功能結構圖 2.3 主要設計軟件介紹主要設計軟件介紹 本
11、設計利用 keil 編程軟件對音樂盒源程序進行編程并調試,配合 proteus 仿真軟件對硬件進 行仿真調試,兩種軟件的簡介如下: 2.3.1 proteus 軟件簡介軟件簡介 proteus 軟件是英國 labcenter electronics 公司出版的 eda 工具軟件(該軟件中國總代理為廣州 風標電子技術有限公司) 。它不僅具有其它 eda 工具軟件的仿真功能,還能仿真單片機及外圍器件。 它是目前最好的仿真單片機及外圍器件的工具。雖然目前國內(nèi)推廣剛起步,但已受到單片機愛好者、 從事單片機教學的教師、致力于單片機開發(fā)應用的科技工作者的青睞。proteus 是世界上著名的 eda 工具(
12、仿真軟件),從原理圖布圖、代碼調試到單片機與外圍電路協(xié)同仿真,一鍵切換到 pcb 設 計,真正實現(xiàn)了從概念到產(chǎn)品的完整設計。是目前世界上唯一將電路仿真軟件、pcb 設計軟件和虛 擬模型仿真軟件三合一的設計平臺,其處理器模型支持 8051、hc11、pic10/12/16/18/24/30/dspic33、avr、arm、8086 和 msp430 等,2010 年即將增加 cortex 和 dsp 系列處理器,并持續(xù)增加其他系列處理器模型。在編譯方面,它也支持 iar、keil 和 mplab 等多種編譯器。 2.3.2 keil 簡介簡介 單片機開發(fā)中除必要的硬件外,同樣離不開軟件,我們寫的
13、匯編語言源程序要變?yōu)?cpu 可以執(zhí) 行的機器碼有兩種方法,一種是手工匯編,另一種是機器匯編,目前已極少使用手工匯編的方法了。 機器匯編是通過匯編軟件將源程序變?yōu)闄C器碼,用于 mcs-51 單片機的匯編軟件有早期的 a51,隨 著單片機開發(fā)技術的不斷發(fā)展,從普遍使用匯編語言到逐漸使用高級語言開發(fā),單片機的開發(fā)軟件 也在不斷發(fā)展,keil 軟件是目前最流行開發(fā) mcs-51 系列單片機的軟件,這從近年來各仿真機廠商 紛紛宣布全面支持 keil 即可看出。keil 提供了包括 c 編譯器、宏匯編、連接器、庫管理和一個功 能強大的仿真調試器等在內(nèi)的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(uvision)
14、將這些部份組合在 一起。運行 keil 軟件需要 pentium 或以上的 cpu,16mb 或更多 ram、20m 以上空閑的硬盤空間、 win98、nt、win2000、winxp 等操作系統(tǒng)。掌握這一軟件的使用對于使用 51 系列單片機的愛 好者來說是十分必要的,如果你使用 c 語言編程,那么 keil 幾乎就是你的不二之選(目前在國內(nèi) 你只能買到該軟件、而你買的仿真機也很可能只支持該軟件) ,即使不使用 c 語言而僅用匯編語言 編程,其方便易用的集成環(huán)境、強大的軟件仿真調試工具也會令你事半功倍。keil c51 生成的目標 代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開
15、發(fā)大型軟件時更能體現(xiàn)高級 語言的優(yōu)勢。 3 硬件設計 3.1 總體設計框圖總體設計框圖 圖 3.1 總體設計框圖 3.2 各部分硬件設計及其原理各部分硬件設計及其原理 3.2.1 at89c51at89c51 簡介簡介 at89c51 是一種帶 4k 字節(jié)閃存可編程可擦除只讀存儲器( fperomflash programmable and erasable read only memory)的低電壓,高性能 cmos 8 位微處理器,俗稱單 片機。at89c2051 是一種帶 2k 字節(jié)閃存可編程可擦除只讀存儲器的單片機。單片機的可擦除 只讀存儲器可以反復擦除 100 次。該器件采用 atm
16、el 高密度非易失存儲器制造技術制造, 與工業(yè)標準的 mcs-51 指令集和輸出管腳相兼容。由于將多功能8 位 cpu 和閃爍存儲器組合 在單個芯片中, atmel 的 at89c51 是一種高效微控制器, at89c2051 是它的一種精簡版本。 at89c51 單片機為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。外形及引腳排列如 圖 3.2 所示 圖 3.2 at89c51 系列單片機 3.2.2 led 顯示電路設計與原理顯示電路設計與原理 led 顯示電路是由 8 個 led 發(fā)光二極管組成,連接方式為共陽極,led 接到單片機的 p1 口, 若為低電平,可使 led 亮起。發(fā)光
17、二極管的亮、滅由內(nèi)部程序控制,8 個 led 發(fā)光二極管分別對 應不同的音階,所以 led 會隨著音階的變化按規(guī)律亮、滅。 3.2.3 時鐘振蕩電路時鐘振蕩電路 at89c51 中有一個用于構成內(nèi)部振蕩器的高增益反相放大器,引腳 xtal1 和 xtal2 分別是 該放大器的輸入端和輸出端。這個放大器與作為反饋元件的片外石英晶體或者陶瓷諧振器一起構成 自然振蕩器。外接石英晶體及電容 c1、c2 接在放大器的反饋回路中構成并聯(lián)振蕩電路。對外接電 容 c1,c2 雖然沒有什么嚴格的要求,但電容容量的大小會輕微影響振蕩頻率的高低、振蕩器工作 的穩(wěn)定性、起振的難易程序及溫度穩(wěn)定性。如果使用石英晶體,我
18、們推薦電容使用 30pf10pf, 而如果使用陶瓷振蕩器建議選擇 40pf10pf。用戶也可以采用外部時鐘。采用外部時鐘的電路如 圖示。這種情況下,外部時鐘脈沖接到 xtal1 端,即內(nèi)部時鐘發(fā)生器的輸入端,xtal2 則懸空。 由于外部時鐘信號是通過一個 2 分頻觸發(fā)器后作為內(nèi)部時鐘信號的,所以對外部時鐘信號的占空比 沒有特殊要求,但最小高電平持續(xù)時間和最大的低電平持續(xù)時間應符合產(chǎn)品技術條件的要求。振蕩 器電路圖如下: 圖 3.3 單片機內(nèi)部、外部振蕩電路 3.3 硬件電路圖及功能硬件電路圖及功能 總體硬件電路實現(xiàn)功能如下,如圖 3.4 所示 1) 電路中用 p3.2、p3.3 控制按鍵。
19、2) p1.0p1.7 控制 led。 3) p2.3 控制蜂鳴器。 4) 電路為 12mhz 晶振頻率工作,起振電路中 c1、c2 均為 30pf。 圖 3.4 硬件電路圖 4 軟件設計 在本程序中設置了兩個標志count1 和 count2,分別初始化為 1 和 0。按鍵 1 使得 count1 在 1 和 2 之間切換,按鍵 2 使得 count2 在 14 之間切換。程序檢測 count1 的值,count1 等于 1 時播放 第一首歌曲,等于 2 時播放第二首。另一方面根據(jù) count2 的值來切換 led 的花樣。count1 和 count2 的值是互斥的,設置 count1 等
20、于 1、2 時,count2 同時設置為 0;設置 count2 等于 14 時, count1 也同時設置為 0。 4.14.1 音調、節(jié)拍以及編碼的確定方法音調、節(jié)拍以及編碼的確定方法 一般說來,單片機演奏音樂基本都是單音頻率,它不包含相應幅度的諧波頻率,也就是說不能 像電子琴那樣能奏出多種音色的聲音。因此單片機奏樂只需弄清楚兩個概念即可,也就是“音調” 和節(jié)拍表示一個音符唱多長的時間。 4.1.14.1.1 音調的確定音調的確定 不同音高的樂音是用 c、d、e、f、g、a、b 來表示,這 7 個字母就是音樂的音名,它們一般 依次唱成 do、re、mi、fa、so、la、si,即唱成簡譜的
21、 1、2、3、4、5、6、7,相當于漢字“多 來米發(fā)梭拉西”的讀音,這是唱曲時樂音的發(fā)音,所以叫“音調” ,即 tone。把 c、d、e、f、g、a、b 這一組音的距離分成 12 個等份,每一個等份叫一個“半音” 。兩個音之間 的距離有兩個“半音” ,就叫“全音” 。在鋼琴等鍵盤樂器上,cd、de、fg、ga、ab 兩音之間隔著一個黑鍵,他們之間的距離就是全音;ef、bc 兩音之間沒有黑鍵相隔,它們之 間的距離就是半音。通常唱成 1、2、3、4、5、6、7 的音叫自然音,那些在它們的左上角加上號 或者 b 號的叫變化音。叫升記號,表示把音在原來的基礎上升高半音,b 叫降記音,表示在原來 的基礎
22、上降低半音。例如高音 do 的頻率(1046hz)剛好是中音 do 的頻率(523hz)的一倍,中 音 do 的頻率(523hz)剛好是低音 do 頻率(266 hz)的一倍;同樣的,高音 re 的頻率 (1175hz)剛好是中音 re 的頻率(587hz)的一倍,中音 re 的頻率(587hz)剛好是低音 re 頻 率(294 hz)的一倍。 1)要產(chǎn)生音頻脈沖,只要算出某一音頻的周期(1/頻率) ,然后將此周期除以 2,即為半周期 的時間。利用定時器計時這半個周期時間,每當計時到后就將輸出脈沖的 i/o 反相,然后重復計時 此半周期時間再對 i/o 反相,就可在 i/o 腳上得到此頻率的脈
23、沖。 2)利用 at89c51 的內(nèi)部定時器使其工作在計數(shù)器模式 mode1 下,改變計數(shù)值 th0 及 tl0 以產(chǎn)生不同頻率的方法。 此外結束符和休止符可以分別用代碼 00h 和 ffh 來表示,若查表結果為 00h,則表示曲子終 了;若查表結果為 ffh,則產(chǎn)生相應的停頓效果。 3)例如頻率為 523hz,其周期 t=1/523=1912us,因此只要令計數(shù)器計時 956us/1us=956,在每 次技術 956 次時將 i/o 反相,就可得到中音 do(523hz) 。 計數(shù)脈沖值與頻率的關系公式如下: n=fi2fr n:計算值;fi:內(nèi)部計時一次為 1us,故其頻率為 1mhz;
24、4) 其計數(shù)值的求法如下: t=65536-n=65536-fi2fr 例如:設 k=65536,f=1000000=fi=1mhz,球低音 do(261hz) 。中音 do(523hz) 。高音的 do(1046hz)的計算值 t=65536-n=65536-fi2fr=65536-10000002fr=65536-500000/fr 低音 do 的 t=65536-500000/262=63627 低音 do 的 t=65536-500000/523=64580 低音 do 的 t=65536-500000/1047=65059 5) c 調各音符頻率與計數(shù)值 t 的對照表如表 4.1 所
25、示。 表 4.1 c 調各音符頻率與計數(shù)值 t 的對照表 低音頻率t參數(shù)中音頻率t參數(shù)高音頻率t參數(shù) do2621908229do523956115do10465757 do 2771805217 do 554903108 do 11095454 re2941701204re587852102re11755151 re 3111608193 re 62280497 re 12454848 mi3301515182mi65975991mi13184545 fa3491433172fa69871686fa13974343 fa 3701351162 fa 74067681 fa 14804141
26、so3921276153so78463877so15683838 so 4151205145 so 83160272 so 16613636 la4401136136la88056868la17603434 la 4641078129 la 93253664 la 18653232 si4941012121si98850661si19763030 4.1.24.1.2 節(jié)拍的確定節(jié)拍的確定 若要構成音樂,光有音調是不夠的,還需要節(jié)拍,讓音樂具有旋律(固定的律動) ,而且可以 調節(jié)各個音的快滿度。 “節(jié)拍”,即 beat,簡單說就是打拍子,就像我們聽音樂不自主的隨之拍手 或跺腳。若 1 拍實 0
27、.5s,則 1/4 拍為 0.125s。至于 1 拍多少 s,并沒有嚴格規(guī)定,就像人的心跳 一樣,大部分人的心跳是每分鐘 72 下,有些人快一點,有些人慢一點,只要聽的悅耳就好。音持 續(xù)時間的長短即時值,一般用拍數(shù)表示。休止符表示暫停發(fā)音。 一首音樂是由許多不同的音符組成的,而每個音符對應著不同頻率,這樣就可以利用不同的頻 率的組合,加以與拍數(shù)對應的延時,構成音樂。了解音樂的一些基礎知識,我們可知產(chǎn)生不同頻率 的音頻脈沖即能產(chǎn)生音樂。對于單片機來說,產(chǎn)生不同頻率的脈沖是非常方便的,利用單片機的定 時/計數(shù)器來產(chǎn)生這樣的方波頻率信號。因此,需要弄清楚音樂中的音符和對應的頻率,以及單片 機定時計數(shù)
28、的關系。 表 4.2 節(jié)拍與節(jié)拍碼對照 節(jié)拍碼節(jié)拍數(shù)節(jié)拍碼節(jié)拍數(shù) 1 1/4 拍 1 1/8 拍 2 2/4 拍 2 1/4 拍 3 3/4 拍 3 3/8 拍 4 1 拍 4 2/1 拍 5 1 又 1/4 拍 5 5/8 拍 6 1 又 1/2 拍 6 3/4 拍 8 2 拍 8 1 拍 a 2 又 1/2 拍 a 1 又 1/4 拍 c 3 拍 c 1 又 1/2 拍 f 3 又 3/4 拍 每個音符使用 1 個字節(jié),字節(jié)的高 4 位代表音符的高低,低 4 位代表音符的節(jié)拍,圖 5.2 為節(jié) 拍碼的對照。如果 1 拍為 0.4 秒,1/4 拍實 0.1 秒,只要設定延遲時間就可求得節(jié)拍的
29、時間。假設 1/4 拍為 1delay,則 1 拍應為 4delay,以此類推。所以只要求得 1/4 拍的 delay 時間,其余 的節(jié)拍就是它的倍數(shù),如圖 5.3 為 1/4 和 1/8 節(jié)拍的時間設定。 表 4.3 1/4 和 1/8 節(jié)拍的時間設定 曲調值delay曲調值delay 調 4/4125 毫秒調 4/462 毫秒 調 3/4187 毫秒調 3/494 毫秒 調 2/4250 毫秒調 2/4125 毫秒 4.1.34.1.3 編碼編碼 do re mi fa so la si 分別編碼為 17,重音 do 編為 8,重音 re 編為 9,停頓編為 0。播放長度以十 六分音符為單
30、位(在本程序中為 165ms) ,一拍即四分音符等于 4 個十六分音符,編為 4,其它的播 放時間以此類推。音調作為編碼的高 4 位,而播放時間作為低 4 位,如此音調和節(jié)拍就構成了一個 編碼。以 0 xff 作為曲譜的結束標志。 舉例 1:音調 do,發(fā)音長度為兩拍,即二分音符,將其編碼為 0 x18。 舉例 2:音調 re,發(fā)音長度為半拍,即八分音符,將其編碼為 0 x22 歌曲播放的設計。先將歌曲的簡譜進行編碼,儲存在一個數(shù)據(jù)類型為 unsigned char 的數(shù)組中。 程序從數(shù)組中取出一個數(shù),然后分離出高 4 位得到音調,接著找出相應的值賦給定時器 0,使之定 時操作蜂鳴器,得出相應
31、的音調;接著分離出該數(shù)的低 4 位,得到延時時間,接著調用軟件延時。 表 4.4 簡譜對應的簡譜碼、t 值、節(jié)拍數(shù) 簡譜發(fā)音簡譜碼t 值節(jié)拍碼節(jié)拍數(shù) 5低音 so16426011/4 拍 6低音 la26440022/4 拍 7低音 ti36452433/4 拍 1中音 do46458041 拍 2中音 re56468451 又 1/4 拍 3中音 mi66477761 又 1/2 拍 4中音 fa76482082 拍 5中音 so864898a2 又 1/2 拍 6中音 la964968c3 拍 7中音 tia65030f3 又 3/4 拍 1高音 dob65058 2高音 rec65110
32、 3高音 mid65157 4高音 fae65178 5高音 sof65217 4.2 軟件程序設計 4.2.14.2.1 程序流程圖程序流程圖及相應代碼塊及相應代碼塊 主程序流程圖 開始 初始化 標志位 count=0 標志位 count=1 標志位 count=2 標志位 count=3 播放音樂 yes no 花樣燈1 花樣燈1 花樣燈1 yes yes yes no no no 圖 4.1 主程序流程圖 主程序代碼: main() uchar x; count1=0;/流水燈無花樣 count2=1;/唱第一首歌 p34=0;/選取矩陣鍵盤的一列 ea=1;/開總中斷 ex0=1;/開
33、外部中斷 0 it0=1;/外部中斷 0 下降沿觸發(fā)方式 ex1=1;/開外部中斷 1 it1=1;/外部中斷 1 下降沿觸發(fā)方式 tmod=0 x01;/定時器 0 工作在方式 1 th0=0; tl0=0; et0=1; while(1) if(count1!=0) /音樂停止,花樣燈開始按照花樣閃爍 switch(count1) case 1: for(x=0;x14;x+) duan=1; p1=huayang1x; beep(); delay1(300); duan=0; if(count1!=1) break; break; case 2: for(x=0;x14;x+) duan
34、=1; p1=huayang2x; beep(); delay1(300); duan=0; if(count1!=2) break; break; case 3: for(x=0;x0;x-) for(y=19000;y0;y-); void delay1(uint z)/延時 1ms uint x,y; for(x=z;x0;x-) for(y=112;y0;y-); 4.2.24.2.2 程序源代碼(見附錄程序源代碼(見附錄 a a) 5 調試 5.15.1 檢查硬件連接檢查硬件連接 在 protues 檢查各硬件管腳是否連接正確,線路邏輯是否正確,例如:晶振電路的連接,復位 電路是否設
35、計正確。 5.25.2 檢查軟件系統(tǒng)檢查軟件系統(tǒng) 1根據(jù)系統(tǒng)的原理結構檢查各流程圖是否正確,再根據(jù)流程圖來檢查程序是否也正確。 2將所有程序組織起來,在軟件環(huán)境下運行,檢查程序是否正確。通過對硬件和軟件系統(tǒng)的 認真檢查,反復測試,如果沒有出現(xiàn)問題即可把源程序編譯成 hex 文件裝載到單片機中,對硬件進 行仿真。 5.35.3 測試結果測試結果 5.3.15.3.1總體運行圖總體運行圖 圖 5.1 系統(tǒng)總體運行圖 5.3.25.3.2花樣燈花樣燈 3 3 種花樣圖種花樣圖 由于截圖只能看到靜態(tài)圖,不能看到整體圖樣,下面畫圖說明: 圖 5.2 花樣燈 (1)第一種花樣燈顯示方式為:從 d1 移向
36、d2,然后 d1 熄滅,再從 d2 移向 d3,然后 d2 熄滅,以此類推,往復循環(huán)。 圖 5.2 第一種花樣 (2)第二種花樣燈顯示方式為:從兩邊向中間移動,首先從 d1 移向 d8,再從 d8 移向 d2,以 此類推,往復循環(huán)。具體如圖 5.3。 圖 5.3 第 2 種花樣 (3)第三種花樣燈顯示方式為:從 d1 移向 d2,然后 d1 熄滅,再從 d2 移向 d3,然后 d2 熄滅,以此往復循環(huán)。與第一種方式的不同之處為:當 d1 移向 d2 時,d1 不熄滅,再從 d2 移向 d3 時,d2 也不熄滅,以此類推。 圖 5.4 第 3 中花樣 6 總結 單片機的設計至今為止已經(jīng)進入了令人
37、鼓舞的階段,在進行了長達兩個多月的時間的摸索與實 驗,使我不僅僅是對于單片機入門軟件與硬件的常用設計與功能,還使我對于一項設計研究的制作 過程所需要的詳細步驟和具體的實現(xiàn)方法的力度的掌握。 當然在這次寶貴的畢業(yè)設計活動中,經(jīng)驗才是對于我們最大的收獲,而且還增強了自身對未知 問題以及對知識的深化認識的能力,用受益匪淺這個詞語來概括這次難忘的活動我覺得再合適不過 了。但是,光是完成了作品還是不可以自我滿足的,在從一開始的時候就懷著將作品制作得更加人 性化,更加令人滿意,更加地使功能完美又方便地被應用領域這個最終目的下,隨著對單片機這門 學科的認識加深,到達了拓展的程度,我想這個目的將在不遠的時期內(nèi)
38、被實現(xiàn)。 總之,這次設計從軟件編寫、調試到軟硬件聯(lián)機調試,我傾注了大量的時間和心血。真是曾經(jīng) 為程序的編寫而冥思查找過,曾經(jīng)為無法找出錯誤而郁悶苦惱過,也曾經(jīng)為某一功能不能實現(xiàn)而猶 豫彷徨過,但最終我成功了。 我不僅品味到了結果的喜悅,更明白了過程的彌足珍貴。 致謝 感謝我的導師馮永政老師,他們嚴謹細致、一絲不茍的作風一直是我工作、學習中的榜樣;他 們循循善誘的教導和不拘一格的思路給予我無盡的啟迪。 感謝我的爸爸媽媽,焉得諼草,言樹之背,養(yǎng)育之恩,無以回報,你們永遠健康快樂是我最大 的心愿。 感謝我的室友們,是你們和我共同維系著彼此之間兄弟般的感情,維系著寢室那份家的融洽。 四年了,仿佛就在昨
39、天。四年里,我們沒有紅過臉,沒有吵過嘴,沒有發(fā)生上大學前所擔心的任何 不開心的事情。只是今后大家就難得再聚在一起吃每年元旦那頓飯了吧,沒關系,各奔前程,大家 珍重。我們在一起的日子,我會記一輩子的。 在論文即將完成之際,我的心情無法平靜,從開始進入課題到論文的順利完成,有多少可敬的 師長、同學、朋友給了我無言的幫助,在這里請接受我誠摯的謝意! 參考文獻 1 李建忠.單片機原理及應用m,西安電子科技大學出版社,2008.2. 2 黃智偉.全國大學生電子設計競賽系統(tǒng)設計m,北京:北京航空航天大學出版社,2006.6. 3 黃智偉.凌陽單片機課程設計指導m,北京:北京航空航天大學出版社,2006.1
40、1. 4 李廣弟,朱月秀,王秀山.單片機基礎m,北京:北京航空航天大學出版社,2001.7. 5 趙曙光,郭萬有,楊頌華.可編程邏輯器件原理開發(fā)與應用m,西安:西安電子科技大學, 2000. 6 候伯亨.vhdl 硬件描述語言與數(shù)字邏輯電路設計m, 西安:西安電子科技大學出版社, 1999. 7 康華光. 模擬電子技術基礎(第四版)m, 武漢:華中理工大學出版社,1999. 8 譚浩強.c 語言程序設計(第二版)m,北京:清華大學出版社,1991. 9 陳小忠,黃寧. 單片機接口技術實用子程序m,北京:北京人民郵電出版社, 2005. 10 歐偉明,周春臨,瞿遂春.電子信息系統(tǒng)設計m,西安電子
41、科技大學出版社,2005.9. 11 賈立新,王涌.電子系統(tǒng)設計與實踐m,北京:清華大學出版社,2007. 12 羅亞非.凌陽 16 位單片機應用基礎m,北京:北京航空航天大學出版社,2003. 13 雷思孝.凌陽單片機原理及實用技術m,西安電子科技大學,2004. 科技外文文獻 getting started with vision2 the keil software 8051 development tools listed below are programs you use to compile your c code, assemble your assembly source f
42、iles, link and locate object modules and libraries, create hex files, and debug your target program. vision2 for windows is an integrated development environment that combines project management, source code editing, and program debugging in one single, powerful environment. the c51 ansi optimizing
43、c cross compiler creates relocatable object modules from your c source code. the a51 macro assembler creates relocatable object modules from your 8051 assembly source code. the bl51 linker/locator combines relocatable object modules created by the c51 compiler and the a51 assembler into absolute obj
44、ect modules. the lib51 library manager combines object modules into libraries that may be used by the linker. the oh51 object-hex converter creates intel hex files from absolute object modules. the rtx-51 real-time operating system simplifies the design of complex, time-critical software projects. s
45、oftware development cycle when you use the keil software tools, the project development cycle is roughly the same as it is for any other software development project. 1. create a project, select the target chip from the device database, and configure the tool settings. 2. create source files in c or
46、 assembly. 3. build your application with the project manager. 4. correct errors in source files. 5. test the linked application. vision2 ide the vision2 ide combines project management, a rich-featured editor with interactive error correction, option setup, make facility, and on-line help. use visi
47、on2 to create your source files and organize them into a project that defines your target application. vision2 automatically compiles, assembles, and links your embedded application and provides a single focal point for your development efforts. lib51 library manager the lib51 library manager allows
48、 you to create object library from the object files created by the compiler and assembler. libraries are specially formatted, ordered program collections of object modules that may be used by the linker at a later time. when the linker processes a library, only those object modules in the library th
49、at are necessary to create the program are used. bl51 linker/locator the bl51 linker creates an absolute object module using the object modules extracted from libraries and those created by the compiler and assembler. an absolute object file or module contains no relocatable code or data. all code a
50、nd data reside at fixed memory locations. the absolute object file may be used: to program an eprom or other memory devices, with the vision2 debugger for simulation and target debugging, with an in-circuit emulator for the program testing. vision2 debugger the vision2 symbolic, source-level debugge
51、r is ideally suited for fast, reliable program debugging. the debugger includes a high-speed simulator that let you simulate an entire 8051 system including on-chip peripherals and external hardware. the attributes of the chip you use are automatically configured when you select the device from the
52、device database. the vision2 debugger provides several ways for you to test your programs on real target hardware: install the mon51 target monitor on your target system and download your program using the monitor-51 interface built-in to the vision2 debugger. use the advanced gdi interface to attac
53、h use the vision2 debugger front end with your target system. monitor-51 the vision2 debugger supports target debugging using monitor-51. the monitor program resides in the memory of your target hardware and communicates with the vision2 debugger using the serial port of the 8051 and a com port of y
54、our pc. with monitor-51, vision2 lets you perform source-level, symbolic debugging on your target hardware. rtx51 real-time operating system the rtx51 real-time operating system is a multitasking kernel for the 8051 microcontroller family. the rtx51 real- time kernel simplifies the system design, pr
55、ogramming, and debugging of complex applications where fast reaction to time critical events is essential. the kernel is fully integrated into the c51 compiler and is easy to use. task description tables and operating system consistency are automatically controlled by the bl51 linker/locator. c51 op
56、timizing c cross compiler the keil c51 cross compiler is an ansi c compiler that was written specifically to generate fast, compact code for the 8051 microcontroller family. the c51 compiler generates object code that matches the efficiency and speed of assembly programming. using a high-level langu
57、age like c has many advantages over assembly language programming: knowledge of the processor instruction set is not required. rudimentary knowledge of the memory structure of the 8051 cpu is desirable (but not necessary). details like register allocation and addressing of the various memory types a
58、nd data types is managed by the compiler. programs get a formal structure (which is imposed by the c programming language) and can be divided into separate functions. this contributes to source code reusability as well as better overall application structure. the ability to combine variable selectio
59、n with specific operations improves program readability. keywords and operational functions that more nearly resemble the human thought process may be used. programming and program test time is drastically reduced. the c run-time library contains many standard routines such as: formatted output, num
60、eric conversions, and floating- point arithmetic. existing program parts can be more easily included into new programs because of modular program construction techniques. the language c is a very portable language (based on the ansi standard) that enjoys wide popular support and is easily obtained f
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 3543.12-2025農(nóng)作物種子檢驗規(guī)程第12部分:品種質量轉基因種子測定
- 咖啡的商業(yè)模式分析試題及答案
- 2024年稅務師重要考題試題及答案
- 2024電網(wǎng)行業(yè)知識試題及答案解析
- 秘書崗位職責試題及答案
- 湖北省2025屆九師聯(lián)盟核心模擬卷(下)(樣卷)英語試題及答案
- 汽車美容師裝修材料知識與應用試題及答案
- 2025專業(yè)版網(wǎng)站服務合同
- 廣東外語外貿(mào)大學《商務英語會話(三)》2023-2024學年第二學期期末試卷
- 武昌工學院《土木工程專業(yè)基礎實驗》2023-2024學年第二學期期末試卷
- 校長在高考動員大會上講話:高考不是獨木橋人生處處有航道
- 觀賞魚國際貿(mào)易的可持續(xù)發(fā)展策略
- 2025年浙江紡織服裝職業(yè)技術學院單招職業(yè)適應性測試題庫新版
- 《園林微景觀設計與制作》課件-項目四 微景觀展示
- 新版《醫(yī)療器械經(jīng)營質量管理規(guī)范》(2024)培訓試題及答案
- 2025年初級社會工作者綜合能力全國考試題庫(含答案)
- 高填方路基及擋土墻施工方案
- 《側面描寫》教學課件.ppt
- 不銹鋼欄桿制作與安裝工程工檢驗批質量檢驗記錄
- 2020版《中國藥典》微生物限度計數(shù)—耐膽鹽革蘭陰性菌
- 醫(yī)藥企業(yè)價格和營銷行為信用承諾書
評論
0/150
提交評論