![[電子電路]基于單片機(jī)的音樂彩燈控制器的設(shè)計(jì)修改稿_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-4/22/a208670e-e083-4b7d-ad03-e7c351759eaf/a208670e-e083-4b7d-ad03-e7c351759eaf1.gif)
![[電子電路]基于單片機(jī)的音樂彩燈控制器的設(shè)計(jì)修改稿_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-4/22/a208670e-e083-4b7d-ad03-e7c351759eaf/a208670e-e083-4b7d-ad03-e7c351759eaf2.gif)
![[電子電路]基于單片機(jī)的音樂彩燈控制器的設(shè)計(jì)修改稿_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-4/22/a208670e-e083-4b7d-ad03-e7c351759eaf/a208670e-e083-4b7d-ad03-e7c351759eaf3.gif)
![[電子電路]基于單片機(jī)的音樂彩燈控制器的設(shè)計(jì)修改稿_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-4/22/a208670e-e083-4b7d-ad03-e7c351759eaf/a208670e-e083-4b7d-ad03-e7c351759eaf4.gif)
![[電子電路]基于單片機(jī)的音樂彩燈控制器的設(shè)計(jì)修改稿_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-4/22/a208670e-e083-4b7d-ad03-e7c351759eaf/a208670e-e083-4b7d-ad03-e7c351759eaf5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、內(nèi)江師范學(xué)院本科畢業(yè)設(shè)計(jì)目 錄1 引言12 設(shè)計(jì)方案的比較與選擇22.1 設(shè)計(jì)任務(wù)與要求22.2 方案的論證和選取23 硬件電路的設(shè)計(jì)43.1 單片機(jī)系統(tǒng)設(shè)計(jì)框圖43.2 單片機(jī)外圍電路53.3 時鐘電路63.5 按鍵電路83.6 isp下載口電路83.7 led彩燈顯示電路93.8 12864液晶電路93.9 音樂播放電路113.10 直流穩(wěn)壓電源電路124 系統(tǒng)軟件設(shè)計(jì)124.1 單片機(jī)系統(tǒng)設(shè)計(jì)主程序流程圖124.2 音樂產(chǎn)生程序154.3 定時器子程序設(shè)計(jì)序164.5 液晶顯示子程序195 結(jié)束語23參考文獻(xiàn)24附錄25致謝39摘 要隨著人們生活環(huán)境的不斷改善和美化,在許多場合可以看到彩
2、色霓虹燈。led彩燈由于其豐富的燈光色彩,低廉的造價(jià)以及控制簡單等特點(diǎn)而得到了廣泛的應(yīng)用。本篇設(shè)計(jì)為基于單片機(jī)的音樂彩燈控制器,它是指彩燈能隨著音樂信號地變化而變化的一種控制電路。本文詳細(xì)論述了音樂彩燈控制器的硬件原理電路,包括振蕩、時鐘、復(fù)位等模塊電路。以及如何在硬件電路的基礎(chǔ)上通過單片機(jī)進(jìn)行軟件編程最終實(shí)現(xiàn)音樂彩燈的同步控制。關(guān)鍵詞:音樂;彩燈;同步控制abstract as people living environment of continuous improvement and beautification, in many occasions can see color neon
3、 lights. led lights because of its abundant light color, low cost and simple control characteristics and has been widely used. this design is based on single chip music lights controller, it is to point to lights can along with the input music signal changes to a control circuit. this paper discusse
4、s the music lights controller hardware principle circuit, including oscillation, filtering and reset circuit module. and how in hardware circuit based on mcu is through software programming ultimately realize music lights synchronous control.key words: music; lights; synchronous control 481 引言目前,基于彩
5、燈控制器的設(shè)計(jì)的方法很多,有利用單片機(jī)控制的、有利用傳感器控制的,還有利用eda控制的等等。在簡化設(shè)計(jì)步驟和節(jié)約實(shí)驗(yàn)器材的情況下,為了簡化硬件電路,也可采用plc s7-20cn控制的,雖然硬件電路比較簡便,但是實(shí)驗(yàn)程序更復(fù)雜,實(shí)驗(yàn)步奏更繁瑣;對于編寫程序是個比較困難的問題。通常采用單片機(jī)控制的方法,即利用單片機(jī)的端口來控制彩燈以及音樂播放,在程序編寫上更容易編寫,程序的可編譯性更強(qiáng)。本設(shè)計(jì)利用at89s52單片機(jī)來實(shí)現(xiàn)基于單片機(jī)的音樂彩燈控制的設(shè)計(jì)。用一恒流源供電,當(dāng)按下“開始”按鍵時單片機(jī)開始輸出,彩燈開始閃爍和音樂播放開始同步播放;當(dāng)按下“停止”按鈕時音樂播放停止,彩燈停止閃爍,lcd顯
6、示停止。當(dāng)再次按下“開始”按鈕時彩燈開始閃爍和音樂播放開始同步播放。單片機(jī)系統(tǒng)通過對采用數(shù)據(jù)進(jìn)行掃描,控制d/a轉(zhuǎn)換器轉(zhuǎn)換,并根據(jù)按鍵控制端口輸出。此方案思路清楚,電路簡單,便于操作1。2 設(shè)計(jì)方案的比較與選擇2.1 設(shè)計(jì)任務(wù)與要求要求將音樂分成四個不同的頻段,將彩燈分為四組,各組彩燈顏色不同,每組彩燈包含兩個顏色相同的彩燈。(1) 實(shí)現(xiàn)音樂彩燈同步控制;(2) 當(dāng)音樂處于高頻段20004000hz時第一組彩燈根據(jù)音樂節(jié)拍長短不同決定燈亮的個數(shù);(3) 當(dāng)音樂處于中頻段5001200hz時第二組彩燈根據(jù)音樂節(jié)拍長短不同決定燈亮的個數(shù);(4) 當(dāng)音樂處于低頻段50250hz時第三組彩燈根據(jù)音樂節(jié)
7、拍長短不同決定燈亮的個數(shù);(5) 當(dāng)音樂在這些頻段之外,要求所有彩燈按照1hz頻率節(jié)奏性的閃爍;2.2 方案的論證和選取方案一: 基于單片機(jī)的音樂彩燈控制器的設(shè)計(jì),是利用單片機(jī)編程產(chǎn)生頻率分為1.2mhz12mhz的方波,根據(jù)實(shí)際情況,本設(shè)計(jì)采用12mhz作為系統(tǒng)的外部晶振,電容值取30pf。經(jīng)過發(fā)射驅(qū)動電路放大,使led燈閃爍,同時音樂同步播放并通過12864液晶屏顯示頻率2。其系統(tǒng)框圖如圖1所示。單片機(jī)系統(tǒng)振蕩電路按鍵及下載口電路12864液晶顯示電路音樂播放電路彩燈顯示電路精密恒流源圖1 基于單片機(jī)的音樂彩燈控制器的設(shè)計(jì)的系統(tǒng)框圖這種以單片機(jī)為核心的基于單片機(jī)的音樂彩燈控制器的設(shè)計(jì);利用
8、振蕩電路產(chǎn)生12mhz的時鐘信號,在通過單片機(jī)輸出,單片機(jī)系統(tǒng)通過對采用數(shù)據(jù)進(jìn)行掃描,控制d/a轉(zhuǎn)換器轉(zhuǎn)換,并根據(jù)按鍵控制端口輸出,此方案思路清楚。利用單片機(jī)、按鍵控制音樂彩燈,控制靈敏度高,而且單片機(jī)控制方便,操作簡單。許多音樂彩燈控制器的設(shè)計(jì)都采用這種設(shè)計(jì)方法。方案二:這種測距系統(tǒng)采用cpld(complex programmable logic device)器件,運(yùn)用vhdl編寫程序,使用max+plusii軟件進(jìn)行軟硬件設(shè)計(jì)的仿真和調(diào)試,最終實(shí)現(xiàn)測距功能。cpld器件內(nèi)部的宏單元是其最基本的模塊,能獨(dú)立地編程為d觸發(fā)器、t觸發(fā)器、rs觸發(fā)器或jk觸發(fā)器工作方式或組合邏輯工作方式。它的
9、這種特性非常適用于本系統(tǒng)??蓪⒈鞠到y(tǒng)所需要的分頻功能、計(jì)數(shù)功能、振蕩器、七段碼顯示全部由max來實(shí)現(xiàn),而只需在外部配上適當(dāng)?shù)某暡▊鞲衅?、接收和發(fā)送電路,即可組成一個性能穩(wěn)定、響應(yīng)速度快且具有顯示功能的彩燈控制器。本設(shè)計(jì)首先進(jìn)行系統(tǒng)模塊的劃分,規(guī)定每一個模塊的功能以及各模塊之間的借口,最終將設(shè)計(jì)分為三大模塊:四分頻器,四選一控制器,8樣彩燈控制器。本設(shè)計(jì)充分利用vhdl“自頂向下”的設(shè)計(jì)優(yōu)點(diǎn)以及層次化的設(shè)計(jì)概念,從簡單的單元入手,逐漸構(gòu)成復(fù)雜的系統(tǒng)。配合使用max+plusii開發(fā)軟件,可集設(shè)計(jì)輸入、設(shè)計(jì)處理、設(shè)計(jì)校驗(yàn)和器件編程于一體,集成度高,開發(fā)周期短。其系統(tǒng)框圖如圖2所示。音頻控制器顯示
10、控制器四分頻器12864液晶顯示彩燈顯示音樂播放四選一控制器音頻發(fā)生器圖2 基于cpld的音樂彩燈控制器系統(tǒng)框圖綜合考慮前兩種方案,方案一操作方便,控制性更好,功耗低,模塊簡單,穩(wěn)定性高,成本低的特點(diǎn),方案二具有靈敏度高,但結(jié)構(gòu)復(fù)雜、功耗比較和高控制不簡便的缺點(diǎn)。綜合各自的優(yōu)劣點(diǎn)我們選擇方案一。3 硬件電路的設(shè)計(jì)3.1 單片機(jī)系統(tǒng)設(shè)計(jì)框圖本文所設(shè)計(jì)的基于單片機(jī)的音樂彩燈控制器的設(shè)計(jì)主要由at89s52單片機(jī)、時鐘電路、復(fù)位電路、按鍵控制電路、下載口電路、喇叭聲音電路、顯示電路、直流穩(wěn)壓電源等硬件電路部分以及相應(yīng)的軟件部分構(gòu)成。首先由單片機(jī)驅(qū)動產(chǎn)生12mhz晶振,在單片機(jī)片內(nèi)有一個高增益的反相放
11、大器,反相放大器的輸入端為xtal1,輸出端為xtal2,由該放大器構(gòu)成的振蕩電路和時鐘電路一起構(gòu)成了單片機(jī)的時鐘方式。由單片機(jī)驅(qū)動后把結(jié)果輸出到led彩燈、小喇叭和12864液晶屏上。由編程可以實(shí)現(xiàn)音符頻率表、音名以及半音頻率表的確定和分配??梢詫⒙曇舴譃楦咭簦?khz4khz)、中音(500hz1.2khz)以及低音(50hz250hz)三等,故可以分配彩燈在不同的頻率段實(shí)現(xiàn)閃爍;同時當(dāng)在劃定頻率外時實(shí)現(xiàn)彩燈以1hz的頻率節(jié)奏閃爍;從而可以滿足設(shè)計(jì)的要求,達(dá)到設(shè)計(jì)的標(biāo)準(zhǔn)3。根據(jù)要求并綜合以上各方面因素,采用at89s52單片機(jī)作為主控制器,采用按鍵來控制音樂以及彩燈的開始、暫停和停止?;?/p>
12、單片機(jī)的音樂彩燈控制器的單片機(jī)最小系統(tǒng)如下圖3所示:圖3 基于單片機(jī)的彩燈控制器的設(shè)計(jì)的設(shè)計(jì)框圖3.2 單片機(jī)外圍電路當(dāng)使用單片機(jī)的內(nèi)部時鐘電路時,單片機(jī)的xatl1和xatl2用來接石英晶體和微調(diào)電容,晶體一般可以選擇1.2mhz12mhz,電容選擇30pf左右。我們選擇晶振為12mhz,電容30pf。在系統(tǒng)上電的瞬間,rst與電源電壓同電位,隨著電容的電壓逐漸上升,rst電位下降,于是在rst形成一個正脈沖。只要該脈沖足夠?qū)捑涂梢詫?shí)現(xiàn)復(fù)位,即=rc20ms。一般取r1k,c22uf。當(dāng)人按下按鈕s1時,使電容c5通過r1迅速放電,待s1彈起后,c再次充電,實(shí)現(xiàn)手動復(fù)位。r1一般取10k。我
13、們通過p2.0來啟動控制,程序中通過查詢p2.0的電平來檢測是否按鍵被按下,當(dāng)按下按鍵時p2.0為低電平,單片機(jī)通過查詢到低電平開始音樂輸出和彩燈,當(dāng)松開按鍵,p2.0即為高電平,在軟件中通過軟件延時來消除按鍵的機(jī)械抖動。圖4 單片機(jī)外圍電路3.3 時鐘電路(1) 在單片機(jī)片內(nèi)有一個高增益的反相放大器,反相放大器的輸入端為xtal1,輸出端為xtal2,由該放大器構(gòu)成的振蕩電路和時鐘電路一起構(gòu)成了單片機(jī)的時鐘方式。根據(jù)硬件電路的不同,單片機(jī)的時鐘連接方式可分為內(nèi)部時鐘方式和外部時鐘方式。我們采用內(nèi)部時鐘方式,如圖4所示:圖5 晶振電路(2) 在內(nèi)部方式時鐘電路中,必須在xtal1和xtal2引
14、腳兩端跨接石英晶體振蕩器和兩個微調(diào)電容構(gòu)成振蕩電路,c6和c7取31pf左右,晶振的頻率取值1.2mhz12mhz。根據(jù)實(shí)際情況,本設(shè)計(jì)采用12mhz作為系統(tǒng)的外部晶振,電容值取30pf4。3.4 復(fù)位電路我們在用按鍵控制時,為了避免單片機(jī)程序錯誤而導(dǎo)致的錯誤輸出,從而加入復(fù)位電路,對任意的情況都能夠通過復(fù)位按鍵使電路復(fù)位。單片機(jī)復(fù)位是使cpu和系統(tǒng)中的其他功能部件都處在一個確定的初始狀態(tài),并從這個狀態(tài)開始工作。無論是單片機(jī)剛開始接上電源時,還是斷電后或者發(fā)生故障后都要復(fù)位。所以,必須弄清楚單片機(jī)復(fù)位的條件、復(fù)位電路和復(fù)位后的狀態(tài)。單片機(jī)復(fù)位的條件是,必須使rst引腳(9腳)加上持續(xù)兩個機(jī)器周
15、期(即24個振蕩周期)的高電平。例如,若時鐘頻率為12mhz,每機(jī)器周期為1us,則只需2us以上時間的高電平。在rst引腳出現(xiàn)高電平后的第二個周期執(zhí)行復(fù)位。單片機(jī)常見的復(fù)位電路有上電復(fù)位電路和按鍵復(fù)位電路。為了方便系統(tǒng)的硬件初始化,我們采用按鍵復(fù)位電路。如圖6所示:圖6 復(fù)位電路3.5 按鍵電路由于要達(dá)到設(shè)計(jì)要求,同時也為了提高設(shè)計(jì)的課操作性;選用按鍵來控制輸入從而可以手動的對音樂彩燈進(jìn)行控制。按鍵s2與單片機(jī)p2.0端口連接是“開始”按鍵;按鍵s3與單片機(jī)p2.1端口連接是“暫?!卑存I;按鍵s3與單片機(jī)p2.2端口連接是“停止”按鍵。如圖7所示。圖7 按鍵電路3.6 isp下載口電路下載口
16、電路采用了isp下載口,能快速下載和更換單片機(jī)中的程序,從而滿足和達(dá)到實(shí)驗(yàn)的要求下載口的1腳與單片機(jī)的p1.5相連接,下載口的2腳與vcc相連接,下載口的3腳與單片機(jī)的相連接,下載口的5腳與單片機(jī)的相連接,下載口的7腳與單片機(jī)的p1.7相連接,下載口的9腳與單片機(jī)的p1.6相連接,下載口的4、6和8腳與gnd相連接。下載電路采用dip10插座;其插座的管腳如圖8示,dip10管腳功能如表1所示5。圖8 按鍵下載口電路表1 dip10管腳使用說明at89isp引腳cpu端說明at89isp引腳cpu端說明1sck時鐘信號5rst復(fù)位端2vcc電源9mosi輸出信號3miso輸入信號10gnd地線
17、4gnd地線3.7 led彩燈顯示電路led數(shù)碼顯示管有兩種,一種是共陽極數(shù)碼管,另一種是共陰極數(shù)碼管,其內(nèi)部是由八個陽極或陰極相連接的發(fā)光二極管組成,二者原理不同但功能相同。共陰極led數(shù)碼顯示塊的發(fā)光二極管陰極連接在一起,形成該模塊的公共端(通常稱為位選端),因此稱為共陰極led數(shù)碼顯示器,8個數(shù)碼管的另一端通常稱為段選端,當(dāng)顯示器的公共端接低電平,某個發(fā)光二極管的陽極接高電平時,該發(fā)光二極管被點(diǎn)亮;而共陽極led數(shù)碼顯示管則形成共陽極led數(shù)碼顯示塊的公共端,該公共端必須接高電平,同理在共陽極led數(shù)碼顯示塊中如某個發(fā)光二極管的陰極為低電平時,該發(fā)光二極管被點(diǎn)亮7。at89s52是采用1
18、2mhz晶振獲得穩(wěn)定的時鐘頻率。采用12mhz高精度的晶振,以獲得較穩(wěn)定的時鐘頻率,從而使輸出的頻率更為穩(wěn)定。顯示電路采用簡單實(shí)用的8位共陽led數(shù)碼管。單片機(jī)系統(tǒng)顯示電路如圖9所示。圖9 led顯示電路3.8 12864液晶電路3.8.1 12864液晶簡介12864是128*64點(diǎn)陣液晶模塊的點(diǎn)陣數(shù)簡稱。該點(diǎn)陣的屏顯成本相對較低,適用于各類儀器。液晶模組的驅(qū)動應(yīng)遵照規(guī)定的額定指標(biāo),避免故障及永久損壞。液晶顯示屏焊接溫度:280c+10c 焊接時間3-4秒6。液晶的電氣特性如表2所示。表2 12864液晶的電氣特性 項(xiàng)目符號最小典型最大單位電源電壓vdd-vss4.755.05.25v液晶驅(qū)
19、動電壓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ù)位端,與單片機(jī)的27腳連接,通過單片機(jī)程序來控制液晶顯示的復(fù)位;液晶20腳接地線;714腳與排阻的29腳連接。如表3所示。 表3 12864液晶顯示屏的管腳號及作用管腳號管腳名稱電平管腳功能描述1vss+5v電源地2vcc3.0+5v電源正3v0-對比度(亮度)調(diào)整4rs(cs)h/lrs=“h”,
20、表示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ù)位端,低電平有效續(xù)表 12864液晶顯示屏的管腳號及作用管腳號管腳名稱電平管腳功能描述18vout-lcd驅(qū)動電壓輸出端19
21、avdd背光源正端(+5v)20kvss背光源負(fù)端在這個設(shè)計(jì)中由于采用的是并行,故直接將psb連接高電平;vss與led_k端接地。液晶的數(shù)據(jù)位db0db7分別接在排阻u2的a0a7上;復(fù)位端17腳和單片機(jī)的復(fù)位端連接。12864液晶屏顯示部分電圖如圖10所示。圖10 12864液晶屏顯示電路3.9 音樂播放電路為了提高聲音電路的功率并保持穩(wěn)定在喇叭電路中增加了一個8550三極管,并增加了一個阻值比較大的電阻來增加電路的電流。音樂播放電路如圖11所示。圖11 喇叭電路3.10 直流穩(wěn)壓電源電路電源電路采用普通可調(diào)電源供電,電源由外接端口連接5v電壓參考源,可滿足本系統(tǒng)單片機(jī)、彩燈和小喇叭的供電
22、要求。其中采用兩個電容并聯(lián),達(dá)到濾波的作用,以便得到穩(wěn)定的電流。如下圖12。圖12 穩(wěn)壓電源電路4 系統(tǒng)軟件設(shè)計(jì)硬件電路一旦確定,大體的功能框架也形成了。這時我們需要在硬件平臺上編寫軟件程序,完成各部分硬件的控制和協(xié)調(diào)。系統(tǒng)功能是由軟硬件共同實(shí)現(xiàn)的,由于軟件的可伸縮性,最終實(shí)現(xiàn)的系統(tǒng)功能可強(qiáng)可弱,差別可能很大。因此,軟件是本系統(tǒng)的靈魂。音樂彩燈控制器的軟件設(shè)計(jì)主要是為了實(shí)現(xiàn)彩燈與音樂同步控制?;趩纹瑱C(jī)的音樂彩燈控制器的設(shè)計(jì)的軟件設(shè)計(jì)主要由主程序、復(fù)位程序、音頻及半音程序、按鍵中斷程序及顯示子程序組成。下面分別對主程序、音頻及半音程序、按鍵中斷程序和顯示程序逐一作介紹7。4.1 單片機(jī)系統(tǒng)設(shè)計(jì)
23、主程序流程圖本設(shè)計(jì)選用at89s52的單片機(jī)來控制歌曲播放和歌詞顯示。采用直流電源為其提供基準(zhǔn)電壓+5v,采用12864lcd顯示,小喇叭播放音樂8。通過軟件程序與按鍵輸入來控制輸入與輸出。當(dāng)電源接通時,程序開始初始化。當(dāng)開始鍵按下時單片機(jī)的21腳輸入低電平,程序啟動;音樂開始播放彩燈交替移動點(diǎn)亮;隨即進(jìn)入通過頻率變化范圍中斷若在整體頻率范圍內(nèi)則繼續(xù)程序;若不在整體頻率范圍內(nèi)則所有彩燈1hz閃爍。當(dāng)程序進(jìn)入高頻判定時,若在高頻段內(nèi)則使高頻段燈亮,液晶顯示當(dāng)前頻率的大概值;若不在高頻段范圍內(nèi)則進(jìn)入中頻判定,判定結(jié)果同高頻;當(dāng)程序進(jìn)入低頻判定時,若滿足頻率判定要求則低頻段燈亮,液晶顯示當(dāng)前頻率的大
24、概值;若不滿足判定要求則程序結(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#define io_lcd12864_dataport p0;#define set_data io_lcd12864
25、_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 = p23 ;sbit io_lcd12864_rw = p24 ;sbit io_lcd12864_en = p
26、25 ;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; /*定時器延時計(jì)數(shù) */uchar timer1cntflg; /*定時器定時完成標(biāo)志 */uchar g_pl=0, g_pai=0;uchar gp_freq16=當(dāng)前頻率值: ;u
27、int 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 halfnotefreq= 554, 622, 740, 831, 933, 1109,1245,1480,1161,18
28、65, 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( unsigned char bydata );void v_delayms_f( unsigned int ndelay )
29、;void v_lcd12864init_f( void );void v_lcd12864putstring_f( unsigned char x, unsigned char y, unsigned char *pdata );4.2 音樂程序主要利用單片機(jī)的頻率發(fā)生器產(chǎn)生方波,來產(chǎn)生不同頻率的音樂。10,具體程序如下。void main(void) uint i; tmod=0x11; et1=1; et0=1; ea=1; v_lcd12864init_f() ;while(1)if(p1.0=0)if(i=1)i=0; /啟動關(guān)閉按鍵if(i=0)i=1;if(i=1)/play(1
30、_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-b1b13-21-1-5-55432-a-b1-12123-3- 1-1_1_1235-4-32-b3-2a-a- a
31、-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_c0c53_6_5_3_2.1_30_5_c56_c_6_5_33_1_6-60c._c=5_5_2._3=5_5_6
32、.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(); /*音符頻率表*/uint code notefreq= 523, 587, 659, 698, 784, 880, 988
33、,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,3322,3729;/*音名*/uchar code halfnotename=c,d,f,g,a, 1,2,4,5
34、,6, c,d,f,g,a,0;4.3 定時器子程序設(shè)計(jì)序4.3.1 定時器工作原理當(dāng)定時器設(shè)置為定時方式時,計(jì)數(shù)器對內(nèi)部機(jī)器周期計(jì)數(shù),每過一個機(jī)器周期,計(jì)數(shù)器加1,直至計(jì)滿溢出。定時器的定時時間與系統(tǒng)的振蕩頻率緊密相關(guān),實(shí)驗(yàn)單片機(jī)系統(tǒng)采用12mhz晶振,計(jì)數(shù)周期為1s,適當(dāng)選擇定時器的初值可獲取各種定時時間。4.3.2 定時器特殊功能寄存器定時器的初始化是通過定時器的方式寄存器tmod和控制寄存器tcon完成的。(1) 定時器的方式寄存器tmodtmod為定時器0、定時器1的工作方式寄存器,其格式如表4所示。表4 定時器工作方式寄存器gatec/t m1 m0 gate c/t m1 m0
35、tmod的低四位為定時器0的方式字段,高四位為定時器1的方式字段,它們的含義完全相同。各位的意義如下。 m1m0:工作方式選擇位,設(shè)最大計(jì)數(shù)值為m。具體功能如表5所示。表5 m1m0工作功能描述m1m0工作方式功能描述最大計(jì)數(shù)值00方式013位定時器/計(jì)數(shù)器m=213=819201方式116位定時器/計(jì)數(shù)器m=216=6553610方式2常數(shù)自動重裝的8位定時器/計(jì)數(shù)器m=28=25611方式3僅適用于t0,分為兩個8位定時器/計(jì)數(shù)器。定時器0分成兩個8位計(jì)數(shù)器,所以兩個定時器的m值均為256。 c/t:定時器/計(jì)數(shù)器的選擇位。c/t =0工作于定時方式,c/t =1 工作于計(jì)數(shù)方式。 gat
36、e:門控位。當(dāng)gate=0時,只要有tri=1,定時器/計(jì)數(shù)器就開始工作,稱為軟啟動。當(dāng)gate=1時,只有inti引腳和tri引腳同時為1時,定時器/計(jì)數(shù)器才開始工作,主要用于測量int引腳上高電平脈沖的寬度,稱為硬啟動。(2) 定時器控制寄存器tcontcon的作用是控制定時器/計(jì)數(shù)器的啟動、停止,標(biāo)志定時器的溢出和中斷情況,其格式如表6所示。表6 定時器控制寄存器tr0tr1tf0tf1tr0tr1tf0tf1 tf1(tf0):定時器/計(jì)數(shù)器t1(t0)的溢出標(biāo)志。當(dāng)t1(t0)被允許計(jì)數(shù)后,t1(t0)從初始值開始加1計(jì)數(shù),最高位產(chǎn)生溢出時,該位由內(nèi)部硬件置位,并向cpu請求申請中斷
37、。當(dāng)cpu響應(yīng),由硬件清零。 tr1(tr0):定時器/計(jì)數(shù)器t1(t0)的運(yùn)行控制位。由軟件置1或清零來啟動或關(guān)閉定時器/計(jì)數(shù)器。本程序通過單片機(jī)的t2產(chǎn)生中斷,來調(diào)用歌詞顯示程序和彩燈程序,達(dá)到一種同步的效果。按下復(fù)位鍵后,將從頭開始。軟件分為兩部分,主程序和中斷服務(wù)程序,主程序完成初始化工作、進(jìn)入定時中斷程序。定時中斷服務(wù)子程序完成對彩燈和音樂的控制,外部中斷服務(wù)子程序主要完成時間值的讀取、程序的運(yùn)算、結(jié)果的輸出等工作9。定時中斷與外部中斷流程圖分別如圖14、15所示。定時中斷入口ny顯示同步定時器初始化返回按鍵輸入音樂同步圖14 定時中斷服務(wù)子程序流圖關(guān)外部中斷外部中斷入口讀取輸入程序
38、運(yùn)算結(jié)果輸出開外部中斷返回圖15 外部中斷服務(wù)子程序流圖4.3.3 定時器子程序首先我們定義寄存器tmod=0x01,選擇定時器0,定時方式,方式1。本設(shè)計(jì)采用的12mhz的晶振,所以計(jì)數(shù)周期為1s。方式1最大計(jì)數(shù)時間為65536s,這里我們選擇定時50ms。所以初值就可以計(jì)算:初值 x=65536-50000=15536=3cb0h (公式1)th0=3chtl0=b0h (公式2)由于本設(shè)計(jì)需要使彩燈1hz的頻率閃爍,即需要定時時間為500ms,所以,沒完成一次定時,定義一個count自加一次,當(dāng)count計(jì)數(shù)到10時,使所以彩燈取反。定義好初值以后則打開總開關(guān)ea=1和允許中斷開關(guān)et0
39、=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;i
40、time;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個彩燈全部點(diǎn)亮,當(dāng)為半拍時2個彩燈點(diǎn)亮,當(dāng)為1/4拍時1個彩燈點(diǎn)亮。低頻段時和中頻段時亮燈個數(shù)與原理同高頻。沒有在設(shè)定頻率范圍內(nèi)時所有彩燈以1hz的頻率閃爍。彩燈子程序如下。/函數(shù)名稱:led_dis/函數(shù)說明:用于顯示音樂的led燈 主要是根據(jù)
41、頻率和節(jié)拍來顯示不同的效果/輸入?yún)?shù):uint pl,uchar pai/輸出參數(shù):無void led_dis(uint pl,uchar pai)uchar i;if(pl500&pl2000&pl 0 ; ndelay- ) for( i = 125 ; i 0 ; i- ) ; void v_lcd12864init_f( void ) /初始化 v_lcd12864sendcmd_f( 0x30 ) ; /基本指令集 v_delayms_f( 50 ) ; v_lcd12864sendcmd_f( 0x01 ) ; /清屏 v_delayms_f( 50 ) ; v_lcd12864s
42、endcmd_f( 0x06 ) ; /光標(biāo)右移 v_delayms_f( 50 ) ; v_lcd12864sendcmd_f( 0x0c ) ; /開顯示void v_lcd12864setaddress_f( unsigned char x, y ) /地址轉(zhuǎn)換 unsigned char byaddress ; switch( y ) case 0 : byaddress = 0x80 + x ; break; case 1 : byaddress = 0x90 + x ; break ; case 2 : byaddress = 0x88 + x ; break ; case 3 :
43、 byaddress = 0x98 + x ; break ; default : break ; v_lcd12864sendcmd_f( byaddress ) ;void v_lcd12864putstring_f( unsigned char x, unsigned char y, unsigned char *pdata ) v_lcd12864setaddress_f( x, y ) ; while( *pdata != 0 ) v_lcd12864senddata_f( *pdata+ ) ; 5 結(jié)束語在即將畢業(yè)之際,做一個系統(tǒng)的設(shè)計(jì)可以對自己三年的所學(xué)做一個總結(jié),也是給自己以
44、后工作增添一份信心。以上基于單片機(jī)的音樂彩燈控制器的設(shè)計(jì)包含了:電路分析、數(shù)字、模擬電路和單片機(jī)、傳感器、c語言等方面的知識,另外還有選材購買、動手制作等方面。所以具有很高的參考價(jià)值,同時,該設(shè)計(jì)的方案也是來源于生活中廣泛的應(yīng)用領(lǐng)域,有很強(qiáng)的應(yīng)用價(jià)值。單片機(jī)的應(yīng)用改變了傳統(tǒng)的設(shè)計(jì)思路,以前構(gòu)建一個系統(tǒng)需用用很多的數(shù)字模擬器件或者電路單元來構(gòu)建,系統(tǒng)可靠性差、缺乏靈活性、維護(hù)不便、成本高、無法實(shí)現(xiàn)智能化等諸多缺點(diǎn)。單片機(jī)的應(yīng)用解決了很多問題,現(xiàn)在只要寫一個軟件,通過單片機(jī)和一些簡單的外接電路就可以實(shí)現(xiàn)具有很多功能的、而且具有智能化的系統(tǒng),同時可方便升級維護(hù)。所以單片機(jī)的應(yīng)用廣泛,在日常生活和生產(chǎn)中占用重要位置。所以我們設(shè)計(jì)選擇了單片機(jī)的系統(tǒng)其說明我們深深的意識到它的重要作用。設(shè)計(jì)中也“小試牛刀”的使用了我們傳感器課程所學(xué)的超聲波的知識;用到
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 出口寵物食品合同范本
- 倉庫租賃 配送合同范本
- 主力商家合同范本
- 2025年超大型特厚板軋機(jī)項(xiàng)目建議書
- 第六課 友誼之樹常青 教學(xué)設(shè)計(jì)-2024-2025學(xué)年統(tǒng)編版道德與法治七年級上冊
- 包裝買賣合同范本
- 北京合伙合同范本咨詢
- 《認(rèn)識面積》(教學(xué)設(shè)計(jì))-2023-2024學(xué)年三年級下冊數(shù)學(xué)人教版
- 信用擔(dān)保借款合同范本你
- 制造珠寶生產(chǎn)訂單合同范本
- 第二編 債權(quán)總論
- 試用期考核合格證明表
- 常見八種疾病
- 膠粘劑基礎(chǔ)知識及產(chǎn)品詳解(課堂PPT)
- 完整版三措兩案范文
- 鐵路總公司近期處理的七起突出質(zhì)量問題的通報(bào)
- 常用洪水預(yù)報(bào)模型介紹
- 援外項(xiàng)目鋼結(jié)構(gòu)運(yùn)輸包裝作業(yè)指導(dǎo)書(共13頁)
- 髖關(guān)節(jié)置換術(shù)男性患者留置尿管最佳時機(jī)探析和對策
- [爆笑小品校園劇本7人]爆笑小品校園劇本
- 同步帶輪設(shè)計(jì)
評論
0/150
提交評論