版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 《單片機(jī)原理及應(yīng)用》</p><p><b> 課程設(shè)計(jì)報告書</b></p><p><b> 機(jī)電與控制工程學(xué)院</b></p><p><b> 年 月 日</b></p><p><b> 任務(wù)書</b><
2、/p><p><b> 本次課題是:</b></p><p> 設(shè)計(jì)一個以單片機(jī)為核心的音樂播放器,該音樂播放器具有音樂的循環(huán)播放及播放時的音樂顯示等功能。</p><p><b> 具體要求如下:</b></p><p> 設(shè)計(jì)三個鍵分別實(shí)現(xiàn):播放/停止、下一曲、上一曲;同時用LED顯示器顯示
3、播放曲目,為了節(jié)省電源,LED顯示器在播放期間設(shè)計(jì)為關(guān)閉狀態(tài),只有當(dāng)一首歌演奏結(jié)束或選曲時顯示器才顯示曲目信息。</p><p> 當(dāng)播放鍵打開時音樂開始播放,同時LED顯示器顯示,假如是第一首歌則LED顯示器顯示數(shù)字1,當(dāng)打開下一曲按鍵時播放器開始播放第二首歌,同時LED顯示器顯示數(shù)字2。聲音經(jīng)過三級管放大后由蜂鳴器輸出。</p><p> 音樂可以給我們的生活帶來樂趣,音樂可以放松
4、我們的心情,音樂可以讓我們得到釋懷。而且通過這次設(shè)計(jì)我們可以學(xué)到關(guān)于單片機(jī)在實(shí)際生活中的設(shè)計(jì)應(yīng)用,同時也使我們加深了對單片機(jī)的認(rèn)識,提高了我們的編程能力,為我們能夠更好的學(xué)習(xí)單片機(jī)有很大的幫助。</p><p><b> 目 錄</b></p><p><b> 1.緒論1</b></p><p><b>
5、; 2.方案論證2</b></p><p><b> 3.方案說明2</b></p><p> 4.硬件方案設(shè)計(jì)3</p><p> 5.軟件方案設(shè)計(jì)13</p><p><b> 6.調(diào)試15</b></p><p><b> 7
6、.小結(jié)17</b></p><p><b> 8.參考文獻(xiàn)18</b></p><p><b> 9.附錄19</b></p><p><b> 緒論</b></p><p> 二十世紀(jì)九十年代以來,計(jì)算機(jī)、信息、電子、控制、通信等技術(shù)得到迅速發(fā)展,現(xiàn)
7、代家庭更加注重生活品質(zhì),健康、安全、舒適、便捷成為人們的迫切需要。智能家電控制系統(tǒng)為智能家居的一個重要組成部分,為人們提供方便、安全、智能化、舒適的數(shù)字化生活提供解決方案。</p><p> 隨著電子技術(shù)的迅速發(fā)展,特別是隨大規(guī)模集成電路出現(xiàn),給人類生活帶來了根本性的改變。由其是單片機(jī)技術(shù)的應(yīng)用產(chǎn)品已經(jīng)走進(jìn)了千家萬戶。</p><p> 首先描述系統(tǒng)硬件工作原理,并附以系統(tǒng)結(jié)構(gòu)框圖加以
8、說明,著重介紹了本系統(tǒng)所應(yīng)用的各硬件接口技術(shù)和各個接口模塊的功能及工作過程,其次,詳細(xì)闡述了程序的各個模塊和實(shí)現(xiàn)過程。</p><p> 本設(shè)計(jì)以數(shù)字集成電路技術(shù)為基礎(chǔ),單片機(jī)技術(shù)為核心。本文編寫的主導(dǎo)思想是軟硬件相結(jié)合,以硬件為基礎(chǔ),來進(jìn)行各功能模塊的編寫。</p><p> 系統(tǒng)以單片機(jī)的匯編語言進(jìn)行軟件設(shè)計(jì),增加了程序的可讀性和可移植性,為了便于擴(kuò)展和更改,軟件的設(shè)計(jì)采用模塊化結(jié)
9、構(gòu),使程序設(shè)計(jì)的邏輯關(guān)系更加簡潔明了。系統(tǒng)通過揚(yáng)聲器為載體發(fā)出聲音,所以具有人性化的操作和悅耳的歌聲。</p><p> 要產(chǎn)生音頻信號,只要算出某一音頻的周期(頻率的倒數(shù)),將此周期除以2即為半周期的時間,利用定時器計(jì)時此半周期時間,計(jì)時到后取反輸出,重復(fù)此過程即得到此頻率的聲音信號。此信號從P1.7腳輸出。</p><p> 定時器T0工作在定時方式1,改變TH0及TL0,產(chǎn)生不同
10、的音頻頻率。必須考慮到中斷響應(yīng)時間的影響,尤其在高音部分,若忽略中斷響應(yīng)時間,會使音頻頻率比標(biāo)準(zhǔn)值低幾十Hz,相當(dāng)于1/4音程,很容易聽出來,對低音部分影響不大。一般中斷響應(yīng)時間為3~6個機(jī)器周期,經(jīng)過反復(fù)試驗(yàn)取5個機(jī)器周期作為校正最為恰當(dāng),表1中所給的定時初值就是考慮中斷響應(yīng)后的定時常數(shù)。另外,為避免T1中斷可能引起雜音,應(yīng)將定時器T0中斷設(shè)為高優(yōu)先級。這樣編寫出來的程序播放的音與標(biāo)準(zhǔn)音叉進(jìn)行差頻校音,非常準(zhǔn)確和諧。</p>
11、;<p><b> 方案論證</b></p><p> 首先設(shè)定三個鍵分別將三個開關(guān)鍵接到單片機(jī)的三個端口P1.0—P1.2,P3.5作為輸出接口。8255的A口接LED顯示器的字形控制端口,PC0接位控制端口,并將片選信號接口接好。將輸出信號通過三極管放大后由蜂鳴器輸出,三極管的一端接高電平,一段接低電平,另一端接地。</p><p><b&
12、gt; 3.方案說明</b></p><p> 當(dāng)打開播放鍵時系統(tǒng)經(jīng)過判別選出第一首歌曲,首先將歌曲地址送到寄存器中,然后調(diào)用音樂頻率數(shù)碼表,經(jīng)過P3.5口輸出,再經(jīng)三極管放大,最后由蜂鳴器發(fā)出音樂。同時在音樂播放期間,顯示電路通過并行方式與單片機(jī)擴(kuò)展的8255的PA口相連,用74LS244譯碼后接到顯示上。假如是第一首歌則顯示器顯示1,第二首則顯示相應(yīng)的數(shù)字2。同時也可以通過相應(yīng)的開關(guān)選擇相應(yīng)的
13、歌曲。</p><p><b> 4.硬件方案設(shè)計(jì)</b></p><p><b> 4.1單片機(jī)的選擇</b></p><p> 單片機(jī)采用應(yīng)用最為普遍的MCS-51系列單片機(jī)。MCS-51單片機(jī)是由8位CPU、只讀存儲器EPROM/ROM、讀寫存儲器RAM、并行I/O口、串行I/O口、定時器/計(jì)數(shù)器、中斷系統(tǒng)、振
14、蕩器和時鐘電路等部分組成,各部分之間通過內(nèi)部總線相連。</p><p> MCS-51系列單片機(jī)的主要性能有:1)8位字長CPU和指令系統(tǒng);2)1個片內(nèi)時鐘振蕩器和時鐘電路;3)64K外部數(shù)據(jù)存儲器的地址空間;4)64K外部程序存儲器的地址空間;</p><p> 5)32條雙向且分別可位尋址的I/O口線;6)128B的片內(nèi)RAM;7)2個16位定時器/計(jì)數(shù)器;8)具有2個優(yōu)先級的5個
15、中斷源結(jié)構(gòu);9)1個全雙工串行口;10)1個布爾處理器。</p><p> MCS-51單片機(jī)的核心部分是中央處理器CPU,它由運(yùn)算器和控制器兩大部分組成。運(yùn)算器用來完成算術(shù)運(yùn)算、邏輯運(yùn)算和進(jìn)位操作,由算術(shù)邏輯單元(ALU)、位處理器、累加器ACC、寄存器B、暫存器TMP1和TMP2等組成,與一般運(yùn)算器的作用類似。 &
16、lt;/p><p> 控制器是用來統(tǒng)一指揮和控制計(jì)算機(jī)進(jìn)行工作的部件,它由定時和控制邏輯、內(nèi)部振蕩電路OSC、指令寄存器及其譯碼器、程序計(jì)數(shù)器PC及其增量器、程序地址寄存器、程序狀態(tài)寄存器PSW、RAM地址寄存器、數(shù)據(jù)指針DPTR、堆棧指針SP等部分組成。</p><p> 4.2 時鐘電路的設(shè)計(jì)</p><p> 單片機(jī)工作的時間基準(zhǔn)是由時鐘電路提供的。在單片機(jī)
17、的XTAL1和XTAL2兩個管腳,接一只晶振及兩只電容就構(gòu)成了單片機(jī)的時鐘電路。電路中,電容器C1和C2對振蕩頻率有微調(diào)作用,通常的取值范圍為(30+10)pF。石英晶體選擇6MHz或12MHz都可以,其結(jié)果只是機(jī)器周期時間不同,影響計(jì)數(shù)器的計(jì)數(shù)初值。如圖所示:</p><p> 4.3 復(fù)位電路的設(shè)計(jì)</p><p> 單片機(jī)的RST管腳為主機(jī)提供一個外部復(fù)位信號輸入端口。復(fù)位信號是
18、高電平有效,高電平有效的持續(xù)時間應(yīng)為2個機(jī)器周期以上。單片機(jī)的復(fù)位方式有上電自動復(fù)位和手工復(fù)位兩種。 </p><p> 4.4 8255A芯片的簡介</p><p> Intel 8086/8088 系列的可編程外設(shè)接口電路(Programmable Peripheral Interface)簡稱 PPI,型號為8255(改進(jìn)型為8255A及8255A-5),具有24條輸入/輸出引腳
19、、可編程的通用并行輸入/輸出接口電路。它是一片使用單一+5V電源的40腳雙列直插式大規(guī)模集成電路。8255A的通用性強(qiáng),使用靈活,通過它CPU可直接與外設(shè)相連接。</p><p> 4.4.1 8255SA的內(nèi)部結(jié)構(gòu)</p><p> 可編程并行接口Intel8255A, 其內(nèi)部結(jié)構(gòu)如圖3.4.1所示,由以下4個部分組成:</p><p> 圖4.4.1
20、8255A內(nèi)部結(jié)構(gòu)</p><p> 1.輸入/輸出端口A、B、C 。這三個端口均可看作是I/O端口,但它們的結(jié)構(gòu)和功能也稍有不同。A口和B口是一個獨(dú)立的8位I/O口。C口:可以看作是一個獨(dú)立的8位I/O口;也可以看作是兩個獨(dú)立的4位I/O口。 </p><p> 2.A組和B組控制電路。這是兩組根據(jù)CPU命令控制8255A工作方式的電路,這些控制電路內(nèi)部設(shè)有控制寄存器,可以根據(jù)CPU
21、送來的編程命令來控制8255A的工作方式,也可以根據(jù)編程命令來對C口的指定位進(jìn)行置/復(fù)位的操作。A組控制電路用來控制A口及C口的高4位;B組控制電路用來控制B口及C口的低4位</p><p> 3.讀/寫控制邏輯 。(同上:它負(fù)責(zé)管理8255A的數(shù)據(jù)傳輸過程。它接收CS*及RD*、WR*、RESET,還有來自系統(tǒng)地址總線的口地址選擇信號A0和A1。將這些信號組合后,得到對A組控制部件和B組控制部件的控制命令,并
22、將命令發(fā)給這兩個部件,以完成對數(shù)據(jù)、狀態(tài)信息和控制信息的傳輸。)</p><p> 4.數(shù)據(jù)總緩沖器 。(同上:它是8位的雙向的三態(tài)緩沖器。作為8255A與系統(tǒng)總線連接的界面,輸入/輸出的數(shù)據(jù),CPU的編程命令以及外設(shè)通過8255A傳送的工作狀態(tài)等信息,都是通過它來傳輸?shù)摹?lt;/p><p> 4.4.2 8255A的引腳信號 </p><p> 如圖3.4.2
23、所示是8255A的芯片引腳信號。除了電源和地以外,其他信號可以分為兩組。</p><p> 1.和外設(shè)一邊相連的: </p><p> PA7-PA0:A組數(shù)據(jù)信號 </p><p> PB7-PB0:B組數(shù)據(jù)信號 </p><p> PC7-PC0:C組數(shù)據(jù)信號 </p><p> 2.和CPU一邊相連的:
24、 </p><p> RESET:復(fù)位信號,低電平有效。</p><p> 當(dāng)RESET信號來到時,所有內(nèi)部寄</p><p> 存器就被清除,同時,3個數(shù)據(jù)端口</p><p> 被自動設(shè)為輸入端口。</p><p> D7-D0:它們是8255A的數(shù)據(jù)線,和系統(tǒng)數(shù)據(jù)總線相連。 </p>&l
25、t;p> CS\:芯片選擇信號,低電平有</p><p> 效。在一個系統(tǒng)中,一般根據(jù)全部接口芯片來分配 若干較低位地址(比如A5、A4、A3)來組 成各種芯片選擇碼,當(dāng)這幾位地址組成某一個代碼時,譯</p><p> 碼器便往8255A的CS*端輸出一個低電平,于是8255A被選中。只有當(dāng) CS\有效時,讀信號RD\和寫信號WR\才對8255A有效。 </p>
26、<p> RD*:芯片讀出信號低電平有效。 </p><p> WR*:芯片寫入信號低電平有效。 </p><p> A1、A0:端口選擇信號。 8255A內(nèi)部有3個數(shù)據(jù)端口和一個控制端口,共四個端口。規(guī)定當(dāng)A1、A0為00時,選中A端口;為01時,選中B端口;為10時,選中C端口;為11時,選中控制口。</p><p> 8255A的幾個控制信號
27、和傳輸動作之間的關(guān)系如下表</p><p> 8255A的控制信號與傳輸動作的對應(yīng)關(guān)系 </p><p> 4.4.3 8255A的控制</p><p><b> 1.工作方式控制字</b></p><p> 8255有三種工作方式:方式0、方式1、方式2。兩組端口可分別指定不同的工作方式。每組端口在某種工作方式
28、下,并不要求各信號同為輸入或同為輸出,而是可以分別指定。方式選擇控制字的格式如 圖3.4.3所示。</p><p> 圖3.4.3 方式選擇控制字的格式</p><p><b> 2.PC口控制字 </b></p><p> PC口的各信號線常作為控制線來使用,因此,經(jīng)常需要單獨(dú)對每根信號線置1或置0。這種操作用向PC口控制字寄存器送
29、出PC口控制字來實(shí)現(xiàn)。PC口控制字格式如圖3.4.4所示。</p><p> 應(yīng)用注意 :PC口控制字雖然是對端口C操作,但應(yīng)寫入到控制口地址,而不是寫入到PC數(shù)據(jù)口。 </p><p> 編程舉例:設(shè) PA數(shù)據(jù)口地址 00E0H,PB數(shù)據(jù)口地址 00E2H,PC數(shù)據(jù)口地址 00E4H,控制口 00E6H</p><p> 例子一:當(dāng)要求端口A工作在方式0,輸
30、出;端口B工作在方式1,輸入;端口C的高4位為輸入,低4位為輸出;則方式控制字為 10001110B或8EH,如圖3.4.5所示 </p><p><b> 匯編指令如下:</b></p><p> MOV DX,00E4H </p><p> MOV AL,8EH</p><p> OUT DX,AL <
31、/p><p> 例子二:當(dāng)要求端口A工作在方式1,輸入;端口B工作在方式0,輸入;端口C的高4位為輸出,低4位為輸出;則方式控制字為 10110010B或0B2H,如圖3.4.6所示</p><p><b> 匯編指令如下:</b></p><p> MOV DX,00E4H </p><p> MOV AL,0B2
32、H</p><p> OUT DX,AL </p><p> 4.5 LED顯示電路設(shè)計(jì)</p><p> 單片機(jī)應(yīng)用系統(tǒng)中,通常都需要進(jìn)行人機(jī)對話。這包括人對應(yīng)用系統(tǒng)的狀態(tài)干預(yù)與數(shù)據(jù)輸入,以及應(yīng)用系統(tǒng)向人們顯示運(yùn)行狀態(tài)與運(yùn)行結(jié)果等。顯示器、鍵盤電路就是用來完成人機(jī)對話活動的人機(jī)通道。</p><p> 常用的LED數(shù)碼顯示器由7個發(fā)
33、光二極管組成7段LED顯示器,其排列形狀</p><p> 如圖所示。此外,其中的dp用于顯示小數(shù)點(diǎn)。通過7個發(fā)光二極管亮暗的不同組合,可以顯示多種數(shù)字、字母以及其他符號。LED顯示器中的發(fā)光二極管共有兩種連接方法:共陽極接法和共陰極接法。</p><p> 共陰極接法共陽極接法</p><p> LED顯示器的驅(qū)動是一個非常重要的問題,顯示電路由LED顯示
34、器、段驅(qū)動電路和位驅(qū)動電路組成。由于單片機(jī)的并行口不能直接驅(qū)動LED顯示器,必須采用專用的驅(qū)動電路芯片,使之產(chǎn)生足夠大的電流,顯示器才能夠正常工作。如果驅(qū)動電路能力差,即負(fù)載能力不夠,顯示器亮度就低,而且驅(qū)動電路長期在超負(fù)荷下運(yùn)行容易損壞。</p><p> LED顯示器的顯示控制方式分為靜態(tài)顯示和動態(tài)顯示兩種,若選擇靜態(tài)顯示,則LED驅(qū)動器的選擇較為簡單,只要驅(qū)動器的驅(qū)動能力與顯示器電流相匹配即可,而且一般只
35、需考慮段的驅(qū)動;動態(tài)顯示則不同,由于一位數(shù)據(jù)的顯示是由段和位選信號共同配合完成的,因此,要同時考慮段和位的驅(qū)動能力,而且段的驅(qū)動能力決定位的驅(qū)動能力。</p><p> 下圖所示是使用8255作6位LED顯示器動態(tài)顯示的借口電路。8255作為輸出鎖存口。其中C口為位控口,以PC5—PC0輸出位控線。由于位控線的驅(qū)動電流較大,8段全亮?xí)r約40—60mA,因此PC口輸出加集電極開路門74LS06進(jìn)行反相和提高驅(qū)動能
36、力,然后再接各LED顯示器的位控端。A口為段控口,輸出8位字形代碼。段控線的負(fù)載電流約為8mA,為提高顯示亮度,通常用74LS244進(jìn)行段控輸出驅(qū)動。</p><p><b> 數(shù)碼管驅(qū)動電路圖</b></p><p> 4.6 蜂鳴器電路的設(shè)計(jì)</p><p> 設(shè)計(jì)要求有音樂播放,可選擇一個蜂鳴器來實(shí)現(xiàn)這一功能。壓電式蜂鳴器工作時約需
37、10mA的驅(qū)動電流,并設(shè)計(jì)一個相應(yīng)的驅(qū)動及控制電路,電路設(shè)計(jì)如圖所示。蜂鳴器作為三極管VT的集電極負(fù)載,當(dāng)VT導(dǎo)通時,蜂鳴器發(fā)出聲音;VT截止時,蜂鳴器不發(fā)聲。R是限流電阻。</p><p> 蜂鳴器電路與單片機(jī)的接口:VT的基極接到單片機(jī)P3口的P3.7管腳,P3.7管腳作為輸出口使用。當(dāng)P3.7=0時,VT導(dǎo)通時,使蜂鳴器的兩個管腳間獲得將近5V的直流電壓,蜂鳴器中有電流通過,而產(chǎn)生蜂鳴音;當(dāng)P3.7=1時
38、,VT截止,蜂鳴器的兩管腳間的直流電壓接近0V,蜂鳴器不發(fā)音。</p><p><b> 蜂鳴器電路圖</b></p><p> 5.1 軟件方案設(shè)計(jì)</p><p> 5.1.1 軟件方案設(shè)計(jì)確定</p><p> 可以把系統(tǒng)軟件按照其功能可分為6個模塊,每個獨(dú)立的模塊通過程序聯(lián)系成一個完整的系統(tǒng)程序。<
39、/p><p> 系統(tǒng)的6個功能模塊是:</p><p><b> 主程序模塊</b></p><p><b> 數(shù)碼管動態(tài)掃描模塊</b></p><p><b> 調(diào)用歌曲模塊</b></p><p><b> 延時模塊</b&g
40、t;</p><p><b> 顯示模塊</b></p><p><b> 蜂鳴器輸出模塊</b></p><p> 圖5.1 音樂播放器系統(tǒng)軟件模塊</p><p><b> 5.2 主程序設(shè)計(jì)</b></p><p> 主程序的內(nèi)容一般
41、包括:主程序起始地址、有關(guān)存儲單元及相關(guān)元</p><p> 件的初始化和一些子程序調(diào)用等。對8255進(jìn)行初始化,設(shè)定8255的輸入輸出方式。</p><p><b> 6.調(diào)試</b></p><p><b> (1).輸入源程序</b></p><p> 先輸入源程序并對源程序進(jìn)行匯編和
42、改錯</p><p><b> (2).調(diào)試方案</b></p><p> 在調(diào)試程序前認(rèn)真分析源程序,確定各功能程序運(yùn)行的預(yù)期結(jié)果。然后結(jié)合源程序應(yīng)達(dá)到的結(jié)果,通過某些關(guān)鍵參數(shù)和實(shí)驗(yàn)現(xiàn)象檢驗(yàn)程序運(yùn)行結(jié)果正確與否。并針對具體的分析和觀察對象選擇較合適的調(diào)試方法。如單步運(yùn)行、跟蹤運(yùn)行、連續(xù)運(yùn)行、快速運(yùn)行至光標(biāo)處、設(shè)置斷點(diǎn)等調(diào)試方法。 </p><
43、p><b> (3).調(diào)試程序</b></p><p> 1) 調(diào)試子程序。由于程序比較多,整體調(diào)試不容易發(fā)現(xiàn)和改正錯誤,故采取子程序調(diào)試的方法,但要明確子程序的具體功能。例如:調(diào)試顯示子程序時,只將顯示子程序進(jìn)行匯編,確認(rèn)無誤后單步執(zhí)行,觀察CPU窗口和DATA窗口以及CODE窗口相應(yīng)單元的變化是否跟預(yù)期的一樣。如果有問題找出問題所在。采取各個擊破的方法調(diào)試好各個子程序。<
44、/p><p> 2)確定各子程序無誤后,再調(diào)試完整的程序,要注意各子程序之間的銜接以及和主程序之間的調(diào)用和返回。</p><p><b> (4).調(diào)試結(jié)果</b></p><p> 程序運(yùn)行時將播放鍵打開,此時可以聽到播放的歌曲,并可以看到顯示的歌曲的信息,當(dāng)分別切換不同的鍵時可以聽取不同的歌。</p><p>
45、(5).調(diào)試過程中的問題</p><p> 鍵的設(shè)定沒有設(shè)定好,上一曲鍵和下一曲鍵不管用</p><p> 在歌曲播放期間不能暫停</p><p> 在歌曲播放期間顯示器不能設(shè)計(jì)為關(guān)閉狀態(tài)</p><p><b> 7.結(jié)束語</b></p><p> 一寸光陰一寸金,寸金難買寸光陰,雖
46、然我們努力節(jié)約一切可以利用的時間,但是兩周的單片機(jī)課程設(shè)計(jì)如白駒過隙般匆匆而逝,讓我們對時間的飛逝嘆息不已。</p><p> 此次課程設(shè)計(jì)我設(shè)計(jì)的題目是音樂播放器,剛開始拿到題目真是一頭的霧水,還好馬上老師給我們一些建議,馬上我們來到圖書館借閱相應(yīng)的書籍。設(shè)計(jì)得以繼續(xù)下去。如此用去了兩天的時間,對課題總算有了點(diǎn)了解。然后就開始進(jìn)行程序的設(shè)計(jì),這時發(fā)現(xiàn)自己知道的知識太少了,在程序設(shè)計(jì)中遇到了許多困難,自己又查書
47、問老師,困難總算解決了,就這樣一周的時間過完了。但是由于盲目的理論設(shè)計(jì)結(jié)果許多設(shè)計(jì)好的芯片我們操作的實(shí)驗(yàn)臺上并沒有大半個星期的努力附之流水,但我們沒有放棄,馬上更換設(shè)計(jì)方案。第二周是進(jìn)行程序調(diào)試,問題又出現(xiàn)了,一開始沒有聲音顯示也不對,沒辦法只好再次去老師那里尋找?guī)椭?,老師對我們說程序應(yīng)該是一步一步調(diào)試,然后把各個部分整合起來,這讓我茅塞頓開,于是我先調(diào)試放歌的程序,然后不斷的修改程序,這部分調(diào)試好了又進(jìn)行顯示程序的調(diào)試,最后又總體進(jìn)行
48、調(diào)試,這一周就是在不斷的調(diào)試,不斷的修改程序中度過的,功夫不負(fù)有心人最后總算調(diào)試成功了,心里還是有點(diǎn)高興的對自己的成果。</p><p> 這次的課程設(shè)計(jì)使我深深的認(rèn)識到實(shí)踐能力的重要性。在這個知識競爭激烈的社會中,擁有知識就相當(dāng)于擁有了一切。但是對于我們在校大學(xué)生,實(shí)踐能力相對薄弱,除了應(yīng)當(dāng)好好的學(xué)好知識,擴(kuò)展自己的知識面外,還應(yīng)該努力的提高自己的實(shí)踐能力,為將來走進(jìn)社會,走上工作崗位做出貢獻(xiàn)。</p&
49、gt;<p> 這次的課程設(shè)計(jì)不僅提高了自己的動手設(shè)計(jì)、操作能力,而且自己也從中學(xué)到了不少知識。</p><p><b> 8.參考文獻(xiàn)</b></p><p> 《單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)》 何立民 編 北航出版社</p><p> 《單片機(jī)原理及應(yīng)用》 王迎旭 主編 機(jī)械工業(yè)出版社</p><p>
50、 《51系列單片機(jī)設(shè)計(jì)實(shí)例》 樓然苗 等編 北航出版社</p><p> 4、《51單片機(jī)應(yīng)用系統(tǒng)開發(fā)典型實(shí)例》戴家 等編 中國電力出版社</p><p> 5、《單片微型計(jì)算機(jī)原理及接口技術(shù)》陳光東 等編 華中科技大學(xué)出版社</p><p> 6、《單片機(jī)實(shí)用系統(tǒng)設(shè)計(jì)技術(shù)》房小翠 編 國防工業(yè)出版社4.3歌曲</p><p&g
51、t;<b> 9.附錄</b></p><p><b> 設(shè)計(jì)程序如下:</b></p><p> 0RG 0000H</p><p> LJMP START</p><p> 0RG 0003h</p><p> ljmp musib0<
52、;/p><p> ORG 000BH ;中斷入口</p><p> INC 20H</p><p> ;中斷服務(wù)程序,中斷計(jì)數(shù)器加1</p><p> MOV TH0,#0D8H</p><p> MOV TL0,#0EFH ;12M晶振,形成10毫秒中斷&
53、lt;/p><p> ORG 001Bh</p><p> LJMP musiD0</p><p><b> 0023h</b></p><p> ljmp musiC0</p><p> ;中斷服務(wù)程序,中斷計(jì)數(shù)器加1</p><p> MOV T
54、H0,#0D8H</p><p> MOV TL0,#0EFH ;12M晶振,形成10毫秒中斷</p><p><b> RETI</b></p><p><b> START:</b></p><p> MOV SP,#50H</p><p>
55、; MOV TH0,#0D8H</p><p> MOV TL0,#0EFH</p><p> MOV TMOD,#01H ;設(shè)定定時器工作方式</p><p> MOV IE,#82H</p><p> mov dptr, #0cfa3h;8051初始化</p><
56、p> MOV A,#80H</p><p> MOVX @DPTR,A</p><p> MOV DPTR,#0CFA0H;PA口 送初值</p><p> MOV A,#3FH</p><p> MOVX @DPTR,A ;PB口位選通</p><p> MOV DPTR,#0CFA1H<
57、/p><p> LOOP2:JNB p3.0,music0 ;掃描開關(guān)信號</p><p> LOOP3:JNB p3.4,musib0 </p><p> loop4:jnb p3.5,musid0</p><p> ajmp loop2</p><p> MUSIC0:mov r3,#1 ;送歌曲
58、編號給R3 </p><p> lcall dir;調(diào)用顯示子程序</p><p><b> NOP</b></p><p> MOV DPTR,#DAT ;表頭地址送DPTR</p><p> MOV 20H,#00H ;中斷計(jì)數(shù)器清0</p><p&
59、gt; MOV B,#00H ;表序號清0</p><p><b> MUSIC1:</b></p><p><b> NOP</b></p><p> CLR A</p><p> MOVC A,@A+DPTR ;查表取代碼</p&
60、gt;<p> JZ END0 ;是00H,則結(jié)束</p><p> CJNE A,#0FFH,MUSIC5</p><p> LJMP MUSIC3</p><p><b> MUSIC5:</b></p><p><b> NOP<
61、/b></p><p> MOV R6,A</p><p> INC DPTR</p><p> MOV A,B</p><p> MOVC A,@A+DPTR ;取節(jié)拍代碼送R7</p><p> MOV R7,A</p>
62、<p> SETB TR0 ;啟動計(jì)數(shù)</p><p><b> MUSIC2:</b></p><p><b> NOP</b></p><p> CPL P3.3</p><p> MOV A,R6</p>
63、<p> MOV R3,A</p><p> CPL A</p><p> MOV P1,A ;顯示(修改者加入的顯示)</p><p> CPL A</p><p> LCALL DEL</p><p> MOV A
64、,R7</p><p> CJNE A,20H,MUSIC2 ;中斷計(jì)數(shù)器(20H)=R7否?</p><p><b> ;不等,則繼續(xù)循環(huán)</b></p><p> MOV 20H,#00H ;等于,則取下一代碼</p><p> INC DPTR</p>
65、<p> LJMP MUSIC1</p><p><b> MUSIC3:</b></p><p><b> NOP</b></p><p> CLR TR0 ;休止100毫秒</p><p> MOV R2,#0DH</p
66、><p><b> MUSIC4:</b></p><p><b> NOP</b></p><p> MOV R3,#0FFH</p><p> LCALL DEL</p><p> DJNZ R2,MUSIC4</p><p&g
67、t; INC DPTR</p><p> LJMP MUSIC1</p><p><b> END0:</b></p><p><b> NOP</b></p><p> MOV R2,#64H ;歌曲結(jié)束,延時1秒后繼續(xù)</p>&
68、lt;p><b> MUSIC6:</b></p><p> MOV R3,#00H</p><p> LCALL DEL</p><p> DJNZ R2,MUSIC6</p><p> LJMP loop2</p><p><b> RET&
69、lt;/b></p><p> MUSIb0:mov r3,#2;送歌曲編號</p><p> lcall dir;調(diào)用顯示子程序</p><p><b> NOP</b></p><p> MOV DPTR,#Dab ;表頭地址送DPTR</p><p> MO
70、V 20H,#00H ;中斷計(jì)數(shù)器清0</p><p> MOV B,#00H ;表序號清0</p><p><b> MUSIb1:</b></p><p><b> NOP</b></p><p> CLR A</p>
71、<p> MOVC A,@A+DPTR ;查表取代碼</p><p> JZ END0 ;是00H,則結(jié)束</p><p> CJNE A,#0FFH,MUSIb5</p><p> LJMP MUSIb3</p><p><b> MUSIb5:&l
72、t;/b></p><p><b> NOP</b></p><p> MOV R6,A</p><p> INC DPTR</p><p> MOV A,B</p><p> MOVC A,@A+DPTR ;取節(jié)拍代碼送R7
73、</p><p> MOV R7,A</p><p> SETB TR0 ;啟動計(jì)數(shù)</p><p><b> MUSIb2:</b></p><p><b> NOP</b></p><p> CPL P3.3
74、</p><p> MOV A,R6</p><p> MOV R3,A</p><p> CPL A</p><p> MOV P1,A ;顯示(修改者加入的顯示)</p><p> CPL A</p><p>
75、 LCALL DEL</p><p> MOV A,R7</p><p> CJNE A,20H,MUSIb2 ;中斷計(jì)數(shù)器(20H)=R7否?</p><p><b> ;不等,則繼續(xù)循環(huán)</b></p><p> MOV 20H,#00H ;等于,則取下一
76、代碼</p><p> INC DPTR</p><p> LJMP MUSIb1</p><p><b> MUSIb3:</b></p><p><b> NOP</b></p><p> CLR TR0 ;休止10
77、0毫秒</p><p> MOV R2,#0DH</p><p><b> MUSIb4:</b></p><p><b> NOP</b></p><p> MOV R3,#0FFH</p><p> LCALL DEL</p>
78、<p> DJNZ R2,MUSIb4</p><p> INC DPTR</p><p> LJMP MUSIb1</p><p><b> END1:</b></p><p><b> NOP</b></p><p> MOV
79、 R2,#64H ;歌曲結(jié)束,延時1秒后繼續(xù)</p><p><b> MUSIb6:</b></p><p> MOV R3,#00H</p><p> LCALL DEL</p><p> DJNZ R2,MUSIb6</p><p> LJ
80、MP loop2</p><p><b> MUSID0: </b></p><p> mov r3,#3; 送歌曲編號</p><p><b> lcall dir</b></p><p><b> NOP</b></p><p>
81、MOV DPTR,#DAc ;表頭地址送DPTR</p><p> MOV 20H,#00H ;中斷計(jì)數(shù)器清0</p><p> MOV B,#00H ;表序號清0</p><p><b> MUSId1:</b></p><p><b>
82、NOP</b></p><p> CLR A</p><p> MOVC A,@A+DPTR ;查表取代碼</p><p> JZ END0 ;是00H,則結(jié)束</p><p> CJNE A,#0FFH,MUSId5</p><p>
83、 LJMP MUSId3</p><p><b> MUSId5:</b></p><p><b> NOP</b></p><p> MOV R6,A</p><p> INC DPTR</p><p> MOV A,
84、B</p><p> MOVC A,@A+DPTR ;取節(jié)拍代碼送R7</p><p> MOV R7,A</p><p> SETB TR0 ;啟動計(jì)數(shù)</p><p><b> MUSId2:</b></p><p>&l
85、t;b> NOP</b></p><p> CPL P3.3</p><p> MOV A,R6</p><p> MOV R3,A</p><p> CPL A</p><p> MOV P1,A ;顯示(修改者加入
86、的顯示)</p><p> CPL A</p><p> LCALL DEL</p><p> MOV A,R7</p><p> CJNE A,20H,MUSId2 ;中斷計(jì)數(shù)器(20H)=R7否?</p><p><b> ;不等,則繼續(xù)循環(huán)</b&
87、gt;</p><p> MOV 20H,#00H ;等于,則取下一代碼</p><p> INC DPTR</p><p> LJMP MUSId1</p><p><b> MUSId3:</b></p><p><b> NOP<
88、/b></p><p> CLR TR0 ;休止100毫秒</p><p> MOV R2,#0DH</p><p><b> MUSId4:</b></p><p><b> NOP</b></p><p> MOV
89、 R3,#0FFH</p><p> LCALL DEL</p><p> DJNZ R2,MUSId4</p><p> INC DPTR</p><p> LJMP MUSId1</p><p><b> END2:</b></p><
90、;p><b> NOP</b></p><p> MOV R2,#64H ;歌曲結(jié)束,延時1秒后繼續(xù)</p><p><b> MUSId6:</b></p><p> MOV R3,#00H</p><p> LCALL DEL</p&
91、gt;<p> DJNZ R2,MUSId6</p><p> LJMP loop2</p><p> DEL: ;延時子程序</p><p><b> NOP</b></p><p><b> DEL3:</b&g
92、t;</p><p> MOV R4,#05H</p><p><b> DEL4:</b></p><p><b> NOP</b></p><p> DJNZ R4,DEL4</p><p><b> NOP</b></
93、p><p> DJNZ R3,DEL3</p><p><b> RET</b></p><p> dir: MOV A,R3; 顯示子程序</p><p> MOV DPTR,#TAB</p><p> MOVC A,@A+DPTR</p><p> MOV D
94、PTR,#0CFA0H</p><p> MOVX @DPTR,A</p><p> MOV DPTR,#0CFA1H</p><p> MOV A,#11111110B</p><p> MOVX @DPTR,A</p><p><b> ORG 1000H</b></p>
95、<p> TAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH;表址</p><p> DB 6FH,77H,7CH,39H,5EH,79H,71H,00H</p><p> DAT: ;數(shù)據(jù)表格存放在ROM中。</p><p> DB 18H, 30H, 1CH, 10H ;歌曲八月桂花香表地
96、址</p><p> DB 20H, 40H, 1CH, 10H</p><p> DB 18H, 10H, 20H, 10H</p><p> DB 1CH, 10H, 18H, 40H</p><p> DB 1CH, 20H, 20H, 20H</p><p> DB 1CH, 20H, 18H, 20
97、H</p><p> DB 20H, 80H, 0FFH,20H</p><p> DB 30H, 1CH, 10H, 18H</p><p> DB 20H, 15H, 20H, 1CH</p><p> DB 20H, 20H, 20H, 26H</p><p> DB 40H, 20H, 20H, 2B
98、H</p><p> DB 20H, 26H, 20H, 20H</p><p> DB 20H, 30H, 80H, 0FFH</p><p> DB 20H, 20H, 1CH, 10H</p><p> DB 18H, 10H, 20H, 20H</p><p> DB 26H, 20H, 2BH, 2
99、0H</p><p> DB 30H, 20H, 2BH, 40H</p><p> DB 20H, 20H, 1CH, 10H</p><p> DB 18H, 10H, 20H, 20H</p><p> DB 26H, 20H, 2BH, 20H</p><p> DB 30H, 20H, 2BH, 4
100、0H</p><p> DB 1CH, 20H, 18H, 20H</p><p> DB 20H, 80H, 0FFH,20H</p><p> DB 30H, 1CH, 10H, 18H</p><p> DB 20H, 15H, 20H, 1CH</p><p> DB 20H, 20H, 20H, 2
101、6H</p><p> DB 40H, 20H, 20H, 2BH</p><p> DB 20H, 26H, 20H, 21H</p><p><b> dab: </b></p><p> DB26H,20H,20H,20H,20H,20H,26H,10H,20H,10H,20H,80H,26H,20
102、H,30H,20H;;歌曲祝你平安表地址</p><p> DB 30H,20H,39H,10H,30H,10H,30H,80H,26H, 20H,20H,20H,20H,20H,1CH,20H</p><p> DB 20H,80H,2bH,20H,26H,20H,20H,20H,2bH,10H,26H,10H,2bH,80H,26H,20H</p><p>
103、; DB 30H,20H,30H,20H,39H,10H,26H,10H,26H,60H,40H,10H,39H,10H, 26H,20H</p><p> DB 30H,20H,30H,20H,39H,10H,26H,10H,26H,80H,26H, 20H,2bH,10H, 2bH,10H</p><p> DB 2bH,20H,30H,10H,39H,10H,26H,10
104、H,2bH,10H,26H,20H, 2bH,40H, 40H,20H</p><p> DB 20H,10H,20H,10H,2bH,10H,26H,30H,30H,80H,18H,20H, 18H,20H, 26H,20H</p><p> DB 20H,20H,20H,40H,26H,20H,2bH,20H,30H,20H,30H,20H, 1CH,20H, 20H,20H&
105、lt;/p><p> DB 20H,80H,1CH,20H,1CH,20H,1CH,20H,30H,20H,26H,60H,39H,10H,30H,10H</p><p> DB 20H,20H,2bH,10H,26H,10H,2bH,10H,26H,10H,26H,10H,2bH,10H,2bH,80H</p><p> DB 18H,20H,18H,20H,
106、26H,20H,20H, 20H,20H,60H,26H,10H,2bH,20H,30H,20H</p><p> DB 30H,20H,1CH,20H, 20H,20H ,20H,80H,26H,20H,30H,10H,30H,10H,30H,20H</p><p> DB 39H,20H,26H,10H,2Bh,10H,2bH,20H,2bH,40H,40H,10H,40H,10H
107、,20H,10H</p><p><b> dac: </b></p><p> DB 20H, 30H, 1CH, 10H ;;歌曲兩只老虎表地址</p><p> DB 18H, 40H, 1CH, 20H</p><p> DB 20H, 20H, 26H, 40H</p><p&g
108、t; DB 13H, 60H, 18H, 20H</p><p> DB 30H, 20H, 2BH, 40H</p><p> DB 20H, 30H, 1CH, 10H</p><p> DB 18H, 20H, 15H, 20H</p><p> DB 1CH, 20H, 20H, 20H</p><p&g
109、t; DB 26H, 40H, 20H, 20H</p><p> DB 2BH, 20H, 26H, 20H</p><p> DB 20H, 20H, 30H, 30H</p><p> DB 20H, 30H, 1CH, 10H</p><p> DB 18H, 40H, 1CH, 20H</p><p&g
110、t; DB 20H, 20H, 26H, 40H</p><p> DB 13H, 60H, 18H, 20H</p><p> DB 20H, 20H, 30H, 30H</p><p> DB 20H, 30H, 1CH, 10H</p><p> DB 18H, 40H, 1CH, 20H</p><p&g
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 音樂播放系統(tǒng)設(shè)計(jì)--單片機(jī)課程設(shè)計(jì)報告
- 單片機(jī)課程設(shè)計(jì)--基于單片機(jī)的音樂播放器
- 單片機(jī)音樂播放器課程設(shè)計(jì)報告
- 基于單片機(jī)音樂播放器課程設(shè)計(jì)
- 單片機(jī)音樂播放器課程設(shè)計(jì)報告
- 單片機(jī)課程設(shè)計(jì)--基于89c52單片機(jī)音樂播放的設(shè)計(jì)
- 基于單片機(jī)音樂播放器設(shè)計(jì)-課程設(shè)計(jì)論文
- 單片機(jī)課程設(shè)計(jì)——紅外遙控音樂播放器
- 單片機(jī)課程設(shè)計(jì)報告(利用蜂鳴器播放音樂)
- 課程設(shè)計(jì)--基于單片機(jī)的簡易音樂播放器
- 單片機(jī)課程設(shè)計(jì)--電子音樂播放器
- 硬件課程設(shè)計(jì)報告--基于51單片機(jī)音樂播放器設(shè)計(jì)
- 課程設(shè)計(jì)-基于單片機(jī)的音樂盒播放器設(shè)計(jì)
- 單片機(jī)音樂門鈴課程設(shè)計(jì)
- 課程設(shè)計(jì)---基于atmega16單片機(jī)的音樂播放器設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)報告---單片機(jī)秒表系統(tǒng)設(shè)計(jì)
- 單片機(jī)音樂盒課程設(shè)計(jì)
- 單片機(jī)音樂盒課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--音樂盒
- 音樂盒單片機(jī)課程設(shè)計(jì)
評論
0/150
提交評論