版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、基于at89c51系列單片機(jī)的音樂盒畢業(yè)論文 本科畢業(yè)設(shè)計(jì)論文題 目 專業(yè)名稱 學(xué)生姓名 班 級(jí) 學(xué) 號(hào) 指導(dǎo)教師 畢業(yè)時(shí)間 畢業(yè) 任務(wù)書北京清華大學(xué)出版社199711 4 李華mc51 系列單片機(jī)實(shí)用接口技術(shù)m北京北京航空航天大學(xué)出版社19938 5 馬忠梅單片機(jī)的c語言windows 環(huán)境編程寶典m北京北京航空航天大學(xué)出版社20036 6 李廣弟單片機(jī)基礎(chǔ)m北京北京航空航天大學(xué)出版社20076導(dǎo)師意見指導(dǎo)教師簽字 年 月 日 系意見 系主任簽字 年 月 日注內(nèi)容用小四宋體目 錄摘 要iabstractii前 言iii第一章 緒 論111 研究背景及其意義112研究內(nèi)容213 本文結(jié)構(gòu)安排2
2、第二章 系統(tǒng)總體介紹421 at89c51單片機(jī)基礎(chǔ)知識(shí)4com at 89c51單片機(jī)引腳及其功能4com 中央處理器cpu6com 定時(shí)器計(jì)數(shù)器7com統(tǒng)7com 內(nèi)部總線722其他硬件模塊7com復(fù)位模塊7com擇模塊8com生及放大器模塊823設(shè)計(jì)軟件介紹8com proteus軟件簡介8com keil簡介9第三章 硬件設(shè)計(jì)1031 總體設(shè)計(jì)框圖1032各部分硬件設(shè)計(jì)及其原理10com at89c51簡介10com led顯示電路設(shè)計(jì)與原理11com 時(shí)鐘振蕩電路1133 系統(tǒng)硬件電路圖及功能12第四章 軟件設(shè)計(jì)1441音樂播放編碼理論14com 音調(diào)的確定14com碼1642 編程
3、思路簡述17com述17com圖1843總原理圖及元器件清單19第五章 結(jié)論20致 謝21參考文獻(xiàn)22畢業(yè)設(shè)計(jì)小結(jié)23附件 程序清單24摘 要at89c51系列單片機(jī)的音樂盒依據(jù)單片機(jī)技術(shù)原理通過硬件電路制作以及軟件編譯設(shè)計(jì)制作出一個(gè)多功能多功能音樂盒該音樂盒主要由按鍵電路復(fù)位電路時(shí)鐘電路以及蜂鳴器組成使用兩個(gè)按鍵控制音樂盒一個(gè)用來切換歌曲另一個(gè)用來切換8路led的變化花樣本音樂盒共有兩首歌曲花樣燈花樣共計(jì)3種播放歌曲時(shí)蜂鳴器發(fā)出某個(gè)音調(diào)與之對(duì)應(yīng)的led亮起本設(shè)計(jì)利用keil編程軟件對(duì)音樂盒源程序進(jìn)行編程并調(diào)試配合proteus仿真軟件對(duì)硬件進(jìn)行仿真調(diào)試節(jié)約了設(shè)計(jì)時(shí)間關(guān)鍵詞 at89c51ke
4、il proteusabstractthe design is a series based on at89c51 microcontroller music box according to principles of scm technology produced by the hardware circuits and software compiler designed to produce a versatile multifunction music box the music box consists of key circuit reset circuit clock circ
5、uit and buzzer components using two buttons control music boxes one for switch songs and another 8-way led for switching pattern changes the music box from two songs a total of three kinds of tricks lamp pattern playing a song a buzzer tone corresponding led lights up this design uses keil programmi
6、ng software for music boxes and debug source code for programming with proteus simulation software simulation debugging the hardware saving design timekey words at89c51 microcontroller keil proteus前 言作為單片機(jī)的重要硬件資源之一利用定時(shí)器可以產(chǎn)生各種固定頻率的方波信號(hào)也可以產(chǎn)生包括doreme-等音階在內(nèi)的各種頻率聲音在此設(shè)計(jì)中我們采用12mhz晶振音樂信號(hào)由p3口輸出信號(hào)經(jīng)過放大后由發(fā)出聲音樂曲
7、中每一音符對(duì)應(yīng)著確定的頻率給出各音符頻率及其相應(yīng)的時(shí)間常數(shù)根據(jù)表所提供的常數(shù)將其16進(jìn)制代碼送入可以奏出音符音符的節(jié)拍我們可以用定時(shí)器來控制送入不同的初值就可以產(chǎn)生不同的定時(shí)時(shí)間便如某歌曲的節(jié)奏為每分鐘94拍即一拍為064秒其它節(jié)拍與時(shí)間的對(duì)應(yīng)關(guān)系第一章 緒 論11 研究背景及其意義21世紀(jì)電子技術(shù)獲得了飛速的發(fā)展在其推動(dòng)下現(xiàn)代電子產(chǎn)品幾乎滲透了社會(huì)的各個(gè)領(lǐng)域有力地推動(dòng)了社會(huì)生產(chǎn)力的發(fā)展和社會(huì)信息化程度的提高同時(shí)也使現(xiàn)代電子產(chǎn)品性能進(jìn)一步提高產(chǎn)品更新?lián)Q代的節(jié)奏也越來越快目前單片機(jī)正朝著高性能和多品種方向發(fā)展趨勢(shì)將是進(jìn)一步向著cmos化低功耗小體積大容量高性能低價(jià)格和外圍電路內(nèi)裝化等幾個(gè)方面發(fā)展
8、單片機(jī)應(yīng)用的重要意義還在于它從根本上改變了傳統(tǒng)的控制系統(tǒng)設(shè)計(jì)思想和設(shè)計(jì)方法從前必須由模擬電路或數(shù)字電路實(shí)現(xiàn)的大部分功能現(xiàn)在已能用單片機(jī)通過軟件方法來實(shí)現(xiàn)了這種軟件代替硬件的控制技術(shù)也稱為微控制技術(shù)是傳統(tǒng)控制技術(shù)的一次革命單片機(jī)滲透到我們生活的各個(gè)領(lǐng)域幾乎很難找到哪個(gè)領(lǐng)域沒有單片機(jī)的蹤跡導(dǎo)彈的導(dǎo)航裝置飛機(jī)上各種儀表的控制計(jì)算機(jī)的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸工業(yè)自動(dòng)化過程的實(shí)時(shí)控制和數(shù)據(jù)處理廣泛使用的各種智能ic卡民用豪華轎車的安全保障系統(tǒng)錄像機(jī)攝像機(jī)全自動(dòng)洗衣機(jī)的控制以及程控玩具電子寵物等等這些都離不開單片機(jī)著科學(xué)技術(shù)的進(jìn)步和社會(huì)的發(fā)展人類所接觸的信息也在不斷增加并且日益復(fù)雜面對(duì)浩如煙海的信息人們已經(jīng)能夠
9、利用計(jì)算機(jī)等工具高效準(zhǔn)確地對(duì)之進(jìn)行處理但要想將處理完的信息及時(shí)清晰地傳遞給別人還必須通過尋求更加卓越的顯示技術(shù)來實(shí)現(xiàn)隨著人類社會(huì)的發(fā)展人們對(duì)視覺聽覺方面的享受提出了越來越高的要求音樂播放器是一種用于播放各種音樂文件的多媒體播放軟件它涵蓋了各種音樂格式的播放工具比如mp3播放器wma播放器mp4播放器等它們不僅界面美觀而且操作簡單本文設(shè)計(jì)的音樂是基于單片機(jī)設(shè)計(jì)制作的電子式音樂第二章 系統(tǒng)總體介紹21 at89c51單片機(jī)基礎(chǔ)知識(shí)at89c51包括一個(gè)8位的80c51微處理器片內(nèi)256字節(jié)數(shù)據(jù)存儲(chǔ)器 ramsfr用以存放可以讀寫的數(shù)據(jù)如運(yùn)算的中間結(jié)果最終結(jié)果以及欲顯示的數(shù)據(jù)片內(nèi) 4kb 程序存儲(chǔ)器
10、 flash rom用以存放程序一些原始數(shù)據(jù)和表格4個(gè)8位并行io口 p0p3每個(gè)端口既可用作輸入也可用作輸出兩個(gè) 16 位的定時(shí)器計(jì)數(shù)器每個(gè)定時(shí)器計(jì)數(shù)器都可設(shè)置 成計(jì)數(shù)方式用以對(duì)外部事件進(jìn)行計(jì)數(shù)也可設(shè)置成定時(shí)方式并可以根據(jù)計(jì)數(shù)或者定 時(shí)的結(jié)果實(shí)現(xiàn)計(jì)算機(jī)控制具有 5 個(gè)中斷源兩個(gè)中斷優(yōu)先級(jí)的中斷控制系統(tǒng)一個(gè)全雙工 uart通用異步接受發(fā)送器的串行 io 口用于實(shí)現(xiàn)單片機(jī)之間或者單片機(jī)與 pc 機(jī)之間的串行通信片內(nèi)振蕩器和時(shí)鐘產(chǎn)生電路但石英晶體和微調(diào)電容需要外接 最高允許震蕩頻率24mhzat89c51 與at80c51 相比具有節(jié)電工作方式即休閑方式及掉電方式com at 89c51單片機(jī)引腳
11、及其功能圖21 at89c51單片機(jī)示意圖圖21為at89c51單片機(jī)的引腳示意圖電源引腳典型值5vvssgnd20腳接低電平外部晶振x1x2分別與晶體兩端相連接當(dāng)使用外部振蕩器時(shí)外部振蕩信號(hào)應(yīng)直接加到xtal1而xtal2懸空輸入輸出口引腳p0口io雙向口p1口io雙向口p2口io雙向口p3口io雙向口口線第二功能p30rxd 串行口輸入 p31txd 串行口輸出 p32 外部中斷0輸入 p33 外部中斷1輸入 p34t0定時(shí)器0的外部輸入p35t1 定時(shí)器1的外部輸入p36寫選通控制輸入p37 讀選通控制輸入 控制引腳rstvpdale-prog-psen-eavpp組成了msc-51的控
12、制總線rstvpd9腳復(fù)位信號(hào)輸入端高電平有效第二功能加5v備用電源可以實(shí)現(xiàn)掉電保護(hù)ram信息不丟失ale-prog 30腳地址鎖存信號(hào)輸出端第二功能編程脈沖輸入-psen29腳外部程序存儲(chǔ)器讀選通信號(hào)-eavpp 31腳外部程序存儲(chǔ)器使能端第二功能編程電壓輸入端21vcom1構(gòu)成按鍵陣列可以掃描十六個(gè)按鍵但本次設(shè)計(jì)只用到十個(gè)按鍵com生及放大器模塊由非門74ls04三極管9014揚(yáng)聲器電阻組成的外部驅(qū)動(dòng)發(fā)音電路該電路部分接于p30端引出經(jīng)過外部非門和三極管的驅(qū)動(dòng)通過揚(yáng)聲器發(fā)出音樂23設(shè)計(jì)軟件介紹本設(shè)計(jì)利用keil編程軟件對(duì)音樂盒源程序進(jìn)行編程并調(diào)試配合proteus仿真軟件對(duì)硬件進(jìn)行仿真調(diào)試
13、com proteus軟件簡介proteus軟件是英國labcenter electronics公司出版的eda工具軟件該軟件中國總代理為廣州風(fēng)標(biāo)電子技術(shù)有限公司它不僅具有其它eda工具軟件的仿真功能還能仿真單片機(jī)及外圍器件它是目前最好的仿真單片機(jī)及外圍器件的工具雖然目前國內(nèi)推廣剛起步但已受到單片機(jī)愛好者從事單片機(jī)教學(xué)的教師致力于單片機(jī)開發(fā)應(yīng)用的科技工作者的青睞proteus是世界上著名的eda工具 仿真軟件 從原理圖布圖代碼調(diào)試到單片機(jī)與外圍電路協(xié)同仿真一鍵切換到pcb設(shè)計(jì)真正實(shí)現(xiàn)了從概念到產(chǎn)品的完整設(shè)計(jì)是目前世界上唯一將電路仿真軟件pcb設(shè)計(jì)軟件和虛擬模型仿真軟件三合一的設(shè)計(jì)平臺(tái)其處理器模
14、型支持8051hc11pic101216182430dspic33avrarm8086和msp430等2010年即將增加cortex和dsp系列處理器并持續(xù)增加其他系列處理器模型在編譯方面它也支持iarkeil和mplab等多種編譯器 單片機(jī)開發(fā)中除必要的硬件外同樣離不開軟件我們寫的匯編語言源程序要變?yōu)閏pu可以執(zhí)行的機(jī)器碼有兩種方法一種是手工匯編另一種是機(jī)器匯編目前已極少使用手工匯編的方法了機(jī)器匯編是通過匯編軟件將源程序變?yōu)闄C(jī)器碼用于mcs-51單片機(jī)的匯編軟件有早期的a51隨著單片機(jī)開發(fā)技術(shù)的不斷發(fā)展從普遍使用匯編語言到逐漸使用高級(jí)語言開發(fā)單片機(jī)的開發(fā)軟件也在不斷發(fā)展keil軟件是目前最流
15、行開發(fā)mcs-51系列單片機(jī)的軟件這從近年來各仿真機(jī)廠商紛紛宣布全面支持keil即可看出keil提供了包括c編譯器宏匯編連接器庫管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案通過一個(gè)集成開發(fā)環(huán)境uvision將這些部份組合在一起運(yùn)行keil軟件需要pentium或以上的cpu16mb或更多ram20m以上空閑的硬盤空間win98ntwin2000winxp等操作系統(tǒng)掌握這一軟件的使用對(duì)于使用51系列單片機(jī)的愛好者來說是十分必要的如果你使用c語言編程那么keil幾乎就是你的不二之選目前在國內(nèi)你只能買到該軟件而你買的仿真機(jī)也很可能只支持該軟件即使不使用c語言而僅用匯編語言編程其方便易用的集成環(huán)
16、境強(qiáng)大的軟件仿真調(diào)試工具也會(huì)令你事半功倍keil c51生成的目標(biāo)代碼效率非常之高多數(shù)語句生成的匯編代碼很緊湊容易理解在開發(fā)大型軟件時(shí)更能體現(xiàn)高級(jí)語言的優(yōu)勢(shì)第三章 硬件設(shè)計(jì)31 總體設(shè)計(jì)框圖圖31總體設(shè)計(jì)框圖32各部分硬件設(shè)計(jì)及其原理com at89c51簡介at89c51是一種帶4k字節(jié)閃存可編程可擦除只讀存儲(chǔ)器fperomflash programmable and erasable read only memory的低電壓高性能cmos 8位微處理器俗稱單片機(jī)at89c2051是一種帶2k字節(jié)閃存可編程可擦除只讀存儲(chǔ)器的單片機(jī)單片機(jī)的可擦除只讀存儲(chǔ)器可以反復(fù)擦除100次該器件采用atme
17、l高密度非易失存儲(chǔ)器制造技術(shù)制造與工業(yè)標(biāo)準(zhǔn)的mcs-51指令集和輸出管腳相兼容由于將多功能8位cpu和閃爍存儲(chǔ)器組合在單個(gè)芯片中atmel的at89c51是一種高效微控制器at89c2051是它的一種精簡版本at89c單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案外形及引腳排列如圖所示圖32 at89c51系列單片機(jī)com led顯示電路設(shè)計(jì)與原理led顯示電路是由8個(gè)led發(fā)光二極管組成連接方式為共陽極led接到單片機(jī)的p1口若為低電平可使led亮起發(fā)光二極管的亮滅由內(nèi)部程序控制8個(gè)led發(fā)光二極管分別對(duì)應(yīng)不同的音階所以led會(huì)隨著音階的變化按規(guī)律亮滅com 時(shí)鐘振蕩電路at89c
18、51中有一個(gè)用于構(gòu)成內(nèi)部振蕩器的高增益反相放大器引腳xtal1和xtal2分別是該放大器的輸入端和輸出端這個(gè)放大器與作為反饋元件的片外石英晶體或者陶瓷諧振器一起構(gòu)成自然振蕩器外接石英晶體及電容c1c2接在放大器的反饋回路中構(gòu)成并聯(lián)振蕩電路對(duì)外接電容c1c2雖然沒有什么嚴(yán)格的要求但電容容量的大小會(huì)輕微影響振蕩頻率的高低振蕩器工作的穩(wěn)定性起振的難易程序及溫度穩(wěn)定性如果使用石英晶體我們推薦電容使用30pf10pf而如果使用陶瓷振蕩器建議選擇40pf10pf用戶也可以采用外部時(shí)鐘采用外部時(shí)鐘的電路如圖示這種情況下外部時(shí)鐘脈沖接到xtal1端即內(nèi)部時(shí)鐘發(fā)生器的輸入端xtal2則懸空由于外部時(shí)鐘信號(hào)是通過
19、一個(gè)2分頻觸發(fā)器后作為內(nèi)部時(shí)鐘信號(hào)的所以對(duì)外部時(shí)鐘信號(hào)的占空比沒有特殊要求但最小高電平持續(xù)時(shí)間和最大的低電平持續(xù)時(shí)間應(yīng)符合產(chǎn)品技術(shù)條件的要求振蕩器電路圖如下圖33 單片機(jī)內(nèi)部外部振蕩電路33 系統(tǒng)硬件電路圖及功能總體硬件電路實(shí)現(xiàn)功能如下如圖34所示電路中用p32comp17控制ledp23控制蜂鳴器電路為12mhz晶振頻率工作起振電路中c1c2均為30pf圖34 硬件電路圖第四章 軟件設(shè)計(jì)硬件電路和軟件程序是組成一個(gè)系統(tǒng)不可缺少的兩部分二者的正確與否將直接影響整個(gè)程序的可實(shí)現(xiàn)性在上一章中已經(jīng)將整個(gè)系統(tǒng)的硬件部分作了介紹在這一章中將就系統(tǒng)的軟件部分加以分析說明hz剛好是中音do的頻率523hz的
20、一倍中音do的頻率523hz剛好是低音do頻率266 hz的一倍同樣的高音re的頻率1175hz剛好是中音re的頻率587hz的一倍中音re的頻率587hz剛好是低音re頻率294 hz的一倍1要產(chǎn)生音頻脈沖只要算出某一音頻的周期1頻率然后將此周期除以2即為半周期的時(shí)間利用定時(shí)器計(jì)時(shí)這半個(gè)周期時(shí)間每當(dāng)計(jì)時(shí)到后就將輸出脈沖的io反相然后重復(fù)計(jì)時(shí)此半周期時(shí)間再對(duì)io反相就可在io腳上得到此頻率的脈沖2利用at89c51的內(nèi)部定時(shí)器使其工作在計(jì)數(shù)器模式mode1下改變計(jì)數(shù)值th0及tl0以產(chǎn)生不同頻率的方法此外結(jié)束符和休止符可以分別用代碼00h和ffh來表示若查表結(jié)果為00h則表示曲子終了若查表結(jié)果
21、為ffh則產(chǎn)生相應(yīng)的停頓效果3例如頻率為523hz其周期t 1523 1912us因此只要令計(jì)數(shù)器計(jì)時(shí)956us1us 956在每次技術(shù)956次時(shí)將io反相就可得到中音do523hz計(jì)數(shù)脈沖值與頻率的關(guān)系公式如下n fi2frn計(jì)算值fi內(nèi)部計(jì)時(shí)一次為1us故其頻率為1mhz其計(jì)數(shù)值的求法如下t 65536-n 65536-fi2fr例如設(shè)k 65536f 1000000 fi 1mhz球低音do261hz中音do523hz高音的do1046hz的計(jì)算值t 65536-n 65536-fi2fr 65536-10000002fr 65536-500000fr低音do的t 65536-50000
22、0262 63627低音do的t 65536-500000523 64580低音do的t 65536-5000001047 65059c調(diào)各音符頻率與計(jì)數(shù)值t的對(duì)照表如表41所示表41 c調(diào)各音符頻率與計(jì)數(shù)值t的對(duì)照表低音頻率t參數(shù)中音頻率t參數(shù)高音頻率t參數(shù)do2621908229do523956115do10465757do2771805217do554903108do11095454re2941701204re587852102re11755151re3111608193re62280497re12454848mi3301515182mi65975991mi13184545fa34914
23、33172fa69871686fa13974343fa3701351162fa74067681fa14804141so3921276153so78463877so15683838so4151205145so83160272so16613636la4401136136la88056868la17603434la4641078129la93253664la18653232si4941012121si98850661si19763030do re mi fa so la si分別編碼為17重音do編為8重音re編為9停頓編為0播放長度以十六分音符為單位在本程序中為165ms一拍即四分音符等于4個(gè)十六
24、分音符編為4其它的播放時(shí)間以此類推音調(diào)作為編碼的高4位而播放時(shí)間作為低4位如此音調(diào)和節(jié)拍就構(gòu)成了一個(gè)編碼以0xff作為曲譜的結(jié)束標(biāo)志舉例1音調(diào)do發(fā)音長度為兩拍即二分音符將其編碼為0x18舉例2音調(diào)re發(fā)音長度為半拍即八分音符將其編碼為0x22歌曲播放的設(shè)計(jì)先將歌曲的簡譜進(jìn)行編碼儲(chǔ)存在一個(gè)數(shù)據(jù)類型為unsigned char 的數(shù)組中程序從數(shù)組中取出一個(gè)數(shù)然后分離出高4位得到音調(diào)接著找出相應(yīng)的值賦給定時(shí)器0使之定時(shí)操作蜂鳴器得出相應(yīng)的音調(diào)接著分離出該數(shù)的低4位得到延時(shí)時(shí)間接著調(diào)用軟件延時(shí)表44 簡譜對(duì)應(yīng)的簡譜碼t值節(jié)拍數(shù)簡譜發(fā)音簡譜碼t值節(jié)拍碼節(jié)拍數(shù)5低音so164260114拍6低音la26
25、4400224拍7低音ti364524334拍1中音do46458041拍2中音re56468451又14拍3中音mi66477761又12拍4中音fa76482082拍5中音so864898a2又12拍6中音la964968c3拍7中音tia65030f3又34拍1高音dob650582高音rec651103高音mid651574高音fae651785高音sof6521742 編程思路簡述com述要產(chǎn)生音頻信號(hào)只要算出某一音頻的周期頻率的倒數(shù)將此周期除以2即為半周期的時(shí)間利用定時(shí)器計(jì)時(shí)此半周期時(shí)間計(jì)時(shí)到后取反輸出重復(fù)此過程即得到此頻率的聲音信號(hào)此信號(hào)從p30腳輸出定時(shí)器t0工作在定時(shí)方式1改
26、變th0及tl0產(chǎn)生不同的音頻頻率必須考慮到中斷響應(yīng)時(shí)間的影響尤其在高音部分若忽略中斷響應(yīng)時(shí)間會(huì)使音頻頻率比標(biāo)準(zhǔn)值低幾十hz相當(dāng)于14音程很容易聽出來對(duì)低音部分影響不大一般中斷響應(yīng)時(shí)間為36個(gè)機(jī)器周期經(jīng)過反復(fù)試驗(yàn)取5個(gè)機(jī)器周期作為校正最為恰當(dāng)表21中所給的定時(shí)初值就是考慮中斷響應(yīng)后的定時(shí)常數(shù)另外為避免t1中斷可能引起雜音應(yīng)將定時(shí)器t0中斷設(shè)為高優(yōu)先級(jí)這樣編寫出來的程序播放的音與標(biāo)準(zhǔn)音叉進(jìn)行差頻校音非常準(zhǔn)確和諧本設(shè)計(jì)中單片機(jī)晶振頻率為110592mhz每個(gè)音符使用兩個(gè)字節(jié)低位字節(jié)偶地址代表音級(jí)00h表示不發(fā)音休止符01h30h依次表示的音級(jí)為ccddefa3a3b3 詳見表21高位字節(jié)奇地址代表
27、音符的時(shí)值拍數(shù)00h0fh依次表示拍數(shù)為18拍010s8拍640s見表22樂曲的結(jié)束標(biāo)志是兩個(gè)字節(jié)0ffh0ffh設(shè)計(jì)延時(shí)程序125ms來控制節(jié)拍并在延時(shí)中判斷是否有停止鍵按下以便隨時(shí)停止音樂改變延時(shí)程序的延遲時(shí)間即可實(shí)現(xiàn)歌曲的快慢演奏主程序的任務(wù)是按順序讀取數(shù)據(jù)表中的字節(jié)根據(jù)情況調(diào)用音級(jí)子程序和演唱子程序啟動(dòng)定時(shí)器t0通過延時(shí)控制節(jié)拍并循環(huán)回音級(jí)子程序等待演唱完畢要編寫的樂譜按要求以音符字節(jié)數(shù)據(jù)表的形式存放在程序中改變樂曲就是通過改變?cè)摂?shù)據(jù)表的內(nèi)容來實(shí)現(xiàn)的主程序的任務(wù)是按順序讀取數(shù)據(jù)表中的字節(jié)根據(jù)情況調(diào)用音級(jí)子程序和音長子程序啟動(dòng)定時(shí)器t0根據(jù)定時(shí)器t1應(yīng)中斷的次數(shù)啟動(dòng)定時(shí)器t1數(shù)據(jù)表讀完后
28、根據(jù)所設(shè)置的循環(huán)演奏次數(shù)決定是否結(jié)束程序音級(jí)子程序的任務(wù)是取出字節(jié)中的音級(jí)部分分析th0和tl0中應(yīng)送入何值送給33h34h演唱子程序的任務(wù)是取出對(duì)應(yīng)頻率值并乘以2啟動(dòng)t0實(shí)現(xiàn)發(fā)音之后執(zhí)行延時(shí)程序體現(xiàn)節(jié)拍依此循環(huán)直到音樂結(jié)束定時(shí)器t0的中斷服務(wù)程序任務(wù)是取反p30輸出產(chǎn)生方波重新為th0tl0送初值定時(shí)器t1的中斷服務(wù)程序任務(wù)是判斷計(jì)數(shù)完成否給373的控制端高或低電平從而實(shí)現(xiàn)數(shù)據(jù)輸出或禁止達(dá)到二極管亮滅閃爍的效果當(dāng)樂曲較長時(shí)超過254個(gè)字節(jié)數(shù)據(jù)表指針溢出應(yīng)及時(shí)修改基址寄存器dptr內(nèi)容即數(shù)據(jù)表的表頭指針com圖 yn圖41 程序原理框圖43總原理圖及元器件清單元器件清單為at89c52晶振電容
29、電阻排阻按鍵數(shù)碼管二極管蜂鳴器三極管第章 結(jié)論致 謝感謝我的導(dǎo)師嚴(yán)謹(jǐn)細(xì)致一絲不茍的作風(fēng)一直是我的榜樣他們循循善誘的教導(dǎo)和不拘一格的思路給予我無盡的啟迪感謝我的爸爸媽媽感謝我的室友們是你們和我共同維系著彼此之間感情在論文即將完成之際我的心情無法平靜從開始進(jìn)入課題到論文的順利完成有多少可敬的師長同學(xué)朋友給了我無言的幫助在這里請(qǐng)接受我誠摯的謝意參考文獻(xiàn)北京清華大學(xué)出版社1997114 李華mc51 系列單片機(jī)實(shí)用接口技術(shù)m北京北京航空航天大學(xué)出版社199385 馬忠梅單片機(jī)的c語言windows 環(huán)境編程寶典m北京北京航空航天大學(xué)出版社200366 李廣弟單片機(jī)基礎(chǔ)m北京北京航空航天大學(xué)出版社200
30、76畢業(yè)設(shè)計(jì)小結(jié)附件 程序清單include include include define uchar unsigned chardefine uint unsigned intdefine w_c_add xbyte0x2070 寫命令字地址 define w_d_add xbyte0x2071 寫數(shù)據(jù)地址 define r_s_add xbyte0x2072 讀狀態(tài)字地址 define r_d_add xbyte0x2073 讀數(shù)據(jù)地址 uchar code xdata musicuchar code xdata music_nameuchar code tab 0xf80x940xf90
31、x5c0xfa0x1a0xfa0x6a0xfb0x000xfb0x8c0xfc0x0e 0xfc0x4a0xfc0xae0xfd0x080xfd0x300xfd0x800xfd0xc60xfe0x02 0xfe0x2a0xfe0x5c0xfe0x840xfe0x980xfe0xc00xfe0xe80xfe0x06 uchar code music_name120 0xc70xfa0xc40xbf0xd20xbb0xa10xc30xc10xbd0xd60xbb0xc00xcf0xbb0xa20xef0xff 兩只老虎 uchar code music1 0x440x540x640x440x440
32、x540x640x440x640x740x880x64 0x740x880x820x920x820x720x640x440x820x920x820x72 0x640x440x540x140x480x540x140x480x00 uchar code music_name220 0xc70xfa0xc40xbf0xb60xfe0xa10xc30xc90xfa0xc80xd50xbf0xec0xc00xd60xff 生日快樂uchar code music2 0x820x010x810x940x840xb40x040x040x820x010x810x94 0x840xc40xb40x040x820
33、x010x810xf40xd40xb40xa40x94 0x040xe20x010xe10xd40xb40xc40xb40x040xff uchar code music_name320 0xc70xfa0xc40xbf0xc80xfd0xa10xc30xc10xba0xd70xa30xff 梁祝uchar code music3 0x0a0x100x0c0x080x0d0x040x0f0x080x100x040x0d0x040x0f0x040x0c 0x040x0f0x040x0c0x080x0c0x100x0a0x080x0c0x020x0a0x080x0c0x080x0d0x020x0e
34、0x040x100x040x0d0x180x0c0x040x0d0x040x0f0x080x100x040x130x080x110x080x100x080x110x040x100x040x0f0x080x0d0x040x0c0x040x0a uchar code music_name420 0xc70xfa0xc40xbf0xcb0xc40xa10xc30xcd0xac0xd20xbb0xca0xd70xb80xe80xff 同一首歌uchar code music4 0x0f0x01 0x150x02 0x160x02 0x170x66 0x180x03 0x170x02 0x150x02
35、0x160x01 0x150x02 0x100x02 0x150x00 0x0f0x01 0x150x02 0x1a0x03 0x1a0x01 0x190x02 0x190x03 0x1a0x03 0x1b0x02 0x1a0x0d 0x190x03 0x170x00 0x180x66 0x180x03 0x190x02 0x1a0x02 uchar code music_name520 0xc70xfa0xc40xbf0xce0xe50xa10xc30xc10xbd0xd60xbb0xba0xfb0xb50xfb0xff 兩只蝴蝶uchar code music5 0x170x03 0x16
36、0x03 0x170x01 0x160x03 0x170x03 0x160x03 0x150x01 0x100x03 0x150x03 0x160x02 0x160x0d 0x170x03 0x160x03 0x150x03 0x100x03 0x100x0e 0x150x04 0x0f0x01 0x170x03 0x160x03 0x170x01 0x160x03 0x170x03 0x160x03 0x150x01 0x100x03 0x150x03 0x160x02 0x160x0d 0x170x03 0x190x01 0x190x03 0x1a0x03 0x190x03 0x170x0
37、1 0x160x03 0x160x03 0x160x02 0x160x0d 0x170x03 0x040x00 uchar code music_name620 0xc70xfa0xc40xbf0xc10xf90xa10xc30xbc0xc70xca0xc20xb10xbe0xff 記事本uchar code music6 0xa20xb20xd20xb20xa40xb20xd20xb20xa20x820x720x88 0x720x820xa20x820x720x620x420x620x380x380xa40x02 0xb20xa40x840x720x820x720x620x720x840x7
38、20x640x62 0x120x340x020x420x380x380x440x020x320x440x640x72 0x820x720x620x720x840xa20x720x740x820xa20x020xb2 0x720x820xa20x840x720x820x720x620x480xff uchar code music_name720 0xc70xfa0xc40xbf0xc60xdf0xa10xc30xb50xb40xc60xf00xcb0xab0xbd0xb00xff 讓我們蕩起雙槳uchar code music7 0x060x080x080x080x090x080x0a0x18
39、0x0c0x080x0a0x080x080x080x090x100x060x200x000x080x080x080x090x080x0a0x080x0c0x180x000x010x0c0x080x0a0x100x000x010x090x200x0a0x180x0c0x080x060x080x080x080x090x100x000x100x080x080x090x080x0a0x100x0c0x0b0x000x010x0c0x040x0d0x100x0f0x100x0e0x080x0d0x080x0c0x080x0a0x080x0d0x40 0x000x01 uchar code music_n
40、ame820 0xc70xfa0xc40xbf0xb00xcb0xa10xc30xcd0xaf0xc40xea0xff 童年uchar code music8 0x0a0x080x0c0x080x0c0x100x0c0x080x0a0x080x0d0x080x0d0x080x0e0x080x0d0x080x0d0x080x0d0x080x0d0x080x0c0x080x0f0x100x0f0x080x0f0x080x0f0x080x0d0x080x0f0x080x0d0x080x0c0x400x0a0x080x0c0x080x0c0x100x0c0x080x0a0x080x0d0x080x0d
41、0x080x0e0x080x0d0x080x0d0x080x0d0x080x0d0x080x0c0x080x0f0x100x0f0x080x0f0x080x0f0x080x0d0x080x0d0x080x0f0x080x100x400x130x080x130x080x130x100x130x100x110x080x100x080x0f0x080x0f uchar code uchar code music_name920 0xc70xfa0xc40xbf0xca0xae0xa10xc30xc00xbc0xbb0xa80xb20xdd0xff 蘭花草uchar code music10 0x42
42、0x820x820x820x860x720x630x710x620x520x480xb2 0xb20xb20xb20xb60xa20x830xa10xa20x920x880x820xb2 0xb20xa20x860x720x630x710x620x520x440x120x020x12 0x620x620x520x460x820x730x610x520x320x480x00 uchar data flaguchar data stl0uchar data sth0 uchar data luchar data kuchar data keysbit beef p31unsigned char b
43、data keyunsigned char bdata statusunsigned char code init18 0xc70xeb0xb00xb40xa30xb00xa10xab0xa30xb90xd1 0xa10xd40xf10xc70xfa0xc40xbf sbit busy status7void check_lcd void void lcd_busy void void lcd_show unsigned char k void check_lcd void unsigned char addunsigned char ilcd_busy w_c_add 0x30 lcd_bu
44、sy w_c_add 0x0c lcd_busy w_c_add 0x01lcd_busy w_c_add 0x02add 0x80 lcd_busy w_c_add addfor i 0i 5i lcd_busy w_d_add init2i w_d_add init2i1 add 0x90 lcd_busy w_c_add add for i 5i 9i lcd_busy w_d_add init2iw_d_add init2i1 void lcd_show unsigned char k unsigned char i 0lcd_busy w_c_add 0x90do lcd_busy w_d_add ki i while ki 0xff void lcd_busy void do status r_s_add while busy void delay_music void void delay int i uchar keyscan void main uint ijuchar k2 0tmod 0x01 it0 0 do ie 0x83flag 0 key 0check_lcd do k2 keyscan while k2 lcd_busy w_c_add 0x80 for i 0i 10i lcd_busy w_d_add 0x20
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 工作總結(jié)之電大幼兒園實(shí)習(xí)總結(jié)
- 電工電子技術(shù)(第3版) 課件 4.2.1 三相異步電機(jī)啟動(dòng)控制電路
- 2024年住房金融項(xiàng)目資金需求報(bào)告
- 采購過程合規(guī)性與紀(jì)律要求制度
- 《信息傳輸基礎(chǔ)》課件
- 《項(xiàng)目溝通培訓(xùn)》課件
- 公園有多寬課件
- 新年工作計(jì)劃(17篇)
- 感恩演講稿范文匯編(33篇)
- 幼兒園食品安全工作總結(jié)15篇
- SPC&CPK 超全EXCEL模板
- 運(yùn)動(dòng)場監(jiān)理大綱
- 化工設(shè)計(jì)說明書
- 部編本語文八年級(jí)上全冊(cè)文言文課下注釋
- 十二種健康教育印刷資料
- 德力西系列變頻器說明書
- UleadGifAnimator教程
- 凱旋帝景地產(chǎn)杯籃球爭霸賽方案
- 煙草專賣(公司)內(nèi)部專賣管理監(jiān)督工作制度
- CFG樁施工中常見問題及處理措施
- 醫(yī)療廢物處置流程圖
評(píng)論
0/150
提交評(píng)論