版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 南 昌 工 程 學(xué) 院</p><p> 課 程 設(shè) 計(論 文)</p><p> 機(jī)械與電氣工程學(xué)院 系(院) 自動化 專業(yè)</p><p> 論 文 題 目 基于單片機(jī)的多功能電子鐘 </p><p> 學(xué)生姓名 方 結(jié) 云 </p><p> 班
2、 級 07自 動 化 </p><p> 學(xué) 號 2007100230 </p><p> 指導(dǎo)教師 于 禎 </p><p> 完成日期 2011年 01月 07 日</p><p> 課程設(shè)計(論文)任務(wù)書</p><p
3、> 機(jī)械與電氣工程學(xué)院 07自動化 專業(yè)類 班</p><p><b> 學(xué)生:方結(jié)云</b></p><p> 日期: 自2010 年 12 月 27 日至2011 年 1 月 7 日</p><p><b> 指導(dǎo)教師:于禎</b><
4、/p><p> 助理指導(dǎo)教師(并指出所負(fù)責(zé)的部分):</p><p><b> 教研室主任:</b></p><p> 附注:任務(wù)書應(yīng)該附在已完成的課程設(shè)計說明書首頁。</p><p><b> 目錄</b></p><p><b> 第一章 前言4<
5、/b></p><p> 第二章 總體方案設(shè)計5</p><p> 2.1 設(shè)計內(nèi)容5</p><p> 2.2 設(shè)計內(nèi)容5</p><p> 2.3 方案論證6</p><p> 2.4 方案選擇7</p><p> 第三章 單元模塊設(shè)計8</p>
6、<p> 3.1各單元模塊功能介紹及電路設(shè)計8</p><p> 3.1.1 溫度采集電路8</p><p> 3.1.2 DS1302時鐘電路8</p><p> 3.1.3 串行通信接口電路9</p><p> 3.1.4 USB連接電路9</p><p> 3.1.5 按鍵電路1
7、0</p><p> 3.1.6液晶顯示顯示電路10</p><p> 3.2 特殊器件介紹11</p><p> 3.2.1 STC89C52單片機(jī)芯片11</p><p> 3.2.2 DS1302介紹11</p><p> 3.2.3 溫度傳感器DS18B2012</p>&l
8、t;p> 3. 2. 4 報警模塊12</p><p> 3.2.5液晶顯示LCD160213</p><p> 第四章 軟件設(shè)計14</p><p> 4.1 軟件選擇14</p><p> 4.2軟件設(shè)計流程14</p><p> 4.2.1 溫度采集流程15</p>&
9、lt;p> 4.2.2 日期數(shù)據(jù)處理流程16</p><p> 第五章 系統(tǒng)的仿真及調(diào)試17</p><p> 5.1 系統(tǒng)仿真17</p><p> 5.2 硬件調(diào)試17</p><p> 5.3 軟件調(diào)試18</p><p> 第六章 總結(jié)與體會20</p><p
10、> 6.1 設(shè)計小結(jié)20</p><p> 6.2 設(shè)計收獲及改進(jìn)20</p><p><b> 6.3 致謝20</b></p><p> 6.4參考文獻(xiàn)21</p><p><b> 附錄:22</b></p><p><b> 第一
11、章 前言</b></p><p> 單片機(jī)是指一個集成在一塊芯片上的完整計算機(jī)系統(tǒng)。盡管他的大部分功能集成在一塊小芯片上,但是它具有一個完整計算機(jī)所需要的大部分部件:CPU、內(nèi)存、內(nèi)部和外部總線系統(tǒng),目前大部分還會具有外存。同時集成諸如通訊接口、定時器,實(shí)時時鐘等外圍設(shè)備。而現(xiàn)在最強(qiáng)大的單片機(jī)系統(tǒng)甚至可以將聲音、圖像、網(wǎng)絡(luò)、復(fù)雜的輸入輸出系統(tǒng)集成在一塊芯片上。單片機(jī)也被稱為微控制器(Microcon
12、troller),它不是完成某一個邏輯功能的芯片,而是把一個計算機(jī)系統(tǒng)集成到一個芯片上。概括的講:一塊芯片就成了一臺計算機(jī)。它的體積小、質(zhì)量輕、價格便宜、為學(xué)習(xí)、應(yīng)用和開發(fā)提供了便利條件。單片機(jī)誕生于20世紀(jì)70年代末,經(jīng)歷了SCM、MCU、SOC三大階段。</p><p> STC單片機(jī)完全兼容51單片機(jī),并有其獨(dú)到之處,其抗干擾性強(qiáng),加密性強(qiáng),超低功耗,可以遠(yuǎn)程升級,內(nèi)部有專用復(fù)位電路,價格也較便宜,由于這
13、些特點(diǎn)使得 STC 系列單片機(jī)的應(yīng)用日趨廣泛。本文設(shè)計了一種基于STC公司的STC89C52單片機(jī),使用Dallas的一線制數(shù)字溫度計DS18B20作為溫度傳感器,實(shí)時時鐘芯片DS1302提供當(dāng)前日期和時間數(shù)據(jù),并將實(shí)時的日期和溫度數(shù)據(jù)字符型液晶顯示器LCD1602上顯示,本次設(shè)計的多功能數(shù)字鐘采用數(shù)字電路對日期和溫度進(jìn)行控制設(shè)置,我們采用LCD液晶顯示,以24小時的計時方式,根據(jù)LCD顯示原理進(jìn)行顯示,定時器計數(shù)。在本次設(shè)計中,電路具
14、有顯示日期、時間、溫度的基本功能,還可以實(shí)現(xiàn)對它們的調(diào)整。本次設(shè)計要達(dá)到的目的是:具有時間顯示和手動校對功能,24小時制;具有年、月、日顯示和手動校對功能;具有顯示當(dāng)前星期的功能;具有鬧鈴功能;具有環(huán)境溫度采集功能;掉電后無需重新設(shè)置時間和日期;系統(tǒng)不但接口設(shè)計簡單、便于控制,而且具有很好的人機(jī)界面,可以對當(dāng)前的時間進(jìn)行調(diào)整。</p><p> 第二章 總體方案設(shè)計</p><p>&l
15、t;b> 2.1 設(shè)計內(nèi)容</b></p><p> 完成基于LCD液晶顯示的多功能數(shù)字鐘的設(shè)計。要求該電路具有顯示日期、時間、溫度的基本功能,還可以實(shí)現(xiàn)對它們的調(diào)整。本次設(shè)計要達(dá)到的目的是:具有時間顯示和手動校對功能,24小時制;具有年、月、日顯示和手動校對功能;具有顯示當(dāng)前星期的功能;具有鬧鈴功能;具有環(huán)境溫度采集功能;掉電后無需重新設(shè)置時間和日期;</p><p&g
16、t;<b> 2.2 設(shè)計內(nèi)容</b></p><p> 方案一:利用QuartusII軟件設(shè)計一個數(shù)字鐘,對設(shè)計電路進(jìn)行功能仿真,并下載SOPC實(shí)驗(yàn)系統(tǒng)中,可以完成00:00:00到23:59:59的計時功能,并在控制電路的作用下具有保持、清零、快速校時、快速校分、整點(diǎn)報時等功能。能進(jìn)行正常的時、分、秒計時功能;鎖死功能--鎖死狀態(tài)下時鐘保持不變;清零功能—-時鐘計時電路和萬年歷電路;
17、鬧表功能—鬧鐘蜂鳴器先鳴響5秒,然后停2秒,如果無人干預(yù),蜂鳴器再鳴響5秒。蜂鳴過程中,按任意鍵,本次鬧鐘結(jié)束;相應(yīng)的電路圖如下圖2.1所示:</p><p> 圖2.1 QuartusII軟件設(shè)計數(shù)字鐘電路圖</p><p> 方案二:采用單片機(jī)STC89C52RC芯片以及相關(guān)的芯片來實(shí)現(xiàn)多功能的數(shù)字鐘。該設(shè)計選用一線制溫度計DS18B20 作為溫度傳感器,實(shí)時時鐘芯片DS1302提
18、供當(dāng)前日期和時間數(shù)據(jù),并將實(shí)時的日期和溫度數(shù)據(jù)在字符型液晶顯示器LCD1602上顯示出來。本文設(shè)計了一種基于STC公司的ST89C52單片機(jī),使用Dallas的一線制數(shù)字溫度計DS18B20作為溫度傳感器,實(shí)時時鐘芯片DS1302提供當(dāng)前日期和時間數(shù)據(jù),并將實(shí)時的日期和溫度數(shù)據(jù)字符型液晶顯示器LCD1602上顯示,本次設(shè)計的多功能數(shù)字鐘采用數(shù)字電路對日期和溫度進(jìn)行控制設(shè)置,我們采用LCD液晶顯示,以24小時的計時方式,根據(jù)LCD顯示原理
19、進(jìn)行顯示,定時器計數(shù)。在本次設(shè)計中,電路具有顯示日期、時間、溫度的基本功能,還可以實(shí)現(xiàn)對它們的調(diào)整。本次設(shè)計要達(dá)到的目的是:具有時間顯示和手動校對功能,24小時制;具有年、月、日顯示和手動校對功能;具有顯示當(dāng)前星期的功能;具有鬧鈴功能;具有環(huán)境溫度采集功能;掉電后無需重新設(shè)置時間和日期。</p><p> 系統(tǒng)不但接口設(shè)計簡單、便于控制,而且具有很好的人機(jī)界面,可以通過幾個按鍵對當(dāng)前的時間進(jìn)行調(diào)整,對鬧鐘進(jìn)行隨
20、意設(shè)置,以及溫度超過上下限會自動進(jìn)行報警(LED亮)等功能。其原理框圖如下圖2.2所示:</p><p> 圖2.2 數(shù)字鐘原理框圖</p><p><b> 2.3 方案論證</b></p><p> 我們可以看到,方案一使用的基于Altera公司出品QuartusII軟件以及相應(yīng)的實(shí)驗(yàn)平臺完成的多功能數(shù)字計時器,由于時鐘的計時范圍是0
21、0:00:00---23:59:59,所以我們需要設(shè)計模六十和模二十四的計數(shù)器組成時鐘計時電路。校分、校時、清零電路需要輸入一些控制信號給時鐘計時電路,當(dāng)然這些控制信號是由開關(guān)提供的。要實(shí)現(xiàn)整點(diǎn)報時功能,一個報時控制電路是必不可少的。萬年歷電路需要由計時電路提供計時脈沖,脈沖輸送給一個由模30、模12、模100級聯(lián)而成計時電路。整個過程不僅涉及到的分頻計數(shù)器較多,還要用到大量的開關(guān)控制顯得相當(dāng)復(fù)雜且容易出錯。而方案二是采用最近幾年比較普
22、遍的STC89C52RC單片機(jī)芯片實(shí)現(xiàn)?;赟TC公司的ST89C52單片機(jī),使用Dallas的一線制數(shù)字溫度計DS18B20作為溫度傳感器,實(shí)時時鐘芯片DS1302提供當(dāng)前日期和時間數(shù)據(jù),并將實(shí)時的日期和溫度數(shù)據(jù)字符型液晶顯示器LCD1602上顯示。之所以選擇這個芯片,是因?yàn)镾TC 單片機(jī)降低成本,提升性能,原有程序直接使用,硬件無需改動。并且其抗干擾性強(qiáng),加密性強(qiáng),超低功耗,可以遠(yuǎn)程升級,內(nèi)部有專用復(fù)位電路,價格也較</p&g
23、t;<p><b> 2.4 方案選擇</b></p><p> 在現(xiàn)代SOC技術(shù)的引領(lǐng)下,人們對低故障、高實(shí)時、高可靠、高穩(wěn)定的性能更加青睞,其抗干擾性強(qiáng),加密性強(qiáng),超低功耗,可以遠(yuǎn)程升級,內(nèi)部有專用復(fù)位電路,價格也較便宜,結(jié)合本設(shè)計的要求及綜合以上比較的情況,我們選擇用STC89C52RC單片機(jī)芯片來實(shí)現(xiàn)本次設(shè)計。</p><p> 第三章 單
24、元模塊設(shè)計</p><p> 3.1各單元模塊功能介紹及電路設(shè)計</p><p> 3.1.1 溫度采集電路</p><p> DS18B20是美國Dallas半導(dǎo)體公司生產(chǎn)的一線制數(shù)字溫度傳感器。測量范圍為- 55℃~ + 125℃,在-10℃~8℃范圍內(nèi),精度為0.5℃,不需A /D 轉(zhuǎn)換電路,直接將溫度值轉(zhuǎn)換成數(shù)字量。溫度數(shù)據(jù)的傳輸,只需要一根數(shù)據(jù)線,直
25、接將數(shù)據(jù)線與單片機(jī)的P3.6口相連接。其圖如下3.1所示:</p><p><b> 圖3.1溫度采集 </b></p><p> 3.1.2 DS1302時鐘電路</p><p> DS1302是美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實(shí)時時鐘芯片,它可以對年、月、日、周日、時、分、秒進(jìn)行計時。DS1302用于數(shù)據(jù)記錄,
26、特別是對某些具有特殊意義的數(shù)據(jù)點(diǎn)的記錄上,能實(shí)現(xiàn)數(shù)據(jù)與出現(xiàn)該數(shù)據(jù)的時間同時記錄。DS1302提供2個電源引腳:一個(VCC2)接主電源;另一個(VCC1)接備用電源。</p><p> 圖3.2 DS1302時鐘電路</p><p> 3.1.3 串行通信接口電路</p><p> MAX232是電壓轉(zhuǎn)換芯片,將TTL電平轉(zhuǎn)換成可以和電腦串口匹配的電壓。DB
27、9通過下載線纜與電腦連接,可以將程序下載到單片機(jī)上。</p><p> 圖3.3 RS232串行通信</p><p> 3.1.4 USB連接電路</p><p> USB接口通用性好、實(shí)時性強(qiáng)、傳輸方式多樣、成本低、支持即插即用、易于擴(kuò)展且便于使用。本次設(shè)計的USB連接線路,為單片機(jī)提供5V電壓。</p><p> 圖3.4 US
28、B連接線路</p><p> 3.1.5 按鍵電路</p><p> 本次設(shè)計中用到了4*4的矩陣鍵盤列陣,通過賦低電平選中其中一列,以便來控制時,分,秒,年,月,日,以及鬧鐘的調(diào)整。其電路如圖所示:</p><p> 圖3.5 按鍵控制電路</p><p> 鍵盤處理針對二級以上任務(wù),該最小系統(tǒng)共設(shè)有8個按鍵:運(yùn)行鍵、暫停鍵、上升鍵
29、、下降鍵、切換健、定鬧鍵、校準(zhǔn)鍵及保留功能鍵。下面分別說明各鍵功能。(1)運(yùn)行鍵:當(dāng)系統(tǒng)上電、暫停鍵按下過、校準(zhǔn)鍵按下過或定鬧鍵按下過等上述情況之一發(fā)生時,只有按下運(yùn)行鍵,時鐘才能正常顯示。否則,顯示內(nèi)容與上述各鍵功能相關(guān)。當(dāng)系統(tǒng)上電,需從0點(diǎn)0分0秒開始顯示;暫停和鬧鐘定時,須從實(shí)際時間開始顯示;時間校準(zhǔn)時,需從校準(zhǔn)時間開始顯示。(2)暫停鍵:當(dāng)按下暫停鍵,時鐘顯示固定在當(dāng)前值,但內(nèi)部軟件定時正常累計。(3)上升、下降鍵:用于時間校準(zhǔn)
30、和鬧鐘定時,對于時、分、秒的調(diào)整。(4)切換鍵:用于時間校準(zhǔn)和鬧鐘定時,用于選擇時、分、秒哪個被調(diào)整。按第一下時,選擇小時被調(diào)整;按第二下時,選擇分鐘被調(diào)整;按第三下時,選擇秒被調(diào)整;按第四下時,重復(fù)第一下的選擇,以此類推。</p><p> 選擇小時,按第二下;選擇分鐘,按第三下;選擇秒,按第一下;重復(fù)按下</p><p> 標(biāo)準(zhǔn)鍵:用于對時間的校準(zhǔn)。該鍵只要被按下,則時間固定顯示,
31、由切換鍵選擇時、分、秒,選定后,用上升、下降鍵調(diào)整相應(yīng)值。(6)定鬧鍵:用于鬧鐘定時功能。該鍵只要被按下,則時間固定顯示,但內(nèi)部繼續(xù)定時,由切換鍵選擇時、分、秒,選定后,用上升、下降鍵調(diào)整相應(yīng)值。(7)保留功能鍵:用于以后功能擴(kuò)展。</p><p> 3.1.6液晶顯示顯示電路</p><p> 本設(shè)計中會將時分秒,年月日周以及鬧鐘的設(shè)置,溫度全部都會顯示到液晶LCD1602上面,其具
32、有16×2能夠顯示所有英文大小寫字母,0到9十個數(shù)字以及一些常用的符號。該液晶在4.5V到5.5V電壓范圍內(nèi)都能正確工作,平均工作電流為2mA。液晶HS162共16個管腳。但是由于原理圖中電路很簡單并且只用到接插件所以此處沒有給出原理圖。</p><p> 3.2 特殊器件介紹</p><p> 3.2.1 STC89C52單片機(jī)芯片</p><p>
33、 STC89C52是STC公司生產(chǎn)的低電壓,高性能CMOS8位單片機(jī),片內(nèi)含4kbytes的可反復(fù)擦寫的只讀程序存儲器(PEROM)和128bytes的隨機(jī)存取數(shù)據(jù)存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器(CPU)和Flash存儲單元,可靈活應(yīng)用于各種控制領(lǐng)域。其主要功能有:與MCS-51產(chǎn)品指令系統(tǒng)完全兼容;4k字節(jié)可重擦寫Flash閃速存儲器;1
34、000次擦寫周期;全靜態(tài)操作:0Hz-24MHz;三級加密程序存儲器;128×8字節(jié)內(nèi)部RAM;32個可編程I/O口線;2個16位定時/計數(shù)器;6個中斷源;可編程串行UART通道;低功耗空閑和掉電模式。其引腳圖如下圖所示:</p><p> 圖3.6 STC89C52引腳圖</p><p> 3.2.2 DS1302介紹</p><p> DS13
35、02是美國DALLAS公司推出的一種高性能、低功耗的實(shí)時時鐘芯片,附加31字節(jié)靜態(tài)RAM,采用SPI三線接口與CPU進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號和RAM數(shù)據(jù)。實(shí)時時鐘可提供秒、分、時、日、星期、月、年,一個月小于31天時可自動進(jìn)行調(diào)整,且具有閏年補(bǔ)償功能。工作電壓寬達(dá)2.5~5.5V。采用雙電源供電(主電源和備用電源),可設(shè)置備用電源充電方式,提供了對后背電源進(jìn)行涓細(xì)電流充電的能力,因此廣泛應(yīng)用于測量系統(tǒng)中。
36、DS1302是由DS1202改進(jìn)而來的,增加了以下的特性:雙電源管腳用于主電源和備份電源供應(yīng),Vcc1為課編程涓流充電電源,附加七個字節(jié)存儲器。它廣泛應(yīng)用于電話、傳真、便攜式儀器以及電池供電的儀器儀表等產(chǎn)品領(lǐng)域。其外部引腳分配如圖所示:</p><p> 圖3.7 DS1302的外部時鐘引腳分配</p><p> 3.2.3 溫度傳感器DS18B20</p><p
37、> 采用獨(dú)特的一線接口,可用數(shù)據(jù)總線供電,電壓范圍為3.0 V至5.5 V 無需備用電源。測量溫度范圍為-55℃至+125℃ ,-10 °C至+85 °C范圍內(nèi)精度為±0.5℃。溫度傳感器可編程的分辨率為9~12位 溫度轉(zhuǎn)換為12位數(shù)字格式最大值為750毫秒 用戶可定義的非易失性溫度報警設(shè)置應(yīng)用范圍包括恒溫控制,工業(yè)系統(tǒng),消費(fèi)電子產(chǎn)品溫度計,或任何熱敏感系統(tǒng)。DS18B20內(nèi)部結(jié)構(gòu)主要由四部分組成:
38、64位光刻ROM、溫度傳感器、非揮發(fā)的溫度報警觸發(fā)器TH和TL、配置寄存器。該裝置信號線高的時候,內(nèi)部電容器儲存能量通由1線通信線路給片子供電,而且在低電平期間為片子供電直至下一個高電平的到來重新充電。</p><p> 圖3.8 DS18B20的管腳</p><p> 3. 2. 4 報警模塊</p><p> 報警模塊為單片機(jī)P2.0驅(qū)動蜂鳴器,用于溫度
39、上限到達(dá)時,單片機(jī)驅(qū)動,提供報警。蜂鳴器驅(qū)動,成本低,效率高,反映直觀。其電路圖如下:</p><p> 3.2.5液晶顯示LCD1602</p><p> HS1602是目前最常用的字符液晶之一。具有16×2能夠顯示所有英文大小寫字母,0到9十個數(shù)字以及一些常用的符號。該液晶在4.5V到5.5V電壓范圍內(nèi)都能正確工作,平均工作電流為2mA。液晶HS162共16個管腳.RS為
40、寄存器選擇信號,RW為讀寫選擇信號,通過這兩種信號的不同組合可對液晶進(jìn)行讀寫命令和讀寫數(shù)據(jù)的操作。1602液晶模塊內(nèi)部的字符發(fā)生存儲器(CGROM)已經(jīng)存儲了160個HS162是目前最常用的字符液晶之一。具有16ⅹ2能夠顯示所有英文大小寫字母,0不同的點(diǎn)陣字符圖形,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫、常用的符號等,每一個字符都有一個固定的代碼,比如大寫的英文字母“A”的代碼是01000001B(41H),顯示時模塊把地址41H中的
41、點(diǎn)陣字符圖形顯示出來,我們就能看到字母“A”。在操作液晶時,先要對液晶進(jìn)行初始化,即進(jìn)行最初是的命令設(shè)置。要設(shè)置液晶的工作方式設(shè)置,顯示狀態(tài)設(shè)置,輸入方式設(shè)置等。最后再向液晶寫入數(shù)據(jù),即寫入想要顯示字符的ASCII碼。</p><p><b> 第四章 軟件設(shè)計</b></p><p><b> 4.1 軟件選擇</b></p>
42、<p> 本次設(shè)計選擇的軟件主要是Keil uVision3。 Keil公司成立于1986年,主要開發(fā)、制造和銷售嵌入式8051、251、ARM、XC16x/C16x/ST10等微控制器軟件開發(fā)工具,提供ANSI C編譯器、宏匯編程序、實(shí)時管理、調(diào)試和模擬器、綜合評估板等。Keil公司的uVision把編輯、編譯、鏈接和仿真等模式打包成集成開發(fā)環(huán)境,當(dāng)然其集成的C51編譯器肯定跟Franklin公司的相關(guān)模塊肯定有交叉性,
43、uVision還包含項(xiàng)目管理和調(diào)試器等非常有用的功能。</p><p> 而軟件仿真部分就用的是仿真軟件PROTUES。PROTUES軟件是英國Labcenter electronics公司出版的EDA工具軟件。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機(jī)及外圍器件。雖然目前國內(nèi)推廣剛起步,但已受到單片機(jī)愛好者、從事單片機(jī)教學(xué)的教師、致力于單片機(jī)開發(fā)應(yīng)用的科技工作者的青睞,是目前世界上唯一將電路仿真軟
44、件、PCB設(shè)計軟件和虛擬模型仿真軟件三合一的設(shè)計平臺,其處理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即將增加Cortex和DSP系列處理器,并持續(xù)增加其他系列處理器模型。在編譯方面,它也支持IAR、Keil和MPLAB等多種編譯器。在PROTUES繪制好原理圖后,調(diào)入已編譯好的目標(biāo)代碼文件:*.HEX,可以在PROTUES的原理圖中看到模
45、擬的實(shí)物運(yùn)行狀態(tài)和過程。</p><p> PROTUES 是單片機(jī)課堂教學(xué)的先進(jìn)助手。 PROTUES不僅可將許多單片機(jī)實(shí)例功能形象化,也可將許多單片機(jī)實(shí)例運(yùn)行過程形象化。前者可在相當(dāng)程度上得到實(shí)物演示實(shí)驗(yàn)的效果,后者則是實(shí)物演示實(shí)驗(yàn)難以達(dá)到的效果。它的元器件、連接線路等卻和傳統(tǒng)的單片機(jī)實(shí)驗(yàn)硬件高度對應(yīng)。這在相當(dāng)程度上替代了傳統(tǒng)的單片機(jī)實(shí)驗(yàn)教學(xué)的功能,例:元器件選擇、電路連接、電路檢測、電路修改、軟件調(diào)試、運(yùn)
46、行結(jié)果等。 </p><p><b> 4.2軟件設(shè)計流程</b></p><p> 本次設(shè)計的系統(tǒng)軟件設(shè)計主要包括主程序設(shè)計和溫度采集子模塊程序設(shè)計、日歷日期數(shù)據(jù)子模塊程序、按鍵控制子模塊程序和LCD液晶顯示子模塊程序設(shè)計等。主程序主要完成器件的初始化,并判斷有無按鍵按下,并根據(jù)判斷的結(jié)果調(diào)用相應(yīng)的子模塊程序;而溫度采集子模塊程序和日歷日期數(shù)據(jù)子模塊程序完成相
47、應(yīng)的數(shù)據(jù)采集、處理和保存,按鍵處理子模塊程序完成日期和鬧鐘的設(shè)置,而液晶顯示子模塊只要把上述子模塊儲存的數(shù)據(jù)送去顯示即可。系統(tǒng)總的流程圖如下圖所示:</p><p> 圖4.1 主程序流程</p><p> 4.2.1 溫度采集流程</p><p> DS18B20在進(jìn)行溫度采集時,必須首先進(jìn)行初始化,然后發(fā)ROM操作指令,再發(fā)存儲器操作指令,最后才能傳輸數(shù)據(jù)
48、。每次對器件進(jìn)行讀寫操作時, 必須嚴(yán)格按照DS18B20 的時序要求。因?yàn)闇囟葦?shù)據(jù)在DS18B20中是以2的補(bǔ)碼形式存放的,且低4位為小數(shù)部分, 4位到10位為整數(shù)部分,其余為符號位,因此在讀出2個字節(jié)的溫度數(shù)據(jù)后,首先求一次補(bǔ)碼得到原碼,再將數(shù)據(jù)分離為整數(shù)溫度值和小數(shù)溫度值,整數(shù)部分的值可通過數(shù)據(jù)交換指令得到,而小數(shù)溫度值部分可通過查表得到。因?yàn)樵谝壕э@示器上顯示的是字符的ASCII碼,因而還要轉(zhuǎn)換為BCD,在加30H轉(zhuǎn)換為ASCⅡ碼
49、。其流程圖如下所示:</p><p> 圖4.3 溫度采集流程</p><p> 4.2.2 日期數(shù)據(jù)處理流程</p><p> 對時鐘芯片的操作主要包括2個方面:一是將芯片中的日期等數(shù)據(jù)讀出來,二是在進(jìn)行日期等設(shè)置時將設(shè)置的數(shù)據(jù)寫入芯片,這也是按鍵處理時的主要內(nèi)容。無論是讀數(shù)據(jù)還是寫數(shù)據(jù),都要滿足DS1302 對時序的要求。而對芯片各個數(shù)據(jù)部分的訪問是通過
50、地址進(jìn)行的,且讀和寫的地址不一樣。讀出的數(shù)據(jù)同樣要轉(zhuǎn)為ASC II碼,然后儲存起來,等待送去顯示。其流程圖如下圖所示:</p><p> 圖4.4 日期數(shù)據(jù)處理</p><p> 第五章 系統(tǒng)的仿真及調(diào)試</p><p><b> 5.1 系統(tǒng)仿真</b></p><p> 軟件的仿真部分采用的是仿真軟件PROT
51、UES,前面已經(jīng)作過介紹。整個設(shè)計的仿真效果如下圖所示。</p><p> 此時顯示的時間日期是實(shí)時的時間。顯示的溫度是DS18B20上面所示的溫度。按鍵第三列為設(shè)計中所涉及到的按鍵。我們只用到這個矩陣鍵盤中的4個按鍵。第一個按鍵按下時可調(diào)節(jié)液晶所在的第二行所示的時間。按1,2,3,下,光標(biāo)分別到秒,分,時處閃動。第二個按鍵是控制液晶顯示的第一行的日期顯示。也是一次按下1,2,3,4可分別設(shè)置年月日以及周。最上
52、面的LED是用于溫度超過所設(shè)置的溫度門限值報警,此時LED亮是代表溫度超過了下限溫度值。</p><p> 圖5.1 系統(tǒng)仿真圖</p><p><b> 5.2 硬件調(diào)試</b></p><p> 單片機(jī)系統(tǒng)調(diào)試之前首先應(yīng)該確認(rèn)電源電壓是否正常。用萬用表測量接地引腳跟電源引腳之間的電壓,看是否是電源電壓,常用的5V。接下來就是檢查復(fù)位引
53、腳電壓是否正常。分別測量按下復(fù)位按鈕和放開復(fù)位按鈕的電壓值,看是否正確。然后再檢查晶振是否起振了,一般用示波器來看晶振引腳的波形。另一個辦法是測量復(fù)位狀態(tài)下的IO口電平,按住復(fù)位鍵不放,然后測量IO口(沒接外部上拉的P0口除外)的電壓,看是否是高電平,如果不是高電平,則多半是因?yàn)榫д駴]有起振。經(jīng)過上面幾點(diǎn)的檢查,一般即可排除故障了。</p><p> 顯示電路的調(diào)試:在這里主要是HS1602液晶顯示器。檢查它與
54、單片機(jī)的連線:設(shè)計是RS接的P07口,要保證它為高電平。EN接口接單片機(jī)的P05端,也要保證它為高電平;讀寫信號低電平有效;編寫一段顯示程序,燒錄到單片機(jī)看是否能正常顯示。</p><p> DS1302電路調(diào)試:該電路包含DS1302芯片,主電源、備用電源、晶振等部分。在與單片機(jī)連接的過程中需要注意以下幾點(diǎn):1.清楚DS1302與單片機(jī)連接的管腳,本設(shè)計定義為:DS1302的SCLK連接P1.0,I/O口連接
55、P1.1,RST連接P1.2;2.注意電源正負(fù)極的連接;3. DS1302接32.768KHZ的晶振,該晶振體型比較小,在焊接時要小心,同時也要盡量使晶振離DS1302是X1、X2引腳近距離焊接。4.編寫DS1302的時鐘程序看是否能夠正確顯示時間。</p><p> 按鍵電路調(diào)試:按鍵電路比較簡單,故調(diào)試起來也很容易。如果確保按鍵焊接正確,只需把DS1302的程序?qū)戇M(jìn)單片機(jī),再按下P3.0,如果在秒的位置有光
56、標(biāo)出現(xiàn),則說明P3.0可用,如果按下P3.1,在日的位置有光標(biāo)閃爍,則說明P3.1的按鍵可用,同時按下P3.2,如果日的位置有加的操作,則P3.2按鍵可用如果按P3.3有減的操作則也可用。</p><p> 溫度傳感器的調(diào)試:溫度傳感器的調(diào)試只需在確保電路焊接正確的情況下,把顯示溫度的程序?qū)戇M(jìn)單片機(jī),然后看液晶顯示器上顯示的溫度是否是當(dāng)前的室溫,如果能夠正確顯示當(dāng)前室溫,那么說明電路一切完好。</p>
57、;<p> 我們在硬件調(diào)試的過程中遇到很多問題。</p><p> 首先是按鍵掃描加入程序的時候按鍵會光標(biāo)亂飛。針對這個問題我們在按鍵程序中加入while語句以及標(biāo)志位控制,解決了這個問題。然后就是按鍵只能加一減一,后來在一步一步屏蔽一比一部調(diào)試過后發(fā)現(xiàn)了問題,原來是DS1302這個頭文件周寫數(shù)據(jù)部分寫錯了。還遇到一個問題,就是18B20溫度傳感器加上以后,只會出現(xiàn)一個初始值,檢查后發(fā)現(xiàn)寫溫度的
58、頭文件中出現(xiàn)一點(diǎn)小錯誤。然后整個板子就在我們不停地出現(xiàn)錯誤然后慢慢調(diào)試改正中實(shí)現(xiàn)了我們初步的功能。</p><p><b> 5.3 軟件調(diào)試</b></p><p> 軟件調(diào)試一般是在仿真圖上進(jìn)行,這樣比較方便,可以及時發(fā)現(xiàn)錯誤,分析錯誤,以便快捷的在程序上進(jìn)行修改,再進(jìn)行仿真,直到結(jié)果正確了,才把程序下到開發(fā)板上去看是否符合我們的要求,有時雖然仿真完全正確了,
59、但到開發(fā)板上就不一定了,有時是因?yàn)榉抡鎴D和開發(fā)板的端口不對,所以需要檢查后修改端口,有時是因?yàn)殚_發(fā)板上需要連線的端口連錯了,也造成不能正確顯示,這些雖然看似小問題,但檢錯起來一點(diǎn)都不容易,需要反復(fù)的分析,不斷的試驗(yàn)。就這樣不斷的試驗(yàn),再修改,在試驗(yàn),直到程序完全正確,可以顯示出我們想要的答案為止。</p><p> 本次設(shè)計在剛開始調(diào)試的時候,會發(fā)現(xiàn)液晶顯示器上顯示的位置不對,或者干脆不顯示,通過找原因發(fā)現(xiàn)是從
60、DS1302上讀出的字符在液晶顯示器上的對應(yīng)位置寫錯了,造成不能正常顯示,相應(yīng)的改過之后就可以了;有時顯示正確了,但按鍵的加減沒作用,不能進(jìn)行正常的加或減,這時又得修改程序中相關(guān)的部分,有時是因?yàn)镃語言掌握得不牢固,造成寫程序的語法錯誤,這種錯誤很難找,邏輯上看似很簡單的幾句程序也要反復(fù)的找很久。軟件調(diào)試一般是在仿真圖上進(jìn)行,這樣比較方便,可以及時發(fā)現(xiàn)錯誤,分析錯誤,以便快捷的在程序上進(jìn)行修改,再進(jìn)行仿真,直到結(jié)果正確了,才把程序下到開
61、發(fā)板上去看是否符合我們的要求,有時雖然仿真完全正確了,但到開發(fā)板上就不一定了,有時是因?yàn)榉抡鎴D和開發(fā)板的端口不對,所以需要檢查后修改端口,有時是因?yàn)殚_發(fā)板上需要連線的端口連錯了,也造成不能正確顯示,這些雖然看似小問題,但檢錯起來一點(diǎn)都不容易,需要反復(fù)的分析,不斷的試驗(yàn)。就這樣不斷的試驗(yàn),再修改,在試驗(yàn),直到程序完全正確,可以顯示出我們想要的答案為止。</p><p> 我們需要對每一個模塊進(jìn)行調(diào)試,在這里包括:
62、顯示年、月、日,時、分、秒,星期,溫度和鬧鐘的模塊。先分別調(diào)試,直到所有分模塊都調(diào)試出來了,再進(jìn)行統(tǒng)調(diào),這樣更容易檢錯,可以及時查找出錯誤,減小調(diào)試的難度。</p><p><b> 第六章 總結(jié)與體會</b></p><p><b> 6.1 設(shè)計小結(jié)</b></p><p> 在本次設(shè)計中,我們最終完成本次智能化
63、電子系統(tǒng)設(shè)計系的基本要求及功能,并在此基礎(chǔ)了對系統(tǒng)功能作了擴(kuò)展,增加了鬧鐘設(shè)置以及溫度報警部分。在設(shè)計開始前我們對各個模塊進(jìn)行了詳細(xì)的分析和設(shè)計準(zhǔn)備工作,設(shè)計過程中,并且在胡兵老師的指導(dǎo)下,在實(shí)驗(yàn)室?guī)孜煌瑢W(xué)耐心的幫助下,我們組的成員相互協(xié)調(diào),積極參與完成各個技術(shù)實(shí)現(xiàn)的難點(diǎn),更進(jìn)一步地熟悉了芯片的結(jié)構(gòu)及掌握了各芯片的工作原理和具體的使用方法。</p><p> 6.2 設(shè)計收獲及改進(jìn)</p><
64、;p> 通過本次設(shè)計,我們對單片機(jī)有了更深刻的認(rèn)識,也從實(shí)踐的例子中去感受到了單片機(jī)設(shè)計給我們設(shè)計帶來的改變與進(jìn)步。我們不僅掌握Keil uVision3軟件的使用,與此同時,我們還對電子設(shè)計的思路有了更多的認(rèn)識。這次對多功能數(shù)字鐘的設(shè)計與制作,讓我了解設(shè)計電路的程序,也了解了關(guān)于多功能數(shù)字鐘的原理與設(shè)計理念。在此次的多功能數(shù)字鐘設(shè)計過程中,更進(jìn)一步地熟悉了芯片的結(jié)構(gòu)及掌握了各芯片的工作原理和具體的使用方法??傊鞘芤娣藴\。這為
65、自己今后進(jìn)一步深化學(xué)習(xí),積累了一定寶貴經(jīng)驗(yàn),撰寫設(shè)計的過程也是專業(yè)知識的學(xué)習(xí)過程,它使我運(yùn)用已有的專業(yè)知識,對其進(jìn)行設(shè)計,分析和解決問題,把知識轉(zhuǎn)化為能力的訓(xùn)練。</p><p> 本設(shè)計在功能上基本上完成了本次智能化電子系統(tǒng)設(shè)計的要求。將年月日周以及時間在液晶上顯示,對溫度的采集以及對鬧鐘的設(shè)置,按鍵對顯示的控制等功能。但由于時間倉促和我們自身水平有限,對于溫度報警的門限值我們沒有完成按鍵對其的控制和調(diào)整,很
66、遺憾。并且對于電路的可靠性,穩(wěn)定性等參數(shù)還未做過詳細(xì)的測試。還可以通過修改程序,完成字符或數(shù)字的滾動顯示。</p><p><b> 6.3 致謝</b></p><p> 此次課程設(shè)計中,我要特別感謝我的指導(dǎo)老師于禎的熱情關(guān)懷和悉心指導(dǎo)。在完成這次的設(shè)計過程中,于禎老師傾注了大量的心血和汗水,無論是在從一開始的學(xué)習(xí)上還是后來的選題、構(gòu)思和資料的收集方面,我都得到
67、了于禎老師悉心細(xì)致的教誨和無私的幫助,特別是他廣博的學(xué)識、深厚的學(xué)術(shù)素養(yǎng)、嚴(yán)謹(jǐn)?shù)闹螌W(xué)精神和一絲不茍的工作作風(fēng)使我終身受益,在此表示真誠地感謝和深深的謝意。</p><p> 在整個課程設(shè)計中,也得到了許多實(shí)驗(yàn)室同學(xué)的支持和幫助,他們在自己時間很寶貴的情況下,給我們講解模塊電路的知識以及編程方法,并且耐心為我們解答設(shè)計過程遇到的所有問題。給予了我們許多寶貴的意見,在此一并致以誠摯的謝意。</p>&
68、lt;p><b> 6.4參考文獻(xiàn)</b></p><p> 1、陳梓城《實(shí)用電子電路設(shè)計與調(diào)試》中國電力出版社2006</p><p> 2、曹薇《單片機(jī)原理及應(yīng)用》 中國實(shí)力水電出版社 2004.8</p><p> 3、高吉祥《全國大學(xué)生電子設(shè)計大賽培訓(xùn)教程》電子工業(yè)出版社2007.5</p><p>
69、; 4、DS12887 DATASHEET www.datasheet5.com</p><p> 5、DS18B20 DATASHEET www.datasheet5.com</p><p> 6、張洪潤.蘭清華.單片機(jī)應(yīng)用技術(shù)教程[M].北京:清華大學(xué)出版社,1997.11</p><p> 7、何力民.單片機(jī)應(yīng)用技術(shù)選編5[M].北京:北京航空航天大學(xué)
70、出版社1997.10</p><p> 8、潘永雄.新編單片機(jī)原理與應(yīng)用[M].西安:西安電子科技大學(xué)出版社,2003.2</p><p> 9、付家才.單片機(jī)控制工程實(shí)踐技術(shù)[M].北京:化學(xué)工業(yè)出版社,2004.3</p><p><b> 附錄:</b></p><p><b> 設(shè)計原理圖:&l
71、t;/b></p><p><b> 實(shí)現(xiàn)程序:</b></p><p> //介紹整個程序所包含的頭文件</p><p> #include<reg52.h></p><p> #include<intrins.h></p><p> #include&l
72、t;ds1302.h></p><p> #include<lcd1602.h></p><p> #include<1820.h></p><p><b> //定義</b></p><p> #define uchar unsigned char</p>&l
73、t;p> #define uint unsigned int</p><p> Uchar u,u1,u2,u3,u4,u5,u6,u7,u8,</p><p><b> alarmOn;</b></p><p> uint fen,miao,shi,nian,yue,ri,anshu,</p><p&
74、gt;<b> zh;</b></p><p> uchar linshi,a,a1,a2,a3,a4,a5,a6;</p><p> uint tab[3];</p><p> sbit rd=P3^5;</p><p> sbit P30=P3^0;</p><p> sbit P
75、31=P3^1;</p><p> sbit P32=P3^2;</p><p> sbit P33=P3^3;</p><p> sbit beep=P3^3;</p><p> sbit ds1302_rst=P1^2;</p><p> sbit ds1302_sclk=P1^0;</p>
76、<p> sbit ds1302_io=P1^1;</p><p> sbit ACC7=ACC^7;</p><p> sbit B1=B^0;</p><p> sbit lcd1602_en=P0^5;</p><p> sbit lcd1602_rw=P0^6;</p><p> sbi
77、t lcd1602_rs=P0^7;</p><p> #define lcd1602_data P2</p><p> uchar low,high; //存儲溫度的高位值和低位值</p><p> sbit DQ=P3^6; // -- 定義通信端口</p><p> sbit D1=P0^0;</p>&l
78、t;p> uchar gw,sw,w4,tpl,tph;</p><p> uint bai,b;</p><p><b> //主函數(shù)部分</b></p><p> void fenjia (uchar rddr,uchar wddr,uchar yddr,uchar fenjiajian)//鍵盤掃描</p>&
79、lt;p><b> {</b></p><p> u=ds1302_read(rddr);</p><p> fen=((u&0x70)>>4)*10+(u&0x0f);//進(jìn)制轉(zhuǎn)換</p><p> if(fenjiajian==1)</p><p><b> {&
80、lt;/b></p><p><b> fen++;</b></p><p> if(fen==60)</p><p><b> {</b></p><p><b> fen=0;</b></p><p><b> }</
81、b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p><b> fen--;</b></p><p> if((fen+1)==
82、0)</p><p><b> {</b></p><p><b> fen=59;</b></p><p><b> }</b></p><p><b> }</b></p><p> ds1302_write(wddr
83、,((fen/10)<<4)|(fen%10));</p><p> write_sfm(yddr,fen);</p><p> lcd1602_writecom(0x80+0x40+yddr);</p><p> lcd1602_writecom(0x0f);</p><p> lcd1602_writecom(0x80
84、+0x40+yddr);</p><p><b> }</b></p><p> void shijia (uchar rddr,uchar wddr,uchar yddr,uchar shijiajian)//鍵盤掃描</p><p><b> {</b></p><p> a4=ds13
85、02_read(rddr);</p><p> shi=((a4&0x70)>>4)*10+(a4&0x0f);//進(jìn)制轉(zhuǎn)換</p><p> if(shijiajian==1)</p><p><b> {</b></p><p><b> shi++;</b>
86、</p><p> if(shi==24)</p><p><b> {</b></p><p><b> shi=0;</b></p><p><b> }</b></p><p><b> }</b></p>
87、;<p><b> else</b></p><p><b> {</b></p><p><b> shi--;</b></p><p> if((shi+1)==0)</p><p><b> {</b></p>
88、<p><b> shi=23;</b></p><p><b> }</b></p><p> }ds1302_write(wddr,(shi/10)<<4|(shi%10));</p><p> write_sfm(yddr,shi);</p><p> lcd1
89、602_writecom(0x80+0x40+yddr)</p><p> lcd1602_writecom(0x0f);</p><p> lcd1602_writecom(0x80+0x40+yddr);</p><p><b> }</b></p><p> void sfmset()</p>
90、<p><b> {</b></p><p> uchar linshi;</p><p><b> do</b></p><p><b> {</b></p><p> if(P30==0)</p><p><b>
91、{</b></p><p><b> delay(5);</b></p><p> if(P30==0)</p><p><b> {</b></p><p> while(!(P30));</p><p><b> linshi=1;<
92、/b></p><p><b> anshu++;</b></p><p> if(anshu==1)</p><p><b> {</b></p><p> a=ds1302read(0x81);</p><p> miao=((a&0x70)>
93、;>4)*10+(a&0x0f);/</p><p> write_sfm(6,miao)lcd1602_writecom(0x80+0x40+6);lcd1602_writecom(0x0f);lcd1602_writecom(0x80+0x40+6);</p><p><b> }</b></p><p>
94、if(anshu==2)</p><p><b> {</b></p><p> u1=ds1302_read(0x83)fen=((u1&0x70)>>4)*10+(u1&0x0f);</p><p> write_sfm(3,fen);lcd1602_writecom(0x80+0x40+3);&l
95、t;/p><p> lcd1602_writecom(0x0f);lcd1602_writecom(0x80+0x40+3);</p><p><b> }</b></p><p> if(anshu==3)</p><p><b> {</b></p><p>
96、u2=ds1302_read(0x85);</p><p> shi=((u2&0x70)>>4)*10+(u2&0x0f);</p><p> write_sfm(0,shi);lcd1602_writecom(0x80+0x40+0);</p><p> lcd1602_writecom(0x0f);lcd1602_wr
97、itecom(0x80+0x40+0);</p><p><b> }</b></p><p> if(anshu==4)</p><p><b> {</b></p><p> lcd1602_writecom(0x0c); lcd1602_writecom(0x80 + 0x40+1
98、4);lcd1602_writedata('s');</p><p> lcd1602_writedata('t'); lcd1602_writecom(0x0f);</p><p><b> }</b></p><p> if(anshu==5)</p><p>&
99、lt;b> {</b></p><p> u7=ds1302_read(0x83)tab[0]=((u7&0x70)>>4)*10+(u7&0x0f); write_sfm(3,tab[0]);//table[0]為分存儲器lcd1602_writecom(0x80+0x40+3);lcd1602_writecom(0x0f);l
100、cd1602_writecom(0x80+0x40+3);</p><p><b> }</b></p><p> if(anshu==6)</p><p> {u8=ds1302_read(0x85);tab[1]=((u8&0x70)>>4)*10+(u8&0x0f);write_s
101、fm(0,tab[1]);//table[1]為時存儲器lcd1602_writecom(0x80+0x40+0);lcd1602_writecom(0x0f);lcd1602_writecom(0x80+0x40+0);</p><p><b> }</b></p><p> if(anshu==7)</p><p>
102、<b> {</b></p><p> lcd1602_writecom(0x0c);</p><p> lcd1602_writecom(0x80 + 0x40+14);</p><p> lcd1602_writedata('O'); //顯示"On",提示鬧鐘已開啟
103、 lcd1602_writedata('n');</p><p><b> linshi=0;</b></p><p><b> }</b></p><p> if(anshu==8)</p><p><b> {</b></p><
104、p><b> linshi=0;</b></p><p> anshu = 0;</p><p> beep=1; lcd1602_writecom(0x80 + 0x40+14); //第二次按下清除 "On"標(biāo)記</p><p> lcd1602_writedata('&
105、#39;); lcd1602_writedata(' ');</p><p><b> }</b></p><p> if(anshu==9)</p><p><b> {</b></p><p><b> linshi=0;</
106、b></p><p> anshu=0;ds1302_write(0x80,0x00);</p><p> lcd1602_writecom(0x38);</p><p> lcd1602_writecom(0x0c);//不出現(xiàn)光標(biāo)</p><p><b> }</b></p>&l
107、t;p><b> }</b></p><p><b> }</b></p><p> if (anshu==2)</p><p><b> {</b></p><p> if(P32==0)</p><p><b> {<
108、;/b></p><p><b> delay(5);</b></p><p> if(P32==0)</p><p><b> {</b></p><p> while(!P32);</p><p> fenjia(0x83,0x82,3,1);</p
109、><p><b> }</b></p><p><b> }</b></p><p> if(P33==0)</p><p><b> {</b></p><p><b> delay(5);</b></p>&
110、lt;p> if(P33==0)</p><p><b> {</b></p><p> while(!P33);</p><p> fenjia(0x83,0x82,3,0);</p><p><b> }</b></p><p><b> }&
111、lt;/b></p><p><b> }</b></p><p> if (anshu==3)</p><p><b> {</b></p><p> if(P32==0)</p><p><b> {</b></p>&
112、lt;p> while(!P32);</p><p> shijia(0x85,0x84,0,1);</p><p><b> }</b></p><p> if(P33==0)</p><p><b> {</b></p><p><b> de
113、lay(5);</b></p><p> if(P33==0)</p><p><b> {</b></p><p> while(!P33);</p><p> shijia(0x85,0x84,0,0);</p><p><b> }</b><
114、/p><p><b> }</b></p><p><b> }</b></p><p> if (anshu==5)</p><p><b> {</b></p><p> if(P32==0)</p><p><b
115、> {</b></p><p><b> delay(5);</b></p><p> if(P32==0)</p><p><b> {</b></p><p> while(!P32);</p><p><b> tab[0]++;
116、</b></p><p> write_sfm(3,tab[0]);</p><p> if(tab[0]==60)</p><p><b> {</b></p><p><b> tab[0]=0;</b></p><p><b> }<
117、;/b></p><p><b> }</b></p><p><b> }</b></p><p> if(P33==0)</p><p><b> {</b></p><p><b> delay(5);</b>
118、</p><p> if(P33==0)</p><p><b> {</b></p><p> while(!P33);</p><p><b> tab[0]--;</b></p><p> write_sfm(3,tab[0]);</p><
119、;p> if(tab[0]==0)</p><p><b> {</b></p><p> tab[0]=59;</p><p><b> }</b></p><p><b> }</b></p><p><b> }<
120、/b></p><p><b> }</b></p><p> if (anshu==6)</p><p><b> {</b></p><p> if(P32==0)</p><p><b> {</b></p><
121、p> while(!P32);</p><p><b> tab[1]++;</b></p><p> write_sfm(0,tab[1]);</p><p> if(tab[1]==24)</p><p><b> {</b></p><p><b&
122、gt; tab[1]=0;</b></p><p><b> }</b></p><p><b> }</b></p><p> if(P33==0)</p><p><b> {</b></p><p> while(!P32)
123、;</p><p><b> tab[1]--;</b></p><p> write_sfm(0,tab[1]);</p><p> if(tab[1]==0)</p><p><b> {</b></p><p> tab[1]=23;</p>&
124、lt;p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> if (anshu==7) //設(shè)置好鬧鐘返回時鐘界面并開啟鬧鐘</p><p><b> {</b></p
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)課程設(shè)計--多功能數(shù)字電子鐘
- 單片機(jī)課程設(shè)計— 多功能數(shù)字電子鐘
- 單片機(jī)課程設(shè)計-基于單片機(jī)的多功能電子鐘的設(shè)計
- 單片機(jī)課程設(shè)計報告---多功能電子鐘
- 單片機(jī)數(shù)字時鐘課程設(shè)計--單片機(jī)多功能電子鐘設(shè)計
- 單片機(jī)微型機(jī)課程設(shè)計---多功能電子鐘
- 電子鐘課程設(shè)計--基于單片機(jī)的電子鐘設(shè)計
- 基于51單片機(jī)的多功能電子鐘設(shè)計
- 基于單片機(jī)的電子鐘課程設(shè)計
- 電子鐘單片機(jī)課程設(shè)計
- 基于單片機(jī)的電子鐘課程設(shè)計
- 單片機(jī)課程設(shè)計--電子鐘
- 單片機(jī)課程設(shè)計(電子鐘)
- 《單片機(jī)技術(shù)》電子鐘課程設(shè)計---數(shù)字電子鐘
- 單片機(jī)課程設(shè)計--基于單片機(jī)的電子鐘的設(shè)計
- 單片機(jī)課程設(shè)計--基于單片機(jī)的數(shù)字電子鐘
- 單片機(jī)課程設(shè)計---基于51單片機(jī)的電子鐘設(shè)計
- 電子鐘課程設(shè)計--多功能電子鐘
- 單片機(jī)多功能電子鐘畢業(yè)設(shè)計
- 單片機(jī)課程設(shè)計——數(shù)字電子鐘
評論
0/150
提交評論