基于AT89C51單片機(jī)的電子音樂(lè)盒課程設(shè)計(jì)說(shuō)明書(shū)_第1頁(yè)
基于AT89C51單片機(jī)的電子音樂(lè)盒課程設(shè)計(jì)說(shuō)明書(shū)_第2頁(yè)
基于AT89C51單片機(jī)的電子音樂(lè)盒課程設(shè)計(jì)說(shuō)明書(shū)_第3頁(yè)
基于AT89C51單片機(jī)的電子音樂(lè)盒課程設(shè)計(jì)說(shuō)明書(shū)_第4頁(yè)
基于AT89C51單片機(jī)的電子音樂(lè)盒課程設(shè)計(jì)說(shuō)明書(shū)_第5頁(yè)
已閱讀5頁(yè),還剩24頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 . . . 課程設(shè)計(jì)任務(wù)書(shū)工學(xué)院 機(jī)械 系機(jī)械設(shè)計(jì)制造與其自動(dòng)化專業(yè)11 級(jí)機(jī)電三 班題目: 基于AT89C51單片機(jī)的電子音樂(lè)盒設(shè)計(jì) 課程: 單片機(jī)應(yīng)用技術(shù)課程設(shè)計(jì) 課程設(shè)計(jì)時(shí)間2014年 10月27日至2014年11月 10 日共2周課程設(shè)計(jì)工作容與基本要求(設(shè)計(jì)要求、設(shè)計(jì)任務(wù)、工作計(jì)劃、所需相關(guān)資料)(紙不夠可加頁(yè))1設(shè)計(jì)要求利用AT89C51單片機(jī)作為微控制器,用16盞以上的LED小燈,實(shí)現(xiàn)至少4種彩燈燈光效果(不含全部點(diǎn)亮,全部熄滅);可以用輸入按鈕在幾種燈光效果間切換;可以通過(guò)按鈕暫停彩燈效果,使小燈全亮,再次按下一樣按鈕后繼續(xù)之前的效果。創(chuàng)新設(shè)計(jì): 2. 設(shè)計(jì)任務(wù)與要求2.1系

2、統(tǒng)硬件電路設(shè)計(jì)根據(jù)該系統(tǒng)設(shè)計(jì)的功能要求選擇所用元器件,設(shè)計(jì)硬件電路。要求用Proteus繪制整個(gè)系統(tǒng)電路原理圖。2.2軟件設(shè)計(jì)根據(jù)該系統(tǒng)要求的功能進(jìn)行軟件設(shè)計(jì),繪制整個(gè)系統(tǒng)的軟件流程圖;根據(jù)流程圖編寫(xiě)程序并匯編調(diào)試通過(guò);列出軟件清單,軟件清單要求逐條加以注釋。2.3 Proteus仿真用Proteus對(duì)系統(tǒng)軟硬件進(jìn)行仿真調(diào)試并通過(guò)。2.4 編寫(xiě)設(shè)計(jì)說(shuō)明書(shū)容包括任務(wù)書(shū)、設(shè)計(jì)方案分析、硬件部分設(shè)計(jì)、軟件部分設(shè)計(jì)、調(diào)試結(jié)果整理分析、設(shè)計(jì)調(diào)試的心得體會(huì)等,字?jǐn)?shù)不少于5000字;硬件部分設(shè)計(jì)要繪制整個(gè)系統(tǒng)電路原理圖,對(duì)各部分電路設(shè)計(jì)原理做出說(shuō)明;軟件設(shè)計(jì)部分要(用visio2003畫(huà)圖軟件)繪制整個(gè)系統(tǒng)

3、與各部分的軟件流程圖,列出程序清單,逐條加以注釋,并注明各程序功能塊的功能。3工作計(jì)劃 序號(hào)設(shè)計(jì)容所用時(shí)間1布置任務(wù)與調(diào)研天3制作與調(diào)試天4撰寫(xiě)設(shè)計(jì)報(bào)告書(shū)2天合 計(jì)14天4主要參考資料單片機(jī)課程設(shè)計(jì)指導(dǎo)書(shū) 皮大能 理工大學(xué)2012.78051單片機(jī)實(shí)踐與應(yīng)用 吳金戎 清華大學(xué)2003.8單片機(jī)技術(shù)基礎(chǔ)教程與實(shí)踐 夏路易 電子工業(yè)2008.1單片機(jī)原理與應(yīng)用毅剛 高等教育 2012.11基于Proteus的單片機(jī)系統(tǒng)設(shè)計(jì)與仿真實(shí)例 輝平 機(jī)械工業(yè) 2007.7 指導(dǎo)老師簽字: 日 期:摘要為了實(shí)現(xiàn)單片機(jī)控制音樂(lè)播放,在本次課程設(shè)計(jì)中嘗試基于單片機(jī)AT89C51音樂(lè)盒的設(shè)計(jì)對(duì)這一思路進(jìn)行驗(yàn)證。本設(shè)

4、計(jì)采用了蜂鳴器發(fā)聲來(lái)實(shí)現(xiàn)歌曲的播放,能夠保持基本的音調(diào)不變,流暢播放歌曲。主要設(shè)計(jì)模塊包括數(shù)碼管顯示部分,功能鍵盤部分,蜂鳴器發(fā)聲部分,彩燈部分。數(shù)碼管采用共陽(yáng)極數(shù)碼管,通過(guò)單片機(jī)P1接口控制,實(shí)現(xiàn)歌曲序號(hào)的顯示;功能鍵盤采用按鍵開(kāi)關(guān),通過(guò)P3接口控制,實(shí)現(xiàn)歌曲播放順序的調(diào)換和暫停功能;蜂鳴器由單片機(jī)的P2接口控制,實(shí)現(xiàn)歌曲播放;彩燈使用普通二極管,能實(shí)現(xiàn)單色常亮和閃爍的效果。主要工作過(guò)程是通過(guò)功能鍵實(shí)現(xiàn)上、下曲目的播放與暫停功能,同時(shí)有數(shù)碼管顯示當(dāng)前播放曲目的序號(hào),并會(huì)有不同的彩燈閃爍效果。本次設(shè)計(jì)要使用單片機(jī)與KeilC51編程軟件編程和Proteus單片機(jī)仿真軟件,電工學(xué)等方面的有關(guān)知識(shí)

5、。用KeilC51編程軟件編程,用PROTEUS單片機(jī)仿真軟件仿真。最后制作實(shí)物,將程序下載到單片機(jī)中,利用I/O口產(chǎn)生一定頻率的方波,驅(qū)動(dòng)蜂鳴器,發(fā)出不同的音調(diào),從而演奏樂(lè)曲。關(guān)鍵字:AT89C51單片機(jī),音樂(lè)盒,方波,音調(diào)AbstractIn order to achieve the single chip microcomputer control music playback, try in the curriculum design based on single chip microcomputer AT89C51 music box design on this train of

6、 thought for validation.This design USES the buzzer sound to realize the songs played, can maintain the basic tone is changeless, smooth play songs.Main design module includes digital tube display, keyboard function part, buzzer sound, the lights.Digital tube using a total of anode digital tube, con

7、trolled by single chip microcomputer P1 interface, realize song number display;Through P3 interface, keyboard switch with buttons, control, realize the order of the songs and pause switch function;Buzzer is controlled by a single-chip microcomputer P2 interface, realize the songs;Lights use normal d

8、iode, can realize monochrome normally on and flashing effect.Main working process is through the function keys achieve the function of upper and lower the music play and pause, at the same time have digital tube display the current track number, and have different lights flashing effect.The design t

9、o use single chip microcomputer and KeilC51 and Proteus single-chip microcomputer simulation software, programming software programming on the knowledge of electrotechnics, etc.Use KeilC51 programming software programming, use PROTEUS single-chip microcomputer simulation software simulation.Finally

10、make physical, download the program to MCU, using I/O mouth produce certain frequency square wave, drive buzzer, a different tone, so as to play music.Keywords:AT89C51 Microcontroller,musical box,square wave,tone29 / 291 設(shè)計(jì)方案分析1.1設(shè)計(jì)功能要求1.利用I/O口處產(chǎn)生一定頻率的方波,驅(qū)動(dòng)蜂鳴器,產(chǎn)生不同的音調(diào)從而演奏樂(lè)曲,達(dá)到預(yù)期目標(biāo)。2.采用七段數(shù)碼管顯示當(dāng)前播放歌曲的

11、序號(hào)數(shù)。3.通過(guò)功能鍵實(shí)現(xiàn)上、下與暫停曲目播放的功能。1.2總體設(shè)計(jì)原理通過(guò)單片機(jī)的定時(shí)器產(chǎn)生一定長(zhǎng)度的方波,方波脈沖驅(qū)動(dòng)蜂鳴器發(fā)聲。要產(chǎn)生音頻脈沖,只需算出某一音頻的周期(1/音頻),然后取半周期的時(shí)間定時(shí)。利用定時(shí)器計(jì)時(shí)這個(gè)半周期時(shí)間,每當(dāng)計(jì)時(shí)到后就將輸出脈沖的I/O反相,然后重復(fù)計(jì)時(shí)此半周期時(shí)間再對(duì)I/O口反相,就可在I/O腳上得到此頻率的脈沖。如中音D0,頻率為523HZ,其周期T=1/523=1912微秒,因此只要令計(jì)數(shù)器定時(shí)1912/2=956,在每計(jì)數(shù)956次時(shí)將I/O口反相,就可得到中音D0(523HZ)。當(dāng)鍵盤有鍵按下時(shí),判斷鍵值,啟動(dòng)計(jì)數(shù)器T0,產(chǎn)生一定頻率的脈沖,驅(qū)動(dòng)蜂鳴

12、器,放出樂(lè)曲。同時(shí)啟動(dòng)定時(shí)器T1,在LED顯示歌曲號(hào),也可使彩燈長(zhǎng)亮和閃爍。數(shù)碼管采用共陽(yáng)極數(shù)碼管,通過(guò)單片機(jī)P1口控制,實(shí)現(xiàn)歌曲序號(hào)的顯示;功能鍵盤采用按鍵開(kāi)關(guān),通過(guò)單片機(jī)P3口控制,實(shí)現(xiàn)歌曲播放順序的調(diào)換和暫停播放功能;蜂鳴器由單片機(jī)的P2口控制,實(shí)現(xiàn)歌曲播放;彩燈是由普通發(fā)光二極管代替,通過(guò)鍵盤能實(shí)現(xiàn)單色長(zhǎng)亮和閃爍效果。通過(guò)功能鍵可以實(shí)現(xiàn)播放上一曲、下一曲、暫停,同時(shí)可以通過(guò)數(shù)碼管顯示當(dāng)前播放的曲目序號(hào),蜂鳴器播放出音樂(lè)。當(dāng)播放出最后一曲時(shí)伴有彩燈閃爍。1.3總體設(shè)計(jì)框圖單片機(jī)接5V電源供電,晶振電路產(chǎn)生單片機(jī)所需的時(shí)鐘周期,通過(guò)功能鍵實(shí)現(xiàn)外部中斷,控制音樂(lè)盒的上一曲、下一曲和暫停功能的

13、實(shí)現(xiàn),再由I/O接口輸出控制蜂鳴器發(fā)聲,LED顯示,彩燈閃爍或暫停。另外,復(fù)位電路的功能在于使音樂(lè)盒的工作恢復(fù)到初始狀態(tài),在程序出錯(cuò)時(shí),重新啟動(dòng)單片機(jī)工作。電源晶振部分復(fù)位電路AT89S51蜂鳴器LED顯示功能鍵圖1.1整體設(shè)計(jì)框圖通過(guò)編程軟件設(shè)定好程序后,由單片機(jī)AT89C51的定時(shí)器每秒鐘通過(guò)P1.0-P1.7接口控制LED數(shù)碼顯示,復(fù)位信號(hào)由按鈕控制,每按下一次系統(tǒng)恢復(fù)一次原設(shè)定狀態(tài)。電源、晶振部分、復(fù)位電路、單片機(jī)、功能鍵、LED與蜂鳴器部分將在后面的容中做詳盡說(shuō)明,在此不再贅述。2. 系統(tǒng)硬件設(shè)計(jì)2.1電源電路設(shè)計(jì)采用經(jīng)市電變壓,穩(wěn)壓的穩(wěn)壓電路如下圖所示單片機(jī)采用的是5V(+_0.2

14、V)的電源,對(duì)穩(wěn)壓電路的要求較高,因此可以用LM7805來(lái)實(shí)現(xiàn)此功能。首先用交流變壓器將220V的交流電變?yōu)榇笥?V的交流電,例如7.5V或10.5V,然后使用橋式電路進(jìn)行整流,電容進(jìn)行整流濾波,將交流電處理為直流。然后使用7805進(jìn)行5V恒壓輸出,供給單片機(jī)電路使用。2.2單片機(jī)最小系統(tǒng)單片機(jī)的最小系統(tǒng)以AT89C51為核心,外加時(shí)鐘電路和復(fù)位電路,電路結(jié)構(gòu)簡(jiǎn)單,抗干擾能力強(qiáng),成本相對(duì)較低,比較符合本次課題的要求,89C51系列單片機(jī)是在MCS-51的基礎(chǔ)上發(fā)展起來(lái)的,是當(dāng)前8位單片機(jī)的典型代表,采用CMOS工藝,即互補(bǔ)金屬氧化物的CMOS工藝,COOS和MOS相結(jié)合的技術(shù),具有MOS的高速

15、度和高密度的特點(diǎn),還具有CMOS低功耗的特點(diǎn)。單片機(jī)的工作環(huán)境需要有一個(gè)時(shí)間基準(zhǔn)來(lái)統(tǒng)一控制各部分的工作狀態(tài)此電路為時(shí)鐘電路,時(shí)鐘電路分為外部時(shí)鐘電路和部時(shí)鐘電路,如下圖所示,從圖示可以看出采用外部電路比較復(fù)雜,因此本次課題的時(shí)鐘電路選擇部時(shí)鐘電路,時(shí)鐘電路在單片機(jī)外部采用XTAL1和XTAL2這兩個(gè)引腳跨接晶體振蕩器和微調(diào)電容,構(gòu)成穩(wěn)定的自激振蕩器。本系統(tǒng)采用的是6MHz的晶振,一個(gè)機(jī)器周期為22us,C1,C2分別為22pF。復(fù)位電路的基本功能是:系統(tǒng)的上電時(shí)提供復(fù)位信號(hào),待系統(tǒng)電源穩(wěn)定后撤銷復(fù)位指令。為可靠起見(jiàn),在電源穩(wěn)定后需要經(jīng)歷一段時(shí)間后撤消復(fù)位信號(hào),防止電源開(kāi)關(guān)或電源插頭插合過(guò)程中引

16、起的抖動(dòng)而影響復(fù)位。復(fù)位電路分為上電自動(dòng)復(fù)位和按鍵復(fù)位,電路圖如下圖所示,。其中RST是復(fù)位信號(hào)的輸入端,復(fù)位信號(hào)是高電平段。本次采用手動(dòng)復(fù)位設(shè)計(jì),復(fù)位通過(guò)電容C3,C4和電阻R1,R2來(lái)實(shí)現(xiàn),按鍵復(fù)位通過(guò)復(fù)位鍵來(lái)實(shí)現(xiàn)。單片機(jī)的最小系統(tǒng)電路設(shè)計(jì)如下圖設(shè)計(jì)所示,以AT89C51為核心進(jìn)行設(shè)計(jì)。 單片機(jī)最小系統(tǒng)2.3數(shù)碼管顯示部分歌曲序號(hào)顯示部分采用數(shù)碼管來(lái)實(shí)現(xiàn),LED顯示器件是通過(guò)發(fā)光二極管來(lái)顯示字段的器件。在單片機(jī)的控制系統(tǒng)中最常用的是7段LED數(shù)碼管,它的顯示塊中有8個(gè)發(fā)光二極管,7個(gè)二極管組成字符“8”,一個(gè)二極管組成小數(shù)點(diǎn)。LED數(shù)碼管的管腳配置如圖a示。LED顯示塊如圖b所示。它們經(jīng)電

17、阻和單片機(jī)的控制端連接在一起,只要改變控制端口的電平就能控制LED的點(diǎn)亮或熄滅。LED共有陽(yáng)極和陰極兩類,如圖c所示共陰極LED數(shù)碼管的發(fā)光二極管的陰極共地。當(dāng)某個(gè)發(fā)光二極管的陽(yáng)極電壓為高電平時(shí),二極管發(fā)光;而共陽(yáng)極LED數(shù)碼管是發(fā)光二極管的陽(yáng)極共接,當(dāng)某個(gè)二極管的陰極電壓為低電平時(shí),二極管發(fā)光。 a b (1) b(2) c 本次課題所選的二極管為共陽(yáng)極二極管,數(shù)碼管每段的電流是10A。所以公共段接高電平,Proteus圖如下所示 數(shù)碼管引腳圖2.4鍵盤部分鍵盤是由一組按壓式或觸摸式開(kāi)關(guān)構(gòu)成的陣列,是一種常用的輸入設(shè)備。鍵盤可分為編碼式鍵盤和非編碼式鍵盤兩種。1.編碼鍵盤通過(guò)硬件電路產(chǎn)生被按

18、按鍵的鍵碼,這種鍵盤所需程序簡(jiǎn)單,但硬件電路復(fù)雜、價(jià)格昂貴通常不被單片機(jī)系統(tǒng)采用。2.非編碼鍵盤常用一些按鍵排列成行列矩陣,其硬件邏輯與按鍵編碼不存在嚴(yán)格的對(duì)應(yīng)關(guān)系,而要由所用的程序來(lái)決定。非編碼鍵盤的硬件接口簡(jiǎn)單,但是要占用較多的CPU時(shí)間,通常采用可編程鍵盤管理芯片來(lái)克服這個(gè)缺點(diǎn)。本設(shè)計(jì)使用兩種按鍵,一種是按鍵式非編碼鍵盤和輕觸式非編碼開(kāi)關(guān)。2.4.1按鍵開(kāi)關(guān)在接線時(shí)由于有六個(gè)引腳,連接時(shí)需要用萬(wàn)用表進(jìn)行測(cè)量,然后接通兩個(gè)引腳。2.4.2輕觸開(kāi)關(guān)一種電子開(kāi)關(guān),使用時(shí)輕輕點(diǎn)按開(kāi)關(guān)按鈕就可使開(kāi)關(guān)接通,當(dāng)松開(kāi)手時(shí)開(kāi)關(guān)既斷開(kāi),其部結(jié)構(gòu)是靠金屬?gòu)椘芰梽?dòng)來(lái)實(shí)現(xiàn)通斷的。但微動(dòng)開(kāi)關(guān)也有它不足的地方,頻

19、繁的按動(dòng)會(huì)使金屬?gòu)椘谑椥远?,連接時(shí)接通對(duì)角線即可。2.5蜂鳴器部分一般所指的蜂鳴器是以壓電瓷為主要元件的。壓電瓷是一類有將壓力與電流相互轉(zhuǎn)換能力的特殊瓷。這種能力緣于其特殊的晶體結(jié)構(gòu)。當(dāng)壓電瓷在一定方向上受到一個(gè)壓力使其晶體結(jié)構(gòu)發(fā)生形變時(shí),它就會(huì)在部產(chǎn)生一個(gè)電流,并且電流的變化與壓力的變化密切相關(guān)。反之亦然。所以利用這一特性,在壓電瓷上通過(guò)一定頻率的電流,就會(huì)引起壓電瓷微小形變,這一形變帶動(dòng)空氣發(fā)生振動(dòng),如果頻率適當(dāng),就可以被人耳所聽(tīng)見(jiàn),也就是產(chǎn)生了蜂鳴聲。2.5.1蜂鳴器簡(jiǎn)介1蜂鳴器的作用:蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,采用直流電壓供電,廣泛應(yīng)用于計(jì)算機(jī)、打印機(jī)、復(fù)印機(jī)、報(bào)

20、警器、電子玩具、汽車電子設(shè)備、機(jī)、定時(shí)器等電子產(chǎn)品中作發(fā)聲器件。2蜂鳴器的分類:蜂鳴器主要分為壓電式蜂鳴器和電磁式蜂鳴器兩種類型。3蜂鳴器的電路圖形符號(hào):蜂鳴器在電路中用字母“H”或“HA”(舊標(biāo)準(zhǔn)用“FM”、“LB”、“JD”等)表示。實(shí)物如下圖所示,蜂鳴器實(shí)物2.5.2蜂鳴器原理1. 壓電式蜂鳴器 壓電式蜂鳴器主要由多諧振蕩器、壓電蜂鳴片、阻抗匹配器與共鳴箱和外殼等部分組成。有的壓電式蜂鳴器外部還裝有發(fā)光二極管。多諧振蕩器由晶體管或集成電路構(gòu)成。當(dāng)接通電源后(1.5-15V直流工作電壓),多諧振蕩器起振,輸出1.5-2.5kHz的音頻信號(hào),阻抗匹配器推動(dòng)壓電蜂鳴片發(fā)聲。壓電蜂鳴器片由鋯鈦酸

21、鉛或鈮鎂酸鉛壓電瓷材料制成。在瓷片的兩面鍍上銀電極,經(jīng)極化和老化處理后,再與黃銅片或不銹鋼粘連在一起。2.0電磁式蜂鳴器 電磁式蜂鳴器由振蕩器、電磁線圈、磁鐵、振動(dòng)膜片與外殼等組成。接通電源后,振蕩器產(chǎn)生的音頻信號(hào)電流通過(guò)電磁線圈,使電磁線圈產(chǎn)生磁場(chǎng)。振動(dòng)膜片在電磁線圈和磁鐵的相互作用下,周期性地振動(dòng)發(fā)聲。3. 系統(tǒng)軟件設(shè)計(jì)3.1軟件系統(tǒng)介紹一個(gè)系統(tǒng)的正常運(yùn)行不僅需要硬件系統(tǒng)的支持,而且需要軟件系統(tǒng)的支持。如果把硬件比作軀體,那軟件就是靈魂,硬件系統(tǒng)和軟件系統(tǒng)相互間密切的配合才構(gòu)建了能夠“思考”和“判斷”的整體系統(tǒng)。借助軟件的可編程性,可以精簡(jiǎn)硬件系統(tǒng)的組成;憑借軟件的靈活性,可以不用對(duì)硬件系

22、統(tǒng)進(jìn)行修改而實(shí)現(xiàn)系統(tǒng)功能的修改。軟件系統(tǒng)與硬件系統(tǒng)是密切相聯(lián)的,軟件系統(tǒng)建立在硬件系統(tǒng)之上,離開(kāi)了硬件系統(tǒng),軟件將無(wú)法實(shí)現(xiàn)任何功能。軟件的設(shè)計(jì)有一定的針對(duì)性,對(duì)于不同的硬件系統(tǒng),需要編寫(xiě)不同的軟件。與硬件系統(tǒng)一樣,軟件系統(tǒng)的好壞,直接影響到系統(tǒng)的工作效率和可靠性。3.2編程語(yǔ)言的選擇基于單片機(jī)的電子音樂(lè)盒的設(shè)計(jì)本次課題采用匯編語(yǔ)言編程,它是一種面對(duì)機(jī)器的語(yǔ)言,可以直接控制硬件的語(yǔ)言。因?yàn)楸敬芜€要進(jìn)行硬件連接,所以可以方便控制各個(gè)硬件接口如I/O接口,并且目標(biāo)代碼簡(jiǎn)短,占用存少,執(zhí)行速度快,是高效的程序設(shè)計(jì)語(yǔ)言。具有保持了機(jī)器語(yǔ)言的優(yōu)點(diǎn),具有直接和簡(jiǎn)捷的特點(diǎn)?;谶@些特點(diǎn),所以70%以上的系統(tǒng)軟

23、件使用匯編語(yǔ)言編程。很多很多高級(jí)繪圖程序、視頻游戲程序是用匯編語(yǔ)言編寫(xiě)的。因此匯編語(yǔ)言是我們理解整個(gè)計(jì)算機(jī)系統(tǒng)的最佳起點(diǎn)和最有效途徑,通過(guò)學(xué)習(xí)和使用匯編語(yǔ)言,能夠感知、體會(huì)、理解機(jī)器的邏輯功能,向上為理解各種軟件系統(tǒng)的原理,打下技術(shù)理論基礎(chǔ);向下為掌握硬件系統(tǒng)的原理,打下實(shí)踐應(yīng)用基礎(chǔ)。 單片機(jī)燒錄的代碼,用來(lái)編程單片機(jī)。3.3編程軟件的選擇單片機(jī)的開(kāi)發(fā)除了必須的硬件設(shè)備外還需要一定的軟件支持,我們寫(xiě)的匯編語(yǔ)言源程序要變?yōu)镃PU可以執(zhí)行的機(jī)器碼有兩種方法,一種是手工匯編,另一種是機(jī)器匯編,目前已極少使用手工匯編的方法了。機(jī)器匯編是通過(guò)匯編軟件將源程序變?yōu)闄C(jī)器碼,用于MCS-51單片機(jī)的匯編軟件有

24、早期的A51,隨著單片機(jī)開(kāi)發(fā)技術(shù)的不斷發(fā)展,從普遍使用匯編語(yǔ)言到逐漸使用高級(jí)語(yǔ)言開(kāi)發(fā),單片機(jī)的開(kāi)發(fā)軟件也在不斷發(fā)展,Keil軟件是目前最流行開(kāi)發(fā)MCS-51系列單片機(jī)的軟件,這從近年來(lái)各仿真機(jī)廠商紛紛宣布全面支持Keil即可看出。Keil提供了包括C編譯器、宏匯編、連接器、庫(kù)管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在的完整開(kāi)發(fā)方案,通過(guò)一個(gè)集成開(kāi)發(fā)環(huán)境(uVision)將這些部份組合在一起。運(yùn)行Keil軟件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空閑的硬盤空間、WIN98、NT、WIN2000、WINXP等操作系統(tǒng)。掌握這一軟件的使用對(duì)于使用51系列單片機(jī)的愛(ài)好者來(lái)說(shuō)是十分必

25、要的,如果你使用C語(yǔ)言編程,那么Keil幾乎就是你的不二之選(目前在國(guó)你只能買到該軟件、而你買的仿真機(jī)也很可能只支持該軟件),即使不使用C語(yǔ)言而僅用匯編語(yǔ)言編程,其方便易用的集成環(huán)境、強(qiáng)大的軟件仿真調(diào)試工具也會(huì)令你事半功倍。3.4系統(tǒng)程序設(shè)計(jì)3.4.1主程序流程圖開(kāi)始定義音頻輸出端口,歌曲總數(shù)以與每首歌曲的入口地址;然后對(duì)定時(shí)器初始化,確定工作方式,賦初值,開(kāi)放中斷,啟動(dòng)定時(shí)器工作;對(duì)音頻輸出端口初始化;設(shè)置音節(jié)起始位置和節(jié)拍間距,把音節(jié)和節(jié)拍的入口地址信息存放在固定存儲(chǔ)單元中;將取出的音符數(shù)+節(jié)拍數(shù)保存在存儲(chǔ)單元中,查詢音樂(lè)的節(jié)拍表;當(dāng)六首歌曲的節(jié)拍表查詢完,音樂(lè)播放完畢,程序結(jié)束。具體的程

26、序框圖如下圖所示:系統(tǒng)流程圖3.4.2主程序OUT BIT P2.0 ;定義音頻輸出端口,p2.0N EQU 6;歌曲總數(shù)OUT_NUM EQU P1;數(shù)碼管顯視當(dāng)前所放歌曲曲數(shù) ORG 0000H AJMP MAIN ORG 0003H AJMP LAST_SONG ;外部中斷0用于接上一曲歌按鍵 ORG 000BH AJMP F_T0 ;定時(shí)器0用于定時(shí),作音符發(fā)生器 ORG 0013Hq4: AJMP NEXT_SONG ;外部中斷1接下一曲歌按鍵 ORG 001BH AJMP START_PAUSE ;定時(shí)器1用計(jì)數(shù),這里用作中斷,接開(kāi)始/暫停鍵,初值為0ffH,方式2 ORG 003

27、0HMAIN: MOV SP,#60H MOV DPTR,#TABLE ;DPRT指向每首歌曲的入口地址的地址。 MOV R0,#30H ;R0中存入數(shù)據(jù)30H,這里在以30H開(kāi)始的單元存放每首歌曲的入口地址,其中30H,31H存放 ;歌曲的節(jié)拍入口地址,32H,33H存放歌曲音符入口地址,每首歌占用四個(gè)存儲(chǔ)存單元。MOV R5,#00H;R5中存放表TABLE中正在執(zhí)行操作的序號(hào) MOV R6,#1 ;R6存放正在設(shè)置入口信息的歌曲數(shù)SET_TAB: MOV A,R5 ;設(shè)置每首歌曲的入口信息,存放在以30H開(kāi)始的存儲(chǔ)單元中。MOVC A,A+DPTRMOV R0,AINC R5INC R0

28、MOV A,R5MOVC A,A+DPTRMOV R0,AINC R5INC R0MOV A,R5MOVC A,A+DPTRMOV R0,AINC R0INC R5MOV A,R5MOVC A,A+DPTRMOV R0,AINC R0INC R5INC R6 ;設(shè)置完一首歌曲后,歌曲數(shù)加一CJNE R6,#N+1,SET_TAB;是否設(shè)置完,沒(méi)有便繼續(xù),否則進(jìn)行下面的操作 對(duì)中斷,計(jì)數(shù)器的相關(guān)參數(shù)進(jìn)行設(shè)置MOV TMOD, #61H;計(jì)數(shù)器0工作方式1,計(jì)數(shù)器1工作方式2MOV TH1,#0FFH ;給計(jì)數(shù)器1置初值0FFH,又由于是工作方式2, MOV TL1,#0FFH ;計(jì)數(shù)器計(jì)數(shù)為1,

29、相當(dāng)于一外部中斷。SETB ET1 ;允許計(jì)數(shù)器1中斷SETB ET0 ;允許計(jì)數(shù)器具0中斷CLR PT0 ;計(jì)數(shù)器0為低優(yōu)先級(jí)SETB PT1 ;計(jì)數(shù)器1為高優(yōu)先級(jí)SETB IT0 ;外部中斷0為跳沿觸發(fā)SETB PX0 ;高優(yōu)先級(jí)SETB IT1 ;外部中斷1為跳沿觸發(fā)SETB PX1 ;高優(yōu)先級(jí)SETB EX1 ;允許外部中斷1中斷SETB EX0 ;允許外部中斷定0中斷SETB EA ;開(kāi)中斷總開(kāi)關(guān)SETB TR1 ;定時(shí)器1開(kāi)始工作,作中斷用SETB OUT ;音頻輸出端口初始化 設(shè)置結(jié)束CLR F0 ;設(shè)置F0=0,用來(lái)作暫停/播放的標(biāo)置位用MOV 22H,#01H ;22H單元中

30、存放正在播放的歌曲編號(hào)MOV DPTR,#OUT_TAB ;將正在播放的歌曲編號(hào)送數(shù)碼管顯視MOV A,22HMOVC A,A+DPTRMOV OUT_NUM,AMOV R7,#00H ;R7中存放歌曲總信息的入口地址START0:MOV R4,#00H ;R4存放當(dāng)前正在播放歌曲的第幾個(gè)節(jié)拍數(shù)MOV R0,#30H ;30H開(kāi)始的單元中存放歌曲的入口信息MOV A,R7 ;將歌曲的節(jié)拍表的入口地址送到DPTRADD A,R0MOV R0,AMOV DPH,R0INC R0MOV DPL,R0INC R0MOV A,R4INC R4MOVC A,A+DPTR ;取出第一節(jié)拍數(shù),其實(shí)第一個(gè)節(jié)拍不

31、是歌曲的第一個(gè)節(jié)拍,而是表示幾分音符MOV 26H,A將取出的音符數(shù)+節(jié)拍數(shù)保存在職26H單NEXT: MOV R0,#30H ;開(kāi)始取出歌曲的第一個(gè)數(shù)據(jù) MOV A,R7 ADD A,R0 MOV R0,A MOV DPH,R0 INC R0 MOV DPL,R0 INC R0 MOV A,R4 INC R4 MOVC A,A+DPTR ;放在A中 JZ END0;若為0,則表示為休止符,不唱,本次音符不唱, MOV R1,A ;不為0,取出節(jié)拍數(shù) ANL A,#0FH MOV R2,A MOV A,R1 SWAP A ANL A,#0FH JNZ SING ;音符不為0,唱 CLR TR0

32、 ;為0,不唱,關(guān)頻率發(fā)生器 SJMP SING1SING: DEC A ;開(kāi)始唱,進(jìn)行相應(yīng)的數(shù)據(jù)處理MOV R3,A RL A MOV DPH,R0 INC R0 MOV DPL,R0INC R0 MOVC A,A+DPTR MOV 21H,A MOV TH0,A MOV A,R3 RL A INC A MOVC A,A+DPTR MOV 20H,A MOV TL0,A SETB TR0 ;開(kāi)唱SING1:LCALL DELAY ;每個(gè)音符唱多久 F0,FOR ;是否暫停, AJMP NEXT ;沒(méi)有暫停,繼續(xù)FOR: CLR TR0 ;暫停,不唱 F0,$ ;等待播放 AJMP NEXT

33、;開(kāi)始播放END0: CLR TR0 ;不唱MOV A,22H ;唱完處理CJNE A,#N,WW;是不是全部歌曲都唱完MOV 22H,#01H ;全部唱完,則從第一首開(kāi)始再唱MOV R7,#00HMOV OUT_NUM,#11111001B;數(shù)碼管顯視第一首歌曲編號(hào)AJMP WWWW:MOV A,R7;沒(méi)有全部唱完,唱下一首,歌曲的入口信息調(diào)整ADD A,#4 MOV R7,A INC 22HCLR EAPUSH DPHPUSH DPLMOV A,22HMOV DPTR,#OUT_TAB MOVC A,A+DPTR MOV OUT_NUM,A ;數(shù)碼管顯視相應(yīng)的歌曲編號(hào)3.4.3定時(shí)器定時(shí)設(shè)

34、計(jì)51單片機(jī)部有兩個(gè)16位的可編程的定時(shí)/計(jì)時(shí)器,稱為定時(shí)器0(T0)和定時(shí)器1(T1),它們都具有定時(shí)功能和事件計(jì)數(shù)功能,可用于定時(shí)控制、延時(shí)、對(duì)外部事件檢測(cè)和計(jì)數(shù)等場(chǎng)合。定時(shí)期的核心部位是加1計(jì)數(shù)器,通過(guò)設(shè)置TMOD可使定時(shí)器工作在定時(shí)或者計(jì)數(shù)方式,即將定時(shí)器用于定時(shí)或者計(jì)數(shù)。實(shí)際上這兩種工作方式?jīng)]有本質(zhì)的區(qū)別,都是對(duì)脈沖信號(hào)計(jì)數(shù),只是計(jì)數(shù)的脈沖來(lái)源不同而已。如果計(jì)數(shù)脈沖是頻率穩(wěn)定的系統(tǒng)時(shí)鐘的分頻信號(hào),則稱為定時(shí)方式,如果計(jì)數(shù)脈沖是外部脈沖信號(hào),稱為計(jì)數(shù)方式。無(wú)論在定時(shí)模式還是技術(shù)模式下,定時(shí)期在對(duì)部時(shí)鐘或外部脈沖計(jì)數(shù)時(shí),都不占用CPU的時(shí)間,而按照設(shè)定的方式鴿子獨(dú)自工作。只有在定時(shí)器定時(shí)

35、時(shí)間或計(jì)數(shù)值到,定時(shí)器溢出時(shí)才可能中斷CPU當(dāng)前工作,請(qǐng)求CPU處理。如晶振12MHZ,用定時(shí)器T0定時(shí)50ms,從P2.0引腳輸出周期100ms的方波;定時(shí)的流程圖如下圖示:定時(shí)50ms流程圖主程序如下:ORG 0000H ;主程序入口地址 LJMP MAIN ORG 000BH ;T0中斷程序入口地址 LJMP INT_T0 ORG 0030HMAIN: MOV SP,#60H ;設(shè)堆棧MOV TMOD,#01H ;設(shè)T0工作方式MOV TH0,#3CH ;定時(shí)器T0賦初值MOV TL0,#0B0HCLR P2.0 ;P2.0初態(tài)SETB ET0 ;開(kāi)放T0中斷SETB EA ;開(kāi)放CPU中斷SETB TR0 ;啟動(dòng)T0工作LOOP:SJMP LOOP ;循環(huán)等中斷中斷服務(wù)程序:INT_T0:MOV TH0,#3CH ;T0重裝初值 MOV TL0,#0B0H CPL P2.0 ;P2.0求反,輸出方波 RETI ;中斷返回 END4 系統(tǒng)調(diào)試結(jié)果整理與分析4.1系統(tǒng)仿真過(guò)程4.1.1原理圖的繪制Proteus電路設(shè)計(jì)是在PROTEUS ISIS環(huán)境下繪制的,該編輯環(huán)境具有良好

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論