




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、物理與電子工程學(xué)院2014級本科課程設(shè)計提供全套畢業(yè)論文,各專業(yè)都有物理與電子工程學(xué)院單片機課程設(shè)計報告書 設(shè)計題目: 基于單片機音樂彩燈電子控制器設(shè)計 專 業(yè): 自動化 班 級: 14接本 學(xué)生姓名: 學(xué) 號: 20140343112 指導(dǎo)教師: 2014年 11 月16 日 物理與電子工程學(xué)院課程設(shè)計任務(wù)書專業(yè): 自動化 班級: 2014接本 學(xué)生姓名李智瑤學(xué)號20140343112課程名稱單片機原理及接口技術(shù)設(shè)計題目基于單片機音樂彩燈電子控制器設(shè)計設(shè)計目的、主要內(nèi)容(參數(shù)、方法)及要求設(shè)計任務(wù)與要求要求將音樂分成四個不同的頻段,將彩燈分為四組,各組彩燈顏色不同,每組彩燈包含兩個顏色相同的
2、彩燈。(1) 實現(xiàn)音樂彩燈同步控制;(2) 當(dāng)音樂處于高頻段20004000hz時第一組彩燈根據(jù)音樂節(jié)拍長短不同決定燈亮的個數(shù);(3) 當(dāng)音樂處于中頻段5001200hz時第二組彩燈根據(jù)音樂節(jié)拍長短不同決定燈亮的個數(shù);(4) 當(dāng)音樂處于低頻段50250hz時第三組彩燈根據(jù)音樂節(jié)拍長短不同決定燈亮的個數(shù);(5) 當(dāng)音樂在這些頻段之外,要求所有彩燈按照1hz頻率節(jié)奏性的閃爍;工作量2周時間,每天3學(xué)時,共計42學(xué)時進(jìn)度安排l 第1天:查閱資料,整理資料l 第2-3天:整理報告,確定初稿l 第4-14天:完成程序,整理交稿主要參考資料1 楊國志,王立峰,楊東光,王輝林編著.實用電子制作實例m.福建科
3、學(xué)技術(shù)出版社,2000.10.2 張仁.單片機音樂彩燈同步控制器的設(shè)計j.成都?xì)庀髮W(xué)院院報,1995.5.(165168).3 王連濤主編.音樂噴泉的單片機控制j.電子世界,2005.(2122).4 康華光,陳大欽編著.電子技術(shù)基礎(chǔ)(模擬部分第四版)m.高等教育出版社,2002.3.5 潘永雄,沙河編著,電子線路cad實用教程(第三版)m.西安電子科技大學(xué)出版社,2010.2.指導(dǎo)教師簽字教研室主任簽字摘 要隨著人們生活環(huán)境的不斷改善和美化,在許多場合可以看到彩色霓虹燈。led彩燈由于其豐富的燈光色彩,低廉的造價以及控制簡單等特點而得到了廣泛的應(yīng)用。本篇設(shè)計為基于單片機的音樂彩燈控制器,它是
4、指彩燈能隨著音樂信號地變化而變化的一種控制電路。本文詳細(xì)論述了音樂彩燈控制器的硬件原理電路,包括振蕩、時鐘、復(fù)位等模塊電路。以及如何在硬件電路的基礎(chǔ)上通過單片機進(jìn)行軟件編程最終實現(xiàn)音樂彩燈的同步控制。關(guān)鍵詞:音樂;彩燈;同步控制目 錄1 引言42.1 設(shè)計任務(wù)與要求52.2 方案的論證和選取53 硬件電路的設(shè)計73.1 單片機系統(tǒng)設(shè)計框圖73.2 單片機外圍電路83.3 時鐘電路93.5 按鍵電路113.6 isp下載口電路113.7led彩燈顯示電路123.8 12864液晶電路123.9 音樂播放電路143.10 直流穩(wěn)壓電源電路154 系統(tǒng)軟件設(shè)計164.1 單片機系統(tǒng)設(shè)計主程序流程圖1
5、64.2 音樂產(chǎn)生程序204.3 定時器子程序設(shè)計序214.4 液晶顯示子程序29參考文獻(xiàn)321 引言目前,基于彩燈控制器的設(shè)計的方法很多,有利用單片機控制的、有利用傳感器控制的,還有利用eda控制的等等。在簡化設(shè)計步驟和節(jié)約實驗器材的情況下,為了簡化硬件電路,也可采用plc s7-20cn控制的,雖然硬件電路比較簡便,但是實驗程序更復(fù)雜,實驗步奏更繁瑣;對于編寫程序是個比較困難的問題。通常采用單片機控制的方法,即利用單片機的端口來控制彩燈以及音樂播放,在程序編寫上更容易編寫,程序的可編譯性更強。本設(shè)計利用at89s52單片機來實現(xiàn)基于單片機的音樂彩燈控制的設(shè)計。用一恒流源供電,當(dāng)按下“開始”
6、按鍵時單片機開始輸出,彩燈開始閃爍和音樂播放開始同步播放;當(dāng)按下“停止”按鈕時音樂播放停止,彩燈停止閃爍,lcd顯示停止。當(dāng)再次按下“開始”按鈕時彩燈開始閃爍和音樂播放開始同步播放。單片機系統(tǒng)通過對采用數(shù)據(jù)進(jìn)行掃描,控制d/a轉(zhuǎn)換器轉(zhuǎn)換,并根據(jù)按鍵控制端口輸出。此方案思路清楚,電路簡單,便于操作1。2 設(shè)計方案的比較與選擇2.1 設(shè)計任務(wù)與要求要求將音樂分成四個不同的頻段,將彩燈分為四組,各組彩燈顏色不同,每組彩燈包含兩個顏色相同的彩燈。(1) 實現(xiàn)音樂彩燈同步控制;(2) 當(dāng)音樂處于高頻段20004000hz時第一組彩燈根據(jù)音樂節(jié)拍長短不同決定燈亮的個數(shù);(3) 當(dāng)音樂處于中頻段500120
7、0hz時第二組彩燈根據(jù)音樂節(jié)拍長短不同決定燈亮的個數(shù);(4) 當(dāng)音樂處于低頻段50250hz時第三組彩燈根據(jù)音樂節(jié)拍長短不同決定燈亮的個數(shù);(5) 當(dāng)音樂在這些頻段之外,要求所有彩燈按照1hz頻率節(jié)奏性的閃爍;2.2 方案的論證和選取單片機系統(tǒng)振蕩電路按鍵及下載口電路12864液晶顯示電路音樂播放電路彩燈顯示電路精密恒流源方案一: 基于單片機的音樂彩燈控制器的設(shè)計,是利用單片機編程產(chǎn)生頻率分為1.2mhz12mhz的方波,根據(jù)實際情況,本設(shè)計采用12mhz作為系統(tǒng)的外部晶振,電容值取30pf。經(jīng)過發(fā)射驅(qū)動電路放大,使led燈閃爍,同時音樂同步播放并通過12864液晶屏顯示頻率2。其系統(tǒng)框圖如圖
8、1所示。圖1 基于單片機的音樂彩燈控制器的設(shè)計的系統(tǒng)框圖這種以單片機為核心的基于單片機的音樂彩燈控制器的設(shè)計;利用振蕩電路產(chǎn)生12mhz的時鐘信號,在通過單片機輸出,單片機系統(tǒng)通過對采用數(shù)據(jù)進(jìn)行掃描,控制d/a轉(zhuǎn)換器轉(zhuǎn)換,并根據(jù)按鍵控制端口輸出,此方案思路清楚。利用單片機、按鍵控制音樂彩燈,控制靈敏度高,而且單片機控制方便,操作簡單。許多音樂彩燈控制器的設(shè)計都采用這種設(shè)計方法。方案二:這種測距系統(tǒng)采用cpld(complex programmable logic device)器件,運用vhdl編寫程序,使用max+plusii軟件進(jìn)行軟硬件設(shè)計的仿真和調(diào)試,最終實現(xiàn)測距功能。cpld器件內(nèi)部
9、的宏單元是其最基本的模塊,能獨立地編程為d觸發(fā)器、t觸發(fā)器、rs觸發(fā)器或jk觸發(fā)器工作方式或組合邏輯工作方式。它的這種特性非常適用于本系統(tǒng)??蓪⒈鞠到y(tǒng)所需要的分頻功能、計數(shù)功能、振蕩器、七段碼顯示全部由max來實現(xiàn),而只需在外部配上適當(dāng)?shù)某暡▊鞲衅?、接收和發(fā)送電路,即可組成一個性能穩(wěn)定、響應(yīng)速度快且具有顯示功能的彩燈控制器。本設(shè)計首先進(jìn)行系統(tǒng)模塊的劃分,規(guī)定每一個模塊的功能以及各模塊之間的借口,最終將設(shè)計分為三大模塊:四分頻器,四選一控制器,8樣彩燈控制器。本設(shè)計充分利用vhdl“自頂向下”的設(shè)計優(yōu)點以及層次化的設(shè)計概念,從簡單的單元入手,逐漸構(gòu)成復(fù)雜的系統(tǒng)。配合使用max+plusii開發(fā)
10、軟件,可集設(shè)計輸入、設(shè)計處理、設(shè)計校驗和器件編程于一體,集成度高,開發(fā)周期短。其系統(tǒng)框圖如圖2所示。音頻控制器顯示控制器四分頻器12864液晶顯示彩燈顯示音樂播放四選一控制器音頻發(fā)生器圖2 基于cpld的音樂彩燈控制器系統(tǒng)框圖綜合考慮前兩種方案,方案一操作方便,控制性更好,功耗低,模塊簡單,穩(wěn)定性高,成本低的特點,方案二具有靈敏度高,但結(jié)構(gòu)復(fù)雜、功耗比較和高控制不簡便的缺點。綜合各自的優(yōu)劣點我們選擇方案一。3 硬件電路的設(shè)計3.1 單片機系統(tǒng)設(shè)計框圖本文所設(shè)計的基于單片機的音樂彩燈控制器的設(shè)計主要由at89s52單片機、時鐘電路、復(fù)位電路、按鍵控制電路、下載口電路、喇叭聲音電路、顯示電路、直流
11、穩(wěn)壓電源等硬件電路部分以及相應(yīng)的軟件部分構(gòu)成。首先由單片機驅(qū)動產(chǎn)生12mhz晶振,在單片機片內(nèi)有一個高增益的反相放大器,反相放大器的輸入端為xtal1,輸出端為xtal2,由該放大器構(gòu)成的振蕩電路和時鐘電路一起構(gòu)成了單片機的時鐘方式。由單片機驅(qū)動后把結(jié)果輸出到led彩燈、小喇叭和12864液晶屏上。由編程可以實現(xiàn)音符頻率表、音名以及半音頻率表的確定和分配??梢詫⒙曇舴譃楦咭簦?khz4khz)、中音(500hz1.2khz)以及低音(50hz250hz)三等,故可以分配彩燈在不同的頻率段實現(xiàn)閃爍;同時當(dāng)在劃定頻率外時實現(xiàn)彩燈以1hz的頻率節(jié)奏閃爍;從而可以滿足設(shè)計的要求,達(dá)到設(shè)計的標(biāo)準(zhǔn)3。根據(jù)
12、要求并綜合以上各方面因素,采用at89s52單片機作為主控制器,采用按鍵來控制音樂以及彩燈的開始、暫停和停止?;趩纹瑱C的音樂彩燈控制器的單片機最小系統(tǒng)如下圖3所示:圖3 基于單片機的彩燈控制器的設(shè)計的設(shè)計框圖3.2 單片機外圍電路當(dāng)使用單片機的內(nèi)部時鐘電路時,單片機的xatl1和xatl2用來接石英晶體和微調(diào)電容,晶體一般可以選擇1.2mhz12mhz,電容選擇30pf左右。我們選擇晶振為12mhz,電容30pf。在系統(tǒng)上電的瞬間,rst與電源電壓同電位,隨著電容的電壓逐漸上升,rst電位下降,于是在rst形成一個正脈沖。只要該脈沖足夠?qū)捑涂梢詫崿F(xiàn)復(fù)位,即=rc20ms。一般取r1k,c22
13、uf。當(dāng)人按下按鈕s1時,使電容c5通過r1迅速放電,待s1彈起后,c再次充電,實現(xiàn)手動復(fù)位。r1一般取10k。我們通過p2.0來啟動控制,程序中通過查詢p2.0的電平來檢測是否按鍵被按下,當(dāng)按下按鍵時p2.0為低電平,單片機通過查詢到低電平開始音樂輸出和彩燈,當(dāng)松開按鍵,p2.0即為高電平,在軟件中通過軟件延時來消除按鍵的機械抖動。圖4 單片機外圍電路3.3 時鐘電路(1) 在單片機片內(nèi)有一個高增益的反相放大器,反相放大器的輸入端為xtal1,輸出端為xtal2,由該放大器構(gòu)成的振蕩電路和時鐘電路一起構(gòu)成了單片機的時鐘方式。根據(jù)硬件電路的不同,單片機的時鐘連接方式可分為內(nèi)部時鐘方式和外部時鐘
14、方式。我們采用內(nèi)部時鐘方式,如圖4所示:圖5 晶振電路(2) 在內(nèi)部方式時鐘電路中,必須在xtal1和xtal2引腳兩端跨接石英晶體振蕩器和兩個微調(diào)電容構(gòu)成振蕩電路,c6和c7取31pf左右,晶振的頻率取值1.2mhz12mhz。根據(jù)實際情況,本設(shè)計采用12mhz作為系統(tǒng)的外部晶振,電容值取30pf4。3.4 復(fù)位電路我們在用按鍵控制時,為了避免單片機程序錯誤而導(dǎo)致的錯誤輸出,從而加入復(fù)位電路,對任意的情況都能夠通過復(fù)位按鍵使電路復(fù)位。單片機復(fù)位是使cpu和系統(tǒng)中的其他功能部件都處在一個確定的初始狀態(tài),并從這個狀態(tài)開始工作。無論是單片機剛開始接上電源時,還是斷電后或者發(fā)生故障后都要復(fù)位。所以,
15、必須弄清楚單片機復(fù)位的條件、復(fù)位電路和復(fù)位后的狀態(tài)。單片機復(fù)位的條件是,必須使rst引腳(9腳)加上持續(xù)兩個機器周期(即24個振蕩周期)的高電平。例如,若時鐘頻率為12mhz,每機器周期為1us,則只需2us以上時間的高電平。在rst引腳出現(xiàn)高電平后的第二個周期執(zhí)行復(fù)位。單片機常見的復(fù)位電路有上電復(fù)位電路和按鍵復(fù)位電路。為了方便系統(tǒng)的硬件初始化,我們采用按鍵復(fù)位電路。如圖6所示:圖6 復(fù)位電路3.5 按鍵電路由于要達(dá)到設(shè)計要求,同時也為了提高設(shè)計的課操作性;選用按鍵來控制輸入從而可以手動的對音樂彩燈進(jìn)行控制。按鍵s2與單片機p2.0端口連接是“開始”按鍵;按鍵s3與單片機p2.1端口連接是“暫
16、?!卑存I;按鍵s3與單片機p2.2端口連接是“停止”按鍵。如圖7所示。圖7 按鍵電路3.6 isp下載口電路下載口電路采用了isp下載口,能快速下載和更換單片機中的程序,從而滿足和達(dá)到實驗的要求下載口的1腳與單片機的p1.5相連接,下載口的2腳與vcc相連接,下載口的3腳與單片機的相連接,下載口的5腳與單片機的相連接,下載口的7腳與單片機的p1.7相連接,下載口的9腳與單片機的p1.6相連接,下載口的4、6和8腳與gnd相連接。下載電路采用dip10插座;其插座的管腳如圖8示,dip10管腳功能如表1所示5。圖8 按鍵下載口電路表1 dip10管腳使用說明at89isp引腳cpu端說明at89
17、isp引腳cpu端說明1sck時鐘信號5rst復(fù)位端2vcc電源9mosi輸出信號3miso輸入信號10gnd地線4gnd地線3.7 led彩燈顯示電路led數(shù)碼顯示管有兩種,一種是共陽極數(shù)碼管,另一種是共陰極數(shù)碼管,其內(nèi)部是由八個陽極或陰極相連接的發(fā)光二極管組成,二者原理不同但功能相同。共陰極led數(shù)碼顯示塊的發(fā)光二極管陰極連接在一起,形成該模塊的公共端(通常稱為位選端),因此稱為共陰極led數(shù)碼顯示器,8個數(shù)碼管的另一端通常稱為段選端,當(dāng)顯示器的公共端接低電平,某個發(fā)光二極管的陽極接高電平時,該發(fā)光二極管被點亮;而共陽極led數(shù)碼顯示管則形成共陽極led數(shù)碼顯示塊的公共端,該公共端必須接高
18、電平,同理在共陽極led數(shù)碼顯示塊中如某個發(fā)光二極管的陰極為低電平時,該發(fā)光二極管被點亮7。at89s52是采用12mhz晶振獲得穩(wěn)定的時鐘頻率。采用12mhz高精度的晶振,以獲得較穩(wěn)定的時鐘頻率,從而使輸出的頻率更為穩(wěn)定。顯示電路采用簡單實用的8位共陽led數(shù)碼管。單片機系統(tǒng)顯示電路如圖9所示。圖9 led顯示電路3.8 12864液晶電路3.8.1 12864液晶簡介12864是128*64點陣液晶模塊的點陣數(shù)簡稱。該點陣的屏顯成本相對較低,適用于各類儀器。液晶模組的驅(qū)動應(yīng)遵照規(guī)定的額定指標(biāo),避免故障及永久損壞。液晶顯示屏焊接溫度:280c+10c 焊接時間3-4秒6。液晶的電氣特性如表2
19、所示。表2 12864液晶的電氣特性 項目符號最小典型最大單位電源電壓vdd-vss4.755.05.25v液晶驅(qū)動電壓vdd-vadjta=0-11.0-11.5-12.0ta=25-10.5-11.0-11.5ta=50-10.0-10.5-11.0 液晶的背光驅(qū)動電流iled-6080液晶驅(qū)動電流iee-1.0-3.8.2 12864液晶顯示屏管腳號及作用液晶的1腳vss接電源,為液晶提供電流;17腳為復(fù)位端,與單片機的27腳連接,通過單片機程序來控制液晶顯示的復(fù)位;液晶20腳接地線;714腳與排阻的29腳連接。如表3所示。 表3 12864液晶顯示屏的管腳號及作用管腳號管腳名稱電平管腳
20、功能描述1vss+5v電源地2vcc3.0+5v電源正3v0-對比度(亮度)調(diào)整4rs(cs)h/lrs=“h”,表示db7db0為顯示數(shù)據(jù)rs=“l(fā)”,表示db7db0為顯示指令數(shù)據(jù)5r/w(sid)h/lr/w=“h”,e=“h”,r/w=“l(fā)”,e=“hl”, 6e(sclk)h/l使能信號7db0h/l三態(tài)數(shù)據(jù)線8db1h/l三態(tài)數(shù)據(jù)線9db2h/l三態(tài)數(shù)據(jù)線10db3h/l三態(tài)數(shù)據(jù)線11db4h/l三態(tài)數(shù)據(jù)線12db5h/l三態(tài)數(shù)據(jù)線13db6h/l三態(tài)數(shù)據(jù)線14db7h/l三態(tài)數(shù)據(jù)線15psbh/lh:8位或4位并口方式,l:串口方式16nc-空腳17/reseth/l復(fù)位端,低電
21、平有效續(xù)表 12864液晶顯示屏的管腳號及作用管腳號管腳名稱電平管腳功能描述18vout-lcd驅(qū)動電壓輸出端19avdd背光源正端(+5v)20kvss背光源負(fù)端在這個設(shè)計中由于采用的是并行,故直接將psb連接高電平;vss與led_k端接地。液晶的數(shù)據(jù)位db0db7分別接在排阻u2的a0a7上;復(fù)位端17腳和單片機的復(fù)位端連接。12864液晶屏顯示部分電圖如圖10所示。圖10 12864液晶屏顯示電路3.9 音樂播放電路為了提高聲音電路的功率并保持穩(wěn)定在喇叭電路中增加了一個8550三極管,并增加了一個阻值比較大的電阻來增加電路的電流。音樂播放電路如圖11所示。圖11 喇叭電路3.10 直流
22、穩(wěn)壓電源電路電源電路采用普通可調(diào)電源供電,電源由外接端口連接5v電壓參考源,可滿足本系統(tǒng)單片機、彩燈和小喇叭的供電要求。其中采用兩個電容并聯(lián),達(dá)到濾波的作用,以便得到穩(wěn)定的電流。如下圖12。圖12 穩(wěn)壓電源電路4 系統(tǒng)軟件設(shè)計硬件電路一旦確定,大體的功能框架也形成了。這時我們需要在硬件平臺上編寫軟件程序,完成各部分硬件的控制和協(xié)調(diào)。系統(tǒng)功能是由軟硬件共同實現(xiàn)的,由于軟件的可伸縮性,最終實現(xiàn)的系統(tǒng)功能可強可弱,差別可能很大。因此,軟件是本系統(tǒng)的靈魂。音樂彩燈控制器的軟件設(shè)計主要是為了實現(xiàn)彩燈與音樂同步控制?;趩纹瑱C的音樂彩燈控制器的設(shè)計的軟件設(shè)計主要由主程序、復(fù)位程序、音頻及半音程序、按鍵中斷
23、程序及顯示子程序組成。下面分別對主程序、音頻及半音程序、按鍵中斷程序和顯示程序逐一作介紹7。4.1 單片機系統(tǒng)設(shè)計主程序流程圖本設(shè)計選用at89s52的單片機來控制歌曲播放和歌詞顯示。采用直流電源為其提供基準(zhǔn)電壓+5v,采用12864lcd顯示,小喇叭播放音樂8。通過軟件程序與按鍵輸入來控制輸入與輸出。當(dāng)電源接通時,程序開始初始化。當(dāng)開始鍵按下時單片機的21腳輸入低電平,程序啟動;音樂開始播放彩燈交替移動點亮;隨即進(jìn)入通過頻率變化范圍中斷若在整體頻率范圍內(nèi)則繼續(xù)程序;若不在整體頻率范圍內(nèi)則所有彩燈1hz閃爍。當(dāng)程序進(jìn)入高頻判定時,若在高頻段內(nèi)則使高頻段燈亮,液晶顯示當(dāng)前頻率的大概值;若不在高頻
24、段范圍內(nèi)則進(jìn)入中頻判定,判定結(jié)果同高頻;當(dāng)程序進(jìn)入低頻判定時,若滿足頻率判定要求則低頻段燈亮,液晶顯示當(dāng)前頻率的大概值;若不滿足判定要求則程序結(jié)束。圖13為主要程序流程圖。開始初始化按鍵按下?播放音樂y在高頻段內(nèi)?在中頻段內(nèi)?高頻段燈亮并且液晶顯示當(dāng)前頻率大概值y中頻段燈亮并且液晶顯示當(dāng)前頻率大概值y在低頻段內(nèi)?低頻段燈亮并且液晶顯示當(dāng)前頻率大概值y所有彩燈1hz閃爍結(jié)束nnnn圖13主程序流程圖音樂彩燈控制器的主程序如下。#include #include #pragma ot(0)#define uint unsigned int#define uchar unsigned char#de
25、fine io_lcd12864_dataport p0;#define set_data io_lcd12864_rs = 1 ;#define set_inc io_lcd12864_rs = 0 ;#define set_read io_lcd12864_rw = 1 ;#define set_write io_lcd12864_rw = 0 ;#define set_en io_lcd12864_en = 1 ;#define clr_en io_lcd12864_en = 0 ;#define osfreq 11059200 /所使用的晶振頻率sbit io_lcd12864_rs
26、= p23 ;sbit io_lcd12864_rw = p24 ;sbit io_lcd12864_en = p25 ;sbit beep_pwr=p27;sbit p3.0=p30;sbit p3.1=p31;sbit p3.2=p32;sbit p3.3=p33;sbit p3.4=p34;sbit p3.5=p35;sbit p3.6=p36;sbit p3.7=p37;sbit p2.0=p20;uchar freqsandh,freqsandl; /*產(chǎn)生方波的定時器的初值*/uchar timer1cnt; /*定時器延時計數(shù) */uchar timer1cntflg; /*定時
27、器定時完成標(biāo)志 */uchar g_pl=0, g_pai=0;uchar gp_freq16=當(dāng)前頻率值: ;uint g_freq=0;/*音符頻率表*/uint code notefreq= 523, 587, 659, 698, 784, 880, 988, 1047,1175,1319,1396,1568,1760,1976, 2093,2349,2637,2793,3136,3520,3961;/*音名*/uchar code notename=c,d,e,f,g,a,b, 1,2,3,4,5,6,7, c,d,e,f,g,a,b,0;/*半音頻率表*/uint code half
28、notefreq= 554, 622, 740, 831, 933, 1109,1245,1480,1161,1865, 2218,2489,2960,3322,3729;/*音名*/uchar code halfnotename=c,d,f,g,a, 1,2,4,5,6, c,d,f,g,a,0;/*聲明*/void dis_pl(uchar *p,unit i);void v_lcd12864checkbusy_f( void );void v_lcd12864sendcmd_f( unsigned char bycmd );void v_lcd12864senddata_f( unsig
29、ned char bydata );void v_delayms_f( unsigned int ndelay );void v_lcd12864init_f( void );void v_lcd12864putstring_f( unsigned char x, unsigned char y, unsigned char *pdata );4.2 音樂程序主要利用單片機的頻率發(fā)生器產(chǎn)生方波,來產(chǎn)生不同頻率的音樂。10,具體程序如下。void main(void) uint i; tmod=0x11; et1=1; et0=1; ea=1; v_lcd12864init_f() ;while
30、(1)if(p1.0=0)if(i=1)i=0; /啟動關(guān)閉按鍵if(i=0)i=1;if(i=1)/play(1_1_5_5_6_6_54_4_3_3_2_2_15_5_4_4_3_3_2 5_5_4_4_3_3_21_1_5_5_6_6_5 4_4_3_3_2_2_1); /滿天都是小星星v_lcd12864putstring_f( 0,0, 曲目:兩只老虎) ;play(1_2_3_1_1_2_3_1_3_4_5 3_4_55=6=5=4=3_1_ 5=6=5=4=3_1_ 2_g_12_g_1); /兩只老虎/play(a-a1-a2-a-b1b13-2a-a-a-33-12-a-b1
31、b13-21-1-5-55432-a-b1-12123-3- 1-1_1_1235-4-32-b3-2a-a- a-66565-4-34-56543-3-1-1_1_1235-4-32-b3-2a-a-); /山楂樹v_lcd12864putstring_f( 0,0, 學(xué)習(xí)雷鋒好榜樣) ;play(5._3=2_1_5-12_3_g-5.3_23_5_1a_3_2-356.5_352._3=2_1_a32_21_a1g05.3_6562_3_50); /學(xué)習(xí)雷鋒好榜樣/play(c-53.2_1530c-53.2_1650 5_c6_5_c05_c6_5_6_0_3_c.6_53c.6_c0
32、c53_6_5_3_2.1_30_5_c56_c_6_5_33_1_6-60c._c=5_5_2._3=5_5_6.5_6dc6_5_c6_5_33_5_c-);/ play(3- 2_3_4_3 3- 2_3_4_3 3- 4- 3_4_5_4 4- 3-2- 3- 2_3_4_3 3- 2_3_4_3 3-4- 3_4_5_4 4- 3-2);/許巍星空前奏v_lcd12864putstring_f( 0,0, 許巍 時光) ;play(543 3_2_1_2_30 g53 3_2_1_2_30 a65 4_3_2_3_4 1 b a g);/許巍-時光 soundoff(); /*音符頻
33、率表*/uint code notefreq= 523, 587, 659, 698, 784, 880, 988,1047,1175,1319,1396,1568,1760,1976,2093,2349,2637,2793,3136,3520,3961;/*音名*/uchar code notename=c,d,e,f,g,a,b, 1,2,3,4,5,6,7, c,d,e,f,g,a,b,0;/*半音頻率表*/uint code halfnotefreq= 554, 622, 740, 831, 933, 1109,1245,1480,1161,1865, 2218,2489,2960,3
34、322,3729;/*音名*/uchar code halfnotename=c,d,f,g,a, 1,2,4,5,6, c,d,f,g,a,0;4.3 定時器子程序設(shè)計序4.3.1 定時器工作原理當(dāng)定時器設(shè)置為定時方式時,計數(shù)器對內(nèi)部機器周期計數(shù),每過一個機器周期,計數(shù)器加1,直至計滿溢出。定時器的定時時間與系統(tǒng)的振蕩頻率緊密相關(guān),實驗單片機系統(tǒng)采用12mhz晶振,計數(shù)周期為1s,適當(dāng)選擇定時器的初值可獲取各種定時時間。4.3.2 定時器特殊功能寄存器定時器的初始化是通過定時器的方式寄存器tmod和控制寄存器tcon完成的。(1) 定時器的方式寄存器tmodtmod為定時器0、定時器1的工作
35、方式寄存器,其格式如表4所示。表4 定時器工作方式寄存器gatec/t m1 m0 gate c/t m1 m0 tmod的低四位為定時器0的方式字段,高四位為定時器1的方式字段,它們的含義完全相同。各位的意義如下。 m1m0:工作方式選擇位,設(shè)最大計數(shù)值為m。具體功能如表5所示。表5 m1m0工作功能描述m1m0工作方式功能描述最大計數(shù)值00方式013位定時器/計數(shù)器m=213=819201方式116位定時器/計數(shù)器m=216=6553610方式2常數(shù)自動重裝的8位定時器/計數(shù)器m=28=25611方式3僅適用于t0,分為兩個8位定時器/計數(shù)器。定時器0分成兩個8位計數(shù)器,所以兩個定時器的m
36、值均為256。 c/t:定時器/計數(shù)器的選擇位。c/t =0工作于定時方式,c/t =1 工作于計數(shù)方式。 gate:門控位。當(dāng)gate=0時,只要有tri=1,定時器/計數(shù)器就開始工作,稱為軟啟動。當(dāng)gate=1時,只有inti引腳和tri引腳同時為1時,定時器/計數(shù)器才開始工作,主要用于測量int引腳上高電平脈沖的寬度,稱為硬啟動。(2) 定時器控制寄存器tcontcon的作用是控制定時器/計數(shù)器的啟動、停止,標(biāo)志定時器的溢出和中斷情況,其格式如表6所示。表6 定時器控制寄存器tr0tr1tf0tf1tr0tr1tf0tf1 tf1(tf0):定時器/計數(shù)器t1(t0)的溢出標(biāo)志。當(dāng)t1(
37、t0)被允許計數(shù)后,t1(t0)從初始值開始加1計數(shù),最高位產(chǎn)生溢出時,該位由內(nèi)部硬件置位,并向cpu請求申請中斷。當(dāng)cpu響應(yīng),由硬件清零。 tr1(tr0):定時器/計數(shù)器t1(t0)的運行控制位。由軟件置1或清零來啟動或關(guān)閉定時器/計數(shù)器。本程序通過單片機的t2產(chǎn)生中斷,來調(diào)用歌詞顯示程序和彩燈程序,達(dá)到一種同步的效果。按下復(fù)位鍵后,將從頭開始。軟件分為兩部分,主程序和中斷服務(wù)程序,主程序完成初始化工作、進(jìn)入定時中斷程序。定時中斷服務(wù)子程序完成對彩燈和音樂的控制,外部中斷服務(wù)子程序主要完成時間值的讀取、程序的運算、結(jié)果的輸出等工作9。定時中斷與外部中斷流程圖分別如圖14、15所示。定時中
38、斷入口ny顯示同步定時器初始化返回按鍵輸入音樂同步圖14 定時中斷服務(wù)子程序流圖關(guān)外部中斷外部中斷入口讀取輸入程序運算結(jié)果輸出開外部中斷返回圖15 外部中斷服務(wù)子程序流圖4.3.3 定時器子程序首先我們定義寄存器tmod=0x01,選擇定時器0,定時方式,方式1。本設(shè)計采用的12mhz的晶振,所以計數(shù)周期為1s。方式1最大計數(shù)時間為65536s,這里我們選擇定時50ms。所以初值就可以計算:初值 x=65536-50000=15536=3cb0h (公式1)th0=3chtl0=b0h (公式2)由于本設(shè)計需要使彩燈1hz的頻率閃爍,即需要定時時間為500ms,所以,沒完成一次定時,定義一個c
39、ount自加一次,當(dāng)count計數(shù)到10時,使所以彩燈取反。定義好初值以后則打開總開關(guān)ea=1和允許中斷開關(guān)et0=1,最后啟動定時器0,tr1=1。定時器程序如下:/*定時器0用來產(chǎn)生方波*/void timer0int () interrupt 1 th0=freqsandh; tl0=freqsandl; beep_pwr=!beep_pwr;/*定時器用來進(jìn)行比較準(zhǔn)確的延時*/void timer1int() interrupt 3 th1=0xe0; tl1=0x00; timer1cnt+; if(timer1cnt=(osfreq/1500000l) timer1cntflg=1; tr1=0;void delay(uchar time) uchar i; uint j; for(i=0;itime;i+) for(j=0;j0x900;j+);/* uchar i; for(i=0;itime;i+) timer1cnt=0; timer1cntflg=0; tr1=1; while(!timer1cntflg); */4.4 彩燈顯示子程序當(dāng)檢測到不同的音樂頻率是彩燈的閃爍樣式和個數(shù)就會發(fā)生變化。高頻段時高頻段的燈亮,當(dāng)為1個節(jié)拍時3個彩燈全部點亮,當(dāng)為半拍時2個彩燈點亮,當(dāng)為1/4拍時1個彩燈點亮。低頻段時和中頻段時亮燈個數(shù)與原理同高頻。沒有在
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T-ZSM 0052-2024“領(lǐng)跑者”評價技術(shù)要求 普通型立式帶鋸床
- T-ZSA 227-2024 低慢小無人駕駛航空器車載式預(yù)警處置系統(tǒng)
- 2025年度村級林業(yè)資源監(jiān)測村級護(hù)林員職責(zé)合同
- 2025年度美甲服務(wù)連鎖品牌合作協(xié)議
- 二零二五年度汽車維修保養(yǎng)抵押借款合同
- 2025年度美發(fā)店員工勞動合同及員工福利政策
- 二零二五年度個人心理咨詢服務(wù)合同
- 2025年度消防車輛抵押借款合同范本
- 二零二五年度直播平臺用戶行為數(shù)據(jù)分析合同
- 2025年度石材石材加工定制采購協(xié)議
- 人衛(wèi)版外科學(xué)泌尿、男生殖系統(tǒng)外科檢查和診斷課件
- 西洋服裝史課件
- JIS C9335-2-5-2021 家用和類似用途電器.安全性.第2-5部分:洗碗機的特殊要求
- 振動流化床使用說明書振動流化床干燥機使用說明書
- 高考語文一輪復(fù)習(xí)小說表現(xiàn)手法ppt課件
- 一至六年級下冊音樂期末試卷及答案
- 多介質(zhì)過濾器計算書
- 鑼鼓曲譜16762
- 三、QHLY系列——露頂式弧形門閘門液壓啟閉機
- 《病毒性肝炎》課件.ppt
- UCP600中英文對照版
評論
0/150
提交評論