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

下載本文檔

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

文檔簡介

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

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

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

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

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

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

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

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

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

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

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

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

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

14、產(chǎn)品指令和引腳完全兼容。片上 Flash 允許程序存儲器在系統(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 口線,看門狗定時器,2 個數(shù)據(jù)指針,三個 16 位 定時器/計數(shù)器,一個 6 向量 2 級中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時鐘電路。另外,STC89C52 可降至 0Hz 靜態(tài)邏輯操作,支持 2 種軟件可選擇節(jié)電模式??臻e模式下,CPU 停止工作,允許 RA

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

16、1VSS一般接地2VDD接電源(+5V)3V0液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地電源時對比度最高(對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個 10K 的電位器調(diào)整對比度)。4RSRS 為寄存器選擇,高電平 1 時選擇數(shù)據(jù)寄存器、低電平 0 時選擇指令寄存器。4RSRS 為寄存器選擇,高電平 1 時選擇數(shù)據(jù)寄存器、低電平 0 時選擇指令寄存器。5R/WR/W 為讀寫信號線,高電平(1)時進行讀操作,低電平(0)時進行寫操作。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 顯示、揚聲器等模塊的工作。通過掃描按鍵是否按下,來設(shè)定各模塊的工作情況,使各模塊可以在按鍵的控制下,有序地進行工作。設(shè)計中使用單個按鍵實現(xiàn)單個功能,屬于較為簡

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

19、3-1、圖 3-2 和圖 3-3所示。蜂鳴器發(fā)聲初始化調(diào)整計數(shù)器值掃描鍵盤掃描計數(shù)器按鍵是否有按下?計數(shù)值是否為0?開始結(jié)束LCD顯示計數(shù)值計數(shù)器停止倒計數(shù)是是否否掃描復(fù)位電路復(fù)位?是否 圖 3-1 主程序流程圖12開始是否有程序執(zhí)行Lcd閃動是否有鍵按下lcd顯示相應(yīng)時間復(fù)位鍵是否按下lcd顯示倒計時的分鐘和秒數(shù)是否有鍵按下lcd顯示相應(yīng)設(shè)置畫面退出是是是是否否否否圖3-2 lcd顯示流程圖13開始初始化按鍵掃描有鍵按下按鍵處理,確定模式時間顯示模式根據(jù)按鍵狀態(tài)顯示相應(yīng)時間段時間修改模式根據(jù)按鍵狀態(tài)修改時間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)試和動態(tài)調(diào)試,對于硬件調(diào)試而言,只要認(rèn)真焊接,硬件一般不會出現(xiàn)什么問題的。靜態(tài)調(diào)試一般采用的工具是萬用表,它是在用戶系統(tǒng)未工作時的一種硬件檢測。動態(tài)調(diào)試是在用戶系統(tǒng)工作的情況下發(fā)現(xiàn)和排查錯誤的一種硬件檢測。調(diào)試步驟是:首先把電路分為若干模塊,調(diào)試過程中與該模塊無關(guān)的元件可以不加考慮,這樣可把故障限定在一定的范圍內(nèi);故障清除后,把各個模塊合在一起進行聯(lián)調(diào),即可完成整個硬件調(diào)試工作。4.2 軟件調(diào)試軟件調(diào)試軟件調(diào)試是通過對程序的匯編、連接、執(zhí)行來發(fā)現(xiàn)程序中存在的語法錯誤與邏輯錯誤并加以排除糾正的過程。4.3 軟硬件調(diào)試軟硬件調(diào)試軟硬件聯(lián)調(diào)是指把調(diào)試無誤的軟件

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

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

23、改進這些不足,不斷提高自己的動手實踐能力。17參考文獻參考文獻單片機原理及接口技術(shù) 第三版(李朝青編)單片機 C 語言程序設(shè)計完全自學(xué)手冊(郭惠 吳迅編)基于 Proteus 的單片機系統(tǒng)設(shè)計與仿真實例(蔣輝平 周國雄 編)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()/測試 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(計數(shù)地址加 1)delay(5); void init() t=0,led=1; TMOD=0X11;/設(shè)置定時器 0,置定時

32、器 1 在工作方式 1 TH0=0 xff; TL0=0 xff; TH1=(65536-50000)/256; /給定時器 1 裝初值 TL1=(65536-50000)%256; EA=1;/開啟總中斷 ET0=1; /開啟外部中斷 0 中斷 ET1=1;/開啟定時器 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. 本站所有資源如無特殊說明,都需要本地電腦安裝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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論