版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 基于單片機(jī)的音樂(lè)彩燈控制器設(shè)計(jì)</p><p> [摘要] 本設(shè)計(jì)是一種基于AT89C51單片機(jī)音樂(lè)控制彩燈的方案,實(shí)現(xiàn)單片機(jī)演奏音樂(lè),并且對(duì)LED彩燈隨音符頻率的不同而閃爍發(fā)光。本方案以AT89C51單片機(jī)作為主控核心,通過(guò)三極管放大電流使用蜂鳴器播放音樂(lè),利用編程實(shí)現(xiàn)亮燈循環(huán)模式,在有8個(gè)LED彩燈,根據(jù)用戶需求可以編寫若干種亮燈模式.例如左右閃爍,隔幾個(gè)亮滅,蜂鳴器可以根據(jù)用戶需求改
2、寫編程播放各種音樂(lè)。本方案具有設(shè)計(jì)簡(jiǎn)單、體積小、元器件少、電路結(jié)構(gòu)簡(jiǎn)單等優(yōu)點(diǎn)。該設(shè)計(jì)方案設(shè)計(jì)及其簡(jiǎn)單,典型的AT89C51單片機(jī),亮燈模式多,播放各種類型的音樂(lè),具有體積小、價(jià)格低、低能耗等優(yōu)點(diǎn)。在美麗的都市夜晚,彩燈的循環(huán)亮滅,播放動(dòng)人的音樂(lè),襯托出美麗的氛圍。</p><p> [關(guān)鍵詞] AT89C51 LED彩燈 音樂(lè)</p><p> Based on singl
3、e chip music lights controller design</p><p> Abstract :This design is a musical based on AT89C51 microcontroller control program Lantern,realize MCU playing music,And the LED lights on the frequency of dif
4、ferent notes with the light flashing。The program for AT89C51 microcontroller as the control center, the current through the transistor amplification using the buzzer to play music, Using programming lighting cycle mode,
5、with 8 LED Lantern, according to user needs to write some kind of switch-mode. For example, flashing around, every few l</p><p> Key words :AT89C51 LED Lantern music</p><p><b> 引言1&
6、lt;/b></p><p> 1 音樂(lè)彩燈方案設(shè)計(jì)與選擇1</p><p><b> 1.1設(shè)計(jì)要求1</b></p><p> 1.2 基本原理1</p><p><b> 1.3設(shè)計(jì)電源2</b></p><p><b> 1.4頻率
7、音符2</b></p><p> 2 音樂(lè)彩燈設(shè)計(jì)過(guò)程3</p><p> 2.1元器件選取3</p><p><b> 2.2電路設(shè)計(jì)3</b></p><p> 2.2.1 元器件介紹3</p><p> 2.2.2 音樂(lè)彩燈構(gòu)思5</p>
8、<p> 2.3 軟件設(shè)計(jì)6</p><p> 2.3.1 編程介紹6</p><p> 2.3.2 設(shè)計(jì)程序9</p><p><b> 3 心得體會(huì)11</b></p><p> 3.1課程設(shè)計(jì)總結(jié)11</p><p> 3.2收獲與體會(huì)11</p
9、><p><b> 參考文獻(xiàn)12</b></p><p><b> 引言</b></p><p> 單片機(jī)誕生于1971年,經(jīng)歷了SCM、MCU、SoC三大階段,早期的SCM單片機(jī)都是8位或4位的。其中最成功的是INTEL的8031,此后在8031上發(fā)展出了MCS51系列MCU系統(tǒng)?;谶@一系統(tǒng)的單片機(jī)系統(tǒng)直到現(xiàn)在還在
10、廣泛使用。隨著工業(yè)控制領(lǐng)域要求的提高,開始出現(xiàn)了16位單片機(jī),但因?yàn)樾詢r(jià)比不理想并未得到很廣泛的應(yīng)用。90年代后隨著消費(fèi)電子產(chǎn)品大發(fā)展,單片機(jī)技術(shù)得到了巨大提高。隨著INTEL i960系列特別是后來(lái)的ARM系列的廣泛應(yīng)用,32位單片機(jī)迅速取代16位單片機(jī)的高端地位,并且進(jìn)入主流市場(chǎng)。 而傳統(tǒng)的8位單片機(jī)的性能也得到了飛速提高,處理能力比起80年代提高了數(shù)百倍。目前,高端的32位Soc單片機(jī)主頻已經(jīng)超過(guò)300MHz,性能直追90年代
11、中期的專用處理器,而普通的型號(hào)出廠價(jià)格跌落至1美元,最高端的型號(hào)也只有10美元。 當(dāng)代單片機(jī)系統(tǒng)已經(jīng)不再只在裸機(jī)環(huán)境下開發(fā)和使用,大量專用的嵌入式操作系統(tǒng)被廣泛應(yīng)用在全系列的單片機(jī)上。而在作為掌上電腦和手機(jī)核心處理的高端單片機(jī)甚至可以直接使用專用的Windows和Linux操作系統(tǒng)。 </p><p> 主要應(yīng)用:目前單片機(jī)滲透到我們生活的各個(gè)領(lǐng)域,幾乎很難找到哪個(gè)領(lǐng)域沒(méi)有單片機(jī)的蹤跡。導(dǎo)彈的導(dǎo)航裝置,飛機(jī)
12、上各種儀表的控制,計(jì)算機(jī)的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,工業(yè)自動(dòng)化過(guò)程的實(shí)時(shí)控制和數(shù)據(jù)處理,廣泛使用的各種智能IC卡,民用豪華轎車的安全保障系統(tǒng),攝像機(jī)、全自動(dòng)洗衣機(jī)的控制,以及程控玩具、電子寵物等等,這些都離不開單片機(jī)。更不用說(shuō)自動(dòng)控制領(lǐng)域的機(jī)器人、智能儀表、醫(yī)療器械了。因此,單片機(jī)的學(xué)習(xí)、開發(fā)與應(yīng)用將造就一批計(jì)算機(jī)應(yīng)用與智能化控制的科學(xué)家、工程師。 </p><p> 單片機(jī)廣泛應(yīng)用于儀器儀表、家用電器、醫(yī)用設(shè)備、航
13、空航天、專用設(shè)備的智能化管理及過(guò)程控制等領(lǐng)域,大致可分如下幾個(gè)范疇:(1)在智能儀器儀表上的應(yīng)用,單片機(jī)具有體積小、功耗低、控制功能強(qiáng)、擴(kuò)展靈活、微型化和使用方便等優(yōu)點(diǎn),廣泛應(yīng)用于儀器儀表中,結(jié)合不同類型的傳感器,可實(shí)現(xiàn)諸如電壓、功率、頻率、濕度、溫度、流量、速度、厚度、角度、長(zhǎng)度、硬度、元素、壓力等物理量的測(cè)量。采用單片機(jī)控制使得儀器儀表數(shù)字化、智能化、微型化,且功能比起采用電子或數(shù)字電路更加強(qiáng)大。例如精密的測(cè)量設(shè)備(功率計(jì),示波器,
14、各種分析儀);(2)在工業(yè)控制中的應(yīng)用,用單片機(jī)可以構(gòu)成形式多樣的控制系統(tǒng)、數(shù)據(jù)采集系統(tǒng)。例如工廠流水線的智能化管理,電梯智能化控制、各種報(bào)警系統(tǒng),與計(jì)算機(jī)聯(lián)網(wǎng)構(gòu)成二級(jí)控制系統(tǒng)等。(3)在家用電器中的應(yīng)用,可以這樣說(shuō),現(xiàn)在的家用電器基本上都采用了單片機(jī)控制,從電飯褒、洗衣機(jī)、電冰箱、空調(diào)機(jī)、彩電、其他音響視頻器材、再到電子稱量設(shè)備,五花八門,無(wú)所不在。(4)在計(jì)算機(jī)網(wǎng)絡(luò)和通信領(lǐng)域中的應(yīng)用,現(xiàn)代的單片機(jī)普遍具備通信接口,可以很方便地與計(jì)算
15、機(jī)進(jìn)行數(shù)據(jù)通信,為在計(jì)算機(jī)網(wǎng)絡(luò)和通信設(shè)備間的應(yīng)用提供了極好的物質(zhì)條件,現(xiàn)</p><p> 1 音樂(lè)彩燈方案設(shè)計(jì)與選擇</p><p><b> 1.1設(shè)計(jì)要求</b></p><p> 本次課程設(shè)計(jì)要求設(shè)計(jì)一個(gè)音樂(lè)彩燈,其設(shè)計(jì)要求如下:</p><p> ?。?)用8個(gè)發(fā)光二極管作為顯示電路。</p>
16、<p> ?。?)播放八月桂花香的音樂(lè)。</p><p> ?。?)能夠循環(huán)的顯示燈的亮滅。</p><p><b> 1.2 基本原理</b></p><p> 通過(guò)控制單片機(jī)的內(nèi)部定時(shí)器的定時(shí)時(shí)間來(lái)產(chǎn)生不同的脈沖頻率,以驅(qū)動(dòng)蜂鳴器發(fā)出不同音節(jié)的聲音,利用延時(shí)子程序來(lái)控制音調(diào)的節(jié)拍。</p><p>
17、; 為了編程方便,通常是將簡(jiǎn)單的音符和相應(yīng)的節(jié)拍轉(zhuǎn)換成為定時(shí)常數(shù)和延時(shí)常數(shù),利用查表法得到定時(shí)常數(shù),分別控制定時(shí)器產(chǎn)生相應(yīng)的脈沖頻率和脈沖頻率的持續(xù)時(shí)間,當(dāng)持續(xù)時(shí)間到時(shí),程序自動(dòng)查找下一個(gè)音符的定時(shí)常數(shù)和延時(shí)常數(shù),這樣就可以聽到悅耳動(dòng)聽的歌聲。</p><p> 音調(diào)是由不同的頻率產(chǎn)生的,而每一個(gè)音調(diào)都是有一個(gè)音符和一個(gè)節(jié)拍組成,音符決定該音調(diào)的高低,節(jié)拍決定了該音調(diào)是多少拍。因此,一個(gè)音調(diào)是由兩個(gè)字節(jié)組成的
18、。根據(jù)音符字節(jié)產(chǎn)生該大小次數(shù)的延時(shí),聲音輸出口取反,就可以得到該音調(diào)的高低音。根據(jù)設(shè)置單位的延時(shí)大熊啊,可以控制音樂(lè)演唱速度。 </p><p> 因此算法很簡(jiǎn)單:定義單片機(jī)的一個(gè)I/O端腳為聲音輸出口,在規(guī)定的節(jié)拍內(nèi),根據(jù)音符字節(jié)的大小產(chǎn)生延時(shí),將聲音輸出口不斷的至置高置低(即取反),就可以得到該音調(diào)。只要選取合適的單位節(jié)拍延時(shí),就可以輸出動(dòng)聽的音樂(lè)。用內(nèi)部定時(shí)器T0方式產(chǎn)生簡(jiǎn)譜中各音符飛對(duì)應(yīng)脈沖頻率,同時(shí)通
19、過(guò)延時(shí)常數(shù)來(lái)控制脈沖頻率的持續(xù)時(shí)間。</p><p> 為了加強(qiáng)觀賞和實(shí)用性在上面P0-P7腳接了LED燈,這樣在音樂(lè)播放的同時(shí)也有燈的閃爍對(duì)音符有直觀的感覺(jué)。</p><p> 補(bǔ)充說(shuō)明:為了增加視覺(jué)效果,我在此次的設(shè)計(jì)中采用2個(gè)LED燈串聯(lián)成一路,總共8路16個(gè)LED燈接在P0-P8腳。以下所提到的LED1燈就表示接在P0口的兩個(gè)彩燈,依次類推,LED8就指接在P7口的兩個(gè)彩燈。&
20、lt;/p><p><b> 1.3設(shè)計(jì)電源</b></p><p> AT89C51單片機(jī)需要的電源是5v直流電源,我們所用的電是220v50赫茲,這要需要交流電源220v轉(zhuǎn)換5v直流電源,利用變壓器的原理220v進(jìn)行降壓,單片機(jī)控制系統(tǒng)以及外圍芯片供電采用7805系列三端穩(wěn)壓器件,通過(guò)全波整流,然后進(jìn)行濾波,然后進(jìn)行濾波穩(wěn)壓,使用電容濾去交流,電路如圖1.1所示。
21、</p><p> 圖 1.1 電源設(shè)計(jì)圖</p><p><b> 1.4頻率音符</b></p><p> 單片機(jī)的震蕩頻率為12MHz,樂(lè)曲的音符、頻率及定時(shí)常數(shù)三者的對(duì)應(yīng)關(guān)系如表1.1所示</p><p> 表1.1頻率音符及定時(shí)常數(shù)關(guān)系表</p><p> 2 音樂(lè)彩燈設(shè)計(jì)過(guò)
22、程</p><p><b> 2.1元器件選取</b></p><p> 單片機(jī)AT89C51;三極管8050,電阻1k,10k;電容 33pf 1uf;變壓器;整流橋;7805;發(fā)光二極管;</p><p> 蜂鳴器;晶體振蕩器 12MHz.</p><p><b> 2.2電路設(shè)計(jì)</b>
23、;</p><p> 2.2.1 元器件介紹</p><p><b> 7805介紹</b></p><p> H7805系列為3端正穩(wěn)壓電路,TO-220封裝,能提供很多種固定的輸出電壓,應(yīng)用范圍廣。內(nèi)涵過(guò)流、過(guò)熱和過(guò)載保護(hù)電路。帶散熱片時(shí),輸出電流可達(dá)1A.。雖然是固定穩(wěn)壓電路,但是用外接元件,可獲得不同的電壓和電流。</p
24、><p><b> 主要特點(diǎn) :</b></p><p><b> 輸出電流可達(dá)1A</b></p><p><b> 輸出電壓有5V</b></p><p><b> 過(guò)熱保護(hù)</b></p><p><b> 短
25、路保護(hù)</b></p><p> 圖 2.1 H7805</p><p><b> 單片機(jī)介紹</b></p><p> 單片機(jī)是一種集成在電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器CPU隨機(jī)存儲(chǔ)器RAM、只讀存儲(chǔ)器ROM、多種I/O口和中斷系統(tǒng)、定時(shí)器/計(jì)時(shí)器等功能(可能還包括顯示驅(qū)動(dòng)電路、脈寬調(diào)制
26、電路、模擬多路轉(zhuǎn)換器、A/D轉(zhuǎn)換器等電路)集成到一塊硅片上構(gòu)成的一個(gè)小而完善的計(jì)算機(jī)系統(tǒng)。</p><p> 單片機(jī)又稱單片微控制器,它不是完成某一個(gè)邏輯功能的芯片,而是把一個(gè)計(jì)算機(jī)系統(tǒng)集成到一個(gè)芯片上。相當(dāng)于一個(gè)微型的計(jì)算機(jī),和計(jì)算機(jī)相比,單片機(jī)只缺少了I/O設(shè)備。概括的講:一塊芯片就成了一臺(tái)計(jì)算機(jī)。它的體積小、質(zhì)量輕、價(jià)格便宜、為學(xué)習(xí)、應(yīng)用和開發(fā)提供了便利條件。同時(shí),學(xué)習(xí)使用單片機(jī)是了解計(jì)算機(jī)原理與結(jié)構(gòu)的最
27、佳選擇。</p><p> AT89C51單片機(jī)是美國(guó) ATMEI 公司生產(chǎn)的低電 、高性能CMOS 8位單片機(jī),具有豐富的內(nèi)部資源:4kB閃存、128BRAM、32根I/O口線、2個(gè)16位定時(shí)/計(jì)數(shù)器、5個(gè)向量陰級(jí)中斷結(jié)構(gòu)、2個(gè)全I(xiàn)雙工的串行、具有4.25~5.50V的電壓工作范同和0~24MHz工作頻率,使用AT89C51單片機(jī)時(shí)無(wú)須外擴(kuò)存儲(chǔ)器。</p><p> AT89C205
28、1芯片的20個(gè)引腳功能為:</p><p> VCC:供電電壓。 </p><p> GND:接地。 </p><p> P0口:P0口為一個(gè)8位漏級(jí)開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P0口的管腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的低八位。在FIASH編程時(shí),P0 口作為原碼輸入口,當(dāng)F
29、IASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須接上拉電阻。 </p><p> P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為低八位地址接收。 </p><p> P2口:P2口為
30、一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),P2口輸出其特殊功能存儲(chǔ)器的內(nèi)容。P2口在FLASH編程和
31、校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。 </p><p> P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。 </p><p> P3口也可作為AT89C51的一些特殊功能口,如下表所示: </p>
32、;<p> 口管腳 備選功能 </p><p> P3.0 RXD(串行輸入口) </p><p> P3.1 TXD(串行輸出口) </p><p> P3.2 /INT0(外部中斷0) </p><p> P3.3 /INT1(外部中斷1) </p><p> P3.4
33、 T0(記時(shí)器0外部輸入) </p><p> P3.5 T1(記時(shí)器1外部輸入) </p><p> P3.6 /WR(外部數(shù)據(jù)存儲(chǔ)器寫選通) </p><p> P3.7 /RD(外部數(shù)據(jù)存儲(chǔ)器讀選通) </p><p> P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。 </p><p&g
34、t; RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。 ALE/PROG:當(dāng)訪問(wèn)外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的低位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過(guò)一個(gè)ALE脈沖。如想禁止ALE的輸出可在SFR8E
35、H地址上置0。此時(shí), ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無(wú)效。 </p><p> /PSEN:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/PSEN信號(hào)將不出現(xiàn)。 </p><p> /EA/VPP:當(dāng)/EA保
36、持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000H-FFFFH),不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。 </p><p> XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。 </p><p> XTAL2:來(lái)自反向振蕩器的輸出
37、</p><p> 振蕩器特性: XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石英振蕩和陶瓷振蕩均可采用。如采用外部時(shí)鐘源驅(qū)動(dòng)器件,XTAL2應(yīng)不接。有余輸入至內(nèi)部時(shí)鐘信號(hào)要通過(guò)一個(gè)二分頻觸發(fā)器,因此對(duì)外部時(shí)鐘信號(hào)的脈寬無(wú)任何要求,但必須保證脈沖的高低電平要求的寬度。</p><p> 圖2.2 AT89C51引腳圖</p>
38、<p> 2.2.2 音樂(lè)彩燈構(gòu)思</p><p> 方案框圖 如下圖所示</p><p> 圖2.3 音樂(lè)彩燈方案框圖</p><p> P0是一個(gè)OC結(jié)構(gòu),也就是是相當(dāng)與一個(gè)NPN的三極管,C極沒(méi)有接任何東西,E極接地,B極接在一個(gè)數(shù)字電路的輸出口上。所以沒(méi)有接上拉電阻的時(shí)候,相當(dāng)于CE沒(méi)有任何電壓,那么不管BE的電壓是多少,三極管都不會(huì)導(dǎo)通和
39、工作。接了上拉電阻后,也就是C極接了一個(gè)10K的電阻到5V,那么當(dāng)BE的電壓是0的時(shí)候,三極管截止,電阻沒(méi)有導(dǎo)通,C極的電壓等于5V,當(dāng)BE的電壓為0.7V時(shí),三極管飽和導(dǎo)通,CE的壓降接近為0,電阻的電壓會(huì)有5V,P0的高電平是靠外部上拉形成的,P0的低電平是靠?jī)?nèi)部下拉形成的,執(zhí)行MOV P0,#00H后,即使有上拉電阻也會(huì)變成低電平。 </p><p> 如果P0口加了上拉電阻,P0的邏輯1是高阻態(tài),高阻態(tài)
40、相當(dāng)于P0與外部引腳斷開了,引腳由于上拉效果變成上拉電源的高電平。執(zhí)行程序 MOV P0,#00H,由于P0的邏輯0是低電平,所以P0變?yōu)榈碗娖?,由于電阻隔離上拉電源,P0口的引腳也是低電平。 </p><p> 從下面的電路原理圖中可以看出,如果要讓接在P0口的LED1亮起來(lái),那么只要把P1.0的電平變?yōu)榈碗娖骄涂梢粤耍幌喾?,如果要接在P1.0口的LED1熄滅,就要把P1.0口的電平變
41、為高電平;同理,接 P1.1~P1.7口的其他7路LED的點(diǎn)亮和熄滅的方法同LED1。因此, 實(shí)現(xiàn)流水燈功能,我們只要將發(fā)光二極管LED1~LED8依次點(diǎn)亮、熄滅,8路LED燈便會(huì)一亮一暗的做流水燈了。在此,我們還應(yīng)注意一點(diǎn),由于人眼的視覺(jué)暫留效應(yīng)以及單片機(jī)執(zhí)行每條指令的時(shí)間很短,我們?cè)诳刂贫O管亮滅的時(shí)候應(yīng)該延時(shí)一段時(shí)間,否則我們就看不到“流水”效果了,P2^7輸出的電流很小,P2^7接了一個(gè)三極管,放大電流以使蜂鳴器能夠正常的工作,
42、播放出八月桂花香的音樂(lè).</p><p><b> ,</b></p><p> 圖2.4 電路仿真圖</p><p><b> 2.3 軟件設(shè)計(jì)</b></p><p> 2.3.1 編程介紹 </p><p> 單片機(jī)的應(yīng)用系統(tǒng)由硬件和軟件組成,上述硬件原理
43、圖搭建完成上電之后,我們還不能看到音樂(lè)流水燈現(xiàn)象,我們還需要告訴單片機(jī)怎么來(lái)進(jìn)行工作,即編寫c語(yǔ)言控制單片機(jī)管腳(P0、P2口)電平的高低變化,實(shí)現(xiàn)蜂鳴器的播放八月桂花香的音樂(lè),來(lái)實(shí)現(xiàn)發(fā)光二極管的一亮一滅。軟件編程是單片機(jī)應(yīng)用系統(tǒng)中的一個(gè)重要的組成部分,是單片機(jī)學(xué)習(xí)的重點(diǎn)和難點(diǎn)。下面以最簡(jiǎn)單的彩燈控制蜂鳴器播放,也可實(shí)現(xiàn)8路LED燈的循環(huán)點(diǎn)亮,來(lái)介紹實(shí)現(xiàn)流水燈控制的幾種軟件編程方法。</p><p> (1)
44、作為單片機(jī)的指令的執(zhí)行的時(shí)間是很短,數(shù)量大微秒級(jí),因此,我們要求的閃爍時(shí)間間隔為0.2秒,相對(duì)于微秒來(lái)說(shuō),相差太大,所以我們?cè)趫?zhí)行某一指令時(shí),插入延時(shí)程序,來(lái)達(dá)到我們的要求,但這樣的延時(shí)程序是如何設(shè)計(jì)呢?如何設(shè)置延時(shí)子程序,可以不斷的修改i 的數(shù)值,就可以得到延時(shí)多少的時(shí)間,使的眼睛能夠看到彩燈的亮滅。</p><p> void delay(uchar n) /延時(shí)子程序</p><p&g
45、t;<b> {</b></p><p> uchar i;/定義i為整數(shù)</p><p> while(n--)/ n 不斷減1直到n減小為零才停止</p><p> for (i=0;i<125;i++);/ i從零不斷加1直到i變成124停止</p><p><b> }</b>
46、;</p><p> 時(shí)候或uchar就可以當(dāng)無(wú)符號(hào)型字符變量使用了</p><p> typedef unsigned char Uchar;</p><p> typedef unsigned char uchar;</p><p><b> (2)</b></p><p>&l
47、t;b> while(1)</b></p><p><b> {</b></p><p> temp=0xfe; </p><p><b> P1=temp;</b></p><p><b> delay();</b
48、></p><p> for(i=1;i<8;i++)</p><p><b> {</b></p><p> a=temp<<i;</p><p> b=temp>>(8-i);</p><p><b> P1=a|b;</b>
49、</p><p> 其中b=temp>>(8-i); P1=a|b; 可以讓一盞燈 一直從左邊移到右邊 </p><p> 我們用 當(dāng)i=1的時(shí)候 來(lái)分析 temp=0xfe=(1111 1110)</p><p> 執(zhí)行a=temp<<i ;a=1111 1100 ;(因?yàn)橹皇茄h(huán)左移)</p><p>
50、 如果只有這樣的話 最右邊的那盞等也會(huì)亮。就不能達(dá)到只開一盞燈的目的</p><p> 所以 還要 b=temp>>7; b=0000 0001</p><p> p1=a|b; P1=1111 1101;</p><p> 所以 p1就叢 1111 1110 變化成了 1111 1101</p><p>
51、 這樣等就左移了一位。 </p><p> (3) 如何控制燈的亮滅還有播放不同的音樂(lè),只要找到音樂(lè)代碼,需修改下面數(shù)組就可以用.</p><p> uchar code array[]= </p><p><b> {</b></p><p> 0x18,0x30,0x1c,0x10,
52、0x20,0x40,0x1c,0x10,</p><p> 0x18,0x10,0x20,0x10,0x1c,0x10,0x18,0x40,</p><p> 0x1c,0x20,0x20,0x20,0x1c,0x20,0x18,0x20,</p><p> 0x20,0x80,0xff,0x20,0x30,0x1c,0x10,0x18,</p>
53、<p> 0x20,0x15,0x20,0x1c,0x20,0x20,0x20,0x26,</p><p> 0x40,0x20,0x20,0x2b,0x20,0x26,0x20,0x20,</p><p> 0x20,0x30,0x80,0xff,0x20,0x20,0x1c,0x10,</p><p> 0x18,0x10,0x20,0x20
54、,0x26,0x20,0x2b,0x20,</p><p> 0x15,0x40,0x13,0x40,0x18,0x80,0x00,0x00,</p><p><b> };</b></p><p> (4)算法程序設(shè)計(jì)內(nèi)容 。 </p><p> 每次送出的數(shù)據(jù)是不同,具體的數(shù)據(jù)如下表1所示 :</p&g
55、t;<p> 表2.2 管腳控制關(guān)系表</p><p><b> (5)流程圖</b></p><p> 2.3.2 設(shè)計(jì)程序</p><p> #include<reg51.h></p><p> #define uchar unsigned char </p>&l
56、t;p> #define uint unsigned int</p><p> sbit sound=P2^7;</p><p> uint counter=0;</p><p> uchar code array[]= </p><p><b> {</b></p>
57、<p> 0x18,0x30,0x1c,0x10,0x20,0x40,0x1c,0x10,</p><p> 0x18,0x10,0x20,0x10,0x1c,0x10,0x18,0x40,</p><p> 0x1c,0x20,0x20,0x20,0x1c,0x20,0x18,0x20,</p><p> 0x20,0x80,0xff,0x20
58、,0x30,0x1c,0x10,0x18,</p><p> 0x20,0x15,0x20,0x1c,0x20,0x20,0x20,0x26,</p><p> 0x40,0x20,0x20,0x2b,0x20,0x26,0x20,0x20,</p><p> 0x20,0x30,0x80,0xff,0x20,0x20,0x1c,0x10,</p>
59、<p> 0x18,0x10,0x20,0x20,0x26,0x20,0x2b,0x20,</p><p> 0x15,0x40,0x13,0x40,0x18,0x80,0x00,0x00,</p><p><b> };</b></p><p> void init_com()/ 設(shè)置定時(shí)器</p>&l
60、t;p><b> {</b></p><p> TMOD=0x01;</p><p><b> TH0=0xff;</b></p><p><b> TL0=0xff;</b></p><p><b> EA=1;</b></p>
61、;<p><b> ET0=1;</b></p><p><b> }</b></p><p> void timer0(void) interrupt 1 using 3 / 設(shè)置中斷 3</p><p><b> {</b></p><p> cou
62、nter=counter+1;/不斷加1</p><p><b> TH0=0xd8;</b></p><p><b> TL0=0xef;</b></p><p><b> }</b></p><p> void delay(uchar n) /延時(shí)子程序</p
63、><p><b> {</b></p><p><b> uchar i;</b></p><p> while(n--)</p><p> for (i=0;i<125;i++);</p><p><b> }</b></p>
64、<p> void sound_delay(uchar n)/聲音延時(shí)子程序</p><p><b> {</b></p><p><b> uchar i;</b></p><p> while (n--)</p><p><b> {</b></
65、p><p> for (i=0;i<2;i++);</p><p><b> }</b></p><p><b> }</b></p><p> void main()</p><p><b> {</b></p><p&
66、gt;<b> uint i;</b></p><p> uchar sound_signal; /引入子程序</p><p> uchar sound_pace; /引入子程序</p><p> init_com();/引入子程序</p><p><b> while (1)</b>&l
67、t;/p><p><b> {</b></p><p><b> i=0;</b></p><p> while(array[i]!=0x00)</p><p><b> {</b></p><p> if(array[i]==0xff)<
68、/p><p><b> {</b></p><p><b> TR0=0;</b></p><p><b> i++;</b></p><p> delay(100);</p><p><b> continue;</b>&l
69、t;/p><p><b> }</b></p><p> sound_signal=array[i];</p><p> P0=array[i];</p><p><b> i=i+1;</b></p><p> sound_pace=array[i];</p&g
70、t;<p><b> TR0=1;</b></p><p> while(counter!=sound_pace)</p><p><b> {</b></p><p> sound=~sound;不斷的取反</p><p> sound_delay(sound_signal
71、);/音樂(lè)的時(shí)間的延時(shí)</p><p><b> }</b></p><p><b> i++;</b></p><p> counter=0;</p><p><b> }</b></p><p> delay(10);</p>
72、;<p><b> }</b></p><p><b> }</b></p><p><b> 3 心得體會(huì)</b></p><p><b> 3.1課程設(shè)計(jì)總結(jié)</b></p><p> 這次課程設(shè)計(jì)中,主要困難就是對(duì)PROTUE
73、S軟件和Keil4編程軟件的陌生,通過(guò)認(rèn)真學(xué)習(xí)和積極向同學(xué)請(qǐng)教。我自己才對(duì)其漸漸熟悉與初步掌握,對(duì)本次課程設(shè)計(jì)的方案進(jìn)行編程。 通過(guò)此次的課程設(shè)計(jì),我加深了對(duì)單片機(jī)以及C語(yǔ)言的認(rèn)識(shí)和理解,使各部分的知識(shí)得到了進(jìn)一步的鞏固。在編程的過(guò)程中遇到很多問(wèn)題,例如for/while/if等語(yǔ)句的不熟練應(yīng)用導(dǎo)致許多次仿真效果不盡人意。通過(guò)上網(wǎng)的查找和翻閱圖書,一步步地解決了問(wèn)題。在初次仿真時(shí)我還遇到到彩燈亮滅與音樂(lè)聲響不同步的問(wèn)題,通過(guò)認(rèn)真檢查發(fā)現(xiàn)
74、這是音樂(lè)程序與彩燈程序在時(shí)間上銜接不正確所致,后來(lái)通過(guò)我認(rèn)真改進(jìn),才得到現(xiàn)在的仿真結(jié)果:LED燈能隨著音樂(lè)節(jié)奏閃爍。這次課程設(shè)計(jì)讓我明白:理論與實(shí)踐的結(jié)合相當(dāng)之重要,最初以為只會(huì)是一個(gè)簡(jiǎn)單的過(guò)程,實(shí)際中每個(gè)元器件都相連在一起,在考慮這個(gè)的同時(shí)還要兼顧另外的東西。經(jīng)過(guò)一次次的一起地完善學(xué)習(xí),漸漸彌補(bǔ)了知識(shí)上的匱乏,最終做出了讓自己滿意的效果。</p><p><b> 3.2收獲與體會(huì)</b>
75、;</p><p> 通過(guò)此次設(shè)計(jì)實(shí)驗(yàn),加深了對(duì)單片機(jī)的理解,開闊了我們的思維境界,使我們的知識(shí)更加豐富。對(duì)于學(xué)到了新的知識(shí),掌握了這兩款軟件的初級(jí)應(yīng)用有一定的滿足感,這是一個(gè)好的開始,好好學(xué)習(xí),更上一層樓。</p><p> 回顧起此課程設(shè)計(jì),至今我仍感慨頗多,從理論到實(shí)踐,在這段日子里,可以說(shuō)得是苦多于甜,但是可以學(xué)到很多很多的東西,同時(shí)不僅可以鞏固了以前所學(xué)過(guò)的知識(shí),而且學(xué)到了很
76、多在書本上所沒(méi)有學(xué)到過(guò)的知識(shí)。通過(guò)這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來(lái),從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過(guò)程中遇到問(wèn)題,可以說(shuō)得是困難重重,但可喜的是最終都得到了解決。 實(shí)驗(yàn)過(guò)程中,也對(duì)團(tuán)隊(duì)精神的進(jìn)行了考察,讓我們?cè)诤献髌饋?lái)更加默契,在成功后一起體會(huì)喜悅的心情。果然是團(tuán)結(jié)就是力量,只有互相之間默契融洽的
77、配合才能換來(lái)最美好的結(jié)果。</p><p><b> 參考文獻(xiàn)</b></p><p> [1] 沈大林,蔡國(guó)清,伍遵義.彩色電視機(jī)原理與維修[M].北京:電子工業(yè)出版社,1988,1:25-41.</p><p> [2] 郝鴻安,徐紅媛.555集成電路實(shí)用大全[M].上海:上海科學(xué)普及出版社,1996:1-7.</p>
78、<p> [3] 肖景和.555集成電路應(yīng)用精粹[M].北京:人民郵電出版社,2007,9:1,3-12.</p><p> [4] 余孟嘗.數(shù)字電路技術(shù)基礎(chǔ)簡(jiǎn)明教程(第二版)[M].北京:高等教育出版社,1999:268-341,371-390.</p><p> [5]《顯示器電路原理與維修》編寫組.顯示器電路原理與維修[M].北京:電子工業(yè)出版社,1992.1:14-
79、40.</p><p> [6] 張仁霖曹光躍,江力.電視機(jī)原理與技術(shù)[M].西安:西安電子科技大學(xué)出版社,2009,8:1-8.</p><p> [7] 趙負(fù)圖.數(shù)字邏輯集成電路手冊(cè)[M].北京:化學(xué)出版社,2004.11:268-278,550-553.</p><p> [8] 閻石.數(shù)字電子技術(shù)基礎(chǔ)[M].北京:高等教育出版社,2003.2:19-5
80、8.</p><p> [9] 宋衛(wèi)星.計(jì)算機(jī)彩色顯示器信號(hào)源[J].現(xiàn)代電子技術(shù),2006,(5):122-129.</p><p> [10] 任典毅.最新顯示器電路原理與維修技術(shù)[M] 北京,電子工業(yè)出版社2001.2:14-40.</p><p> [11] Marcus Nadenau.Integration of human colour visi
81、on models high quality image compression [D].Signal Processing </p><p> Laboratory,Swiss Federal Institute of Technology,Switzerland,2000.</p><p> [12] Guihua Cui,M. R. Luo, B. Rigg et a1..Col
82、our-differnce evaluationr using CRT colours.part I:date gathering and testing </p><p> colour differenc formulae[J].Col.Res.Appl., 2001.</p><p> [13] 陳有卿,葉桂娟.555時(shí)基電路原理、設(shè)計(jì)與應(yīng)用[M].北京:電子工業(yè)出版社,2007
溫馨提示
- 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ī)的彩燈循環(huán)控制器畢業(yè)設(shè)計(jì)
- 基于單片機(jī)的彩燈控制器畢業(yè)設(shè)計(jì)開題報(bào)告
- 基于單片機(jī)的彩燈控制設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---單片機(jī)節(jié)日彩燈控制器
- 單片機(jī)課程設(shè)計(jì):彩燈控制器設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)----音樂(lè)彩燈控制器
- 單片機(jī)課程設(shè)計(jì)-- 彩燈控制器的設(shè)計(jì)
- 彩燈控制器的設(shè)計(jì) 單片機(jī)課程設(shè)計(jì)
- 基于單片機(jī)的節(jié)日彩燈控制器
- 單片機(jī)畢業(yè)設(shè)計(jì)---基于單片機(jī)的恒溫控制器的設(shè)計(jì)
- 彩燈控制器的設(shè)計(jì) 單片機(jī)課程設(shè)計(jì)
- 單片機(jī)課設(shè)報(bào)告-基于單片機(jī)的彩燈控制器電路設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--節(jié)日彩燈控制器設(shè)計(jì)
- 彩燈控制器的設(shè)計(jì) 單片機(jī)課程設(shè)計(jì).doc
- 單片機(jī)課程設(shè)計(jì)---用單片機(jī)設(shè)計(jì)節(jié)日彩燈控制器
- 基于單片機(jī)的智能pid控制器設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)_基于單片機(jī)的消毒衣柜控制器設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--節(jié)日彩燈控制器的設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)_基于單片機(jī)的消毒衣柜控制器設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)--基于單片機(jī)的步進(jìn)電機(jī)控制器
評(píng)論
0/150
提交評(píng)論