基于STC89C52的音樂倒數(shù)計(jì)數(shù)器(單片機(jī)課程設(shè)計(jì))_第1頁(yè)
基于STC89C52的音樂倒數(shù)計(jì)數(shù)器(單片機(jī)課程設(shè)計(jì))_第2頁(yè)
基于STC89C52的音樂倒數(shù)計(jì)數(shù)器(單片機(jī)課程設(shè)計(jì))_第3頁(yè)
基于STC89C52的音樂倒數(shù)計(jì)數(shù)器(單片機(jī)課程設(shè)計(jì))_第4頁(yè)
基于STC89C52的音樂倒數(shù)計(jì)數(shù)器(單片機(jī)課程設(shè)計(jì))_第5頁(yè)
已閱讀5頁(yè),還剩22頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、摘摘 要要 單片機(jī)自20世紀(jì)70年代問世以來(lái),以其極高的性能價(jià)格比,受到人們的重視和關(guān)注,應(yīng)用很廣、發(fā)展很快。而51單片機(jī)是各單片機(jī)中最為典型和最有代表性的一種。本實(shí)驗(yàn)是基于MCS51系列單片機(jī)所設(shè)計(jì)的,可以實(shí)現(xiàn)鍵盤按鍵與數(shù)字動(dòng)態(tài)顯示并可以用音樂倒數(shù)的計(jì)數(shù)器。本設(shè)計(jì)基于單片機(jī)技術(shù)原理,以單片機(jī)芯片STC89C52作為核心控制器,通過硬件電路的制作以及軟件程序的編制,設(shè)計(jì)制作出一個(gè)計(jì)數(shù)器,包括以下功能:輸出時(shí)間,按下鍵就開始計(jì)時(shí),并將時(shí)間顯示在LCD1602顯示器上。當(dāng)?shù)褂?jì)數(shù)為0時(shí),蜂鳴器就發(fā)出音樂聲響等等。該計(jì)數(shù)器系統(tǒng)主要由計(jì)數(shù)器模塊、LCD顯示器模塊、蜂鳴器模塊、鍵盤模塊、復(fù)位模塊等部分組成

2、。關(guān)鍵詞關(guān)鍵詞:STC89C52、鍵盤、LCD1602 顯示、蜂鳴器目錄目錄摘 要.I1 項(xiàng)目概述和要求.11.1 單片機(jī)基礎(chǔ)知識(shí).11.2 單片機(jī)的發(fā)展趨勢(shì).11.3 項(xiàng)目設(shè)計(jì)任務(wù)與要求.32 系統(tǒng)設(shè)計(jì).42.1 框圖設(shè)計(jì).42.2 部分硬件方案論述 .42.3 電路原理圖 .42.4 元件清單 .52.4.1STC89C52 芯片 .52.4.2 字符型 LCD1602.62.4.3 按鍵控制模塊 .82.4.4 其它元件 .83 軟件設(shè)計(jì) .93.1 程序流程圖.94 系統(tǒng)的仿真與調(diào)試.124.1 硬件調(diào)試.124.2 軟件調(diào)試.124.3 軟硬件調(diào)試.125 總結(jié) .13參考文獻(xiàn).14

3、附錄程序. 251 項(xiàng)目概述和要求項(xiàng)目概述和要求1.1 單片機(jī)基礎(chǔ)知識(shí)單片機(jī)基礎(chǔ)知識(shí)單片機(jī)又稱單片微控制器,它不是完成某一個(gè)邏輯功能的芯片,而是把一個(gè)計(jì)算機(jī)系統(tǒng)集成到一個(gè)芯片上。概括的講,一塊芯片就成了一臺(tái)計(jì)算機(jī)。單片機(jī)具有體積小、功能強(qiáng)、應(yīng)用面廣等優(yōu)點(diǎn),目前正以前所未見的速度取代著傳統(tǒng)電子線路構(gòu)成的經(jīng)典系統(tǒng),蠶食著傳統(tǒng)數(shù)字電路與模擬電路固有的領(lǐng)地。它的體積小、質(zhì)量輕、價(jià)格便宜、為學(xué)習(xí)、應(yīng)用和開發(fā)提供了便利條件。同時(shí),學(xué)習(xí)使用單片機(jī)了解計(jì)算機(jī)原理與結(jié)構(gòu)的最佳選擇。 現(xiàn)在,這種單片機(jī)的使用領(lǐng)域已十分廣泛。彩電、冰箱、空調(diào)、錄像機(jī)、VCD、遙控器、游戲機(jī)、電飯煲等無(wú)處不見單片機(jī)的影子,單片機(jī)早已深

4、深地融入我們每個(gè)人的生活之中。單片機(jī)能大大地提高這些產(chǎn)品的智能性,易用性及節(jié)能性等主要性能指標(biāo),給我們的生活帶來(lái)舒適和方便的同時(shí),在工農(nóng)業(yè)生產(chǎn)上也極大地提高了生產(chǎn)效率和產(chǎn)品質(zhì)量。單片機(jī)按用途大體上可分為兩類,一種是通用型單片機(jī),另一種是專用型單片機(jī)。MCS-51 單片機(jī)是美國(guó) INTEL 公司于 1980 年推出的產(chǎn)品,與 MCS- 48 單片機(jī)相比,它的結(jié)構(gòu)更先進(jìn),功能更強(qiáng),在原來(lái)的基礎(chǔ)上增加了更多的電路單元和指令,指令數(shù)達(dá) 111 條,MCS-51 單片機(jī)可以算是相當(dāng)成功的產(chǎn)品,一直到現(xiàn)在,MCS-51 系列或其兼容的單片機(jī)仍是應(yīng)用的主流產(chǎn)品,各高校及專業(yè)學(xué)校的培訓(xùn)教材仍與 MSC-51

5、單片機(jī)作為代表進(jìn)行理論基礎(chǔ)學(xué)習(xí)。MCS-51 系列單片機(jī)主要包括 8031、8051 和 8751 等通用產(chǎn)品。1.2 單片機(jī)的發(fā)展趨勢(shì)單片機(jī)的發(fā)展趨勢(shì) 單片機(jī)現(xiàn)在可以說是百花齊放,百家爭(zhēng)鳴的時(shí)期,世界上各大芯片制造公司都推出了自己的單片機(jī),從 8 位、16 位到 32 位,數(shù)不勝數(shù),應(yīng)有盡有,有與主流 C51 系列兼容的,也有不兼容的,但它們各具特色,互成互補(bǔ),為單片機(jī)的應(yīng)用提供了廣闊的天地??v觀單片機(jī)的發(fā)展過程,可以預(yù)示單片機(jī)的發(fā)展趨勢(shì),大致有: 一、微型單片化現(xiàn)在常規(guī)的單片機(jī)普遍都是將中央處理器(CPU) 、隨機(jī)存取數(shù)據(jù)存儲(chǔ)(RAM) 、只讀程序存儲(chǔ)器(ROM) 、并行和串行通信接口,中

6、斷系統(tǒng)、定時(shí)電路、時(shí)鐘電路集成在一塊單一的芯片上,增強(qiáng)型的單片機(jī)集成了如 A/D 轉(zhuǎn)換器、PMW(脈寬調(diào)制電路) 、WDT(看門狗) 、有些單片機(jī)將 LCD(液晶)驅(qū)動(dòng)電路都集成在單一的芯片上,這樣單片機(jī)包含的單元電路就更多,功能就越強(qiáng)大。甚至單片機(jī)廠商還可以根據(jù)用戶的要求量身定做,制造出具有自己特色的單片機(jī)芯片。此外,現(xiàn)在的產(chǎn)品普遍要求體積小、重量輕,這就要求單片機(jī)除了功能強(qiáng)和功耗低外,還要求其體積要小?,F(xiàn)在的許多單片機(jī)都具有多種封裝形式,其中 SMD(表面封裝)越來(lái)越受歡迎,使得由單片機(jī)構(gòu)成的系統(tǒng)正朝微型化方向發(fā)展。二、低功耗 CMOS 化MCS-51 系列的 8031 推出時(shí)的功耗達(dá) 6

7、30mW,而現(xiàn)在的單片機(jī)普遍都在100mW 左右,隨著對(duì)單片機(jī)功耗要求越來(lái)越低,現(xiàn)在的各個(gè)單片機(jī)制造商基本都采用了 CMOS(互補(bǔ)金屬氧化物半導(dǎo)體工藝) 。像 80C51 就采用了HMOS(即高密度金屬氧化物半導(dǎo)體工藝)和 CHMOS(互補(bǔ)高密度金屬氧化物半導(dǎo)體工藝) 。CMOS 雖然功耗低,但由于其物理特征決定其工作速度不夠高,而 CHMOS 則具備了高速和低功耗的特點(diǎn),這些特征,更適合于要求低功耗像電池供電的應(yīng)用場(chǎng)合。所以這種工藝將是今后一段時(shí)期單片機(jī)發(fā)展的主要途徑。 三、主流與多品種共存 現(xiàn)在雖然單片機(jī)的品種繁多,各具特色,但仍以 89C51 為核心的單片機(jī)占主流,兼容其結(jié)構(gòu)和指令系統(tǒng)的

8、有 PHILIPS 公司的產(chǎn)品,ATMEL 公司的產(chǎn)品和中國(guó)臺(tái)灣的 Winbond 系列單片機(jī)。所以 89C51 占據(jù)了半壁江山。而Microchip 公司的 PIC 精簡(jiǎn)指令集合(RISC)也有著強(qiáng)勁的發(fā)展勢(shì)頭,中國(guó)臺(tái)灣的 HOLTEX 公司近年的單片機(jī)產(chǎn)量與日俱增,與其底價(jià)質(zhì)優(yōu)的優(yōu)勢(shì),占據(jù)一定的市場(chǎng)份額。此外還有 MOTOROLA 公司的產(chǎn)品,日本幾大公司的專用單片機(jī)。在一定的時(shí)期內(nèi),這種情形將得以延續(xù),將不存在某個(gè)單片機(jī)一統(tǒng)天下的壟斷局面,走的是依存互補(bǔ)、相輔相成、共同發(fā)展的道路。九十年代以后,單片機(jī)在結(jié)構(gòu)上采用雙 CPU 或內(nèi)部流水線,CPU 位數(shù)有 8位、16 位、32 位,時(shí)鐘頻率

9、高達(dá) 20MHZ,片內(nèi)帶有 PWM 輸出、監(jiān)視定時(shí)器WDT、可編程計(jì)數(shù)器陣列 PCA、DMA 傳輸、調(diào)制解調(diào)器等。芯片向高度集成化、低功耗方向的發(fā)展,使得單片機(jī)在大量數(shù)據(jù)的實(shí)時(shí)處理、高級(jí)通信系統(tǒng)、數(shù)字信號(hào)處理、復(fù)雜工業(yè)過程控制、高級(jí)機(jī)器人以及局域網(wǎng)等方面得到大量應(yīng)用。這類單片機(jī)有 NEC 公司的 MPD7800,MITSUBISHI 公司的M337700,REVKWELL 公司的 R6500。1.3 項(xiàng)目設(shè)計(jì)任務(wù)與要求項(xiàng)目設(shè)計(jì)任務(wù)與要求 設(shè)計(jì)任務(wù):利用 STC89C52 單片機(jī)結(jié)合字符型 LCD 顯示器設(shè)計(jì)一個(gè)簡(jiǎn)易的倒數(shù)計(jì)數(shù)器。做一小段時(shí)間倒計(jì)數(shù),當(dāng)?shù)褂?jì)數(shù)為 0 時(shí),則發(fā)出一段音樂聲響,通知倒

10、計(jì)數(shù)終了,該做應(yīng)當(dāng)做的事。 設(shè)計(jì)要求:1.字符型 LCD(162)顯示器,顯示格式為“TIME 分分:秒秒”。2.用 4 個(gè)按鍵操作來(lái)設(shè)置當(dāng)前想要倒計(jì)數(shù)的時(shí)間。3.一旦按下鍵則開始倒計(jì)數(shù),當(dāng)計(jì)數(shù)為 0 時(shí),發(fā)出一陣音樂聲。4.程序執(zhí)行后工作指示燈 LCD 閃動(dòng),表示程序開始執(zhí)行,按下操作鍵K1K4 動(dòng)作如下:K1-可調(diào)整倒計(jì)數(shù)的時(shí)間 160 分鐘。K2-設(shè)置倒計(jì)數(shù)的時(shí)間為 5 分鐘,顯示“0500”。K2-設(shè)置倒計(jì)數(shù)的時(shí)間為 10 分鐘,顯示“1000”。K2-設(shè)置倒計(jì)數(shù)的時(shí)間為 20 分鐘,顯示“2000”。5.復(fù)位后 LCD 的畫面應(yīng)能顯示倒計(jì)時(shí)的分鐘和秒數(shù),此時(shí)按 K1 鍵,則在 LCD

11、 上顯示出設(shè)置畫面。此時(shí),若: 按 K2 鍵-增加倒計(jì)數(shù)的時(shí)間 1 分鐘。 按 K2 鍵-減少倒計(jì)數(shù)的時(shí)間 1 分鐘。 按 K4 鍵-設(shè)置完成。2 系統(tǒng)設(shè)計(jì)系統(tǒng)設(shè)計(jì)2.1 框圖設(shè)計(jì)框圖設(shè)計(jì)框圖設(shè)計(jì)是為了能夠從整體上把握系統(tǒng)的各個(gè)大的模塊以及各個(gè)模塊之間的聯(lián)系。同時(shí)羅列出需要主要使用到的各個(gè)器件,以方面系統(tǒng)開發(fā)中器件的選取。通過框圖設(shè)計(jì),讓設(shè)計(jì)者從整體上把握系統(tǒng)的開發(fā)。本系統(tǒng)設(shè)計(jì)的框圖如下圖 2-1 所示。AT89C51復(fù)位電路蜂鳴器LCD1602鍵盤圖2-1 系統(tǒng)結(jié)構(gòu)框圖2.2 部分硬件方案論述部分硬件方案論述LCD1602 顯示方式的方案比較。方案一:采用花樣顯示,花樣顯示是指 LCD 顯示

12、某一屏字符時(shí),采取從左到右或者是從右到左的整屏移動(dòng)的顯示方式。在這種顯示方式下,給人的感覺就是程序是在執(zhí)行的,同時(shí)如果控制好了移動(dòng)一屏的時(shí)間間隔的話,在整體視覺上可以達(dá)到很好的效果。方案二:采用靜態(tài)顯示,靜態(tài)顯示是指 LCD 顯示某一屏字符時(shí),時(shí)鐘保持當(dāng)前字符的顯示,不使用移屏顯示。便于控制,同時(shí)能夠滿足正常的顯示效果。由于在顯示中存在播放時(shí)間的動(dòng)態(tài)變化,這樣的話,即使是不產(chǎn)生整屏移動(dòng),也能給人動(dòng)態(tài)感,也易于控制。基于以上各種特點(diǎn),我選擇了方案二。2.3 電路原理圖電路原理圖電路原理圖如圖 2-2 所示。圖 2-2 電路原理圖2.4 元件清單元件清單2.4.1 AT89C51 芯片芯片STC8

13、9C52 芯片圖如下圖 2-3 所示。圖 2-3 AT89C51 芯片圖主要性能:與 MCS-51 單片機(jī)產(chǎn)品兼容 、8K 字節(jié)在系統(tǒng)可編程 Flash 存儲(chǔ)器、 1000 次擦寫周期、全靜態(tài)操作:0Hz33Hz 、三級(jí)加密程序存儲(chǔ)器 、 32 個(gè)可編程 I/O 口線、三個(gè) 16 位定時(shí)器/計(jì)數(shù)器八個(gè)中斷源、全雙工 UART 串行通道、 低功耗空閑和掉電模式 、掉電后中斷可喚醒 、看門狗定時(shí)器 、雙數(shù)據(jù)指針、掉電標(biāo)識(shí)符 。功能特性描述STC89C52 是一種低功耗、高性能 CMOS8 位微控制器,具有 8K 在系統(tǒng)可編程 Flash 存儲(chǔ)器。使用高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51

14、產(chǎn)品指令和引腳完全兼容。片上 Flash 允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的 8 位 CPU 和在線系統(tǒng)可編程Flash,使得 STC89C52 為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。 STC89C52 具有以下標(biāo)準(zhǔn)功能: 8k 字節(jié) Flash,256 字節(jié) RAM, 32 位 I/O 口線,看門狗定時(shí)器,2 個(gè)數(shù)據(jù)指針,三個(gè) 16 位 定時(shí)器/計(jì)數(shù)器,一個(gè) 6 向量 2 級(jí)中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時(shí)鐘電路。另外,STC89C52 可降至 0Hz 靜態(tài)邏輯操作,支持 2 種軟件可選擇節(jié)電模式??臻e模式下,CPU 停止工作,允許 RA

15、M、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM 內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。8 位微控制器 8K 字節(jié)在系統(tǒng)可編程 Flash2.4.2 字符型字符型 LCD1602字符型 lcd1602 如下圖 2-4 所示。圖 2-4 lcd1602 圖1602 字符型 LCD 通常有 14 條引腳線或 16 條引腳線的 LCD,多出來(lái)的 2 條線是背光電源線。VCC(15 腳)和地線 GND(16 腳),其控制原理與 14 腳的 LCD 完全一樣,各引腳符號(hào)及其功能表如下表 2-1 所示。表 2-1 LCD 各引腳及其功能表引腳符號(hào)功能說明

16、1VSS一般接地2VDD接電源(+5V)3V0液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地電源時(shí)對(duì)比度最高(對(duì)比度過高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過一個(gè) 10K 的電位器調(diào)整對(duì)比度)。4RSRS 為寄存器選擇,高電平 1 時(shí)選擇數(shù)據(jù)寄存器、低電平 0 時(shí)選擇指令寄存器。4RSRS 為寄存器選擇,高電平 1 時(shí)選擇數(shù)據(jù)寄存器、低電平 0 時(shí)選擇指令寄存器。5R/WR/W 為讀寫信號(hào)線,高電平(1)時(shí)進(jìn)行讀操作,低電平(0)時(shí)進(jìn)行寫操作。6EE(或 EN)端為使能(enable)端,下降沿使能。7DB0低 4 位三態(tài)、 雙向數(shù)據(jù)總線 0 位(最低位)8DB1低 4 位三態(tài)、 雙向數(shù)據(jù)總線

17、1 位9DB2低 4 位三態(tài)、 雙向數(shù)據(jù)總線 2 位10DB3低 4 位三態(tài)、 雙向數(shù)據(jù)總線 3 位11DB4高 4 位三態(tài)、 雙向數(shù)據(jù)總線 4 位12DB5高 4 位三態(tài)、 雙向數(shù)據(jù)總線 5 位13DB6高 4 位三態(tài)、 雙向數(shù)據(jù)總線 6 位14DB7高 4 位三態(tài)、 雙向數(shù)據(jù)總線 7 位(最高位)(也是 busy flag)15BLA背光電源正極16BLK背光 電源負(fù)極2.4.3 按鍵控制模塊按鍵控制模塊按鍵用于控制數(shù)碼顯示、LCD 顯示、揚(yáng)聲器等模塊的工作。通過掃描按鍵是否按下,來(lái)設(shè)定各模塊的工作情況,使各模塊可以在按鍵的控制下,有序地進(jìn)行工作。設(shè)計(jì)中使用單個(gè)按鍵實(shí)現(xiàn)單個(gè)功能,屬于較為簡(jiǎn)

18、單的控制方式。在多功能系統(tǒng)設(shè)計(jì)的試驗(yàn)中我們使用四個(gè)按鍵分別與單片機(jī)的p1.0、p1.1、p1.2、p1.3 相連。通過按下相應(yīng)的按鍵來(lái)處理相應(yīng)的程序。如下圖2-5 所示。圖 2-5 按鍵控制模塊圖2.4.4 其它元件其它元件 其它元件圖如下圖 2-6 所示。 圖 2-6 其它元件圖113 軟件設(shè)計(jì)軟件設(shè)計(jì)3.1 程序流程圖程序流程圖主程序開始初始化,然后掃描鍵盤、復(fù)位電路和計(jì)數(shù)器。當(dāng)鍵盤按鍵有按下時(shí),調(diào)整計(jì)數(shù)器值,LCD 顯示新值。當(dāng)復(fù)位鍵有按下時(shí),計(jì)數(shù)器復(fù)位為開機(jī)畫面,當(dāng)計(jì)數(shù)器值倒計(jì)為 0 時(shí),蜂鳴器發(fā)出聲音,計(jì)數(shù)器停止倒計(jì),程序結(jié)束。主程序流程圖、lcd 顯示流程圖和按鍵流程圖分別如下圖

19、3-1、圖 3-2 和圖 3-3所示。蜂鳴器發(fā)聲初始化調(diào)整計(jì)數(shù)器值掃描鍵盤掃描計(jì)數(shù)器按鍵是否有按下?計(jì)數(shù)值是否為0?開始結(jié)束LCD顯示計(jì)數(shù)值計(jì)數(shù)器停止倒計(jì)數(shù)是是否否掃描復(fù)位電路復(fù)位?是否 圖 3-1 主程序流程圖12開始是否有程序執(zhí)行Lcd閃動(dòng)是否有鍵按下lcd顯示相應(yīng)時(shí)間復(fù)位鍵是否按下lcd顯示倒計(jì)時(shí)的分鐘和秒數(shù)是否有鍵按下lcd顯示相應(yīng)設(shè)置畫面退出是是是是否否否否圖3-2 lcd顯示流程圖13開始初始化按鍵掃描有鍵按下按鍵處理,確定模式時(shí)間顯示模式根據(jù)按鍵狀態(tài)顯示相應(yīng)時(shí)間段時(shí)間修改模式根據(jù)按鍵狀態(tài)修改時(shí)間NONOYESYES圖 3-3 按鍵流程圖144 系統(tǒng)的仿真與調(diào)試系統(tǒng)的仿真與調(diào)試4.

20、1 硬件調(diào)試硬件調(diào)試 硬件調(diào)試分為靜態(tài)調(diào)試和動(dòng)態(tài)調(diào)試,對(duì)于硬件調(diào)試而言,只要認(rèn)真焊接,硬件一般不會(huì)出現(xiàn)什么問題的。靜態(tài)調(diào)試一般采用的工具是萬(wàn)用表,它是在用戶系統(tǒng)未工作時(shí)的一種硬件檢測(cè)。動(dòng)態(tài)調(diào)試是在用戶系統(tǒng)工作的情況下發(fā)現(xiàn)和排查錯(cuò)誤的一種硬件檢測(cè)。調(diào)試步驟是:首先把電路分為若干模塊,調(diào)試過程中與該模塊無(wú)關(guān)的元件可以不加考慮,這樣可把故障限定在一定的范圍內(nèi);故障清除后,把各個(gè)模塊合在一起進(jìn)行聯(lián)調(diào),即可完成整個(gè)硬件調(diào)試工作。4.2 軟件調(diào)試軟件調(diào)試軟件調(diào)試是通過對(duì)程序的匯編、連接、執(zhí)行來(lái)發(fā)現(xiàn)程序中存在的語(yǔ)法錯(cuò)誤與邏輯錯(cuò)誤并加以排除糾正的過程。4.3 軟硬件調(diào)試軟硬件調(diào)試軟硬件聯(lián)調(diào)是指把調(diào)試無(wú)誤的軟件

21、程序燒制進(jìn)單片機(jī)芯片內(nèi)部,通上電源后,檢查硬件工作是否有預(yù)期的效果,如果沒有則需要檢測(cè)軟件是否在實(shí)現(xiàn)功能上有欠缺。若有錯(cuò)誤,通過改寫軟件來(lái)調(diào)試,直至達(dá)到預(yù)期效果,則設(shè)計(jì)圓滿成功。本課程設(shè)計(jì)調(diào)試結(jié)果如下圖 4-1 所示。15圖 4-1 調(diào)試結(jié)果圖實(shí)物圖片165 總結(jié)總結(jié)經(jīng)過將近兩個(gè)星期的課程設(shè)計(jì),簡(jiǎn)單帶有 LCD 顯示的音樂倒數(shù)計(jì)數(shù)器基本完成,系統(tǒng)基本功能基本實(shí)現(xiàn),測(cè)試運(yùn)行也基本正常。該系統(tǒng)基本上完成了計(jì)數(shù)鬧時(shí)的功能。當(dāng)然這個(gè)系統(tǒng)還存在許多有待完善的地方: 功能相對(duì)較少,有待于添加,比方說沒有時(shí)鐘功能; 焊接工藝比較差,布局有點(diǎn)凌亂。這次課程設(shè)計(jì)的時(shí)間雖然不算很長(zhǎng),但使我對(duì)很多東西有了更深刻的認(rèn)

22、識(shí)。平時(shí)在課堂上無(wú)法掌握的集體操作都有了一定的進(jìn)步??偨Y(jié)如下: 查閱資料和閱讀相關(guān)文獻(xiàn)的重要性。 向同學(xué)請(qǐng)教的重要性,團(tuán)結(jié)協(xié)作的重要性。 勤動(dòng)手的重要性,自己動(dòng)手,豐衣足食!以前很多時(shí)候一遇到問題常常都會(huì)問同學(xué),但是通過這次設(shè)計(jì),我學(xué)會(huì)了自己努力解決困難,提高了自己解決問題的能力。 對(duì)待任何事情都要有耐心和恒心,遇到問題要冷靜地思考,積極找出癥結(jié)所在,逐個(gè)解決。 做事情要步步為營(yíng),不能一蹴而就,就像焊接電路,只有確保每一部都真確,才有可能實(shí)現(xiàn)整個(gè)電路正常工作。通過本次課程設(shè)計(jì),我更深刻的認(rèn)識(shí)到了教學(xué)實(shí)踐在大學(xué)課程中的重要性,同時(shí)也發(fā)覺到了自己在學(xué)習(xí)方面存在的許多不足之處,在以后的學(xué)習(xí)中我會(huì)努力

23、改進(jìn)這些不足,不斷提高自己的動(dòng)手實(shí)踐能力。17參考文獻(xiàn)參考文獻(xiàn)單片機(jī)原理及接口技術(shù) 第三版(李朝青編)單片機(jī) C 語(yǔ)言程序設(shè)計(jì)完全自學(xué)手冊(cè)(郭惠 吳迅編)基于 Proteus 的單片機(jī)系統(tǒng)設(shè)計(jì)與仿真實(shí)例(蔣輝平 周國(guó)雄 編)18#include#define uchar unsigned char#define uint unsigned int#definebusy 0 x80sbit k1=P10;sbit k2=P11;sbit k3=P12;sbit k4=P13;sbit k5=P14;sbit RS=P25; sbit RW=P26; sbit E=P27;sbit led=P20

24、;sbit sound=P37;uchar code tableee= 20:00;uchar code tablee= 10:00;uchar code table= 05:00;uchar code table1=0,1,2,3,4,5,6,7,8,9;uchar code table3=08 wei dian zi;uchar code table2= 3108008066; uchar code table5= 00:00;uchar code table4= TIME OUT!;uchar d,e,num,t,shishi,shige,fenshi,fenge,miaoshi,mia

25、oge,b,b1,a,aa ; uint counter=0;uchar code array= 0 x18, 0 x30, 0 x1C, 0 x10, 0 x20, 0 x40, 0 x1C, 0 x10, 0 x18, 0 x10, 0 x20, 0 x10, 0 x1C, 0 x10, 0 x18, 0 x40, 0 x1C, 0 x20, 0 x20, 0 x20, 0 x1C, 0 x20, 0 x18, 0 x20, 0 x20, 0 x80, 0 xFF, 0 x20, 0 x30, 0 x1C, 0 x10, 0 x18, 0 x20, 0 x15, 0 x20, 0 x1C,

26、 0 x20, 0 x20, 0 x20, 0 x26, 0 x40, 0 x20, 0 x20, 0 x2B, 0 x20, 0 x26, 0 x20, 0 x20, 0 x20, 0 x30, 0 x80, 0 xFF, 0 x20, 0 x20, 0 x1C, 0 x10,19 0 x18, 0 x10, 0 x20, 0 x20, 0 x26, 0 x20, 0 x2B, 0 x20, 0 x30, 0 x20, 0 x2B, 0 x40, 0 x20, 0 x20, 0 x1C, 0 x10, 0 x18, 0 x10, 0 x20, 0 x20, 0 x26, 0 x20, 0 x

27、2B, 0 x20, 0 x30, 0 x20, 0 x2B, 0 x40, 0 x20, 0 x30, 0 x1C, 0 x10, 0 x18, 0 x20, 0 x15, 0 x20, 0 x1C, 0 x20, 0 x20, 0 x20, 0 x26, 0 x40, 0 x20, 0 x20, 0 x2B, 0 x20, 0 x26, 0 x20, 0 x20, 0 x20, 0 x30, 0 x80, 0 x20, 0 x30, 0 x1C, 0 x10, 0 x20, 0 x10, 0 x1C, 0 x10, 0 x20, 0 x20, 0 x26, 0 x20, 0 x2B, 0

28、x20, 0 x30, 0 x20, 0 x2B, 0 x40, 0 x20, 0 x15, 0 x1F, 0 x05, 0 x20, 0 x10, 0 x1C, 0 x10, 0 x20, 0 x20, 0 x26, 0 x20, 0 x2B, 0 x20, 0 x30, 0 x20, 0 x2B, 0 x40, 0 x20, 0 x30, 0 x1C, 0 x10, 0 x18, 0 x20, 0 x15, 0 x20, 0 x1C, 0 x20, 0 x20, 0 x20, 0 x26, 0 x40, 0 x20, 0 x20, 0 x2B, 0 x20, 0 x26, 0 x20, 0

29、 x20, 0 x20, 0 x30, 0 x30, 0 x20, 0 x30, 0 x1C, 0 x10, 0 x18, 0 x40, 0 x1C, 0 x20, 0 x20, 0 x20, 0 x26, 0 x40, 0 x13, 0 x60, 0 x18, 0 x20, 0 x15, 0 x40, 0 x13, 0 x40, 0 x18, 0 x80, 0 x00 ;char shi,fen,miao;void delay(uchar z)uchar x,y; for(x=z;x0;x-) for(y=200;y0;y-);20 bit lcd_busy()/測(cè)試 LCD 忙碌狀態(tài) bi

30、t result; E= 0;RS= 0;/指令RW= 1;/讀出 E= 1;delay(4);/高電平讀出1us result=(bit)(P0&busy); E= 0; return result; void write_1602cmd(uchar cmd)/寫命令 while(lcd_busy(); RS=0; delay(5); RW=0; delay(5); E=0; delay(5); P0=cmd; E=1; delay(10); E=0; void write_1602Data(uchar Data)/寫數(shù)據(jù) while(lcd_busy(); RS=1; delay(

31、5); RW=0; delay(5); E=0; P0=Data; delay(5); E=1; delay(10); E=0; /lcd 初始化 void LCD_init() 21 write_1602cmd(0 x01);/清屏delay(5);write_1602cmd(0 x38);/功能設(shè)定 delay(5); write_1602cmd(0 x0c);/光標(biāo)不閃爍 delay(5);write_1602cmd(0 x06);/lcd 模式設(shè)定,i/d=1(計(jì)數(shù)地址加 1)delay(5); void init() t=0,led=1; TMOD=0X11;/設(shè)置定時(shí)器 0,置定時(shí)

32、器 1 在工作方式 1 TH0=0 xff; TL0=0 xff; TH1=(65536-50000)/256; /給定時(shí)器 1 裝初值 TL1=(65536-50000)%256; EA=1;/開啟總中斷 ET0=1; /開啟外部中斷 0 中斷 ET1=1;/開啟定時(shí)器 1 中斷 TR0=0; TR1=0; LCD_init(); write_1602cmd(0 x80); for(num=0;num14;num+)write_1602Data(table3num);delay(5); write_1602cmd(0 x80+0 x40); for(num=0;num12;num+)writ

33、e_1602Data(table2num);delay(5);void key_check() if(k1=0) delay(10);22 if(k1=0) write_1602cmd(0 x80+0 x40); for(num=0;num12;num+)write_1602Data(table5num);delay(5);if(k2=0) fen+; fenge=fen%10; fenshi=fen/10; write_1602cmd(0 x0f);/打開光標(biāo)閃爍 write_1602cmd(0 x80+0 x40+7); write_1602Data(table1fenge); write

34、_1602cmd(0 x80+0 x40+6); write_1602Data(table1fenshi);if(k3=0)fen-; fenge=fen%10; fenshi=fen/10; write_1602cmd(0 x0f);/打開光標(biāo)閃爍 write_1602cmd(0 x80+0 x40+7); write_1602Data(table1fenge); write_1602cmd(0 x80+0 x40+6); write_1602Data(table1fenshi);if(k4=0)TR1=1;write_1602cmd(0 x0c); /關(guān)閉光標(biāo)閃爍 if(k2=0) del

35、ay(10); if(k2=0) write_1602cmd(0 x80+0 x40);23 for(num=0;num12;num+) write_1602Data(tablenum);delay(5); TR1=1;fen=5;miao=0; if(k3=0) delay(10); if(k3=0) write_1602cmd(0 x80+0 x40); for(num=0;num12;num+) write_1602Data(tableenum);delay(5); TR1=1;fen=10;miao=0; if(k4=0) delay(10); if(k4=0) write_1602cmd(0 x80+0 x40); for(num=0;num12;num+) write_1602Data(tableeenum);delay(5); TR1=1;fen=20;miao=0; void sound_delay(uchar n) uchar i; while(n-)24 for(i=0;i2;i+); void playmusic() uint i; uchar sound_signal;/定義音符大小 uchar sound

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)網(wǎng)僅提供信息存儲(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)論