版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 交通與汽車工程學(xué)院</b></p><p><b> 課程設(shè)計(jì)說明書</b></p><p> 課 程 名 稱: 微機(jī)原理及應(yīng)用課程設(shè)計(jì) </p><p> 課 程 代 碼: 8234570 </p><p>
2、 題 目:基于單片機(jī)設(shè)計(jì)的音樂倒數(shù)計(jì)數(shù)器</p><p> 年級/專業(yè)/班: 2009級車輛工程汽電四班 </p><p> 學(xué) 生 姓 名: </p><p> 學(xué) 號: </p><p> 開 始 時(shí) 間:
3、2012 年 07 月 02 日</p><p> 完 成 時(shí) 間: 2012 年 07 月 06 日</p><p><b> 課程設(shè)計(jì)成績:</b></p><p> 指導(dǎo)教師簽名: 年 月 日</p><p><b> 目
4、 錄</b></p><p><b> 摘 要2</b></p><p> 1 項(xiàng)目概述和要求3</p><p> 1.1單片機(jī)基礎(chǔ)知識3</p><p> 1.2 單片機(jī)的發(fā)展趨勢3</p><p> 1.3設(shè)計(jì)概述和設(shè)計(jì)要求4</p>&l
5、t;p><b> 2 系統(tǒng)設(shè)計(jì)6</b></p><p> 2.1 框圖設(shè)計(jì)6</p><p> 2.2系統(tǒng)硬件電路設(shè)計(jì)6</p><p> 2.2.1 AT89C51介紹6</p><p> 2.2.2 1602LCD 介紹7</p><p> 2.2.3 鍵盤
6、介紹9</p><p> 2.2.4 蜂鳴器介紹9</p><p> 3、系統(tǒng)軟件設(shè)計(jì)11</p><p> 3.1 proteus軟件環(huán)境介紹11</p><p> 3.2 Protel軟件環(huán)境介紹12</p><p><b> 3.3流程圖13</b></p>
7、<p> 3.4蜂鳴器發(fā)聲電路原理16</p><p> 4 PROTEUS仿真結(jié)果19</p><p> 4.1 電路原理圖及仿真19</p><p> 4.2 倒計(jì)時(shí)設(shè)置仿真如下圖4-2(a)所示21</p><p> 4.3 蜂鳴器的仿真如下圖4-3所示22</p><p>&
8、lt;b> 5 總結(jié)23</b></p><p><b> 致 謝24</b></p><p><b> 參考文獻(xiàn)25</b></p><p> 附表(本設(shè)計(jì)所有程序)26</p><p><b> 摘 要</b></p>
9、<p> 單片機(jī)技術(shù)是一門不可或缺的技術(shù),對我們將來的工作以及生活和學(xué)習(xí)都有很密切的聯(lián)系。近年來,隨著電子技術(shù)和微機(jī)計(jì)算機(jī)的迅速發(fā)展,單片機(jī)的檔次不斷提高,其應(yīng)用領(lǐng)域也在不斷的擴(kuò)大,已在工業(yè)控制、尖端科學(xué)、智能儀器儀表、日用家電、汽車電子系統(tǒng)、辦公自動(dòng)化設(shè)備、個(gè)人信息終端及通信產(chǎn)品中得到了廣泛的應(yīng)用,成為現(xiàn)代電子系統(tǒng)中最重要的智能化的核心部件。</p><p> 單片機(jī)由CPU、一定容量的RAM和R
10、OM構(gòu)成,定時(shí)、計(jì)數(shù)和多種接口于一體的微控制器。它體積小,成本低,功能強(qiáng),廣泛應(yīng)用于智能產(chǎn)業(yè)和工業(yè)自動(dòng)化上。而51系列單片機(jī)是各單片機(jī)中最為典型和最有代表性的一種。這次課程設(shè)計(jì)通過對它的學(xué)習(xí)、應(yīng)用,從而達(dá)到學(xué)習(xí)、設(shè)計(jì)、開發(fā)軟、硬的能力。</p><p> 本設(shè)計(jì)利用AT89C51單片機(jī)結(jié)合字符型LCD顯示器設(shè)計(jì)一個(gè)簡易的倒數(shù)計(jì)數(shù)器。用4個(gè)按鍵操作來設(shè)置當(dāng)前想要倒計(jì)數(shù)的時(shí)間。做一小段時(shí)間倒計(jì)數(shù),當(dāng)?shù)褂?jì)數(shù)為0時(shí),則
11、發(fā)出一段音樂聲響,通知倒計(jì)數(shù)終了,該做應(yīng)當(dāng)做的事。應(yīng)用 Proteus的ISIS軟件和Keil uVision3來實(shí)現(xiàn)該計(jì)數(shù)器的設(shè)計(jì)與仿真。該方法仿真效果真實(shí)、準(zhǔn)確,節(jié)省了硬件資源。</p><p> 該多功能計(jì)數(shù)器可以應(yīng)用于一般的生活和工作中,也可以通過改裝,提高性能,增加新功能,從而給人們的生活和工作帶來更多的方便。</p><p> 關(guān)鍵詞: AT89C51,計(jì)數(shù)器,鍵盤控制,L
12、CD顯示,Proteus,Keil </p><p><b> 1 項(xiàng)目概述和要求</b></p><p> 1.1單片機(jī)基礎(chǔ)知識</p><p> 單片機(jī)又稱單片微控制器,它不是完成某一個(gè)樓及功能的芯片,而是把一個(gè)計(jì)算機(jī)系統(tǒng)集成到一個(gè)芯片上。概括的講,一塊芯片就成了一臺(tái)計(jì)算機(jī)。</p><p> 單片機(jī)具有體積
13、小、功能強(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)的最佳選擇。</p><p> 現(xiàn)在,這種單片機(jī)的使用領(lǐng)域已經(jīng)十分廣泛。彩電、冰箱、空調(diào)、錄像機(jī)、VCD、遙控器、游戲機(jī)、電飯煲等無處不見單片機(jī)的影子,單片機(jī)早已深深地融入我們每個(gè)人的生
14、活之中。</p><p> 單片機(jī)能大大地提高這些產(chǎn)品的智能性,易用性及節(jié)能性的呢過主要性能指標(biāo)看,給我們的生活帶來舒適和方面的同時(shí),在工農(nóng)產(chǎn)業(yè)上也極大的提高了生產(chǎn)效率和產(chǎn)品質(zhì)量。單片機(jī)按用途大體上可分為兩類,一種是通用型單片機(jī),另一種是專用型單片機(jī)。</p><p> MCS-51單片機(jī)是美國INTEL公司1980年推出的產(chǎn)品,與MCS-48單片機(jī)相比,它的結(jié)構(gòu)更先進(jìn),功能更強(qiáng),在原
15、來的基礎(chǔ)上增加了更多的電路單元和指令,指令數(shù)達(dá)到111條,MCS-51單片機(jī)可以算是相當(dāng)成功的產(chǎn)品,一直到現(xiàn)在,MCS-51系列或其兼容的單片機(jī)認(rèn)識應(yīng)用的主流產(chǎn)品,各高校及專業(yè)學(xué)校的培訓(xùn)教材依然與MCS-51單片機(jī)作為代表進(jìn)行理論基礎(chǔ)學(xué)習(xí)。MCS-51系列單片機(jī)抓喲包括8031、8051、8951等通用產(chǎn)品。</p><p> 1.2 單片機(jī)的發(fā)展趨勢</p><p> 單片機(jī)現(xiàn)在可以
16、說是百花齊放,百家爭鳴的時(shí)期,世界上各大芯片制造公司都推出了自己的單片機(jī),從8位、16位到32位,數(shù)不勝數(shù),應(yīng)有盡有,有與主流C51系列兼容的,也有不兼容的,但它們各具特色,互成互補(bǔ),為單片機(jī)的應(yīng)用提供了廣闊的天地。</p><p> 縱觀單片機(jī)的發(fā)展過程,可以預(yù)示單片機(jī)的發(fā)展趨勢,大致有:</p><p><b> 一、微型單片化</b></p>
17、<p> 現(xiàn)在常規(guī)的單片機(jī)普遍都是將中央處理器(CPU)、隨機(jī)存取數(shù)據(jù)存儲(chǔ)(RAM)、只讀程序存儲(chǔ)器(ROM)、并行和串行通信接口,中斷系統(tǒng)、定時(shí)電路、時(shí)鐘電路集成在一塊單一的芯片上,增強(qiáng)型的單片機(jī)集成了如A/D轉(zhuǎn)換器、</p><p> PMW(脈寬調(diào)制電路)、WDT(看門狗)、有些單片機(jī)將LCD(液晶)驅(qū)動(dòng)電路都集成在單一的芯片上,這樣單片機(jī)包含的單元電路就更多,功能就越強(qiáng)大。甚至單片機(jī)廠商還可
18、以根據(jù)用戶的要求量身定做,制造出具有自己特色的單片機(jī)芯片。</p><p> 此外,現(xiàn)在的產(chǎn)品普遍要求體積小、重量輕,這就要求單片機(jī)除了功能強(qiáng)和功耗低外,還要求其體積要小?,F(xiàn)在的許多單片機(jī)都具有多種封裝形式,其中SMD(表面封裝)越來越受歡迎,使得由單片機(jī)構(gòu)成的系統(tǒng)正朝微型化方向發(fā)展。</p><p> 二、低功耗CMOS化</p><p> MCS-51系列
19、的8031推出時(shí)的功耗達(dá)630mW,而現(xiàn)在的單片機(jī)普遍都在100mW左右,隨著對單片機(jī)功耗要求越來越低,現(xiàn)在的各個(gè)單片機(jī)制造商基本都采用了CMOS(互補(bǔ)金屬氧化物半導(dǎo)體工藝)。像80C51就采用了HMOS(即高密度金屬氧化物半導(dǎo)體工藝)和CHMOS(互補(bǔ)高密度金屬氧化物半導(dǎo)體工藝)。CMOS雖然功耗低,但由于其物理特征決定其工作速度不夠高,而CHMOS則具備了高速和低功耗的特點(diǎn),這些特征,更適合于要求低功耗像電池供電的應(yīng)用場合。所以這種
20、工藝將是今后一段時(shí)期單片機(jī)發(fā)展的主要途徑。</p><p> 三、主流與多品種共存</p><p> 現(xiàn)在雖然單片機(jī)的品種繁多,各具特色,但仍以89C51為核心的單片機(jī)占主流,兼容其結(jié)構(gòu)和指令系統(tǒng)的有PHILIPS公司的產(chǎn)品,ATMEL公司的產(chǎn)品和中國臺(tái)灣的Winbond系列單片機(jī)。所以89C51占據(jù)了半壁江山。而Microchip公司的PIC精簡指令集合(RISC)也有著強(qiáng)勁的發(fā)展勢
21、頭,中國臺(tái)灣的HOLTEX公司近年的單片機(jī)產(chǎn)量與日俱增,與其底價(jià)質(zhì)優(yōu)的優(yōu)勢,占據(jù)一定的市場份額。此外還有MOTOROLA公司的產(chǎn)品,日本幾大公司的專用單片機(jī)。在一定的時(shí)期內(nèi),這種情形將得以延續(xù),將不存在某個(gè)單片機(jī)一統(tǒng)天下的壟斷局面,走的是依存互補(bǔ)、相輔相成、共同發(fā)展的道路。</p><p> 九十年代以后,單片機(jī)在結(jié)構(gòu)上采用雙CPU或內(nèi)部流水線,CPU位數(shù)有8位、16位、32位,時(shí)鐘頻率高達(dá)20MHZ,片內(nèi)帶有
22、PWM輸出、監(jiān)視定時(shí)器WDT、可編程計(jì)數(shù)器陣列PCA、DMA傳輸、調(diào)制解調(diào)器等。芯片向高度集成化、低功耗方向的發(fā)展,使得單片機(jī)在大量數(shù)據(jù)的實(shí)時(shí)處理、高級通信系統(tǒng)、數(shù)字信號處理、復(fù)雜工業(yè)過程控制、高級機(jī)器人以及局域網(wǎng)等方面得到大量應(yīng)用。這類單片機(jī)有NEC公司的MPD7800,MITSUBISHI公司的M337700,REVKWELL公司的R6500。</p><p> 1.3設(shè)計(jì)概述和設(shè)計(jì)要求</p>
23、<p> 本課程設(shè)計(jì)是利用AT89C51單片機(jī)結(jié)合字符型LCD顯示器設(shè)計(jì)一個(gè)簡易的倒數(shù)計(jì)數(shù)器,可用來煮方便面、煮開水或小睡片刻等。作品先接受用戶輸入的倒數(shù)計(jì)數(shù)時(shí)間,然后由用戶啟動(dòng)作品工作(可用一個(gè)閃爍的LED燈指示),當(dāng)?shù)褂?jì)數(shù)為0時(shí),則發(fā)出一段音樂聲響,通知倒計(jì)數(shù)終了,該做應(yīng)當(dāng)做的事。定時(shí)鬧鐘的基本功能如下:</p><p> 1、字符型LCD(16 2)顯示器。</
24、p><p> 2、顯示格式為“TIME 分分:秒秒”。</p><p> 3、用5個(gè)按鍵操作來設(shè)置當(dāng)前想要倒計(jì)數(shù)的時(shí)間。</p><p> 4、一旦按下鍵則開始倒計(jì)數(shù),當(dāng)計(jì)數(shù)為0時(shí),發(fā)出一陣音樂聲</p><p> 5、程序執(zhí)行后工作指示燈LCD閃動(dòng),表示程序開始執(zhí)行,按下操作鍵K1~K4動(dòng)作如下:K1---可調(diào)整倒計(jì)數(shù)的時(shí)間1~60分鐘
25、。</p><p> K2---設(shè)置倒計(jì)數(shù)的時(shí)間為5分鐘,顯示“0500”。</p><p> K3---設(shè)置倒計(jì)數(shù)的時(shí)間為10分鐘,顯示“1000”。</p><p> K4---設(shè)置倒計(jì)數(shù)的時(shí)間為20分鐘,顯示“2000”。</p><p> 6、復(fù)位后LCD的畫面應(yīng)能顯示倒計(jì)時(shí)的分鐘和秒數(shù),此時(shí)按K1鍵,則在LCD上顯示出設(shè)置畫
26、面。此時(shí),若:</p><p> 按K2鍵---增加倒計(jì)數(shù)的時(shí)間1分鐘。</p><p> 按K3鍵---減少倒計(jì)數(shù)的時(shí)間1分鐘。</p><p> 按K4鍵---設(shè)置完成。</p><p><b> 2 系統(tǒng)設(shè)計(jì)</b></p><p><b> 2.1 框圖設(shè)計(jì)</b
27、></p><p> 本項(xiàng)目的系統(tǒng)設(shè)計(jì)框圖如圖2-1所示:</p><p><b> 圖2-1 系統(tǒng)框圖</b></p><p> 由系統(tǒng)框圖可看出,本設(shè)計(jì)由單片機(jī)AT89C51、LCD液晶顯示器、控制鍵盤、蜂鳴器、復(fù)位單路和定時(shí)器電路幾大模塊構(gòu)成。</p><p> 2.2系統(tǒng)硬件電路設(shè)計(jì)</p&g
28、t;<p> 主控單片機(jī)采用AT89C51芯片,時(shí)鐘模塊選用一12MHZ晶振,產(chǎn)生時(shí)鐘脈沖。顯示模塊采用LCD1602,設(shè)置部分選用鍵盤按鍵電路,發(fā)聲部分選用BUZZER蜂鳴器。還有一些電源、電阻、電容、接地等。</p><p> 2.2.1 AT89C51介紹</p><p> AT89C51是一種帶4K字節(jié)閃存可編程可擦除只讀存儲(chǔ)器(FPEROM—Flash P
29、rogrammable and Erasable Read Only Memory)的低電壓,高性能CMOS 8位微處理器,俗稱單片機(jī)。</p><p> 主要特性:與MCS-51 兼容 、4K字節(jié)可編程閃爍存儲(chǔ)器 、壽命:1000寫/擦循環(huán)、數(shù)據(jù)保留時(shí)間:10年 、全靜態(tài)工作:0Hz-24MHz 、三級程序存儲(chǔ)器鎖定 、128×8位內(nèi)部RAM 、32可編程I/O線 、兩個(gè)16位定時(shí)器/計(jì)數(shù)器 、5個(gè)
30、中斷源 、可編程串行通道 、低功耗的閑置和掉電模式 、片內(nèi)振蕩器和時(shí)鐘電路。</p><p> 2.2.2 1602LCD 介紹</p><p> LCD1602顯示方式的方案比較。</p><p> 方案一:采用花樣顯示,花樣顯示是指LCD顯示某一屏字符時(shí),采取從左到右或者是從右到左的整屏移動(dòng)的顯示方式。在這種顯示方式下,給人的感覺就是程序是在執(zhí)行的,同時(shí)
31、如果控制好了移動(dòng)一屏的時(shí)間間隔的話,在整體視覺上可以達(dá)到很好的效果。</p><p> 方案二:采用靜態(tài)顯示,靜態(tài)顯示是指LCD顯示某一屏字符時(shí),時(shí)鐘保持當(dāng)前字符的顯示,不使用移屏顯示。便于控制,同時(shí)能夠滿足正常的顯示效果。</p><p> 由于在顯示中存在播放時(shí)間的動(dòng)態(tài)變化,這樣的話,即使是不產(chǎn)生整屏移動(dòng),也能給人動(dòng)態(tài)感,也易于控制?;谝陨细鞣N特點(diǎn),我選擇了方案二。</p&
32、gt;<p> 1602液晶模塊內(nèi)部的控制器共有11條控制指令,如表2-1所示.</p><p> 表2-1 1602液晶模塊控制指令</p><p> 1602字符型LCD通常有14條引腳線或16條引腳線的LCD,多出來的2條線是背光電源線。</p><p> VCC(15腳)和地線GND(16腳),其控制原理與14腳的LCD完全一樣,各引腳
33、符號及其功能表如下表2-1所示。</p><p> 表2-2各引腳及其功能表</p><p> 2.2.3 鍵盤介紹</p><p> 按鍵用于控制數(shù)碼顯示、LCD顯示、揚(yáng)聲器等模塊的工作。通過掃描按鍵是否按下,來設(shè)定各模塊的工作情況,使各模塊可以在按鍵的控制下,有序地進(jìn)行工作。設(shè)計(jì)中使用單個(gè)按鍵實(shí)現(xiàn)單個(gè)功能,屬于較為簡單的控制方式。</p>&
34、lt;p> 按鍵采用5個(gè)button,分別控制倒計(jì)時(shí)開始、調(diào)分個(gè)位、調(diào)分十位、調(diào)秒個(gè)位、調(diào)秒十位;另外還加一個(gè)總開關(guān)用于控制所有電路的通電情況。</p><p> 2.2.4 蜂鳴器介紹</p><p> 蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,采用直流電壓供電,廣泛應(yīng)用于計(jì)算機(jī)、打印機(jī)、復(fù)印機(jī)、報(bào)警器、電子玩具、汽車電子設(shè)備、電話機(jī)、定時(shí)器等電子產(chǎn)品中作發(fā)聲器件。 ;蜂鳴器主要分
35、為壓電式蜂鳴器和電磁式蜂鳴器兩種類型。蜂鳴器在電路中用字母“H”或“HA”表示。</p><p> 單片機(jī)驅(qū)動(dòng)他激蜂鳴器的方式有兩種:一種是PWM 輸出口直接驅(qū)動(dòng),另一種是利用I/O 定時(shí)翻轉(zhuǎn)電平產(chǎn)生驅(qū)動(dòng)波形對蜂鳴器進(jìn)行驅(qū)動(dòng)。本設(shè)計(jì)選擇利用I/O 定時(shí)翻轉(zhuǎn)電平產(chǎn)生驅(qū)動(dòng)波形對蜂鳴器進(jìn)行驅(qū)動(dòng)。</p><p> 利用I/O 定時(shí)翻轉(zhuǎn)電平來產(chǎn)生驅(qū)動(dòng)波形的方式必須利用定時(shí)器來做定時(shí),通過定時(shí)翻
36、轉(zhuǎn)電平產(chǎn)生符合蜂鳴器要求的頻率的波形,這個(gè)波形就可以用來驅(qū)動(dòng)蜂鳴器了。比如為2500Hz 的蜂鳴器的驅(qū)動(dòng),可以知道周期為400μs,這樣只需要驅(qū)動(dòng)蜂鳴器的I/O 口每200μs 翻轉(zhuǎn)一次電平就可以產(chǎn)生一個(gè)頻率為2500Hz,占空比為1/2duty 的方波,再通過三極管放大就可以驅(qū)動(dòng)這個(gè)蜂鳴器了。</p><p> 由于蜂鳴器的工作電流一般比較大,以致于單片機(jī)的I/O 口是無法直接驅(qū)動(dòng)的,所以要利用放大電路來驅(qū)動(dòng)
37、,一般使用三極管來放大電流就可以了。</p><p><b> 3、系統(tǒng)軟件設(shè)計(jì)</b></p><p> 3.1 proteus軟件環(huán)境介紹</p><p> 本系統(tǒng)的硬件設(shè)計(jì)首先是在Proteus軟件環(huán)境中仿真實(shí)現(xiàn)的。Proteus軟件是來自英國Labcenter electronics公司的EDA工具軟件,Proteus軟件有十多年
38、的歷史,在全球廣泛使用,除了具有和其它EDA工具一樣的原理布圖、PCB自動(dòng)或人工布線及電路仿真的功能外,其革命性的功能是,它的電路仿真是互動(dòng)的。針對微處理器的應(yīng)用,還可以直接在基于原理圖的虛擬原型上編程,并實(shí)現(xiàn)軟件源碼級的實(shí)時(shí)調(diào)試。如果有顯示及輸出,配合系統(tǒng)配置的虛擬儀器如示波器、邏輯分析儀等,還能看到運(yùn)行后輸入輸出的效果。Proteus建立了完備的電子設(shè)計(jì)開發(fā)環(huán)境,尤其重要的是Proteus Lite可以完全免費(fèi),也可以花微不足道的費(fèi)
39、用注冊達(dá)到更好的效果[2]。</p><p> Proteus是目前最好的模擬單片機(jī)外圍器件的工具??梢苑抡?1系列、AVR、PIC等常用的MCU及其外圍電路(如LCD,RAM,ROM,鍵盤,馬達(dá),LED,AD/DA,部分SPI器件,部分IIC器件...)。其實(shí)Proteus 與 multisim比較類似,只不過它可以仿真MCU,當(dāng)然,軟件仿真精度有限,而且不可能所有的器件都找得到相應(yīng)的仿真模型,用開發(fā)板和仿真
40、器當(dāng)然是最好選擇,可是初學(xué)者擁有它們的可能性比較小。當(dāng)然,硬件實(shí)踐還是必不可少的。在沒有硬件的情況下,Proteus能像pspice 仿真模擬/數(shù)字電路那樣仿真MCU及外圍電路。另外,即使有硬件,在程序編寫早期用軟件仿真一下也是很有必要的。Proteus軟件主要具有以下幾個(gè)方面的特點(diǎn):</p><p> 1、設(shè)計(jì)和仿真軟件Proteus 是一個(gè)很有用的工具,它可以幫助學(xué)生和專業(yè)人士提高他們的模擬和數(shù)字電路的設(shè)計(jì)
41、能力。</p><p> 2、它允許對電路設(shè)計(jì)采用圖形環(huán)境,在這種環(huán)境中,可以使用一個(gè)特定符號來代替元器件,并完成不會(huì)對真實(shí)電路造成任何損害的電路仿真操作。</p><p> 3、它可以仿真儀表以及可描述在仿真過程中所獲得的信號的圖表。</p><p> 4、它可以仿真目前流行的單片機(jī),如PICS, ATMEL-AVR, MOTOROLA, 8051 等。&l
42、t;/p><p> 5、在設(shè)計(jì)綜合性方案中,還可以利用ARES開發(fā)印制電路板。</p><p> 3.2 Protel軟件環(huán)境介紹</p><p> Protel印制板設(shè)計(jì)軟件包是澳大利亞protel technology公司與1990年推出的電子CAD產(chǎn)品,具有方便、易學(xué)、實(shí)用、快速以及高速度、高步通率的特點(diǎn)。它采用了分層次下拉窗口菜單結(jié)構(gòu)形式,用戶基本上不需
43、要記背太多的鍵盤命令,用鼠標(biāo)點(diǎn)擊菜單命令就能操作,protel有著很高的自動(dòng)布線布通率。布通率是電子產(chǎn)CAD產(chǎn)品的一項(xiàng)重要指標(biāo),它反映電子元件在電路圖中連接關(guān)系有多少能在印刷版圖中實(shí)現(xiàn)。在設(shè)計(jì)常用的單、雙面印制板時(shí)只要選擇適當(dāng)?shù)脑季趾筒季€策略方法,protel就可以輕易的達(dá)到98%-100%的布通率。對于極少數(shù)不能布通的定方,protel可以用飛線指示出來,引導(dǎo)用戶用手工方法連通。另外,protel有強(qiáng)大的宏命令設(shè)置功能,利用宏命令
44、功能多定義的熱鍵可以大大提高操作速度[1]。</p><p> Protel對微機(jī)的軟硬件配置要求很低:cpu在8088以上,dos2.0以上版本,內(nèi)存640kb以上,雙軟件(或一個(gè)軟件一個(gè)硬盤),單色顯示器(多層板設(shè)計(jì)時(shí)最好用彩色),各種兼容打印機(jī)。也能在Windows9X平臺(tái)的模擬DOS下運(yùn)行。</p><p> Protel已成為印制板設(shè)計(jì)加工方面的工業(yè)標(biāo)準(zhǔn)。據(jù)初步統(tǒng)計(jì)prote
45、l在CAD的市場占有率達(dá) 95%,成為電子產(chǎn)品制造業(yè)界的首選CAD軟件。</p><p><b> 3.3流程圖</b></p><p> 3.3.1主程序流程圖</p><p> 主程序開始初始化,然后掃描鍵盤、復(fù)位電路和計(jì)數(shù)器。當(dāng)鍵盤按鍵有按下時(shí),調(diào)整計(jì)數(shù)器值,LCD顯示新值。當(dāng)復(fù)位鍵有按下時(shí),計(jì)數(shù)器復(fù)位為初值,重新倒計(jì)數(shù)。當(dāng)計(jì)數(shù)器值
46、倒計(jì)為0時(shí),蜂鳴器發(fā)出聲音,計(jì)數(shù)器停止倒計(jì),程序結(jié)束。主程序流程圖如圖3-1所示:</p><p><b> N</b></p><p><b> N</b></p><p><b> NYY</b></p><p><b> Y</b>&l
47、t;/p><p> 圖3-1 主程序流程圖</p><p> 3.3.2 LCD顯示流程圖</p><p><b> N</b></p><p><b> Y</b></p><p><b> N</b></p><p>&
48、lt;b> Y</b></p><p><b> N</b></p><p><b> Y</b></p><p><b> N</b></p><p><b> Y</b></p><p> 圖3-2
49、 LCD顯示流程圖</p><p> 3.3.3按鍵流程圖 </p><p><b> N</b></p><p><b> Y</b></p><p><b> N</b></p><p><b> Y</b><
50、;/p><p> 圖3-3 按鍵流程圖</p><p> 3.3.4蜂鳴器發(fā)聲程序流程圖 </p><p> 蜂鳴器發(fā)聲程序流程圖如圖3-2所示:</p><p><b> N</b></p><p><b> Y</b></p><p>
51、<b> N</b></p><p><b> Y</b></p><p><b> NN</b></p><p><b> YY</b></p><p> 圖3-4 蜂鳴器發(fā)聲程序流程圖</p><p> 3.4
52、蜂鳴器發(fā)聲電路原理</p><p> 對于單片機(jī)產(chǎn)生音樂,關(guān)鍵是控制頻率的輸出.我們知道,不同的聲音對應(yīng)不同的頻率,產(chǎn)生有規(guī)律的頻率輸出就可以得到相應(yīng)規(guī)律的聲音.有8個(gè)基本音符:do﹑re﹑mi﹑fa﹑so﹑la﹑xi﹑do,八個(gè)不同的音符對應(yīng)著不同的頻率.只要我們對照音符輸出相對應(yīng)的頻率,就可以產(chǎn)生美妙的音樂.本文中采用了T0中斷方式產(chǎn)生不同頻率, 并用按鍵控制音樂的播放和停止。用三極管、電阻和BUZZER組
53、成蜂鳴器電路。蜂鳴器最重要的特點(diǎn)是只要按照極性要求加上合適的直流電壓就可以發(fā)出固有頻率的聲音。</p><p> 3.4.1音調(diào)、節(jié)拍以及編碼的確定方法</p><p> 一般說來,單片機(jī)演奏音樂基本都是單音頻率,它不包含相應(yīng)幅度的諧波頻率,也就是說不能像電子琴那樣能奏出多種音色的聲音。因此單片機(jī)奏樂只需弄清楚兩個(gè)概念即可,也就是“音調(diào)”和節(jié)拍表示一個(gè)音符唱多長的時(shí)間。</p&g
54、t;<p> 3.4.2音調(diào)的確定</p><p> 不同音高的樂音是用C、D、E、F、G、A、B來表示,這7個(gè)字母就是音樂的音</p><p> 它們一般依次唱成DO、RE、MI、FA、SO、LA、SI,即唱成簡譜的1、2、3、4、5、6、7,相當(dāng)于漢字“多來米發(fā)梭拉西”的讀音,這是唱曲時(shí)樂音的發(fā)音,所以叫“音調(diào)”,即Tone。把C、D、E、F、G、A、B這一組音的距
55、離分成12個(gè)等份,每一個(gè)等份叫一個(gè)“半音”。兩個(gè)音之間的距離有兩個(gè)“半音”,就叫“全音”。在鋼琴等鍵盤樂器上,C–D、D–E、F–G、G–A、A–B兩音之間隔著一個(gè)黑鍵,他們之間的距離就是全音;E–F、B–C兩音之間沒有黑鍵相隔,它們之間的距離就是半音。通常唱成1、2、3、4、5、6、7的音叫自然音,那些在它們的左上角加上﹟號或者b號的叫變化音。﹟叫升記號,表示把音在原來的基礎(chǔ)上升高半音,b叫降記音,表示在原來的基礎(chǔ)上降低半音。例如高音
56、DO的頻率(1046Hz)剛好是中音DO的頻率(523Hz)的一倍,中音DO的頻率(523Hz)剛好是低音DO頻率(266 Hz)的一倍;同樣的,高音RE的頻率(1175Hz)剛好是中音RE的頻率(587Hz)的一倍,中音RE的頻率(587Hz)剛好是低音RE頻率(294 Hz)的一倍。</p><p> 1)要產(chǎn)生音頻脈沖,只要算出某一音頻的周期(1/頻率),然后將此周期除以2,即為半周期的時(shí)間。利用定時(shí)器計(jì)
57、時(shí)這半個(gè)周期時(shí)間,每當(dāng)計(jì)時(shí)到后就將輸出脈沖的I/O反相,然后重復(fù)計(jì)時(shí)此半周期時(shí)間再對I/O反相,就可在I/O腳上得到此頻率的脈沖。</p><p> 2)利用AT89C51的內(nèi)部定時(shí)器使其工作在計(jì)數(shù)器模式1下,改變計(jì)數(shù)值TH1及TL1以產(chǎn)生不同頻率的方法。</p><p> 此外結(jié)束符和休止符可以分別用代碼00H和FFH來表示,若查表結(jié)果為00H,則表示曲子終了;若查表結(jié)果為FFH,則
58、產(chǎn)生相應(yīng)的停頓效果。</p><p> 3)例如頻率為523Hz,其周期T=1/523=1912us,因此只要令計(jì)數(shù)器計(jì)時(shí)956us/1us=956,在每次技術(shù)956次時(shí)將I/O反相,就可得到中音DO(523Hz)。</p><p> 計(jì)數(shù)脈沖值與頻率的關(guān)系公式如下:</p><p><b> N=Fi2Fr</b></p>
59、<p> N:計(jì)算值;Fi:內(nèi)部計(jì)時(shí)一次為1us,故其頻率為1MHz;</p><p> 其計(jì)數(shù)值的求法如下:</p><p> T=65536-N=65536-Fi2Fr</p><p> 例如:設(shè)K=65536,F(xiàn)=1000000=Fi=1MHz,球低音DO(261Hz)。中音DO(523Hz)。高音的DO(1046Hz)的計(jì)算值<
60、/p><p> T=65536-N=65536-Fi2Fr=65536-10000002Fr=65536-500000/Fr</p><p> 低音DO的T=65536-500000/262=63627</p><p> 低音DO的T=65536-500000/523=64580</p><p> 低音DO的T=65536-500000/
61、1047=65059</p><p> 3.4.3節(jié)拍的確定</p><p> 若要構(gòu)成音樂,光有音調(diào)是不夠的,還需要節(jié)拍,讓音樂具有旋律(固定的律動(dòng)),而且可以調(diào)節(jié)各個(gè)音的快滿度?!肮?jié)拍”,即Beat,簡單說就是打拍子,就像我們聽音樂不自主的隨之拍手或跺腳。若1拍實(shí)0.5s,則1/4 拍為0.125s。至于1拍多少s,并沒有嚴(yán)格規(guī)定,就像人的心跳一樣,大部分人的心跳是每分鐘72下,有
62、些人快一點(diǎn),有些人慢一點(diǎn),只要聽的悅耳就好。音持續(xù)時(shí)間的長短即時(shí)值,一般用拍數(shù)表示。休止符表示暫停發(fā)音。</p><p> 一首音樂是由許多不同的音符組成的,而每個(gè)音符對應(yīng)著不同頻率,這樣就可以利用不同的頻率的組合,加以與拍數(shù)對應(yīng)的延時(shí),構(gòu)成音樂。了解音樂的一些基礎(chǔ)知識,我們可知產(chǎn)生不同頻率的音頻脈沖即能產(chǎn)生音樂。對于單片機(jī)來說,產(chǎn)生不同頻率的脈沖是非常方便的,利用單片機(jī)的定時(shí)/計(jì)數(shù)器來產(chǎn)生這樣的方波頻率信號。
63、因此,需要弄清楚音樂中的音符和對應(yīng)的頻率,以及單片機(jī)定時(shí)計(jì)數(shù)的關(guān)系。</p><p><b> 3.4.4 編碼</b></p><p> do re mi fa so la si分別編碼為1~7,重音do編為8,重音re編為9,停頓編為0。播放長度以十六分音符為單位(在本程序中為165ms),一拍即四分音符等于4個(gè)十六分音符,編為4,其它的播放時(shí)間以此類推。音調(diào)
64、作為編碼的高4位,而播放時(shí)間作為低4位,如此音調(diào)和節(jié)拍就構(gòu)成了一個(gè)編碼。以0xff作為曲譜的結(jié)束標(biāo)志。</p><p> 舉例1:音調(diào)do,發(fā)音長度為兩拍,即二分音符,將其編碼為0x18。</p><p> 舉例2:音調(diào)re,發(fā)音長度為半拍,即八分音符,將其編碼為0x22</p><p> 歌曲播放的設(shè)計(jì)。先將歌曲的簡譜進(jìn)行編碼,儲(chǔ)存在一個(gè)數(shù)據(jù)類型為unsig
65、ned char 的數(shù)組中。程序從數(shù)組中取出一個(gè)數(shù),然后分離出高4位得到音調(diào),接著找出相應(yīng)的值賦給定時(shí)器0,使之定時(shí)操作蜂鳴器,得出相應(yīng)的音調(diào);接著分離出該數(shù)的低4位,得到延時(shí)時(shí)間,接著調(diào)用軟件延時(shí)。</p><p> 表3-1簡譜對應(yīng)的簡譜碼、T值、節(jié)拍數(shù)</p><p> 4 PROTEUS仿真結(jié)果</p><p> 4.1 電路原理圖及仿真</p
66、><p> 系統(tǒng)protel99se電路原理圖如圖4-1(a)所示</p><p> 圖4-1(a) 總體電路電路原理圖</p><p> 系統(tǒng)protel99se PCB如圖4-1(b)所示 </p><p> 圖4-1(b)PCB</p><p> proteus電路仿真分別
67、如圖4-1(c)所示</p><p> 圖4-1(c)電路仿真</p><p> 4.2 倒計(jì)時(shí)設(shè)置仿真如下圖4-2(a)所示</p><p> 圖4-2(a)倒計(jì)時(shí)設(shè)置仿真</p><p> 倒計(jì)數(shù)設(shè)置為5秒時(shí)的仿真如下圖4-2(b)所示</p><p> 圖4-2(b)倒計(jì)數(shù)5秒的仿真</p>
68、<p> 4.3 蜂鳴器的仿真如下圖4-3所示</p><p> 圖4-3蜂鳴器的仿真</p><p><b> 5 總結(jié)</b></p><p> 通過此次多功能數(shù)字計(jì)數(shù)器的設(shè)計(jì)制作,我們將從書本上學(xué)到的知識應(yīng)用于實(shí)踐,再次鞏固了我的單片機(jī)知識,提高了我的電路仿真設(shè)計(jì)能力。雖然設(shè)計(jì)過程中遇到了很多困難,但是在解決這些問題
69、的過程無疑是對自身專業(yè)素質(zhì)的提高。當(dāng)最終調(diào)試成功的時(shí)候也是對自己的一種肯定。此次的設(shè)計(jì)不僅增強(qiáng)了自己在專業(yè)設(shè)計(jì)方面的信息,鼓舞了自己,更是一次興趣的培養(yǎng),為以后的學(xué)習(xí)方向明確了重點(diǎn)。</p><p> 另外在這次設(shè)計(jì)中我們遇到了不少的問題,針對不同的問題我們采取不同的解決方法,最終一一解決了。在我們遇到不懂得問題時(shí),利用課本上、參考書上的知識,以及網(wǎng)上的資料最終解決問題。和隊(duì)友之間相互討論,明白了團(tuán)隊(duì)合作的重要
70、性。</p><p> 本次項(xiàng)目設(shè)計(jì)還存在很多不足,比如,LCD的日期顯示還不夠完美,計(jì)數(shù)功能也不夠詳細(xì)等。以后爭取完善這個(gè)設(shè)計(jì),以提高我們的單片機(jī)設(shè)計(jì)能力。</p><p> 這里很感謝藍(lán)會(huì)立老師給我們的指導(dǎo)和教育,感謝他給我們提供了良好的學(xué)習(xí)設(shè)計(jì)環(huán)境,也很感謝可愛的伙伴們,讓我覺得團(tuán)隊(duì)的力量很偉大。</p><p><b> 致 謝</b
71、></p><p> 在陳飛老師的指導(dǎo)下,我完成了本次設(shè)計(jì)。本設(shè)計(jì)從選題到完成,都得到了陳老師細(xì)心的指導(dǎo)。另外,本設(shè)計(jì)的完成也離不開其他老師和各位同學(xué)給我的建議和幫助,是他們讓我明白了團(tuán)隊(duì)合作的精神。當(dāng)然,這之中也有我自己的努力。這次課程設(shè)計(jì)最令我高興的是:遇到困難,翻閱書本解決困難的同時(shí)鞏固了已學(xué)知識,也學(xué)到了新知識。在此,我謹(jǐn)向陳飛老師和幫助過我的老師和同學(xué)們,表示崇高的敬意和衷心的感謝!</p
72、><p><b> 參考文獻(xiàn)</b></p><p> [1]張毅剛,彭喜元. 單片機(jī)原理與應(yīng)用設(shè)計(jì). 北京:電子工業(yè)出版社,2008.4</p><p> [2]徐錚穎,孫海維.Protel 99 se EDA技術(shù)及應(yīng)用.北京:機(jī)械工業(yè)出版社,2012.2 </p><p> [3]譚浩強(qiáng).C程序設(shè)計(jì)(第三版).北
73、京:清華大學(xué)出版社,2005</p><p> [4]劉文濤.單片機(jī)應(yīng)用開發(fā)實(shí)例.北京:清華大學(xué)出版社,2005.9</p><p> [5]高衛(wèi)東,辛友順,韓彥征.51單片機(jī)原理與實(shí)踐.北京:北京航空航天大學(xué)出版社.2008.1</p><p> 附表(本設(shè)計(jì)所有程序)</p><p> #include <reg51.h&g
74、t;</p><p> #include <intrins.h></p><p> sbit rs= P2^4;</p><p> sbit rw = P2^5;</p><p> sbit ep = P2^6;</p><p> sbit k1=P1^4;</p><p>
75、; sbit k2=P1^5;</p><p> sbit k3=P1^6;</p><p> sbit k4=P1^7;</p><p> sbit k5=P1^3;</p><p> sbit speaker=P3^0;</p><p> unsigned char code dis1[] = {&qu
76、ot;605 "};</p><p> unsigned char code dis2[] = {"TIME 00:00"};</p><p> unsigned char code dis3[] = {"0123456789"};</p><p> unsigned int num=0;</p>
77、;<p> unsigned int miaogw=0;</p><p> unsigned int miaosw=0;</p><p> unsigned int fengw=0;</p><p> unsigned int fensw=0;</p><p> unsigned char flag=1;</p&
78、gt;<p> unsigned char timer0h,timer0l,time;</p><p> //世上只有媽媽好數(shù)據(jù)表</p><p> code unsigned char sszymmh[]={ 6,2,3, 5,2,1, 3,2,2, 5,2,2, 1,3,2, 6,2,1, 5,2,1,</p><
79、;p> 6,2,4, 3,2,2, 5,2,1, 6,2,1, 5,2,2, 3,2,2, 1,2,1,</p><p> 6,1,1, 5,2,1, 3,2,1, 2,2,4, 2,2,3, 3,2,1, 5,2,2,</p><p> 5,2,1, 6,2,1, 3,2,2, 2,2,2, 1,2,4, 5,2,3
80、, 3,2,1,</p><p> 2,2,1, 1,2,1, 6,1,1, 1,2,1, 5,1,6, 0,0,0 </p><p><b> };</b></p><p> // 音階頻率表 高八位</p><p> code unsigned char FREQH[]={</p&g
81、t;<p> 0xF2,0xF3,0xF5,0xF5,0xF6,0xF7,0xF8, </p><p> 0xF9,0xF9,0xFA,0xFA,0xFB,0xFB,0xFC,0xFC, //1,2,3,4,5,6,7,8,i</p><p> 0xFC,0xFD,0xFD,0xFD,0xFD,0xFE,</p><p> 0xFE,0xFE,
82、0xFE,0xFE,0xFE,0xFE,0xFF,</p><p><b> } ;</b></p><p> // 音階頻率表 低八位</p><p> code unsigned char FREQL[]={</p><p> 0x42,0xC1,0x17,0xB6,0xD0,0xD1,0xB6,</p
83、><p> 0x21,0xE1,0x8C,0xD8,0x68,0xE9,0x5B,0x8F, //1,2,3,4,5,6,7,8,i</p><p> 0xEE,0x44, 0x6B,0xB4,0xF4,0x2D, </p><p> 0x47,0x77,0xA2,0xB6,0xDA,0xFA,0x16,</p><p><b>
84、 };</b></p><p> void delayyy(unsigned char t)</p><p><b> {</b></p><p> unsigned char t1;</p><p> unsigned long t2;</p><p> for(t1=0
85、;t1<t;t1++)</p><p><b> {</b></p><p> for(t2=0;t2<8000;t2++)</p><p><b> {</b></p><p><b> ;</b></p><p><b>
86、; }</b></p><p><b> }</b></p><p><b> TR0=0;</b></p><p><b> }</b></p><p> void t0int() interrupt 1</p><p><
87、b> {</b></p><p><b> TR0=0;</b></p><p> speaker=!speaker;</p><p> TH0=timer0h;</p><p> TL0=timer0l;</p><p><b> TR0=1;</b
88、></p><p><b> }</b></p><p> void song()</p><p><b> {</b></p><p> TH0=timer0h;</p><p> TL0=timer0l;</p><p><b
89、> TR0=1;</b></p><p> delayyy(time); </p><p><b> }</b></p><p> void delay(unsigned char ms)</p><p><b> {</b>&
90、lt;/p><p> unsigned char i;</p><p> while(ms--)</p><p><b> {</b></p><p> for(i = 0; i< 250; i++)</p><p><b> {</b></p>&
91、lt;p><b> _nop_();</b></p><p><b> _nop_();</b></p><p><b> _nop_();</b></p><p><b> _nop_();</b></p><p><b> }
92、</b></p><p><b> }</b></p><p><b> }</b></p><p> bit lcd_bz()</p><p><b> {</b></p><p> bit result;</p>
93、<p><b> rs = 0;</b></p><p><b> rw = 1;</b></p><p><b> ep = 1;</b></p><p><b> _nop_();</b></p><p><b> _no
94、p_();</b></p><p><b> _nop_();</b></p><p><b> _nop_();</b></p><p> result = (bit)(P0 & 0x80);</p><p><b> ep = 0;</b><
95、;/p><p> return result;</p><p><b> }</b></p><p> void lcd_wcmd(unsigned char cmd)</p><p><b> {</b></p><p> while(lcd_bz());//判斷LC
96、D是否忙碌</p><p><b> rs = 0;</b></p><p><b> rw = 0;</b></p><p><b> ep = 0;</b></p><p><b> _nop_();</b></p><p&
97、gt;<b> _nop_();</b></p><p><b> P0 = cmd;</b></p><p><b> _nop_();</b></p><p><b> _nop_();</b></p><p><b> ep =
98、1;</b></p><p><b> _nop_();</b></p><p><b> _nop_();</b></p><p><b> ep = 0;</b></p><p><b> }</b></p><
99、p> void lcd_pos(unsigned char pos)</p><p><b> {</b></p><p> lcd_wcmd(pos | 0x80);</p><p><b> }</b></p><p> void lcd_wdat(unsigned char d
100、at)</p><p><b> {</b></p><p> while(lcd_bz());//判斷LCD是否忙碌</p><p><b> rs = 1;</b></p><p><b> rw = 0;</b></p><p><b
101、> ep = 0;</b></p><p><b> P0 = dat;</b></p><p><b> _nop_();</b></p><p><b> _nop_();</b></p><p><b> ep = 1;</b&
102、gt;</p><p><b> _nop_();</b></p><p><b> _nop_();</b></p><p><b> ep = 0;</b></p><p><b> }</b></p><p> vo
103、id lcd_wshuzi(void)</p><p><b> {</b></p><p> lcd_pos(0x47);</p><p> lcd_wdat(dis3[fensw]);</p><p> lcd_pos(0x48);</p><p> lcd_wdat(dis3[fe
104、ngw]);</p><p> lcd_pos(0x4A);</p><p> lcd_wdat(dis3[miaosw]);</p><p> lcd_pos(0x4B);</p><p> lcd_wdat(dis3[miaogw]);</p><p><b> }</b></
105、p><p> void lcd_init() //LCD初始化</p><p><b> {</b></p><p> lcd_wcmd(0x38);</p><p><b> delay(1);</b></p><p> lcd_wcmd(0x0c);</p
106、><p><b> delay(1);</b></p><p> lcd_wcmd(0x06);</p><p><b> delay(1);</b></p><p> lcd_wcmd(0x01);</p><p><b> delay(1);</b&
107、gt;</p><p><b> }</b></p><p> void keyscan(void)</p><p><b> {</b></p><p> while(flag)</p><p><b> {</b></p>&
108、lt;p><b> if(k1==0)</b></p><p><b> {</b></p><p> delay(10);</p><p><b> if(k1==0)</b></p><p><b> {</b></p>
109、<p><b> fensw++;</b></p><p> while(!k1);</p><p> if(fensw==10)</p><p><b> fensw=0;</b></p><p><b> }</b></p><p&g
110、t;<b> }</b></p><p><b> if(k2==0)</b></p><p><b> {</b></p><p> delay(10);</p><p><b> if(k2==0)</b></p><p&
111、gt;<b> {</b></p><p><b> fengw++;</b></p><p> while(!k2);</p><p> if(fengw==10)</p><p><b> fengw=0;</b></p><p><
112、b> }</b></p><p><b> }</b></p><p><b> if(k3==0)</b></p><p><b> {</b></p><p> delay(10);</p><p><b>
113、if(k3==0)</b></p><p><b> {</b></p><p><b> miaosw++;</b></p><p> while(!k3);</p><p> if(miaosw==10)</p><p><b> miao
114、sw=0;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> if(k4==0)</b></p><p><b> {</b></p><p> de
115、lay(10);</p><p><b> if(k4==0)</b></p><p> {miaogw++;</p><p> while(!k4);</p><p> if(miaogw==10)</p><p><b> miaogw=0;</b></p
116、><p><b> }</b></p><p><b> }</b></p><p><b> if(k5==0)</b></p><p><b> flag=0;</b></p><p> lcd_wshuzi();<
117、/p><p><b> }</b></p><p><b> }</b></p><p> void delay1s(void)</p><p><b> {</b></p><p> unsigned char h,i,j,k;</p>
118、;<p> for(h=5;h>0;h--)</p><p> for(i=4;i>0;i--)</p><p> for(j=116;j>0;j--)</p><p> for(k=214;k>0;k--);</p><p><b> }</b></p>&
119、lt;p> void main(void)</p><p><b> {</b></p><p> unsigned char j; unsigned char k,i;</p><p> speaker=0;</p><p> lcd_init();// 初始化LCD</p><p
120、> delay(10);</p><p> lcd_pos(0x02);//設(shè)置顯示位置</p><p><b> j = 0;</b></p><p> while(dis1[j] != '\0')</p><p><b> {</b></p><
121、;p> lcd_wdat(dis1[j]);//顯示字符</p><p><b> j++;</b></p><p><b> }</b></p><p><b> while(1)</b></p><p><b> { </b></
122、p><p> lcd_pos(0x42);// 設(shè)置顯示位置</p><p><b> i = 0;</b></p><p> while(dis2[i] != '\0')</p><p><b> {</b></p><p> lcd_wdat(dis
123、2[i]);// 顯示字符</p><p><b> i++; }</b></p><p> keyscan();</p><p> num=fensw*600+fengw*60+miaosw*10+miaogw;</p><p> while(num)</p><p><b>
124、; {</b></p><p><b> num--;</b></p><p> fensw=num/60/10;</p><p> fengw=num/60%10;</p><p> miaosw=num%60/10;</p><p> miaogw=num%60%10;
125、</p><p> delay1s();</p><p> lcd_wshuzi();</p><p><b> }</b></p><p> TMOD=1; //置CT0定時(shí)工作方式1</p><p><b> EA=1;</b></p><p
126、> ET0=1;//IE=0x82 //CPU開中斷,CT0開中斷 </p><p><b> while(1)</b></p><p><b> {</b></p><p><b> i=0; </b></p><p> while(i<100)<
127、;/p><p> { //音樂數(shù)組長度 ,唱完從頭再來 </p><p> k=sszymmh[i]+7*sszymmh[i+1]-1;</p><p> timer0h=FREQH[k];</p><p> timer0l=FREQL[k];</p><p> time=sszym
128、mh[i+2];</p><p><b> i=i+3;</b></p><p><b> song();</b></p><p><b> }</b></p><p><b> }</b></p><p><b>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 微機(jī)原理課程設(shè)計(jì)--基于單片機(jī)設(shè)計(jì)的音樂倒數(shù)計(jì)數(shù)器
- 微機(jī)原理課程設(shè)計(jì)--基于單片機(jī)設(shè)計(jì)的音樂倒數(shù)計(jì)數(shù)器.doc
- 單片機(jī)課程設(shè)計(jì)---倒數(shù)計(jì)數(shù)器
- 倒數(shù)計(jì)數(shù)器單片機(jī)課程設(shè)計(jì)
- 基于單片機(jī)lcd顯示的音樂倒數(shù)計(jì)數(shù)器課程設(shè)計(jì)論文
- 單片機(jī)課程設(shè)計(jì)帶有l(wèi)cd顯示的音樂倒數(shù)計(jì)數(shù)器
- 單片機(jī)課程設(shè)計(jì)----手動(dòng)計(jì)數(shù)器
- 課程設(shè)計(jì)-帶有l(wèi)cd顯示的音樂倒數(shù)計(jì)數(shù)器設(shè)計(jì)
- 帶有l(wèi)cd顯示的音樂倒數(shù)計(jì)數(shù)器課程設(shè)計(jì)
- 帶有l(wèi)cd顯示的音樂倒數(shù)計(jì)數(shù)器課程設(shè)計(jì)
- 課程設(shè)計(jì)--簡易的倒數(shù)計(jì)數(shù)器
- 單片機(jī)計(jì)數(shù)器課程設(shè)計(jì)報(bào)告
- 基于單片機(jī)的頻率計(jì)數(shù)器課程設(shè)計(jì)
- 微機(jī)課程設(shè)計(jì)之計(jì)數(shù)器
- 單片機(jī)課程設(shè)計(jì)----語言報(bào)數(shù)計(jì)數(shù)器
- 單片機(jī)課程設(shè)計(jì)(語言報(bào)數(shù)計(jì)數(shù)器)
- 單片機(jī)課程設(shè)計(jì)--簡易頻率計(jì)數(shù)器
- 課程設(shè)計(jì)-基于單片機(jī)音樂倒數(shù)計(jì)時(shí)器的設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)外部脈沖計(jì)數(shù)器
- 單片機(jī)課程設(shè)計(jì)--音樂倒數(shù)計(jì)時(shí)器
評論
0/150
提交評論