版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 音樂提示定時(shí)器--單片機(jī)課程設(shè)計(jì)
- 音樂提示定時(shí)器單片機(jī)原理與應(yīng)用課程設(shè)計(jì)
- 音樂提示定時(shí)器--課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--秒表定時(shí)器
- 單片機(jī)課程設(shè)計(jì)--定時(shí)器實(shí)驗(yàn)
- 單片機(jī)課程設(shè)計(jì)---加熱定時(shí)器
- 單片機(jī)課程設(shè)計(jì)智能定時(shí)器
- 使用定時(shí)器延時(shí)單片機(jī)課程設(shè)計(jì)報(bào)告
- 單片機(jī)經(jīng)典數(shù)字定時(shí)器課程設(shè)計(jì)
- 基于單片機(jī)的9h定時(shí)器課程設(shè)計(jì)
- 基于單片機(jī)的音樂定時(shí)器畢業(yè)設(shè)計(jì)
- 單片機(jī)定時(shí)器
- 電子定時(shí)器-單片機(jī)原理及應(yīng)用課程設(shè)計(jì)
- 課程設(shè)計(jì)---基于定時(shí)器的單片機(jī)仿真和c語(yǔ)言開發(fā)
- 單片機(jī)控制技術(shù)課程設(shè)計(jì)--定時(shí)器控制電路
- 可編程定時(shí)器課程設(shè)計(jì)--- 寬范圍可編程定時(shí)器
- 單片機(jī)課程設(shè)計(jì)---基于單片機(jī)的定時(shí)控制器設(shè)計(jì)
- 音樂倒數(shù)定時(shí)器課程設(shè)計(jì)
- 單片機(jī)實(shí)驗(yàn)二 定時(shí)器
- 單片機(jī)定時(shí)器的使用總結(jié)
評(píng)論
0/150
提交評(píng)論