版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
PAGEII基于單片機(jī)的多功能萬年歷系統(tǒng)設(shè)計(jì)摘要本文的設(shè)計(jì)主要是基于51單片機(jī),對(duì)一個(gè)電子萬年歷時(shí)鐘系統(tǒng)所需要進(jìn)行的一種多功能用途的時(shí)鐘單片機(jī)控制設(shè)計(jì),主要原理是由采用時(shí)鐘控制芯片的DS1302將系統(tǒng)采集的時(shí)鐘數(shù)據(jù)信號(hào)送入到該單片的主機(jī)中,然后進(jìn)行信號(hào)采集處理再經(jīng)LCD1602顯示后進(jìn)行輸入。電子萬年歷系統(tǒng)軟件集成部分主要是可以使用java和c語言進(jìn)行編寫,可以用到的電子硬件集成電路有時(shí)間鬧鐘芯片DS1302、液晶顯示芯片LCD1602,溫度傳感器芯片DS18B20,主控制器的芯片AT89S52,還有獨(dú)立按鍵。電子萬年歷計(jì)算是一種目前使用非常廣泛的日常生活計(jì)時(shí)計(jì)算工具,在整個(gè)現(xiàn)代中國社會(huì)十分廣泛流行。它不僅可以對(duì)年、月、日、時(shí)、分、秒等時(shí)進(jìn)行自動(dòng)計(jì)時(shí),還可以具有閏年時(shí)間補(bǔ)償計(jì)時(shí)功能和專用時(shí)間長度校準(zhǔn)器等功能。關(guān)鍵詞:AT89S52DS1302DS18B20LCD1602目錄1緒論 11.1課題研究的背景 11.2課題研究的目的與意義 11.3課題研究的內(nèi)容 12系統(tǒng)設(shè)計(jì)方案 22.1系統(tǒng)任務(wù)設(shè)計(jì) 22.2系統(tǒng)方案設(shè)計(jì) 23硬件設(shè)計(jì) 33.1AT89S51單片機(jī) 33.1.1單片機(jī)的引腳功能 43.1.2單片機(jī)的主要特性 53.2時(shí)鐘模塊DS1302 63.1.1單片機(jī)的引腳功能 63.1.2操作控制字 73.3溫度模塊DS18B20 83.4顯示模塊LCD1602 93.1.1LCM1602的接口信號(hào)說明如表4 93.5按鍵模塊 114軟件設(shè)計(jì) 124.1主程序流程圖設(shè)計(jì) 124.2程序設(shè)計(jì) 124.2.1DS1302讀寫程序設(shè)計(jì) 124.2.2溫度程序設(shè)計(jì) 165系統(tǒng)調(diào)試 195.1總體實(shí)現(xiàn) 195.2顯示實(shí)現(xiàn) 20結(jié)語 26參考文獻(xiàn) 271緒論時(shí)代在前進(jìn),社會(huì)在發(fā)展,技術(shù)也在不斷的創(chuàng)新,電子產(chǎn)品被廣泛的應(yīng)用于人們的生活當(dāng)中。于此同時(shí),人們對(duì)電子產(chǎn)品使用性能的要求也日漸提高,在日常生活中,電子萬年歷的智能化也在不斷地發(fā)展。1.1課題研究的背景在繁忙的都市生活中,每天都有新的技術(shù)誕生在這個(gè)世界上,高科技的時(shí)代已經(jīng)來到,電子產(chǎn)品的技能化日益增強(qiáng),工作的要求,學(xué)習(xí)的需要,都讓電子產(chǎn)品融入到我們的生活中。手機(jī)、電腦可以幫助我們獲取十分豐富的外界信息,但生活中還有許多與人類緊密相關(guān)的東西,像是溫度、時(shí)間、日期、星期等,于是便產(chǎn)生了多功能電子萬年歷,它集日期、時(shí)間、星期和溫度功能于一體,有非常多的優(yōu)點(diǎn),具有顯示清楚、功能明了、電路簡潔的特點(diǎn),適合今后作為電子儀器的發(fā)展。俗話說“時(shí)間就是金錢”。電子萬年歷十分符合現(xiàn)代人們的需求,滿足人們對(duì)時(shí)間與溫度的實(shí)時(shí)獲取。如今的部分單片機(jī)產(chǎn)品已歸為成熟,將敲響每一戶家門。1.2課題研究的目的與意義LCD液晶顯時(shí)明朗、走時(shí)直觀。功能日漸齊全。由于單片機(jī)擁有成熟的性能,良好的可靠性,低的功耗,良好的抗干擾能力和輕便快捷的使用能力等優(yōu)點(diǎn),且最近幾年發(fā)展迅速,單片機(jī)已經(jīng)應(yīng)用于許多產(chǎn)業(yè)。所以單片機(jī)技術(shù)為核心,軟硬件結(jié)合,設(shè)計(jì)出了功能多樣、電路簡潔,操作簡單,成本小等多項(xiàng)優(yōu)點(diǎn)的萬年歷系統(tǒng)。1.3課題研究的內(nèi)容本設(shè)計(jì)將單片機(jī)作為主打內(nèi)容,并引申出相應(yīng)的模塊,主要內(nèi)容有下面幾處,如表1.3.1所示:表1.3.1研究內(nèi)容內(nèi)容特點(diǎn)電子萬年歷芯片功能齊全、使用便捷、功耗低,擁有在線編程技術(shù)。外圍電路功能實(shí)在、易于實(shí)現(xiàn)。接口電路按照設(shè)計(jì)要求實(shí)現(xiàn),簡潔易懂。硬件電路考慮結(jié)構(gòu)的實(shí)用性,使用起來方便易懂;在開發(fā)板上選擇合適的元器件實(shí)現(xiàn)設(shè)計(jì)功能。軟件電路對(duì)程序進(jìn)行編程、編譯、調(diào)試等一系列操作,將程序下載到單片機(jī)上,完成本設(shè)計(jì)的功能。2系統(tǒng)設(shè)計(jì)方案為了實(shí)現(xiàn)本設(shè)計(jì)——基于單片機(jī)的多功能萬年歷系統(tǒng),將LED顯示器連接到三個(gè)8位74LS164串行接口,為了給單片機(jī)AT89S52進(jìn)行供電,采用RESPACK-8;單片機(jī)AT89S52連接時(shí)鐘DS1302芯片。2.1系統(tǒng)任務(wù)設(shè)計(jì)關(guān)于這個(gè)設(shè)計(jì),任務(wù)如下:1、以AT89S52單片機(jī)為核心。2、采用DS1302作為時(shí)鐘模塊芯片。3、采用DS18B20作為溫度模塊芯片。4、采用LCD1602作為顯示模塊芯片。5、通過五個(gè)按鍵,分別為復(fù)位鍵、加鍵、減鍵、功能鍵、移位鍵,來實(shí)現(xiàn)對(duì)時(shí)間、日期的實(shí)時(shí)調(diào)控。2.2系統(tǒng)方案設(shè)計(jì)按照電路系統(tǒng)軟件設(shè)計(jì)的功能要求,本電路系統(tǒng)由六個(gè)電路模塊軟件組成,分別設(shè)置為系統(tǒng)核心控制模塊、電源模塊、時(shí)鐘控制模塊、顯示控制模塊、按鍵控制模塊和電源溫度控制模塊,電路系統(tǒng)構(gòu)成電路框圖設(shè)計(jì)如圖1硬件電路框圖所示。圖1硬件電路框圖3硬件設(shè)計(jì)本產(chǎn)品的亮點(diǎn)是由AT89S52這一款單片機(jī)作為本設(shè)計(jì)的控制要素,操作起來非常的便捷,即使在超低壓環(huán)境中,它也能工作;選擇DS1302作為時(shí)鐘電路的芯片,它占內(nèi)存小,使用起來方便,并且性能優(yōu)異、在電路中功耗不大,可以長久的使用,可以對(duì)時(shí)間、日期來進(jìn)行計(jì)時(shí),能夠?qū)μ厥饽攴蓍c年進(jìn)行補(bǔ)償。溫度模塊的芯片選用的是比較熟悉的DS18B20傳感器,單根總線傳輸是作為它的功能之一,可以明顯的節(jié)省讀取單片機(jī)的溫度資源。采用LCD1602作為液晶顯示控制模塊的核心芯片,它的軟硬件設(shè)計(jì)制作簡單,可直接與其他單片機(jī)進(jìn)行接口,內(nèi)容廣泛顯示豐富,功耗小,成本低。3.1AT89S51單片機(jī)本系統(tǒng)采用的AT89S52單片機(jī),是由美國ATMEL公司推出的,首先來熟悉一下AT89S52單片機(jī)的外部引腳和主要特性,如圖3.3.1所示。圖3.1.1AT89S51引腳圖3.1.1單片機(jī)的引腳功能AT89S52單片機(jī)有40個(gè)引腳。VCC:電源電壓+5vGND:接地端p0口:一組8位專用電源開路漏極端口專用電源開路型雙向開關(guān)專用電源i/o口,也可說就是端口即專用電源輸入地址/專用總線電源數(shù)據(jù)復(fù)位端口。p1口/p2口:是一個(gè)具有帶輸出內(nèi)部上或下拉緩沖電阻的8位雙向緩沖i/o口,輸出內(nèi)部緩沖的一級(jí)電流可通過驅(qū)動(dòng)(同時(shí)吸收或增加輸出最大電流)4個(gè)串口ttl復(fù)位邏輯的入門電路。p3口:為控制電路可以是用于一組兩端分別帶一個(gè)內(nèi)部上升高壓下壓回拉器的穩(wěn)壓輸出電阻的8位雙向入門輸入邏輯i/o,輸出最大電流輸入緩沖器初級(jí)控制電路它也可以是用來吸收驅(qū)動(dòng)(同時(shí)分別吸收或驅(qū)動(dòng)增加兩個(gè)輸出最大輸入電流)4個(gè)復(fù)位輸入邏輯ttl復(fù)位輸入邏輯的雙向入門控制電路。RST:復(fù)位輸入。當(dāng)振蕩器工作時(shí),RST引腳出現(xiàn)兩個(gè)機(jī)器周期以上高電平將使單片機(jī)復(fù)位。le/prog:當(dāng)不被用戶允許訪問外部作為應(yīng)用程序數(shù)據(jù)處理器的存儲(chǔ)器或內(nèi)部使用數(shù)據(jù)處理器的存儲(chǔ)器時(shí),ale(用于讀入時(shí)的地址鎖存器不被用戶允許)可以讀入一個(gè)輸出作為地址輸入脈沖區(qū)的值,這是一個(gè)用于讀入作為地址鎖存器的輸入輸出地址的低8位進(jìn)制整數(shù)的小字節(jié)。ea/vpp:外部數(shù)據(jù)文件夾的訪問不被系統(tǒng)允許。欲正常網(wǎng)絡(luò)使用的話ecpu僅可以用于直接訪問外部網(wǎng)絡(luò)應(yīng)用程序文件中的地址存儲(chǔ)器(外部文件中的地址編碼格式為0000h—ffffh)。xtal1振蕩信號(hào)放大器外部紅內(nèi)反射正相信號(hào)振蕩放大器及內(nèi)部紅外反相信號(hào)時(shí)鐘器是信號(hào)振蕩發(fā)生器的兩個(gè)信號(hào)輸入端。xtal2振蕩器反相放大器的輸出端。3.1.2單片機(jī)的主要特性與MCS-51兼容4K字節(jié)可編程閃爍存儲(chǔ)器壽命:1000寫/擦循環(huán)數(shù)據(jù)保留時(shí)間:10年全靜態(tài)工作:0Hz-24Hz三級(jí)程序存儲(chǔ)器鎖定128*8位內(nèi)部RAM32可編程I/O線兩個(gè)16位定時(shí)器/計(jì)數(shù)器5個(gè)中斷源可編程串行通道低功耗的閑置和掉電模式片內(nèi)振蕩器和時(shí)鐘電路3.2時(shí)鐘模塊DS1302DS1302時(shí)鐘芯片如圖3.2.1所示,該芯片是由美國DALLAS公司推出的。該芯片性能高、功耗低、并且是自身帶有RAM的實(shí)時(shí)時(shí)鐘電路,采用32.768Khz的晶振,可對(duì)年、月、日、星期、時(shí)、分、秒進(jìn)行計(jì)時(shí),具有閏年補(bǔ)償功能。它不僅可同時(shí)采用多個(gè)串行接口與多個(gè)cpu串行接口同時(shí)進(jìn)行多個(gè)單位突發(fā)串行時(shí)鐘控制數(shù)據(jù),同時(shí)串行傳輸,并且也可同時(shí)串行采用多個(gè)單位串行突發(fā)時(shí)鐘控制數(shù)據(jù)方式,一次同時(shí)串行傳送多個(gè)大于整數(shù)單位字節(jié)的多個(gè)單位突發(fā)時(shí)鐘串行控制數(shù)據(jù)信號(hào)或多個(gè)ram單位串行控制數(shù)據(jù)。圖3.2.1DS1302時(shí)鐘芯片3.1.1單片機(jī)的引腳功能=1\*GB3①X1、X2:外接32768Hz晶振。=2\*GB3②SCLK:串行時(shí)鐘脈沖輸入端。=3\*GB3③I/O:串行數(shù)據(jù)輸入/輸出端。=4\*GB3④:復(fù)位/片選端。=0,DS1302復(fù)位;=1,允許對(duì)DS1302讀寫操作。=5\*GB3⑤Vcc1和Vcc2為主電源,接+5V電源;Vcc1為備用電源,可外接3.6V鋰電池。=6\*GB3⑥GND:接地端。圖DS1302的引腳3.1.2操作控制字操作控制字實(shí)際上是一個(gè)地址有著固定的結(jié)構(gòu),其中包含了操作對(duì)象和操作命令,如表3.3所示。表3.3DS1302操作控制字=1\*GB3①D7:操作使能位。1有效,允許操作;0無效,禁止操作。=2\*GB3②D6:操作數(shù)據(jù)區(qū)選擇位。1選擇操作RAM,0選擇操作時(shí)鐘。=3\*GB3③D5~D1:被操作單元A4~A0位地址,與其余各位共同組成操作單元8位地址信號(hào),即操作控制字。=4\*GB3④D0:讀寫選擇位。1表示進(jìn)行讀操作,0表示寫操作。因此,讀操作單元地址(控制字)均為奇數(shù),寫操作單元地址(控制字)均為偶數(shù)。=5\*GB3⑤讀寫DS1302首先要寫入操作控制字。3.1.3片內(nèi)寄存器DS1302內(nèi)部共有12個(gè)寄存器,具有時(shí)鐘讀寫、RAM讀寫、充電和寫保護(hù)等功能,如表3-4所示。表3-4DS1302寄存器3.3溫度模塊DS18B20DS18B20溫度傳感器是由美國DALLAS半導(dǎo)體公司推出的,如圖3.3.1所示,其技術(shù)性能如表3.3.2所示。圖3.3.1DS18B20芯片3.3.1DS18B20技術(shù)性能獨(dú)特的雙向通用接口,單線程雙接口方式實(shí)現(xiàn)主機(jī)通訊ds18b20在與多個(gè)單臺(tái)微處理器之間進(jìn)行數(shù)據(jù)連接時(shí)僅僅只不過需要一條單線程接口數(shù)據(jù)線即可使您主機(jī)即可輕松快速實(shí)現(xiàn)一個(gè)單臺(tái)微處理器與多臺(tái)主機(jī)之間ds18b20的雙向線程數(shù)據(jù)通訊。測(cè)溫范圍-55℃~+125℃支持多點(diǎn)組網(wǎng)功能,多個(gè)DS18B20可以并聯(lián)在唯一的三線上,最大只能并聯(lián)8個(gè),實(shí)現(xiàn)多點(diǎn)測(cè)溫,如果數(shù)量過多,會(huì)使供電電壓過低,從而造成信號(hào)傳輸?shù)牟环€(wěn)定。工作電源3.0~5.5V\DC外圍控制電路在實(shí)際使用中的ads18b20不一定需要任何的外圍控制電路。傳輸方式根據(jù)測(cè)量測(cè)試結(jié)果以9~12位高頻數(shù)字模擬量程的方式實(shí)現(xiàn)串行數(shù)據(jù)傳輸。3.3.1DS18B20工作原理DS18B20與DS1820有一樣的讀寫時(shí)序和測(cè)溫原理。DS18B20測(cè)溫原理如圖3.3.2所示。圖中受外界溫度變化影響不大的為低于高溫度頻率系數(shù)晶振,低于高溫度頻率系數(shù)晶振將其計(jì)數(shù)產(chǎn)生的固定脈沖頻率信號(hào)通過傳輸電路給溫度計(jì)數(shù)器一,用于計(jì)數(shù)產(chǎn)生固定脈沖頻率。改變最為強(qiáng)烈的晶振是高一定溫度的熱系數(shù)晶振,它因此在溫度發(fā)生變化時(shí)就會(huì)迅速產(chǎn)生信號(hào)振蕩和頻率大大改變的響應(yīng)結(jié)果,作為溫度計(jì)數(shù)器二的高頻脈沖信號(hào)輸入即為它溫度產(chǎn)生的改變結(jié)果。會(huì)對(duì)脈沖信號(hào)溫度進(jìn)行再次減法用來計(jì)數(shù)的這是因?yàn)槟愕挠?jì)數(shù)器一對(duì)低脈沖溫度頻率系數(shù)一對(duì)晶振脈沖產(chǎn)生的每個(gè)脈沖,當(dāng)把這個(gè)計(jì)數(shù)器一的脈沖預(yù)置參數(shù)值再次減到最小溫度直至0時(shí),就把脈沖溫度頻率寄存器的預(yù)置值再次加1,重新進(jìn)行裝入這個(gè)計(jì)數(shù)器一的脈沖預(yù)置,計(jì)數(shù)器一會(huì)再次減法進(jìn)行計(jì)數(shù),針對(duì)低脈沖溫度頻率系數(shù)一對(duì)晶振脈沖產(chǎn)生的每個(gè)脈沖溫度信號(hào),一直持續(xù)循環(huán)到你的計(jì)數(shù)器二,當(dāng)計(jì)數(shù)值減到0時(shí),讓脈沖溫度頻率寄存器的預(yù)置值暫時(shí)停止再次累加,此時(shí)所能量測(cè)到的脈沖溫度即為頻率寄存器預(yù)置中的脈沖數(shù)值。圖3.3.2測(cè)溫原理3.4顯示模塊LCD1602LCD1602液晶顯示器由液晶顯示屏和驅(qū)動(dòng)控制集成電路(HD44780)組成,分析其功能實(shí)際上主要是分析驅(qū)動(dòng)電路HD44780的功能。LCD1602的外形和引腳結(jié)構(gòu)圖3.4.1所示。 圖3.4.1LCD1602的外形和結(jié)構(gòu)引腳3.1.1LCM1602的接口信號(hào)說明如表4表4LCM1602的接口信號(hào)編號(hào)引腳符號(hào)功能說明編號(hào)引腳符號(hào)功能說明1VSS電源地1D2DATAI/O2VDD電源正極2D3DATAI/O3VL液晶顯示偏壓信號(hào)3D4DATAI/O4RS數(shù)據(jù)/命令選擇端(H/L)4D5DATAI/O5R/W讀/寫選擇端(H/L)5D6DATAI/O6E使能信號(hào)6D7DATAI/O7D0DATAI/O15BLA背光正極8D1DATAI/O16BLK背光負(fù)極2、基本操作時(shí)序如下:讀狀態(tài)RS=L,RW=HE=H寫指令RS=L,RW=L,D0~D7=指令碼E=高脈沖讀數(shù)據(jù)RS=H,RW=HE=H寫數(shù)據(jù)RS=H,RW=L,D0~D7=數(shù)據(jù)E=高脈沖3、初始化設(shè)置1)顯示模式設(shè)置如表5:表5顯示模式設(shè)置指令碼功能0000111111000000設(shè)置16*2顯示,5*7點(diǎn)陣,8位數(shù)據(jù)接口顯示開/關(guān)及光標(biāo)設(shè)置如表6:表6顯示開/關(guān)及光標(biāo)設(shè)置指令碼功能0000000011DDCCBBD=1開顯示;D=0關(guān)顯示C=1顯示光標(biāo);C=0不顯示光標(biāo)B=1光標(biāo)閃爍;B=0光標(biāo)不顯示000000000011NNSSN=1當(dāng)讀或?qū)懸粋€(gè)字符后地址指針加1,且光標(biāo)加1;N=0當(dāng)讀或?qū)懸粋€(gè)字符后地址指針減1,且光標(biāo)減1;S=1當(dāng)寫一個(gè)字符,整屏顯示左移(N=1)3.5按鍵模塊本系統(tǒng)用到了5個(gè)按鍵,其中一個(gè)用作系統(tǒng)手動(dòng)復(fù)位,另外4個(gè)采用獨(dú)立按鍵,該種接法查詢簡單,程序處理簡單,可節(jié)省CPU資源,按鍵電路如圖3.5.1所示。圖3.4獨(dú)立按鍵硬件結(jié)構(gòu)對(duì)以上4個(gè)按鍵作簡要說明:S2為功能鍵,S3為移位鍵,S4為功能加鍵,S5為功能減鍵。開始鍵:當(dāng)S2鍵按下時(shí),此鍵功能為開始校準(zhǔn)功能,屏幕顯示日期、時(shí)間和溫度。移位鍵:按下S3鍵進(jìn)入時(shí)間校準(zhǔn)狀態(tài),按一下進(jìn)入年調(diào)整,兩下進(jìn)入月調(diào)整,依此類推可進(jìn)行各年月日,時(shí)分秒以及星期的校準(zhǔn);功能加鍵:當(dāng)S5鍵按下時(shí),進(jìn)行時(shí)間、日期(年、月、日、時(shí)、分、秒、星期)的加操作;功能減鍵:當(dāng)S5鍵按下時(shí),進(jìn)行時(shí)間、日期(年、月、日、時(shí)、分、秒、星期)的減操作;
4軟件設(shè)計(jì)硬件設(shè)備主要為提供各電路模塊,而軟件部分主要是溫度、日期等模塊的程序設(shè)計(jì),最后設(shè)計(jì)再由LCD液晶顯示屏顯示出來。4.1主程序流程圖設(shè)計(jì)主程序用于初始化系統(tǒng)的各部分,以及程序調(diào)用。主程序流程圖如圖所示:圖4-2主程序流程圖4.2程序設(shè)計(jì)4.2.1DS1302讀寫程序設(shè)計(jì)此系統(tǒng)將單片機(jī)與時(shí)鐘芯片的連接作用來讀取有效時(shí)間,時(shí)鐘芯片DS1302根據(jù)SCLK端、I/O端、RST端,這三端的傳輸線與單片機(jī)連接,傳輸信號(hào),具體連接圖見系統(tǒng)硬件設(shè)計(jì)原理圖。讀取寫程序設(shè)計(jì)如下:sbitclk=P1^3; //ds1302時(shí)鐘線定義sbitio=P1^4; //數(shù)據(jù)線sbitrst=P1^5; //復(fù)位線 //秒分時(shí)日月年星期 ucharcodewrite_add[]={0x80,0x82,0x84,0x86,0x88,0x8c,0x8a};//寫地址ucharcoderead_add[]={0x81,0x83,0x85,0x87,0x89,0x8d,0x8b};//讀地址ucharcodeinit_ds[]={0x58,0x00,0x00,0x01,0x01,0x13,0x1};ucharmiao,fen,shi,ri,yue,week,nian;uchari;ucharfen1=0x11,shi1=0; //兩個(gè)鬧鐘變量的定義bitopen1;/*************寫一個(gè)數(shù)據(jù)到對(duì)應(yīng)的地址里***************/voidwrite_ds1302(ucharadd,uchardat){ rst=1; //把復(fù)位線拿高 for(i=0;i<8;i++) { //低位在前 clk=0; //時(shí)鐘線拿低開始寫數(shù)據(jù) io=add&0x01; add>>=1; //把地址右移一位 clk=1; //時(shí)鐘線拿高 } for(i=0;i<8;i++) { clk=0; //時(shí)鐘線拿低開始寫數(shù)據(jù) io=dat&0x01; dat>>=1; //把數(shù)據(jù)右移一位 clk=1; //時(shí)鐘線拿高 } rst=0; //復(fù)位線合低 clk=0; io=0;}/*************從對(duì)應(yīng)的地址讀一個(gè)數(shù)據(jù)出來***************/ucharread_ds1302(ucharadd){ ucharvalue,i; rst=1; //把復(fù)位線拿高 for(i=0;i<8;i++) { //低位在前 clk=0; //時(shí)鐘線拿低開始寫數(shù)據(jù) io=add&0x01; add>>=1; //把地址右移一位 clk=1; //時(shí)鐘線拿高 } for(i=0;i<8;i++) { clk=0; //時(shí)鐘線拿低開始讀數(shù)據(jù) value>>=1; if(io==1) value|=0x80; clk=1; //時(shí)鐘線拿高 } rst=0; //復(fù)位線合低 clk=0; io=0; returnvalue; //返回讀出來的數(shù)據(jù)}/*************把要的時(shí)間年月日都讀出來***************/voidread_time(){ miao=read_ds1302(read_add[0]); //讀秒 fen=read_ds1302(read_add[1]); //讀分 shi=read_ds1302(read_add[2]); //讀時(shí) ri=read_ds1302(read_add[3]); //讀日 yue=read_ds1302(read_add[4]); //讀月 nian=read_ds1302(read_add[5]); //讀年 week=read_ds1302(read_add[6]); //讀星期 Conversion(0,nian,yue,ri); //農(nóng)歷轉(zhuǎn)換 n_nian=year_moon; n_yue=month_moon; n_ri=day_moon;}/*************把要寫的時(shí)間年月日都寫入ds1302里***************/voidwrite_time(){ write_ds1302(0x8e,0x00); //打開寫保護(hù) write_ds1302(write_add[0],miao); //寫秒 write_ds1302(write_add[1],fen); //寫分 write_ds1302(write_add[2],shi); //寫時(shí) write_ds1302(write_add[3],ri); //寫日 write_ds1302(write_add[4],yue); //寫月 write_ds1302(write_add[5],nian); //寫星期 write_ds1302(write_add[6],week); //寫年 write_ds1302(0x8e,0x80); //關(guān)閉寫保護(hù)}/*************把數(shù)據(jù)保存到ds1302RAM中**0-31*************/voidwrite_ds1302ram(ucharadd,uchardat){ add<<=1;//地址是從第二位開始的 add&=0xfe;//把最低位清零是寫的命令 add|=0xc0;//地址最高兩位為1 write_ds1302(0x8e,0x00); write_ds1302(add,dat); write_ds1302(0x8e,0x80);}/*************把數(shù)據(jù)從ds1302RAM讀出來**0-31*************/ucharread_ds1302ram(ucharadd){ add<<=1;//地址是從第二位開始的 add|=0x01;//把最高位置1是讀命令 add|=0xc0;//地址最高兩位為1 return(read_ds1302(add)); }/*************初始化ds1302時(shí)間***************/voidinit_ds1302(){ uchari; rst=0; //第一次讀寫數(shù)據(jù)時(shí)要把IO品拿低 clk=0; io=0; i=read_ds1302ram(30); if(i!=3) { i=3; write_ds1302ram(30,i); //40504100 3080 write_ds1302(0x8e,0x00); //打開寫保護(hù) for(i=0;i<7;i++) write_ds1302(write_add[i],init_ds[i]); //把最高位值0允許ds1302工作 write_ds1302(0x8e,0x80); //關(guān)寫保護(hù) }}4.2.2溫度程序設(shè)計(jì)單總線上最基本的操作有初始化、寫和讀3種,所有其它的操作都由這3種基本操作組合而成,初始化用于對(duì)總線上的器件進(jìn)行狀態(tài)復(fù)位,寫用于主節(jié)點(diǎn)向總線上寫入一位數(shù)據(jù),讀用于主節(jié)點(diǎn)從總線上讀取一位數(shù)據(jù)。在這3種操作中,只有寫操作是單向的,初始化操作和讀操作都是雙向的。具體程序設(shè)計(jì)如下:byteow_reset(void){bytepresence;DQ=0;//拉低總線delay(29);//保持480usDQ=1;//釋放總線delay(3);//等待回復(fù)presence=DQ;//讀取信號(hào)delay(25);//等待結(jié)束信號(hào)return(presence);//返回0:正常1:不存在}//從1-wire總線上讀取一個(gè)字節(jié)byteread_byte(void){bytei;bytevalue=0;for(i=8;i>0;i--){value>>=1;DQ=0;DQ=1;delay(1);if(DQ)value|=0x80;delay(6);}return(value);}//向1-WIRE總線上寫一個(gè)字節(jié)voidwrite_byte(charval){bytei;for(i=8;i>0;i--)//一次寫一位{DQ=0;//DQ=val&0x01;delay(5);//DQ=1;val=val/2;}delay(5);}
5系統(tǒng)調(diào)試硬件與軟件所構(gòu)成的整體,使整個(gè)系統(tǒng)可以按照設(shè)計(jì)要求運(yùn)轉(zhuǎn),以下主要講述了該系統(tǒng)的調(diào)試與實(shí)現(xiàn)問題。5.1總體實(shí)現(xiàn)本文設(shè)計(jì)多功能萬年歷系統(tǒng),可在系統(tǒng)工作時(shí)讀取LCD顯示屏的時(shí)間、日期、溫度,相較準(zhǔn)確的顯示出數(shù)值信息。根據(jù)五個(gè)獨(dú)立按鍵功能,分別為功能鍵、移位鍵、加鍵、減鍵和復(fù)位鍵,可實(shí)現(xiàn)對(duì)日期、時(shí)間和溫度的實(shí)時(shí)調(diào)控。本系統(tǒng)在通電后,初始化顯示屏,軟件程序燒錄后,進(jìn)行不斷地調(diào)試和數(shù)據(jù)精準(zhǔn)化后,各個(gè)模塊相繼工作,顯示屏上顯示出時(shí)間、日期、星期和溫度信息。本電路供電電壓為3-5V,在系統(tǒng)接通電源后,按下電路板開關(guān),LCD顯示屏便會(huì)亮,表示電路已處于接通狀態(tài),可正常的工作。系統(tǒng)的實(shí)物圖為接通電源時(shí)如圖5-1,接通電源后圖5-2所示,第一行顯示的是年、月、日、星期,第二行顯示的是時(shí)、分、秒和溫度。圖5-1未通電實(shí)物圖圖5-2系統(tǒng)實(shí)物圖5.2顯示實(shí)現(xiàn)對(duì)于功能的實(shí)現(xiàn),如圖所示。如圖5-3按鍵功能圖5-4按鍵實(shí)物圖S2鍵為開始,按下S2鍵后光標(biāo)閃爍,首先年閃爍,等待修改,按下S3鍵選擇需要修改的值,按照年、月、日、時(shí)、分、秒、星期的順序循環(huán)選擇。第一次修改年份,按下S4鍵(加按鍵)有效,年份的值加1,按下S5鍵(減按鍵)有效,年份數(shù)值減1,如圖5-5所示。圖5-5年份修改年份值修改完畢后,按下S3鍵進(jìn)入修改月份值,對(duì)應(yīng)光標(biāo)閃爍,按下S4鍵(加按鍵)有效,月份的值加1,按下S5鍵(減按鍵)有效,月份的數(shù)值減1,如圖5-6所示。圖5-6月份修改月份值修改完畢后,按下K1鍵進(jìn)入日調(diào)整程序,修改日值,對(duì)應(yīng)光標(biāo)閃爍,按下S4鍵(加按鍵)有效,日的值加1,按下S5鍵(減按鍵)有效,日的數(shù)值減1,如圖5-7所示。圖5-7日修改日的值修改完畢后,按下S3鍵進(jìn)入小時(shí)調(diào)整程序,修改小時(shí)數(shù)值,對(duì)應(yīng)光標(biāo)閃爍,按下S4鍵(加按鍵)有效,小時(shí)的值加1,按下S5鍵(減按鍵)有效,日小時(shí)的數(shù)值減1,如圖5-8所示。圖5-8小時(shí)修改小時(shí)的值修改完畢后,按下S3鍵進(jìn)入分鐘調(diào)整程序,修改分鐘的值,對(duì)應(yīng)光標(biāo)閃爍,按下S4鍵(加按鍵)有效,分鐘的值加1,按下S5鍵(減按鍵)有效,分鐘的數(shù)值減1,如圖5-9所示。圖5-9分鐘修改分鐘的值修改完畢后,按下S3鍵進(jìn)入秒鐘調(diào)整程序,修改秒鐘的值,對(duì)應(yīng)光標(biāo)閃爍,按下S4鍵(加按鍵)有效,秒鐘的值加1,按下S5鍵(減按鍵)有效,秒鐘的數(shù)值減1,如圖5-10所示。圖5-10秒鐘修改秒鐘的值修改完畢后,按下S3鍵進(jìn)入星期調(diào)整程序,修改星期的值,對(duì)應(yīng)光標(biāo)閃爍,按下S4鍵(加按鍵)有效,星期的值加1,按下S5鍵(減按鍵)有效,星期的數(shù)值減1,如圖5-11所示。圖5-11星期修改所有值修改完畢后釋放S2鍵,跳出循環(huán),進(jìn)入自動(dòng)計(jì)時(shí)狀態(tài)。結(jié)語本文根據(jù)市場(chǎng)走訪調(diào)查,在導(dǎo)師的幫助下最終確定了此次項(xiàng)目主體“基于單片機(jī)的多功能萬年歷系統(tǒng)設(shè)計(jì)”,在導(dǎo)師的幫助下現(xiàn)已完成此設(shè)計(jì)。最終的設(shè)計(jì)具有以下功能:1、可在LCD上顯示年、月、日、時(shí)、分、秒、星期、溫度。2、可通過獨(dú)立按鍵對(duì)日期、時(shí)間、溫度進(jìn)行更改。對(duì)于本次所使用的芯片都是低功耗,使用率高的芯片,溫度傳感器DS18B20擁有單根總線傳輸功能,使用起來方便。時(shí)鐘芯片DS1302也是高性能的時(shí)鐘芯片,使用方便。通過一塊AT89S52開發(fā)板來為系統(tǒng)進(jìn)行調(diào)試,選擇用Keil、STC等軟件再加上自己搭建的外圍電路、硬件電路和軟件電路實(shí)現(xiàn)的。本設(shè)計(jì)具有良好的社會(huì)發(fā)展前景,可應(yīng)用于多樣化的場(chǎng)景中,但也有許多的進(jìn)步空間,每一樣設(shè)計(jì)都無止境,需多加創(chuàng)新。整個(gè)設(shè)計(jì)在閱資料,尋求幫助中已完滿完成,這個(gè)過程中,充分的感受到了深深的滿足感,不僅在專業(yè)知識(shí)上有了進(jìn)步,也讓我在動(dòng)手能力和思維能力上有了極大的提升。獨(dú)立完成本次
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 焦化廠料棚衛(wèi)生標(biāo)準(zhǔn)制度
- 樓道衛(wèi)生值日制度
- 豬場(chǎng)內(nèi)環(huán)境衛(wèi)生管理制度
- 洗衣房內(nèi)務(wù)衛(wèi)生管理制度
- 歐洲近代衛(wèi)生制度
- 鄉(xiāng)政府衛(wèi)生防疫管理制度
- 衛(wèi)生室管理制度
- 衛(wèi)生院述職測(cè)評(píng)制度
- 瀝青站環(huán)境衛(wèi)生制度
- 浴足店衛(wèi)生管理制度
- 長護(hù)險(xiǎn)人員管理培訓(xùn)制度
- 2026河南大學(xué)附屬中學(xué)招聘77人備考題庫附答案
- 網(wǎng)絡(luò)安全運(yùn)維與管理規(guī)范(標(biāo)準(zhǔn)版)
- 液冷系統(tǒng)防漏液和漏液檢測(cè)設(shè)計(jì)研究報(bào)告
- 妊娠期缺鐵性貧血中西醫(yī)結(jié)合診療指南-公示稿
- 金蝶合作協(xié)議書
- 2025年工廠三級(jí)安全教育考試卷含答案
- 2026年上海理工大學(xué)單招職業(yè)適應(yīng)性測(cè)試題庫附答案
- 建設(shè)用地報(bào)批培訓(xùn)課件
- 化肥產(chǎn)品生產(chǎn)許可證實(shí)施細(xì)則(一)(復(fù)肥產(chǎn)品部分)2025
- 2025至2030中國醫(yī)療收入周期管理軟件行業(yè)深度研究及發(fā)展前景投資評(píng)估分析
評(píng)論
0/150
提交評(píng)論