2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩34頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  目錄</b></p><p><b>  摘 要I</b></p><p>  第一章 設(shè)計(jì)方案的對比1</p><p>  第二章 總體方案設(shè)計(jì)2</p><p>  2.1 原理簡介2</p><p>  2.2 方案設(shè)計(jì)思想2&

2、lt;/p><p>  第三章 方案實(shí)現(xiàn)3</p><p>  3.1、音頻脈沖的產(chǎn)生3</p><p>  3.2.音樂節(jié)拍的生成4</p><p>  3.3.建立音樂的步驟4</p><p>  第四章 硬件設(shè)計(jì)5</p><p>  4.1 硬件電路5</p>&

3、lt;p>  4.1.1、AT89C51的工作特性5</p><p>  4.2 原理說明6</p><p>  4.3 電路各模塊說明6</p><p>  4.3.1 鍵盤系統(tǒng)6</p><p>  4.3.2 放大電路7</p><p>  4.3.3 時鐘電路8</p><

4、;p>  4.3.4 復(fù)位電路8</p><p>  5.3.5 顯示電路9</p><p>  第五章 軟件設(shè)計(jì)10</p><p>  5.1 主模塊的設(shè)計(jì)10</p><p>  第六章 仿真、安裝和調(diào)試12</p><p><b>  總結(jié)13</b></p>

5、<p><b>  致謝14</b></p><p><b>  參考文獻(xiàn)14</b></p><p><b>  附錄15</b></p><p>  附錄一:音樂程序15</p><p>  附錄二:基于單片機(jī)的數(shù)字音樂盒總電路圖32</p&g

6、t;<p><b>  摘 要</b></p><p>  本設(shè)計(jì)是基于單片機(jī)的數(shù)字音樂盒設(shè)計(jì),由單片機(jī)AT89C51芯片和LCD顯示器為核心,輔以必要的電路,構(gòu)成的一個單片機(jī)電子數(shù)字音樂盒。要求利用I/O口產(chǎn)生一定頻率的方波,驅(qū)動蜂鳴器,發(fā)出不同的音調(diào)并采用LCD顯示信息,從而演奏樂曲(最少三首樂曲,每首不少于30秒),開機(jī)時有英文歡迎提示字符,播放時顯示歌曲序號(或名稱),

7、可通過功能鍵選擇樂曲,暫停,播放。</p><p>  本設(shè)計(jì)采用4*4鍵盤,用Protel99來畫系統(tǒng)硬件圖,采用匯編語言進(jìn)行編程,編程后利用KEIL C51來進(jìn)行編譯,再生成的HEX文件裝入芯片中,采用proteus軟件來仿真,檢驗(yàn)功能得以正常實(shí)現(xiàn)。該音樂盒的設(shè)計(jì)可以通過按鍵選擇不同的曲目,播放和暫停,并通過LCD顯示歌曲號及播放時間。</p><p>  本設(shè)計(jì)鍵盤采用動態(tài)掃描方式。

8、每次掃描一行鍵盤,送此行低電平,讀輸入口的狀態(tài)值,判斷有沒有鍵按下。若有鍵按下,根據(jù)讀入口的值選擇顯示值并送至顯示值寄存單元,判斷鍵值,啟動計(jì)數(shù)器T0,根據(jù)次值為偏移地址找到要選擇的音樂的代碼的首地址,根據(jù)代碼產(chǎn)生一定頻率的脈沖,驅(qū)動蜂鳴器,放出音。同時啟動定時器T1,計(jì)算音樂的播放的時間。</p><p>  關(guān)鍵詞:數(shù)字音樂盒 AT89C51 LCD顯示器 Proteus軟件 4*4鍵盤 動態(tài)掃描

9、 KEIL C5</p><p>  第一章 設(shè)計(jì)方案的對比</p><p>  方案一:本設(shè)計(jì)以89C51為核心,配合鍵盤系統(tǒng),放大電路,時鐘電路和數(shù)碼管顯示電路實(shí)現(xiàn)音樂的演奏。音樂盒設(shè)計(jì)采用獨(dú)立的鍵盤做為音符的輸入以89C51為核心。</p><p>  本設(shè)計(jì)中用到了89C51單片機(jī),4*4矩陣式鍵盤,蜂鳴器,14引腳的LCD,可以通過以下原理框圖(圖1.1)

10、來實(shí)現(xiàn)該音樂盒的設(shè)計(jì)。</p><p>  方案二:該方案以AT89S52單片機(jī)為核心,主要設(shè)計(jì)模塊包括數(shù)碼管顯示部分,功能鍵盤部分,蜂鳴器發(fā)聲部分,彩燈部分。數(shù)碼管采用共陽極數(shù)碼管,通過單片機(jī)P1口控制,實(shí)現(xiàn)歌曲序號的顯示;功能鍵盤采用1*8鍵盤按鍵開關(guān),通過單片機(jī)P3口控制,實(shí)現(xiàn)歌曲播放順序的調(diào)換和暫停播放功能;蜂鳴器由單片機(jī)的P2口控制,實(shí)現(xiàn)歌曲播放;彩燈是由普通發(fā)光二極管代替,能實(shí)現(xiàn)單色長亮和閃爍效。&l

11、t;/p><p>  綜上所述:由于方案一的琴鍵輸入是通過獨(dú)立式鍵盤來完成的,這樣便于控制且直觀。且本方案是采用我們所熟知的單片機(jī)類型和顯示電路,便于我們理解。而方案二中其他電路部分與方案一相差不大,但系統(tǒng)實(shí)現(xiàn)比較困難。且主控芯片采用的是我們少用的AT89S51,所以我們選擇方案一。</p><p>  第二章 總體方案設(shè)計(jì)</p><p><b>  2.1

12、 原理簡介</b></p><p>  當(dāng)鍵盤有鍵按下時,判斷鍵值,啟動計(jì)數(shù)器T0,產(chǎn)生一定頻率的脈沖,驅(qū)動蜂鳴器,放出樂曲。同時啟動定時器T1,顯示樂曲播放的時間,并驅(qū)動LCD,顯示歌曲號。</p><p>  2.2 方案設(shè)計(jì)思想</p><p>  (1)要產(chǎn)生音頻脈沖,只要算出某一音頻的周期(1/音頻),然后將此周期除以2,即為半周期的時間,利

13、用定時器計(jì)時這個半周期時間,每當(dāng)計(jì)時到后就將輸出脈沖的I/O反相,然后重復(fù)計(jì)時此半周期時間再對I/O口反相,就可在I/O腳上得到此頻率的脈沖</p><p>  (2)利用8951的內(nèi)部定時器使其工作在計(jì)數(shù)器模式MODE1下,改變記數(shù)值TH0及TL0以產(chǎn)生不同頻率的方法。例如頻率為523HZ,其周期T=1/523=1912微秒,因此只要令計(jì)數(shù)器定時956/1=956在每記數(shù)9次時將I/O口反相,就可得到中音D0(

14、523HZ)。</p><p>  記數(shù)脈沖值與頻率的關(guān)系公式如下:</p><p>  N=Fi/2/Fr N:記數(shù)值</p><p>  Fi:內(nèi)部計(jì)時一次為1微秒.故其頻率為1MHZ</p><p><b>  Fr;要產(chǎn)生的頻率</b></p><p>  (3):起記數(shù)值的求法如下

15、:</p><p>  T=65536-N=65536-Fi/2/Fr</p><p>  例如:設(shè)K=65536,F(xiàn)=1000000=Fi=1MHZ,求低音D0(523HZ),高音的D0(1046HZ)的記數(shù)值。</p><p>  T=65536-N=65536-Fi/2/Fr=65536-1000000/2/Fr=65536-500000/Fr</p&g

16、t;<p>  低音D0的T=65536-500000/262=63627</p><p>  中音D0的T=65536-500000/523=64580</p><p>  低音D0的T=65536-500000/1047=65059 </p><p><b>  第三章 方案實(shí)現(xiàn)</b&g

17、t;</p><p>  3.1、音頻脈沖的產(chǎn)生</p><p>  對于音樂盒而言發(fā)出悅耳的音樂是其最主要的功能,那么對于使用單片機(jī)來制作出來的音樂盒怎么實(shí)現(xiàn)音符的發(fā)聲呢?</p><p>  通過查看資料我們知道音符的發(fā)音主要靠不同的音頻脈沖。利用單片機(jī)的內(nèi)部定時器/計(jì)數(shù)器0,使其工作在模式1,定時中斷,然后控制引腳的輸出音樂(本實(shí)驗(yàn)采用P1.0做為輸出引腳)。

18、只要算出某一音頻的周期(1/頻率),然后將此周期除以2,即為半周期的時間,利用定時器計(jì)時這個半周期時間,每當(dāng)計(jì)時到后就將輸出脈沖的I/O反相,然后重復(fù)計(jì)時此半周期時間再對I/O反相,就可在I/O腳上得到此頻率的脈沖。</p><p>  具體做法如下所示(以中音DO為例):</p><p>  例如:中音1(DO)的音頻= 523HZ,周期T=1/523s=1912</p>

19、<p>  定時器/計(jì)數(shù)器0的定時時間為:T/2=1912/2=956</p><p>  定時器956的計(jì)數(shù)值=定時時間/機(jī)器周期=956/1=956(時鐘頻率=12MHZ)</p><p>  裝入T0計(jì)數(shù)器初值為65536-956=64580</p><p>  將64580裝入T0寄存器中,啟動T0工作后,每計(jì)數(shù)956次時將產(chǎn)生溢出中斷,進(jìn)入中斷服

20、務(wù)時,每次對P1.0引腳的輸出值進(jìn)行取反,就可得到中音DO(523HZ)的音符音頻。將51單片機(jī)內(nèi)部定時器工作在計(jì)數(shù)器模式1下,改變計(jì)數(shù)初值TH0,TL0以產(chǎn)生不同的頻率。下表3-1是C調(diào)各音符頻率與計(jì)數(shù)初值T的對照表: </p><p>  表3-1 C調(diào)各音符頻率與計(jì)數(shù)初值T的對照表</p><p>  3.2.音樂節(jié)拍的生成</p><p>  要唱出一首歌

21、,只產(chǎn)生出音頻脈沖還不夠,還要考慮節(jié)拍。</p><p>  定義:每個音符占用一個字節(jié),字節(jié)的高4位代表音符的高低,低4位表示該音符的節(jié)拍,如果一拍為0.4秒,則1/4拍是0.1秒,只要設(shè)定延遲時間就可獲得節(jié)拍的時間。我們也可以設(shè)1/4拍為1個DELAY,則1拍應(yīng)該是4個DELAY,只要求得1/4拍的DELAY時間,其余的節(jié)拍就是它的倍數(shù)。(見表3-2)</p><p><b>

22、;  表3-2</b></p><p>  3.3.建立音樂的步驟</p><p>  先把譜的音符找出,然后由上表建立時間常數(shù)初值T的順序表,標(biāo)號為TABLE1。</p><p>  建立音符和節(jié)拍表,標(biāo)號為TABLE,將構(gòu)成發(fā)音符的計(jì)數(shù)值放在其中。</p><p>  TABLE表的結(jié)構(gòu)為:簡譜碼(代表音符)為高4位,節(jié)拍碼(

23、表示節(jié)拍數(shù))為低4位,在唱歌程序中對每一個有節(jié)拍的音符能通過設(shè)計(jì)共同生成音符節(jié)拍碼,本程序的音符節(jié)拍碼表見表3-2。</p><p><b>  第四章 硬件設(shè)計(jì)</b></p><p><b>  4.1 硬件電路</b></p><p>  本設(shè)計(jì)中用到了89C51單片機(jī),其引腳圖如右圖4-1-1所示,矩陣式鍵盤模塊

24、,蜂鳴器,16*2 LCD,揚(yáng)聲器、LED數(shù)碼管顯示器等。( 數(shù)字音樂盒總硬件圖如附錄一所示)</p><p>  4.1.1、AT89C51的工作特性</p><p>  ?內(nèi)含4KB的FLASH存儲器檫寫次數(shù)1000次; </p><p>  ?內(nèi)含128字節(jié)的RAM;</p><p>  ?具有32根可編程I/O線;&

25、lt;/p><p>  ?具有2個16位編程定時器 </p><p>  ?具有6個中斷源,5個中斷矢量,2級優(yōu)先權(quán)的中</p><p><b>  斷結(jié)構(gòu);</b></p><p>  ?具有1個全雙工的可編程串行通信接口;</p><p>  ?具有1個數(shù)據(jù)指針DPTR;</p>

26、<p>  ?具有可編程3級程序鎖定位;</p><p>  ?AT89C51的工作電源為5(1±0.2)V且典型值為5V;</p><p>  ?AT89C51最高工作頻率為24MHZ;</p><p>  ?AT89C51的編程頻率為3~24MHZ,編程啟動電流和啟動電壓 </p><

27、p>  分別為1mA、5或12V。 </p><p><b>  4.2 原理說明</b></p><p>  當(dāng)鍵盤有鍵按下時,判斷鍵值,啟動計(jì)數(shù)器T0,產(chǎn)生一定頻率的脈沖,驅(qū)動蜂鳴器,放出樂曲。同時啟動定時器T1,顯示歌曲號。</p><p> ?。?)硬件電路中用、分別接S1、

28、S2作為上、下一曲的功能鍵</p><p> ?。?)用P1.0-P1.6控制七段碼a,b,c,d,e,f。</p><p> ?。?)用P2.0口控制喇叭。</p><p>  (4)電路為12MHZ晶振頻率工作,起振電路中C1,C2均為30pf。</p><p>  4.3 電路各模塊說明</p><p> 

29、 4.3.1 鍵盤系統(tǒng)</p><p>  鍵盤模塊采用4*4按鍵模式(S1-S16),接在單片機(jī)的P1口上。</p><p>  鍵盤系統(tǒng)的鏈接電路圖如圖4-3-1所示:</p><p>  當(dāng)用手按下一個鍵時,往往按鍵在閉合位置和斷開位置之間跳幾下才穩(wěn)定到閉合狀態(tài)的情況;在釋放一個鍵時,也回會出現(xiàn)類似的情況。這就是抖動。抖動的持續(xù)時間隨鍵盤材料和操作員而異,不過

30、通??偸遣淮笥?0ms。很容易想到,抖動問題不解決就會引起對閉合鍵的識別。用軟件方法可以很容易地解決抖動問題,這就是通過延遲10ms來等待抖動消失,這之后,在讀入鍵盤碼。具體編碼如下所示:</p><p>  MAI: CLR TR0 ;關(guān)閉上一次定時,進(jìn)入下一次按鍵判斷</p><p>  MOV TMOD, #01H</p><p>  

31、MOV IE, #82H</p><p>  MOV A, P1</p><p>  MOV 30H, A ;保存鍵盤狀態(tài)值</p><p>  LCALL D10MS ;延遲10ms消除抖動</p><p>  MOV A , P1 ;再讀鍵盤狀態(tài)</p&g

32、t;<p>  CJNE A, 30H, MAI ;兩次結(jié)果不同,是抖動引起,轉(zhuǎn)MAI</p><p>  4.3.2 放大電路</p><p>  放大電路的分析如下所示,其電路圖如圖4-3-2所示:</p><p>  此部分的放大電路簡單容易實(shí)現(xiàn)??梢圆捎靡粋€小功率PNP型硅管2905,利用“分壓 偏置式工作點(diǎn)穩(wěn)定直流通路”,達(dá)到了

33、對靜態(tài)工作點(diǎn)的穩(wěn)定。分壓電阻分別選擇1K和5.5K。蜂鳴器一端接+5V電壓,一端接晶體管的發(fā)射極。由P1.0輸出預(yù)定的方波,加到晶體管進(jìn)行放大,再輸出到嗡寧器,很好的實(shí)現(xiàn)了頻率、聲音的轉(zhuǎn)換。</p><p>  4.3.3 時鐘電路</p><p>  此系統(tǒng)的時鐘電路設(shè)計(jì)是采用內(nèi)部方式,即是利用芯片內(nèi)部的振蕩電路。MCS-51內(nèi)部有一個用于構(gòu)成振蕩器的高增益反相放大器。。以此系統(tǒng)電路采用

34、12MHz的晶振,起振電路中C1,C2均為30pf。時鐘電路模塊電路圖如圖4-3-3所示。</p><p>  4.3.4 復(fù)位電路</p><p>  51單片機(jī)的RST引腳是復(fù)位信號的輸入端,復(fù)位信號是高電平有效,其有效時間應(yīng)持續(xù)24個振蕩脈沖周期(即二個機(jī)器周期)以上。一般有兩種復(fù)位方式:上電復(fù)位和手動復(fù)位。復(fù)位電路圖如圖4-3-4所示。</p><p>  

35、上電復(fù)位上電時,利用電容C1的充電延時特性,一開始,+5V電壓全部降落在電阻R6上,高電平輸入RST腳,單片機(jī)復(fù)位操作,當(dāng)電容C1充電接近結(jié)束時,電阻R6電壓趨于0,RST腳輸入低電平,結(jié)束復(fù)位操作。</p><p>  手動復(fù)位在系統(tǒng)出現(xiàn)操作錯誤或程序運(yùn)行出錯時使用。在單片機(jī)系統(tǒng)運(yùn)行過程中,按下復(fù)位鍵K0,高電平輸入RST腳,單片機(jī)被強(qiáng)制執(zhí)行復(fù)位操作,系統(tǒng)可退出錯誤運(yùn)行狀態(tài),恢復(fù)正常工作。</p>

36、<p>  5.3.5 顯示電路 顯示電路采用LCD模塊,LCD顯示模塊采用14引腳的LCD LM032L,它有八個數(shù)據(jù)端口,三個控制口。當(dāng)控制口R/W為低電平時,單片機(jī)向LCD寫入指令,當(dāng)其為高電平時,單片機(jī)讀取LCD的信息。單片機(jī)的P2.0~P2.2作為LCD的RS,R/W,E的控制信號。用P0.0~P0.7作為LCD的D0~D7的控制信號。用LCD來顯示播放歌曲時間和歌曲號。當(dāng)按下開機(jī)鍵時,會在LCD上顯示英文

37、歡迎字符,按其他鍵可顯示歌曲號和播放時間。</p><p>  LCD顯示模塊電路圖分別如圖4-3-5所示。</p><p><b>  第五章 軟件設(shè)計(jì)</b></p><p>  5.1 主模塊的設(shè)計(jì)</p><p>  主模塊是系統(tǒng)軟件的主框架。結(jié)構(gòu)化程序設(shè)計(jì)一般有“自上而下”和“自下而上”兩種方式,“自上而下”法

38、的核心就是主框架的構(gòu)建。它的合理與否關(guān)系到程序最終的功能的多少和性能的好壞。本程序可以實(shí)現(xiàn)課程設(shè)計(jì)的基本要求,并可以通過按鍵播放多首歌曲,主程序流程圖如下所示(圖5-1-1),其中顯示子程序的流程圖如圖5-1-2所示。</p><p>  第六章 仿真、安裝和調(diào)試</p><p>  按照上面設(shè)計(jì)的電路在proteus軟件內(nèi)畫圖, 打開單片機(jī)軟件開發(fā)系統(tǒng)Keil,選擇89c51單片機(jī),在其

39、中編寫程序,運(yùn)行生成一個后綴名為hex的文件,然后將該文件下載到proteus中的AT89c51單片機(jī)中進(jìn)行仿真,觀察實(shí)驗(yàn)現(xiàn)象。仿真能實(shí)現(xiàn)播放音樂,按鍵選擇曲目,暫停,播放功能。仿真成功后,安裝好實(shí)驗(yàn)板,然后將音樂程序下載到電路板內(nèi) ,觀察結(jié)果。能實(shí)現(xiàn)播放音樂,按鍵換曲等功能。(其中仿真截圖如圖6-1-1所示)</p><p>  程序調(diào)試中出現(xiàn)的問題及解決的辦法:</p><p>  有

40、時會出現(xiàn)程序一點(diǎn)錯誤也沒有,但就是不能正常運(yùn)行的現(xiàn)象,最后我們發(fā)現(xiàn)是因?yàn)槌绦蛑杏械闹噶顣鴮懙貌灰?guī)范導(dǎo)致的,例如有的RET返回指令一定要按正確格式書寫或在兩行指令間最好不要留空行。</p><p> ?。?) 程序中的跳轉(zhuǎn)指令的運(yùn)用很重要,為保險起見,都用LJMP,我們就遇到過跳轉(zhuǎn)指令用錯程序無法正常運(yùn)行的現(xiàn)象。當(dāng)用JNZ指令時,跳轉(zhuǎn)范圍比較少,這時要用一個標(biāo)號中轉(zhuǎn)。</p><p> ?。?/p>

41、3) 編程時要注意,在程序開始時,要寫入各定時器中斷的入口地址。</p><p> ?。?) 編程過程中要注意加注釋或分割線,否則,在程序過長時容易變得很亂,不便于查找或更改。</p><p>  (5) 編程前要加流程圖,這樣會使思路清晰,例如數(shù)字音樂盒的設(shè)計(jì)思路完全可以按著MP3的工作方式列寫流程圖。</p><p> ?。?) LCD計(jì)時正常顯示的解決辦法:&

42、lt;/p><p>  a. 兩個定時器同時工作,存在中斷時序問題,剛開始時我們把定時器1設(shè)定在方式3,計(jì)250us,由于定時中斷過于頻繁,使CPU負(fù)載過大,導(dǎo)致音樂不能正常播放,時間不能正常顯示。</p><p>  解決辦法:將定時器1設(shè)定在工作方式1,16位計(jì)數(shù),計(jì)50ms,效果有很大改觀。但還有問題。</p><p>  b. 當(dāng)音樂為全4拍起始時,此時音樂節(jié)奏

43、與定時器T1中斷頻率錯開,LCD顯示和音樂播放都會好一些。</p><p>  c. 另外,在歌曲中,當(dāng)遇到一個音符發(fā)音為4拍,在編曲中為*CH,因時間較長,當(dāng)定時器T1此時來中斷時,就會對歌曲播放產(chǎn)生影響,若改為發(fā)音一拍,中斷對歌曲播放影響減弱,但音樂效果變差。</p><p>  改進(jìn)方案:若采用可以定時時間更長的單片機(jī),可以避免所有問題。</p><p>  

44、圖6-1-1 Proteus仿真圖</p><p><b>  總結(jié)</b></p><p>  這學(xué)期我們已接觸了單片機(jī)的課,有了一定的基礎(chǔ)知識,這次的單片機(jī)課程設(shè)計(jì)使我有了實(shí)踐和提高能力的機(jī)會,讓我受益良多。</p><p>  在此次單片機(jī)的課程設(shè)計(jì)中,我不但對單片機(jī)的基礎(chǔ)知識掌握的更牢固,而且對其硬件和軟件方面有了更深一層的認(rèn)識。在做

45、數(shù)字音樂盒的課程設(shè)計(jì)時,我掌握了AT89C51單片機(jī)的內(nèi)部振蕩方式及振蕩頻率和單片機(jī)的復(fù)位電路形式。此次設(shè)計(jì)的軟件編程采用的是我們所學(xué)的匯編語言,通過對數(shù)字音樂盒的編程,我更熟悉了鍵盤掃描和動態(tài)顯示的編程以及定時計(jì)數(shù)器和中斷的編程。鞏固了對AT89C51的內(nèi)部結(jié)構(gòu)和接口擴(kuò)展的知識。</p><p>  本次設(shè)計(jì)中,我用到了protel99畫圖軟件,keil C51編程軟件和proteus仿真軟件。以前雖然對pro

46、tel99有一定的認(rèn)識,能運(yùn)用其畫圖,不缺不熟練,這次設(shè)計(jì)是我對其的熟練程度提高了不少。在大三上學(xué)期我自學(xué)過一點(diǎn)keil C51軟件,但并不會用proteus,更不知道怎樣將其結(jié)合起來使用。在做數(shù)字音樂盒的仿真時,通過向同學(xué)青椒和查找資料,我能夠運(yùn)用它來畫圖,并和keil C51結(jié)合起來進(jìn)行仿真,更有幸的是,仿真實(shí)現(xiàn)了。</p><p>  這次課程設(shè)計(jì),讓我收獲到了成功的喜悅,學(xué)會了做事嚴(yán)謹(jǐn)?shù)膽B(tài)度。希望下次還有

47、這樣學(xué)習(xí)的機(jī)會,并且希望下次能做的更好。</p><p><b>  致謝</b></p><p>  這次基于單片機(jī)的數(shù)字音樂盒設(shè)計(jì)得以完成,首先要感謝不畏辛辭地知道我們的**老師,通過*老師的指導(dǎo),是我增漲了單片機(jī)的知識,也使這次課程設(shè)計(jì)得以順利完成。其次,還要感謝我的同學(xué),在這次課程設(shè)計(jì)中,遇到了許多的困難,是通過詢問他們才解決的,所以要感謝他們的賜教。<

48、/p><p><b>  參考文獻(xiàn)</b></p><p>  [1] 許珉.單片機(jī)原理及應(yīng)用[M].北京:中國電力出版社,2007.08</p><p>  [2] 三恒星科技.MCS-51單片機(jī)原理與應(yīng)用實(shí)例[M]. 北京:電子工業(yè)出版社,2008.01</p><p>  [3] 王為青,程國鋼.單片機(jī)Keil

49、Cx51應(yīng)用開發(fā)技術(shù)[M]. 北京:人民郵電出版社,2007.02</p><p>  [4] John Markus.電子電路大全[M].北京:計(jì)量出版社,1995</p><p>  [5] 閻石.數(shù)字電子技術(shù)基礎(chǔ)[M].北京:高等教育出版社,1998.12,第4版</p><p>  [6] 鄧元慶.數(shù)字電路與邏輯設(shè)計(jì)[M].北京:電子工業(yè)出版社,20

50、01</p><p>  [7] 高鋒,單片微型計(jì)算機(jī)原理與接口技術(shù).科學(xué)出版社,2003年.</p><p>  [8] 李傳軍,單片機(jī)原理及應(yīng)用(第一版).河南科學(xué)技術(shù)出版社,2006年.</p><p>  [9] 楊志忠.數(shù)字電子技術(shù).高等教育出版社(第二版)[M].2003年.</p><p>  [10] 張友德.單片微型

51、機(jī)原理應(yīng)用與實(shí)驗(yàn).上海復(fù)旦大學(xué)出版社,2000</p><p>  [11] 《融會貫通 Protel99電路設(shè)計(jì)》 弘道工作室 北京 人民交通出版設(shè),2000.</p><p>  [12] 《單片機(jī)原理及接口技術(shù)實(shí)驗(yàn)》 朱定華 北京 北方交通大學(xué)出版社2002.11</p><p><b>  附錄</b></p><

52、p><b>  附錄一:音樂程序</b></p><p>  RS BIT P2.0 </p><p>  RW BIT P2.1 </p><p>  E BIT P2.2</p><p>  ;********************</p><p>  L50MS EQU 6

53、0H</p><p>  L1MS EQU 61H</p><p>  L250MS EQU 62H</p><p>  SEC EQU 65H</p><p>  MIN EQU 64H</p><p>  HOU EQU 63H</p><p>  ;********************

54、*</p><p><b>  ORG 0000H</b></p><p><b>  LJMP MAIN</b></p><p><b>  ORG 000BH</b></p><p><b>  LJMP TT0</b></p><

55、p><b>  ORG 001BH</b></p><p>  LJMP T1INT</p><p><b>  ORG 1000H</b></p><p>  MAIN: 液晶初始化</p><p>  MOV SP,#70H </p><p>  MOV P0

56、,#01H ;清屏</p><p>  CALL ENABLE</p><p>  MOV P0,#38H ;8位,2行顯示</p><p>  LCALL ENABLE</p><p>  MOV P0,#0FH ;屏顯ON,光標(biāo)ON,閃爍ON</p><p>  LCALL ENABLE</p>

57、<p>  MOV P0,#06H ;計(jì)數(shù)地址加1,顯示幕ON</p><p>  LCALL ENABLE 內(nèi)存初始化</p><p>  LCALL INITIL </p><p><b>  KEY1:</b></p><p><b>  LCALL KEY</b>&

58、lt;/p><p>  LCALL MODD </p><p>  LJMP KEY1鍵盤掃描</p><p><b>  KEY:</b></p><p><b>  NOP</b></p><p><b>  NOP</b></p&

59、gt;<p><b>  LCALL KS</b></p><p>  JNZ K1 有按鍵轉(zhuǎn)到K1</p><p>  LCALL KAIJI</p><p><b>  LCALL SOP</b></p><p><b>  XN:</b></p&g

60、t;<p><b>  LJMP KEY</b></p><p><b>  K1:</b></p><p>  LCALL MODD</p><p>  LCALL MODD</p><p><b>  LCALL KS</b></p><p

61、><b>  JNZ K2</b></p><p><b>  LJMP KEY</b></p><p><b>  K2:</b></p><p>  MOV R2,#0FEH ;讀鍵盤</p><p>  MOV R4,#00H</p><p&

62、gt;<b>  K3:</b></p><p><b>  MOV A,R2</b></p><p><b>  MOV P1,A</b></p><p><b>  MOV A,P1</b></p><p>  JB ACC.4,L1為1跳轉(zhuǎn),第一行無

63、按鍵</p><p>  MOV A,#00H</p><p><b>  LJMP LK</b></p><p><b>  L1:</b></p><p>  JB ACC.5,L2</p><p>  MOV A,#04H</p><p><

64、;b>  LJMP LK</b></p><p><b>  L2:</b></p><p>  JB ACC.6,L3</p><p>  MOV A,#08H</p><p><b>  LJMP LK</b></p><p><b>  L3

65、:</b></p><p>  JB ACC.7,NEXT1</p><p>  MOV A,#0CH</p><p><b>  LK:</b></p><p><b>  ADD A,R4</b></p><p><b>  PUSH ACC<

66、/b></p><p><b>  K4:</b></p><p>  LCALL DELAY1 ;若同時有其他按鍵,則等待</p><p><b>  LCALL KS</b></p><p><b>  JNZ K4</b></p><p>

67、;  MOV R3,#07H </p><p><b>  CLR A</b></p><p>  MOV R0,#30H</p><p>  MOV R1,#31H</p><p><b>  MM1:</b></p><p><b>  MOV A,@R

68、1</b></p><p><b>  MOV @R0,A</b></p><p><b>  INC R0</b></p><p><b>  INC R1</b></p><p>  DJNZ R3,MM1</p><p><b&g

69、t;  POP ACC</b></p><p>  MOV @R0,A </p><p><b>  RET</b></p><p><b>  NEXT1:</b></p><p>  INC R4 ;列掃描</p><p><b>  MOV

70、A,R2</b></p><p>  JNB ACC.3,N2</p><p><b>  LJMP N1</b></p><p><b>  N2:</b></p><p><b>  LJMP KEY</b></p><p><b&

71、gt;  N1:</b></p><p><b>  RL A</b></p><p><b>  MOV R2,A</b></p><p><b>  LJMP K3</b></p><p><b>  KS:</b></p>

72、<p>  MOV A,#0F0H ;判斷P1口</p><p><b>  MOV P1,A</b></p><p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  MOV A,P1</b&

73、gt;</p><p><b>  CPL A</b></p><p>  ANL A,#0F0H</p><p><b>  RET</b></p><p><b>  DELAY1:</b></p><p><b>  SETB RS0&l

74、t;/b></p><p><b>  DL:</b></p><p>  MOV R5,#0AH</p><p><b>  DL2:</b></p><p>  MOV R6,#63</p><p><b>  DL3:</b></p&g

75、t;<p><b>  NOP </b></p><p><b>  NOP</b></p><p>  DJNZ R6,DL3</p><p>  DJNZ R5,DL2 </p><p>  CLR RS0 </p><p>  RET 30H-37

76、H初值為零</p><p>  INITIL: </p><p>  MOV R3,#08H</p><p>  MOV R0,#30H</p><p><b>  M1:</b></p><p>  MOV @R0,#00H</p><p><b> 

77、 INC R0</b></p><p>  DJNZ R3,M1 </p><p><b>  RET</b></p><p><b>  MODD: </b></p><p>  MOV P0,#8EH</p><p>  LCALL ENAB

78、LE </p><p><b>  MOV A,37H</b></p><p>  MOV DPTR,#TABLE3 </p><p>  MOVC A,@A+DPTR</p><p>  LCALL WRITE2 </p><p><b> 

79、 RET開機(jī)提示字</b></p><p><b>  KAIJI:</b></p><p><b>  MOV A,37H</b></p><p>  CJNE A,#0FH,DFF</p><p>  MOV P0,#80H ;設(shè)光標(biāo)地址 </p><p&g

80、t;  LCALL ENABLE</p><p>  MOV DPTR,#TABLE1;寫數(shù)據(jù)</p><p>  LCALL WRITE1 </p><p><b>  DFF:</b></p><p>  RET按鍵值播放歌曲</p><p><b>  SOP:&l

81、t;/b></p><p><b>  MOV A,37H</b></p><p>  CJNE A,#01H,A11</p><p>  LCALL MODD</p><p>  MOV 52H,#HIGH TABLE10</p><p>  MOV 53H,#LOW TABLE10<

82、;/p><p>  LCALL INITILE2</p><p>  LCALL MAIN0</p><p><b>  A11:</b></p><p>  CJNE A,#02H,A22</p><p>  LCALL MODD</p><p>  MOV 52H,#HIG

83、H TABLE20</p><p>  MOV 53H,#LOW TABLE20 </p><p>  LCALL INITILE2 </p><p>  LCALL MAIN0</p><p><b>  A22:</b></p><p>  CJNE A,#03H,A33</p

84、><p>  LCALL MODD</p><p>  MOV 52H,#HIGH TABLE30</p><p>  MOV 53H,#LOW TABLE30 </p><p>  LCALL INITILE2 </p><p>  LCALL MAIN0 </p><p>

85、<b>  A33:</b></p><p>  CJNE A,#04H,A44</p><p>  LCALL MODD</p><p>  LCALL INITILE2 </p><p>  LCALL MAIN0</p><p><b>  A44:</b>&

86、lt;/p><p>  CJNE A,#05H,A55</p><p>  LCALL MODD </p><p>  LCALL INITILE2 </p><p>  LCALL MAIN0</p><p><b>  A55:</b></p><p>  CJN

87、E A,#06H,A66</p><p>  LCALL MODD</p><p>  LCALL INITILE2 </p><p>  LCALL MAIN0 </p><p><b>  A66:</b></p><p>  CJNE A,#07H,A77</p>

88、<p>  LCALL MODD </p><p>  LCALL INITILE2 </p><p>  LCALL MAIN0 </p><p><b>  A77:</b></p><p>  CJNE A,#08H,A88</p><p>  LCALL M

89、ODD </p><p>  LCALL INITILE2 </p><p>  LCALL MAIN0</p><p><b>  A88:</b></p><p>  90CJNE A,#09H,A99</p><p>  LCALL MODD</p><p>

90、;  LCALL INITILE2 </p><p>  LCALL MAIN0 </p><p><b>  A99:</b></p><p>  CJNE A,#0AH,AAA</p><p>  LCALL MODD</p><p>  LCALL INITILE2

91、 </p><p>  LCALL MAIN0 </p><p>  AAA:RET </p><p><b>  INITILE2:</b></p><p>  MOV L50MS,#20</p><p>  MOV L1MS,#00H</p>&

92、lt;p>  MOV L250MS,#00H</p><p>  MOV SEC,#00H</p><p>  MOV MIN,#00H</p><p>  MOV HOU,#00H</p><p><b>  MOV A,HOU</b></p><p><b>  MOV B,#

93、10</b></p><p><b>  DIV AB</b></p><p>  ADD A,#30H ;將BCD嗎轉(zhuǎn)化為ASIIC碼</p><p>  MOV P0,#0C8H ;顯示小時十位</p><p>  CALL ENABLE</p><p>  

94、CALL WRITE2</p><p><b>  MOV A,B</b></p><p>  ADD A,#30H</p><p>  MOV P0,#0C9H ;顯示小時個位</p><p>  CALL ENABLE</p><p>  CALL WRITE2</p>&

95、lt;p>  MOV A,#3AH</p><p>  MOV P0,#0DH ;顯示冒號</p><p>  CALL ENABLE</p><p>  CALL WRITE2</p><p><b>  MOV A,MIN</b></p><p><b>  MOV B,

96、#10</b></p><p><b>  DIV AB</b></p><p>  ADD A,#30H</p><p>  MOV P0,#0CBH ;顯示分十位</p><p>  CALL ENABLE</p><p>  CALL WRITE2</p>&

97、lt;p><b>  MOV A,B</b></p><p>  ADD A,#30H</p><p>  MOV P0,#0CCH ;顯示分個位</p><p>  CALL ENABLE</p><p>  CALL WRITE2</p><p>  MOV A,#3AH</

98、p><p>  MOV P0,#0CDH ;顯示冒號</p><p>  CALL ENABLE</p><p>  CALL WRITE2</p><p><b>  MOV A,SEC</b></p><p><b>  MOV B,#10</b></p>

99、<p><b>  DIV AB</b></p><p>  ADD A,#30H </p><p>  MOV P0,#0CEH ;顯示秒十位</p><p>  CALL ENABLE</p><p>  CALL WRITE2</p><p><b>  MOV

100、A,B</b></p><p>  ADD A,#30H</p><p>  MOV P0,#0CFH ;顯示秒個位</p><p>  CALL ENABLE</p><p>  CALL WRITE2</p><p>  MOV P0,#0C0H ;設(shè)光標(biāo)地址 </p><

101、;p>  CALL ENABLE</p><p>  MOV DPTR,#TABLE2;寫數(shù)據(jù)</p><p>  CALL WRITE1 </p><p><b>  RET寫指令</b></p><p><b>  ENABLE: </b></p><p

102、><b>  CLR RS</b></p><p><b>  CLR RW</b></p><p><b>  CLR E</b></p><p>  LCALL DELAY</p><p><b>  SETB E</b></p>

103、<p><b>  RET寫數(shù)據(jù)</b></p><p><b>  WRITE1:</b></p><p>  MOV R1,#00H</p><p><b>  A1:</b></p><p><b>  MOV A,R1</b></p

104、><p>  MOVC A,@A+DPTR</p><p>  CALL WRITE2</p><p><b>  INC R1</b></p><p>  CJNE A,#0FEH,A1 ;未到字符串末尾繼續(xù)</p><p><b>  RET</b></p>

105、<p><b>  WRITE2:</b></p><p><b>  MOV P0,A</b></p><p><b>  SETB RS</b></p><p><b>  CLR RW</b></p><p><b>  CLR

106、 E</b></p><p>  CALL DELAY</p><p><b>  SETB E</b></p><p><b>  RET</b></p><p><b>  DELAY:</b></p><p>  MOV R4,#05&

107、lt;/p><p><b>  D1:</b></p><p>  MOV R5,#0FFH</p><p><b>  DJNZ R5,$</b></p><p>  DJNZ R4,D1</p><p><b>  RET </b></p>

108、<p><b>  TAB:</b></p><p>  db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h</p><p>  db 80h,90h,88h,83h,0c6h,0a1h,86h,8eh</p><p>  TAB1:db 89h,86h,0c7h,0c7h,0c0h</p>

109、<p>  TAB2:db 0c6h,88h,0c0h</p><p>  TABLE1:DB'WELCOM HERE',0FEH</p><p>  TABLE2:DB'DFF WB ',0FEH</p><p>  TABLE4:DB 'CAU',0FEH</p><p>  

110、TABLE3:DB 30H,31H,32H,33h </p><p>  DB 34H,35H,36H,37H</p><p>  DB 38h,39H,41H,42H</p><p>  DB 43H,44H,45H,46H播放歌曲程序</p><p><b>  MAIN0:</b></p>&l

111、t;p>  MOV TMOD,#11H</p><p>  MOV IE,#8aH </p><p>  MOV TH1,#3cH</p><p>  MOV TL1,#0b0H </p><p><b>  lcall ks</b></p><p>  jnz TTM12

112、 </p><p>  MOV 40H,#00H</p><p><b>  NEXT20:</b></p><p><b>  MOV A,40H</b></p><p>  MOV DPH,52H</p><p>  MOV DPL,53H</p>&

113、lt;p>  MOVC A,@A+DPTR</p><p><b>  MOV R2,A</b></p><p><b>  JZ STOP</b></p><p>  ANL A,#0FH</p><p><b>  MOV R1,A</b></p>&l

114、t;p><b>  MOV A,R2</b></p><p><b>  SWAP A</b></p><p>  ANL A,#0FH</p><p><b>  JNZ SING</b></p><p><b>  CLR TR0</b><

115、/p><p><b>  JMP W1</b></p><p><b>  SING:</b></p><p><b>  DEC A</b></p><p><b>  MOV 22H,A</b></p><p><b> 

116、 RL A</b></p><p>  MOV DPTR,#TABLE00</p><p>  MOVC A,@A+DPTR</p><p><b>  MOV TH0,A</b></p><p><b>  MOV 21H,A</b></p><p><b

117、>  MOV A,22H</b></p><p><b>  RL A</b></p><p><b>  INC A</b></p><p>  MOVC A,@A+DPTR</p><p><b>  MOV TL0,A</b></p>&l

118、t;p><b>  MOV 20H,A</b></p><p><b>  SETB TR0</b></p><p><b>  SETB TR1</b></p><p><b>  W1:</b></p><p>  LCALL DELAY30&

119、lt;/p><p><b>  INC 40H</b></p><p>  LCALL KS ;有鍵跳出</p><p><b>  JNZ STOP</b></p><p>  LJMP NEXT20</p><p><b>  STOP:</b

120、></p><p><b>  CLR TR0</b></p><p><b>  CLR TR1</b></p><p>  LJMP MAIN0 </p><p><b>  TTM12:</b></p><p><b>  LCAL

121、L K2</b></p><p><b>  MOV A,37H</b></p><p>  CJNE A,#0EH,TTM13</p><p><b>  CLR TR1</b></p><p>  LCALL DELAY1</p><p><b> 

122、 TTM120:</b></p><p><b>  LCALL KS</b></p><p>  LCALL DELAY1</p><p><b>  JZ TTM120</b></p><p><b>  LCALL K2</b></p><

123、p><b>  MOV A,37H</b></p><p>  CJNE A,#0EH,TTM120</p><p><b>  SETB TR1</b></p><p>  LJMP NEXT20</p><p><b>  TTM13:</b></p>

124、<p>  CJNE A,#0CH,TTM14</p><p><b>  MOV A,52H</b></p><p><b>  INC A</b></p><p><b>  MOV 52H,A</b></p><p><b>  MOV A,53H&l

125、t;/b></p><p><b>  INC A</b></p><p><b>  MOV 53H,A</b></p><p><b>  MOV A,36H</b></p><p><b>  INC A</b></p><

126、p><b>  MOV 37H,A</b></p><p><b>  LJMP TTM2</b></p><p><b>  TTM14:</b></p><p>  CJNE A,#0DH,TTM2</p><p><b>  MOV A,52H</b

127、></p><p><b>  DEC A</b></p><p><b>  MOV 52H,A</b></p><p><b>  MOV A,53H</b></p><p><b>  DEC A</b></p><p>

128、;<b>  MOV 53H,A</b></p><p><b>  MOV A,36H</b></p><p><b>  DEC A</b></p><p>  MOV 37H,A </p><p><b>  TTM2:</b></p>

129、<p>  RET定時器中斷子程序0</p><p><b>  TT0:</b></p><p><b>  PUSH ACC</b></p><p><b>  PUSH PSW</b></p><p>  MOV TL0,20H</p><

130、;p>  MOV TH0,21H</p><p><b>  CPL P3.7</b></p><p><b>  POP PSW</b></p><p><b>  POP ACC</b></p><p>  RETI定時器中斷子程序1</p><p

131、><b>  T1INT: </b></p><p>  MOV TH1, #3cH</p><p>  MOV TL1, #0b0H</p><p>  DJNZ L50MS,X4</p><p>  MOV L50MS,#20每秒種時鐘刷新秒顯示一次</p><p><b> 

132、 SECSET:</b></p><p><b>  MOV A,SEC</b></p><p><b>  MOV B,#10</b></p><p><b>  DIV AB</b></p><p>  ADD A,#30H </p><p&

133、gt;  MOV P0,#0CEH ;顯示秒十位</p><p>  lCALL ENABLE</p><p>  lCALL WRITE2</p><p><b>  MOV A,B</b></p><p>  ADD A,#30H</p><p>  MOV P0,#0CFH ;顯

134、示秒個位</p><p>  lCALL ENABLE</p><p>  lCALL WRITE2</p><p><b>  MOV A,SEC</b></p><p><b>  INC A</b></p><p><b>  MOV SEC,A</b&

135、gt;</p><p><b>  XRL A,#60</b></p><p><b>  X4:</b></p><p><b>  JNZ OUT</b></p><p><b>  MINSET:</b></p><p>  

136、MOV SEC,#00H </p><p><b>  MOV A,MIN</b></p><p><b>  INC A</b></p><p>  MOV MIN,A </p><p><b>  MOV B,#10</b></p><p>&l

137、t;b>  DIV AB</b></p><p>  ADD A,#30H</p><p>  MOV P0,#0CBH ;顯示分十位</p><p>  lCALL ENABLE</p><p>  lCALL WRITE2</p><p><b>  MOV A,B</b&

138、gt;</p><p>  ADD A,#30H</p><p>  MOV P0,#0CCH ;顯示分個位</p><p>  lCALL ENABLE</p><p>  lCALL WRITE2</p><p>  MOV A,MIN </p><p><b>  MOV

139、 B,#3</b></p><p><b>  MUL AB</b></p><p>  MOV B,#100</p><p><b>  DIV AB</b></p><p><b>  MOV R2,A</b></p><p><b

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論