基于單片機(jī)AT89C51控制的熱水器設(shè)計(jì)_第1頁
基于單片機(jī)AT89C51控制的熱水器設(shè)計(jì)_第2頁
基于單片機(jī)AT89C51控制的熱水器設(shè)計(jì)_第3頁
基于單片機(jī)AT89C51控制的熱水器設(shè)計(jì)_第4頁
基于單片機(jī)AT89C51控制的熱水器設(shè)計(jì)_第5頁
已閱讀5頁,還剩16頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2總體方案設(shè)計(jì)2.1方案比擬方案一設(shè)計(jì)的太陽能熱水器控制系統(tǒng)以89C52單片機(jī)為檢測控制中心單元,采用DSl2887實(shí)時(shí)時(shí)鐘,不僅實(shí)現(xiàn)了時(shí)間、溫度和水位三種參數(shù)實(shí)時(shí)顯示功能,而且具有時(shí)間設(shè)定、溫度設(shè)定與控制功能??刂葡到y(tǒng)可以根據(jù)天氣情況利用輔助加熱裝置(電加熱器)使蓄水箱內(nèi)的水溫到達(dá)預(yù)先設(shè)定的溫度,從而到達(dá)24小時(shí)供給熱水的目的。實(shí)際應(yīng)用結(jié)果說明,該控制器和以往顯示儀相比具有性價(jià)比高、溫度控制與顯示精度高、使用方便和性能穩(wěn)定等優(yōu)點(diǎn)。AT89C圖2-1系統(tǒng)硬件結(jié)構(gòu)圖方案二采用系統(tǒng)的溫度采集選用PTl000鉑電阻溫度傳感器,采集到的電壓信號(hào)經(jīng)集成運(yùn)放LM324放大到2.O一5.0伏之間,送入串行加轉(zhuǎn)換器11LCl543N,轉(zhuǎn)換結(jié)果由單片機(jī)處理,其電路原理如圖3所示.設(shè)計(jì)時(shí)將加轉(zhuǎn)換器的參考電壓設(shè)置為vREF+=5.0V,VREF=1.5V.LM324按照同相比例放大電路連接,那么Vo=vi*(Rt/R+1)=0.5*(Rt/300+1).Rt值的變化表示了PtlooO溫度傳感器溫度的變化,每個(gè)溫度值對(duì)應(yīng)一定的轉(zhuǎn)換結(jié)果??梢栽诔绦蛑薪⒁粋€(gè)查找表,表中每個(gè)元素的地址即為轉(zhuǎn)換結(jié)果,元素值即為所對(duì)應(yīng)的溫度值。圖2-2系統(tǒng)硬件結(jié)構(gòu)圖2.2方案選擇方案一硬件電路簡單,程序設(shè)計(jì)復(fù)雜一些,但是我已經(jīng)使用開發(fā)工具KEIL用匯編語言對(duì)系統(tǒng)進(jìn)行了程序設(shè)計(jì),用仿真軟件PROTEUS對(duì)系統(tǒng)進(jìn)行了仿真,到達(dá)了預(yù)期的結(jié)果。由此可見,該方案完成具有可行性,表達(dá)了技術(shù)的先進(jìn)性,經(jīng)濟(jì)上也沒有問題。根據(jù)設(shè)計(jì)的要求,以及設(shè)計(jì)的便捷性,綜上所述,本課題采用方案一對(duì)系統(tǒng)進(jìn)行設(shè)計(jì)。3.單元模塊設(shè)計(jì)3.1各單元模塊功能介紹及電路設(shè)計(jì)物單片機(jī)系統(tǒng)設(shè)計(jì)單片機(jī)系統(tǒng)由AT89C52和一定功能的外圍電路組成,包括為單片機(jī)提供復(fù)位電壓的復(fù)位電路,提供系統(tǒng)頻率的晶振。這局部電路主要負(fù)責(zé)程序的存儲(chǔ)和運(yùn)行。上圖中MCS-51內(nèi)部時(shí)鐘方式電路外接晶體以及電容C5和C6構(gòu)成并聯(lián)諧振電路,接在放大器的反應(yīng)回路中。對(duì)外接電容的值雖然沒有嚴(yán)格的要求,但電容的大小會(huì)影響振蕩器頻率的上下、諧振器的穩(wěn)定性、起振的快速性和溫度的穩(wěn)定性。晶體可在1.2MHz~12MHz之間任選,電容C5和C6的典型值在20pF~100pF之間選擇,但在60pF~70pF時(shí)振蕩器具有較高的頻率穩(wěn)定性。典型值通常選擇為30pF左右,但本電路采用33pF。在設(shè)計(jì)印刷電路板時(shí),晶體或陶瓷振蕩器和電容應(yīng)盡可能安裝的與單片機(jī)芯片靠近,以減少寄生電容,更好的保證振蕩器穩(wěn)定和可靠的工作。為了提高溫度穩(wěn)定性,應(yīng)采用溫度穩(wěn)定性能好的NPO高頻電容。AT89C52的復(fù)位是由外部的復(fù)位電路來實(shí)現(xiàn)的。復(fù)位電路通常采用上電自動(dòng)復(fù)位和按鈕復(fù)位兩種方式。本設(shè)計(jì)中所用到的是上電按鈕復(fù)位。圖3-1單片機(jī)系統(tǒng)控制器實(shí)時(shí)時(shí)鐘接口電路為實(shí)現(xiàn)熱水器24小時(shí)供給熱水的目的,控制器必須有一個(gè)實(shí)時(shí)時(shí)鐘來為系統(tǒng)提供準(zhǔn)確的基準(zhǔn)時(shí)間;在軟件設(shè)計(jì)上那么要實(shí)時(shí)地讀出當(dāng)前時(shí)間,同設(shè)定時(shí)間比擬,以決定系統(tǒng)工作狀態(tài)。本系統(tǒng)采用美國DALLAS半導(dǎo)體公司最新推出的時(shí)鐘芯片DS12887,該芯片采用CMOS技術(shù),把時(shí)鐘芯片所需的晶振和電池以及相關(guān)的電路集成到芯片內(nèi)部,并與MC146818管腳完全兼容。DS12887芯片具有微功耗、外圍接口簡單、精度高,工作穩(wěn)定可靠等優(yōu)點(diǎn)。它與89C52單片機(jī)的接口電路見以下圖3-1。圖3-1DS12887與單片機(jī)接口電路水位檢測和溫度檢測接口電路蓄水箱水位和溫度檢測局部是實(shí)現(xiàn)溫度智能控制的重要環(huán)節(jié),只有準(zhǔn)確地檢測出水位和溫度,才能通過軟件計(jì)算提前開始輔助加熱的預(yù)加熱時(shí)間。要實(shí)現(xiàn)輔助加熱提前時(shí)間的精確計(jì)算,最好是采用連續(xù)液位傳感器,但考慮系統(tǒng)本錢,本設(shè)計(jì)仍采用分段式液位傳感器(通過軟件來提高精度),在水位顯示上也仍采用分段顯示。水位檢測局部的硬件連接如圖3-2所示。圖3-2水位監(jiān)測及顯示接口電路檢測原理如下:當(dāng)水箱中無水時(shí),8個(gè)非門均由1M歐姆電阻上拉成高電平,所以圖中各“非〞門(CD4069)輸出均為低電平,LED1~LED8均不亮。當(dāng)水位高于“非〞門1的輸入探針時(shí),由于水的導(dǎo)電作用,使“非〞門1的輸入變?yōu)榈碗娖?,所以其輸出變?yōu)楦唠娖剑琇ED點(diǎn)亮,依此類推。隨著水位的上升,各“非〞門輸出相繼為高電平,LED依次點(diǎn)亮。這里要注意的是上拉電阻不能選擇太小,因?yàn)樗碾娮柙?00k8左右,所以上拉電阻選擇太小的話,將在水位升高時(shí),無法把“非〞門輸入端拉成低電平。實(shí)驗(yàn)說明,上拉電阻選擇在500k~1M歐姆左右能很好地滿足電路的工作要求。為了使89C52隨時(shí)能夠讀出當(dāng)前的水位情況,這里選用74LS244作為狀態(tài)輸入緩沖器。蓄水箱溫度檢測電路采用DS18B20芯片使其換成脈沖信號(hào),送到89C52的I/O口(編程為計(jì)數(shù)器工作模式),通過測量輸出脈沖頻率的大小來換算成水溫上下信號(hào)。DS18B20與單片機(jī)接口電路設(shè)計(jì)基于DS18B20多點(diǎn)溫度測量系統(tǒng)以AT89C51為中心器件,以KEIL為系統(tǒng)開發(fā)平臺(tái),用C語言進(jìn)行程序設(shè)計(jì),以PROTEUS作為仿真軟件設(shè)計(jì)而成的。DS18B20是智能溫度傳感器,它的輸入/輸出采用數(shù)字量,以單總線技術(shù),接收主機(jī)發(fā)送的命令,根據(jù)DS18B20內(nèi)部的協(xié)議進(jìn)行相應(yīng)的處理,將轉(zhuǎn)換的溫度以串口發(fā)送給主機(jī)。主機(jī)按照通信協(xié)議用一個(gè)IO口模擬DS18B20的時(shí)序,發(fā)送命令〔初始化命令、ROM命令、功能命令〕給DS18B20,并讀取溫度值,在內(nèi)部進(jìn)行相應(yīng)的數(shù)值處理,用圖形液晶模塊顯示各點(diǎn)的溫度。在系統(tǒng)啟動(dòng)之時(shí),可以通過4×4鍵盤設(shè)置各點(diǎn)溫度的上限值,當(dāng)某點(diǎn)溫度超過設(shè)置值時(shí),報(bào)警器開始報(bào)警,從而實(shí)現(xiàn)了對(duì)各點(diǎn)溫度的實(shí)時(shí)監(jiān)控。每個(gè)DS18B20有自己的序列號(hào),因此本系統(tǒng)可以在一根總線上掛接了4個(gè)DS18B20,通過CRC校驗(yàn),對(duì)各個(gè)DS18B20的ROM進(jìn)行尋址,地址符合的DS18B20才作出響應(yīng),接收主機(jī)的命令,向主機(jī)發(fā)送轉(zhuǎn)換的溫度。采用這種DS18B20尋址技術(shù),使系統(tǒng)硬件電路更加簡單。如圖3-3圖3-3DS18B20與單片機(jī)接口電路鍵盤和顯示接口電路的設(shè)計(jì)以下圖為89C52單片機(jī)P1口構(gòu)成的中斷方式4*4鍵盤電路。P1.0-P1.3為行線,P1.4-P1.7為列線,行線與4輸入與門74HC21的一組輸入端相連,輸出端與外部中斷INT1相連。16個(gè)鍵號(hào)Ki〔I圖3-489C52P1口構(gòu)成的4*4中斷方式鍵盤行列式鍵盤處理程序較為復(fù)雜,當(dāng)有鍵按下時(shí)74HC21輸出端出現(xiàn)低電平請求中斷;在中斷效勞程序中要再次確認(rèn)是否真有鍵按下,真有鍵按下時(shí),再查出是哪個(gè)鍵按下,把該鍵的鍵號(hào)送入堆棧保護(hù),等待鍵釋放后再將鍵號(hào)彈出A中。該鍵盤輸入處理程序的出口狀態(tài)是鍵號(hào)在A中。設(shè)計(jì)中斷程序時(shí),先在主程序中將中斷系統(tǒng)初始化,并開中斷。在試驗(yàn)演示中通常開中斷都設(shè)置循環(huán)等待。鍵盤和顯示電路是人機(jī)交互的重要手段??刂奇I是用戶干預(yù)系統(tǒng)運(yùn)行的唯一接口,也是用戶比擬關(guān)心的問題。為了實(shí)現(xiàn)控制器對(duì)時(shí)間與溫度的設(shè)定及顯示功能,串行顯示電路采用串入并出芯片74LS164驅(qū)動(dòng)4位數(shù)碼管實(shí)現(xiàn)時(shí)間與溫度的靜態(tài)顯示。該電路只使用89C52的3個(gè)端口,配接4片串入并出移位存放器74LS164與1片三端可調(diào)穩(wěn)壓器LM317T。其中74LS164的引腳Q0~Q7為8位并行輸出端;引腳A、B為串行輸入端;引腳CLK為時(shí)鐘脈沖輸入端,在CLK脈沖的上升沿作用下實(shí)現(xiàn)移位,在CLK=0、去除端MR=1時(shí),74LS164保持原來數(shù)據(jù)狀態(tài);MR=0時(shí),74LS164輸出清零,其顯示電路如圖3-5。其工作過程如下:89C52的串行口設(shè)定在方式0移位存放器狀態(tài)下,串行數(shù)據(jù)由P3.0發(fā)送,移位時(shí)鐘由P3.1送出。在移位時(shí)鐘的作用下,串行口發(fā)送緩沖器的數(shù)據(jù)一位一位地移入74LS164中。4片74LS164串級(jí)擴(kuò)展為4個(gè)8位并行輸出口,分別連接到4個(gè)LED顯示器的段選端作靜態(tài)顯示。需要指出的是,由于74LS164無并行輸出控制端,因而在串行輸入過程中,其輸出端的狀態(tài)會(huì)不斷變化,造成不應(yīng)顯示的字段仍有較暗的亮度,影響了顯示的效果。以往的做法是在74LS164的輸出端加接4片鎖存器或三態(tài)門,使移位存放器串行輸入數(shù)據(jù)時(shí)其輸出端的變化不反映到LED上,待串行輸入結(jié)束后再翻開鎖存器或三態(tài)門,將穩(wěn)定的顯示數(shù)據(jù)送給LED。本設(shè)計(jì)電路的獨(dú)特之處在于僅采用了1片三端可調(diào)穩(wěn)壓器LM317T,317T的3、2腳分別是電壓輸入、輸出端,317T的1腳是電壓調(diào)整端,腳2輸出電壓隨腳1電壓而變化。腳1與接地電阻之間并一個(gè)NPN三極管,它的基極受P1.7口線控制,串行輸入時(shí)P1.7口線為高電平,三極管飽和導(dǎo)通使317T的腳1約為0.3V,腳2輸出電壓隨之下降到1.5V,缺乏以使共陽極LED發(fā)光,故此時(shí)串行輸入的影響不會(huì)反映到LED上;串行輸入結(jié)束后,使P1.7口線為低電平,三極管截止,腳2輸出電壓因腳1電壓增高便上升到2.0V使LED正常發(fā)光。因此,1片三端可調(diào)穩(wěn)壓器LM317T起到了4片鎖存器的作用使LED顯示不會(huì)閃爍。本電路的另一優(yōu)點(diǎn)是通過可調(diào)電位器P1可在線調(diào)整腳2的輸出電壓,使LED的顯示亮度均勻可調(diào),而且省掉了大量的LED限流電阻。光電隔離與輔助加熱電路圖3-5為太陽能熱水器光電隔離與輔助加熱電路設(shè)計(jì)。當(dāng)室外光強(qiáng)缺乏〔陰天、下雨〕時(shí),對(duì)水箱的水提前加熱是很必要的,這一電路恰好能完成這一功能。工作原理:當(dāng)單片機(jī)89C52P2.1口輸出高電平時(shí),三極管T1導(dǎo)通,致使發(fā)光二極管發(fā)光,同時(shí)光敏三極管T2導(dǎo)通,繼電器閉合,電阻絲R1~R4發(fā)熱,這樣就完成了加熱任務(wù),此電路雖然簡單,但在太陽能熱水器中是必不可少的。圖3-6輔助加熱電路圖3.2特殊元器件的介紹3.2.1AT89C52芯片圖3-7AT89C52芯片引腳圖AT89C521、與MCS-51單片機(jī)產(chǎn)品兼容2、8K字節(jié)在系統(tǒng)可編程Flash存儲(chǔ)器3、1000次擦寫周期4、全靜態(tài)操作:0Hz~33Hz5、三級(jí)加密程序存儲(chǔ)器6、32個(gè)可編程I/O口線7、三個(gè)16位定時(shí)器/計(jì)數(shù)器8、八個(gè)中斷源9、全雙工UART串行通道10、低功耗空閑和掉電模式l1、掉電后中斷可喚醒l2、看門狗定時(shí)器13、雙數(shù)據(jù)指針l4、掉電標(biāo)識(shí)符方框圖:圖3-8AT89C52內(nèi)部框圖功能特性描述:AT89C52提供以下表中功能:8k字節(jié)Flash閃速存儲(chǔ)器,256字節(jié)內(nèi)部RAM,32個(gè)I/O口線,3個(gè)16位定時(shí)/計(jì)數(shù)器,一個(gè)6向量兩級(jí)中斷結(jié)構(gòu),一個(gè)全雙工串行通信口,片內(nèi)振蕩器及時(shí)鐘電路。同時(shí),AT89CVCC:電源電壓GND:地P0口:P0口是一個(gè)8位漏極開路的雙向I/O口,也即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口,每位能吸收電流的方式驅(qū)動(dòng)8個(gè)TTL邏輯電平。對(duì)P0端口寫“1”時(shí),引腳用作高阻抗輸入。當(dāng)訪問外部程序和數(shù)據(jù)存儲(chǔ)器時(shí),P0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下,P0具有內(nèi)部上拉電阻。在flash編程時(shí),P0P1口:P1口是一個(gè)具有內(nèi)部上拉電阻的8位雙向I/O口,P1輸出緩沖器能驅(qū)動(dòng)4個(gè)TTL邏輯電平。對(duì)P1端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流〔IIL〕。此外,P1.0和P1.1分別作定時(shí)器/計(jì)數(shù)器2的外部計(jì)數(shù)輸〔P1.0/T2〕和時(shí)器/計(jì)數(shù)器2的觸發(fā)輸入〔P1.1/T2EX〕,具體如下表所示。在flash編程和校驗(yàn)時(shí),P1口接收低8表3.1P1.0和P1.1口的第二功能P2口:P2口是一個(gè)具有內(nèi)部上拉電阻的8位雙向I/O口,P2輸出緩沖器能驅(qū)動(dòng)4個(gè)TTL邏輯電平。對(duì)P2端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流〔IIL〕。在訪問外部程序存儲(chǔ)器或用16位地址讀取外部數(shù)據(jù)存儲(chǔ)器〔例如執(zhí)行MOVX@DPTR〕時(shí),P2口送出高八位地址。在這種應(yīng)用中,P2口使用很強(qiáng)的內(nèi)部上拉發(fā)送1。在使用8位地址〔如MOVX@RI〕訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),P2口輸出P2鎖存器的內(nèi)容。在flash編程和校驗(yàn)時(shí),P2口也接收高8P3口:P3口是一個(gè)具有內(nèi)部上拉電阻的8位雙向I/O口,P3輸出緩沖器能驅(qū)動(dòng)4個(gè)TTL邏輯電平。對(duì)P3端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流〔IIL〕。P3口亦作為AT89C52特殊功能〔第二功能〕使用,如下表所示。在flash編程和校驗(yàn)時(shí),表3.2P3口的第二功能RST:復(fù)位輸入。晶振工作時(shí),RST腳持續(xù)2個(gè)機(jī)器周期高電平將使單片機(jī)復(fù)位。ALE/PROG:地址鎖存控制信號(hào)〔ALE〕是訪問外部程序存儲(chǔ)器時(shí),鎖存低8位地址的輸出脈沖。在flash編程時(shí),此引腳〔PROG〕也用作編程輸入脈沖。在一般情況下,ALE以晶振六分之一的固定頻率輸出脈沖,可用來作為外部定時(shí)器或時(shí)鐘使用。然而,特別強(qiáng)調(diào),在每次訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),ALE脈沖將會(huì)跳過。如果需要,通過將地址為8EH的SFR的第0位置“1〞,ALE操作將無效。這一位置“1〞,ALE僅在執(zhí)行MOVX或MOVC指令時(shí)有效。否那么,ALE將被微弱拉高。這個(gè)ALE使能標(biāo)志位〔地址為8EH的SFR的第0位〕的設(shè)置對(duì)微控制器處于外部執(zhí)行模式下無效。PSEN:外部程序存儲(chǔ)器選通信號(hào)〔PSEN〕是外部程序存儲(chǔ)器選通信號(hào)。當(dāng)AT89C52從外部程序存儲(chǔ)器執(zhí)行外部代碼時(shí),PSEN在每個(gè)機(jī)器周期被激活兩次,而在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),PSEN將不被激活。EA/VPP:訪問外部程序存儲(chǔ)器控制信號(hào)。為使能從0000H到FFFFH的外部程序存儲(chǔ)器讀取指令,EA必須接GND。為了執(zhí)行內(nèi)部程序指令,EA應(yīng)該接VCC。在flash編程期間,EA也接收12伏VPP電壓。XTAL1:振蕩器反相放大器和內(nèi)部時(shí)鐘發(fā)生器的輸入端。XTAL2:振蕩器反相放大器的輸出端。Flash編程―并行模式:AT89C52帶有用作編程的片上Flash存儲(chǔ)器陣列。編程接口需要一個(gè)高電壓〔12V〕編程使能信號(hào),并且兼容常規(guī)的第三方Flash或EPROM編程器。編程方法:對(duì)AT89C52編程之前,需設(shè)置好地址、數(shù)據(jù)及控制信號(hào),可采用以下步驟對(duì)AT89C52編程:1.在地址線上輸入編程單元地址信號(hào)2.在數(shù)據(jù)線上輸入正確的數(shù)據(jù)3.激活相應(yīng)的控制信號(hào)4.把EA/Vpp升至12V5.每給Flash寫入一個(gè)字節(jié)或程序加密位時(shí),都要給ALE/PROG一次脈沖。每個(gè)字節(jié)寫入周期是自身定時(shí)的,通常均為1.5ms。重復(fù)1—5步驟,改變編程單元的地址和寫入的數(shù)據(jù),直到全部文件編程結(jié)束。DS12887時(shí)鐘芯片簡介隨著2000年的即將來臨,“千年蟲〞問題成為困擾當(dāng)今世界的一大難題。過去采用兩位數(shù)表示年度的日歷系統(tǒng)將要用四位數(shù)來表示,因此有關(guān)的計(jì)算機(jī)操作系統(tǒng)和應(yīng)用軟件都要作相應(yīng)的修改。據(jù)此,美國達(dá)拉斯半導(dǎo)體公司(Dallas)最新推出DS12887的串行接口實(shí)時(shí)時(shí)鐘芯片,采用CMOS技術(shù)制成,具有內(nèi)部晶振和時(shí)鐘芯片備份鋰電池,同時(shí)它與目前IBMAT計(jì)算機(jī)常用的時(shí)鐘芯片MC146818B和DS1287管腳兼容,可直接替換。它所提供的世紀(jì)字節(jié)在位置32h,世紀(jì)存放器32h到2000年1月1日從19遞增到20。采用DS12887芯片設(shè)計(jì)的時(shí)鐘電路不需任何外圍電路和器件,并具有良好的微機(jī)接口。DS12887芯片具有微功耗,外圍接口簡單,精度高,工作穩(wěn)定可靠等優(yōu)點(diǎn),可廣泛用于各種需要較高精度的實(shí)時(shí)時(shí)鐘系統(tǒng)。美國Dallas公司推出兩款數(shù)字時(shí)鐘芯片DS12887/DS12C887,兩款時(shí)鐘芯片都將在1999年12月31日23時(shí)59分59秒時(shí)順利地跳到2000年1月1日零時(shí),并能實(shí)2000年2月29日的閏年提示,是時(shí)鐘芯片DS1287的增強(qiáng)型品種,結(jié)構(gòu)上相當(dāng)于MC146818B的改良型。芯片都采用24引腳雙列直插式封裝,其引腳接口邏輯和內(nèi)部操作方式與MC146818根本一致,電,充足一次電可供芯片時(shí)鐘運(yùn)行半年之久,正常工作時(shí)可保證時(shí)鐘數(shù)據(jù)十年內(nèi)不會(huì)喪失。此外,片內(nèi)通用的RAM為MC146818的兩倍以上。DS12887/DS12C887內(nèi)部有專門的接口電路,從而使得外部電路的時(shí)序要求十分簡單,使它與各種微處理器的接口大大簡化。使用時(shí)無需外圍電路元件,只要選擇引腳MOT電平,即可和不同計(jì)算機(jī)總線連接。1.主要技術(shù)特點(diǎn)DS12887/DS12C887具有以下主要技術(shù)特點(diǎn):(1)具有完備的時(shí)鐘、鬧鐘及到2100年的日歷功能,可選擇12小時(shí)制或24小時(shí)制計(jì)時(shí),有AM和PM、星期、夏令時(shí)間操作,閏年自動(dòng)補(bǔ)償?shù)裙δ堋?2)具有可編程選擇的周期性中斷方式和多頻率輸出的方波發(fā)生器功能。(3)DS12887內(nèi)部有14個(gè)時(shí)鐘控制存放器,包括10個(gè)時(shí)標(biāo)存放器,4個(gè)狀態(tài)存放器和114bit作掉電保護(hù)用的低功耗RAM。(4)由于該芯片具有多種周期中斷速率時(shí)鐘中斷功能,因此可以滿足各種不同的待機(jī)要求,最長可達(dá)24小時(shí),使用非常方便。(5)時(shí)標(biāo)可選擇二進(jìn)制或BCD碼表示。(6)工作電壓:+4.5~5.5V、工作電流:7~15mA。(7)工作溫度范圍:0~70°2.DS12887/DS12C887的內(nèi)部結(jié)構(gòu)DS12887/DS12C887為24引腳芯片,內(nèi)部結(jié)構(gòu)如以下圖。圖3-9DS12887內(nèi)部框圖其中:MOT:計(jì)算機(jī)總線選擇端;SQW:方波輸出,速率和是否輸出由專用存放器A、B的預(yù)置參數(shù)決定;AD0~AD7:地址/數(shù)據(jù)(雙向)總線,由AS的下降沿鎖存8位地址;R/W:讀/寫數(shù)據(jù);AS:地址鎖存信號(hào)端;DS:數(shù)據(jù)讀信號(hào)端;CS:選通信號(hào)端,低電平有效;IRQ:中斷申請,由專用存放器決定;RESET:復(fù)位端;NC:空引腳。DS12887內(nèi)部由振蕩電路,分頻電路,周期中斷/方波選擇電路,14字節(jié)時(shí)鐘和控制單元,114字節(jié)用戶非易失RAM,十進(jìn)制/二進(jìn)制計(jì)加器,總線接口電路,電源開關(guān)寫保護(hù)單元和內(nèi)部鋰電池等局部組成。DS12887管腳分配如圖:圖3-10管腳分配圖VCC:直流電源+5V電壓。當(dāng)5V電壓在正常范圍內(nèi)時(shí),數(shù)據(jù)可讀寫;當(dāng)VCC低于4.25V,讀寫被禁止,計(jì)時(shí)功能仍繼續(xù);當(dāng)VCC下降到3V以下時(shí),RAM和計(jì)時(shí)器供電被切換到內(nèi)部鋰電池。MOT(模式選擇):MOT管腳接到VCC時(shí),選擇MOTOROLA時(shí)序,當(dāng)接到GND時(shí),選擇INTEL時(shí)序。SQW(方波信號(hào)輸出):SQW管腳能從實(shí)時(shí)時(shí)鐘內(nèi)部15級(jí)分頻器的13個(gè)抽頭中選擇一個(gè)作為輸出信號(hào),其輸出頻率可通過對(duì)存放器A編程改變。AD0—AD7(雙向地址/數(shù)據(jù)復(fù)用線):總線接口,可與MOTOROLA微機(jī)系列和INTEL微機(jī)系列接口。AS(地址選通輸入):用于實(shí)現(xiàn)信號(hào)別離,在AD/ALE的下降沿把地址鎖入DS12887。DS(數(shù)據(jù)選通或讀輸入):DS/RD管腳有兩種操作模式,取決于MOT管腳的電平,當(dāng)使用MOTORO2LA時(shí)序時(shí),DS是一正脈沖,出現(xiàn)在總線周期的后段,稱為數(shù)據(jù)選通;在讀周期,DS指示DS12887驅(qū)動(dòng)雙向總線的時(shí)刻;在寫周期,DS的后沿使DS12887鎖存寫數(shù)據(jù)。選擇INTEL時(shí)序時(shí),DS稱作(RD),RD與典型存貯器的允許信號(hào)(OE)的定義相同。R/W(讀/寫輸入):R/W管腳也有兩種操作模式。選MOTOROLA時(shí)序時(shí),R/W是一電平信號(hào),指示當(dāng)前周期是讀或?qū)懼芷冢珼S為高電平時(shí),R/W高電平指示讀周期,R/W信號(hào)是一低電平信號(hào),稱為WR。在此模式下,R/W管腳與通用RAM的寫允許信號(hào)(WE)的含義相同。CS(片選輸入):在訪問DS12887的總線周期內(nèi)片選信號(hào)必須保持為低。IRQ(中斷申請輸入):低電平有效,可作微處理的中斷輸入。沒有中斷的條件滿足時(shí),IRQ處于高阻態(tài)。IRQ線是漏極開中輸入,要求外接上接電阻。RESET(復(fù)位輸出):當(dāng)該腳保持低電平時(shí)間大于200ms,保證DS12887有效復(fù)位。3.DS12887/DS12C887內(nèi)部存放器的功能因DS12887和DS12C887結(jié)構(gòu)功能上類似,現(xiàn)以DS12887為例說明如下:CPU通過讀DS12887的內(nèi)部時(shí)標(biāo)存放器得到當(dāng)前的時(shí)間和日歷,也可通過選擇二進(jìn)制碼或BCD碼初始化芯片的10個(gè)時(shí)標(biāo)存放器。其114bit非易失性靜態(tài)RAM可供用戶使用,對(duì)于沒有RAM的單片機(jī)應(yīng)用系統(tǒng),可在主機(jī)掉電時(shí)來保存一些重要的數(shù)據(jù)。DS12887的4個(gè)狀態(tài)存放器用來控制和指DS12887模塊的當(dāng)前工作狀態(tài),除數(shù)據(jù)更新周期外,程序可隨時(shí)讀寫這4個(gè)存放器,各存放器的功能和作用如下。存放器A各位不受復(fù)位的影響,UIP位為只讀位,其它各位均可讀寫。存放器的控制字的格式如下表2所列:表2DS12887控制存放器A各布爾位定義:IT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0UIPDV2DV1DV0RS3RS2RS1RS01.IP位:更新周期標(biāo)志位。該位為“1”時(shí),表示芯片正處于或即將開始更新周期,此時(shí)程序不準(zhǔn)讀寫時(shí)標(biāo)存放器;該位為“0”時(shí),表示至少在244μs后才開始更新周期,2.DV0、DV1、DV2:芯片內(nèi)部振蕩器RTC控制位。當(dāng)芯片解除復(fù)位狀態(tài),并將010寫入DV0、DV1、DV2后,另一個(gè)更新周期將在500ms后開始。因此,在程序初始化時(shí)可用這三位精確地使芯片在設(shè)定的時(shí)間開始工作。這與MC146818不同的是,DS12887固定使用32768Hz的內(nèi)部晶體,所以,DV0=“0”,DV1=“1”,DV2=“0”,即只有一種0103.RS3、RS2、RS1、RS0:周期中斷可編程方波輸出速率選擇位。各種不同的組合可以產(chǎn)生不同的輸出。程序可以通過設(shè)置存放器B的SQWF和PIE位控制是否允許周期中斷和方波輸出。其存放器A輸出速率選擇位如表3所列。表3DS12887控制存放器A輸出速率選擇位定義存放器A輸出速率選擇位32768Hz時(shí)基RS3RS2RS1RS0中斷周期SQWF輸出頻0000無無00013.90625ms256Hz00107.8125ms128Hz0011122.0μs8.192kHz0100244.141μs4.096kHz0101488.281μs2.048kHz0110976.5625μs1.024kHz01111.953125ms512Hz10003.90625ms256Hz10017.812ms128Hz101015.625ms64Hz101131.25ms32Hz110062.5ms16Hz1101125ms8Hz1110250ms4Hz1111500ms2Hz存放器B允許讀寫,主要用于控制芯片的工作狀態(tài)。存放器B的控制字的格式如表4所列。表4DS12887控制存放器B各布爾位定義BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0SETPIEAIEUIESQWEDM24/12DSE(1)SET位:當(dāng)該位為“0”時(shí),芯片處于正常工作狀態(tài),每秒產(chǎn)生一個(gè)更新周期來更新時(shí)標(biāo)存放器為“1”時(shí),芯片停止工作,(2)PIE、AIE、UIE位:分別為周期中斷、報(bào)警中斷、更新周期結(jié)束中斷允許位。各位為“1”時(shí),(3)SQWE位:方波輸出允許位。SQWE“1”,按存放器A輸出速率選擇位所確定的頻率輸出方波;SQWE=“0”,腳(4)DM位:時(shí)標(biāo)存放器用十進(jìn)制BCD碼表示或用二進(jìn)制表示格式選擇位。DM=“0”時(shí),為十進(jìn)制BCD碼;DM=“1”時(shí)(5)24/12位:24/12小時(shí)模式設(shè)置位。24/12位=“1”時(shí),為24小時(shí)工作模式;24/12位=“0”時(shí),為(6)DSE位:夏令時(shí)效勞位。DSE=“1”,夏時(shí)制設(shè)置有效,夏時(shí)制結(jié)束可自動(dòng)刷新恢復(fù)時(shí)間;DSE=“0”存放器C的控制字的格式如表4所列。該存放器的特點(diǎn)是程序訪問讀該存放器后,該存放器的內(nèi)容將自動(dòng)清零,從而使IRQF標(biāo)志位變?yōu)楦唠娖剑衲敲?,芯片將無法向CPU申請下一次中斷。表5DS12887控制存放器C各布爾位定義BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0IRQFPFAFUF0000(1)IRQF位:中斷申請標(biāo)志位。該位邏輯表達(dá)式為:IRQF=PF·PIE+AF·AIE+UF·UIE。當(dāng)IRQF位變“1”時(shí),(2)PF、AF、UF位:這三位分別為周期中斷、報(bào)警中斷、更新周期結(jié)束中斷標(biāo)志位。只要滿足各中斷的條件,相應(yīng)的中斷標(biāo)志位將置“1”(3)BIT3~BIT0:未定義的保存位。讀出值始終為0。存放器D為只讀存放器。存放器D的控制字的格式如表6所示。表6DS12887控制存放器D各布爾位定義BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0VRT0000000(1)VRT位:芯片內(nèi)部RAM與存放器內(nèi)容有效標(biāo)志位。該位為“1”時(shí),指芯片內(nèi)部RAM和存放器內(nèi)容有效。讀該存放器后,該位將自動(dòng)置“1”。(2)BIT6~BIT0位:保存位。讀出的數(shù)值始終為0。4.DS12887/DS12C887的中斷和更新周期DS12887/DS12C887處于正常工作狀態(tài)時(shí),每秒鐘將產(chǎn)生一個(gè)更新周期,芯片處于更新周期的標(biāo)志是存放器A中的UIP位為“1”。在更新周期內(nèi),芯片內(nèi)部時(shí)標(biāo)存放器數(shù)據(jù)處于更新階段,故在該周期內(nèi),微處理器不能讀芯片時(shí)標(biāo)存放器的內(nèi)容,否那么將得到不確定數(shù)據(jù)。更新周期的根本功能主要是刷新各個(gè)時(shí)標(biāo)存放器中的內(nèi)容,同時(shí)秒時(shí)標(biāo)存放器內(nèi)容加1,并檢查其他時(shí)標(biāo)存放器內(nèi)容是否有溢出,如有溢出那么相應(yīng)進(jìn)位日、月、年。另外一個(gè)功能是檢查三個(gè)時(shí)、分、秒報(bào)警時(shí)標(biāo)存放器的內(nèi)容是否與對(duì)應(yīng)時(shí)標(biāo)存放器的內(nèi)容相符,如果相符那么存放器C中的AF位置“1”。如果報(bào)警時(shí)標(biāo)存放器的內(nèi)容為C0H至FFH之間的數(shù)據(jù)為了采樣時(shí)標(biāo)存放器中的數(shù)據(jù),DS12887/DS12C887提供了兩種避開更新周期內(nèi)訪問時(shí)標(biāo)存放器的方案:第一種是利用更新周期結(jié)束發(fā)出的中斷。它可以編程允許在每次更新周期結(jié)束后發(fā)生中斷申請,提醒CPU將有998ms左右的時(shí)間去獲取有效的數(shù)據(jù),在中斷之后的998ms時(shí)間內(nèi),程序可先將時(shí)標(biāo)數(shù)據(jù)讀到芯片內(nèi)部的不掉電靜態(tài)RAM中。因?yàn)樾酒瑑?nèi)部的靜態(tài)RAM和狀態(tài)存放器是可隨時(shí)讀寫的,在離開中斷效勞子程序前應(yīng)去除存放器C中的IRQF位。另一種是:利用存放器A中的UIP位來指示芯片是否處于更新周期。在UIP位從低變高244μs后,芯片將開始其更新周期,所以檢測到UIP位為低電平時(shí),那么利用244μs的間隔時(shí)間去讀取時(shí)標(biāo)信息。如檢測到UIP位為“1〞,那么可暫緩讀數(shù)據(jù),等到UIP變成低電平后再去讀數(shù)據(jù)。DS18B20的工作原理①DS18B20數(shù)字溫度傳感器概述DS18B20數(shù)字溫度計(jì)是DALLAS公司生產(chǎn)的1-Wire,即單總線器件,具有線路簡單,體積小的特點(diǎn)。因此用它來組成一個(gè)測溫系統(tǒng),具有線路簡單,在一根通信線,可以掛很多這樣的數(shù)字溫度計(jì),十分方便。DS18B20產(chǎn)品的特點(diǎn)只要求一個(gè)端口即可實(shí)現(xiàn)通信。在DS18B20中的每個(gè)器件上都有獨(dú)一無二的序列號(hào)。實(shí)際應(yīng)用中不需要外部任何元器件即可實(shí)現(xiàn)測溫。測量溫度范圍在-55.C到+125.C之間。數(shù)字溫度計(jì)的分辨率用戶可以從9位到12位選擇。內(nèi)部有溫度上、下限告警設(shè)置。TO-92封裝的DS18B20的引腳排列見圖4-2,其引腳功能描述見表4-1。表4-1DS18B20詳細(xì)引腳功能描述序號(hào)名稱引腳功能描述1GND地信號(hào)2DQ數(shù)字輸入輸出引腳,開漏單總線接口引腳,當(dāng)使用寄生電源時(shí),可向電源提供電源3VDD可選擇的VDD引腳,當(dāng)工作于寄生電源時(shí),該引腳必須接地②DS18B20的內(nèi)部結(jié)構(gòu)DS18B20的內(nèi)部框圖如圖4-3所示。64位ROM存儲(chǔ)器件獨(dú)一無二的序列號(hào)。暫存器包含兩字節(jié)〔0和1字節(jié)〕的溫度存放器,用于存儲(chǔ)溫度傳感器的數(shù)字輸出。暫存器還提供一字節(jié)的上線警報(bào)觸發(fā)〔TH〕和下線警報(bào)觸發(fā)〔TL〕存放器〔2和3字節(jié)〕,和一字節(jié)的配置存放器〔4字節(jié)〕,使用者可以通過配置存放器來設(shè)置溫度轉(zhuǎn)換的精度。暫存器的5、6和7字節(jié)器件內(nèi)部保存使用。第八字節(jié)含有循環(huán)冗余碼〔CRC〕。圖3-11DS18B20的內(nèi)部框圖DS18B20加電后,處在空閑狀態(tài)。要啟動(dòng)溫度測量和模擬到數(shù)字的轉(zhuǎn)換,處理器須向其發(fā)出ConvertT[44h]命令;轉(zhuǎn)換完后,DS18B20回到空閑狀態(tài)。溫度數(shù)據(jù)是以帶符號(hào)位的16-bit補(bǔ)碼存儲(chǔ)在溫度存放器中的,如圖3-11所示:圖3-12溫度存放器格式符號(hào)位說明溫度是正值還是負(fù)值,正值時(shí)S=0,負(fù)值時(shí)S=1。表4-2給出了一些數(shù)字輸出數(shù)據(jù)與對(duì)應(yīng)的溫度值的例子。溫度輸出(2進(jìn)制)輸出(16進(jìn)制)+125000001111101000007D0H+8500000101010100000550H+20.062500000001100100010191H+10.125000000001010001000A2H+0.500000000000010000008H000000000000000000000H-0.51111111111111000FFF8H-10.1251111111101011110FF5EH25.06251110111001101111EE6FH-551111111010010000FE90H表3-2溫度/數(shù)據(jù)的關(guān)系③DS18B20的命令序列初始化ROM命令跟隨著需要交換的數(shù)據(jù);功能命令跟隨著需要交換的數(shù)據(jù)。訪問DS18B20必須嚴(yán)格遵守這一命令序列,如果喪失任何一步或序列混亂,DS18B20都不會(huì)響應(yīng)主機(jī)〔除了SearchROM和AlarmSearch這兩個(gè)命令,在這兩個(gè)命令后,主機(jī)都必須返回到第一步〕。a.初始化:DS18B20所有的數(shù)據(jù)交換都由一個(gè)初始化序列開始。由主機(jī)發(fā)出的復(fù)位脈沖和跟在其后的由DS18B20發(fā)出的應(yīng)答脈沖構(gòu)成。當(dāng)DS18B20發(fā)出響應(yīng)主機(jī)的應(yīng)答脈沖時(shí),即向主機(jī)說明它已處在總線上并且準(zhǔn)備工作。b.ROM命令:ROM命令通過每個(gè)器件64-bit的ROM碼,使主機(jī)指定某一特定器件〔如果有多個(gè)器件掛在總線上〕與之進(jìn)行通信。DS18B20的ROM如表4-3所示,每個(gè)ROM命令都是8bit長。指令協(xié)議功能讀ROM33H讀DS18B20中的編碼(即64位地址)符合ROM55H發(fā)出此命令后,接著發(fā)出64位ROM編碼,訪問單總線上與該編碼相對(duì)應(yīng)的DS18B20,使之作出響應(yīng),為下一步對(duì)該DS18B20的讀寫作準(zhǔn)備搜索ROM0F0H用于確定掛接在同一總線上DS18B20的個(gè)數(shù)和識(shí)別64位ROM地址,為操作各器件作好準(zhǔn)備跳過ROM0CCH忽略64位ROM地址,直接向DS18B20V溫度轉(zhuǎn)換命令,適用于單個(gè)DS18B20工作告警搜索命令0ECH執(zhí)行后,只有溫度超過廟宇值上限或下限的片子才做出響應(yīng)溫度轉(zhuǎn)換44H啟動(dòng)DS18B20進(jìn)行溫度轉(zhuǎn)換,轉(zhuǎn)換時(shí)間最長為500ms(典型為200ms),結(jié)果豐入內(nèi)部9字節(jié)RAM中讀暫存器BEH讀內(nèi)部RAM中9字節(jié)的內(nèi)容 寫暫存器4EH發(fā)出向內(nèi)部RAM的第3、4字節(jié)寫上、下溫度數(shù)據(jù)命令,緊該溫度命令之后,傳達(dá)兩字節(jié)的數(shù)據(jù)復(fù)制暫存器48H將RAM中第3、4字內(nèi)容復(fù)制到E2PROM中重調(diào)E2PROM0B8H將E2PROM中內(nèi)容恢復(fù)到RAM中的第3、4字節(jié)讀供電方式0B4H讀DS18B20的供電模式,寄生供電時(shí)DS18B20發(fā)送“0〞,外部供電時(shí)DS18B20發(fā)送“1〞c.功能命令:主機(jī)通過功能命令對(duì)DS18B20進(jìn)行讀/寫Scratchpad存儲(chǔ)器,或者啟動(dòng)溫度轉(zhuǎn)換。4軟件設(shè)計(jì)4.1軟件設(shè)計(jì)原理及設(shè)計(jì)所用工具本次設(shè)計(jì)主要利用C語言編寫程序,根據(jù)功能的需要進(jìn)行編程,其中軟件設(shè)計(jì)所用的軟件主要是KeiluVision3軟件,PROTEUSISIS軟件。熱水器不管在什么樣的天氣里,都能夠在設(shè)定的時(shí)間向用戶提供設(shè)定溫度的熱水,從而給用戶帶來便利。當(dāng)控制器在設(shè)定的時(shí)間使水溫到達(dá)設(shè)定溫度時(shí),將通過聲光報(bào)警提醒用戶。根據(jù)這一要求,控制器軟件設(shè)計(jì)采用模塊化結(jié)構(gòu),包括主程序、鍵盤中斷子程序、DS12887更新周期結(jié)束中斷子程序、LED顯示子程序和提前加熱時(shí)間計(jì)算子程序等。系統(tǒng)主程序主要完成溫度和水位的檢測以及進(jìn)行輔助加熱時(shí)間預(yù)算和一些初始化功能。在主程序中采用了查表方法進(jìn)行輔助加熱提前量預(yù)算。系統(tǒng)主程序流程圖如圖4所示。圖4-1系統(tǒng)程序流程圖對(duì)于溫度和時(shí)間設(shè)定,每次設(shè)定結(jié)束后,就將設(shè)定值存入DS12887的非易失性RAM中,下次開機(jī)時(shí)進(jìn)行讀取。這樣作至少有兩個(gè)優(yōu)點(diǎn):一是系統(tǒng)在不進(jìn)行設(shè)定時(shí),就認(rèn)定該設(shè)定值和先前一次一樣,解決了每次開機(jī)總要從頭設(shè)定的問題,另一個(gè)是假設(shè)系統(tǒng)在運(yùn)行中間停電而再次來電時(shí),可以不用重新設(shè)定,就能按原設(shè)定值對(duì)溫度進(jìn)行控制,增強(qiáng)了控制器適應(yīng)外界變化的能力。對(duì)提前加熱時(shí)間的計(jì)算,那么是系統(tǒng)能否實(shí)現(xiàn)預(yù)定功能的重要一環(huán)。因?yàn)橄到y(tǒng)采用分段式水位檢測,假設(shè)采用能量守恒的方法對(duì)提前加熱時(shí)間進(jìn)行預(yù)算,也同樣得不到精確的結(jié)果。為了避開繁瑣的計(jì)算過程,本系統(tǒng)中采用了模糊控制思想,使用了如下一些控制語句:IF水位高AND溫度差大THEN加熱時(shí)間長IF水位適中AND溫度差適中THEN加熱時(shí)間適中IF水位低AND溫度差低THEN加熱時(shí)間少采用這種思想后,可以用實(shí)驗(yàn)方法獲得各種情況下需要加熱的時(shí)間,編制成表格。使用時(shí),只要查表獲得提前加熱時(shí)間就行了。顯然,表格分得越細(xì),控制就越準(zhǔn)確。本控制器采用溫差每等于5℃為一格,就能滿足控制要求了。為了減小誤差,試驗(yàn)說明,可以采用如圖5的方法。圖4-2水位監(jiān)測處理示意圖實(shí)驗(yàn)中,用水位到達(dá)B1時(shí)的結(jié)果代替水位到達(dá)A1時(shí)的結(jié)果,B2代替A2,B3代替A3,B4代替A4。這樣,CPU讀入的A1水位查表后得到的預(yù)加熱時(shí)間是實(shí)驗(yàn)中水位在B1處的時(shí)間。經(jīng)過這種處理,會(huì)把由于分段檢測而產(chǎn)生的計(jì)算誤差減小一半,由原來的h變成了h/2(h為分段水位檢測間隙)。如果水箱水深為40cm,分8段檢測,此種處理方法的計(jì)算將使水位誤差由原來的5cm變成了2.5cm。這種誤差對(duì)于民用的熱水器來說,已完全能夠滿足要求了。4.2顯示子程序分析說明,移位存放器74LS164僅有串入并出作用沒有譯碼功能。因此,在編寫顯示驅(qū)動(dòng)程序之前,首先需要計(jì)算列寫出與本電路對(duì)應(yīng)的LED段選碼,然后由89C52的P3.0口送入74LS164的串行輸入端,再并行輸出到LED的段選端。需要指出的是,上面顯示電路采用TOS28106BHK型號(hào)的共陽極LED顯示器,根據(jù)PCB印制線路板的連線方便,其LED的8個(gè)段選端與74LS164的并行輸出口即8根段選線的連接沒有遵照通常的規(guī)律,而是如圖3-5所示的段排列為7、6、4、2、1、9、10、5,相應(yīng)的段選碼也要重新計(jì)算,如顯示字符0的段選碼為11H。電路中設(shè)計(jì)了4位LED顯示器,其功能為:左首位為百位數(shù)或標(biāo)志位,左二位為十位數(shù),左三位為個(gè)位數(shù),左四位為小數(shù)點(diǎn)后的十分位數(shù)。據(jù)此,給出如圖4-3所示的顯示子程序框圖。圖4-3顯示子程序框圖5系統(tǒng)調(diào)試5.1軟件調(diào)試軟件的調(diào)試主要通過KeiluVision3軟件進(jìn)行操作,對(duì)程序編寫過程中的錯(cuò)誤進(jìn)行查找,找出錯(cuò)誤,進(jìn)行修改,然后再進(jìn)行編譯直至編譯成功,生成HEX文件,才能下載到單片機(jī)里,繼而實(shí)現(xiàn)相應(yīng)功能。6系統(tǒng)功能6.1系統(tǒng)能實(shí)現(xiàn)的功能本系統(tǒng)通過單片機(jī)控制各個(gè)電路模塊以實(shí)現(xiàn)對(duì)溫度,水位的檢測,以及對(duì)整個(gè)熱水器的智能化控制。6.2系統(tǒng)功能測試設(shè)計(jì)前期通過KEIL軟件和PROTEUS仿真軟件的聯(lián)調(diào),對(duì)設(shè)計(jì)功能進(jìn)行仿真,均到達(dá)了預(yù)期的設(shè)計(jì)效果,設(shè)計(jì)后期,硬件制作完畢后,將仿真成功后的程序通過單片機(jī)下載程序,寫入單片機(jī),再根據(jù)顯示模塊的各個(gè)端口連接方式,正確地將單片機(jī)跟顯示模塊連接,最后都實(shí)現(xiàn)了設(shè)計(jì)的功能。6.3系統(tǒng)功能分析該控制器和以往顯示儀相比具有性能價(jià)格比高、溫度控制與顯示精度高、使用方便和性能穩(wěn)定等優(yōu)點(diǎn)。單片機(jī)控制系統(tǒng)具有低價(jià)、智能的優(yōu)勢,能夠根據(jù)需求的不同而作相應(yīng)的調(diào)整,更加個(gè)性化。同時(shí),使用單片機(jī)控制系統(tǒng)能夠節(jié)約能源,保護(hù)設(shè)備,延長設(shè)備的使用時(shí)間。該熱水器具備以下特點(diǎn):結(jié)構(gòu)簡單、運(yùn)行可靠、操作維護(hù)簡便。熱源取之不盡用之不竭,不需要運(yùn)輸,節(jié)省燃料。無污染,不會(huì)對(duì)周圍環(huán)境造成任何影響。熱水產(chǎn)量受季節(jié)、地區(qū)緯度、采熱面積、采熱器類型、環(huán)境溫度、供水溫度、風(fēng)速、日照實(shí)際等因素影響較大。該系統(tǒng)加裝減壓閥后可與鍋爐配套使用,解決冬季用水。不用考慮玻璃蓋的防凍裝置。該系統(tǒng)加裝減壓閥后可與鍋爐配套使用,解決冬季用水。不用考慮玻璃蓋的防凍裝置。該熱水器裝置置于浴室屋訂占地面積較大,同時(shí)增加了建筑物的載荷。在試制和安裝過程中我們體會(huì)到只有注意以下幾個(gè)方面才能保證熱水器的正常運(yùn)行,第一是循環(huán)管道水流方向不允許有反坡現(xiàn)象,拐彎要和緩,管道內(nèi)要清潔無阻塞。第二是冷水箱、熱水箱、集熱器及熱水保溫的相對(duì)位置及標(biāo)高合理,符合水流規(guī)律,第三是補(bǔ)充給熱水箱的水流不允許沖擊,第四是電磁閥的選擇及安裝位置要合理,保證動(dòng)作靈敏可靠??傊?,無論從市場或技術(shù)抑或價(jià)格的角度來說,此款熱水器具有很大的優(yōu)勢。它市場前景廣闊、技術(shù)先進(jìn)、價(jià)格合理、高度智能化,方便省事,是當(dāng)前市面上熱水器的升級(jí)產(chǎn)品。它不但適合于城鄉(xiāng)民宅需求,還適用于寫字樓、餐飲、娛樂、商業(yè)效勞浴室、理發(fā)店、旅館、招待所、托兒所、敬老院及外貿(mào)出口等各種需求。7總結(jié)與體會(huì)本次課程設(shè)計(jì)是對(duì)所學(xué)知識(shí)的一次綜合性運(yùn)用。其中包括對(duì)模擬電子技術(shù)根底、和數(shù)字電子技術(shù)根底、單片機(jī)等知識(shí)的運(yùn)用。從而完成了本次設(shè)計(jì)。在設(shè)計(jì)的過程中發(fā)現(xiàn)了自身知識(shí)的缺乏,也發(fā)現(xiàn)我們必須具備專業(yè)根底知識(shí)以外,才能成功的設(shè)計(jì)出一件合格的東西。這次課程設(shè)計(jì)收獲很多,體會(huì)也很深刻,并且對(duì)我們所學(xué)的東西也產(chǎn)生了濃厚的興趣。在設(shè)計(jì)過程中,也學(xué)會(huì)了很多新的東西,PROTEL軟件繪制電路原理圖和PCB圖,以及一些仿真軟件的應(yīng)用,最典型的就是PROTEUS軟件的應(yīng)用,以及與KEIL軟件的聯(lián)合使用功能。當(dāng)然最重要的是學(xué)到了關(guān)于根本電子設(shè)計(jì)的一些根本方法,同時(shí)也加深了對(duì)一些常用的電子元件的理解及其根本用法的掌握。除此之外,我覺得在這次設(shè)計(jì)的過程中,我發(fā)現(xiàn)團(tuán)隊(duì)精神的重要性,很多時(shí)候一個(gè)人的力量是有限的,一個(gè)人不可能什么都會(huì),什么都能自己解決,還是有需要他人幫助的時(shí)候,我覺得人與人之間的相互幫助很有必要,這樣不僅能幫助大家很快的解決問題,還能提高我們每個(gè)人的實(shí)際水平,也培養(yǎng)了我們的團(tuán)隊(duì)合作精神,這些能力對(duì)于我們今后的學(xué)習(xí)和工作都很有幫助。由于時(shí)間關(guān)系,本次設(shè)計(jì)中還有不盡完善之處。希望在以后的學(xué)習(xí)生涯中不斷的完善和改良。在本次設(shè)計(jì)過程中遇到不少問題,在舒欣梅老師和同學(xué)的幫助和配合下才順利的完成了本次課程設(shè)計(jì)。舒欣梅老師在我們做設(shè)計(jì)的過程中,給予了我們極大的幫助,不僅從知識(shí)方面引導(dǎo)了我們的設(shè)計(jì)思路,同時(shí),在人生觀上也給了我們不少的啟示。在此,我對(duì)老師和同學(xué)表示深深的謝意。8參考文獻(xiàn)[1]謝自美.電子線路設(shè)計(jì)·實(shí)驗(yàn)·測試.華中科技大學(xué)出版社,2002.07[2]康華光.電子技術(shù)根底〔數(shù)字局部〕.高等教育出版社,2003.03[3]康華光.電子技術(shù)根底〔模擬局部〕.高等教育出版社,2003.03[4]陳振官.新穎高效聲光報(bào)警器DIY.國防工業(yè)出版社,2005.04[5]肖景和.初學(xué)無線電——電子電路分析.人民郵電出版社,2006.01[6]精英科技編著.電路設(shè)計(jì)完全手冊.中國電力出版社.2001[7]后俊偉編著.電路設(shè)計(jì)自動(dòng)化.電子科技大學(xué)出版社.1995.11[8]清源科技編著.Protel99SE電路原理圖與PCB仿真.機(jī)械工業(yè)出版社.2007[9]馬建國,孟憲元主編.電子設(shè)計(jì)自動(dòng)化技術(shù)根底.清華大學(xué)出版社.2004[10]杜剛.電路設(shè)計(jì)與制版protel應(yīng)用教程.清華大學(xué)出版社.2006[11]趙晶編著.電路設(shè)計(jì)與制版protel99高級(jí)應(yīng)用.人民郵電出版社.2000.11附錄1:主程序:ORG000HJMPSTARTSTART:CurtempEQU10H;Curtemp存儲(chǔ)地址PretempEQU11H;Pretemp存儲(chǔ)地址MOVTMOD,#53HLCALLInitDS12887;初始化DS12887時(shí)鐘芯片SETBEA;開CPU中斷LCALLReadTempandTime;讀溫度時(shí)間設(shè)定值LCALLReadWaterandPosition;讀水位高度CLRC;C清零SUBCurtemp,pretempJCOffheatHeatcontinue:LCALLFUZZY;預(yù)算提前加熱時(shí)間LCALLDELAYLCALLHeatSJMP$OffHeat:CLRP2.1RETIHeat:SETBP2.1LCALLDELAYCLRCLCALLReadTempMOVA,CurtempADDA,#2HSUBA,PretempJNCKeepTempJMPHeatcontinueLCALLKeeptempCONRETIInitDS12887:SETBP2。1MOVDPTR,#0BH;初始化DS12887B存放器MOVA,#22H;置DS1288724小時(shí)模式MOVX@DPTR,A;允許報(bào)警中斷禁止其它中斷MOVDPTR,#0AH;初始化DS12887A存放器MOVXA,#20H;時(shí)鐘頻率52.628KHZ,禁止SQWMOVDPTR,#00H;初始化時(shí)鐘MOVA,#00HMOVX@DPTR,A;秒MOVDPTR,#02H;分MOV@DPTR,AMOVDPTR,#04H;時(shí)MOVA,#12HMOV@DPTR,ARETIReadTempandTime:LCALLReadTempLCALLReadTimeRETIORG0013HJMPKeyBoardINTKeyBoardINT:LED顯示子程序:DISI:SETBP1.7;滅顯示MOVR0,#SBCDMOVA,@R0;取出要顯示的數(shù)ADDA,#2DH;加上偏移量MOVCA,@A+PC;查表取出段選碼MOVSBUF,A;送出顯示DL1:JNBTI,DL1;輸出完否?CLRTI;完,清中斷標(biāo)志INCR0MOVA,@R0ADDA,#21HMOVCA,@A+PCANLA,#OEFH;個(gè)位加小數(shù)點(diǎn)MOVSBUF,ADL2:JNBTI,DL2CLRTIINCR

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論