版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、. . . . 基于單片機的太陽能熱水器水溫水位監(jiān)測系統(tǒng)摘要:該太陽能熱水器水溫水位控制主要由AT89S52單片機控制,DS18B20溫度傳感器,LCD1602液晶,時鐘芯片1302和報警系統(tǒng)組成。該系統(tǒng)能夠?qū)崟r顯示當前時間和日期,以與秒表功能,測量水箱實時溫度,并以液晶顯示屏的形式告知使用者。同時還能對水位進行實時監(jiān)控,水位不足或者已滿都可以讓使用者得知,當水位已滿時就會報警,提醒使用者與時關閉加水閥門。關鍵詞:AT89S52單片機溫度控制 水位控制The Control of Measurement System of Water Level andTemperature of Solar
2、 Energy HeatingAbstract: the solar energy water heater mainly by water level control AT89S52 SCM control, the temperature sensor DS18B20, LCD1602 LCD, clock and alarm system chip 1302. The system can real-time display the current date and time, and stopwatch function, measuring tank temperature, and
3、 real-time LCD inform the user. Also can real-time monitoring of water shortage, water or already full allow users, when the water is full already will alarm, remind users timely close water valve. Through the Protues software simulation above mentioned function normal realization.Keywords: AT89S52
4、SCM Temperature control Water level control目錄1引言32方案比較42.1溫度傳感器的選擇42.1.1方案一42.1.2方案二42.1.3 方案比較42.2 水位采集系統(tǒng)的選擇52.2.1 方案一52.2.2 方案二52.2.3 方案比較73硬件設計73.1 溫度傳感器DS18B2073.1.1 DS18B20的主要特性:73.1.2 DS18B20的外形73.1.3 DS18B20主要的數(shù)據(jù)部件73.1.4 DS18B20電源供電方式電路圖83.2 顯示電路93.3 蜂鳴器電路93.4 單片機與其外圍電路103.5 水位控制系統(tǒng)的設計123.5.1
5、CD4069芯片資料123.5.2 74LS244芯片資料123.6 整體電路圖(如圖14)134 軟件設計15 4.1 溫度顯示部分. 164.2 關于DS18B20的編程.174.3 初始化結(jié)構(gòu).185 系統(tǒng)調(diào)試196 總結(jié)20致20參考文獻21附錄221引言單片機的應用技術是一項新型的工程技術,特別是隨大規(guī)模集成電路的產(chǎn)生而飛速發(fā)展。目前,單片機以其體積小、重量輕、抗干擾能力強、對環(huán)境要求不高??煽啃愿?、性能價格比高、開發(fā)較為容易,在工業(yè)控制系統(tǒng)、數(shù)據(jù)采集系統(tǒng)、智能化儀器儀表、設備自動化等諸多領域極為廣泛的應用,都可見到單片機的蹤影。目前市場上太陽能熱水器的控制系統(tǒng)大部分都存在著或多或少
6、的缺點:成本較高,操作復雜,控制不方便等。本設計中采用美國DALLAS半導體公司出產(chǎn)智能溫度傳感器DS18B20作為檢測元件,測溫圍為-55125攝氏度,最大分辨率可達0.0625攝氏度,可以直接讀出被測溫度值,而且采用三線制與單片機相連,減少了外部的硬件電路,具有低成本和好使用的特點。本設計的水位傳感器電路,省去了傳統(tǒng)的A/D轉(zhuǎn)換器,操作簡單,控制方便。我們在日常的太陽能熱水器的使用中,很少能預測出當時水溫的高低,還有在給太陽能熱水器補給水源時,其水位具體什么時候能夠加滿也未能知曉,這就大大浪費了水資源,也給日程生活添加了不必要的開支,我在課程設計中基于單片機89S52能夠準確的告知使用者熱
7、水器的即時溫度,還能通過報警的模式告知使用者熱水器儲蓄罐已滿,從而達到了節(jié)約水源,方便大眾的目的。同時,也能告知使用者當時的日期和時間。此次課程設計中設計了一個簡易的測量太陽能熱水器水溫,水位的裝置,并能通過報警的形式告知使用者水位已滿請關閉,我相信經(jīng)過進一步的加工,一定會很好的運用到我們?nèi)粘5纳钪小?方案比較2.1溫度傳感器的選擇2.1.1方案一熱敏電阻是溫度傳感器的一種,它由半導體瓷組成。熱敏電阻(NTC)不同于普通的電阻,它具有負的電阻溫度特性,即當溫度升高時,其電阻值減小。熱敏電阻的阻值溫度特性曲線是一條指數(shù)曲線,非線性較大,因此在使用時要進行線性化處理。線性化處理雖然能夠改善熱敏電
8、阻的特性曲線,但是比較復雜。為此,在要求不高的一般應用中,常做出在一定的溫度圍溫度與阻值成線性關系的假定,從而簡化計算。使用熱敏電阻是為了感知溫度,給熱敏電阻通以恒定的電流,電阻兩端就可測到一個電壓,然后通過公式下面的公式可求得溫度:T=T0-KVT。T為被測溫度;T0為與熱敏電阻特性有關的溫度參數(shù);K為與熱敏電阻特性有關的系數(shù);VT為熱敏電阻兩端的電壓。根據(jù)這一公式,測得熱敏電阻兩端的電壓,了解到參數(shù)T0和K,則可以計算出熱敏電阻的環(huán)境溫度,也就是被測的溫度,這樣就把電阻隨溫度的變化轉(zhuǎn)化為電壓隨溫度變化。這種設計還需要用到A/D轉(zhuǎn)換電路,而且在測量的過程中,由于環(huán)境的影響會帶來較大的誤差。2
9、.1.2方案二采用溫度傳感器DS18B20,它是美國Dallas半導體公司生產(chǎn)的數(shù)字化溫度傳感器DS18B20,它與微處理器連接時僅需要一條口線即可實現(xiàn)微處理器與DS18B20的雙向通訊。全部傳感元件與轉(zhuǎn)化電路集成在形如一只三極管的集成電路。我們可以采用DS18B20采集溫度,然后在顯示電路上顯示。該設計外圍電路簡單,只需要通過DS18B20進行采集溫度,一個液晶顯示電路,軟件設計部分只需要采集溫度,對溫度進行轉(zhuǎn)化,再用顯示電路將其顯示出來。我們可以知道,環(huán)境對DS18B20影響不大,同時DS18B20的測量精度穩(wěn)定并可用軟件設置、接線簡單,大大的節(jié)省了單片機的數(shù)據(jù)串口。2.1.3 方案比較本
10、設計主要是從溫度傳感器的選擇考慮。傳統(tǒng)的測溫元件有熱電偶和熱電阻,而它們測出的一般都是電壓,再轉(zhuǎn)換成對應的溫度,需要較多的外部硬件支持,電路與軟件調(diào)試比較復雜,制作難度高,成本也相對較高。從以上兩種方案中,可以看出采用方案二所設計的電路比較簡單,采用溫度傳感器DS18B20作為檢測元器件,測溫圍-55125,分辨率最大可達0.0625。DS18B20可以直接讀出被測溫度值。采用3線制與單片機相連,減少了外部硬件電路,具有低成本和易使用的特點。2.2 水位采集系統(tǒng)的選擇2.2.1 方案一該水位采集系統(tǒng)是將采集的信號進過A/D轉(zhuǎn)換器傳送到單片機中如圖1。I為恒流源,該電流流過一個電阻產(chǎn)生的壓降為I
11、R。當K1,K2K8均打開時,V0=8IR,現(xiàn)取IR=1V,則V0=8V。當水位上升到Kn處時,浮子推動磁體M移動至干簧管Kn處,Kn接通。經(jīng)過OP緩沖輸出的電壓V0=(n-1)V。輸出端經(jīng)ADC0809轉(zhuǎn)換器后直接輸入到單片機中。當水位到達最高位置時單片機將控制電磁閥停止向水箱加水,并在液晶上顯示“水已滿”字樣。圖12.2.2 方案二用5根不銹鋼針分別置于水箱5種不同高度的位置,當某個鋼針不接觸水面時,其輸出為高電平;當其與水面接觸時則輸出為低電平。它們輸出的信號接六反向器CD4069,經(jīng)過CD4069反向并經(jīng)74LS244驅(qū)動后分別接入89C52單片機的P3.0-P3.4腳。單片機對這些引
12、腳進行判斷之后,在液晶上顯示對應的值。顯示分為5檔,每檔為滿水位的20%。(如圖2)CD406974LS244+5V圖22.2.3 方案比較方案2比方案1設計原理簡單,硬件要求少,成本較低,方案2省去了方案1中A/D轉(zhuǎn)換器,操作比較方便,方案1在軟件設計中也比方案2來得更加簡潔明了。因此水位采集系統(tǒng)選擇采用方案2。3硬件設計3.1溫度傳感器DS18B203.1.1DS18B20的主要特性:(1)電壓圍較寬,電壓圍:3.05.5V。(2)單線接口方式,DS18B20在與單片機連接時僅需要一條口線即可實現(xiàn)微處理器與DS18B20的雙向通訊。(3)DS18B20支持多點組網(wǎng)功能,多個DS18B20可
13、以并聯(lián)在唯一的三條線上,實現(xiàn)組網(wǎng)多點測溫。(4)測溫圍55125,在-10+85時精度為±0.5,精度較高。(5)可編程的分辨率為912位,對應的可分辨的溫度分別為0.5、0.25、0.125和0.0625,可實現(xiàn)高精度測溫。(6)在9位分辨率時最多能在93.75ms把溫度轉(zhuǎn)換為數(shù)字,12位分辨率時最多在750ms把溫度值轉(zhuǎn)換為數(shù)字,速度更快。(7)測量結(jié)果直接輸出數(shù)字溫度信號,以"一線總線"串行傳送給CPU,同時可傳送CRC校驗碼,具有極強的抗干擾糾錯能力。(8)負壓特性:電源極性接反時,芯片不會燒毀,但不能正常工作。3.1.2DS18B20的外形DS18B20
14、的外形與管腳排列圖如下圖2所示。 圖3DS18B20外形與引腳排列圖1GND 地信號2DQ 數(shù)據(jù)輸入/輸出引腳。開漏單總線接口引腳。當被用著在寄生電源下,也可以向器件提供電源。3VDD 可選擇的VDD引腳。當工作于寄生電源時,此引腳必須接地。3.1.3 DS18B20主要的數(shù)據(jù)部件DS18B20有2個主要的數(shù)據(jù)部件: (1)光刻ROM中的64位序列號是出廠前被光刻好的,它可以看作是該DS18B20的地址序列碼。64位光刻ROM的排列是:開始8位(28H)是產(chǎn)品類型標號,接著的48位是該DS18B20自身的序列號,最后8位是前面56位的循環(huán)冗余校驗碼(CRC=X8+X5+X4+1)。光刻ROM的
15、作用是使每一個DS18B20都各不一樣,這樣就可以實現(xiàn)一根總線上掛接多個DS18B20的目的。(2)DS18B20中的溫度傳感器可完成對溫度的測量,以12位轉(zhuǎn)化為例:用16位符號擴展的二進制補碼讀數(shù)形式提供,以0.0625/LSB形式表達,其中S為符號位。DS18B20部結(jié)構(gòu)主要由四部分組成:64位光刻ROM,溫度傳感器,溫度報警觸發(fā)器TH和TL,配置寄存器。3.1.4DS18B20電源供電方式電路圖(1)DS18B20寄生電源供電方式電路DS18B20寄生電源供電電路,如圖5所示,要想讓DS18B20進行精確的溫度轉(zhuǎn)換,I/O線必須保證在溫度轉(zhuǎn)換期間提供足夠的能量,由于每個DS18B20在溫
16、度轉(zhuǎn)換期間工作電流達到1mA,當幾個溫度傳感器掛在同一根I/O線上進行多點測溫時,靠上拉電阻是無法提供足夠的能量,會造成無法轉(zhuǎn)換溫度或溫度誤差極大。因此,圖6電路只適用于單一溫度傳感器測溫,也不宜采用電池供電,并且電源電壓必須是穩(wěn)壓5V。當電源電壓下降時,會使測量的誤差變大。圖5 DS18B20寄生電源供電電路圖6 DS18B20外部供電單點測溫電路(2)DS18B20的外部電源供電方式DS18B20外部供電單點測溫電路,如圖7所示,DS18B20外部供電多點測溫電路如圖6所示。此時I/O線不需要強上拉電壓,同時在總線上可以掛接多個DS18B20傳感器,組成多點測溫系統(tǒng)。但要注意在外部供電的方
17、式下,DS18B20的GND引腳不能懸空,否則讀取的溫度總是85。圖6 DS18B20外部供電多點測溫電路比較上述兩種供電方式后認為外部電源供電方式對電源要求比電源供電方式優(yōu)越些且穩(wěn)定性好,故在此設計中采用如圖6的外部電源供電方式供電電路。3.2 顯示電路由DS1602液晶顯示屏組成,其特點是比較直觀便于觀察(如圖7)。圖73.3 蜂鳴器電路蜂鳴器俗稱喇叭(如圖8),是廣泛應用于各種電子產(chǎn)品的一種元器件,它用于提示、報警、音樂等許多應用場合。蜂鳴器通常工作電流比較大,電路上的TTL電平基本上驅(qū)動不了蜂鳴器,需要增加一個電流放大的電路才可以。蜂鳴器由振蕩器、磁鐵、振動膜片以與外殼等組成,接通電源
18、后,振蕩器產(chǎn)生音頻信號,電流通過電磁線圈使電磁線圈產(chǎn)生磁場,振動膜片在電磁線圈和磁鐵的相互作用下,周期性地振動發(fā)聲。當P3.7端輸出高電平時,三極管截止,沒有電流流過線圈,蜂鳴器不發(fā)聲,當P3.7端為低電平時,三極管導通,這樣蜂鳴器中就有電流流過,就會發(fā)出聲音因此,可通過程序來控制蜂鳴器的聲音大小。圖8 蜂鳴器電路圖3.4 單片機與其外圍電路此次課程設計采用STC公司的單片機STC89S52作為系統(tǒng)的控制器。主要從以下特點考慮:1.STC89S52是一種低功耗,高性能CMOS工藝的8位單片機,片含有8K的系統(tǒng)可編程Flash存儲器。使用STC公司高密度非易失性存儲器技術制造,與工業(yè)80C51產(chǎn)
19、品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)提供高靈活,是一個很有效的解決方案。 2.STC89S52具有的標準功能:8k Bytes Flash片程序存儲器,256 bytes的隨機存取數(shù)據(jù)存儲器(RAM),全雙工串行口,片晶振與時鐘電路。另外,STC89S52可降至0KHZ靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護方式下,RAM容被保存,振蕩器被凍結(jié),單片機停止工作,直到一個中斷或硬件復位為止。3.STC89S52有40個引腳,3
20、2個外部雙向輸入/輸出(I/O)口,同時含8個中斷口,5個中斷優(yōu)先級,3個16位可編程定時計數(shù)器,2個全雙工串行通信口,2個讀寫口。AT89S52可以按照常規(guī)方法進行編程,也可以在線編程。其通用的微處理器和Flash存儲器結(jié)合在一起,可反復擦寫的Flash存儲器可有效地降低開發(fā)成本。在本設計中,XTAL1和XTAL2端外接石英晶體作為定時元件,部反向放大器自激振蕩,產(chǎn)生時鐘。所用石英晶體的振蕩頻率為12MHZ,電容C1,C2常為20pF40pF,從而形成了單片機的最小系統(tǒng)。如圖9所示。圖9 晶振電路設計中用的是上電復位,單片機上電過后,便自動的進入復位狀態(tài)。圖10是上電復位電路。當采用的晶體頻
21、率為12MHZ時,可采取C=22 uf,R=1K。圖10 上電復位電路3.5 水位控制系統(tǒng)的設計用5根不銹鋼針分別置于水箱5種不同高度的位置,當某個鋼針不接觸水面時,其輸出為高電平;當其與水面接觸時則輸出為低電平。它們輸出的信號接六反向器CD4069,經(jīng)過CD4069反向并經(jīng)74LS244驅(qū)動后分別接入89C52單片機的P3.0-P3.5腳。單片機對這些引腳進行判斷之后,在液晶上顯示對應的值。顯示分為5檔,每檔為滿水位的20%。(如圖11)CD406974LS244+5V圖113.5.1 CD4069芯片資料 CD4069是由六個COS/MOS反相器電路組成,該器件通常用在不需要中功率TTL驅(qū)
22、動和邏輯電平轉(zhuǎn)換的電路中。(如圖12)圖123.5.2 74LS244芯片資料74LS244是三態(tài)八緩沖器。(如下頁圖13)引出端符號:1A11A4,2A12A4輸入端/1G, /2G三態(tài)允許端(低電平有效)1Y11Y4,2Y12Y4輸出端圖133.6 整體電路圖(如圖14)圖144 軟件設計本設計的基本運行步驟是:接通電源溫度傳感器開始工作,LCD1602顯示出溫度與當前的時間日期,當向水箱中倒入水后,到達第一個鋼針時此時液晶屏上顯示01(5cm),到達第二個鋼針時液晶屏上顯示02(10cm),直至到達水箱的頂部,液晶屏幕上顯示“FULL”,并且蜂鳴器報警,提醒用戶水已滿,關閉水閥,從而完成
23、了對水位的控制。根據(jù)運行步驟和電路的功能設計出水溫水位程序流程圖如圖15所示。圖15P3.0表示第一層水位監(jiān)測口P3.1表示第二層水位監(jiān)測口P3.2表示第三層水位監(jiān)測口P3.3表示第四層水位監(jiān)測口P3.4表示第五層水位監(jiān)測口P2.4表示響鈴警報端口通過判斷是否導電,來檢測水位所在,滿水后達到報警目的,并斷開注水連接,使蜂鳴器報警。初始化DS18B20溫度傳感器4.1溫度顯示部分:發(fā)送讀取溫度指令,并分別從DS18B20中讀取高8位和低8位的溫度數(shù)值將讀取來的溫度數(shù)值轉(zhuǎn)化為實際溫度數(shù)值將實際溫度值送至1602液晶顯示圖 16 在初始化之后,通過指令從系統(tǒng)中調(diào)取數(shù)據(jù),從DS18B20中的高8位和低
24、8位溫度數(shù)值反饋到轉(zhuǎn)化模塊,轉(zhuǎn)換成可顯示的十進制數(shù),送給1602液晶顯示器,分別在1602指定位置顯示 實際溫度值的10位、個位和小數(shù)位反應實時溫度。4.2 關于DS18B20的編程在對DS18B20進行讀寫程序時,必須嚴格保證讀寫時序,否則將無法讀取測得的溫度結(jié)果。根據(jù)DS18B20的通信協(xié)議,主機控制DS18B20完成溫度轉(zhuǎn)換必須經(jīng)過3個步驟:每一次讀寫之前都要對DS18B20進行復位,復位成功后發(fā)送一條ROM指令,最后發(fā)送RAM指令,這樣才能對DS18B20進行預定的操作。再才能讀取溫度。指令約定代碼功能溫度轉(zhuǎn)換44H將DS18B20進行溫度轉(zhuǎn)換啟動,12位轉(zhuǎn)換時最長為750ms,把結(jié)果
25、存入部9字節(jié)RAM中讀暫存器0BEH讀部RAM中9個字節(jié)的容寫暫存器4EH發(fā)出向部RAM的3、4字節(jié)寫上、下限溫度數(shù)據(jù)指令,緊跟該指令之后是傳送兩字節(jié)的數(shù)據(jù)復制暫存器48H將RAM中第3、4字節(jié)的容復制給PRAM重調(diào)PRAM0B8H將PRAM中容恢復到RAM中的第3、4字節(jié)讀供電方式0B4H讀DS18B20的供電方式。寄生供電時DS18B20發(fā)送0,外接電源供電DS18B20發(fā)送1表1 RAMR指令表指令約定代碼功能讀ROM33H讀取DS18B20溫度傳感器ROM中的編碼程序符合ROM55H發(fā)出命令之后,然后發(fā)出64位ROM編碼,訪問單總線上與該編碼對應的DS18B20,使之作出響應,為下一步
26、對該DS18B20讀寫作準備搜索ROM0F0H用于確定掛接在同一總線上DS18B20的個數(shù)和識別64位ROM地址,為操作各器件作好準備跳過ROM0CCR跳過ROM工作表2 ROM指令表系統(tǒng)對DS18B20的各種操作按協(xié)議進行。操作協(xié)議為:初始化DS18B20>發(fā)ROM功能命令>發(fā)存儲器操作命令>處理數(shù)據(jù)。DS18B20的初始化序列圖,如圖18所示。4.3 初始化結(jié)構(gòu)圖17 DS18B20的初始化序列圖5 系統(tǒng)調(diào)試本設計采用KeilC51編譯器進行源程序編譯與仿真調(diào)試,同時用Protel進行硬件電路板的設計制作。硬件電路制作完畢,用萬用表檢測有無短路開路等現(xiàn)象,確定硬件電路沒有
27、錯誤時,用proteus進行仿真,運行程序進行調(diào)試。在焊接過程中,發(fā)現(xiàn)DS1302芯片發(fā)熱嚴重,但扔能正常顯示日期等,斷開開關,通過萬用表測量,發(fā)現(xiàn)一腳和八腳短路,但是斷開3.6V電源后,扔持續(xù)發(fā)熱,通過測試,發(fā)現(xiàn)是芯片損壞,重新更換芯片后得到解決。由于初次使用DS18B20器件,在程序設計過程中遇到很大難題,通過詢問老師和查閱網(wǎng)絡,得到相關信息,在同學的共同學習下,更深的了解了該元件的使用方法和相關編程方式,并成功的運用到電路中。在實現(xiàn)功能之后,又加入了部分小功能,如:秒表,定時等,充分利用液晶屏和各芯片功能,使整個作品變得更加豐富,以滿足不同使用者的不同需求,使用起來方便耐用,操作簡單,易
28、于上手。6 總結(jié)經(jīng)過這么長時間來不懈的努力與奮斗,我終于在老師的指導下完成了我的設計,本設計除了具有測量太陽能熱水器水溫水位的功能,還具有顯示日期,時間,星期等的附加功能。雖然它還有很多需要完善的地方,在這次作品設計的過程中學到了很多東西,使我明白了很多書本上的東西不通過具體的實踐是不能夠領會其中的精髓的,我們必須通過自己的親手實踐,去經(jīng)歷失敗了才能對所學知識達到真正的掌握。理論必須聯(lián)系實際,而實踐是檢驗真理的唯一標準,我真正的懂得了這句話的真諦。在我以后的工作和生活中,我從此可以汲取很多經(jīng)驗,凡事都要自己去動手,去實踐一下,遇到困難,永遠不要喪失一顆勝利的心,有耐心,有信心,有細心,有恒心,
29、有虛心,只有這樣,我才會在逆境中不斷前進,不斷充實自己!致 在本次課程設計的過程中,特別感我的指導老師對我的作品設計的幫助,不管是在選題階段,設計階段,還是制作階段,老師都對我進行了指導,從而使得本次課程設計能夠順利完成。最后我要感我的同學們,他們在我進行電路圖的設計和焊接過程中給了我很多幫助,在制作的過程中,我感受到了同學們的建議都是一種寶貴的財產(chǎn)。參考文獻1文博,文濤.單片機語言C51程序設計M:人民郵電2006.2胡乾斌.單片微型計算機原理與應用M(第二版).:華中科技大學.2005.3Microchip Inc.PIC16/17 Microcontrollers Data Book.1
30、995/1996.4馬琨.幾種實用變壓器和穩(wěn)壓電源的制作。電氣時代.1999(1).5何立民.單片機應用系統(tǒng)抗干擾技術M.:航空航天大學,2001.6家勝.太陽能熱水器輔助電加熱控制器的研制.電子技術,2000,27(10):31-36.附錄#include<reg52.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intsbit lcd_rs=P26; /液晶腳定義sbit lcd_re=P25;sbit dq = P10;sbit s1 =P23; /總控制端sbit s2
31、 =P22;/加一sbit s3 =P21; /減一sbit s4 =P20; /秒表控制sbit beep=P24;/鬧鐘控制sbit one=P34; /水位定義sbit two=P33;sbit three=P32;sbit four=P31;sbit five=P30 ;sbit s=P27; /水位測試切換開關void lcd_writedata(uchar date);void lcd_writecom(uchar );void change(uchar add,uchar date,uchar row);void change1(uchar add,uchar date,ucha
32、r row);void delay_ds1820(int num);uchar readonechar(); /讀一個字節(jié)void writeonechar(uchar dat); /寫一個字節(jié)uchar code wendu="0123456789"uint readtemp() ; /讀溫度void displayw() ; /顯示溫度void key();void guding();void ds1302_inputbyte(uchar d); uchar ds1302_outputbyte();uchar read1302(uchar add);void write
33、1302(uchar add,uchar date);void get_1302(uchar realtime);void xianshi();void miaobiao_init();void keys();void set_alarm();void read_alarm();void alarm();void alarm_sound();void sheng_set();void read_sheng();void sheng();sbit ds1302_rst=P13; /ds1302腳定義sbit ds1302_clk=P11;sbit ds1302_io=P12;sbit acc0
34、= ACC0;sbit acc7 = ACC7;uchar num,s1num,s4num,flag,flag1,flag2,flag3,flag4; /定義變量uchar shi,fen,miao,weimiao,t;char time7,time17;uchar ashi,afen,amiao,anian,ayue,ari;uchar code table=" StopWatch "uchar code table1=" 00:00:00:00 "uchar code table2=" HAPPY BIRTHDAY "uchar
35、code table3=" 1986-02-20 "uchar code table43="Mon","Tue","Wed","Thu","Fri","Sat","Sun"void write_xingqi(char xingqi);/延時一毫秒void delay(uint z) uint x,y;for(x=z;x>0;x-) for(y=110;y>0;y-); void lcd_init()/液晶初始化和命令數(shù)據(jù)操作
36、lcd_writecom(0x38);lcd_writecom(0x0c);lcd_writecom(0x06);lcd_writecom(0x01);lcd_writecom(0x80); void lcd_writecom(uchar )lcd_rs=0;lcd_re=0;P0=;lcd_re=1;delay(1);lcd_re=0;void lcd_writedata(uchar date)lcd_rs=1;lcd_re=0;P0=date;lcd_re=1;delay(1);lcd_re=0;void change1(uchar add,uchar date,uchar row) /寫
37、函數(shù)一 uchar shi,ge; shi=date/10; ge=date%10;if(row=0) lcd_writecom(0x80+add); lcd_writedata(0x30+shi); lcd_writedata(0x30+ge);if(row=1) lcd_writecom(0x80+0x40+add); lcd_writedata(0x30+shi); lcd_writedata(0x30+ge);void change(uchar add,uchar date,uchar row)/寫函數(shù)二 防止沖突。 uchar shi,ge; shi=date/10; ge=date
38、%10;if(row=0) lcd_writecom(0x80+add); lcd_writedata(0x30+shi); lcd_writedata(0x30+ge);if(row=1) lcd_writecom(0x80+0x40+add); lcd_writedata(0x30+shi); lcd_writedata(0x30+ge);void key() if(flag3=1) if(s1=0)delay(5);if(s1=0)while(!s1);flag3=0;lcd_init();guding();if(s2=0) delay(5);if(s2=0)while(!s2);fla
39、g3=0;lcd_init(); guding(); if(s3=0) delay(5);if(s2=3)while(!s3);flag3=0;lcd_init(); guding(); if(s4=0) delay(5);if(s4=0)while(!s4);flag3=0;lcd_init(); guding(); if(s4=0)delay(5);if(s4=0) flag1=1;while(!s4);s4num+;if(s4num=1) lcd_init(); miaobiao_init(); lcd_writecom(0x80+0x40+4); lcd_writedata('
40、:'); lcd_writecom(0x80+0x40+7); lcd_writedata(':'); lcd_writecom(0x80+0x40+10); lcd_writedata(':'); lcd_writecom(0x80+2); for(num=0;num<14;num+) lcd_writedata(tablenum); delay(6); TR0=1; if(s4num=2)TR0=0;if(s4num=3) lcd_init(); guding();s4num=0;weimiao=0;miao=0;fen=0;shi=0;fla
41、g1=0; if(s1=0)delay(5);if(s1=0) flag=1; s1num+;while(!s1);switch(s1num) case 1:lcd_writecom(0x80+0x40+7); lcd_writecom(0x0f); break; case 2:lcd_writecom(0x80+0x40+4); lcd_writecom(0x0f); break; case 3:lcd_writecom(0x80+0x40+1); lcd_writecom(0x0f); break; case 4:lcd_writecom(0x80+3); lcd_writecom(0x0
42、f); break; case 5:lcd_writecom(0x80+6); lcd_writecom(0x0f); break; case 6:lcd_writecom(0x80+9); lcd_writecom(0x0f); break; case 7:lcd_writecom(0x80+12); lcd_writecom(0x0f); break; case 8: s1num=0; lcd_writecom(0x0c); write1302(0x8e,0x00); /控制寫入 write1302(0x8c, time16/10*16+time16%10); /年 write1302(0
43、x88, time14/10*16+time14%10); /月 write1302(0x86, time13/10*16+time13%10); /日 write1302(0x8a, time15/10*16+time15%10); /星期 write1302(0x84, time12/10*16+time12%10); /時 write1302(0x82, time11/10*16+time11%10); /分 write1302(0x80, time10/10*16+time10%10); /秒 write1302(0x8e,0x80); /禁止寫入 flag=0; break; if(
44、s1num!=0)if(s2=0)delay(5);if(s2=0)while(!s2);switch(s1num)case 1:time10+; if(time10=60) /秒 time10=0; change(6,time10,1); lcd_writecom(0x80+0x40+6); break;case 2:time11+; if(time11=60) time11=0; /分 change(3,time11,1); lcd_writecom(0x80+0x40+3); break;case 3:time12+; if(time12=24) time12=0; /時 change(
45、0,time12,1); lcd_writecom(0x80+0x40+0); break;case 4:time16+; if(time16=100) time16=0; /年 change(2,time16,0); lcd_writecom(0x80+2); break; case 5:time14+; if(time14=13) time14=1; /月 change(5,time14,0); lcd_writecom(0x80+5); break;case 6:time13+; if(time13=32) time13=1; /日 change(8,time13,0); lcd_wri
46、tecom(0x80+8); break;case 7:time15+; if(time15=7) time15=0; /星期 write_xingqi(time15); lcd_writecom(0x80+12); break;if(s3=0) delay(5);if(s3=0)while(!s3);switch(s1num) case 1:time10-; if(time10=-1) /秒 time10=59; change(6,time10,1); lcd_writecom(0x80+0x40+6); break;case 2:time11-; if(time11=-1) time11=
47、59; /分 change(3,time11,1); lcd_writecom(0x80+0x40+3); break;case 3:time12-; if(time12=-1) time12=23; /時 change(0,time12,1); lcd_writecom(0x80+0x40+0); break;case 4:time16-; if(time16=-1) time16=99; /年 change(2,time16,0); lcd_writecom(0x80+2); break; case 5:time14-; if(time14=0) time14=12; /月 change(5,time14,0); lcd_writecom(0x80+5); break; case 6:time13-; if(time13=0) time13=31; /日 change(8
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 社保征管強度與勞動收入份額
- 安溪鐵觀音文化遺產(chǎn)地價值共創(chuàng)對游客消費意愿的溢出效應研究
- 玻璃溫室施工方案
- 2025年度母嬰電商代購服務合同范本4篇
- 2025物流企業(yè)用工合同
- 二零二五年度存量房屋承購經(jīng)紀服務合同建筑廢棄物資源化利用協(xié)議4篇
- 導電瀝青混合料組成設計與力電耦合行為研究
- 2025技術貸款合同范本
- 基于點云識別的智能拆垛孿生系統(tǒng)研究
- 面向智能硬件的模數(shù)時鐘域混合調(diào)節(jié)延遲鎖相環(huán)研究與設計
- 2025年度公務車輛私人使用管理與責任協(xié)議書3篇
- 售后工程師述職報告
- 綠化養(yǎng)護難點要點分析及技術措施
- 2024年河北省高考歷史試卷(含答案解析)
- 車位款抵扣工程款合同
- 小學六年級數(shù)學奧數(shù)題100題附答案(完整版)
- 高中綜評項目活動設計范文
- 英漢互譯單詞練習打印紙
- 2023湖北武漢華中科技大學招聘實驗技術人員24人筆試參考題庫(共500題)答案詳解版
- 一氯二氟甲烷安全技術說明書MSDS
- 物流簽收回執(zhí)單
評論
0/150
提交評論