




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
.PAGE.摘要本設計主要設計了一個基于單片機的太陽能熱水器水位控制系統。設計以單片機為核心,配合電阻型4檔水位傳感器、8255A擴展鍵盤和顯示器件、以及電磁閥、報警等外圍器件,從而完成對太陽能熱水器容器內的水位測量及控制;時間顯示;缺水時自動上水;水滿報警;手動上水等功能。本文主要進行時鐘電路、電源電路、鍵盤輸入電路、傳感器電路、顯示電路的設計,以及硬件選擇和系統軟件設計。本文在已有的太陽能熱水器的技術的基礎上,采用單片機對熱水器水位控制,通過合理的選擇和設計,提高了水位傳感器的控制水平,改善了熱水器的實際使用功能,從而使太陽能熱水器水位控制達到了較為理想的效果。
關鍵詞:太陽能熱水器,水位控制,單片機,傳感器..Abstract..Thisarticlemainlydesignedamonolithicintegratedcircuits,thecontrolsystemofthesolarwaterheaters.Ittakethemicrocontrollerintegratedcircuitasthecore,thecoordinate4gradesofwaterslevelresistancesensor,the8255Aexpansionkeyboardandthedemonstrationcomponent,thesolenoidvalve,warning,andotherperipherycomponent,thuscompletestothewaterlevelmeasureanddemonstrate;thetimedemonstrate;lackofwaterautomaticallyupstream,thewateroverflowwarn,manualwaterfunctionandsoon.Thisarticlemainlyforclockcircuit,powersupplycircuits,thekeyboardtoenterthecircuit,sensorcircuit,displayofthecircuitdesign,andhardwareandsystemchoiceofsoftwaredesign.Thisarticleinthegivensolarwaterheaterstechnologyonthebasisofamonolithicintegratedcircuitstocontrolthroughthewaterheaterandreasonableoptionsanddesign,andimprovethecontrolofthesensorandimprovedtheactualusetomakesolarwaterheatersunderthewatercametoadesirableeffect.Keyword:Solarwaterheaters,Thewatercontrol,Monolithicintegratedcircuits,Sensors目錄TOC\o"1-4"\h\z\u摘要IAbstract〔英文摘要II第一章緒論11.1課題的目的及意義11.2國內外研究綜述及發展現狀11.3本文完成的工作2第二章總體方案設計32.1系統的設計要求32.2系統設計方案與比較3第三章水位測量電路硬件設計53.1水位測量電路53.1.1方案比較選擇53.1.2水位測量電路的具體設計8第四章時鐘電路和電源電路104.1時鐘芯片選擇104.1.1DS12B887并行時鐘芯片104.1.2DS1302串行時鐘芯片114.1.3比較選擇114.2時鐘電路的應用設計114.2.1DS1302內部寄存器114.2.2DS1302與單片機的連接及時間讀取方法124.3電源電路的設計13第五章鍵盤和顯示電路145.1方案選擇145.1.18255A芯片介紹145.1.28255A在太陽能熱水器控制電路中的作用175.2顯示電路工作原理175.2.18255A顯示電路的硬件結構175.2.28255A實現顯示方法205.3鍵盤電路原理215.3.1獨立式鍵盤工作原理215.3.2鍵盤功能介紹215.3.3鍵盤掃描介紹21第六章傳感器電路236.1工作原理236.2單片機控制結構圖236.3傳感器電路組成的原理圖24第七章其他硬件電路設計267.1上水控制電路267.2電加熱控制電路267.3報警控制電路267.4水位顯示電路26結論28參考文獻29致謝30附錄31..第一章緒論1.1課題的目的及意義太陽能熱水器水位控制電路是近年來發展起來的一種新型控制電路,具有功能齊全、控制簡單、抗干擾能力強、價格便宜、重量輕、耗電省等優點。太陽能熱水器水位控制中的傳感器技術,數字電子技術與自動控制技術在生產過程,科學研究,現實生活應用及其他領域的應用十分廣泛。這種專用感應控制水位裝置的設計可以提高專業知識的運用能力,促進科技向生活的轉化及環保事業的發展,對于提高生活質量有重要作用。隨著太陽能熱水器的推廣普及,在自來水供應不充足的地方,如何連續正常供水是一個現實的問題。由于太陽能熱水器的注水箱大多安裝在房頂上,是否缺水不易觀察,如何使用自動水位控制裝置來控制水泵的工作,就能夠很好的解決這個問題,從而給廣大用戶帶來很大的方便。1.2國內外研究綜述及發展現狀從上世紀八十年代起,國內外已經對太陽能水位控制進行了廣泛的研究。而太陽熱水器水位控制的技術難點在水位傳感器。目前市場上有兩種形式的傳感器,一種是利用水作介質進行導電的電極傳感器,這種傳感器的原理是只要把兩電極接通就會有相應的信號傳給主機,顯示水位;另一種傳感器是浮子式,這種傳感器的原理就是利用電磁場開關干簧管,輸出電信號。由于電極在水中導電不可避免地要電解電極,故電極式傳感器的壽命一般長1-2年,電極加粗后壽命可達3-4年。XX賽佳公司從事生產研究已多年,在傳感器技術的研究上于2000年3月份終于研制成功諧振及硅壓力兩大系列水位傳感器。這兩個系列傳感器由于沒有采用導電和浮子式的投入式工作方式,傳感器的工作環境大大改善,同時這樣也從根本上解決了電極的電解和浮子的結垢問題。這兩大系列傳感器試制成功后,該公司并沒有急于推向市場,而是為了保證傳感器在工藝上盡善盡美,又進行了40多種方案的試驗,而且在外界環境比較特殊的地區如高溫、高寒、多雷等地區進行了小批試驗。歷經一年多的的實地觀察,事實證明這兩大系列的傳感器在技術上穩定可靠,在工藝上制作簡單,安裝維修方便。這兩種傳感器的研制成功,突破了太陽熱水器水位控制在技術上的瓶頸,必將帶來整個行業的一次革命。進步源于競爭,在我國太陽能擁有廣闊的市場,當然也有更大的競爭,各大商家為了使自己的產品在市場上立足并長遠發展,不斷提高太陽能熱水器的性能,其中太陽能熱水器控制器以其靈活、貼近客戶成為商家競爭的熱點。目前,各大商家紛紛提高太陽能熱水器的智能化程度來滿足消費者的需求。許多太陽能熱水器的功能有:開機自檢、溫控上水、強制上水、水位預置、水質設置、水溫指示、低水壓上水、水位顯示、防高溫空曬、缺水報警、自動防溢流、缺水上水、手動上水、故障提示等許多貼近客戶需求的功能。目前太陽能控制器的控制器基本實現數字化,以單片機為控制核心的控制系統占領太陽能熱水器的主要市場。在市場調查中發現,太陽能控制單片機的型號較多,其中應用最多的是51系列和PIC系列單片機。太陽能熱水器控制系統可以實現水位顯示、水位控制、溫度顯示、防凍等多種功能,其中對水位的檢測、控制,實現水位顯示、自動上水、超限報警是太陽能熱水器控制系統的核心。1.3本文完成的的工作課題主要以單片機為核心配合傳感器、顯示器件、電磁閥、報警器等外圍器件,采集熱水器儲水箱中的水位信號并通過控制電動機的運轉來控制儲水器的水位。另外,本課題對時鐘電路、電源電路、鍵盤輸入電路、傳感器電路、顯示電路進行了設計,以及硬件選擇和軟件設計。從而最終使整個太陽能熱水器水位控制系統可以實現水位的檢測、控制,水位顯示、自動上水、超限報警等功能。本文主要完成了以下主要工作:1.學習了時鐘電路、鍵盤電路、顯示電路等與設計有關電路的設計方法。2.熟悉了與設計有關的單片機的結構與功能。3.掌握了用單片機來控制太陽能熱水器水位的基本方法。4.完成了通過顯示電路顯示的結果觀察太陽能熱水器水箱水位,再通過鍵盤電路控制水位的功能實現。第二章總體方案設計2.1系統的設計要求設計的系統可以實現當前水位高度的顯示,以及當水位下降到報警刻度時,系統可通過自動上水使水位保持在一定的水位高度。而且還可以人工手動控制上水,每次上水的最大水位值也可根據環境需要由人工自由設置。2.2系統設計方案與比較方案一:采用半導體邏輯器件構成的控制器,主要應用定時器構成。在此控制方案里,定時器和加減計數器共同構成水位顯示器。由于水位的變化具有未知性,在水位檢測電路里,這類控制電路過于龐大復雜,操作也不方便,成本也較高。方案二:采用可編程邏輯器件。結果簡單的PLC控制成為首選。由于控制電路簡單,檢測電路要求也不高,所以必然造成接口資源和內部資源的浪費,顯然不夠經濟。方案三:采用單片機為核心控制器的電路。單片機電路結構簡單、成本低廉,可靠性高,便于實現各個控制功能。水位由設置在水箱內的傳感器獲得的電信號檢測,然后通過單片機處理送達顯示電路顯示當前水位。本設計通過顯示電路顯示來觀察水位狀態值,再根據觀察到的值,通過鍵盤對太陽能熱水器顯示電路控制,從而獲得需要的合理水位值。從結構、經濟、可操作性等方面來看,方案三都是最佳選擇。方案三以單片機為核心控制器件,結合配合電阻型4檔水位傳感器、8255A擴展鍵盤和顯示器件、以及電磁閥、報警等外圍器件,從而完成對太陽能熱水器容器內的水位測量及控制;時間顯示;缺水時自動上水;水滿報警;手動上水等功能。設計一種太陽能熱水器智能控制系統。該系統原理框圖如下圖所示。其基本框圖如圖2-1所示。圖2-1太陽能熱水器基本框圖用戶在使用太陽能熱水器時,當水箱中水位下降到一定刻度值時,可通過人工使用按鍵方法來控制電磁閥立即上水,水位達到的最高刻度也可以由按鍵設定。當水位下降到低于刻度線時,單片機接受此信號并開始執行指令,報警電路工作,同時電磁閥打開,水位不斷升高,當達到最高水位時便給單片機發出中斷請求,此時電磁閥關閉,停止工作。在上水過程中,顯示器LCD既可以顯示水箱的水位值又可顯示水箱內水的當前溫度,不僅直觀方便,而且精確度高,實用性強。此系統解決了熱水器上水時需人工守候和過量溢水的問題,達到了省時、環保、節水的目的。加設的缺水報警系統和液晶顯示部分,使整個系統更實用,更趨向數字化、智能化。第三章水位測量電路硬件設計水位測量是太陽能熱水器控制系統的重要部分,是實現其他功能的基礎,此部分性能好壞將關系到整個系統的優良程度,所以設計一個性能良好的水位測量系統是本設計的重點。3.1水位測量電路方案比較選擇1.排阻分檔鍵盤式水位傳感器在許多資料中都介紹了一種類似鍵盤電路的分檔水位傳感器,其原理圖如圖3-1所示。圖3-1排阻式水位測試電路示意圖它的工作原理類似于鍵盤的工作原理,用5根不銹鋼針分別置于水箱內的四種不同高度的位置,當某個鋼針不接觸水面時,其輸出為高電平;當其與水面接觸時則輸出低電平。它們的輸出接至電子開關CD4069,經過CD4069反向并經74LS244驅動后分別接入89C52的P1.0~P1.3引腳。CPU對這些引腳進行判斷后,送去顯示相應的水位值。..顯示共分4檔,每檔為滿水位的25%。這種方法簡單,易實現,省去了傳統的A/D轉換器,成本低,雖然不精確但可以滿足使用要求。2.RC充放電式水位傳感器測量電路這種電路資料較少,但我們在市場上購買的太陽能的水位和水溫傳感器就是基于這種原理,其基本形狀如圖3-2所示。圖3-2太陽能水位水溫傳感器外形圖從圖3-2中我們可以清楚的地看到傳感器外形非常簡單,一共只有4個端口,其中一個是防凍接口,沒有使用,使用的只有3個端口,在可用的三個端口上分別標有公共、水位、水溫標志,由此可知測量水位、水溫都只用了一個端口。觀察傳感器可知水位傳感器有5個與水接觸點,我們從上到下依次命名它們為1—5觸點。我們分別測量了觸點不同接法時公XX水位兩端口之間的電阻,數據如表3-1所示。由上述測試結果的電阻值得出這樣的規律,那就是電阻的并聯短接,其原理如圖3-3所示。表3-1輸出電阻值表短接方式無短接1、21、2、31、2、3、41、2、3、4、5輸出電阻值〔kΩ極大2512.58.66.3圖3-3太陽能水位傳感器原理它的工作原理是,水面每接觸一個鋼針就會多并聯一個電阻,電阻隨水位變化而規律的變化。利用單片機的一個口周期性的給電容電路充放電,然后用圖3-4RC充放電式水位傳感器測量電路原理圖單片機監測電容兩端電壓的變化,因為電容電壓的上升或下降時間t=RC,所以用單片機記錄這個時間就能判別電阻的變化,進而轉化為水位的變化進行顯示及其他動作。3.傳感器選擇RC充放電式水位傳感器測量電路,明顯優于排阻分檔鍵盤式水位傳感器的地方有:〔1接線簡單,排阻分檔鍵盤式水位傳感器需要四根導線傳輸水位信號,而RC充放電式水位傳感器僅需要兩根就能完成,這對于線路較長的太陽能熱水器傳輸信號電路來說能節省相當多的導線資源。〔2給水溫測量電路設計帶來方便,RC充放電式水位傳感器的原理可以同樣運用到熱電阻溫度測量電路中。〔3占用較少的I/O口,僅需兩個I/O口就能完成水位檢測任務,極大地節約了單片機的I/O口資源。綜上比較可見選用第二種方案較為優越。水位測量電路的具體設計采取與I/O隔離并用中斷監測電容電壓的電路這樣需要將電容電壓與單片機監測端口隔離,采取如圖3-5示電路。圖3-5水位測量電路LM358的應用LM358的正向輸入端接電容電壓正端,反向輸入端與輸出端相連,構成電壓跟隨器。電壓跟隨器的顯著特點就是,輸入阻抗高,而輸出阻抗低,一般來說,輸入阻抗要達到幾兆歐姆是很容易做到的。輸出阻抗低,通常可以到幾歐姆,甚至更低,也就是說電壓跟隨器有較好的隔離作用,使輸出對輸入影像較小,正好滿足我們的要求。LM358的輸出電壓幅度為0至Vcc-1.5V,而要跟隨的電壓范圍為0—5V,所以應選用大于+6.5V的電源供電,這里選用+12V單電源供電。2.LM393的作用給比較器設置+3V的參考電壓,將電容電壓的指數曲線變成矩形波,波形圖如圖3-6示。將參考電壓接同相輸入端,比較電壓接反相輸入端,從而實現電容電壓在上升到參考電壓時比較器產生下降沿信號,作為單片機的外部中斷信號。根據LM393的特性本設計電源電路提供的電壓,選用+5v給其供電。由LM393的內部原理圖可知LM393的輸出為集電極開路,它的輸出高電平與LM393的電源無關,但須接外部電源和上拉電阻。在圖3-5所示的水位測量電路中并未有這樣的上拉電壓電路,是因為單片機內部INT0、INT1口已經具備了這樣的電路。另外LM393的同相輸入端輸入和反相輸入端輸入之間有相互嵌位作用,+5V電源和分壓電阻提供的+3v參考帶電平對反相輸入端輸入有嵌位作用,如果不接LM358電源跟隨器而與電容直接相連,顯然會影響電容電壓的變化,這就是要加電壓跟隨器進行隔離的原因。圖3-6電壓與比較器輸出信號<仿真和實測>..第四章時鐘電路和電源電路..4.1時鐘芯片選擇DS12B887并行時鐘芯片1.DS12B887性能特點:在沒有外部電源的情況下可工作10年,自帶晶體振蕩器及電池,可計算到2100年前的秒、分、小時、星期、日期、月、年七種日歷信息并帶閏年補償,用二進制碼或BCD碼代表日歷和鬧鐘信息,有12和24小時兩種制式,12小時制時有AM和PM提示,可選用夏令時模式,可以應用于MOTOROLA和INTEL兩種總線,數據/地址總線復用,內建128字節RAM–14字節時鐘控制寄存器–114字節通用RAM,可編程方波輸出,三種可編程中斷–時間性中斷可產生每秒一次直到每天一次中斷–周期性中斷122ms到500ms時鐘更新結束中斷。2.管腳功能描述圖4-1是DS12B887時鐘芯片管腳圖。管腳名稱和功能:AD0~AD7–地址/數據復用總線;NC–空腳;MOT–總線類型選擇<MOTOROLA/INTEL>;CS–片選;AS–ALE;R/W–在INTEL總線下作為/WR;DS–在INTEL總線下作為/RD;RESET–復位信號;IRQ–中斷請求輸出;SQW–方波輸出;VCC–+5電源;GND–電源地;圖4-1DS12B887時鐘芯片管腳圖DS1302串行時鐘芯片1.DS1302芯片的性能特點:實時時鐘具有能計算2100年之前的秒分時日星期月年的能力還有閏年調整的能力,318位暫存數據存儲RAM,串行I/O口方式使得管腳數量最少,寬范圍工作電壓2.0~5.5V,讀/寫時鐘或RAM數據時有兩種傳送方式單字節傳送和多字節傳送字符組方式,8腳DIP封裝或可選的8腳SOIC封裝根據表面裝配,簡單3線接口,與TTL兼容Vcc=5V。2.管腳功能描述圖4-2為DS13028腳封裝管腳圖。圖4-2DS13028腳封裝管腳圖管腳描述:X1、X232.768KHz晶振管腳;GND地;RST復位腳;I/O數據輸入/輸出引腳;SCLK串行時鐘;Vcc1,Vcc2電源供電管腳;比較選擇DS12B887的計時功能基本相同,它們的最大區別是DS1302時串行I/O方式,而DS12B887是并行I/O口方式,DS12B887編程實現要容易些,而DS1302要占用較少的I/O資源。可見使用DS1302串行時鐘芯片能夠節省單片機的硬件資源,并能充分發揮單片機的軟件優勢,所以應使用串行芯片DS1302來完成時鐘信號的提供。4.2時鐘電路的應用設計DS1302內部寄存器CH:時鐘停止位寄存器2的第7位12/24小時標志CH=0振蕩器工作允許;bit7=1,12小時模式;CH=1振蕩器停止;bit7=0,24小時模式;WP:寫保護位寄存器2的第5位:AM/PM定義WP=0寄存器數據能夠寫入;AP=1下午模式;WP=1寄存器數據不能寫入;AP=0上午模式TCS:涓流充電選擇DS:二極管選擇位TCS=1010使能涓流充電;DS=01選擇一個二極管;TCS=其它禁止涓流充電;DS=10選擇兩個二極管;DS=00或11,即使TCS=1010,充電功能也被禁止表4-1RS位功能表RS位電阻典型位00沒有沒有01R12KΩ10R24KΩ11R328KΩDS1302與單片機的連接及時間讀取方法DS1302的管腳按前面的說明進行連接,SCLK同步時鐘口接P1.5口,I/O數據輸入輸出口接P1.6口,RET復位引腳接P1.7口,VCC2接+5V電源,VCC1接+5V備用電池,X1、X2接32.768MHZ晶振。單片機與DS1302的連接方式如圖4-3所示。讀取DS1302的時鐘時間是主程序的一部分,首先要定義日期時間等全局變量,然后在主程序中調用時間讀取程序。DS1302為串行時鐘芯片,每次傳送一位數據,通過P1.5給DS1302發同步脈沖實現數據傳輸的同步。P1.6口與DS1302I/O引腳相連,將要讀取值的控制字串行寫入到DS1302中,每寫一位,發送一個同步脈沖,控制字為8位,讀出的時、分數據也是8位,寫完8位控制字,DS1302隨后就通過I/O引腳將該值送給單片機。I/O引腳上的數據在SCLK的上升沿串行輸入<寫數據到DS1302>,在SCLK的下降沿串行輸出<讀數據>。為了啟動數據傳輸,引腳RST應為高電平。圖4-3單片機與DS1302的連接圖4.3電源電路的設計對于太陽能用戶來講,最常用、最方便的電源當然是220V的工頻交流電源,但太陽能熱水器控制系統需要的是穩定的+5V和+12V電源,所以要為控制系統設計直流電源電路。由于本設計由+5V和+12V兩個不同的電壓供電,并且+5V是主電源。變壓器分別采用220/8和220/15的變壓器,穩壓電路分別采用集成穩壓器件7805和7812進行穩壓。圖4-4系統直流電源總圖..第五章鍵盤和顯示電路..鍵盤和顯示電路是太陽能熱水器水位控制系統與用戶的接口,用戶通過顯示來觀察水位、時間等狀態值,再根據觀察到的值,通過鍵盤對太陽能熱水器進行控制。本章設計了較為合理的鍵盤和顯示電路完成這些功能。5.1方案選擇太陽能熱水器系統需要用數碼管顯示時間和溫度,時間精確到分,24或12小時制,這就需要4位顯示;而溫度顯示范圍為0—99度,這又需要2位顯示。對于六位顯示,采用占用I/O較少的動態掃描方式,也需要六位位選碼數據線,八位段選碼數據線,共需14個I/O口。鍵盤采用復用方式,仍需要至少4個I/O口。鍵盤和顯示電路共需18個I/O口,89C52單片機共有4×8個I/O口,而又有8個口有特殊功能,也就是常用的共有3×8個I/O口,該系統的其他設置也還要占用大量I/O口,顯然這樣太浪費資源。8255A芯片介紹1.8255A的引腳功能定義8255A的原理結構如圖5-1所示。它采用40腳的DIP封裝,其引腳定義如表5-1所示。8255A為一可編程的通用接口芯片。它有三個數據端口A、B、C,每個端口為8位,并均可設成輸入和輸出方式,但各個端口仍有差異:端口A〔PA0~PA7:8位數據輸出鎖存/緩沖器,8位數據輸入鎖存器;端口B〔PB0~PB7:8位數據I/O鎖存/緩沖器,8位數據輸入緩沖器;端口C〔PC0~PC7:8位輸出鎖存/緩沖器,8位輸入緩沖器〔輸入時沒有鎖存。控制寄存器控制寄存器高四位低四位端口A端口B端口CB組A組VCCD7~D0A1RESETA0PC3~PC0PA7~PA0PB7~PB0PC7~PC4GND圖5-18255A輸入輸出口和編程模型表5-18255A引腳定義引腳名功能連接去向D0~D7數據總線〔雙向CPURESET復位輸入CPU片選信號譯碼電路EQ讀信號CPU寫信號CPUA0,A1端口地址CPUPA0~PA7端口A外設PB0~PB7端口B外設PC0~PC7端口C外設VCC電源〔+5V/在模式控制下這個端口又可以分成兩個4位的端口,它們可單獨用作為輸出控制和狀態輸入。端口A、B、C又可組成兩組端口〔12位:A組和B組,參見圖5-2。在每組中,端口A和端口B用作為數據端口,端口C用作為控制和狀態聯絡線。在8255A中,除了這三個端口外,還有一個控制寄存器,用于控制8255A的工作方式。因此8255A共有4個端口寄存器,分別用A0、A1指定:A1=0,A0=0,表示訪問端口A;A1=0,A0=1,表示訪問端口B;A1=1,A0=0,表示訪問端口C;A1=1,A0=1,表示訪問控制寄存器。2.8255A的工作方式圖5-2方式控制字8255A有三種基本工作方式:方式0:基本的輸入/輸出方式1:有聯絡信號的輸入/輸出;方式2:雙向傳送。A組可采用方式0~方式2,而B組只能采用方式0和方式1,這由8255A的方式控制字控制。當向A1=1、A0=1的端口寄存器〔即控制寄存器發送D7=1的控制字時,其作用為方式控制字,各個位的含義如圖5-2所示。工作方式介紹方式0——基本的輸入/輸出將端口信號線分成4組,分別由方式控制字的D4、D3、D1、D0控制其傳送方向,當某位為1時,相應的端口數據線設置成輸入方式;當某位為0時,相應的端口數據線設置成輸出方式。特別注意,當將C口的低4位設置成同一傳送方向時,則端口C可用作為獨立的端口,因此,8255A提供了3個獨立的8為端口。方式1——有聯絡信號的輸入/輸出方式2——雙向傳送本設計用方式0,所以方式1、方式2不再詳細介紹。8255A在太陽能熱水器控制電路中的作用單片機與8255A的連接如圖5-3所示,如圖所示分別將8255A的讀、寫、復位端口與單片機的讀、寫、復位端口相連。A0、A1、為8255A的地址口,D0-D9為數據口。P2.5與A0相連,P2.6與A1相連,P2.7與相連,提供8255的端口地址信號。單片機的P0口為8255A提供數據輸出輸入。圖5-3單片機與8255A連接圖5.2顯示電路工作原理8255A顯示電路的硬件結構。8255A擴展顯示及鍵盤電路如圖5-4所示。圖5-4用8255A擴展的鍵盤和顯示電路在顯示電路中用8255A的PA口輸出位選信號,通過74F07接LED顯示器的片選引腳。74F07是TTL門集成的六路輸出緩沖器/驅動器,因為本系統采用的是共陰極LED顯示器,位選應接低電平,可能有幾十毫安的電流輸出,而單片機的I/O口最大能承受幾毫安的灌電流,所以需用74F07來接受較大的輸出電流。PB口輸出的段選信號,通過74LS245芯片接LED段碼引腳,因為8255A的輸出電流一般是微安級的,而LED一般則要求5到幾十毫安的電流,不能直接驅動LED,而74LS245的高電平輸出電流在15毫安左右,可以驅動LED顯示。另外74LS245的輸出接上拉電阻,幫助驅動顯示器。LED顯示器是由發光二極管顯示子段組成的顯示器件。在單片機系統中通常使用的是七段LED顯示器,這種顯示器有共陰極共陽極兩種,在這次設計中選用共陰極LED顯示器。共陰極七段LED顯示器的管腳如圖5-5所示圖5-5共陰極LED顯示器的原理和管腳圖表5-2共陰極LED顯示器七段碼顯示字符共陰極七段碼顯示字符共陰極七段碼03FH96F106A7725BB7C34FC39466D5E56DE7967DF71707P7387FU3E8255A實現顯示方法8255A的PA、PB口作為輸出口驅動數碼管顯示;PC口用作輸入口監測鍵盤輸入,所以這里須用工作方式0——基本輸入輸出口工作方式。8255A的RESET引腳與單片機的RESET引腳直接相連,當單片機復位時,8255A同時復位。單片機的P2.7口與8255A的片選信號相連,顯示期間一直輸出低電平,選中8255A。在P2.5、P2.6都輸出高電平時,即A0=1,A1=1時,=0,單片機輸出寫信號,訪問控制寄存器,將方式控制字10001001通過單片機的P0口與8255A的D0-D7數據口送給8255的控制字寄存器。當P2.5、P2.6都輸出低電平時,A0=0,A1=0時,=0,單片機輸出寫信號,訪問端口A,將位選碼送出,選中要顯示的位,向該地址寫入位選碼即可。然后將P2.5=0,P2.6=1,即A0=0,A1=1,=0,單片機輸出寫信號,訪問端口B,將段選碼送出,保持幾毫秒的延時,使LED顯示。5.3鍵盤電路原理為使用戶使用界面盡量簡單,本文采用四個按鍵,通過按鍵復用來實現手動上水、水位設置、溫度設置、電加熱多種功能。同時本文用8255來分別實現顯示和鍵盤。鍵盤與8255的連接如圖5-4所示。獨立式鍵盤工作原理因為鍵盤較少所以用簡單的獨立式鍵盤,它的優點是編程簡單,缺點是占用I/O口多,適用于鍵盤較少的電路。鍵盤的工作原理是P2.5=0,P2.6=1,即A0=0,A1=1,=0,單片機發出讀信號,將8255A的PC口狀態,通過8255A的D0-D9口送給單片機。然后單片機根據從8255A讀取的數據做出相應的動作。這是基本原理,在具體實現時還要考慮鍵盤的延時去抖,去抖的原理是,當檢測到有鍵按下時,單片機先不動作,延時10毫秒以后,單片機再次檢測按鍵是否按下,如果還是按下,就說明此鍵確實是按下狀態,單片機執行相應操作。鍵盤功能介紹其中S1為手動上水鍵,S2為設置水位參數鍵,S3為電加熱鍵,S4為設置溫度鍵。S1、S3單獨功能鍵。而S2、S4為復用鍵。當第一次按S2鍵時,進入水位設置狀態,然后每按一次S1為設置水位加一,循環工作。當第一次按S4鍵時,進入水溫設置狀態,然后每按一次S4為設置水溫加一,循環工作。鍵盤掃描程序本程序采用掃描方式讀取鍵盤動作,實現程序如下:ucharkbscan<void>{ucharrecode; if<<KPORT&0X0F>!=0X0F>//若有鍵按下 { delay<2>;//延時抖動if<<KPORT&0XF0>!=0X0F>//若有鍵按下 { recode=KPORT;//記錄鍵值 return<recode>;//返回鍵值 } } return<0>;//返回0}根據讀取的值,鍵盤處理程序進行相應動作,鍵盤數據處理程序不再敘述。第六章傳感器電路6.1工作原理..當水位處于低水位的時候,傳感器的低水位探測線被+5V的電源導通進入穩壓電路經過處理在穩壓電路的輸出端有一個高電平,送入單片機的P1.0口,另一個穩壓電路輸出的高電平進入單片機的P1.1口單片機經過分析,在P1.2口輸出一低電平,驅動紅燈亮,P1.5出來一個信號使光電耦合器GDOUHE導通,這樣繼電器閉合,使水泵加水;當水位處于正常范圍內時,水泵加水,在P1.3引腳出來一個低電平,使綠燈亮;當水位在高水位區時,傳感器的兩根探測線均被導通,均被+5V的電源導通,送入單片機,單片機經過分析,在P1.4引腳出來一個低電平,使黃燈亮,在P1.5端出來一個高電平不能使光電耦合器導通,這樣繼電器不能閉合,水泵不能加水;當三燈閃爍表示系統出現故障。6.2單片機控制結構圖圖6-1單片機控制結構圖采用單片機AT89C2051作為我們的控制芯片,主要工作過程是當水箱的水在低水位時,水位探測傳感器送給單片機一個高電平,然后單片機驅動水泵加水和顯示系統使紅燈變亮;當水位在正常范圍內時,水泵加水,綠燈亮,;當水位在高水位時,單片機不能驅動水泵加水,黃燈亮。6.3傳感器電路組成的原理圖本系統由水位探測傳感電路、電源電路、穩壓電路、單片機系統、光報警顯示電路、繼電器控制水泵加水電路、以及水位模型組成。傳感器電路組成的電氣原理圖如圖6-2所示:圖6-2傳感器電路組成的電氣原理圖工作原理:當水位處于低水位的時候,傳感器的低水位探測線被+5V的電源導通進入穩壓電路經過處理在穩壓電路的輸出端有一個高電平,送入單片機的P1.0口,另一個穩壓電路輸出的高電平進入單片機的P1.1口單片機經過分析,在P1.2口輸出一低電平,驅動紅燈亮,P1.5出來一個信號使光電耦合器GDOUHE導通,這樣繼電器閉合,使水泵加水;當水位處于正常范圍內時,水泵加水,在P1.3引腳出來一個低電平,使綠燈亮;當水位在高水位區時,傳感器的兩根探測線均被導通,均被+5V的電源導通,送入單片機,單片機經過分析,在P1.4引腳出來一個低電平,使黃燈亮,在P1.5端出來一個高電平不能使光電耦合器導通,這樣繼電器不能閉合,水泵不能加水;當三燈閃爍表示系統出現故障。第七章其他硬件電路設計上水、電加熱、報警電路屬于大功率驅動電路,需用開關控制外部電源的關斷。水位顯示是簡單的三極管驅動電路。電源電路微單片機的主電路及部分驅動開關提供電源。本章對這些綜合介紹。7.1上水控制電路由單片機P1.1口的輸出來控制上水電磁閥。單片機P1.1口通過一個2.2K的電阻接9013三極管的基極,9013的集電極通過一個單刀繼電器接正12V電源,9013射極接地。當P1.1輸出低電平時,三極管截止,幾乎沒有電流通過三極管的基極到射極、集電極到射極,即,所以此時流過繼電器的電流幾乎為0,繼電器打不開。當P1.1口輸出高電平時,三極管9013導通,有較大的飽和電流流過繼電器,使其吸合、關閉,從而開啟電磁閥。7.2電加熱控制電路電加熱的繼電器采用雙開關繼電器,一個開關控制電加熱器的火線,另一個控制零線。當P1.0輸出低電平時,三極管不導通,繼電器無電流通過,開關不開啟,電加熱器不工作。當P1.0輸出高電平時,三極管導通,繼電器有較大電流通過,開關閉合,電加熱器開始工作。。7.3報警控制電路報警輸出三極管的集電極接蜂鳴器,蜂鳴器的另一端接正5伏電源。有P1.2口控制報警電路,當水位超標時P1.2口輸出高電平報警,不報警時將P1.2口置低電平。7.4水位顯示電路水位顯示電路由P2.0-P2.4口來控制,其中P2.4口輸出高低電平控制水位的顯示與否,P2.0-P2.3口輸出高低電平控制二極管的亮滅來顯示水位。圖7-1主要驅動電路電路圖..結論本課題設計了一個以單片機為核心配合其他外圍電路的太陽能熱水器智能控制系統,完成了對太陽能熱水器容器內的水位測量、時間顯示;缺水時自動上水,水溢報警;手動上水、參數設定等功能。完成了太陽能熱水器水位的測量和顯示電路與電源電路的設計通過對水位、水溫的測量監控,實現了自動上水、水溢報警、智能加熱等功能。完成了用8255A擴展鍵盤和顯示電路的設計,實現了溫度時間共六位動態顯示,和4個獨立鍵盤輸入。完成了時鐘電路設計,為系統提供了準確的時間顯示,顯示時、分。并為定時加熱提供了時間參考,從而完成自動電加熱。用鍵盤實現了手動上水、電加熱、參數設置等功能。..參考文獻..[1]范延濱,王正彥.太陽能熱水器控制器中測量模型.電子測量技術,2004,3.[2]唐德禮,鮑連升.太陽能熱水器水溫水位控制器.XX職業技術學院學報,2002,15〔4.[3]姜志海,黃玉青等.單片機原理及應用.電子工業出版社,2005.113-120.[4]劉潤華,劉立山.模擬電子技術.石油大學出版社,2003.250-254.[5]孫XX.新型電熱水器控制器的研制:[碩士學位論文].上海:上海交通大學,20041001.[6]歐陽喬.時鐘芯片DS1302的原理及其Proteus仿真設計.計算機與信息技術,2006,6.[7]周荷琴,吳秀清.微型計算機原理.中國科學技術大學出版社,2004.325-354.[8]LatticeDateBook.LATTICESEMICONDATEBOOKCORPORATION.1994.[9]馬敏,孫寅聰,張煒宇.太陽能熱水器控制器的設計.XX科學.2003<02>[10]王俊杰.基于89C51單片機的太陽能熱水器智能控制器的設計.XX輕工業學院學報〔自然科學版.2005<08>[11]張榜英.基于AT89S52單片機的太陽能熱水器控制系統設計.XX大學學報〔自然科學版.2110〔2[12]曹明善.基于單片機的高塔水位控制系統設計.管理工程師.2010.5..致謝在這兩個多月的畢業設計里,我不僅僅把大學里學的東西重新復習了一遍,更重要的是把自己從老師從課本里所了解的東西應用到實踐應用中,提高了自己的能力。在做畢業設計的過程中,我查閱了圖書館的資料,也通過上網提高了自己查閱資料的能力。畢業設計是對大學所學知識的綜合運用,也是理論走向實踐的第一步,這對以后繼續深造或者走向工作崗位都將產生深遠的意義,更重要的是為以后的理論和實踐的綜合發展奠定了一定的基礎。這次畢業設計中,最開始我不知所措,然而隨著我不斷的學習我也慢慢的適應了論文的設計。設計中我得到了張老師的指導,他嚴謹的作風及對我的嚴格要求給我留下很深的印象,使我受益匪淺,論文寫作中,每周都得到張老師的指點,在我學習期間他不僅傳授了我做學問的秘訣,還傳授了做人的準則。這些都將使我終生受益。我再次為張老師的付出表示感謝。鑒于我現在所具備知識水平有限,難免存在一些錯誤和漏洞,懇請老師指正不足。在此,再次向老師、學校表示忠心的感謝。..附錄附錄:主程序流程圖和程序太陽能熱水器智能控制系統程序://定義頭文件和各個輸入管腳以及變量聲明#include<reg52.h>#include<absacc.h>#include<stdio.h>#include<intrins.h>#defineuintunsignedint//定義變量類型名#defineucharunsignedchar/*定義8255a字符型字位口*/#defineDIGPORTXBYTE[0x1FFF]//PA口地址,位選碼地址#defineWORDPORTXBYTE[0X3FFF]//PB口地址,斷選碼地址#defineCCOMXBYTE[0X7FFFF]//控制字寄存器地址#defineKPORTXBYTE[0X5FFF]//PC口,鍵盤掃描地址//DS1302_RST=1//定義DS1302時鐘芯片引腳操作#defineSet_DS1302_RSTDS1302_RST=1//DS1302_RST=0#defineClr_DS1302_RSTDS1302_RST=0//DS1302_SDA=1#defineSet_DS1302_SDADS1302_SDA=1//DS1302_SDA=0#defineClr_DS1302_SDADS1302_SDA=0//DS1302_SCLK=1#defineSet_DS1302_SCLKDS1302_SCLK=1//DS1302_SCLK=0#defineClr_DS1302_SCLKDS1302_SCLK=0//定義讀時間控制字#defineDS1302_SEC_Reg0x80#defineDS1302_MIN_Reg0x82#defineDS1302_HR_Reg0x84#defineDS1302_DATE_Reg0x86#defineDS1302_MONTH_Reg0x88#defineDS1302_DAY_Reg0x8a#defineDS1302_YEAR_Reg0x8c#defineDS1302_CONTROL_Reg0x8e#defineDS1302_CHARGER_Reg0x90#defineDS1302_CLKBURST_Reg0xbe//全局變量//為了方便,我把個位和十位分開了ucharyear1=0x88;ucharyear0=0x88;ucharmonth=0x88;uchardate=0x88;ucharday=0x88;ucharhour=0x88;ucharminute=0x88;ucharsecond=0x88;/*定義P1口各管腳*/sbitL0=P2^0;sbitL1=P2^1;sbitL2=P2^2;sbitL3=P2^3;sbitK0=P2^4;sbitP1_0=P1^0;sbitP1_1=P1^1;sbitP1_2=P1^2;sbitHig=P1^4;sbitDS1302_SDA=P1^5;//定義DS1302時鐘引腳與單片機引腳的連接sbitDS1302_SCLK=P1^6;sbitDS1302_RST=P1^7;/*聲明調用函數*/voidinital<void>;voidtimer1_svr<void>;voiddisplay<void>;voiddelay<ucharj>;voidDS1302_Write<ucharreg,uchardat>;ucharDS1302_Read<ucharreg>;voidDS1302_Init<void>;voidReadTime<void>;voidWtTmCr<>;voidLvRead<>;voidTmRead<>;voidkey<void>;ucharkbscan<void>;voidDS1302<void>;voidint0_int<void>;voidint1_int<void>;/*定義調用存儲單元*//*顯示緩沖區〔依次為高位低位*/ucharBUFFER[3]={0,0,0};ucharWTLV;//水位值ucharTMP;//水溫值ucharWTLVSET;//水位設定值ucharTMPSET;//水溫設定值ucharbuf[4]={0,0,0,0};/*數碼管顯示編碼"0"-"9","A","-"*/ucharcodeTABLE[]={0x7B,0x30,0xEA,0xF8,0xB1,0xD9,0xDB,0x70,0xFB,0xF9,0xF3,0x80};main<>{inital<>;//初始化中斷、定時器、I/O口 kbscan<>;//鍵盤掃描 key<>;//鍵盤處理 TmRead<>;//讀取溫度 LvRead<>;//讀取水位 DS1302<>;//讀取時間 display<>;//顯示}voidinital<>{P1_0=P1_1=P1_2=K0=0;//初始化外部驅動口DS1302_Init<>;EA=1;//開外部中斷 IT0=1;//外部中斷下降沿觸發EX0=1;//允許外部中斷0Hig=1;P1.3輸出高電平TMOD=0x11;定時器工作于方式1TH1=0X8A;//定時器1賦初值TL1=0XD0; ET1=1;定時器1開定時中斷 TR1=1;//開啟定時器1 CCOM=0X80;//初始化8255A,送控制字,工作方式0}ucharkbscan<void>{ucharrecode; if<<KPORT&0X0F>!=0X0F>//若有鍵按下 { delay<2>;//延時抖動if<<KPORT&0X0F>!=0X0F> { recode=KPORT; return<recode>; } } else return<0>;}voidkey<void>{ucharkey;key=kbscan<>; delay<2>; if<key==0x01> { P1_1=1;//上水 } if<key==0x02>//設置水位 { if<WTLVSET==4> WTLVSET=0; else WTLVSET+=WTLVSET; BUFFER[0]=WTLVSET;//顯示設置水位display<>; } if<key==0x04>//電加熱 { P1_0=1; } if<key==0x08>//設置溫度 { if<TMPSET>=80> TMPSET=30; else TMPSET=TMPSET+10;//增加十度 BUFFER[0]=TMPSET;顯示設置水溫display<>; }}voidtimer1_svr<>interrupt1{TH1=0X8A;//重新給定時器1賦值TL1=0XD0;Hig=!Hig;//充放電變換 if<Hig>//充電開始時啟動定時器0 { TL0=TH0=0X00;//定時器0賦初值0TR0=1;//啟動定時器0 }}voidint0_int<void>interrupt0//外部中斷0,測水位{EX0=0;EX1=1;TR0=0;buf[0]=TL0;buf[1]=TH0;}voidint1_int<void>interrupt2//外部中斷1,測水溫{EX1=0;EX0=1;TR0=0; buf[2]=TL0; buf[3]=TH0;}voidTmRead<>//水溫值處理{uintval;val=buf[3]*256+buf[2];if<val<7549>TMP=97-int<val*8/1000>;elseif<val<20000>TMP=50-int<val/1000>;elseTMP=30-int<val*5/10000>;}voidLvRead<>//水位值處理{if<buf[1]>60>{ WTLV=1;// L3=0;L2=1;L1=1;L0=1; } elseif<buf[1]>45> { WTLV=2;L3=1;L2=0;L1=1;L0=1; } elseif<buf[1]>36> { WTLV=3;L3=1;L2=1;L1=0;L0=1; } else { WTLV=4;L3=1;L2=1;L1=1;L0=0; }}voidWtTmCr<>//水位、水溫控制{if<WTLV==4> P1_1=0; if<WTLV==1> P1_1=1; if<TMP>=TMPSET> P1_0=0; if<TMP<TMPSET&&hour==0x19> P1_0=1;}voiddisplay<void>{uchari;//顯示緩沖區首址uchardelay;//顯示延時uchardisp;//顯示內容uchardigit;//定義數碼管顯示位digit=0x0200;for<i=2;i>=0;i-->{if<BUFFER[i]>100>disp=BUFFER[i]%10+10;//顯示高位elsedisp=BUFFER[i]%10;DIGPORT=digit;WORDPORT=TABLE[disp];for<delay=0;delay<=200;delay++>;digit=digit>>1;//顯示低位disp=BUFFER[i]/10;DIGPORT=digit;WORDPORT=TABLE[disp];for<delay=0;delay<=200;delay++>;digit=digit>>1;}}voiddelay<ucharj>//延時程序{uchara,b; for<a=0;a<j;a++> for<b=0;b<200;b++> ;}voidDS1302<>//時間程序{ReadTime<>;BUFFER[1]=second;BUFFER[2]=hour;}voidDS1302_Write<ucharreg,uchardat>//寫入時間{uchari;Clr_DS1302_RST; _nop_<>;_nop_<>;Clr_DS1302_SCLK;_nop_<>;_nop_<>;Set_DS1302_RST;_nop_<>;_nop_<>;for<i=8;i>0;i-->{if<reg&0x01>Set_DS1302_SDA;elseClr_DS1302_SDA;_nop_<>;_nop_<>;Set_DS1302_SCLK;_nop_<>;_nop_<>;Clr_DS1302_SCLK;_nop_<>;_nop_<>;reg>>=1;}for<i=8;i>0;i-->{if<dat&0x01>Set_DS1302_SD
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 新解讀《CB-T 756 - 1999柄式開關》新解讀
- 交通標線施工方案
- Brand KPIs for neobanking Angel One in India-英文培訓課件2025.4
- 江蘇省南京市江寧區2023-2024學年四年級下學期數學期末試卷(含答案)
- Brand KPIs for health insurance:The Exeter in the United Kingdom-英文培訓課件2025.4
- 介紹班級區域活動方案
- 從化別墅活動方案
- 倉山中學活動方案
- 倉庫直銷活動方案
- 代工單位活動方案
- 解剖期末試題題庫及答案
- 保姆帶小孩合同協議書
- 工程監理資料管理制度
- 全國導游資格證考試《全導+地導》真題及答案(2025年新版)
- 2025-2030中國智能功率模塊(IPM)行業市場現狀供需分析及投資評估規劃分析研究報告
- 2025年邊封制袋機項目市場調查研究報告
- 江蘇省蘇州市姑蘇區2025屆七下數學期末復習檢測模擬試題含解析
- 2025內蒙古土地資源收儲投資(集團)有限公司常態化招聘50名急需緊缺專業人員(第十二批)筆試參考題庫附帶答案詳解
- 廣西壯族自治區貴港市“貴百河”聯考2024-2025學年高一下學期5月月考化學試卷(含答案)
- 2025高考語文押題作文10篇
- 智慧樹知到《職業生涯規劃-體驗式學習》(華僑大學)見面課、章節測試、期末考試答案
評論
0/150
提交評論