數(shù)字鐘與溫度檢測設(shè)計_第1頁
數(shù)字鐘與溫度檢測設(shè)計_第2頁
數(shù)字鐘與溫度檢測設(shè)計_第3頁
數(shù)字鐘與溫度檢測設(shè)計_第4頁
數(shù)字鐘與溫度檢測設(shè)計_第5頁
免費預覽已結(jié)束,剩余25頁可下載查看

下載本文檔

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

文檔簡介

1、( 2014 2015 學年第一學期)單片機課程設(shè)計報告題目專業(yè)班級學號姓名指導教師所在學院數(shù)字鐘與溫度檢測設(shè)計通信 121 班201205016129錢鵬弘陳友榮許森信息科技學院2014 年 12 月目錄實習任務(wù):1單片機 AT89S52 的介紹:11 數(shù)字鐘的設(shè)計21.1.1 設(shè)計目的21.1.2 設(shè)計任務(wù)21.2 電路原理圖(注意:兩幅圖,分別為時間顯示和日期顯示)31.3 數(shù)字鐘程序流程圖41.4 實驗結(jié)果分析12 基于 DS18B20數(shù)字溫度測量模塊設(shè)計12.1.1 設(shè)計目的12.1.2 設(shè)計任務(wù)12.2 DS18B20 數(shù)字溫度傳感器概述82.3 DS18B20 原理圖112.4

2、溫度計程序流程圖132.5 實驗結(jié)果分析:143 實訓心得:15附錄(程序):17時鐘程序:17DS18B20程序:23實習任務(wù) :1:數(shù)字鐘設(shè)計2:基于 DS18B20 的溫度測量模塊設(shè)計單片機 AT89S52的介紹:1) MCS-51 單片機產(chǎn)品兼容2) 8K 字節(jié)在系統(tǒng)可編程 Flash 存儲器3) 1000 次擦寫周期4) 全靜態(tài)操作: 0Hz33Hz5) 三級加密程序存儲器6) 32 個可編程 I/O 口線7) 三個 16 位定時器 /計數(shù)器8) 八個中斷源9) 全雙工 UART 串行通道10) 低功耗空閑和掉電模式11) 掉電后中斷可喚醒12) 看門狗定時器13) 雙數(shù)據(jù)指針14)

3、 掉電標識符功能特性描述AT89S52是一種低功耗、高性能 CMOS8 位微控制器,具有 8K在系統(tǒng)可編程Flash存儲器。使用Atmel 公司高密度非易失性存儲器技術(shù)制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。片上 Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上, 擁有靈巧的 8位 CPU和在系統(tǒng)可編程Flash,使得 AT89S52 為眾多嵌入式控制應用系統(tǒng)提 供高靈活、超有效的解決方案。AT89S52 具有以下標準功能:8k 字節(jié) Flash,256 字節(jié) RAM , 32 位 I/O 口線,看門狗定時器, 2 個數(shù)據(jù)指針,三個 16 位定時器 /計數(shù)器,一個 6向

4、量 2級中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時鐘電路。另外, AT89S52可降至 0Hz 靜態(tài)邏輯操作,支持2 種軟件可選擇節(jié)電模式。空閑模式下, CPU停止工作,允許RAM 、定時器 /計數(shù)器、串口、中斷繼續(xù)工作。掉電保護方式下, RAM 內(nèi)容被保存,振蕩器被凍結(jié),單片機一切工作停止,直到下一個中斷或硬件復位為止。11 數(shù)字鐘的設(shè)計1.1.1 設(shè)計目的(1) 學習 AT89S52 內(nèi)部定時 /計數(shù)器的原理及應用(2) 了解使用單片機處理復雜任務(wù)的方法(3) 掌握多位數(shù)碼管動態(tài)顯示的方法(4) 掌握鍵盤的原理及應用1.1.2 設(shè)計任務(wù)用 AT89S52 單片機的定時 /計數(shù)器產(chǎn)生一秒的定時時間

5、, 作為秒計數(shù)時間,當一秒產(chǎn)生時,秒計數(shù)加 1。開機時顯示 08-30-00 的時間,然后按秒進行記時,計時滿 23-59-59 時,返回 00-00-00 重新計時。系統(tǒng)能顯示時間和日歷,能進行日歷和時間的校準。(1) 基本要求a. 用 AT89S51 單片機的定時 /計數(shù)器 T0 產(chǎn)生一秒的定時時間, 作為秒計數(shù)時間。b. 當一秒產(chǎn)生時,秒計數(shù)加 1。c. 開機時,顯示 08-30-00,并開始連續(xù)計時。 計時滿 23-59-59 時,返回 00-00-00 重新開始計時。d能顯示日歷:年、月、日,初始化時顯示2013 年 12 月 2 日,注意閏年和非閏年的每月的日期安排。e. 顯示內(nèi)容

6、能在時間和日歷之間切換。2( 2)高級要求a. 能進行小時、分、秒的校準,校準時被校準的內(nèi)容處于閃爍狀態(tài),校準完畢則返回正常顯示。b. 能進行年、月、日的校準,校準時被校準的內(nèi)容處于閃爍狀態(tài),校準完畢則返回正常顯示。1.2 電路原理圖(注意:兩幅圖,分別顯示時間和日期)運行,整點蜂鳴器響,LED 亮3校時,選中位光標閃爍1.3 數(shù)字鐘程序流程圖注意:流程圖必須包括主程序流程圖、中斷程序流程圖,重要子程序流程圖,流程圖用軟件VISIO 畫。4開始時間顯示初始化時間鍵盤判斷選位光標閃爍按鍵加時間加退出位選時間累加、進位結(jié)束按鍵減時間減主程序流程圖5開始秒+1秒>59?NO秒+1YES分+1,

7、秒+1分>59?NO分+1YES時+1開始開始位選按時=00鍵按下天+1判斷選擇哪一位4月6月9月11判斷月分月為30天1月3月5月7月8月10月12判斷加或減時間-1月為31天判斷閏年平年2月28天時間+1閏年2月29天整點?天=1?月+1位選按鍵選擇退出校時結(jié)束LED亮,喇叭響結(jié)束月>12?年+1結(jié)束61.4 實驗結(jié)果分析硬件方面:1、51 單片機 P0 口沒有上拉電阻,仿真會有結(jié)果,但是實體硬件電路則需要接上拉電阻。2、喇叭不能直接接5V 電源,最好用個二極管釋放多余能量保護喇叭。3、發(fā)光二極管( LED)不能一端直接接單片機,一端接地。因為單片機的電流無法驅(qū)動發(fā)光二極管(L

8、ED)點亮,所以要接5V 電源,單片機低電平時發(fā)光二極管(LED)導通并點亮。程序方面:1、1602 校時時選位的閃爍。2 基于 DS18B20數(shù)字溫度測量模塊設(shè)計2.1.1 設(shè)計目的(1)掌握 DS18B20 數(shù)字溫度傳感器的工作原理及使用方法(2)掌握對 DS18B20 轉(zhuǎn)換數(shù)據(jù)進行處理的方法(3)學習用數(shù)碼管顯示復雜數(shù)據(jù)的方法2.1.2 設(shè)計任務(wù)用 AT89S52 控制 DS18B20,讀取數(shù)據(jù),并對 DS18B20 轉(zhuǎn)換后的數(shù)據(jù)進行處理,最后在數(shù)碼管上顯示 DS18B20 測出的溫度。要求使用 6 位數(shù)碼管顯示,最高位為符號位,如果溫度值為正,不顯示,如7果溫度為負,則顯示負號;第24

9、 位顯示溫度值的整數(shù)部分,并在第 4 位數(shù)據(jù)上顯示小數(shù)點; 第 5 位顯示一位小數(shù), 最低位顯示攝氏度符號“ C”。(1) 基本要求a.用 AT89C51 控制 DS18B20,讀取溫度信息。b.對 DS18B20 轉(zhuǎn)換后的數(shù)據(jù)進行處理,轉(zhuǎn)換成實際溫度值。c. 將符號位、整數(shù)值和小數(shù)值分別存放在特定的存儲單元中。d. 在數(shù)碼管上顯示 DS18B20 測出的溫度,要求顯示出溫度值的整數(shù)部分及符號位,如果溫度值為正,不顯示,如果溫度為負,則顯示負號。(2) 高級要求a. 第 24 位顯示溫度值的整數(shù)部分,并在第4 位數(shù)據(jù)上顯示小數(shù)點。b.第 5 位顯示一位小數(shù)c.最低位顯示攝氏度符號“C”2.2

10、DS18B20數(shù)字溫度傳感器概述DS18B20 數(shù)字溫度計是DALLAS公司生產(chǎn)的 1 Wire,即單總線器件,具有線路簡單,體積小的特點。因此用它來組成一個測溫系統(tǒng),具有線路簡單,在一根通信線,可以掛很多這樣的數(shù)字溫度計,十分方便。DS18B20 產(chǎn)品的特點:a.只要求一個端口即可實現(xiàn)通信。b.在 DS18B20中的每個器件上都有獨一無二的序列號。c.實際應用中不需要外部任何元器件即可實現(xiàn)測溫。d.測量溫度范圍在 55 C 到 125 C 之間。e.數(shù)字溫度計的分辨率用戶可以從9 位到 12 位選擇。f.內(nèi)部有溫度上、下限告警設(shè)置。TO 92 封裝的 DS18B20 的引腳排列見圖4-2,其

11、引腳功能描述見表4-1。8圖 4-2 DS18B20 引腳結(jié)構(gòu)圖(底視圖)表 4-1 DS18B20 詳細引腳功能描述序號名稱引腳功能描述1GND地信號2DQ數(shù)據(jù)輸入 / 輸出引腳。3VDD可選擇的 VDD引腳。DS18B20 采用嚴格的單總線通信協(xié)議,以保證數(shù)據(jù)的完整性。該協(xié)議定義了幾種信號類型:復位脈沖、應答脈沖、寫0、寫 1、讀 0 和讀 1。除了應答脈沖所有這些信號都由主機發(fā)出同步信號??偩€上傳輸?shù)乃袛?shù)據(jù)和命令都是以字節(jié)的低位在前。初始化序列:復位脈沖和應答脈沖在初始化過程中,主機通過拉低單總線至少480s,以產(chǎn)生復位脈沖 (TX )。然后主機釋放總線并進入接收(RX)模式。當總線被

12、釋放后, 5k的上拉電阻將單總線拉高。 DS18B20 檢測到這個上升沿后,延時15s60s,通過拉低總線60s240s 產(chǎn)生應答脈沖。初始化波形如圖4-5 所示。圖 4-5 初始化脈沖 讀和寫時序9在寫時序期間,主機向DS18B20 寫入數(shù)據(jù);而在讀時序期間,主機讀入來自 DS18B20 的數(shù)據(jù)。在每一個時序,總線只能傳輸一位數(shù)據(jù)。讀/寫時序如圖 3-6 所示。寫時序存在兩種寫時序:“寫 1”和“寫 0”。主機在寫 1 時序向 DS18B20 寫入邏輯 1,而在寫 0 時序向 DS18B20 寫入邏輯 0。所有寫時序至少需要 60s,且在兩次寫時序之間至少需要 1s 的恢復時間。兩種寫時序均

13、以主機拉低總線開始。產(chǎn)生寫 1 時序:主機拉低總線后,必須在 15s 內(nèi)釋放總線,然后由上拉電阻將總線拉至高電平。產(chǎn)生寫 0 時序:主機拉低總線后,必須在整個時序期間保持低電平(至少 60s)。在寫時序開始后的15s60s 期間,DS18B20 采樣總線的狀態(tài)。 如果總線為高電平,則邏輯1 被寫入 DS18B20;如果總線為低電平,則邏輯0 被寫入 DS18B20。讀時序DS18B20 只能在主機發(fā)出讀時序時才能向主機傳送數(shù)據(jù)。所以主機在發(fā)出讀數(shù)據(jù)命令后,必須馬上產(chǎn)生讀時序,以便DS18B20 能夠傳送數(shù)據(jù)。所有讀時序至少 60s,且在兩次獨立的讀時序之間至少需要1s 的恢復時間。每次讀時序由

14、主機發(fā)起,拉低總線至少1s。在主機發(fā)起讀時序之后,DS18B20 開始在總線上傳送1 或 0。若 DS18B20 發(fā)送 1,則保持總線為高電平;若發(fā)送 0,則拉低總線。當傳送0 時, DS18B20 在該時序結(jié)束時釋放總線,再由上拉電阻將總線拉回空閑高電平狀態(tài)。DS18B20 發(fā)出的數(shù)據(jù)在讀時序下降沿起始后的15s 內(nèi)有效,因此主機必須在讀時序開始后的15s 內(nèi)釋放總線,并且采樣總線狀態(tài)。10圖 4-6 DS18B20 讀 /寫時序圖DS18B20 在使用時,一般都采用單片機來實現(xiàn)數(shù)據(jù)采集。只需將DS18B20 信號線與單片機 1 位 I/O 線相連,且單片機的1 位 I/O 線可掛接多個 D

15、S18B20 ,就可實現(xiàn)單點或多點溫度檢測。2.3 DS18B20原理圖11低于 27低溫報警12高于或等于31高溫報警2.4 溫度計程序流程圖注意:流程圖必須包括主程序流程圖、中斷程序流程圖,重要子程序流程圖,流程圖用軟件VISIO 畫。13開始初始化DS18B20讀溫度判斷正負標志qQ=0 不顯示負號溫度是否大于 30LED 亮喇叭報警溫度是否低于 27LED 亮喇叭報警顯示溫度結(jié)束2.5 實驗結(jié)果分析:硬件方面:Q=1 顯示負號LED 不亮喇叭不報警LED 不亮喇叭不報警1、因為 DS18B20是單總線溫度傳感器,數(shù)據(jù)線是漏極開路,如14果 DS18B20沒接電源,則需要數(shù)據(jù)線強上拉,給

16、DS18B20供電;如果DS18B20接有電源,則需要一個上拉電阻穩(wěn)定工作。2、51 單片機 P0 口沒有上拉電阻,仿真會有結(jié)果,但是實體硬件電路則需要接上拉電阻。3、喇叭不能直接接5V 電源,最好用個二極管釋放多余能量保護喇叭。4、發(fā)光二極管( LED)不能一端直接接單片機,一端接地。因為單片機的電流無法驅(qū)動發(fā)光二極管(LED)點亮,所以要接5V 電源,單片機低電平時發(fā)光二極管(LED)導通并點亮。5、硬件實物中,七段數(shù)碼管要用74HC573驅(qū)動。程序方面:1、數(shù)碼管位選和顯示麻煩一點,需要通過計算,一位一位的顯示。2、如果要零下 10報警,程序先判斷負號標志即零下的標志,然后溫度大于10才

17、會在零下報警,因為在顯示零下的時候溫度和符號是分開的。3 實訓心得:本次單片機課程設(shè)計是一個使用 Protues 設(shè)計工具、協(xié)同使用 Keil 編程軟件制作小萬年歷的題目。 本來以為會很簡單, 因為課本上就有很接近的習題和講解, 所以開始我也沒有很在意, 以至時間越拖越后,最后只能趕工完成。解題過程中,我更加感到之前的判斷是多么的天真,單片機的的C語言表示法很多語法與之前學過的C語言不同,特別是單片機的存儲15結(jié)構(gòu)和指令計數(shù)方式是從前沒有學到的。 不過時間緊迫, 只能臨時抱佛腳啃啃教材。 在整個過程中, 我深刻地感受并理解到語言的簡便性和豐富性。不管是從實現(xiàn)功能的角度看還是從數(shù)據(jù)類型、架構(gòu)上,

18、都可以看出語言是一個十分優(yōu)秀的程序開發(fā)語言。 雖然匯編有程序段短小的巨大優(yōu)勢,不過對于我這樣新手而言,能用 C語言完成這個題目已經(jīng)很不容易了。這次作業(yè)讓我了解怎么從不同的角度去分析同一個問題,讓我們有更多更廣的思路去處理解題時遇到的難點和要點。 從解決問題的過程中也可以熟悉和了解 C語言和 Protues 程序的不同用法和功能, 而各種原有的模板使得我可以用高效,簡潔的思路、觀點來解題。這樣的探索過程也是很愉悅的, 特別是看到自己也能編寫一個起碼有點樣子的仿真程序的時候。 雖然我所完成的作業(yè)本身就是很簡單的一個基本應用,但在這過程中我所學到的東西令我終生受用。在如此緊的時間內(nèi)(好吧,由于之前所

19、述的原因,其實作業(yè)很早就布置了,只是我個人因素使得真正在做的時間很短) 完成這次作業(yè),甚至我還只是對所應用的語言和軟件一知半解的情況下, 沒有同學和老師的幫助,要完成它簡直是不可想象的。 在我落后進度那么多的情況下,多謝有我的同學的幫助,特別是我的單片機的教材找不到時,他分享他的學習資料,使得我得到可以完成這次課程設(shè)計的客觀條件。在學習相關(guān)語言知識和軟件應用時, 也多謝老師和其他同學給予的教導和提點。有這么多的幫助,我相信,只要堅持不懈的努力,一定能夠戰(zhàn)勝重重的困難,完成此門課程最后一次大作業(yè)!最后,我完成了這次作業(yè),望老師指正。參考文獻1. 唐穎 程菊花 任條娟 .單片機原理與應用及 C51

20、 程序設(shè)計 .北京大學出版社 .2008.8162. 唐穎 程菊花 黃震梁 陳友榮 .單片機原理及應用實驗指導書 .3. 譚浩強 .C 程序設(shè)計 .清華大學出版社 .20054. PROTUER MCS-51 教學實驗指導書 .附錄(程序):時鐘程序:注意:90%以上程序代碼必須包含注釋#include<reg52.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedintsbitlcdrs=P25;/ 數(shù) 據(jù) 命令選擇端sbitlcdrw=P26;/ 數(shù) 據(jù) 讀寫選擇端sbitlcden=P2

21、7;/使能端sbit s1=P10;/ 定 義 按鍵管腳sbit s2=P11;/ 定 義 按鍵管腳sbit s3=P12;/ 定義按鍵管腳sbit rd=P17;sbit led=P31;sbit beep=P30;ucharaa,miao,shi,fen,day,mon,week,year;ucharconsttable="2014-11-28 FRI"/ 初始化顯示屏開機顯示的年月日時分秒星期ucharconsttable1="07:59:55"ucharcodetable2="MONTUEWEDTHUFRISATSUN"/ 定

22、義星期的數(shù)組uchar count,s1num;voiddelay(uint z);TR0=1;/voidinit();定時器 /計數(shù)器啟動voidwrite_com(uint com);beep=0;voidwrite_date(uint date);/初始化喇叭,不響voidwrite_sfm(ucharadd,ucharled=1;date);/初始化 LED ,不亮voidwrite_nyr(ucharadd,uchardate);while(1)voidkeyscan();keyscan();voiddisplayweek();/ 執(zhí)行按鍵掃描子程序voidmain()if(aa=2

23、0)init();aa=0;year=2014;/ 初始miao+;化時間/ 秒+1mon=11;if(miao>5)week=5;/大于 5秒day=28;LED 熄滅,喇叭不響shi=7;fen=59;led=1;miao=55;/LED熄TMOD=0x01;/滅設(shè)定單片機定時器 T0的工作模beep=0;式為模式 1/喇叭不TH0=0x3c;/給定響時器 T0 設(shè)定時初值。T0 高 8 位,低 8 位送初值if(miao=60)TL0=0xB0;/如果秒等于 60EA=1;/開總中斷miao=0;ET0=1;/ 秒賦值為 0允許定時器 0 中斷fen+;17/分 +1設(shè)定不同月份的

24、天數(shù)if(fen=60)year+;/如果分等于if(day>30)/年 +160/如果天大于 30day=1;/天賦值為 1fen=0;/ 分write_nyr(4,year-8);賦值為 0else if(mon=2)/在選中的位置顯示年if(miao=0&&fen=0)/如果是 2 月/如果秒等于00,分等于00,即為整點if(year%400=0)|(year%4led=0;=0)&&(year%100!=0)/LED/判斷閏年亮beep=1;if(day>29)/喇叭/如果大于 29 天響day=1;/天賦值為 1shi+;/else if

25、(day>28)時+1/否則天大于 28day=1;if(shi=24)/如果/天賦值為 1時等于 24elseshi=0;/時賦if(day>31)值為 0/否則天大于 31day=1;day+;/ 日+1/天賦值為 1week+;/星期if(day=1)+1/如果天等于 1mon+;if(week=8)/如果/月 +1星期等于 8if(mon>12) / 如 果 月week=1;/星期大于 12賦值為 1if(mon=4|mon=6|mon=mon=1;9|mon=11)/月賦值為 1write_nyr(7,mon);/ 在選中的位置顯示月write_nyr(10,day

26、);/在選中的位置顯示日displayweek();/執(zhí)行計算星期的子程序write_sfm(4,shi);/在選中的位置顯示時write_sfm(7,fen);/在選中的位置顯示分write_sfm(10,miao);/在選中的位置顯示秒voidwrite_sfm(ucharadd,uchar18date)TL0=0xB0;P0=com;/低八位delay(5);uint si,ge;設(shè)初值lcden=1;/使 能si=date%100/10;aa+;端打開/計算十delay(5);位的數(shù)字voidinit()lcden=0;/使 能ge=date%10;/初始化液晶屏端關(guān)閉/ 計算各位的數(shù)

27、字uint i;voidwrite_date(uint date)write_com(0x80+0x40+addwrite_com(0x38););/在原來位置delay(5);lcdrs=1;/數(shù)據(jù)命令上數(shù)字加 1write_com(0x01);選擇端打開write_date(0x30+si);delay(5);lcdrw=0;/數(shù)據(jù)讀寫/寫十位數(shù)字write_com(0x0c);關(guān)閉write_date(0x30+ge);delay(5);P0=date;/寫個位數(shù)字write_com(0x06);delay(5);delay(5);lcden=1;/使能端write_com(0x80);

28、打開voidwrite_nyr(uchar add,uchardelay(5);delay(5);date)lcden=0;/使能端for(i=0;i<16;i+)關(guān)閉uint si,ge;si=date%100/10;write_date(tablei);voiddelay(uint z)/顯示年月日計算十位的數(shù)字星期uint i,j;ge=date%10;delay(5);for(i=0;i<z;i+)for(j=0;j<110;j+);/計算各位的數(shù)字write_com(0x80+0x40);write_com(0x80+add);delay(5);void keysc

29、an()/在原for(i=0;i<15;i+)/三鍵掃描子程序來位置上數(shù)字加 1write_date(0x30+si);write_date(table1i);rd=0;/寫十位/ 顯示時分秒if(s1=0)數(shù)字delay(5);/判斷按鍵按write_date(0x30+ge);下/寫個位數(shù)字delay(10);voidwrite_com(uint com)/ 延時消抖if(s1=0)voidxtimer0()interrupt 1s1num+;/外部中斷l(xiāng)cdrs=0;/數(shù) 據(jù)while(!s1);命令選擇端關(guān)閉if(s1num=1)TH0=0x3c;lcdrw=0;/數(shù) 據(jù)/判斷按

30、鍵按下/ 高八位設(shè)初值讀寫關(guān)閉19TR0=0;write_com(0x80+5);/閃爍/ 關(guān)/位選 +閃爍閉定時器 /計數(shù)器if(s1num=8)write_com(0x80+0x40+11);if(s1num=2)/位選閃爍s1num=0;write_com(0x0f);TR0=1;fen+;/打開光標/打開定時器 /計數(shù)器if(fen=60)if(s1num=2)write_com(0x0c);fen=0;/關(guān)閉光標閃爍write_sfm(7,fen);write_com(0x80+0x40+8);/寫分/ 位選 +閃爍write_com(0x80+0x40+8);if(s1num=3)

31、if(s1num!=0)/閃爍write_com(0x80+0x40+5);if(s1num=3)/位選 +閃爍if(s2=0)if(s1num=4)/按鍵加程序shi+;delay(10);if(shi=24)write_com(0x80+15);if(s2=0)/位選 +閃爍shi=0;if(s1num=5)while(!s2);write_sfm(4,shi);/寫時if(s1num=1)write_com(0x80+11);write_com(0x80+0x40+5);/位選 + 閃爍/閃爍miao+;if(s1num=6)if(miao=60)if(s1num=4)write_com

32、(0x80+8);miao=0;/ 位選 +閃爍week+;write_sfm(10,miao);if(s1num=7)/寫秒if(week>7)/如果星期大于 7write_com(0x80+0x40+11);20week=1;/回到星期一if(s1num=2)if(s1num=7)displayweek();/星期顯示fen-;year+;write_com(0x80+15);if(fen=-1)/閃爍if(year=100)/年等于 100fen=59;if(s1num=5)year=1;write_sfm(7,fen);/ 年賦值為 1/ 寫分day+;write_nyr(4,y

33、ear);write_com(0x80+0x40+8);/閃爍if(day>31)write_com(0x80+5);/ 如果天大于31if(s1num=3)day=1;/天賦值為1if(s3=0)/shi-;write_nyr(10,day);按鍵減程序/ 寫天if(shi=-1)delay(10);write_com(0x80+11);if(s3=0)shi=23;/閃爍write_sfm(4,shi);while(!s3);/寫時if(s1num=6)if(s1num=1)write_com(0x80+0x40+5);/閃爍mon+;miao-;if(mon>12)if(s1

34、num=4)/如果月大于12if(miao=-1)mon=1;miao=59;week-;/月賦值為1write_sfm(10,miao);if(week=0)write_nyr(7,mon);/寫秒/寫月week=7;write_com(0x80+0x40+11);write_com(0x80+8);/閃爍displayweek();/閃爍/ 執(zhí)行星期判斷和顯21示的程序中第 7, 8,9 個字母year=1;write_com(0x80+15);write_date(table26);/ 閃爍write_nyr(4,year);/寫年write_date(table27);if(s1num

35、=5)write_com(0x80+5);write_date(table28);/閃爍break;day-;case 4:write_com(0x80+13);if(day=0)/顯示 table2數(shù)組中第 10,11, 12 個字母day=31;void displayweek()write_date(table29);write_nyr(10,day);switch(week)/ 寫天write_date(table210);write_com(0x80+11);case 1:write_com(0x80+13);/ 閃爍/顯示 table2 數(shù)組中第 1, 2,3 個字母write_d

36、ate(table211);if(s1num=6)write_date(table20);break;write_date(table21);case 5:write_com(0x80+13);mon-;/ 顯示 table2 數(shù)組write_date(table22);中第 13, 14, 15 個字母if(mon=0)break;write_date(table212);mon=12;case 2:write_com(0x80+13);write_nyr(7,mon);/顯示 table2 數(shù)組中write_date(table213);/寫月第 4, 5,6 個字母write_com(0

37、x80+8);write_date(table23);write_date(table214);/閃爍write_date(table24);break;if(s1num=7)write_date(table25);case 6:write_com(0x80+13);/顯示 table2數(shù)break;組中第 16,17,18 個字母year-;case 3:write_com(0x80+13);write_date(table215);if(year=0)/顯示 table2 數(shù)組22case 7:write_com(0x80+13);write_date(table216);/ 顯示 table2數(shù)組中第 19, 20, 21 個字母write_date(table220);write_date(table217);write_date(table218);break;break;write_date(table219);DS18B20程序:注意:

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論