基于單片機(jī)的萬年歷加溫度顯示設(shè)計(jì)畢業(yè)設(shè)計(jì)_第1頁
基于單片機(jī)的萬年歷加溫度顯示設(shè)計(jì)畢業(yè)設(shè)計(jì)_第2頁
基于單片機(jī)的萬年歷加溫度顯示設(shè)計(jì)畢業(yè)設(shè)計(jì)_第3頁
基于單片機(jī)的萬年歷加溫度顯示設(shè)計(jì)畢業(yè)設(shè)計(jì)_第4頁
基于單片機(jī)的萬年歷加溫度顯示設(shè)計(jì)畢業(yè)設(shè)計(jì)_第5頁
已閱讀5頁,還剩87頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

基于單片機(jī)的萬年歷加溫度顯示設(shè)計(jì)摘要本設(shè)計(jì)將制作一種基于單片機(jī)控制的帶實(shí)時(shí)溫度顯示、具有定時(shí)功能的電子萬年歷。傳統(tǒng)的電子日歷大都體積大,功耗大,顯示不準(zhǔn)確等特點(diǎn)。為了縮小體積,減小功耗,使其變得小巧靈敏,本設(shè)計(jì)加入了時(shí)鐘芯片DS1302,可對(duì)時(shí)間進(jìn)行準(zhǔn)確記時(shí),同時(shí)可設(shè)置定時(shí)時(shí)間,實(shí)現(xiàn)定時(shí)功能。另外本設(shè)計(jì)具有顯示實(shí)時(shí)溫度的功能。傳統(tǒng)的溫度傳感器系統(tǒng)大都采用放大、調(diào)理、A/D轉(zhuǎn)換,轉(zhuǎn)換后的數(shù)字信號(hào)送入計(jì)算機(jī)處理,處理電路復(fù)雜、可靠性相對(duì)較差,占用計(jì)算機(jī)的資源比較多。本設(shè)計(jì)將采用DS18B20一線制數(shù)字溫度傳感器,可將溫度信號(hào)直接轉(zhuǎn)換成數(shù)字信號(hào)送給微處理器,電路簡單,成本低,實(shí)現(xiàn)了時(shí)間溫度同時(shí)顯示的效果。最后,溫度和時(shí)間都將通過12864液晶顯示器進(jìn)行顯示。測試表明系統(tǒng)達(dá)到了設(shè)計(jì)要求的各項(xiàng)功能,各部分工作正常。關(guān)鍵詞時(shí)鐘/溫度檢測/單片機(jī)/溫度mICROCONTROLLER-BASHEDCALENDERANDTEMPERATUREDISPLAYDESIGNABSTRACTThisdesigncreatesanelectroniccalendarwithreal-timetemperaturedisplayandtimingfunctionbasedonsinglechipcontrol.Mostoftraditionalcalendarsarecharacterizedbylargesize,highpowerconsumptionandinaccuratedisplay.Inordertoreducevolumeandpowerconsumptionandmakecalendarsbecomesmallandexquisite,thedesignaddsaclockchipDS1302,whichcanaccuratelyrecordthetimeandsetaregulartimetoachievetimingfunction.Inaddition,thisdesigndisplaysreal-timetemperaturefunction.Traditionaltemperaturesensorsystemismostlyamplified,recuperatedandA/Dconverted.Theconverteddigitalsignalisinputthecomputertobeprocessed,buttheprocessingcircuitiscomplicatedwithrelativelypoorreliabilityandoccupiesmoreresourcesofthecomputer.ThisdesignusestheDS18B20first-linesystemdigitaltemperaturesensortodirectlyconvertthetemperaturesignalintodigitalsignalandsenditthemicroprocessor,whosecircuitissimpleandlowcost,achievingthedisplayedeffectoftimeandtemperaturesimultaneously.Finally,thetemperatureandtimewillbedisplayedthroughthe12864liquidcrystaldisplay.Thetestindicatesthatthesystemhasreachedvariousfunctionsofthedesignrequirementsandeachpartoperatessmoothly.KEYWORDSclock,temperaturedetection,SCM,temperature目錄中文摘要 I英文摘要 II1概論 11.1萬年歷發(fā)展背景 11.2電子萬年歷的特點(diǎn) 11.3國內(nèi)外現(xiàn)狀、發(fā)展 12系統(tǒng)基本方案選擇和論證 22.1單片機(jī)芯片的選擇方案和論證 22.2顯示模塊的選擇方案和論證 32.3時(shí)鐘芯片的選擇方案和論證 42.4溫度傳感器的選擇方案和論證 42.5電路設(shè)計(jì)最終方案確定 53系統(tǒng)硬件電路設(shè)計(jì) 63.1系統(tǒng)功能模塊劃分 63.2各單元模塊功能分析及模塊電路設(shè)計(jì) 63.2.1時(shí)鐘模塊 63.2.2溫度模塊 73.2.3顯示模塊 103.2.5獨(dú)立鍵盤模塊 193.2.6蜂鳴器模塊 203.2.7單片機(jī)模塊 213.3電路原理圖的繪制和電路的焊接 243.3.1原理圖繪制軟件PROTEL 243.3.2PCB制作 243.3.3元器件的焊接 254系統(tǒng)軟件設(shè)計(jì) 274.1萬年歷軟件系統(tǒng)的流程圖 274.2溫度信息的采集 284.3時(shí)鐘的讀取 314.3.1DS1302控制字節(jié)的說明 314.3.2DS1302時(shí)間日期寄存器及相應(yīng)位定義 324.3.3DS1302數(shù)據(jù)的輸入和輸出 324.3.4DS1302讀寫部分(程序)部分 334.4溫度的顯示控制 334.5鍵盤模塊 354.6蜂鳴器模塊 355設(shè)計(jì)總結(jié) 36致謝 37參考文獻(xiàn) 38附錄 391概論1.1萬年歷發(fā)展背景隨著電子技術(shù)的發(fā)展,人類不斷研究,不斷創(chuàng)新紀(jì)錄。萬年歷目前已經(jīng)不再局限于以書本形式出現(xiàn)。以電腦軟件或者電子產(chǎn)品形式出現(xiàn)的萬年歷被稱為電子萬年歷。與傳統(tǒng)書本形式的萬年歷相比,電子萬年歷得到了越來越廣泛的應(yīng)用,采用電子時(shí)鐘作為時(shí)間顯示已經(jīng)成為一種時(shí)尚。目前市場上各式各樣的電子時(shí)鐘數(shù)不勝數(shù),但多數(shù)是只針對(duì)時(shí)間顯示,功能單一不能滿足人們?nèi)粘I钚枨蟆?.2電子萬年歷的特點(diǎn)電子萬年歷顯示功能,包括公歷年、月、日,時(shí)間、溫度、星期、農(nóng)歷等等;附帶功能有:定時(shí)鬧鈴、以及按鈕是否可以正常調(diào)動(dòng)。本文提出了一種基于STC12C5A60S2單片機(jī)的萬年歷設(shè)計(jì)方案,采用LCD顯示。本方案以STC12C5A60S2單片機(jī)作為主控核心,與時(shí)鐘芯片DS1302、溫度芯片DS18B20、人體紅外感應(yīng)模塊、鬧鐘模塊、按鍵、LCD顯示等模塊組成硬件系統(tǒng)。在硬件系統(tǒng)中設(shè)有7個(gè)獨(dú)立按鍵和一個(gè)LCD顯示器,能顯示豐富的信息,根據(jù)使用者的需要可以隨時(shí)對(duì)時(shí)間進(jìn)行校準(zhǔn)、時(shí)間、溫度顯示等,綜上所述此萬年歷具有讀取方便、顯示直觀、功能多樣、電路簡潔、成本低廉等諸多優(yōu)點(diǎn),符合電子儀器儀表的發(fā)展趨勢,具有廣闊的市場前景。1.3國內(nèi)外現(xiàn)狀、發(fā)展隨著電子技術(shù)的迅速發(fā)展,特別是隨大規(guī)模集成電路出現(xiàn),給人類生活帶來了根本性的改變。尤其是單片機(jī)技術(shù)的應(yīng)用產(chǎn)品已經(jīng)走進(jìn)了千家萬戶。電子萬年歷的出現(xiàn)給人們的生活帶來的諸多方便。萬年歷中使用的LCD的應(yīng)用很廣泛,如手表上的液晶顯示屏,儀表儀器上的液晶顯示器或者是電腦筆記本上的液晶顯示器,都使用了LCD。在一般的辦公設(shè)備上也很常見,如傳真機(jī),復(fù)印機(jī),以及一些娛樂器材玩具等也常常見到LCD的足跡。字符型液晶顯示模塊是一種專門用于顯示字母,數(shù)字,符號(hào)等的點(diǎn)陣式液晶顯示模塊。在顯示器件上的設(shè)計(jì),它是由若干個(gè)5×7或5×11等點(diǎn)陣符位組成。每一個(gè)點(diǎn)陣字符位都可以顯示一個(gè)字符。點(diǎn)陣字符位之間有一空點(diǎn)距的間隔起到了字符間距和行距的作用。目前市面上常用的有16字×1行,16字×2行,20字×2行和40字×2行等的字符模塊組。這些LCD雖然顯示字?jǐn)?shù)各不相同,但是都具有相同的輸入輸出界面。市場上有許多電子萬年歷的專用芯片,如:LM8363、LM8365等,但它們功能單一,電路連接復(fù)雜,不便于調(diào)試制作。因此本系統(tǒng)采用了以STC12C5A60S2單片機(jī)技術(shù)為核心,配合DS18B20溫度測量模塊,DS1302時(shí)鐘模塊,人體感應(yīng)模塊,LCD顯示模塊,鍵盤模塊使該設(shè)計(jì)具有現(xiàn)實(shí)功能齊全,人機(jī)交互,節(jié)能的特點(diǎn)。隨著單片機(jī)的發(fā)展,電子萬年歷呈現(xiàn)了微型化,功能豐富化的趨勢,而且價(jià)格在不斷下降,考慮到資源問題,現(xiàn)在的設(shè)計(jì)設(shè)計(jì)的萬年歷都采用了節(jié)能設(shè)計(jì)方案,萬年歷對(duì)人們的生活有著十分重要的作用,所以電子萬年歷還是有很大的發(fā)展前景的。2系統(tǒng)基本方案選擇和論證2.1單片機(jī)芯片的選擇方案和論證方案一:采用89C51芯片作為硬件核心,89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器,采用FlashROM,內(nèi)部具有4KBROM存儲(chǔ)空間,能于3V的超低壓工作,而且與MCS-51系列單片機(jī)完全兼容,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,89C51是一種高效微控制器,51單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案但是運(yùn)用于電路設(shè)計(jì)中時(shí)由于不具備在線編程(ISP)技術(shù),當(dāng)在對(duì)電路進(jìn)行調(diào)試時(shí),由于程序的錯(cuò)誤修改或?qū)Τ绦虻男略龉δ苄枰獰氤绦驎r(shí),對(duì)芯片的多次拔插可能對(duì)芯片造成一定的損壞。方案二:采用STC12C5A60S2單片機(jī),STC12C5A60S2單片機(jī)是宏晶科技生產(chǎn)的單時(shí)鐘/機(jī)器周期(1T)的單片機(jī),是高速/低功耗/超強(qiáng)抗干擾的新一代8051單片機(jī),指令代碼完全兼容傳統(tǒng)8051,但速度快8-12倍。內(nèi)部集成MAX810專用復(fù)位電路,2路PWM,8路高速10位A/D轉(zhuǎn)換,針對(duì)電機(jī)控制,強(qiáng)干擾場。STC12C5A60S2單片機(jī)內(nèi)部有60KB的程序Flash存儲(chǔ)器,1KB的數(shù)據(jù)Flash存儲(chǔ)器,具有在線編程可擦除技術(shù),當(dāng)在對(duì)電路進(jìn)行調(diào)試時(shí),由于程序的錯(cuò)誤修改或?qū)Τ绦虻男略龉δ苄枰獰氤绦驎r(shí),不需要對(duì)芯片多次拔插,所以不會(huì)對(duì)芯片造成損壞。由于我們?cè)O(shè)計(jì)的萬年歷燒寫文件大概在40KB左右,而STC12C5A60S2單片機(jī)的程序Flash為60KB,我們就不用在外接程序存儲(chǔ)器了。萬年歷的程序復(fù)雜,采用1T單片機(jī)有利于提高運(yùn)算速度,使萬年歷顯示更快捷。經(jīng)過綜合比較最終選擇方案二,即選擇STC12C5A60S2作為主控制器。2.2顯示模塊的選擇方案和論證方案一:中文字庫的LCD12864是一種具有4位/8位并行、2線或3線串行多種接口方式,內(nèi)部含有國標(biāo)一級(jí)、二級(jí)簡體中文字庫的點(diǎn)陣圖形液晶顯示模塊;其顯示分辨率為128×64,內(nèi)置8192個(gè)16*16點(diǎn)漢字,和128個(gè)16*8點(diǎn)ASCII字符集。利用該模塊靈活的接口方式和簡單、方便的操作指令,可構(gòu)成全中文人機(jī)交互圖形界面。可以顯示8×4行16×16點(diǎn)陣的漢字,也可完成圖形顯示,低電壓低功耗是其又一顯著特點(diǎn)。由該模塊構(gòu)成的液晶顯示方案與同類型的圖形點(diǎn)陣液晶顯示模塊相比,不論硬件電路結(jié)構(gòu)或顯示程序都要簡潔得多,且該模塊的價(jià)格也略低于相同點(diǎn)陣的圖形液晶模塊。萬年歷要求顯示年月日、時(shí)分秒、星期、和農(nóng)歷。LCD12864液晶可以完成設(shè)計(jì)的要求。方案二:系統(tǒng)采用LED顯示。LED應(yīng)用可分為兩大類:一是LED單管應(yīng)用,包括背光源LED,紅外線LED等;另外就是LED顯示屏,目前,中國在LED基礎(chǔ)材料制造方面與國際還存在著一定的差距,但就LED顯示屏而言,中國的設(shè)計(jì)和生產(chǎn)技術(shù)水平基本與國際同步。LED顯示屏是由發(fā)光二極管排列組成的顯示器件。它采用低電壓掃描驅(qū)動(dòng),具有:耗電少、使用壽命長、成本低、亮度高、故障少、視角大、可視距離遠(yuǎn)等特點(diǎn)。采用LED數(shù)碼管動(dòng)態(tài)掃描.價(jià)格上比較經(jīng)濟(jì)實(shí)惠,但不能顯示文字,性價(jià)比不是很高,操作起來比較液晶顯示來說略顯繁瑣,所以也不用此種作為顯示。經(jīng)過綜合比較最終選擇方案一,即選擇LCD12864液晶顯示屏。2.3時(shí)鐘芯片的選擇方案和論證方案一:采用單片機(jī)定時(shí)。單片機(jī)集成度高、功能強(qiáng)、可靠性高、體積小、功耗低、使用方便、價(jià)格低廉等一系列優(yōu)點(diǎn),單片機(jī)的應(yīng)用領(lǐng)域已從面向工業(yè)控制、通訊、交通、智能儀表等迅速發(fā)展到家用消費(fèi)產(chǎn)品、辦公自動(dòng)化、汽車電子、PC機(jī)外圍以及網(wǎng)絡(luò)通訊等廣大領(lǐng)域。直接采用單片機(jī)定時(shí)計(jì)數(shù)器提供秒信號(hào),計(jì)數(shù)的脈沖由外部提供,定時(shí)的脈沖由外部晶振提供,定時(shí)加1的周期為一個(gè)機(jī)器周期;定時(shí)時(shí)間與初值和晶振頻率有關(guān)。使用程序?qū)崿F(xiàn)年、月、日、星期、時(shí)、分、秒計(jì)數(shù)。采用此種方案減少芯片的使用,節(jié)約成本,但程序復(fù)雜度較高。方案二:采用DS1302時(shí)鐘芯片。DS1302是美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實(shí)時(shí)時(shí)鐘電路,它可以對(duì)年、月、日、星期、時(shí)、分、秒進(jìn)行計(jì)時(shí),具有閏年補(bǔ)償功能,工作電壓為2.5V~5.5V。采用雙電源供電(主電源和備用電源),可設(shè)置備用電源充電方式,提供了對(duì)后背電源進(jìn)行涓細(xì)電流充電的能力。DS1302用于數(shù)據(jù)記錄,特別是對(duì)某些具有特殊意義的數(shù)據(jù)點(diǎn)的記錄上,能實(shí)現(xiàn)數(shù)據(jù)與出現(xiàn)該數(shù)據(jù)的時(shí)間同時(shí)記錄,因此廣泛應(yīng)用于測量系統(tǒng)中。采用三線接口與CPU進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)或RAM數(shù)據(jù)。DS1302內(nèi)部有一個(gè)31×8的用于臨時(shí)性存放數(shù)據(jù)的RAM寄存器。采用DS1302只需要寫出驅(qū)動(dòng)程序,調(diào)用程序讀出寄存器內(nèi)數(shù)據(jù)經(jīng)過簡單的變換就可以輸出萬年歷的數(shù)據(jù)。經(jīng)過綜合比較最終選擇方案二,即采用DS1302時(shí)鐘芯片。2.4溫度傳感器的選擇方案和論證方案一:采用熱敏電阻作為溫度傳感器。熱敏電阻是開發(fā)早、種類多、發(fā)展較成熟的敏感元器件。熱敏電阻由半導(dǎo)體陶瓷材料組成,利用的原理是溫度引起電阻變化。熱敏電阻的主要特點(diǎn)是:靈敏度較高,其電阻溫度系數(shù)要比金屬大10~100倍以上;工作溫度范圍寬,常溫器件適用于-55℃~315℃,高溫器件適用溫度高于315℃(目前最高可達(dá)到2000℃)低溫器件適用于-273℃~55℃;體積小,能夠測量其他溫度計(jì)無法測量的空隙、腔體及生物體內(nèi)血管的溫度;使用方便,電阻值可在0.1~100kΩ間任意選擇;易加工成復(fù)雜的形狀,可大批量生產(chǎn);穩(wěn)定性好、過載能力強(qiáng)。由于半導(dǎo)體熱敏電阻有獨(dú)特的性能,所以在應(yīng)用方面它不僅可以作為測量元件(如測量溫度、流量、液位等),還可以作為控制元件(如熱敏開關(guān)、限流器)和電路補(bǔ)償元件。熱敏電阻廣泛用于家用電器、電力工業(yè)、通訊、軍事科學(xué)、宇航等各個(gè)領(lǐng)域,發(fā)展前景極其廣闊。

使用熱敏電阻作為傳感器,用熱敏電阻與一個(gè)相應(yīng)阻值電阻相串聯(lián)分壓,利用熱敏電阻阻值隨溫度變化而變化的特性,采集這兩個(gè)電阻變化的分壓值,并進(jìn)行A/D轉(zhuǎn)換。此設(shè)計(jì)方案需用A/D轉(zhuǎn)換電路,增加硬件成本而且熱敏電阻的感溫特性曲線并不是嚴(yán)格線性的,會(huì)產(chǎn)生較大的測量誤差。方案二:采用DS18B20溫度傳感器。在應(yīng)用與高精度、高可靠性的場合時(shí)DALLAS(達(dá)拉斯)公司生產(chǎn)的DS18B20溫度傳感器當(dāng)仁不讓。超小的體積,超低的硬件開消,抗干擾能力強(qiáng),精度高,附加功能強(qiáng),使得DS18B20更受歡迎。對(duì)于我們普通的電子愛好者來說,DS18B20的優(yōu)勢更是我們學(xué)習(xí)單片機(jī)技術(shù)和開發(fā)溫度相關(guān)的小產(chǎn)品的不二選擇。這是世界上第一片支持“一線總線”接口的溫度傳感器。DS18B20數(shù)字溫度計(jì)提供9位(二進(jìn)制)溫度讀數(shù),指示器件的溫度。信息經(jīng)過單線接口送入DS18B20或從DS18B20送出,因此從單片機(jī)到DS18B20僅需一條線連接即可。它可在1秒鐘(典型值)內(nèi)把溫度變換成數(shù)字經(jīng)過綜合比較最終選擇方案二,即采用采用DS18B20溫度傳感器。2.5電路設(shè)計(jì)最終方案確定 最終選擇單片機(jī)STC12C5A60S2作為主控制器;選擇LCD12864型液晶作為顯示模塊,此模塊可以顯示字母、數(shù)字符號(hào)、中文字型及圖形,具有繪圖及文字畫面混合顯示功能;選擇采用DS1302時(shí)鐘芯片,使程序?qū)崿F(xiàn)年、月、日、星期、時(shí)、分、秒,即農(nóng)歷陽歷時(shí)間的顯示。采用DS18B20溫度傳感器,可以對(duì)溫度做出比較精確的測量,而且和單片機(jī)通訊只要一個(gè)IO,連接方便。3系統(tǒng)硬件電路設(shè)計(jì)3.1系統(tǒng)功能模塊劃分根據(jù)系統(tǒng)功能要求,可大致畫出系統(tǒng)所需硬件結(jié)構(gòu)框圖如圖3-1所示:圖3-1系統(tǒng)功能模塊圖主控模塊采用性價(jià)比較高的STC12C5A60S2單片機(jī)芯片,在其內(nèi)部燒寫好程序,可通過程序的運(yùn)行控制測溫模塊進(jìn)行測溫;測溫模塊主要是由DS18B20構(gòu)成,將其與所測對(duì)象進(jìn)行接觸即可獲取被測對(duì)象的溫度數(shù)據(jù),而所測得的溫度和時(shí)鐘芯片測得的實(shí)時(shí)日歷將通過顯示模塊的液晶顯示器以數(shù)字形式顯示;單片機(jī)調(diào)用程序,讀取DS1302內(nèi)寄存器,可以得到萬年歷的時(shí)間數(shù)據(jù),經(jīng)過程序處理就可以輸出在LCD上;鍵盤電路可對(duì)實(shí)時(shí)日歷進(jìn)行調(diào)整;人體紅外感應(yīng)模塊可以檢測人體,當(dāng)有人靠近時(shí),就能打開LCD背光;蜂鳴器可以在鬧鐘定時(shí)中,作為聲音提醒。3.2各單元模塊功能分析及模塊電路設(shè)計(jì)3.2.1時(shí)鐘模塊 DS1302的工作原理和單片機(jī)的接口:DS1302為美國DALLAS公司的一種實(shí)時(shí)時(shí)鐘芯片,主要特點(diǎn)是采用串行數(shù)據(jù)傳輸,可為掉電保護(hù)電源提供可編程的充電功能,并且可以關(guān)閉充電功能。采用32.768Hz晶振。它可以對(duì)年、月、日、星期、時(shí)、分、秒進(jìn)行計(jì)時(shí),且具有閏年補(bǔ)償?shù)榷喾N功能。DS1302用于數(shù)據(jù)記錄,特別是對(duì)某些具有特殊意義的數(shù)據(jù)點(diǎn)的記錄上,能實(shí)現(xiàn)數(shù)據(jù)與出現(xiàn)該數(shù)據(jù)的時(shí)間同時(shí)記錄。這種記錄對(duì)長時(shí)間的連續(xù)測控系統(tǒng)結(jié)果的分析以及對(duì)異常數(shù)據(jù)出現(xiàn)的原因的查找有重要意義。在本設(shè)計(jì)中,它的實(shí)際電路圖如圖3-2所示:圖3-2DS1302與單片機(jī)的連接 DS1302需要外接32.768K的晶振,1號(hào)引腳接主電源VCC(5V)電源,8號(hào)引腳接備用電池(3V),當(dāng)主電源掉電后,備用電源為DS1302提供電源,維持DS1302內(nèi)數(shù)據(jù)不丟失,這正是時(shí)鐘芯片所必須的特性。3.2.2溫度模塊傳統(tǒng)的溫度傳感器系統(tǒng)大都采用放大、調(diào)理、A/D轉(zhuǎn)換,轉(zhuǎn)換后的數(shù)字信號(hào)送入計(jì)算機(jī)處理,處理電路復(fù)雜、可靠性相對(duì)較差,占用計(jì)算機(jī)的資源比較多,本設(shè)計(jì)測溫模塊采用一線制總線數(shù)字溫度傳感器DS18B20,可將溫度信號(hào)直接轉(zhuǎn)換成數(shù)字信號(hào)送給微處理器,電路簡單,成本低,其電路原理圖如圖3-3所示:圖3-3DS18B20溫度模塊從圖中可看出,將溫度傳感器的一線制總線通過端口2與本設(shè)計(jì)主控芯片STC12C5A6S2的端口標(biāo)號(hào)為DS18B20的相連即可實(shí)現(xiàn)相互之間的通信。設(shè)計(jì)中的測溫元件采用的是DS18B20測溫元件,DS18B20是由DALLAS(達(dá)拉斯)公司生產(chǎn)的一種溫度傳感器。超小的體積,超低的硬件開消,抗干擾能力強(qiáng),精度高,附加功能強(qiáng),使得DS18B20很受歡迎。這是世界上第一片支持“一線總線”接口的溫度傳感器。DS18B20數(shù)字溫度計(jì)提供9位(二進(jìn)制)溫度讀數(shù),指示器件的溫度。信息經(jīng)過單線接口送入DS18B20或從DS18B20送出,因此從單片機(jī)到DS18B20僅需一條線連接即可。它可在1秒鐘(典型值)內(nèi)把溫度變換成數(shù)字。DS18B20的主要特征1)DS18B20的主要特征:①全數(shù)字溫度轉(zhuǎn)換及輸出;②先進(jìn)的單總線數(shù)據(jù)通信;③最高12位分辨率,精度可達(dá)土0.5℃;④12位分辨率時(shí)的最大工作周期為750毫秒;⑤可選擇寄生工作方式;⑥檢測溫度范圍為–55℃——+125℃;⑦內(nèi)置EEPROM,限溫報(bào)警功能;⑧64位光刻ROM,內(nèi)置產(chǎn)品序列號(hào),方便多機(jī)掛接;⑨多樣封裝形式,適應(yīng)不同硬件系統(tǒng)。2)DS18B20芯片其封裝結(jié)構(gòu)如下:圖3-4DS18B20芯片封裝圖由其引腳可看出,其3個(gè)引腳:GND為電壓地直接接地;DQ為單數(shù)據(jù)總線用來與單片機(jī)相連接,本系統(tǒng)中DS與單片機(jī)P2.2接口連接,僅此一個(gè)連接就能保證DS18B20與單片機(jī)之間的數(shù)據(jù)交換;VDD引腳接電源電壓。DS18B20的工作原理DS18B20的溫度檢測與數(shù)字?jǐn)?shù)據(jù)輸出全集成于一個(gè)芯片之上,從而抗干擾力更強(qiáng)。一個(gè)工作周期可分為兩個(gè)部分,即溫度檢測和數(shù)據(jù)處理。DS18B20共有三種形態(tài)的存儲(chǔ)器資源,分別是:ROM只讀存儲(chǔ)器,用于存放DS18B20ID編碼,其前8位是單線系列編碼(DS18B20的編碼是19H),后面48位是芯片唯一的序列號(hào),最后8位是以上56位的CRC碼(冗余校驗(yàn))。數(shù)據(jù)在出產(chǎn)時(shí)設(shè)置不由用戶更改。DS18B20共64位ROM,RAM數(shù)據(jù)暫存器,用于內(nèi)部計(jì)算和數(shù)據(jù)存取,數(shù)據(jù)在掉電后丟失,DS18B20共9個(gè)字節(jié)RAM,每個(gè)字節(jié)為8位。第1、2個(gè)字節(jié)是溫度轉(zhuǎn)換后的數(shù)據(jù)值信息,第3、4個(gè)字節(jié)是用戶EEPROM(常用于溫度報(bào)警值儲(chǔ)存)的鏡像。在上電復(fù)位時(shí)其值將被刷新。第5個(gè)字節(jié)則是用戶第3個(gè)EEPROM的鏡像。第6、7、8個(gè)字節(jié)為計(jì)數(shù)寄存器,是為了讓用戶得到更高的溫度分辨率而設(shè)計(jì)的,同樣也是內(nèi)部溫度轉(zhuǎn)換、計(jì)算的暫存單元。第9個(gè)字節(jié)為前8個(gè)字節(jié)的CRC碼。EEPROM非易失性記憶體,用于存放長期需要保存的數(shù)據(jù),上下限溫度報(bào)警值和校驗(yàn)數(shù)據(jù),DS18B20共3位EEPROM,并在RAM都存在鏡像,以方便用戶操作。我們?cè)诿恳淮巫x溫度之前都必須進(jìn)行復(fù)雜的且精準(zhǔn)時(shí)序的處理,因?yàn)镈S18B20的硬件簡單結(jié)果就會(huì)導(dǎo)致軟件的巨大開消。3.2.3顯示模塊本設(shè)計(jì)顯示模塊主要采用LCD12864液晶顯示器,其電路原理圖如下:圖3-5LCD12864模塊LCD12864液晶顯示器通過數(shù)據(jù)端口也即端口7~14與主控芯片STC12C5A60S2的I/O端口P2相連接實(shí)現(xiàn)數(shù)據(jù)與指令的傳輸,再通過控制端口RS、RW、EN也即端口4~6與主控芯片P3.6,P3.7,P4.0端口相接實(shí)現(xiàn)對(duì)數(shù)據(jù)和指令傳輸?shù)目刂啤o@示模塊采用12864液晶顯示器可實(shí)現(xiàn)對(duì)溫度和時(shí)間的直接顯示,清晰明了。LCD12864的特征帶中文字庫的LCD12864是一種具有4位/8位并行、2線或3線串行多種接口方式,內(nèi)部含有國標(biāo)一級(jí)、二級(jí)簡體中文字庫的點(diǎn)陣圖形液晶顯示模塊其顯示分辨率為128×64,內(nèi)置8192個(gè)16*16點(diǎn)漢字和128個(gè)16*8點(diǎn)ASCII字符集。利用該模塊靈活的接口方式和簡單、方便的操作指令,可構(gòu)成全中文人機(jī)交互圖形界面??梢燥@示8×4行16×16點(diǎn)陣的漢字,也可完成圖形顯示。低電壓低功耗是其又一顯著特點(diǎn)。由該模塊構(gòu)成的液晶顯示方案與同類型的圖形點(diǎn)陣液晶顯示模塊相比,不論硬件電路結(jié)構(gòu)或顯示程序都要簡得多,且該模塊的價(jià)格也略低于相同點(diǎn)陣的圖形液晶模塊。其基本特性如下:eq\o\ac(○,1)低電源電壓(VDD:+3.0-+5.5V)eq\o\ac(○,2)顯示分辨率:128×64點(diǎn)eq\o\ac(○,3)內(nèi)置漢字字庫,提供8192個(gè)16×16點(diǎn)陣漢字(簡繁體可選)eq\o\ac(○,4)內(nèi)置128個(gè)16×8點(diǎn)陣字符eq\o\ac(○,5)2MHZ時(shí)鐘頻率eq\o\ac(○,6)顯示方式:SIN、半透、正顯eq\o\ac(○,7)背光方式:側(cè)部高亮白色LED,功耗僅為普通LED的1/5—1/10eq\o\ac(○,8)通訊方式:串行、并行可選eq\o\ac(○,9)內(nèi)置DC-DC轉(zhuǎn)換電路,無需外加負(fù)壓eq\o\ac(○,10)無需片選信號(hào),簡化軟件設(shè)計(jì)eq\o\ac(○,11)工作溫度:0℃—-+55℃,存儲(chǔ)溫度:-20℃—+60℃1.模塊管腳是連接外部電路的紐帶,在此模塊中管腳主要由控制管腳和數(shù)據(jù)管腳等構(gòu)成,現(xiàn)將其組成情況及相關(guān)功能介紹如下:表3-112864液晶模塊接口說明管腳號(hào)管腳名稱電平管腳功能描述1VSS0V電源地2VCC3.0V/5V電源正3V0-對(duì)比度(亮度)調(diào)整4RS(CS)H/LRS=“H”,表示DB7~DB0為顯示數(shù)據(jù)RS=“L”,表示DB7~DB0為顯示指令數(shù)據(jù)5R/WH/LR/W=“H”,E=“H”,數(shù)據(jù)被讀到DB7~DB0R/W=“L”,E=“H→L”,DB7~DB0的數(shù)據(jù)被寫到IR或DR6E(SCLK)H/L使能信號(hào)7~14DB0~DB7H/L三態(tài)數(shù)據(jù)線15PSBH/LH:8位或4位并口方式,L:串口方式16NC-空腳17RESETH/L復(fù)位端,低電平有效18VOUT-LCD驅(qū)動(dòng)電壓輸出端19AVDD背光源正端20KVSS背光源負(fù)端2.控制器控制著模塊內(nèi)部指令的發(fā)出與否,存儲(chǔ)器則對(duì)指令和數(shù)據(jù)進(jìn)行存儲(chǔ)與更換,現(xiàn)將分別介紹控制器各接口及各存儲(chǔ)器的功能。RS,R/W的配合選擇決定控制界面的4種模式表3-2RS,R/W配合功能說明RSR/W功能說明LLMPU寫指令到指令暫存器(IR)LH讀出忙標(biāo)志(BF)及地址記數(shù)器(AC)的狀態(tài)HLMPU寫入數(shù)據(jù)到數(shù)據(jù)暫存器(DR)HHMPU從數(shù)據(jù)暫存器(DR)中讀出數(shù)據(jù)E信號(hào)表3-3E信號(hào)功能說明E狀態(tài)執(zhí)行動(dòng)作結(jié)果高——>低I/O緩沖——>DR配合/W進(jìn)行寫數(shù)據(jù)或指令高DR——>I/O緩沖配合R進(jìn)行讀數(shù)據(jù)或指令低/低——>高無動(dòng)作忙標(biāo)志BF:BF標(biāo)志提供內(nèi)部工作情況。BF=1表示模塊在進(jìn)行內(nèi)部操作,此時(shí)模塊不接受外部指令和數(shù)據(jù)。BF=0時(shí),模塊為準(zhǔn)備狀態(tài),隨時(shí)可接受外部指令和數(shù)據(jù)。利用STATUSRD指令,可以將BF讀到DB7總線,從而檢驗(yàn)?zāi)K工作狀態(tài)。字型產(chǎn)生ROM(CGROM):字型產(chǎn)生ROM(CGROM)是用于模塊屏幕顯示開和關(guān)的控制。DFF=1為開顯示,DDRAM的內(nèi)容就顯示在屏幕上,DFF=0為關(guān)顯示。DFF的狀態(tài)是指令DISPLAYON/OFF信號(hào)控制的。顯示數(shù)據(jù)RAM(DDRAM):模塊內(nèi)部顯示數(shù)據(jù)RAM提供64×2個(gè)位元組的空間,最多可控制4行各16字的中文字型顯示,當(dāng)寫入顯示數(shù)據(jù)RAM時(shí),可分別顯示CGROM與CGRAM的字型;此模塊可顯示三種字型,分別是半角英數(shù)字型(16*8)、CGRAM字型及CGROM的中文字型。三種字型的選擇,由在DDRAM中寫入的編碼選擇,在0000H—0006H的編碼中將選擇CGRAM的自定義字型,02H—7FH的編碼中將選擇半角英數(shù)字的字型,至于A1以上的編碼將自動(dòng)的結(jié)合下一個(gè)位元組,組成兩個(gè)位元組編碼形成中文字型的編碼。字型產(chǎn)生RAM(CGRAM):字型產(chǎn)生RAM提供圖象定義(造字)功能,可以提供四組16×16點(diǎn)的自定義圖象空間,使用者可以將內(nèi)部字型沒有提供的圖象字型自行定義到CGRAM中,便可和CGROM中的定義一樣地通過DDRAM顯示在屏幕中。地址計(jì)數(shù)器AC:地址計(jì)數(shù)器是用來貯存DDRAM/CGRAM之一的地址,可由設(shè)定指令暫存器來改變,之后只要讀取或?qū)懭隓DRAM/CGRAM的值時(shí),地址計(jì)數(shù)器的值就會(huì)自動(dòng)加一。當(dāng)RS=0且R/W=1時(shí),地址計(jì)數(shù)器的值會(huì)被讀取到DB6—DB0中。光標(biāo)/閃爍控制電路:此模塊提供硬體光標(biāo)及閃爍控制電路,由地址計(jì)數(shù)器的值來指定DDRAM中的光標(biāo)或閃爍位置。3.模塊控制芯片提供兩套控制指令:基本指令和擴(kuò)充指令,這些由各控制端口和寄存器組合而成的指令可對(duì)液晶顯示器自身模式、狀態(tài)、功能等進(jìn)行設(shè)置,也可控制與其他芯片進(jìn)行數(shù)據(jù)和指令的通信。其指令分別如下:表3-4基本指令集(RE=0)指令指令碼功能RSR/WD7D6D5D4D3D2D1D0清除顯示0000000001將DDRAM填滿"20H",并且設(shè)定DDRAM的地址計(jì)數(shù)器(AC)到"00H"地址歸位000000001X設(shè)定DDRAM的地址計(jì)數(shù)器(AC)到"00H",并且將游標(biāo)移到開頭原點(diǎn)位置;這個(gè)指令不改變DDRAM的內(nèi)容顯示狀態(tài)開/關(guān)0000001DCBD=1:整體顯示ONC=1:游標(biāo)ONB=1:游標(biāo)位置反白允許進(jìn)入點(diǎn)設(shè)定00000001I/DS指定在數(shù)據(jù)的讀取與寫入時(shí),設(shè)定游標(biāo)的移動(dòng)方向及指定顯示的移位游標(biāo)或顯示移位控制000001S/CR/LXX設(shè)定游標(biāo)的移動(dòng)與顯示的移位控制位;這個(gè)指令不改變DDRAM的內(nèi)容功能設(shè)定00001DLXREXXDL=0/1:4/8位數(shù)據(jù)RE=1:擴(kuò)充指令操作RE=0:基本指令操作設(shè)定CGRAM地址0001AC5AC4AC3AC2AC1AC0設(shè)定CGRAM地址設(shè)定DDRAM地址0010AC5AC4AC3AC2AC1AC0設(shè)定DDRAM地址(顯示位址)第一行:80H-87H第二行:90H-97H讀取忙標(biāo)志和地址01BFAC6AC5AC4AC3AC2AC1AC0讀取忙標(biāo)志(BF)可以確認(rèn)內(nèi)部動(dòng)作是否完成,同時(shí)可以讀出地址計(jì)數(shù)器(AC)的值寫數(shù)據(jù)到RAM10數(shù)據(jù)將數(shù)據(jù)D7——D0寫入到內(nèi)部的RAM(DDRAM/CGRAM/IRAM/GRAM)讀出RAM的值11數(shù)據(jù)從內(nèi)部RAM讀取數(shù)據(jù)D7——D0(DDRAM/CGRAM/IRAM/GRAM表3-5擴(kuò)展指令集(RE=1)指令指令碼功能RSR/WD7D6D5D4D3D2D1D0待命模式0000000001進(jìn)入待命模式,執(zhí)行其他指令都棵終止待命模式卷動(dòng)地址開關(guān)開啟000000001SRSR=1:允許輸入垂直卷動(dòng)地址SR=0:允許輸入IRAM和CGRAM地址反白選擇00000001R1R0選擇2行中的任一行作反白顯示,并可決定反白與否。初始值R1R0=00,第一次設(shè)定為反白顯示,再次設(shè)定變回正常睡眠模式0000001SLXXSL=0:進(jìn)入睡眠模式SL=1:脫離睡眠模式擴(kuò)充功能設(shè)定00001CLXREG0CL=0/1:4/8位數(shù)據(jù)RE=1:擴(kuò)充指令操作RE=0:基本指令操作G=1/0:繪圖開關(guān)設(shè)定繪圖RAM地址0010AC60AC50AC4AC3AC3AC2AC2AC1AC1AC0AC0設(shè)定繪圖RAM先設(shè)定垂直(列)地址AC6AC5…AC0再設(shè)定水平(行)地址AC3AC2AC1AC0將以上16位地址連續(xù)寫入即可當(dāng)IC1在接受指令前,微處理器先確認(rèn)其內(nèi)部處于非忙碌狀態(tài),即讀取BF標(biāo)志時(shí),BF需為零方可接受新的指令;如果在送出一個(gè)指令前不檢查BF標(biāo)志,那么在前一個(gè)指令和這個(gè)指令中間必須延長一段較長的時(shí)間,即等待前一個(gè)指令確實(shí)執(zhí)行完成。4.12864液晶顯示器不僅可以顯示字符同時(shí)也可以圖形,因此可以滿足不同使用者更多的要求,如顯示一幅圖畫或者一個(gè)曲線圖等。使用者在使用時(shí)便可根據(jù)自身需求進(jìn)行不同的顯示。1)字符顯示:帶中文字庫的128X64-0402B每屏可顯示4行8列共32個(gè)16×16點(diǎn)陣的漢字,每個(gè)顯示RAM可顯示1個(gè)中文字符或2個(gè)16×8點(diǎn)陣全高ASCII碼字符,即每屏最多可實(shí)現(xiàn)32個(gè)中文字符或64個(gè)ASCII碼字符的顯示。帶中文字庫的128X64-0402B內(nèi)部提供128×2字節(jié)的字符顯示RAM緩沖區(qū)(DDRAM)。字符顯示是通過將字符顯示編碼寫入該字符顯示RAM實(shí)現(xiàn)的。根據(jù)寫入內(nèi)容的不同,可分別在液晶屏上顯示CGROM(中文字庫)、HCGROM(ASCII碼字庫)及CGRAM(自定義字形)的內(nèi)容。三種不同字符/字型的選擇編碼范圍為:0000~0006H(其代碼分別是0000、0002、0004、0006共4個(gè))顯示自定義字型,02H~7FH顯示半寬ASCII碼字符,A1A0H~F7FFH顯示8192種GB2312中文字庫字形。字符顯示RAM在液晶模塊中的地址80H~9FH。字符顯示的RAM的地址與32個(gè)字符顯示區(qū)域有著一一對(duì)應(yīng)的關(guān)系,其對(duì)應(yīng)關(guān)系如下表所示:表3-6字符RAM與顯示區(qū)域?qū)?yīng)關(guān)系80H81H82H83H84H85H86H87H90H91H92H93H94H95H96H97H88H89H8AH8BH8CH8DH8EH8FH98H99H9AH9BH9CH9DH9EH9FH2)圖形顯示:先設(shè)垂直地址再設(shè)水平地址(連續(xù)寫入兩個(gè)字節(jié)的資料來完成垂直與水平的坐標(biāo)地址)。垂直地址范圍AC5...AC0,水平地址范圍AC3...AC0。繪圖RAM的地址計(jì)數(shù)器(AC)只會(huì)對(duì)水平地址(X軸)自動(dòng)加一,當(dāng)水平地址=0FH時(shí)會(huì)重新設(shè)為00H但并不會(huì)對(duì)垂直地址做進(jìn)位自動(dòng)加一,故當(dāng)連續(xù)寫入多筆資料時(shí),程序需自行判斷垂直地址是否需要重新設(shè)定。GDRAM的坐標(biāo)地址與資料排列順序如下圖:圖3-6GDRAM的坐標(biāo)地址與資料排列順序3.2.4人體紅外感應(yīng)模塊本設(shè)計(jì)基于HC-SR501的人體紅外感應(yīng)模塊,由于該傳感器手工制作信號(hào)不穩(wěn)定,所以我們采用高度集中的成品人體感應(yīng)模塊,它的輸入輸出結(jié)構(gòu)如下圖圖3-7:圖3-7人體紅外感應(yīng)模塊圖從圖中我們可以知道,該模塊有3個(gè)引腳,1號(hào)引腳接電源正極,是我們的電源正極輸入極;3號(hào)引腳為電源負(fù)極,在我們的設(shè)計(jì)里,3號(hào)引腳接地;2號(hào)引腳為高低電平輸出引腳,當(dāng)有人進(jìn)入模塊的感應(yīng)區(qū)內(nèi)時(shí),模塊會(huì)輸出持續(xù)的高電平(3.3V),我們可以運(yùn)用此高電平控制LCD12864的背光開關(guān),實(shí)現(xiàn)LCD12864背光的只能開關(guān)。人體紅外模塊的技術(shù)參數(shù)(1)工作電壓:DC5V至20V(2)靜態(tài)功耗:65微安(3)電平輸出:高3.3V,低0V(4)延時(shí)時(shí)間:可調(diào)(0.3秒~18秒)(5)封鎖時(shí)間:0.2秒(6)觸發(fā)方式:L不可重復(fù),H可重復(fù),默認(rèn)值為H(7)感應(yīng)范圍:小于120度錐角,7米以內(nèi)(8)工作溫度:-15~+70度人體紅外模塊功能特點(diǎn)(1)全自動(dòng)感應(yīng):當(dāng)有人進(jìn)入其感應(yīng)范圍則輸入高電平,人離開感應(yīng)范圍則自動(dòng)延時(shí)關(guān)閉高電平。輸出低電平。(2)光敏控制:模塊預(yù)留有位置,可設(shè)置光敏控制,白天或光線強(qiáng)時(shí)不感應(yīng)。(3)兩種觸發(fā)方式:L不可重復(fù),H可重復(fù)。可跳線選擇,默認(rèn)為H。eq\o\ac(○,1)不可重復(fù)觸發(fā)方式:即感應(yīng)輸出高電平后,延時(shí)時(shí)間一結(jié)束,輸出將自動(dòng)從高電平變?yōu)榈碗娖健q\o\ac(○,2)可重復(fù)觸發(fā)方式:即感應(yīng)輸出高電平后,在延時(shí)時(shí)間段內(nèi),如果有人體在其感應(yīng)范圍內(nèi)活動(dòng),其輸出將一直保持高電平,直到人離開后才延時(shí)將高電平變?yōu)榈碗娖?感應(yīng)模塊檢測到人體的每一次活動(dòng)后會(huì)自動(dòng)順延一個(gè)延時(shí)時(shí)間段,并且以最后一次活動(dòng)的時(shí)間為延時(shí)時(shí)間的起始點(diǎn))。(4)具有感應(yīng)封鎖時(shí)間(默認(rèn)設(shè)置:0.2秒):感應(yīng)模塊在每一次感應(yīng)輸出后(高電平變?yōu)榈碗娖?,可以緊跟著設(shè)置一個(gè)封鎖時(shí)間,在此時(shí)間段內(nèi)感應(yīng)器不接收任何感應(yīng)信號(hào)。此功能可以實(shí)現(xiàn)(感應(yīng)輸出時(shí)間和封鎖時(shí)間)兩者的間隔工作,可應(yīng)用于間隔探測產(chǎn)品;同時(shí)此功能可有效抑制負(fù)載切換過程中產(chǎn)生的各種干擾。(5)工作電壓范圍寬:默認(rèn)工作電壓DC5V至20V。人體紅外模塊的外圍電路由于LCD12864是5V控制的顯示器,但紅外模塊的高電平輸出僅為3.3V,不符合我們的理想要求,所以本設(shè)計(jì)中我們采用電壓比較器來解決這個(gè)問題,原理圖如下圖3-8:圖3-8電壓比較器該設(shè)計(jì)運(yùn)用電壓比較器原理,運(yùn)用μa741芯片作為電壓比較器的主要芯片,μa741是一款集成運(yùn)算放大器,8個(gè)引腳,當(dāng)2號(hào)引腳(IN-)接一電壓時(shí),如果3號(hào)引腳(IN+,本設(shè)計(jì)里是人體紅外模塊的輸入輸出引腳)的電平高于2號(hào)引腳的電平,則6號(hào)引腳(OUT,本設(shè)計(jì)里它連接到LCD12864的背光開關(guān)19號(hào)引腳)會(huì)輸出高電平,從而使LCD12864打開背光,方便人們查看萬年歷。3.2.5獨(dú)立鍵盤模塊 鍵盤是人與萬年歷實(shí)現(xiàn)信息交互的接口,本設(shè)計(jì)中,我們采用7個(gè)獨(dú)立鍵盤,電路原理如下圖3-9:圖3-9獨(dú)立鍵盤當(dāng)按鍵按下,與主控芯片連接的端口被降為低電平,按鍵松開則也升為高電平。按鍵采用的是TackSwitch按鈕開關(guān),它具有自動(dòng)恢復(fù)(彈回)的功能。當(dāng)我們按下按鈕時(shí),其中的接點(diǎn)接通(或切斷),放開按鈕后,接點(diǎn)恢復(fù)為切斷(或接通)。按照尺寸區(qū)分,電子電路或微型計(jì)算機(jī)所使用的TackSwith可分為8mm、10mm、12mm等。雖然TackSwitch有4個(gè)引腳,但實(shí)際上,其內(nèi)部只有一對(duì)a接點(diǎn),即其中兩個(gè)引腳是內(nèi)部相連通的,而另外兩個(gè)引腳內(nèi)部也是相連通的。7個(gè)按鍵實(shí)現(xiàn)了開機(jī)模式選擇,日期調(diào)節(jié)等功能,獨(dú)立按鍵的引入使得體現(xiàn)了本設(shè)計(jì)的人性化,智能化,功能的強(qiáng)大。3.2.6蜂鳴器模塊蜂鳴器模塊是本設(shè)計(jì)中體現(xiàn)人機(jī)交互的又一大設(shè)計(jì)亮點(diǎn),其電路原理圖如下圖:圖3-10蜂鳴器模塊(1)蜂鳴器的介紹eq\o\ac(○,1)蜂鳴器的作用:蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,采用直流電壓供電,廣泛應(yīng)用于計(jì)算機(jī)、打印機(jī)、復(fù)印機(jī)、報(bào)警器、電子玩具、汽車電子設(shè)備、電話機(jī)、定時(shí)器等電子產(chǎn)品中作發(fā)聲器件。eq\o\ac(○,2)蜂鳴器的分類:蜂鳴器主要分為壓電式蜂鳴器和電磁式蜂鳴器兩類。eq\o\ac(○,3)蜂鳴器的電路圖形符號(hào):蜂鳴器在電路中用字母“H”或“HA”(舊標(biāo)準(zhǔn)用“FM”、“LB”、“JD”等)表示。本設(shè)計(jì)里,我們采用有源蜂鳴器,由于蜂鳴器的工作電流一般比較大,以至于單片機(jī)的I/O口是無法直接驅(qū)動(dòng)的,所以要利用放大電路來驅(qū)動(dòng),我們使用三極管來放大電流,驅(qū)動(dòng)蜂鳴器,此模塊只要通過BELL(連接到到單片機(jī)P0.2)輸入的PWM波既可以使蜂鳴器分出聲音,我們?cè)O(shè)計(jì)的這款萬年歷可以再開機(jī)時(shí)選擇按鍵聲音的有無,以及在鬧鐘定時(shí)中作為聲音提醒信號(hào)。3.2.7單片機(jī)模塊STC12C5A60S2單片機(jī)是宏晶科技生產(chǎn)的單時(shí)鐘/機(jī)器周期(1T)的單片機(jī),是高速/低功耗/超強(qiáng)抗干擾的新一代8051單片機(jī),指令代碼完全兼容傳統(tǒng)8051,但速度快8-12倍。內(nèi)部集成MAX810專用復(fù)位電路,2路PWM,8路高速10位A/D轉(zhuǎn)換(250K/S),針對(duì)電機(jī)控制,強(qiáng)干擾場合,本設(shè)計(jì)中單片機(jī)的引腳連接如圖3-11所示: 圖3-11STC12C5A60S2引腳連接其主要特性如下:●增強(qiáng)型8051CPU,1T,單時(shí)鐘/機(jī)器周期,指令代碼完全兼容傳統(tǒng)8051●工作電壓:5.5V-3.3V●工作頻率范圍:0-35MHz,相當(dāng)于普通8051的0~420MHz●用戶應(yīng)用程序空間60K字節(jié)●片上集成1280字節(jié)RAM●通用I/O口(36/40/44個(gè)),復(fù)位后為:準(zhǔn)雙向口/弱上拉(普通8051傳統(tǒng)I/O口),可設(shè)置成四種模式:準(zhǔn)雙向口/弱上拉,推挽/強(qiáng)上拉,僅為輸入/高阻,開漏,每個(gè)I/O口驅(qū)動(dòng)能力均可達(dá)到20mA,但整個(gè)芯片最大不要超過55mA●ISP(在系統(tǒng)可編程)/IAP(在應(yīng)用可編程),無需專用編程器,無需專用仿真器,可通過串口(P3.0/P3.1)直接下載用戶程序,數(shù)秒即可完成一片●有EEPROM功能(STC12C5A62S2/AD/PWM無內(nèi)部EEPROM)●看門狗●內(nèi)部集成MAX810專用復(fù)位電路(外部晶體12M以下時(shí),復(fù)位腳可直接1K電阻到地)●外部掉電檢測電路:在P4.6口有一個(gè)低壓門檻比較器,5V單片機(jī)為1.32V,誤差為+/-5%,3.3V單片機(jī)為1.30V,誤差為+/-3%●時(shí)鐘源:外部高精度晶體/時(shí)鐘,內(nèi)部R/C振蕩器(溫漂為+/-5%到+/-10%以內(nèi))用戶在下載用戶程序時(shí),可選擇是使用內(nèi)部R/C振蕩器還是外部晶體/時(shí)鐘,常溫下內(nèi)部R/C振蕩器頻率為:11MHz~15.5MHz。精度要求不高時(shí),可選擇使用內(nèi)部時(shí)鐘,但因?yàn)橛兄圃煺`差和溫漂,以實(shí)際測試為準(zhǔn)●共4個(gè)16位定時(shí)器:兩個(gè)與傳統(tǒng)8051兼容的定時(shí)器/計(jì)數(shù)器,16位定時(shí)器T0和T1,沒有定時(shí)器2,但有獨(dú)立波特率發(fā)生器,做串行通訊的波特率發(fā)生器,加上2路PCA模塊可再實(shí)現(xiàn)2個(gè)16位定時(shí)器●2個(gè)時(shí)鐘輸出口,可由T0的溢出在P3.4/T0輸出時(shí)鐘,可由T1的溢出在P3.5/T1輸出時(shí)鐘●外部中斷I/O口7路,傳統(tǒng)的下降沿中斷或低電平觸發(fā)中斷,并新增支持上升沿中斷的PCA模塊,PowerDown模式可由外部中斷喚,INT0/P3.2,INT1/P3.3,T0/P3.4,T1/P3.5,RxD/P3.0,CCP0/P1.3(也可通過寄存器設(shè)置到P4.2),CCP1/P1.4(也可通過寄存器設(shè)置到P4.3)●PWM(2路)/PCA(可編程計(jì)數(shù)器陣列,2路),也可用來當(dāng)2路D/A使用,也可用來再實(shí)現(xiàn)2個(gè)定時(shí)器,也可用來再實(shí)現(xiàn)2個(gè)外部中斷(上升沿中斷/下降沿中斷均可分別或同時(shí)支持)●A/D轉(zhuǎn)換,10位精度ADC,共8路,轉(zhuǎn)換速度可達(dá)250K/S(每秒鐘25萬次)●通用全雙工異步串行口(UART),由于STC12系列是高速的8051,可再用定時(shí)器或PCA軟件實(shí)現(xiàn)多串口●STC12C5A60S2系列有雙串口,后綴有S2標(biāo)志的才有雙串口,RxD2/P1.2(可通過寄存器設(shè)置到P4.2),TxD2/P1.3(可通過寄存器設(shè)置到P4.3)●工作溫度范圍:-40-+85℃(工業(yè)級(jí))/0-75℃(商業(yè)級(jí))21.封裝:PDIP-40,LQFP-44,LQFP-48I/O口不夠時(shí),可用2到3根普通I/O口線外接74HC164/165/595(均可級(jí)聯(lián))來擴(kuò)展I/O口,還可用A/D做按鍵掃描來節(jié)省I/O口,或用雙CPU,三線通信,還多了串口。3.3電路原理圖的繪制和電路的焊接在硬件的設(shè)計(jì)前期,根據(jù)框圖對(duì)電路中可能出現(xiàn)的電路,進(jìn)行了模擬實(shí)驗(yàn),并根據(jù)實(shí)驗(yàn)結(jié)果對(duì)后期的硬件設(shè)計(jì)進(jìn)行了合理化的修改完善。在前面已分析了系統(tǒng)并繪制了框圖,并根據(jù)框圖分別設(shè)計(jì)了各部分電路。由于溫度傳感器與時(shí)鐘芯片集成度較高,所以在硬件電路設(shè)計(jì)時(shí)不需要太多其他元件即可實(shí)現(xiàn)預(yù)期功能。因此在PROTEL上對(duì)原理圖進(jìn)行了繪制,從而得出了最終的完整電路原理圖[附錄1]。3.3.1原理圖繪制軟件PROTELPROTEL是PORTEL公司在80年代末推出的EDA軟件,在電子行業(yè)的CAD軟件中,它當(dāng)之無愧地排在眾多EDA軟件的前面,是電子設(shè)計(jì)者的首選軟件,它包含了電原理圖繪制、模擬電路與數(shù)字電路混合信號(hào)仿真、多層印制電路板設(shè)計(jì)(包含印制電路板自動(dòng)布線)、可編程邏輯器件設(shè)計(jì)、圖表生成、電子表格生成、支持宏操作等功能,并具有Client/Server(客戶/服務(wù)器)體系結(jié)構(gòu),同時(shí)還兼容一些其它設(shè)計(jì)軟件的文件格式,如ORCAD,PSPICE,EXCEL等,其多層印制線路板的自動(dòng)布線可實(shí)現(xiàn)高密度PCB的100%布通率。Protel99SE采用數(shù)據(jù)庫的管理方式。該軟件沿襲了Protel以前版本方便易學(xué)的特點(diǎn),內(nèi)部界面與Protel99大體相同,新增加了一些功能模塊,功能更加強(qiáng)大。新增的層堆棧管理功能,可以設(shè)計(jì)32個(gè)信號(hào)層,16個(gè)地電層,16個(gè)機(jī)械層。新增的3D功能在加工印制版之前可以看到板的三維效果。其具有的打印功能,可以輕松修改打印設(shè)置控制打印結(jié)果。Protel99SE容易使用的特性還體現(xiàn)在其幫助功能,按下右上角的小問號(hào),然后輸入你所要的信息,可以很快地看到特性的功能,然后用到設(shè)計(jì)中,按下狀態(tài)欄末端的按鈕,使用幫助顧問。3.3.2PCB制作當(dāng)通過PROTEL繪制出完整的電路原理圖后,就可以按照繪制好的原理圖制作PCB了,具體步驟如下:(1)打印電路板。將繪制好的電路板用轉(zhuǎn)印紙打印出來,注意滑的一面面向自己,一般打印兩張電路板,即一張紙上打印兩張電路板。在其中選擇打印效果最好的制作線路板。(2)裁剪覆銅板,也就是表面面都覆有銅膜的線路板,將覆銅板裁成電路板的大小,不要過大,以節(jié)約材料。(3)預(yù)處理覆銅板。用細(xì)砂紙把覆銅板表面的氧化層打磨掉,以保證在轉(zhuǎn)印電路板時(shí),熱轉(zhuǎn)印紙上的碳粉能牢固的印在覆銅板上,打磨好的標(biāo)準(zhǔn)是板面光亮,沒有明顯污漬。(4)轉(zhuǎn)印電路板。將打印好的電路板裁剪成合適大小,把印有電路板的一面貼在覆銅板上,對(duì)齊好后把覆銅板放入熱轉(zhuǎn)印機(jī),放入時(shí)一定要保證轉(zhuǎn)印紙沒有錯(cuò)位。一般來說經(jīng)過2-3次轉(zhuǎn)印,電路板就能很牢固的轉(zhuǎn)印在覆銅板上。熱轉(zhuǎn)印機(jī)事先就已經(jīng)預(yù)熱,溫度設(shè)定在90-1400攝氏度,由于溫度很高,操作時(shí)注意安全。(5)腐蝕線路板,回流焊機(jī)。先檢查一下電路板是否轉(zhuǎn)印完整,若有少數(shù)沒有轉(zhuǎn)印好的地方可以用黑色油性筆修補(bǔ)。然后就可以腐蝕了,等線路板上暴露的銅膜完全被腐蝕掉時(shí),將線路板從腐蝕液中取出清洗干凈,這樣一塊線路板就腐蝕好了。腐蝕液的成分為濃鹽酸、濃雙氧水、水,比例為1:2:3,在配制腐蝕液時(shí),先放水,再加濃鹽酸、濃雙氧水,若操作時(shí)濃鹽酸、濃雙氧水或腐蝕液不小心濺到皮膚或衣物上要及時(shí)用清水清洗,由于要使用強(qiáng)腐蝕性溶液,操作時(shí)一定注意安全。(6)線路板鉆孔。線路板上是要插入電子元件的,所以就要對(duì)線路板鉆孔了。依據(jù)電子元件管腳的粗細(xì)選擇不同的鉆針,在使用鉆機(jī)鉆孔時(shí),線路板一定要按穩(wěn),鉆機(jī)速度不能開的過慢。(7)線路板預(yù)處理。鉆孔完后,用細(xì)砂紙把覆在線路板上的墨粉打磨掉,用清水把線路板清洗干凈。水干后,用松香水涂在有線路的一面,為加快松香凝固,我們用熱風(fēng)機(jī)加熱線路板,只需2-3分鐘松香就能凝固。按照上面的流程,我們就做出來一塊PCB電路板了。3.3.3元器件的焊接 元器件裝焊順序依據(jù)的原則是:先低后高,先小后大。一般情況下,應(yīng)按電阻、電容、二極管、三極管、集成電路、大功率管順序焊接。(1)對(duì)元器件焊接的要求eq\o\ac(○,1)電阻的焊接:按圖將電阻準(zhǔn)確裝入規(guī)定位置,型號(hào)標(biāo)記要易見且方向也盡量一致。要求焊接一種規(guī)格后再焊接另一種規(guī)格。eq\o\ac(○,2)電容的焊接:按圖將電容準(zhǔn)確裝入規(guī)定位置,并注意有極性電容的極性方向不能錯(cuò)。電容上的型號(hào)標(biāo)記要易見見且方向也盡量一致。電解電容要緊靠PCB板,不可懸浮。eq\o\ac(○,3)二極管的焊接:正確辨認(rèn)正負(fù)極性后按要求裝入規(guī)定位置,型號(hào)標(biāo)記要易見,焊接時(shí)間盡量可能短。eq\o\ac(○,4)三極管的焊接:正確辨認(rèn)各引腳后按要求裝入規(guī)定位置,型號(hào)標(biāo)記要易見,焊接時(shí)間盡可能短。eq\o\ac(○,5)場效應(yīng)管的焊接:正確辨認(rèn)各引腳后按要求裝入規(guī)定位置,焊接時(shí)間盡可能短。需要加散熱片的,將接觸面打磨光滑并加硅脂后再緊固。eq\o\ac(○,6)集成電路(芯片)的焊接:集成電路(芯片)焊接時(shí),要注意按圖紙要求檢查型號(hào)、焊接位置是否符合要求,焊接時(shí)先焊芯片邊沿的兩只引腳,以便使其定位,然后再從左到右或從上到下進(jìn)行逐點(diǎn)焊接。焊接時(shí)間盡可能短,禁止拉焊。(2)焊接質(zhì)量檢查eq\o\ac(○,1)元器件不得有錯(cuò)裝、漏裝、錯(cuò)聯(lián)和歪斜松動(dòng)等。eq\o\ac(○,2)焊點(diǎn)應(yīng)吃錫飽滿,無毛刺、無針孔、無氣泡、裂紋、掛錫、拉點(diǎn)、漏焊、碰焊、虛焊等缺陷。eq\o\ac(○,3)焊接后電路板上的金屬件表面應(yīng)無銹蝕和其它雜質(zhì)。eq\o\ac(○,4)焊接完成的電路板不得有斑點(diǎn)、裂紋、氣泡、發(fā)白等現(xiàn)象,銅箔及敷形涂覆層不得脫落、不起翹、不分層。eq\o\ac(○,5)元器件的引腳或引線表面應(yīng)滲錫均勻。 在完成電路的焊接后,測試之前,一定要先對(duì)電路檢測,看是否有短路情況出現(xiàn),以免芯片損壞。電源輸入電壓也是關(guān)鍵因素,在供電之前務(wù)必用萬用表先測量。4系統(tǒng)軟件設(shè)計(jì)在系統(tǒng)軟件設(shè)計(jì)中,我們使用了KeilμVision3,它是2006年1月30日ARM推出全新的針對(duì)各種嵌入式處理器的軟件開發(fā)工具,集成KeilμVision3的RealViewMDK開發(fā)環(huán)境。RealViewMDK開發(fā)工具KeilμVision3源自Keil公司。RealViewMDK集成了業(yè)內(nèi)領(lǐng)先的技術(shù),包括KeilμVision3集成開發(fā)環(huán)境與RealView編譯器。支持ARM7、ARM9和最新的Cortex-M3核處理器,自動(dòng)配置啟動(dòng)代碼,集成Flash燒寫模塊,強(qiáng)大的Simulation設(shè)備模擬,性能分析等功能,與ARM之前的工具包ADS等相比,RealView編譯器的最新版本可將性能改善超過20%。KeilC51生成的目標(biāo)代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時(shí)更能體現(xiàn)高級(jí)語言的優(yōu)勢,所以我們選擇該軟件來開發(fā)我們的萬年歷程序。4.1萬年歷軟件系統(tǒng)的流程圖圖4-1系統(tǒng)軟件流程圖當(dāng)接通電源開始工作后,單片機(jī)中的程序開始運(yùn)行,將對(duì)DS18B20進(jìn)行初始化,以便和單片機(jī)芯片達(dá)成通信協(xié)議。完成初始化后,由于本系統(tǒng)只有一個(gè)測溫元件,單片機(jī)會(huì)向其發(fā)出跳過RAM指令,接下來便可向其發(fā)送操作指令,啟動(dòng)測溫程序,測溫過程完成后,發(fā)出溫度轉(zhuǎn)換指令,從而便可將溫度轉(zhuǎn)化成數(shù)字模式進(jìn)行顯示讀??;同時(shí)DS1302將讀取時(shí)分秒星期以及年月日寄存器然后通過液晶顯示實(shí)時(shí)時(shí)間、星期及日期;鍵盤電路中按鍵可對(duì)實(shí)時(shí)日歷時(shí)鐘進(jìn)行調(diào)整。4.2溫度信息的采集通過DS18B20單線總線的所有執(zhí)行處理都從一個(gè)初始化序列開始。初始化序列包括一個(gè)由總線控制器發(fā)出的復(fù)位脈沖和隨后由從機(jī)發(fā)出的存在脈沖:(1)復(fù)位:首先我們必須對(duì)DS18B20芯片進(jìn)行復(fù)位,復(fù)位就是由控制器(單片機(jī))給DS18B20單總線至少480us的低電平信號(hào)。當(dāng)18B20接到此復(fù)位信號(hào)后則會(huì)在15~60us后回發(fā)一個(gè)芯片的存在脈沖。 (2)存在脈沖:在復(fù)位電平結(jié)束之后,控制器應(yīng)該將數(shù)據(jù)單總線拉高,以便于在15~60us后接收存在脈沖,存在脈沖為一個(gè)60~240us的低電平信號(hào)。至此,通信雙方已經(jīng)達(dá)成了基本的協(xié)議,接下來將會(huì)是控制器與18B20間的數(shù)據(jù)通信。(3)控制器發(fā)送ROM指令:雙方打完了招呼之后最要將進(jìn)行交流了,ROM指令共有5條,每一個(gè)工作周期只能發(fā)一條,ROM指令分別是讀ROM數(shù)據(jù)、指定匹配芯片、跳躍ROM、芯片搜索、報(bào)警芯片搜索。各自功能如下:ReadROM(讀ROM)[33H](方括號(hào)中的為16進(jìn)制的命令字):這個(gè)命令允許總線控制器讀到DS18B20的64位ROM。只有當(dāng)總線上只存在一個(gè)DS18B20的時(shí)候才可以使用此指令。MatchROM(指定匹配芯片)[55H]:這個(gè)指令后面緊跟著由控制器發(fā)出了64位序列號(hào),當(dāng)總線上有多只DS18B20時(shí),只有與控制發(fā)出的序列號(hào)相同的芯片才能做出反應(yīng),其它芯片將等待下一次復(fù)位。這條指令適合單芯片和多芯片掛接。SkipROM(跳躍ROM指令)[CCH]:這條指令使芯片不對(duì)ROM編碼做出反應(yīng),在單總線的情況之下,為了節(jié)省時(shí)間則可以選用此指令。如果在多芯片掛接時(shí)使用此指令將會(huì)出現(xiàn)數(shù)據(jù)沖突,導(dǎo)致錯(cuò)誤出現(xiàn)。SearchROM(搜索芯片)[F0H]:在芯片初始化后,搜索指令允許總線上掛接多芯片時(shí)用排除法識(shí)別所有器件的64位ROM。AlarmSearch(報(bào)警芯片搜索)[ECH]:在多芯片掛接的情況下,報(bào)警芯片搜索指令只對(duì)附合溫度高于TH或小于TL報(bào)警條件的芯片做出反應(yīng)。只要芯片不掉電,報(bào)警狀態(tài)將被保持,直到再一次測得溫度值達(dá)不到報(bào)警條件為止。ROM指令為8位長度,功能是對(duì)片內(nèi)的64位光刻ROM進(jìn)行操作。其主要目的是為了分辨一條總線上掛接的多個(gè)器件并作處理。誠然,單總線上可以同時(shí)掛接多個(gè)器件,并通過每個(gè)器件上所獨(dú)有的ID號(hào)來區(qū)別,一般只掛接單個(gè)18B20芯片時(shí)可以跳過ROM指令(注意:此處指的跳過ROM指令并非不發(fā)送ROM指令,而是用特有的一條“跳過指令”)。(4)控制器發(fā)送存儲(chǔ)器操作指令:在ROM指令發(fā)送給18B20之后,緊接著(不間斷)就是發(fā)送存儲(chǔ)器操作指令了。操作指令同樣為8位,共6條,存儲(chǔ)器操作指令分別是寫RAM數(shù)據(jù)、讀RAM數(shù)據(jù)、將RAM數(shù)據(jù)復(fù)制到EEPROM、溫度轉(zhuǎn)換、將EEPROM中的報(bào)警值復(fù)制到RAM、工作方式切換。WriteScratchpad(向RAM中寫數(shù)據(jù))[4EH]:這是向RAM中寫入數(shù)據(jù)的指令,隨后寫入的兩個(gè)字節(jié)的數(shù)據(jù)將會(huì)被存到地址2(報(bào)警RAM之TH)和地址3(報(bào)警RAM之TL)。寫入過程中可以用復(fù)位信號(hào)中止寫入。ReadScratchpad(從RAM中讀數(shù)據(jù))[BEH]:此指令將從RAM中讀數(shù)據(jù),讀地址從地址0開始,一直可以讀到地址9,完成整個(gè)RAM數(shù)據(jù)的讀出。芯片允許在讀過程中用復(fù)位信號(hào)中止讀取,即可以不讀后面不需要的字節(jié)以減少讀取時(shí)間。CopyScratchpad(將RAM數(shù)據(jù)復(fù)制到EEPROM中)[48H]:此指令將RAM中的數(shù)據(jù)存入EEPROM中,以使數(shù)據(jù)掉電不丟失。此后由于芯片忙于EEPROM儲(chǔ)存處理,當(dāng)控制器發(fā)一個(gè)讀時(shí)間隙時(shí),總線上輸出“0”,當(dāng)儲(chǔ)存工作完成時(shí),總線將輸出“1”。在寄生工作方式時(shí)必須在發(fā)出此指令后立刻超用強(qiáng)上拉并至少保持10MS,來維持芯片工作。ConvertT(溫度轉(zhuǎn)換)[44H]:收到此指令后芯片將進(jìn)行一次溫度轉(zhuǎn)換,將轉(zhuǎn)換的溫度值放入RAM的第1、2地址。此后由于芯片忙于溫度轉(zhuǎn)換處理,當(dāng)控制器發(fā)一個(gè)讀時(shí)間隙時(shí),總線上輸出“0”,當(dāng)儲(chǔ)存工作完成時(shí),總線將輸出“1”。在寄生工作方式時(shí)必須在發(fā)出此指令后立刻超用強(qiáng)上拉并至少保持500MS,來維持芯片工作。RecallEEPROM(將EEPROM中的報(bào)警值復(fù)制到RAM)[B8H]:此指令將EEPROM中的報(bào)警值復(fù)制到RAM中的第3、4個(gè)字節(jié)里。由于芯片忙于復(fù)制處理,當(dāng)控制器發(fā)一個(gè)讀時(shí)間隙時(shí),總線上輸出“0”,當(dāng)儲(chǔ)存工作完成時(shí),總線將輸出“1”。另外,此指令將在芯片上電復(fù)位時(shí)將被自動(dòng)執(zhí)行。這樣RAM中的兩個(gè)報(bào)警字節(jié)位將始終為EEPROM中數(shù)據(jù)的鏡像。ReadPowerSupply(工作方式切換)[B4H]:此指令發(fā)出后發(fā)出讀時(shí)間隙,芯片會(huì)返回它的電源狀態(tài)字,“0”為寄生電源狀態(tài),“1”為外部電源狀態(tài)。存儲(chǔ)器操作指令的功能是命令18B20作什么樣的工作,是芯片控制的關(guān)鍵。(5)執(zhí)行或數(shù)據(jù)讀寫:一個(gè)存儲(chǔ)器操作指令結(jié)束后則將進(jìn)行指令執(zhí)行或數(shù)據(jù)的讀寫,這個(gè)操作要視存儲(chǔ)器操作指令而定。DS18B20需要嚴(yán)格的協(xié)議以確保數(shù)據(jù)的完整性。協(xié)議包括幾種單線信號(hào)類型:復(fù)位脈沖、存在脈沖、寫0、寫1、讀0和讀1。所有這些信號(hào),除存在脈沖外,都是由總線控制器發(fā)出的。和DS18B20間的任何通訊都需要以初始化序列開始。一個(gè)復(fù)位脈沖跟著一個(gè)存在脈沖表明DS18B20已經(jīng)準(zhǔn)備好發(fā)送和接收數(shù)據(jù)(適當(dāng)?shù)腞OM命令和存儲(chǔ)器操作命令)。DS18B20的復(fù)位時(shí)序:圖4-2DS18B20復(fù)位時(shí)序圖DS18B20的讀時(shí)序:對(duì)于DS18B20的讀時(shí)序分為讀0時(shí)序和讀1時(shí)序兩個(gè)過程。對(duì)于DS18B20的讀時(shí)隙是從主機(jī)把單總線拉低之后,在15us之內(nèi)就得釋放單總線,以讓DS18B20把數(shù)據(jù)傳輸?shù)絾慰偩€上。DS18B20在完成一個(gè)讀時(shí)序過程,至少需要60us才能完成。圖4-3DS18B20讀時(shí)序圖DS18B20的寫時(shí)序:對(duì)于DS18B20的寫時(shí)序仍然分為寫0時(shí)序和寫1時(shí)序兩個(gè)過程。對(duì)于DS18B20寫0時(shí)序和寫1時(shí)序的要求不同,當(dāng)要寫0時(shí)序時(shí),單總線要被拉低至少60us,保證DS18B20能夠在15us到45us之間能夠正確地采樣IO總線上的“0”電平,當(dāng)要寫1時(shí)序時(shí),單總線被拉低之后,在15us之后就得釋放單總線。圖4-4DS18B20寫時(shí)序圖4.3時(shí)鐘的讀取4.3.1DS1302控制字節(jié)的說明控制字節(jié)的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入到DS1302中位6如果為0,則表示存取日歷時(shí)鐘數(shù)據(jù),為1表示存取RAM數(shù)據(jù);位5至位1指示操作單元的地址;最低有效位(位0)如為0表示要進(jìn)行寫操作,為1表示進(jìn)行讀操作,控制字節(jié)總是從最低位開始輸出。圖4-5DS1302控制字節(jié)4.3.2DS1302時(shí)間日期寄存器及相應(yīng)位定義 表4-1為DS1302時(shí)間寄存器信息:表4-1DS1302時(shí)間日期寄存器4.3.3DS1302數(shù)據(jù)的輸入和輸出在控制指令字輸入后的下一個(gè)SCLK時(shí)鐘的上升沿時(shí)數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入從低位即位0開始。同樣,在緊跟8位的控制指令字后的下一個(gè)SCLK脈沖的下降沿讀出DS1302的數(shù)據(jù),讀出數(shù)據(jù)時(shí)從低位0位至高位7。圖4-6DS1302的時(shí)序4.3.4DS1302讀寫部分(程序)部分DS1302讀寫模塊與單片機(jī)進(jìn)行數(shù)據(jù)交換時(shí),先有STC89C52向電路發(fā)出命令字節(jié),命令字節(jié)的最高位MSB(D7)必須為邏輯1,如果D7=0,則禁止寫DS1302,即寫保護(hù);如果D6=0,指定時(shí)數(shù)據(jù),D6=1,指定RAM數(shù)據(jù);D5~D1指定輸入的寄存器;最低位MLB(D0)為邏輯0,指定寫操作(輸入),=1,指定讀操作(輸出)。若進(jìn)行單字節(jié)傳送,8位命令字節(jié)傳送結(jié)束后,在下另一個(gè)SCLK周期的上升沿輸入數(shù)據(jù)字節(jié),或在下八個(gè)SCLK周期的下降沿輸出數(shù)據(jù)字節(jié)。圖4-7DS1302讀寫程序模塊流程圖4.4溫度的顯示控制當(dāng)所測溫度從DS18B20輸送到單片機(jī)上之后,下一步就是要將其在液晶顯示器上顯示出來。首先對(duì)液晶進(jìn)行初始化,液晶顯示器12864的初始化過程如下:先將復(fù)位引腳置高位即RST=1、數(shù)據(jù)傳輸方式設(shè)為并口方式即PSB=1(在設(shè)計(jì)中,我們將LCD的該引腳接VCC),然后將指令集調(diào)到基本指令集上來即寫指令30H,再將顯示打開、關(guān)光標(biāo)、清除液晶里先前的顯示內(nèi)容即分別寫指令0CH、01H,寫指令時(shí)需分別延時(shí)5ms。然后就是數(shù)據(jù)的傳送過程,要使數(shù)據(jù)在液晶顯示器上顯示必須要按照其讀寫操作時(shí)序來進(jìn)行,其讀、寫操作時(shí)序圖為:寫操作時(shí)序:圖4-812864液晶顯示器寫時(shí)序圖讀操作時(shí)序:圖4-912864液晶顯示器讀時(shí)序圖4.5鍵盤模塊 鍵盤模塊的軟件程序相對(duì)于溫度模塊和時(shí)鐘模塊比較簡單。鍵盤模塊的設(shè)計(jì),關(guān)鍵是消陡。通常的按鍵所用開關(guān)為機(jī)械彈性開關(guān),當(dāng)機(jī)械觸點(diǎn)斷開、閉合時(shí),由于機(jī)械觸點(diǎn)的彈性作用,一個(gè)按鍵開關(guān)在閉合時(shí)不會(huì)馬上穩(wěn)定地接通,在斷開時(shí)也不會(huì)一下子斷開。因而在閉合及斷開的瞬間均伴隨有一連串的抖動(dòng),為了不產(chǎn)生這種現(xiàn)象而作的措施就是按鍵消抖。按鍵的消抖,可用硬件或軟件兩種方法。因?yàn)橛布缎枰砑宇~外的硬件,故這里我們采用軟件消抖。 軟件方法去抖,即檢測出鍵閉合后執(zhí)行一個(gè)延時(shí)程序,5ms~10ms的延時(shí),讓前沿抖動(dòng)消失后再一次檢測鍵的狀態(tài),如果仍保持閉合狀態(tài)電平,則確認(rèn)為真正有鍵按下。當(dāng)檢測到按鍵釋放后,也要給5ms~10ms的延時(shí),待后沿抖動(dòng)消失后才能轉(zhuǎn)入該鍵的處理程序。4.6蜂鳴器模塊 蜂鳴器模塊的設(shè)計(jì),主要是讓單片機(jī)產(chǎn)生一定頻率的電流信號(hào),在我們的設(shè)計(jì)中,使用單片機(jī)通過程序輸出方波信號(hào),來產(chǎn)生蜂鳴器需要的信號(hào),當(dāng)鬧鐘定時(shí)結(jié)束時(shí),就可以調(diào)用蜂鳴器程序,讓蜂鳴器發(fā)出聲音。當(dāng)然,我們的萬年歷再開機(jī)時(shí)會(huì)提醒用戶是否開啟按鍵時(shí),蜂鳴器是否聲音提醒,實(shí)現(xiàn)的方法是:我們?cè)诜澍Q器中設(shè)置了flag標(biāo)志位,當(dāng)開機(jī)時(shí),用戶的選擇會(huì)賦給flag標(biāo)志位,從而由單片機(jī)判斷是否讓蜂鳴器工作,為了記錄用戶的選擇,我們將flag標(biāo)志位放在了DS1302的空閑寄存器中,以保證用戶的選擇不會(huì)因?yàn)橄到y(tǒng)的掉電而消失,當(dāng)系統(tǒng)重新上電時(shí),系統(tǒng)還可以恢復(fù)用戶的選擇。5設(shè)計(jì)總結(jié)在硬件電路焊接和軟件程序設(shè)計(jì)分別完成的基礎(chǔ)之上,進(jìn)行軟硬件的結(jié)合與調(diào)試。通過下載將在電腦上已完成的程序下載到單片機(jī)芯片中。在調(diào)試中發(fā)現(xiàn)軟件中存在的問題,及時(shí)解決問題,確保系統(tǒng)能正常工作并達(dá)到設(shè)計(jì)要求。通過反復(fù)的調(diào)試與實(shí)驗(yàn),可以證明該系統(tǒng)能夠較好地完成設(shè)計(jì)所需的基本要求。即能夠正確的顯示萬年歷。在完成軟件系統(tǒng)時(shí),剛開始我是用的是11.0592M的晶振,所有器件正常,后來我換了12M的晶振,結(jié)果溫度就不正常了,經(jīng)過認(rèn)真排查才發(fā)現(xiàn)是由于DS18B20在數(shù)據(jù)讀取時(shí),對(duì)時(shí)間要求很精確,由于晶振的不同造成了讀數(shù)據(jù)的錯(cuò)誤,經(jīng)過這次調(diào)試,讓我更清晰的認(rèn)識(shí)到了時(shí)序?qū)υ骷闹匾?。在設(shè)計(jì)中,因?yàn)榭紤]到鬧鐘定時(shí)功能,我們希望我們?cè)O(shè)置的鬧鐘時(shí)刻不會(huì)因?yàn)橄到y(tǒng)的掉電而丟失,考慮到DS1302是有

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論