版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、摘要AT89S52單片機(jī)完全兼容51單片機(jī),列單片機(jī)的應(yīng)用日趨廣泛。本文設(shè)計(jì)了一種基ATC89S52單片機(jī),使用Dallas的一線制數(shù)字溫度計(jì)DS18B20作為溫度傳感器,實(shí)時(shí)時(shí)鐘芯片DS1302提供當(dāng)前日期和時(shí)間數(shù)據(jù),并將實(shí)時(shí)的日期和溫度數(shù)據(jù)字符型液晶顯示器LCD1602上顯示,本次設(shè)計(jì)的智能電子鐘鐘采用數(shù)字電路對日期和溫度進(jìn)行控制設(shè)置,采用LCD液晶顯示,以24小時(shí)的計(jì)時(shí)方式,根據(jù)LCD顯示原理進(jìn)行顯示,定時(shí)器計(jì)數(shù)。在本次設(shè)計(jì)中,電路具有顯示日期、時(shí)間、溫度的根本功能,還可以實(shí)現(xiàn)對它們的調(diào)整。本次設(shè)計(jì)要到達(dá)的目的是:具有時(shí)間顯示和手動校對功能,24小時(shí)制;具有年、月、日顯示和手動校對功能;
2、具有顯示當(dāng)前星期的功能;具有鬧鈴功能;具有環(huán)境溫度采集功能;掉電后無需重新設(shè)置時(shí)間和日期;系統(tǒng)不但接口設(shè)計(jì)簡單、便于控制,而且具有很好的人機(jī)界面,可以對當(dāng)前的時(shí)間進(jìn)行調(diào)整。關(guān)鍵字:單片機(jī) 智能電子鐘 數(shù)字電路 1 設(shè)計(jì)的任務(wù)1.1 課題開發(fā)背景隨著電子科技的飛速開展,電子技術(shù)正在逐漸改善著人們的學(xué)習(xí)、生活、工作,因此開發(fā)本系統(tǒng)希望能夠給人們多帶來一點(diǎn)生活上的樂趣?;诋?dāng)前市場上的玩具市場需求量大,其中智能電子鐘就是一個(gè)很好的應(yīng)用方面,利用單片機(jī)能完成根本顯示時(shí)間和日期的功能,同時(shí)還能顯示溫度的。1.2 課題研究的目的和意義利用AT89S52單片機(jī)自帶資源,設(shè)計(jì)一款能實(shí)現(xiàn)顯示時(shí)間和其它的智能功能
3、的電子鐘。1.3 課題的主要研究工作本課題設(shè)計(jì)的主要工作有以下幾個(gè)方面:1設(shè)計(jì)出能實(shí)時(shí)的檢測溫度。2液晶屏可以顯示當(dāng)前的時(shí)間、日期、星期。3通過按鍵可以通過對上述內(nèi)容進(jìn)行調(diào)整。4具有定時(shí)功能和蜂鳴器報(bào)時(shí)功能。5根據(jù)定時(shí)功能來控制收音機(jī)和燈具的開關(guān)。 2總體方案設(shè)計(jì)2.1 設(shè)計(jì)內(nèi)容完成基于LCD液晶顯示的多功能數(shù)字鐘的設(shè)計(jì)。要求該電路具有顯示日期、時(shí)間、溫度的根本功能,還可以實(shí)現(xiàn)對它們的調(diào)整。本次設(shè)計(jì)要到達(dá)的目的是:具有時(shí)間顯示和手動校對功能,24小時(shí)制;具有年、月、日顯示和手動校對功能;具有顯示當(dāng)前星期的功能;具有鬧鈴功能;具有環(huán)境溫度采集功能;掉電后無需重新設(shè)置時(shí)間和日期;采用單片機(jī)AT89
4、S52芯片以及相關(guān)的芯片來實(shí)現(xiàn)多功能的數(shù)字鐘。該設(shè)計(jì)選用一線制溫度計(jì)DS18B20 作為溫度傳感器,實(shí)時(shí)時(shí)鐘芯片DS1302提供當(dāng)前日期和時(shí)間數(shù)據(jù),并將實(shí)時(shí)的日期和溫度數(shù)據(jù)在字符型液晶顯示器LCD1602上顯示出來。本文設(shè)計(jì)了一種基AT89S52單片機(jī),使用Dallas的一線制數(shù)字溫度計(jì)DS18B20作為溫度傳感器,實(shí)時(shí)時(shí)鐘芯片DS1302提供當(dāng)前日期和時(shí)間數(shù)據(jù),并將實(shí)時(shí)的日期和溫度數(shù)據(jù)字符型液晶顯示器LCD1602上顯示,本次設(shè)計(jì)的多功能數(shù)字鐘采用數(shù)字電路對日期和溫度進(jìn)行控制設(shè)置,我們采用LCD液晶顯示,以24小時(shí)的計(jì)時(shí)方式,根據(jù)LCD顯示原理進(jìn)行顯示,定時(shí)器計(jì)數(shù)。在本次設(shè)計(jì)中,電路具有顯示
5、日期、時(shí)間、溫度的根本功能,還可以實(shí)現(xiàn)對它們的調(diào)整。本次設(shè)計(jì)要到達(dá)的目的是:具有時(shí)間顯示和手動校對功能,24小時(shí)制;具有年、月、日顯示和手動校對功能;具有顯示當(dāng)前星期的功能;具有鬧鈴功能;具有環(huán)境溫度采集功能;掉電后無需重新設(shè)置時(shí)間和日期。系統(tǒng)不但接口設(shè)計(jì)簡單、便于控制,而且具有很好的人機(jī)界面,可以通過幾個(gè)按鍵對當(dāng)前的時(shí)間進(jìn)行調(diào)整,對鬧鐘進(jìn)行隨意設(shè)置,以及溫度超過上下限會自動進(jìn)行報(bào)警LED亮等功能。其原理框圖如下列圖2.1所示:串行通信接口電路LCD1602液晶顯示鍵盤控制電路時(shí)鐘電路供電電路蜂鳴報(bào)時(shí)AT89S52單片機(jī)溫度采集電壓轉(zhuǎn)換電路圖2.1 數(shù)字鐘原理框圖在現(xiàn)代SOC技術(shù)的引領(lǐng)下,人們
6、對低故障、高實(shí)時(shí)、高可靠、高穩(wěn)定的性能更加青睞,其抗干擾性強(qiáng),加密性強(qiáng),超低功耗,可以遠(yuǎn)程升級,內(nèi)部有專用復(fù)位電路,價(jià)格也較廉價(jià),結(jié)合本設(shè)計(jì)的要求及綜合以上比擬的情況,我們選擇用AT89S52單片機(jī)芯片來實(shí)現(xiàn)本次設(shè)計(jì)。3單元模塊設(shè)計(jì) 溫度采集電路DS18B20是美國Dallas半導(dǎo)體公司生產(chǎn)的一線制數(shù)字溫度傳感器。測量范圍為- 50 + 125 ,精度可達(dá)0. 1 ,不需A /D 轉(zhuǎn)換電路,直接將溫度值轉(zhuǎn)換成數(shù)字量。溫度數(shù)據(jù)的傳輸,只需要一根數(shù)據(jù)線,直接將數(shù)據(jù)線與單片機(jī)的P3.6口相連接。其圖如下3.1所示:圖3.1溫度采集 DS1302時(shí)鐘電路DS1302是美國DALLAS公司推出的一種高性
7、能、低功耗、帶RAM的實(shí)時(shí)時(shí)鐘芯片,它可以對年、月、日、周日、時(shí)、分、秒進(jìn)行計(jì)時(shí)。DS1302用于數(shù)據(jù)記錄,特別是對某些具有特殊意義的數(shù)據(jù)點(diǎn)的記錄上,能實(shí)現(xiàn)數(shù)據(jù)與出現(xiàn)該數(shù)據(jù)的時(shí)間同時(shí)記錄。DS1302提供2個(gè)電源引腳:一個(gè)(VCC2)接主電源;另一個(gè)(VCC1)接備用電源。其圖如下3.2所示:圖3.2 DS1302時(shí)鐘電路 串行通信接口電路MAX232是電壓轉(zhuǎn)換芯片,將TTL電平轉(zhuǎn)換成可以和電腦串口匹配的電壓。DB9通過下載線纜與電腦連接,可以將程序下載到單片機(jī)上。其圖如下3.3所示:圖3.3 RS232串行通信 電源電路 為了便于使用,本次采用了把交流的220V經(jīng)變壓器再經(jīng)LM7805B 變
8、為單片機(jī)所使用的5V電源,如圖3.4。圖3.4 電源電路 按鍵電路本次設(shè)計(jì)中用到了4*4的矩陣鍵盤列陣,通過賦低電平選中其中一列,:圖3.5 按鍵控制電路液晶顯示顯示電路本設(shè)計(jì)中會將時(shí)分秒,年月日周以及鬧鐘的設(shè)置,溫度全部都會顯示到液晶LCD1602上面,其具有162能夠顯示所有英文大小寫字母,0到9十個(gè)數(shù)字以及一些常用的符號。該液晶在4.5V到5.5V電壓范圍內(nèi)都能正確工作,平均工作電流為2mA。液晶HS162共16個(gè)管腳。但是由于原理圖中電路很簡單并且只用到接插件所以此處沒有給出原理圖。3.2 特殊器件介紹3.2.1 AT89S52單片機(jī)芯片AT89S52功能特性描述AT89S52是一種低
9、功耗、高性能CMOS8位微控制器,具有 8K 在系統(tǒng)可編程Flash 存儲器。使用Atmel 公司高密度非易失性存儲器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得AT89S52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。 AT89S52具有以下標(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級中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時(shí)鐘電路。另外,AT89S52
10、可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。其圖如下3.6所示:圖3.6 AT89S52引腳圖 DS1302介紹DS1302是美國DALLAS公司推出的一種高性能、低功耗的實(shí)時(shí)時(shí)鐘芯片,附加31字節(jié)靜態(tài)RAM,采用SPI三線接口與CPU進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號和RAM數(shù)據(jù)。實(shí)時(shí)時(shí)鐘可提供秒、分、時(shí)、日、星期、月、年,一個(gè)月小于31天時(shí)可自動進(jìn)行調(diào)整,且具有閏年補(bǔ)償功能。工作電壓寬
11、達(dá)2.55.5V。采用雙電源供電主電源和備用電源,可設(shè)置備用電源充電方式,提供了對后背電源進(jìn)行。DS1302是以下的特性:雙電源管腳用于主電源和備份電源供給,Vcc1為課編程涓流充電電源,附加七個(gè)字節(jié)存儲器。其外部引腳分配如下圖:圖3.7 DS1302的外部時(shí)鐘引腳分配 溫度傳感器DS18B20采用獨(dú)特的一線接口,可用數(shù)據(jù)總線供電,電壓范圍為3.0 V至5.5 V 無需備用電源。測量溫度范圍為-55至+125。溫度傳感器可編程的分辨率為912位 溫度轉(zhuǎn)換為12位數(shù)字格式最大值為750毫秒 用戶可定義的非易失性溫度報(bào)警設(shè)置應(yīng)用范圍包括恒溫控制,工業(yè)系統(tǒng),消費(fèi)電子產(chǎn)品溫度計(jì),或任何熱敏感系統(tǒng)。DS
12、18B20內(nèi)部結(jié)構(gòu)主要由四局部組成:64位光刻ROM、溫度傳感器、非揮發(fā)的溫度報(bào)警觸發(fā)器TH和TL、配置存放器。該裝置信號線高的時(shí)候,內(nèi)部電容器儲存能量通由1線通信線路給片子供電,而且在低電平期間為片子供電直至下一個(gè)高電平的到來重新充電。圖3.8 DS18B20的管腳 液晶顯示LCD1602HS1602是目前最常用的字符液晶之一。具有162能夠顯示所有英文大小寫字母,0到9十個(gè)數(shù)字以及一些常用的符號。該液晶在4.5V到5.5V電壓范圍內(nèi)都能正確工作,平均工作電流為2mA。液晶HS162共16個(gè)管腳.RS為存放器選擇信號,RW為讀寫選擇信號,通過這兩種信號的不同組合可對液晶進(jìn)行讀寫命令和讀寫數(shù)據(jù)
13、的操作。1602液晶模塊內(nèi)部的字符發(fā)生存儲器CGROM)已經(jīng)存儲了160個(gè)HS162是目前最常用的字符液晶之一。具有162能夠顯示所有英文大小寫字母,0不同的點(diǎn)陣字符圖形,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫、常用的符號等,每一個(gè)字符都有一個(gè)固定的代碼,比方大寫的英文字母“A的代碼是01000001B41H,顯示時(shí)模塊把地址41H中的點(diǎn)陣字符圖形顯示出來,我們就能看到字母“A。在操作液晶時(shí),先要對液晶進(jìn)行初始化,即進(jìn)行最初是的命令設(shè)置。要設(shè)置液晶的工作方式設(shè)置,顯示狀態(tài)設(shè)置,輸入方式設(shè)置等。最后再向液晶寫入數(shù)據(jù),即寫入想要顯示字符的ASCII碼。4軟件設(shè)計(jì)4.1 軟件選擇本次設(shè)計(jì)選擇的軟件
14、主要是Keil uVision3。 Keil公司成立于1986年,主要開發(fā)、制造和銷售嵌入式8051、251、ARM、XC16x/C16x/ST10等微控制器軟件開發(fā)工具,提供ANSI C編譯器、宏匯編程序、實(shí)時(shí)管理、調(diào)試和模擬器、綜合評估板等。Keil公司的uVision把編輯、編譯、鏈接和仿真等模式打包成集成開發(fā)環(huán)境,當(dāng)然其集成的C51編譯器肯定跟Franklin公司的相關(guān)模塊肯定有交叉性,uVision還包含工程管理和調(diào)試器等非常有用的功能。 本次設(shè)計(jì)的系統(tǒng)軟件設(shè)計(jì)主要包括主程序設(shè)計(jì)和溫度采集子模塊程序設(shè)計(jì)、日歷日期數(shù)據(jù)子模塊程序、按鍵控制子模塊程序和LCD液晶顯示子模塊程序設(shè)計(jì)等。主程
15、序主要完成器件的初始化,并判斷有無按鍵按下,并根據(jù)判斷的結(jié)果調(diào)用相應(yīng)的子模塊程序;而溫度采集子模塊程序和日歷日期數(shù)據(jù)子模塊程序完成相應(yīng)的數(shù)據(jù)采集、處理和保存,按鍵處理子模塊程序完成日期和鬧鐘的設(shè)置,而液晶顯示子模塊只要把上述子模塊儲存的數(shù)據(jù)送去顯示即可。系統(tǒng)總的流程圖如下列圖所示:開始日歷日期數(shù)據(jù)處理溫度數(shù)據(jù)處理液晶顯示按鍵掃描按鍵按下按鍵控制初始化N Y 時(shí)間日期的修改 圖4.1 主程序流程 溫度采集流程DS18B20在進(jìn)行溫度采集時(shí),必須首先進(jìn)行初始化,然后發(fā)ROM操作指令,再發(fā)存儲器操作指令,最后才能傳輸數(shù)據(jù)。每次對器件進(jìn)行讀寫操作時(shí), 必須嚴(yán)格按照DS18B20 的時(shí)序要求。因?yàn)闇囟葦?shù)
16、據(jù)在DS18B20中是以2的補(bǔ)碼形式存放的,且低4位為小數(shù)局部, 4位到10位為整數(shù)局部,其余為符號位,因此在讀出2個(gè)字節(jié)的溫度數(shù)據(jù)后,首先求一次補(bǔ)碼得到原碼,再將數(shù)據(jù)別離為整數(shù)溫度值和小數(shù)溫度值,整數(shù)局部的值可通過數(shù)據(jù)交換指令得到,而小數(shù)溫度值局部可通過查表得到。因?yàn)樵谝壕э@示器上顯示的是字符的ASCII碼,因而還要轉(zhuǎn)換為BCD,在加30H轉(zhuǎn)換為ASC碼。其流程圖如下所示:讀溫度數(shù)據(jù)初始化求原碼溫度數(shù)據(jù)的整數(shù)和小數(shù)處理轉(zhuǎn)為ASCII碼送去顯示圖4.3 溫度采集流程 日期數(shù)據(jù)處理流程對時(shí)鐘芯片的操作主要包括一是將芯片中的日期等數(shù)據(jù)讀出來,二是在進(jìn)行日期等設(shè)置時(shí)將設(shè)置的數(shù)據(jù)寫入芯片,這也是按鍵處
17、理時(shí)的主要內(nèi)容。無論是讀數(shù)據(jù)還是寫數(shù)據(jù)滿足DS1302 對時(shí)序的要求。而對芯片各個(gè)數(shù)據(jù)局部的訪問是通過地址進(jìn)行的,且讀和寫的地址不一樣。讀出的數(shù)據(jù)同樣要轉(zhuǎn)為ASC II碼,然后儲存起來,等待送去顯示,流程圖如下列圖所示:初始化讀日期數(shù)據(jù)數(shù)據(jù)處理將設(shè)置的數(shù)據(jù)寫入芯片轉(zhuǎn)為ASCII送去顯示5結(jié)論本設(shè)計(jì)在功能上根本上完成了本次智能化電子系統(tǒng)設(shè)計(jì)的要求,但是也尚存在一些問題。由于時(shí)間倉促和自身水平有限,對于電路的可靠性,穩(wěn)定性等參數(shù)還未做過詳細(xì)的測試。還可以通過修改程序,完成字符或數(shù)字的滾動顯示。這些事我們組尚未完成的附加功能。6總結(jié)與體會6.1 設(shè)計(jì)小結(jié)在本次設(shè)計(jì)中,我們最終完本錢次智能化電子系統(tǒng)設(shè)
18、計(jì)系的根本要求及功能,并在此根底了對系統(tǒng)功能作了擴(kuò)展,增加了鬧鐘設(shè)置以及溫度測試等局部。在設(shè)計(jì)開始前我們對各個(gè)模塊進(jìn)行了詳細(xì)的分析和設(shè)計(jì)準(zhǔn)備工作,設(shè)計(jì)過程中,積極參與完成各個(gè)技術(shù)實(shí)現(xiàn)的難點(diǎn),更進(jìn)一步地熟悉了芯片的結(jié)構(gòu)及掌握了各芯片的工作原理和具體的使用方法。6.2 設(shè)計(jì)收獲及改良通過本次設(shè)計(jì),我們對單片機(jī)有了更深刻的認(rèn)識,也從實(shí)踐的例子中去感受到了單片機(jī)設(shè)計(jì)給我們設(shè)計(jì)帶來的改變與進(jìn)步。我們不僅掌握Keil uVision3軟件的使用,與此同時(shí),我們還對電子設(shè)計(jì)的思路有了更多的認(rèn)識。這次對多功能數(shù)字鐘的設(shè)計(jì)與制作,讓我了解設(shè)計(jì)電路的程序,也了解了關(guān)于智能電子鐘的原理與設(shè)計(jì)理念。在此次的智能電子鐘
19、設(shè)計(jì)過程中,更進(jìn)一步地熟悉了芯片的結(jié)構(gòu)及掌握了各芯片的工作原理和具體的使用方法。總之是受益匪淺。這為自己今后進(jìn)一步深化學(xué)習(xí),積累了一定珍貴經(jīng)驗(yàn)。6.3 致謝此次智能電子鐘設(shè)計(jì)中,我要特別感謝我的指導(dǎo)老師的熱情關(guān)心和悉心指導(dǎo)。讓我從中更加的認(rèn)識了單片機(jī)的功能的實(shí)現(xiàn),同時(shí)也要感謝班內(nèi)的一些同學(xué)的幫助,在設(shè)計(jì)中幫我解決一些設(shè)計(jì)方面的困難。7參考文獻(xiàn)1 萬勝前.基于KeilC51軟件的電子鐘設(shè)計(jì)與制作J.鄂州大學(xué)學(xué)報(bào),2007年第2期3 彭小軍.用單片機(jī)實(shí)現(xiàn)電子鐘J.新余高專學(xué)報(bào),2004年4月第9卷第2期7 李曉靜等.液晶顯示控制器與單片機(jī)的接口及編程J.電子技術(shù),2004年第6期附錄:設(shè)計(jì)原理圖:
20、PCB圖:實(shí)現(xiàn)程序:/介紹整個(gè)程序所包含的頭文件#include#include#include#include#include/定義#define uchar unsigned char#define uint unsigned intUchar u,u1,u2,u3,u4,u5,u6,u7,u8,alarmOn;uint fen,miao,shi,nian,yue,ri,anshu,zh;uchar linshi,a,a1,a2,a3,a4,a5,a6;uint tab3;sbit rd=P35;sbit P30=P30;sbit P31=P31;sbit P32=P32;sbit P33
21、=P33;sbit beep=P33;sbit ds1302_rst=P02;sbit ds1302_sclk=P00;sbit ds1302_io=P01;sbit ACC7=ACC7;sbit B1=B0;sbit lcd1602_en=P05;sbit lcd1602_rw=P06;sbit lcd1602_rs=P07;#define lcd1602_data P2uchar low,high; /存儲溫度的高位值和低位值sbit DQ=P36; / - 定義通信端口sbit D1=P07;uchar gw,sw,w4,tpl,tph;uint bai,b;/主函數(shù)局部void fen
22、jia (uchar rddr,uchar wddr,uchar yddr,uchar fenjiajian)/鍵盤掃描u=ds1302_read(rddr);fen=(u&0x70)4)*10+(u&0x0f);/進(jìn)制轉(zhuǎn)換if(fenjiajian=1)fen+;if(fen=60)fen=0;elsefen-;if(fen+1)=0)fen=59;ds1302_write(wddr,(fen/10)4)*10+(a4&0x0f);/進(jìn)制轉(zhuǎn)換if(shijiajian=1)shi+;if(shi=24)shi=0;elseshi-;if(shi+1)=0)shi=23;ds1302_writ
23、e(wddr,(shi/10)4)*10+(a&0x0f);/write_sfm(6,miao)lcd1602_writecom(0x80+0x40+6);lcd1602_writecom(0x0f);lcd1602_writecom(0x80+0x40+6);if(anshu=2)u1=ds1302_read(0x83)fen=(u1&0x70)4)*10+(u1&0x0f);write_sfm(3,fen);lcd1602_writecom(0x80+0x40+3);lcd1602_writecom(0x0f);lcd1602_writecom(0x80+0x40+3);if(anshu=
24、3)u2=ds1302_read(0x85);shi=(u2&0x70)4)*10+(u2&0x0f);write_sfm(0,shi);lcd1602_writecom(0x80+0x40+0);lcd1602_writecom(0x0f);lcd1602_writecom(0x80+0x40+0);if(anshu=4)lcd1602_writecom(0x0c); lcd1602_writecom(0x80 + 0x40+14);lcd1602_writedata(s);lcd1602_writedata(t); lcd1602_writecom(0x0f);if(anshu=5)u7=
25、ds1302_read(0x83)tab0=(u7&0x70)4)*10+(u7&0x0f); write_sfm(3,tab0);/table0為分存儲器lcd1602_writecom(0x80+0x40+3);lcd1602_writecom(0x0f);lcd1602_writecom(0x80+0x40+3);if(anshu=6)u8=ds1302_read(0x85);tab1=(u8&0x70)4)*10+(u8&0x0f);write_sfm(0,tab1);/table1為時(shí)存儲器lcd1602_writecom(0x80+0x40+0);lcd1602_writecom(
26、0x0f);lcd1602_writecom(0x80+0x40+0);if(anshu=7)lcd1602_writecom(0x0c);lcd1602_writecom(0x80 + 0x40+14);lcd1602_writedata(O); /顯示On,提示鬧鐘已開啟 lcd1602_writedata(n);linshi=0;if(anshu=8)linshi=0;anshu = 0;beep=1; lcd1602_writecom(0x80 + 0x40+14); /第二次按下去除 On標(biāo)記lcd1602_writedata(); lcd1602_writedata( );if(a
27、nshu=9)linshi=0;anshu=0;ds1302_write(0x80,0x00);lcd1602_writecom(0x38);lcd1602_writecom(0x0c);/不出現(xiàn)光標(biāo)if (anshu=2)if(P32=0)delay(5);if(P32=0)while(!P32);fenjia(0x83,0x82,3,1);if(P33=0)delay(5);if(P33=0)while(!P33);fenjia(0x83,0x82,3,0);if (anshu=3)if(P32=0)while(!P32);shijia(0x85,0x84,0,1);if(P33=0)de
28、lay(5);if(P33=0)while(!P33);shijia(0x85,0x84,0,0);if (anshu=5)if(P32=0)delay(5);if(P32=0)while(!P32);tab0+;write_sfm(3,tab0);if(tab0=60)tab0=0;if(P33=0)delay(5);if(P33=0)while(!P33);tab0-;write_sfm(3,tab0);if(tab0=0)tab0=59;if (anshu=6)if(P32=0)while(!P32);tab1+;write_sfm(0,tab1);if(tab1=24)tab1=0;i
29、f(P33=0)while(!P32);tab1-;write_sfm(0,tab1);if(tab1=0)tab1=23;if (anshu=7) /設(shè)置好鬧鐘返回時(shí)鐘界面并開啟鬧鐘lcd1602_writecom(0x0c);/鬧鐘已經(jīng)設(shè)置好lcd1602_writecom(0x80 + 0x40+16);lcd1602_writedata(O); /顯示On,提示鬧鐘已開啟lcd1602_writedata(n);u7=ds1302_read(0x83);fen=(u7&0x70)4)*10+(u7&0x0f);u8=ds1302_read(0x85);shi=(u8&0x70)4)*1
30、0+(u8&0x0f);if(tab0=fen & tab1=shi)alarmOn = 1; /鬧鐘時(shí)間到了if(alarmOn = 1)beep = 0;delay(10);beep=1;delay(10);beep = 0;delay(10);beep=1;while(linshi);void zhjia(uchar rddr,uchar wddr,uchar yddr,uchar zhjiajian)u6=ds1302_read(rddr);zh=u6&0x07;/進(jìn)制轉(zhuǎn)換if(zhjiajian=1)zh+;if(zh=8)zh=1;elsezh-;if(zh=0)zh=7;ds13
31、02_write(wddr,(zh/10)4)*10+(u3&0x0f);/進(jìn)制轉(zhuǎn)換if(rijiajian=1)ri+;if(ri=31)ri=1;elseri-;if(ri+1)=0)ri=30;ds1302_write(wddr,(ri/10)4)*10+(u4&0x0f);/進(jìn)制轉(zhuǎn)換if(yuejiajian=1)yue+;if(yue=13)yue=0;elseyue-;if(yue+1)=0)yue=12;ds1302_write(wddr,(yue/10)4)*10+(u5&0x0f);/進(jìn)制轉(zhuǎn)換if(nianjiajian=1)nian+;elsenian-;ds1302_wr
32、ite(wddr,(nian/10)4)*10+(a6&0x0f);write_nyr(13,zh);lcd1602_writecom(0x80+13);lcd1602_writecom(0x0f);lcd1602_writecom(0x80+13);if(anshu=2)a1=ds1302_read(0x87);ri=(a1&0x70)4)*10+(a1&0x0f);write_nyr(8,ri);lcd1602_writecom(0x80+8);lcd1602_writecom(0x0f); lcd1602_writecom(0x80+8);if(anshu=3)a2=ds1302_rea
33、d(0x89);yue=(a2&0x704)*10+(a2&0x0f);write_nyr(5,yue);lcd1602_writecom(0x80+5);lcd1602_writecom(0x0f);lcd1602_writecm(0x80+5);if(anshu=4)a3=ds1302_read(0x8D);nian=(a3&0x704)*10+(a3&0x0f)write_nyr(2,nian);lcd1602_writecom(0x80+2);lcd1602_writecom(0x0f);lcd1602_writecom(0x80+2);if(anshu=5)linshi=0;ansh
34、u=0;ds1302_write(0x80,0x00);lcd1602_writecom(0x38);lcd1602_writecom(0x0c);if (anshu=1)if(P32=0)while(!P32);zhjia(0x8B,0x8A,13,1);if(P33=0)delay(5);if(P33=0)while(!P33);zhjia(0x8B,0x8A,13,0);if (anshu=2)if(P32=0)while(!P32);rijia(0x87,0x86,8,1);if(P33=0)delay(5);if(P33=0)while(!P33);rijia(0x87,0x86,8
35、,0);if (anshu=3)if(P32=0)while(!P32);yuejia(0x89,0x88,5,1);if(P33=0)delay(5);if(P33=0)while(!P33);yuejia(0x89,0x88,5,0);if (anshu=4)if(P32=0)while(!P32);nianjia(0x8D,0x8C,2,1);if(P33=0)delay(5);if(P33=0)while(!P33);nianjia(0x8D,0x8C,2,0);while(linshi);void init()uchar num;Init_DS18B20();lcd1602_init
36、();/ds1302_init();rd=0;for(num=0;num15;num+)lcd1602_writedata(tablenum);delay(5);lcd1602_writecom(0x80+0x40); /換行for(num=0;num4)*10+(u&0x0f);write_sfm(6,miao);u1=ds1302_read(0x83);fen=(u1&0x70)4)*10+(u1&0x0f);write_sfm(3,fen);u2=ds1302_read(0x85);shi=(u2&0x70)4)*10+(u2&0x0f);write_sfm(0,shi);u3=ds13
37、02_read(0x87);ri=(u3&0x70)4)*10+(u3&0x0f);write_nyr(8,ri);u4=ds1302_read(0x89);yue=(u4&0x70)4)*10+(u4&0x0f);write_nyr(5,yue);u5=ds1302_read(0x8B);zh=(u5&0x70)4)*10+(u5&0x0f);write_nyr(13,zh);u6=ds1302_read(0x8D);nian=(u6&0x70)4)*10+(u6&0x0f)write_nyr(2,nian);display_DS18B20(low,high);/DS1302程序void d
38、s1302_delay(uchar z)uchar x,y;for(x=110;x0;x-)for(y=z;y0;y-);void ds1302_write (uchar com,uchar data1)uchar temp,dat,a,k;temp=com;dat=data1;ds1302_rst=0;ds1302_sclk=0;ds1302_rst=1;for(a=0;a1;_nop_();ds1302_sclk=1;_nop_();ds1302_sclk=0;for(k=0;k1;_nop_();ds1302_sclk=1;_nop_();ds1302_sclk=0;uchar ds13
39、02_read(uchar com)uchar shu,shu1;B=com;ds1302_rst=0;ds1302_sclk=0;ds1302_rst=1;for(shu=0;shu0;shu1-)ACC=ACC1;ACC7=ds1302_io;ds1302_sclk=1;ds1302_sclk=0;return(ACC);/*void ds1302_init()ds1302_write(0x80,0);ds1302_write(0x82,0);ds1302_write(0x84,0);ds1302_write(0x86,0);ds1302_write(0x88,0);ds1302_writ
40、e(0x8A,0);ds1302_write(0x8C,0); */LCD1602液晶顯示程序void delay(uint z)uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);/*1602寫命令*/void lcd1602_writecom(uchar com)lcd1602_rs=0;lcd1602_rw=0;lcd1602_data=com;delay(5);lcd1602_en=1;delay(5);lcd1602_en=0;/*1602寫數(shù)據(jù)*/void lcd1602_writedata(uchar date)lcd1602_rs=1;lcd1602
41、_rw=0;lcd1602_data=date;delay(5);lcd1602_en=1;delay(5);lcd1602_en=0;/*1602初始化*/void lcd1602_init()lcd1602_rs=0;lcd1602_rw=0;lcd1602_en=0;lcd1602_writecom(0x38);lcd1602_writecom(0x0c);lcd1602_writecom(0x06);lcd1602_writecom(0x01);lcd1602_writecom(0x80);/*寫時(shí)分秒*/void write_sfm(uchar add,uchar date)uchar shi,ge;shi=date/10;ge=date%10;
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 ISO 17715:2025 EN Flour from wheat (Triticum aestivum L.) - Amperometric method for starch damage measurement
- 2025-2030年中國智慧養(yǎng)老服務(wù)行業(yè)商業(yè)模式創(chuàng)新戰(zhàn)略制定與實(shí)施研究報(bào)告
- 2025-2030年中國汽車后市場行業(yè)開拓第二增長曲線戰(zhàn)略制定與實(shí)施研究報(bào)告
- 2025-2030年中國控制線纜組件行業(yè)資本規(guī)劃與股權(quán)融資戰(zhàn)略制定與實(shí)施研究報(bào)告
- 收看《反腐為人民》心得體會:弘揚(yáng)清風(fēng)正氣筑牢廉潔根基
- 年產(chǎn)xxx新型建材新型墻體材料項(xiàng)目可研報(bào)告模板
- 廣西河池市環(huán)江縣2021-2022學(xué)年五年級上學(xué)期英語期末試卷
- 商品加工知識培訓(xùn)課件
- 學(xué)校消防安全知識培訓(xùn)
- 債券價(jià)格的敏感性第五章
- 2023年長沙市中考數(shù)學(xué)真題試卷及答案
- 《電力設(shè)備消防典型準(zhǔn)則》(DL5027-2022)
- 米吳科學(xué)漫畫奇妙萬象篇
- 河南省鄭州市金水區(qū)2022-2023學(xué)年三年級上學(xué)期期末數(shù)學(xué)試卷
- XXX酒店開辦費(fèi)POB預(yù)算
- Z矩陣、Y矩陣、A矩陣、S矩陣、T矩陣定義、推導(dǎo)及轉(zhuǎn)換公式
- 中美歐規(guī)范樁基承載力計(jì)算設(shè)計(jì)對比
- 外科洗手操作考核評分表
- 復(fù)旦大學(xué)外國留學(xué)生入學(xué)申請表
- 長安汽車發(fā)動機(jī)水溫高故障案例分析處置
- 瞬時(shí)單位線法計(jì)算洪水
評論
0/150
提交評論