版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 《單片機(jī)原理與應(yīng)用設(shè)計(jì)》項(xiàng)目設(shè)計(jì)報(bào)告</p><p> 課程名稱 單片機(jī)原理與應(yīng)用設(shè)計(jì) </p><p> 任課教師 </p><p> 設(shè)計(jì)題目 數(shù)字音樂盒 </p><p>
2、 班 級(jí) 09級(jí)電子信息工程(2)班 </p><p> 姓 名 </p><p> 學(xué) 號(hào) </p><p> 成 績(jī) <
3、/p><p> 日 期 2012年6月12日 </p><p><b> 目錄</b></p><p><b> 摘要- 2 -</b></p><p> 1系統(tǒng)設(shè)計(jì)分析- 3 -</p><p> 1.1設(shè)計(jì)要求-
4、3 -</p><p> 1.2總體設(shè)計(jì)- 3 -</p><p> 1.3硬件電路設(shè)計(jì)及實(shí)現(xiàn)- 3 -</p><p> 2系統(tǒng)硬件設(shè)計(jì)- 5 -</p><p> 2.1 AT89C51 芯片功能和硬件連接- 5 -</p><p> 2.2系統(tǒng)復(fù)位電路的設(shè)計(jì)- 6 -</p>
5、<p> 2.3時(shí)鐘電路模塊- 6 -</p><p> 2.4輸出顯示電路- 7 -</p><p> 2.5音頻輸出部分- 7 -</p><p> 2.6整體硬件電路- 8 -</p><p> 2.6.1鍵盤按鍵- 9 -</p><p> 2.6.2原理說明- 9 -<
6、/p><p> 3音符頻率和節(jié)拍的產(chǎn)生方法- 10 -</p><p> 3.1音符頻率- 10 -</p><p> 3.2利用定時(shí)器/計(jì)數(shù)器0產(chǎn)生音符頻率- 10 -</p><p> 4系統(tǒng)軟件設(shè)計(jì)- 11 -</p><p> 4.1 主模塊的設(shè)計(jì)- 11 -</p><p&
7、gt; 4.2 外部中斷源系統(tǒng)設(shè)計(jì)- 12 -</p><p> 4.3基本顯示模塊設(shè)計(jì)- 13 -</p><p> 4.4音調(diào)、節(jié)拍以及編碼的確定方法- 14 -</p><p> 5總結(jié)- 14 -</p><p> 6參考文獻(xiàn)- 15 -</p><p> 7附件- 15 -</p
8、><p> 參考程序- 15 -</p><p><b> 摘要</b></p><p> 電子音樂已廣泛地應(yīng)用于社會(huì)生活的各個(gè)領(lǐng)域。其類型從音樂卡片到CD、MP3 等多種多樣,制作原理也各不相同。聲音是通過振動(dòng)產(chǎn)生的。單片機(jī)對(duì)某一I/O引腳以一定的頻率循環(huán)置1和清0,這一引腳便產(chǎn)生一定頻率的方波,該方波通過放大后作用于揚(yáng)聲器便產(chǎn)生一定頻率
9、的聲音。若改變輸出方波的頻率,產(chǎn)生的聲音也就改變了。通過控制輸出方波的時(shí)間長(zhǎng)短,聲音的長(zhǎng)短也就得到控制。因此,根據(jù)樂譜,單片機(jī)就可產(chǎn)生電子音樂。音樂中最關(guān)鍵的兩個(gè)要素是音符和節(jié)拍。單片機(jī)控制的音樂發(fā)生器系統(tǒng)由硬件電路和軟件兩部分構(gòu)成。利用單片機(jī)控制的電子音樂發(fā)生器軟硬件上具有獨(dú)特的優(yōu)點(diǎn),系統(tǒng)的開發(fā)周期短,成本低,電路制作容易。更換歌曲時(shí),硬件電路無需作任何修改,只需修改軟件即可實(shí)現(xiàn)。軟件編程時(shí),可用51系列單片機(jī)的匯編語言或C51語言實(shí)
10、現(xiàn)。同時(shí)還可根據(jù)個(gè)人的習(xí)好通過軟件改變節(jié)拍的延時(shí)時(shí)間,增加電子音樂的趣味性。</p><p> 本設(shè)計(jì)是基于51系列單片機(jī),蜂鳴器,數(shù)碼管LCD的數(shù)字音樂盒設(shè)計(jì),通過利用i/o一定頻率的方波,驅(qū)動(dòng)蜂鳴器,發(fā)出不同的音調(diào),從而演奏各種樂曲(本設(shè)計(jì)為十首,若有必要,可以增加),可以通過功能鍵來選擇樂曲,暫停,播放,前進(jìn),后退等功能。</p><p> 音樂盒的電路設(shè)計(jì)過程在硬件與軟件方面進(jìn)
11、行同步。其中,硬件方面選擇內(nèi)部存儲(chǔ)資源豐富的AT89C51單片機(jī),時(shí)鐘采用12MHZ晶體振蕩電路。軟件方面,從分析電路各個(gè)功能子模塊的功能、流程圖設(shè)計(jì),在到程序的編寫設(shè)計(jì)均進(jìn)行了綜合的考慮。編成語言從程序總體設(shè)計(jì)以及高效性的硬件方面考慮,采用匯編語言進(jìn)行編寫。</p><p><b> 1系統(tǒng)設(shè)計(jì)分析</b></p><p><b> 設(shè)計(jì)要求</
12、b></p><p> 以單片機(jī)為核心器件組成一個(gè)音樂盒。</p><p> 利用I/O口產(chǎn)生一定頻率的方波,驅(qū)動(dòng)蜂鳴器,發(fā)出不同的音調(diào),從而演奏樂曲。</p><p> 音樂盒音符范圍,C調(diào)低音5——高音5。</p><p> 內(nèi)部存放十二首可以播放的歌曲。</p><p> 利用鍵盤選擇歌曲,每個(gè)按
13、鍵對(duì)應(yīng)不同的歌曲,還應(yīng)有停止、上一曲,下一曲功能的按鍵。</p><p> 采用LED顯示歌曲序號(hào)</p><p> 利用LCD液晶顯示歌曲的序號(hào)、播放時(shí)間,開機(jī)時(shí)顯示英文歡迎提示字符。</p><p><b> 總體設(shè)計(jì)</b></p><p> 選擇89C51單片機(jī):</p><p>
14、 用P1.0~P1.7控制按鍵,其中P1.0~P1.3掃描行,P1.4~P1.7掃描列</p><p> 用P0.0~P0.7控制LED,顯示數(shù)字0~9及字母ABCF</p><p> 用P3.7口控制蜂鳴器</p><p> 電路為12MHZ晶振頻率工作,起振電路中C1,C2均為30pf</p><p><b> 采用上
15、電自動(dòng)復(fù)位</b></p><p> 1.3硬件電路設(shè)計(jì)及實(shí)現(xiàn)</p><p> 本設(shè)計(jì)中用到了AT89C51單片機(jī),4*4鍵盤,蜂鳴器,2 LCD等硬件電路常用元器件??傮w框圖如下:</p><p> 1-1硬件系統(tǒng)總體框圖</p><p> 利用單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器0與P3.7引腳配合,構(gòu)成音頻發(fā)生器,2N2905
16、與R2組成音頻放大器,驅(qū)動(dòng)揚(yáng)聲器輸出。選擇按鍵通過 P1引腳接入,工作在中斷方式。器件的參數(shù)選擇可以參考硬件電路原理圖中給出的值。音樂盒硬件電路原理圖如下:</p><p><b> 1-2硬件電路仿真</b></p><p><b> 2系統(tǒng)硬件設(shè)計(jì)</b></p><p> 本設(shè)計(jì)中用到了AT89C51單片機(jī),4
17、*4鍵盤,蜂鳴器,2 LCD等硬件電路常用元器件。</p><p> 2.1 AT89C51 芯片功能和硬件連接</p><p> AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器的低電壓,高性能CMOS8位微處理器,俗稱單片機(jī)。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中
18、,ATMEL的AT89C51是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。</p><p> 2-1 AT89C51芯片引腳圖</p><p><b> VCC:正電源端</b></p><p> GND:單片機(jī)的接地端</p><p> XTAL1/XTAL2:片內(nèi)振蕩電路輸入/輸出
19、端,兩端跨接晶體或陶瓷諧振器,與單片機(jī)內(nèi)部反相器構(gòu)成穩(wěn)定的自激振蕩器。發(fā)出的脈沖直接送入片內(nèi)定的控制部件</p><p><b> RESET:復(fù)位端</b></p><p> EA/VPP:尋址外部ROM控制端/編程電源輸入端。</p><p> ALE/PROG:地址鎖存允許/編程脈沖輸入端。</p><p>
20、 PSEN:尋址外部程序存儲(chǔ)器,選通外部EPROM的端口(OE)。</p><p> P0.0~P0.7 P1.0~P1.7 P2.0~P2.7:準(zhǔn)雙向I/O口。</p><p> P3.0~P3.7:具有特定的第二功能(準(zhǔn)雙向I/O口)。</p><p> 2.2系統(tǒng)復(fù)位電路的設(shè)計(jì)</p><p> 智能系統(tǒng)一般應(yīng)有手動(dòng)或上電
21、復(fù)位電路。復(fù)位電路的實(shí)現(xiàn)通常有兩種方式:RC復(fù)位電路和專用µP監(jiān)控電路。前者實(shí)現(xiàn)簡(jiǎn)單,成本低,但復(fù)位可靠性相對(duì)較低;后者成本較高,但復(fù)位可靠性高,尤其是高可靠重復(fù)復(fù)位。對(duì)于復(fù)位要求高、并對(duì)電源電壓進(jìn)行監(jiān)視的場(chǎng)合,大多采用這種方式。</p><p><b> 2-1 復(fù)位電路</b></p><p><b> 2.3時(shí)鐘電路模塊</b>
22、;</p><p> 時(shí)鐘電路在單片機(jī)系統(tǒng)中起著非常重要的作用,是保證系統(tǒng)正常工作的基礎(chǔ)。在一個(gè)單片機(jī)應(yīng)用系統(tǒng)中,時(shí)鐘是保障系統(tǒng)正常工作的基準(zhǔn)振蕩定時(shí)信號(hào),主要由晶振和外圍電路組成,晶振頻率的大小決定了單片機(jī)系統(tǒng)工作的快慢。為達(dá)到振蕩周期是12MHZ的要求,這里要采用12MHZ的晶振,另外有兩個(gè)22P的獨(dú)石電容,兩晶振引腳分別連到XTAL1和XTAL2振蕩脈沖輸入引腳。具體連接圖如圖2-2所示:</p&g
23、t;<p> 2-2 時(shí)鐘模塊電路</p><p><b> 2.4輸出顯示電路</b></p><p> 用P2.0~P2.2作為L(zhǎng)CD的RS、R/W、E的控制信號(hào);用P0.0~P0.7作為L(zhǎng)CD的D0~D7的控制信號(hào)。由于P0口作為輸出,應(yīng)加上拉電阻。</p><p><b> 2.5音頻輸出部分</b
24、></p><p> 整個(gè)輸出部分由一個(gè)100uF電容、兩個(gè)S9013 NPN三極管和一個(gè)蜂鳴器/喇叭組成,原理圖如右圖所示:</p><p> 100uF電容是用來濾波的,兩個(gè)NPN三極管起到放大信號(hào)的作用,最后由蜂鳴器/喇叭表現(xiàn)出信號(hào)。用P3.7口控制蜂鳴器。輸出顯示電路如圖2-3所示:</p><p><b> 2-3輸出顯示電路<
25、/b></p><p><b> 2.6整體硬件電路</b></p><p> 2-4音樂盒硬件電路原理圖</p><p><b> 2.6.1鍵盤按鍵</b></p><p><b> 鍵盤按鍵分布如下:</b></p><p><
26、b> 按鍵功能說明:</b></p><p><b> 2.6.2原理說明</b></p><p> 當(dāng)鍵盤有鍵按下時(shí),判斷鍵值,啟動(dòng)計(jì)數(shù)器T0,產(chǎn)生一定頻率的脈沖,驅(qū)動(dòng)蜂鳴器,放出樂曲。同時(shí)啟動(dòng)定時(shí)器T1,顯示樂曲播放的時(shí)間,并驅(qū)動(dòng)LCD,顯示歌曲號(hào)及播放時(shí)間。</p><p> 1) 硬件電路中用P1.0~P1.7
27、控制按鍵,其中P1.0~P1.3掃描行,P1.4~P1.7掃描列;</p><p> 2)用P2.0~P2.2作為L(zhǎng)CD的RS、R/W、E的控制信號(hào);</p><p> 3)用P0.0~P0.7作為L(zhǎng)CD的D0~D7的控制信號(hào);</p><p> 4)用P3.7口控制蜂鳴器;</p><p> 5)電路為12MHz晶振頻率工作,起振電
28、路中C1,C2均為30pf。</p><p> 3音符頻率和節(jié)拍的產(chǎn)生方法</p><p><b> 3.1音符頻率</b></p><p> 我們知道,之所以有不同的音調(diào)正是因?yàn)椴煌囊舴麑?duì)應(yīng)不同的頻率。表1-3給出了我們從低音1到高音7所對(duì)應(yīng)的頻率。即在編程時(shí)我們要根據(jù)音調(diào)的變化調(diào)整頻率的變化。</p><p>
29、; 3.2利用定時(shí)器/計(jì)數(shù)器0產(chǎn)生音符頻率</p><p> 利用單片機(jī)的內(nèi)部定時(shí)器/計(jì)數(shù)器0,使其工作在模式1,定時(shí)中斷,然后控制P3.7引腳的輸出每次取反,就可以在P3.7的引腳輸出相應(yīng)的方波頻率。改變計(jì)數(shù)初值就可以改變頻率。即要產(chǎn)生音頻輸出方波,首先要算出某一個(gè)音頻的周期(1/f),然后將此周期除以2,得到半個(gè)周期的時(shí)間。定時(shí)器的定時(shí)時(shí)間等于半個(gè)周期,定時(shí)時(shí)間到就將輸出脈沖取反,重復(fù)上述過程,就可以在P
30、3.7腳上得某一音頻的脈沖。</p><p> 例如:中音1(DO)的頻率=523Hz,周期T=1/523s=1912毫秒;</p><p> 定時(shí)器/計(jì)數(shù)器0的定時(shí)時(shí)間為:T/2=956毫秒;</p><p> 定時(shí)956毫秒的計(jì)數(shù)值=定時(shí)時(shí)間/機(jī)器周期=956毫秒/1毫秒=956(時(shí)鐘頻率=12MHz)</p><p> 裝入TH
31、0、TL0的計(jì)數(shù)初值THTL=65536-956=64580.</p><p> 將64580裝入TH0、TL0寄存器中,啟動(dòng)T1工作后,每計(jì)數(shù)956次時(shí)將產(chǎn)生溢出中斷,進(jìn)入中斷服務(wù)程序是,每次對(duì)P3.0引腳的輸出值進(jìn)行取反,就可得到中音DO(523Hz)的音符頻率。</p><p> 表3-1 音符與頻率、編碼及定時(shí)器初值對(duì)應(yīng)表</p><p><b&g
32、t; 4系統(tǒng)軟件設(shè)計(jì)</b></p><p> 4.1 主模塊的設(shè)計(jì)</p><p> 主模塊是系統(tǒng)軟件的主框架。結(jié)構(gòu)化程序設(shè)計(jì)一般有“自上而下”和“自下而上”兩種方式,“自上而下”法的核心就是主框架的構(gòu)建。它的合理與否關(guān)系到程序最終的功能的多少和性能的好壞。本系統(tǒng)的主模塊的程序框圖如下圖4-1所示:</p><p><b> 4-1程
33、序框圖</b></p><p> 4.2 外部中斷源系統(tǒng)設(shè)計(jì)</p><p> 在本設(shè)計(jì)中中斷源是采用外部中斷0方式,其入口地址是0003H。其中斷響應(yīng)級(jí)別最高。</p><p> ?。?)定時(shí)器/計(jì)數(shù)器</p><p> 工作方式寄存器TMOD用于選擇定時(shí)器/計(jì)數(shù)器的工作方式和工作模式。其格式如下表4.1:</p&g
34、t;<p><b> 表4-2</b></p><p> 下面表4.2對(duì)TMOD各位進(jìn)行說明:</p><p><b> 門控位—GATE</b></p><p> 工作方式選擇位—M1、M0</p><p><b> 表4-3</b></p>
35、;<p> 其中,在本設(shè)計(jì)中采用方式1的16位定時(shí)器/計(jì)數(shù)器。</p><p> —計(jì)數(shù)器模式和定時(shí)器模式選擇位</p><p> =0,為定時(shí)器模式。</p><p><b> =1,為計(jì)數(shù)模式。</b></p><p> 定時(shí)器/計(jì)數(shù)器控制寄存器TCON,其格式如下表4.3:</p>
36、;<p><b> 表4-4</b></p><p><b> 其各位的功能如下:</b></p><p> TF1、TF0—計(jì)數(shù)溢出標(biāo)志位當(dāng)計(jì)數(shù)器溢出時(shí),該位置1。</p><p> TR1、TR0—計(jì)數(shù)運(yùn)行控制位</p><p> 4.3基本顯示模塊設(shè)計(jì)</p>
37、;<p> 基本顯示模塊設(shè)計(jì)的重點(diǎn)是由顯示代碼取得相應(yīng)的段碼,顯示段碼數(shù)據(jù)的并行發(fā)送,高精度的計(jì)時(shí)工具大多數(shù)都使用了石英晶體振蕩器,由于電子鐘,石英表,石英鐘都采用了石英技術(shù),因此走時(shí)精度高,穩(wěn)定性好,使用方便,不需要經(jīng)常調(diào)校,數(shù)字式電子鐘用集成電路計(jì)時(shí)時(shí),譯碼代替機(jī)械式傳動(dòng),用LED顯示器代替顯示器代替指針顯示進(jìn)而顯示時(shí)間,減小了計(jì)時(shí)誤差,這種表具有時(shí),分,秒顯示時(shí)間的功能,還可以進(jìn)行時(shí)和分的校對(duì),片選的靈活性好。&l
38、t;/p><p> 程序流程如圖4-5所示:</p><p><b> 圖4-5</b></p><p> 4.4音調(diào)、節(jié)拍以及編碼的確定方法</p><p> 一般說來,單片機(jī)演奏音樂基本都是單音頻率,它不包含相應(yīng)幅度的諧波頻率,也就是說不能像電子琴那樣能奏出多種音色的聲音。因此單片機(jī)奏樂只需弄清楚兩個(gè)概念即可,也
39、就是“音調(diào)”和節(jié)拍表示一個(gè)音符唱多長(zhǎng)的時(shí)間。</p><p><b> 5總結(jié)</b></p><p> 經(jīng)過兩個(gè)星期的努力,本次單片機(jī)設(shè)計(jì)的任務(wù)——基于單片機(jī)電子音樂盒的設(shè)計(jì)已經(jīng)完成。雖然對(duì)于完成題目的基本要求而言難度并不十分大,但能夠從設(shè)計(jì)、論證、制板、編程到最終的調(diào)試成功,完整系統(tǒng)地獨(dú)立完成一項(xiàng)單片機(jī)作品這是一次難得的實(shí)踐機(jī)會(huì)。</p><
40、;p> 最終完成的電子音樂盒作品系統(tǒng)實(shí)用性強(qiáng)、結(jié)構(gòu)簡(jiǎn)單、成本低、外接元件少。在實(shí)際應(yīng)用中工作性能穩(wěn)定,系統(tǒng)功能、指標(biāo)達(dá)到了課題的預(yù)期要求。系統(tǒng)在硬件設(shè)計(jì)上充分考慮到了可擴(kuò)展性,充分利用單片機(jī)閑置的P1口,添加了LCD點(diǎn)陣移位顯示部分,使得作品圖聲并茂,增加趣味的同時(shí)也提高了單片機(jī)的利用率。</p><p> 但是這次設(shè)計(jì)仍存在一些需要改進(jìn)之處。如音樂盒功能部分中,按鍵選擇只有在一首歌曲結(jié)束之后才能生效,
41、而不能在歌曲播放過程中使中斷生效跳轉(zhuǎn)播放下一首音樂。</p><p> 通過這次單片機(jī)實(shí)踐設(shè)計(jì),我深刻地認(rèn)識(shí)到學(xué)好專業(yè)知識(shí)的重要性,也理解了理論聯(lián)系實(shí)際的含義,并且檢驗(yàn)了大學(xué)三年的學(xué)習(xí)成果。雖然在這次設(shè)計(jì)中對(duì)知識(shí)的運(yùn)用和銜接還不夠熟練。但是我們將在以后的學(xué)習(xí)中會(huì)繼續(xù)努力、不斷完善。這次的設(shè)計(jì)是對(duì)過去所學(xué)知識(shí)的系統(tǒng)提高和擴(kuò)充的過程,今后我將不斷加深理論基礎(chǔ)和實(shí)踐能力,在以后的學(xué)習(xí)實(shí)踐中取得更大的進(jìn)步。</p
42、><p><b> 6參考文獻(xiàn)</b></p><p> [1]韓志軍,沈晉源等.單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì):入門向?qū)c設(shè)計(jì)實(shí)例.北京:機(jī)械工業(yè)出版社,2005.88~94</p><p> [2]戴佳,戴衛(wèi)恒等.51單片機(jī)C語言應(yīng)用程序設(shè)計(jì)實(shí)例精講.北京:電子工業(yè)出版社,2006.152~156</p><p> [3]沈
43、慶陽.8051單片機(jī)實(shí)踐與應(yīng)用.北京:清華大學(xué)出版社,2002.139~143</p><p> [4]王幸之,鐘愛琴等.AT89系列單片機(jī)原理與接口技術(shù).北京:北京航空航天大學(xué)出版社,2004.170~179</p><p><b> 7附件</b></p><p><b> 參考程序</b></p>
44、<p> RS BIT P2.0;引腳定義,定義液晶顯示端口標(biāo)號(hào)</p><p> RW BIT P2.1</p><p> E BIT P2.2</p><p> L50MS EQU 60H ;工作內(nèi)存定義</p><p> L1MS EQU 61H</
45、p><p> L250MS EQU 62H</p><p> SEC EQU 65H</p><p> MIN EQU 64H</p><p> HOU EQU 63H</p><p> ORG 0000H</p><p> LJMP MAI
46、N</p><p> ORG 000BH ;定時(shí)器T0溢出中斷入口地址</p><p><b> LJMP TT0</b></p><p> ORG 001BH ; 定時(shí)器T1溢出中斷入口地址</p><p> LJMP T1INT</p><p> ORG 1000H&l
47、t;/p><p> MAIN: ;液晶初始化</p><p> MOV SP,#70H </p><p> MOV P0,#01H ;清屏</p><p> CALL DISPLAY</p><p> MOV P0,#38H ;8位,2行顯示&l
48、t;/p><p> LCALL DISPLAY</p><p> MOV P0,#0FH ;屏顯on,光標(biāo)on,閃爍on</p><p> LCALL DISPLAY</p><p> MOV P0,#06H ;計(jì)數(shù)地址加1,顯示幕on</p><p> LCALL DISPLAY&l
49、t;/p><p> LCALL INITIL ;內(nèi)存初始化</p><p> WAIT: LCALL KEY ;鍵盤掃描,是否有鍵按下,否則等待</p><p> LCALL MODD </p><p> LJMP WAIT</p><p> KEY: NOP</p
50、><p><b> NOP</b></p><p><b> LCALL KS</b></p><p> JNZ K1 ;有按鍵轉(zhuǎn)到K1</p><p> LCALL KAIJI</p><p> LCALL SOP</p><p
51、> XN: LJMP KEY</p><p> K1: LCALL MODD</p><p> LCALL MODD</p><p><b> LCALL KS</b></p><p><b> JNZ K2</b></p><p>&l
52、t;b> LJMP KEY</b></p><p> K2: MOV R2,#0FEH ;讀鍵盤</p><p> MOV R4,#00H</p><p> K3: MOV A,R2</p><p><b> MOV P1,A</b></p><p
53、><b> MOV A,P1</b></p><p> JB ACC.4,L1 ;為1跳轉(zhuǎn),第一行無按鍵</p><p> MOV A,#00H</p><p><b> LJMP LK</b></p><p> L1: JB ACC.5,L2<
54、/p><p> MOV A,#04H</p><p><b> LJMP LK</b></p><p> L2: JB ACC.6,L3</p><p> MOV A,#08H</p><p><b> LJMP LK</b></p>&l
55、t;p> L3: JB ACC.7,NEXT1</p><p> MOV A,#0CH</p><p> LK: ADD A,R4</p><p><b> PUSH ACC</b></p><p> K4: LCALL DELAY1 ;若同時(shí)有其他按鍵,則等待</p
56、><p><b> LCALL KS</b></p><p><b> JNZ K4</b></p><p> MOV R3,#07H </p><p><b> CLR A</b></p><p> MOV R0,#30H<
57、;/p><p> MOV R1,#31H</p><p> MM1: MOV A,@R1</p><p> MOV @R0,A</p><p><b> INC R0</b></p><p><b> INC R1</b></p><p
58、> DJNZ R3,MM1</p><p><b> POP ACC</b></p><p> MOV @R0,A </p><p><b> RET</b></p><p> NEXT1: INC R4 ;列掃描</p><p><b&
59、gt; MOV A,R2</b></p><p> JNB ACC.3,N2</p><p><b> LJMP N1</b></p><p> N2: LJMP KEY</p><p> N1: RL A</p><p><b> MO
60、V R2,A</b></p><p><b> LJMP K3</b></p><p> KS: MOV A,#0F0H ;判斷P1口</p><p><b> MOV P1,A</b></p><p><b> NOP</b><
61、/p><p><b> NOP</b></p><p><b> MOV A,P1</b></p><p><b> CPL A</b></p><p> ANL A,#0F0H</p><p><b> RET</b>
62、</p><p> DELAY1:SETB RS0</p><p> DL: MOV R5,#0AH</p><p> DL2: MOV R6,#63</p><p> DL3: NOP </p><p><b> NOP</b></p><
63、p> DJNZ R6,DL3</p><p> DJNZ R5,DL2 </p><p> CLR RS0 </p><p><b> RET</b></p><p> INITIL: ;30H-37H初值為零</p><p>
64、 MOV R3,#08H</p><p> MOV R0,#30H</p><p> M1: MOV @R0,#00H</p><p><b> INC R0</b></p><p> DJNZ R3,M1 </p><p><b> RET&l
65、t;/b></p><p> MODD: ;顯示</p><p> MOV P0,#8EH</p><p> CALL DISPLAY </p><p> MOV A,37H</p><p> MOV DPTR,#TABLE3
66、 </p><p> MOVC A,@A+DPTR</p><p> CALL WRITE2 </p><p><b> RET</b></p><p> KAIJI: MOV A,37H ;開機(jī)提示字</p><p> CJNE A,#0FH,
67、DFF</p><p> MOV P0,#80H ;設(shè)光標(biāo)地址 </p><p> CALL DISPLAY</p><p> MOV DPTR,#TABLE1;寫數(shù)據(jù)</p><p> CALL WRITE1 </p><p> DFF: RET</p
68、><p><b> ;按鍵值播放歌曲</b></p><p> SOP: MOV A,37H</p><p> CJNE A,#01H,A11</p><p> LCALL MODD</p><p> MOV 52H,#HIGH TABLE10</p><p
69、> MOV 53H,#LOW TABLE10</p><p> LCALL INITILE2</p><p> LCALL MAIN0</p><p> A11: CJNE A,#02H,A22</p><p> LCALL MODD</p><p> MOV 52H,#HIGH T
70、ABLE20</p><p> MOV 53H,#LOW TABLE20 </p><p> LCALL INITILE2 </p><p> lcall MAIN0</p><p> A22: CJNE A,#03H,A33</p><p> LCALL MODD</p>
71、;<p> MOV 52H,#HIGH TABLE30</p><p> MOV 53H,#LOW TABLE30 </p><p> LCALL INITILE2 </p><p> lcall MAIN0 </p><p> A33: CJNE A,#04H,A44</p
72、><p> LCALL MODD</p><p> MOV 52H,#HIGH TABLE40</p><p> MOV 53H,#LOW TABLE40 </p><p> LCALL INITILE2 </p><p> lcall MAIN0</p><p>
73、A44: CJNE A,#05H,A55</p><p> LCALL MODD</p><p> MOV 52H,#HIGH TABLE50</p><p> MOV 53H,#LOW TABLE50 </p><p> LCALL INITILE2 </p><p> lcall
74、 MAIN0</p><p> A55: CJNE A,#06H,A66</p><p> LCALL MODD</p><p> MOV 52H,#HIGH TABLE60</p><p> MOV 53H,#LOW TABLE60 </p><p> LCALL INITILE2
75、 </p><p> lcall MAIN0 </p><p> A66: CJNE A,#07H,A77</p><p> LCALL MODD</p><p> MOV 52H,#HIGH TABLE70</p><p> MOV 53H,#LOW TABLE70 </p>
76、;<p> LCALL INITILE2 </p><p> lcall MAIN0 </p><p> A77: CJNE A,#08H,A88</p><p> LCALL MODD</p><p> MOV 52H,#HIGH TABLE80</p><p&
77、gt; MOV 53H,#LOW TABLE80 </p><p> LCALL INITILE2 </p><p> lcall MAIN0</p><p> A88: CJNE A,#09H,A99</p><p> LCALL MODD</p><p> MOV 52H,#
78、HIGH TABLE90</p><p> MOV 53H,#LOW TABLE90 </p><p> LCALL INITILE2 </p><p> lcall MAIN0 </p><p> A99: CJNE A,#0AH,AAA</p><p> LCALL M
79、ODD</p><p> MOV 52H,#HIGH TABLE100</p><p> MOV 53H,#LOW TABLE100 </p><p> LCALL INITILE2 </p><p> lcall MAIN0 </p><p> AAA: RET
80、 </p><p><b> INITILE2:</b></p><p> MOV L50MS,#20</p><p> MOV L1MS,#00H</p><p> MOV L250MS,#00H</p><p> MOV SEC,#00H</p><
81、;p> MOV MIN,#00H</p><p> MOV HOU,#00H</p><p> MOV A,HOU</p><p> MOV B,#10</p><p><b> DIV AB</b></p><p> ADD A,#30H ;將BCD
82、嗎轉(zhuǎn)化為ASIIC碼</p><p> MOV P0,#0C8H ;顯示小時(shí)十位</p><p> CALL DISPLAY</p><p> CALL WRITE2</p><p><b> MOV A,B</b></p><p> ADD A,#30H<
83、/p><p> MOV P0,#0C9H ;顯示小時(shí)個(gè)位</p><p> CALL DISPLAY</p><p> CALL WRITE2</p><p> MOV A,#3AH</p><p> MOV P0,#0DH ;顯示冒號(hào)</p><p>
84、CALL DISPLAY</p><p> CALL WRITE2</p><p> MOV A,MIN</p><p> MOV B,#10</p><p><b> DIV AB</b></p><p> ADD A,#30H</p><p>
85、 MOV P0,#0CBH ;顯示分十位</p><p> CALL DISPLAY</p><p> CALL WRITE2</p><p><b> MOV A,B</b></p><p> ADD A,#30H</p><p> MOV P0,#0CCH
86、 ;顯示分個(gè)位</p><p> CALL DISPLAY</p><p> CALL WRITE2</p><p> MOV A,#3AH</p><p> MOV P0,#0CDH ;顯示冒號(hào)</p><p> CALL DISPLAY</p><p>
87、; CALL WRITE2</p><p> MOV A,SEC</p><p> MOV B,#10</p><p><b> DIV AB</b></p><p> ADD A,#30H </p><p> MOV P0,#0CEH ;顯示秒十位</p&
88、gt;<p> CALL DISPLAY</p><p> CALL WRITE2</p><p><b> MOV A,B</b></p><p> ADD A,#30H</p><p> MOV P0,#0CFH ;顯示秒個(gè)位</p><p>
89、CALL DISPLAY</p><p> CALL WRITE2</p><p> MOV P0,#0C0H ;設(shè)光標(biāo)地址 </p><p> CALL DISPLAY</p><p> MOV DPTR,#TABLE2;寫數(shù)據(jù)</p><p> CALL WRITE1
90、 </p><p><b> RET</b></p><p> DISPLAY: CLR RS ;寫指令</p><p><b> CLR RW</b></p><p><b> CLR E</b></p><p>
91、; LCALL DELAY</p><p><b> SETB E</b></p><p><b> RET</b></p><p> WRITE1: MOV R1,#00H ;寫數(shù)據(jù)</p><p> A1: MOV A,R1</p>
92、<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&
93、gt;<p> WRITE2: MOV P0,A</p><p><b> SETB RS</b></p><p><b> CLR RW</b></p><p><b> CLR E</b></p><p> CALL DE
94、LAY</p><p><b> SETB E</b></p><p><b> RET</b></p><p> DELAY: MOV R4,#05</p><p> D1: MOV R5,#0FFH</p><p> DJNZ
95、R5,$</p><p> DJNZ R4,D1</p><p><b> RET </b></p><p> TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H</p><p> DB 80H,90H,88H,83H,0C6H,0A1H,86H,8EH</
96、p><p> TAB1: DB 89H,86H,0C7H,0C7H,0C0H</p><p> TAB2: DB 0C6H,88H,0C0H</p><p> TABLE1: DB 'WELCOM HERE',0FEH</p><p> TABLE2: DB 'DFF WB ',0FEH
97、</p><p> TABLE4: DB 'CAU',0FEH</p><p> TABLE3: DB 30H,31H,32H,33h </p><p> DB 34H,35H,36H,37H</p><p> DB 38h,39H,41H,42H</p><p>
98、 DB 43H,44H,45H,46H</p><p> MAIN0:MOV TMOD,#11H ;播放歌曲程序 </p><p> MOV IE,#8aH </p><p> MOV TH1, #3cH</p><p> MOV TL1, #0b0H </p><
99、p><b> LCALL KS</b></p><p> JNZ TTM12 </p><p> MOV 40H,#00H</p><p> NEXT20: MOV A,40H</p><p> MOV DPH,52H</p><p> MOV D
100、PL,53H</p><p> MOVCA,@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&
101、lt;/b></p><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
102、> CLR TR0</b></p><p><b> JMP W1</b></p><p> SING: DEC A</p><p> MOV 22H,A</p><p><b> RL A</b></p><p> MOV DP
103、TR,#TABLE00</p><p> MOVC A,@A+DPTR</p><p> MOV TH0,A</p><p> MOV 21H,A</p><p> MOV A,22H</p><p><b> RL A</b></p><p><
104、b> INC A</b></p><p> MOVC A,@A+DPTR</p><p> MOV TL0,A</p><p> MOV 20H,A</p><p><b> SETB TR0</b></p><p> SETB TR1</p>
105、;<p> W1: LCALL DELAY30</p><p><b> INC 40H</b></p><p> LCALL KS ;有鍵跳出</p><p><b> JNZ STOP</b></p><p> LJMP NEXT20&l
106、t;/p><p> STOP: CLR TR0</p><p><b> CLR TR1</b></p><p> LJMP MAIN0 </p><p> TTM12: LCALL K2</p><p> MOV A,37H</p><p&g
107、t; CJNE A,#0EH,TTM13</p><p><b> CLR TR1</b></p><p> LCALL DELAY1</p><p> TTM120:LCALL KS</p><p> LCALL DELAY1</p><p> JZ TTM120<
108、;/p><p><b> LCALL K2</b></p><p> MOV A,37H</p><p> CJNE A,#0EH,TTM120</p><p><b> SETB TR1</b></p><p> LJMP NEXT20</p>
109、<p> TTM13: CJNEA,#0CH,TTM14</p><p> MOV A,52H</p><p><b> INC A</b></p><p> MOV 52H,A</p><p> MOV A,53H</p><p><b> INC
110、A</b></p><p> MOV 53H,A</p><p> MOV A,36H</p><p><b> INC A</b></p><p> MOV 37H,A</p><p> LJMP TTM2</p><p> TTM14:
111、CJNEA,#0DH,TTM2</p><p> MOV A,52H</p><p><b> DEC A</b></p><p> MOV 52H,A</p><p> MOV A,53H</p><p><b> DEC A</b></p&g
112、t;<p> MOV 53H,A</p><p> MOV A,36H</p><p><b> DEC A</b></p><p> MOV 37H,A</p><p><b> TTM2:RET</b></p><p> TT0:
113、PUSH ACC ;定時(shí)器中斷子程序0 </p><p><b> PUSH PSW</b></p><p> MOV TL0,20H</p><p> MOV TH0,21H</p><p><b> CPL P3.7</b></p><p><b
114、> POP PSW</b></p><p><b> POP ACC</b></p><p><b> RETI</b></p><p> ;定時(shí)器中斷子程序1</p><p> T1INT: MOV TH1, #3CH ;定時(shí)器中斷子程序1</p>
115、;<p> MOV TL1, #0B0H</p><p> DJNZ L50MS,X4</p><p> MOV L50MS,#20</p><p> SECSET: ;每秒種時(shí)鐘刷新秒顯示一次</p><p> MOV A,SEC</p><p> MOV B
116、,#10</p><p><b> DIV AB</b></p><p> ADD A,#30H </p><p> MOV P0,#0CEH ;顯示秒十位</p><p> CALL DISPLAY</p><p> CALL WRITE2</p>
117、<p><b> MOV A,B</b></p><p> ADD A,#30H</p><p> MOV P0,#0CFH ;顯示秒個(gè)位</p><p> CALL DISPLAY</p><p> CALL WRITE2</p><p> MOV
118、A,SEC</p><p><b> INC A</b></p><p> MOV SEC,A</p><p> XRL A,#60</p><p> X4: JNZ OUT</p><p> MINSET: MOV SEC,#00H ; *每分鐘刷新分顯示一次<
119、/p><p> MOV A,MIN</p><p><b> INC A</b></p><p> MOV MIN,A </p><p> MOV B,#10</p><p><b> DIV AB</b></p><p> ADD
120、A,#30H</p><p> MOV P0,#0CBH ;顯示分十位</p><p> CALL DISPLAY</p><p> CALL WRITE2</p><p><b> MOV A,B</b></p><p> ADD A,#30H</p>
121、;<p> MOV P0,#0CCH ;顯示分個(gè)位</p><p> CALL DISPLAY</p><p> CALL WRITE2</p><p> MOV A,MIN </p><p><b> MOV B,#3</b></p><p><
122、;b> MUL AB</b></p><p> MOV B,#100</p><p><b> DIV AB</b></p><p><b> MOV R2,A</b></p><p> MOV A,#10</p><p><b&g
123、t; XCH A,B</b></p><p><b> DIV AB</b></p><p> MOV A,MIN</p><p> XRL A,#60</p><p><b> JNZ OUT</b></p><p><b> H
124、OUSET:</b></p><p> MOV MIN,#00H ;每小時(shí)刷新小時(shí)顯示一次 </p><p> MOV A,HOU</p><p> MOV B,#10</p><p><b> DIV AB</b></p><p> ADD A,#30H
125、 ;將BCD嗎轉(zhuǎn)化為ASIIC碼</p><p> MOV P0,#0C8H ;顯示小時(shí)十位</p><p> CALL DISPLAY</p><p> CALL WRITE2</p><p><b> MOV A,B</b></p><p> ADD
126、A,#30H</p><p> MOV P0,#0C9H ;顯示小時(shí)個(gè)位</p><p> CALL DISPLAY</p><p> CALL WRITE2</p><p> MOV A,HOU</p><p><b> INC A</b></p>
127、<p> MOV HOU,A</p><p> XRL A,#10</p><p><b> JNZ OUT</b></p><p> SJMP OVERFLOW</p><p> OUT: RETI;溢出處理</p><p><b> OVERFL
128、OW:</b></p><p> MOV L50MS,#20</p><p> MOV L1MS,#00H</p><p> MOV L250MS,#00H</p><p> MOV SEC,#00H</p><p> MOV MIN,#00H</p><p>
129、 MOV HOU,#00H</p><p><b> RETI</b></p><p> DELAY30: </p><p> MOV R7,#2</p><p> W2: MOV R4,#125</p><p> W3: MOV R3,#248</p&
130、gt;<p> DJNZ R3,$</p><p> DJNZ R4,W3</p><p> DJNZ R7,W2</p><p> DJNZ R1,DELAY30</p><p><b> RET</b></p><p><b> TABLE00:&l
131、t;/b></p><p> DW 64580,64684,64777,64820</p><p> DW 64898,64968,65030,64260</p><p> DW 64400,64524,65058,63835,64021</p><p> TABLE10: ;第一首《精忠報(bào)國(guó)》</p><
132、;p> DB 66H,52H,36H,22H,12H,12H,22H,32H,98H,84H,82H,92H,14H,12H,22H</p><p> DB 32H,52H,22H,42H,38H,66H,52H,36H,22H,12H,22H,22H,32H,98H</p><p> DB 24H,22H,32H,54H,52H,32H,92H,12H,92H,82H,98H
133、,66H,52H,36H,22H</p><p> DB 12H,12H,22H,32H,98H,84H,82H,92H,14H,12H,22H,32H,52H,22H,42H,38H</p><p> DB 66H,52H,36H,22H,12H,22H,22H,32H,98H,24H,22H,32H,54H,52H,32H</p><p> DB 22H,
134、12H,92H,82H,98H,14H,24H,34H,44H,64H,0B4H,64H,32H,52H</p><p> DB 62H,0B2H,62H,52H,38H,24H,22H,32H,54H,52H,62H,52H,32H,32H,22H,38H</p><p> DB 64H,0B4H,64H,32H,52H,62H,0B2H,62H,52H,38H,22H,22H,22
135、H,32H,52H,52H</p><p> DB 52H,62H,7FH,74H,04H,58H,6FH</p><p><b> DB 00</b></p><p> TABLE20:;第二首《生日快樂歌》</p><p> DB82H,01H,81H,94H,84H,0B4H,0A4H,04H</
溫馨提示
- 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. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)課程設(shè)計(jì)---數(shù)字音樂盒
- 單片機(jī)課程設(shè)計(jì)-數(shù)字音樂盒設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--數(shù)字音樂盒的設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)《數(shù)字音樂盒的設(shè)計(jì)》
- 單片機(jī)課程設(shè)計(jì)--基于單片機(jī)的數(shù)字音樂盒
- 單片機(jī)課程設(shè)計(jì)-基于單片機(jī)的數(shù)字音樂盒設(shè)計(jì)
- 單片機(jī)音樂盒課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--音樂盒
- 音樂盒單片機(jī)課程設(shè)計(jì)
- 單片機(jī)音樂盒課程設(shè)計(jì)
- 單片機(jī)音樂盒課程設(shè)計(jì)
- 課程設(shè)計(jì)---基于at89s52單片機(jī)數(shù)字音樂盒設(shè)計(jì)
- 基于單片機(jī)的數(shù)字音樂盒的設(shè)計(jì)
- 基于單片機(jī)的數(shù)字音樂盒的設(shè)計(jì)
- 基于51單片機(jī)數(shù)字音樂盒的設(shè)計(jì)
- 數(shù)字音樂盒的課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)報(bào)告 音樂盒設(shè)計(jì)
- 課程設(shè)計(jì)---數(shù)字音樂盒的設(shè)計(jì)
- 基于51單片機(jī)音樂盒課程設(shè)計(jì)
- 單片機(jī)原理課程設(shè)計(jì)---音樂盒的設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論