2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩23頁(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、<p><b>  目錄</b></p><p><b>  第一章 概述1</b></p><p>  一 單片機(jī)的組成及特點(diǎn)1</p><p>  二 定時(shí)器的應(yīng)用1</p><p>  第二章 系統(tǒng)總體設(shè)計(jì)2</p><p>  第三章 硬件模塊方案設(shè)

2、計(jì)3</p><p>  一 必要元器件選擇3</p><p>  二 蜂鳴器電路設(shè)計(jì)3</p><p>  三 晶振電路設(shè)計(jì)4</p><p>  四 系統(tǒng)原理圖設(shè)計(jì)4</p><p>  第四章 系統(tǒng)軟件設(shè)計(jì)6</p><p><b>  一 主程序設(shè)計(jì)6</b

3、></p><p>  二 鍵盤處理子程序8</p><p>  第五章 系統(tǒng)調(diào)試10</p><p>  一 硬件部分調(diào)試10</p><p>  二 軟件部分調(diào)試10</p><p><b>  1編輯、編譯10</b></p><p><b>

4、;  2 程序下載11</b></p><p><b>  3 運(yùn)行調(diào)試11</b></p><p>  第六章 總結(jié)體會(huì)12</p><p><b>  附錄113</b></p><p><b>  程序清單13</b></p><

5、p><b>  附錄222</b></p><p><b>  參考文獻(xiàn)22</b></p><p><b>  第一章 概述</b></p><p>  一 單片機(jī)的組成及特點(diǎn)</p><p>  單片機(jī)是將CPU、存儲(chǔ)器、定時(shí)器/計(jì)數(shù)器、輸入/輸出接口電路、中斷、

6、串口通信接口等主要計(jì)算機(jī)部件集成在一塊大規(guī)模集成電路芯片上,組成單片機(jī)微型計(jì)算機(jī),簡(jiǎn)稱單片機(jī)。</p><p>  單片機(jī)具有集成度高、功能強(qiáng)、可靠性高、體積小、功耗低、使用方便、價(jià)格低廉等特點(diǎn)。</p><p><b>  二 定時(shí)器的應(yīng)用</b></p><p>  隨著社會(huì)的進(jìn)步,電子行業(yè)的發(fā)展,定時(shí)器的應(yīng)用極大的方便了人們的生活。定時(shí)關(guān)

7、閉家用電器(如:空調(diào),微波爐,電磁爐,洗衣機(jī)),定時(shí)提醒(如:約會(huì),小憩)。本篇設(shè)計(jì)討論了基于單片機(jī)的音樂提示定時(shí)器,從降低硬件成本,方便用戶操作出發(fā),以軟件為主,同時(shí)兼顧軟硬件升級(jí)。</p><p>  第二章 系統(tǒng)總體設(shè)計(jì)</p><p>  本系統(tǒng)基于STC 89C52RC單片機(jī),4個(gè)8段數(shù)碼管采用動(dòng)態(tài)顯示倒計(jì)時(shí)時(shí)間,定時(shí)時(shí)間輸入采用4x4矩陣鍵盤(雖然在本設(shè)計(jì)中只用到4個(gè)按鍵,考慮

8、到系統(tǒng)升級(jí)故采用4x4矩陣鍵盤),單片機(jī)中的系統(tǒng)總線與存儲(chǔ)器已足夠滿足系統(tǒng)要求故不需擴(kuò)展。</p><p>  本系統(tǒng)要求以單片機(jī)為核心設(shè)計(jì)一個(gè)音樂提示定時(shí)器,具備倒數(shù)計(jì)時(shí)、時(shí)間設(shè)置、音樂演奏等功能。設(shè)計(jì)60分鐘、20分鐘、10分鐘、5分鐘的設(shè)置開關(guān)或按鍵,例如20分鐘,顯示為“20.00”,內(nèi)定倒數(shù)計(jì)時(shí)時(shí)間為5分鐘,顯示為05:00。一旦按鍵后則開始倒計(jì)時(shí),當(dāng)計(jì)時(shí)為0則演奏一曲音樂,而且可循環(huán)播放,可隨時(shí)停止。

9、</p><p>  簡(jiǎn)易系統(tǒng)框圖如圖1所示:</p><p><b>  圖1 簡(jiǎn)易系統(tǒng)框圖</b></p><p>  第三章 硬件模塊方案設(shè)計(jì)</p><p><b>  一 必要元器件選擇</b></p><p>  開發(fā)板1塊、PC機(jī)及單片機(jī)調(diào)試軟件Keil、仿真軟

10、件proteus、220V交流電源及導(dǎo)線若干。</p><p><b>  二 蜂鳴器電路設(shè)計(jì)</b></p><p>  蜂鳴器有長(zhǎng)聲有短聲兩種,可以根據(jù)需要進(jìn)行選擇,通過軟件編程控制。在程序里可以設(shè)計(jì)不同的歌曲來(lái)通過播放器進(jìn)行播放,由于89C52型號(hào)單片機(jī)內(nèi)部已經(jīng)連接好蜂鳴器電路,因此不需要額外接線。</p><p>  蜂鳴器電路如圖2所

11、示:</p><p><b>  圖2 蜂鳴器電路</b></p><p><b>  三 晶振電路設(shè)計(jì)</b></p><p>  單片機(jī)工作的時(shí)間基準(zhǔn)是由時(shí)鐘電路控制的。在單片機(jī)的XTAL1和XTAL2兩個(gè)引腳上接一只晶振及兩只電容就構(gòu)成了單片機(jī)的時(shí)鐘電路。</p><p>  電路中,電容器C

12、14和C15對(duì)振蕩頻率有微調(diào)作用,通常的取值范圍為30PF左右。石英晶體選擇12MHZ。</p><p>  晶振電路圖如圖3所示:</p><p><b>  圖3 晶振電路</b></p><p><b>  四 系統(tǒng)原理圖設(shè)計(jì)</b></p><p>  系統(tǒng)原理圖如圖4所示:</p&g

13、t;<p><b>  圖4 系統(tǒng)原理圖</b></p><p>  第四章 系統(tǒng)軟件設(shè)計(jì)</p><p>  軟件設(shè)計(jì)包括信息輸入、信息處理、顯示輸出等,為了使程序清晰明了,采用調(diào)用子程序設(shè)計(jì)方式。</p><p>  本系統(tǒng)用P1口作為4個(gè)8段數(shù)碼管顯示的輸出,采用共陽(yáng)極接法;S1—S4控制8段數(shù)碼管的位選。</p>

14、;<p>  定義30H單元存放倒計(jì)時(shí)時(shí)間值,31H單元用于矩陣鍵盤鍵盤掃描,32H單元存放分鐘的第一位,33H單元存放分鐘的第二位,34H單元存放秒鐘的第一位,35H單元存放秒鐘的第二位,用定時(shí)器T1定時(shí),工作在方式1下。</p><p><b>  一 主程序設(shè)計(jì)</b></p><p>  MAIN: CLR F0

15、 ;清零用戶標(biāo)志位</p><p>  MOV 33H , #5H ;默認(rèn)5分鐘倒計(jì)時(shí)</p><p>  S1 BIT P2.0 ;標(biāo)號(hào)位地址</p><p>  S2 BIT P2.1 ;P1口顯示輸出</p><p>  S3 BIT P2.2

16、 ;S為矩陣鍵盤列</p><p>  S4 BIT P2.3</p><p>  H1 BIT P2.4 ;H為矩陣鍵盤行</p><p>  H2 BIT P2.5</p><p>  H3 BIT P2.6</p><p>  H4 BIT P2.7</p>&

17、lt;p>  W1 BIT P0.0 ;W為8段數(shù)碼管位選</p><p>  W2 BIT P0.1</p><p>  W3 BIT P0.2</p><p>  W4 BIT P0.3</p><p><b>  SETB W1</b></p><p><

18、;b>  SETB W2</b></p><p><b>  SETB W3</b></p><p><b>  SETB W4</b></p><p>  BELL BIT P3.7</p><p>  MAIN1: LCALL CHECK_KEYDOWN ;鍵盤

19、掃描子程序</p><p>  LCALL TIME_COUNTDOWN_VALUE ;倒計(jì)時(shí)初值子程序</p><p>  AJMP MAIN1</p><p>  程序調(diào)用關(guān)系如圖5所示:</p><p><b>  圖5 程序調(diào)用關(guān)系</b></p><p><b>  二 鍵盤處

20、理子程序</b></p><p>  W1H1—H4控制鍵盤矩陣的行,S1—S4控制鍵盤矩陣的列。</p><p>  CHECK_KEYDOWN:</p><p>  LCALL SHOW ;顯示子程序</p><p>  NOKEY0: MOV P2 , #0FFH ;掃描第一行</p>&l

21、t;p><b>  CLR H1</b></p><p>  LCALL KEYDOWN ;掃描鍵盤按下子程序</p><p>  JZ NOKEY1</p><p>  LCALL SHOW</p><p>  MOV P2 , #0FFH</p><p><b>

22、  CLR H1</b></p><p>  LCALL KEYDOWN</p><p>  JZ NOKEY1</p><p>  MOV 31H , #00H</p><p>  LJMP NOKEY4</p><p>  NOKEY1: MOV P2 , #0FFH ;掃描第二行<

23、;/p><p><b>  CLR H2</b></p><p>  LCALL KEYDOWN</p><p>  JZ NOKEY2</p><p>  LCALL SHOW</p><p>  MOV P2 , #0FFH</p><p><b>  CL

24、R H2</b></p><p>  LCALL KEYDOWN</p><p>  JZ NOKEY2</p><p>  MOV 31H , #04H</p><p>  LJMP NOKEY4</p><p>  NOKEY2: MOV P2 , #0FFH ;掃描第三行</p&

25、gt;<p><b>  CLR H3</b></p><p>  LCALL KEYDOWN</p><p>  JZ NOKEY3</p><p>  LCALL SHOW</p><p>  MOV P2 , #0FFH</p><p><b>  CLR H3

26、</b></p><p>  LCALL KEYDOWN</p><p>  JZ NOKEY3</p><p>  MOV 31H , #08H</p><p>  LJMP NOKEY4</p><p>  NOKEY3: MOV P2 , #0FFH ;掃描第四行</p>

27、<p><b>  CLR H4</b></p><p>  LCALL KEYDOWN</p><p>  JZ NOKEY4</p><p>  LCALL SHOW</p><p>  MOV P2 , #0FFH</p><p><b>  CLR H4</

28、b></p><p>  LCALL KEYDOWN</p><p>  JZ NOKEY4</p><p>  MOV 31H , #0CH</p><p>  NOKEY4: JB F0 , MUSIC ;用戶標(biāo)志位 為 1 則 播放音樂</p><p>  JZ CHECK_KEYDOWN

29、</p><p>  LCALL CHECK ;鍵盤 列掃描 子程序</p><p>  ADD A , 31H ;至此可以知道哪個(gè)鍵被按下</p><p><b>  RET</b></p><p>  按鍵掃描流程圖如圖6所示:</p><p><b> 

30、 N</b></p><p><b>  Y</b></p><p>  圖6 按鍵掃描流程圖</p><p><b>  系統(tǒng)調(diào)試</b></p><p>  完成了硬件的設(shè)計(jì)、制作和軟件編程之后,要使系統(tǒng)能夠按設(shè)計(jì)意圖正常運(yùn)行,必須進(jìn)行系統(tǒng)調(diào)試。系統(tǒng)調(diào)試包括硬件調(diào)試和軟件調(diào)試兩個(gè)部分

31、(硬件部分調(diào)試即開發(fā)板的測(cè)試)。</p><p><b>  一 硬件部分調(diào)試</b></p><p>  如果在調(diào)試按功能劃分的器件上出現(xiàn)問題,可以按以下步驟進(jìn)行:檢查原理圖連接是否正確;檢查原理圖與PCB圖是否一致;檢查原理圖與器件的DATASHEET上引腳是否一致;用萬(wàn)用表檢查是否有虛焊,引腳短路現(xiàn)象;查詢器件的DATASHEET,分析一下時(shí)序是否一致,同時(shí)分析

32、一下命令字是否正確。</p><p><b>  二 軟件部分調(diào)試</b></p><p>  用Keil軟件將程序輸入計(jì)算機(jī),經(jīng)過反復(fù)編輯、修改、編譯、下載、調(diào)試、運(yùn)行,直至運(yùn)行正確。</p><p><b>  1編輯、編譯</b></p><p>  打開Keil軟件,首先新建工程文件,選擇A

33、tmel--AT89C51--否;然后新建文件,并以(.asm)擴(kuò)展名保存;最后添加文件到源代碼組,開始編輯輸入程序。</p><p>  程序輸入完成后,點(diǎn)擊快捷窗口中的編譯快捷按鈕對(duì)程序進(jìn)行編譯,編譯后再顯示器下方的輸入窗口顯示編譯結(jié)果,并能明確的指出錯(cuò)誤的語(yǔ)句,可以根據(jù)錯(cuò)誤的提示對(duì)程序進(jìn)行修改,然后再編譯,一直到編譯無(wú)誤,生成HEX文件。</p><p><b>  2 程

34、序下載</b></p><p>  將單片機(jī)開發(fā)板用數(shù)據(jù)線與電腦連接,并接上電源線,打開STC軟件,選擇單片機(jī)型號(hào)(即89C52),選擇生成的HEX文件,點(diǎn)擊下載將程序下載到單片機(jī)開發(fā)板上。</p><p><b>  3 運(yùn)行調(diào)試</b></p><p>  按下單片機(jī)的開關(guān)按鍵,分別對(duì)矩陣鍵盤的0-3按鍵進(jìn)行測(cè)試,數(shù)碼管分別顯示

35、倒計(jì)時(shí)時(shí)間05:00、10:00、20:00、60:00,再次按鍵開始倒計(jì)時(shí),觀察倒計(jì)時(shí),并注意在倒計(jì)時(shí)在00:00能否正確播放音樂,如果發(fā)現(xiàn)錯(cuò)誤,修改程序編譯后重新下載并調(diào)試。也可用仿真軟件proteus進(jìn)行仿真。</p><p>  經(jīng)過系統(tǒng)各方面的調(diào)試,系統(tǒng)運(yùn)行正確,說(shuō)明該設(shè)計(jì)合理。</p><p><b>  第六章 總結(jié)體會(huì)</b></p>&

36、lt;p>  經(jīng)過兩周的課程設(shè)計(jì)實(shí)訓(xùn),雖然在準(zhǔn)備考試的同事感覺很忙,但還是舍不得放棄這次提升自己的機(jī)會(huì),在這兩周不長(zhǎng)不短的時(shí)間里學(xué)會(huì)了很多,尤其是更加系統(tǒng)的掌握了上課的理論知識(shí),一級(jí)提升了自己動(dòng)手實(shí)踐的能力。</p><p>  學(xué)校每次課程設(shè)計(jì)都能讓我全身心投入,廢寢忘食也不為過,因?yàn)槲沂冀K覺得實(shí)踐才能讓我們成長(zhǎng)。同時(shí)還能學(xué)到很多專業(yè)知識(shí),加深對(duì)課本內(nèi)容的理解,雖然會(huì)遇到很多困難,卻總能得到收獲。課程設(shè)計(jì)

37、是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí),發(fā)現(xiàn)、提出、分析和解決實(shí)際問題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對(duì)學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過程。如今電子行業(yè)已經(jīng)慢慢取代手工業(yè)了,而單片機(jī)已經(jīng)成為當(dāng)今計(jì)算機(jī)應(yīng)用中空前活躍的領(lǐng)域,在生活中可以說(shuō)得是無(wú)處不在。因此作為電子信息工程專業(yè)的學(xué)生來(lái)說(shuō)掌握單片機(jī)的開發(fā)技術(shù)是十分重要的。</p><p>  我的題目是音樂提示定時(shí)器的設(shè)計(jì),對(duì)于我們這些工科學(xué)生來(lái)說(shuō),這是一次小小的鍛煉。在設(shè)計(jì)的過程

38、中發(fā)現(xiàn)了自己的不足之處,以及對(duì)以前所學(xué)過的知識(shí)理解得不夠深刻,掌握得不夠牢固,對(duì)單片機(jī)C語(yǔ)言掌握得不夠熟練等。這次課程設(shè)計(jì)通過自己的努力,同學(xué)的幫助,還有老師的辛勤指導(dǎo)下,最終順利完成了。謝謝老師?。?lt;/p><p><b>  附錄1</b></p><p><b>  程序清單</b></p><p><b>

39、;  ORG 0000H</b></p><p><b>  AJMP MAIN</b></p><p><b>  ORG 000BH</b></p><p>  LJMP TIMER0_INT</p><p><b>  ORG 001BH</b></p&

40、gt;<p>  LJMP TIMER1_INT</p><p><b>  ORG 0030H</b></p><p>  SAVE: DB 00H , 00H , 00H , 00H ,00H , 00H ;預(yù)留空間備用</p><p>  MAIN: CLR F0 ;清零用戶標(biāo)志位

41、</p><p>  MOV 33H , #5H ;默認(rèn)5分鐘倒計(jì)時(shí)</p><p>  S1 BIT P2.0 ;標(biāo)號(hào)位地址</p><p>  S2 BIT P2.1 ;P1口顯示輸出</p><p>  S3 BIT P2.2 ;S為矩陣鍵盤列</p><p>  S

42、4 BIT P2.3</p><p>  H1 BIT P2.4 ;H為矩陣鍵盤行</p><p>  H2 BIT P2.5</p><p>  H3 BIT P2.6</p><p>  H4 BIT P2.7</p><p>  W1 BIT P0.0 ;W為矩陣8段數(shù)碼管的位選</p>

43、;<p>  W2 BIT P0.1</p><p>  W3 BIT P0.2</p><p>  W4 BIT P0.3</p><p><b>  SETB W1</b></p><p><b>  SETB W2</b></p><p><b>

44、;  SETB W3</b></p><p><b>  SETB W4</b></p><p>  BELL BIT P3.7</p><p>  MAIN1: LCALL CHECK_KEYDOWN ;鍵盤掃描子程序</p><p>  LCALL TIME_COUNTDOWN_VALUE

45、 ;倒計(jì)時(shí)初值子程序</p><p>  AJMP MAIN1</p><p>  ;*******************************************************</p><p><b>  ;子程序集</b></p><p><b>  ;鍵盤掃描子程序</b>&

46、lt;/p><p>  CHECK_KEYDOWN:</p><p>  LCALL SHOW ;顯示子程序</p><p>  NOKEY0: MOV P2 , #0FFH ;掃描第一行</p><p><b>  CLR H1</b></p><p>  LCALL KEYDO

47、WN ;掃描鍵盤按下子程序</p><p>  JZ NOKEY1</p><p>  LCALL SHOW</p><p>  MOV P2 , #0FFH</p><p><b>  CLR H1</b></p><p>  LCALL KEYDOWN</p>&l

48、t;p>  JZ NOKEY1</p><p>  MOV 31H , #00H</p><p>  LJMP NOKEY4</p><p>  NOKEY1: MOV P2 , #0FFH ;掃描第二行</p><p><b>  CLR H2</b></p><p>  

49、LCALL KEYDOWN</p><p>  JZ NOKEY2</p><p>  LCALL SHOW</p><p>  MOV P2 , #0FFH</p><p><b>  CLR H2</b></p><p>  LCALL KEYDOWN</p><p&

50、gt;  JZ NOKEY2</p><p>  MOV 31H , #04H</p><p>  LJMP NOKEY4</p><p>  NOKEY2: MOV P2 , #0FFH ;掃描第三行</p><p><b>  CLR H3</b></p><p>  LCALL

51、 KEYDOWN</p><p>  JZ NOKEY3</p><p>  LCALL SHOW</p><p>  MOV P2 , #0FFH</p><p><b>  CLR H3</b></p><p>  LCALL KEYDOWN</p><p>  

52、JZ NOKEY3</p><p>  MOV 31H , #08H</p><p>  LJMP NOKEY4</p><p>  NOKEY3: MOV P2 , #0FFH ;掃描第四行</p><p><b>  CLR H4</b></p><p>  LCALL KEYD

53、OWN</p><p>  JZ NOKEY4</p><p>  LCALL SHOW</p><p>  MOV P2 , #0FFH</p><p><b>  CLR H4</b></p><p>  LCALL KEYDOWN</p><p>  JZ

54、 NOKEY4</p><p>  MOV 31H , #0CH</p><p>  NOKEY4: JB F0 , MUSIC ;用戶標(biāo)志位 為 1 則 播放音樂</p><p>  JZ CHECK_KEYDOWN</p><p>  LCALL CHECK ;鍵盤 列掃描 子程序</p><

55、p>  ADD A , 31H ;可以知道0-F中的哪個(gè)鍵被按</p><p><b>  RET</b></p><p>  ;*******************************************************</p><p>  ;掃描鍵盤按下子程序</p><p> 

56、 KEYDOWN: MOV A,P2 ;檢查是否有鍵被按下</p><p>  ANL A,#0FH ;有鍵按下A不為0</p><p>  XRL A,#0FH</p><p><b>  RET</b></p><p>  ;****************************

57、***************************</p><p>  ;鍵盤 列掃描 子程序</p><p>  CHECK: CJNE A , #01H , ZERO ;第一列被按下?</p><p>  MOV A , #00H</p><p><b>  LJMP OVER</b></p>

58、<p>  ZERO: CJNE A , #02H , ONE ;第二列被按下?</p><p>  MOV A , #01H</p><p><b>  LJMP OVER</b></p><p>  ONE: CJNE A , #04H , TWO ;第三列被按下?</p><p>  

59、MOV A , #02H</p><p><b>  LJMP OVER</b></p><p>  TWO: CJNE A , #08H , OVER ;第四列被按下?</p><p>  MOV A , #03H</p><p>  OVER: RET</p><p>  ;***

60、****************************************************</p><p><b>  ;倒計(jì)時(shí)初值子程序</b></p><p>  TIME_COUNTDOWN_VALUE:</p><p>  LED0: CJNE A , #00H , LED1 ;30H中存放倒計(jì)時(shí)時(shí)間值</

61、p><p>  MOV 30H , #5</p><p><b>  LJMP LED4</b></p><p>  LED1: CJNE A , #01H , LED2</p><p>  MOV 30H , #10</p><p><b>  LJMP LED4</b>&l

62、t;/p><p>  LED2: CJNE A , #02H , LED3</p><p>  MOV 30H , #20</p><p><b>  LJMP LED4</b></p><p>  LED3: CJNE A , #03H , LED4</p><p>  MOV 30H , #6

63、0</p><p>  LED4: MOV A , 30H</p><p>  LCALL TIME_SHOW ;倒計(jì)時(shí)初值處理子程序</p><p>  LCALL INTTIMER0</p><p><b>  RET</b></p><p>  ;************

64、*******************************************</p><p>  ;倒計(jì)時(shí)初值處理子程序</p><p>  TIME_SHOW:</p><p>  MOV B , #10 ;32H存放顯示倒計(jì)時(shí)值分鐘的高位</p><p>  DIV AB ;33H存放顯示倒計(jì)時(shí)值分鐘的低位&l

65、t;/p><p>  MOV 32H , A</p><p>  MOV 33H , B</p><p><b>  RET</b></p><p>  ;*******************************************************</p><p><b>

66、  ;音樂播放子程序</b></p><p>  MUSIC:MOV TMOD , #10H</p><p><b>  SETB EA</b></p><p><b>  SETB ET1</b></p><p>  MOV DPTR , #MUSICTABLE</p>

67、<p>  MUSIC_VALUE:</p><p><b>  CLR A</b></p><p>  MOVC A , @A+DPTR</p><p>  MOV R1 , A</p><p><b>  INC DPTR</b></p><p><b&

68、gt;  CLR A</b></p><p>  MOVC A , @A+DPTR</p><p>  MOV R0 , A</p><p>  ORL A , R1</p><p>  JZ MUSIC_STOP</p><p>  MOV A , R0</p><p>  ANL

69、 A , R1</p><p>  CJNE A , #0FFH , MUSIC_TIME_START</p><p>  SJMP MUSIC</p><p>  ;*******************************************************</p><p><b>  ;定時(shí)器1初始化</

70、b></p><p>  MUSIC_TIME_START:</p><p>  MOV TH1 , R1</p><p>  MOV TL1 , R0</p><p><b>  SETB TR1</b></p><p>  SJMP MUSIC_T_LONG</p><

71、;p>  MUSIC_STOP:</p><p><b>  CLR TR1</b></p><p>  MUSIC_T_LONG:</p><p><b>  CLR A</b></p><p><b>  INC DPTR</b></p><p&g

72、t;  MOVC A , @A+DPTR</p><p>  MOV R7 , A</p><p>  TIME_VALUE:</p><p>  ACALL MUSIC_TIME_DELAY;</p><p>  DJNZ R7 , TIME_VALUE ;R7 控制節(jié)拍延時(shí)次數(shù)</p><p><b&g

73、t;  INC DPTR</b></p><p>  LJMP MUSIC_VALUE</p><p>  ;*******************************************************</p><p>  ;定時(shí)器1中斷服務(wù)程序</p><p>  TIMER1_INT:</p>

74、<p>  MOV TH1 , R1 </p><p>  MOV TL1 , R0</p><p>  CPL BELL ;晶振發(fā)聲</p><p><b>  RETI</b></p><p>  ;**********************************

75、*********************</p><p><b>  ;節(jié)拍延遲子程序</b></p><p>  MUSIC_TIME_DELAY:; 節(jié)拍 延時(shí) 187ms</p><p>  MOV R6 , #02</p><p>  D2: MOV R5 , #187</p><

76、p>  D3: MOV R4 , #248</p><p>  DJNZ R4 , $</p><p>  DJNZ R5 , D3</p><p>  DJNZ R6 , D2</p><p><b>  RET</b></p><p>  ;********************

77、***********************************</p><p>  ;倒計(jì)時(shí)處理子程序 六十進(jìn)制處理</p><p>  TIME_COUNTDOWN: </p><p>  MOV A , 35H</p><p>  CJNE A , #-1 , COUNTDOWN1</p><

78、p>  MOV 35H , #9</p><p><b>  DEC 34H</b></p><p>  COUNTDOWN1:</p><p>  MOV A , 34H</p><p>  CJNE A , #-1 , COUNTDOWN2</p><p>  MOV 34H , #5&

79、lt;/p><p><b>  DEC 33H</b></p><p>  COUNTDOWN2:</p><p>  MOV A , 33H</p><p>  CJNE A , #-1 , COUNTDOWN3</p><p>  MOV 33H , #9</p><p>

80、<b>  DEC 32H</b></p><p>  COUNTDOWN3:RET</p><p>  ;*******************************************************</p><p>  ;8段顯示管顯示子程序</p><p>  SHOW: LCALL TIME

81、_COUNTDOWN</p><p>  CLR W1 ;顯示第一個(gè)字符</p><p>  MOV A , 32H</p><p>  LCALL SHOW1</p><p><b>  SETB W1</b></p><p>  CLR W2 ;顯示第二個(gè)字符&

82、lt;/p><p>  MOV A , 33H</p><p>  LCALL SHOW1</p><p><b>  SETB W2</b></p><p>  CLR W3 ;顯示第三個(gè)字符</p><p>  MOV A , 34H</p><p>  L

83、CALL SHOW1</p><p><b>  SETB W3</b></p><p>  CLR W4 ;顯示第四個(gè)字符</p><p>  MOV A , 35H</p><p>  LCALL SHOW1</p><p><b>  SETB W4</b&g

84、t;</p><p><b>  RET</b></p><p>  ;*******************************************************</p><p><b>  ;字符顯示子程序</b></p><p>  SHOW1: MOV DPTR , #T

85、ABLE ;送顯示的字符</p><p>  MOVC A , @A+DPTR</p><p>  MOV P1 , A</p><p>  JB W2 , DELAY</p><p><b>  CLR P1.7</b></p><p>  DELAY:

86、 ;延時(shí)1ms子程序 </p><p>  MOV R6 , #66H</p><p>  DL0: MOV R5 , #03H</p><p>  DJNZ R5 , $</p><p>  DJNZ R6 , DL0</p><p><b>  SETB P1.7</b>

87、;</p><p><b>  RET</b></p><p>  ;*******************************************************</p><p>  ;定時(shí)器0 初始化子程序</p><p>  INTTIMER0: ;基礎(chǔ)定時(shí)一分鐘,改R4的值即可改變定時(shí)時(shí)間

88、</p><p>  MOV R4 , 30H ;30H單元存放初值</p><p>  MOV R3 , #60 ;定時(shí)一分鐘</p><p>  MOV R2 , #100 ;定時(shí)一秒鐘</p><p>  MOV TMOD , #01H</p><p>  MOV TH0 , #0DCH;利用基礎(chǔ)

89、定時(shí)的一秒鐘顯示倒計(jì)時(shí)效果 </p><p>  MOV TL0 , #00H ;</p><p><b>  SETB EA</b></p><p><b>  SETB ET0</b></p><p><b>  SETB TR0</b><

90、/p><p><b>  RET</b></p><p>  ;*******************************************************</p><p>  ;定時(shí)器0 中斷服務(wù)程序</p><p>  TIMER0_INT:</p><p>  MOV TH0

91、, #0DCH</p><p>  MOV TL0 , #00H</p><p>  CJNE R2 , #1 , L1</p><p><b>  DEC 35H</b></p><p>  MOV R2 , #100</p><p>  CJNE R3 , #1 , L2</p>

92、<p>  MOV R3 , #60</p><p>  DJNZ R4 , RTN</p><p>  SETB F0 ;用戶標(biāo)志位置1</p><p><b>  CLR TR0</b></p><p><b>  AJMP RTN</b></p>

93、<p>  L2:DEC R3</p><p><b>  AJMP RTN</b></p><p>  L1: DEC R2</p><p>  RTN: RETI</p><p>  ;*****************************************************

94、**</p><p><b>  ;待顯示字符集</b></p><p>  TABLE:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH</p><p><b>  ;音樂音符數(shù)據(jù)</b></p><p&

95、gt;  MUSICTABLE: DB0FDH , 80H , 03H , 0FDH , 80H , 01H</p><p>  DB 0FDH , 0C6H , 04H , 0FDH , 80H , 01H</p><p>  DB 0FEH , 2AH , 04H , 0FEH , 02H , 04H</p><p>  DB00H , 00H

96、 , 04H</p><p>  DB0FDH , 80H , 03H , 0FDH , 80H , 01H</p><p>  DB 0FDH , 0C6H , 04H , 0FDH , 80H , 04H</p><p>  DB 0FEH , 5CH , 04H , 0FEH , 2AH , 04H</p><p>  DB 0

97、0H , 00H , 04H</p><p>  DB 0FDH , 80H , 03H , 0FDH , 80H , 01H</p><p>  DB0FEH , 0C0H , 04H , 0FEH , 84H , 04H</p><p>  DB0FEH , 2AH , 04H , 0FEH , 02H , 04H</p><p>

98、  DB0FDH , 0C6H , 04H</p><p>  DB0FEH , 98H , 03H , 0FEH , 98H , 01H</p><p>  DB 0FEH , 84H , 04H , 0FEH , 2AH , 04H</p><p>  DB 0FEH , 5CH , 04H , 0FEH , 2AH , 04H</p>&

99、lt;p>  DB 00H , 00H , 04H</p><p>  DB0FFH , 0FFH ;結(jié)束碼</p><p><b>  END</b></p><p><b>  附錄2</b></p><p><b>  參考文獻(xiàn)</b></p>

100、<p>  1、《51系列單片機(jī)應(yīng)用與實(shí)踐教程》 周向紅 編 北航出版社</p><p>  2、《單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)》 何立民 編 北航出版社</p><p>  3、《單片機(jī)原理及應(yīng)用》 王迎旭 主編 機(jī)械工業(yè)出版社</p><p>  4、《51系列單片機(jī)設(shè)計(jì)實(shí)例》 樓然苗 等編 北航出版社</p><p> 

溫馨提示

  • 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ù)覽,若沒有圖紙預(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)論