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

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論