畢業論文——太陽能熱水器_第1頁
畢業論文——太陽能熱水器_第2頁
畢業論文——太陽能熱水器_第3頁
畢業論文——太陽能熱水器_第4頁
畢業論文——太陽能熱水器_第5頁
已閱讀5頁,還剩40頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、1 緒論在我設計太陽能熱水器的控制系統之前,首先了解一下太陽能熱水器的組成與工作原理,了解一下太陽能熱水器的基本構架和工作過程,以及太陽能熱水器發展概況和深遠利用價值。1.1 太陽能熱水器的組成與工作原理圖1.1 熱水器裝置簡圖1-集熱器 2-下降水管3-循環水管4-補給水箱5-上升水管6-自來水管7-熱水出水管熱水器主要由集熱器、循環管道和水箱等組成,圖中為典型的熱水器裝置圖。圖中集熱器1按最佳傾角放置,下降水管2的一端與循環水箱3的下部相連,另一端與集熱器1的下集管接通。上升水管5與循環水箱3上部相連,另一端與集熱器1的上集管相接。補給水箱4供給循環水箱3所需的冷水。集熱器吸收太陽輻射后,

2、集熱器內溫度上升,水溫也隨之升高。水溫升高后,熱水的比重減輕,便經上升水管進入循環水箱上部。而循環水箱下部的冷水比重較大,就由水箱下流到集熱器下方,在集熱器內受熱后又上升。這樣不斷對流循環,水溫逐漸提高,直到集熱器吸收的熱量與散失的熱量相平衡時,水溫不再升高。這種熱水利用循環加熱的原理,因此又稱循環熱水器。集熱器是一種利用溫室效應,將太陽能輻射轉換為熱能的裝置,該裝置與一般熱水交換器不一樣,熱交換器通常只是液體到液體,或是液體到氣體的熱交換過程,而平板行集熱器時直接將太陽輻射傳給液體或氣體,是一個復雜的傳熱過程。平板型集熱器結構形式很多,世界上已實用的集熱器就有直管式、瓦楞式、扁管式、鋁翼式等

3、二十多種。1.2 太陽能熱水器的發展概況及市場競爭分析我國自78年引進全玻璃真空集熱管的樣管以來,經過20多年的努力,攻克了熱壓封等許多技術難關,已經建立了擁有自主知識產權的現代化全玻璃真空集熱管產業,用于生產集熱管的磁控濺射鍍膜機已有745臺,產品質量達到世界先進水平,產量雄居世界首位。 1978年中國誕生第一臺太陽能熱水器,到1986年臥式磁控濺射鍍膜機的設計制造,是在政策扶持下的研究開發階段。1987年,我國制造了第一支全玻璃真空集熱管。在之后的幾年里,全玻璃和熱管式真空管集熱器實現了產業化,產業規模達到中試水平,為下一階段產業的規模化奠定了良好的基礎,成為產業的孕育發展階段。1993年

4、太陽能產業進入初級發展階段:由于成果轉化需要很長一段時間的磨合,特別是受技術人員缺乏的影響,此階段的產品質量有待于進一步提高,整體來講,發展速度較為緩慢。這時候以山東力諾集團為主的真空管生產企業的產品占了真空管生產絕大部分市場。1997-2001年太陽能產業得到高速發展,逐漸形成北京、魯東、泰安、揚州、海寧等5個產業基地,并以此向周圍不斷輻射,產能得以迅速提升。目前,我國是世界上太陽能熱水器生產量和銷售量最大的國家。太陽能熱水器是太陽能利用中最常見的一種裝置,經濟效益明顯,正在迅速的推廣應用,太陽能熱水器能夠將太陽輻射能轉換熱能,供生產和生活使用。當今社會發展日新月異,人們衣食住行也在不斷的提

5、高?,F有電熱型熱水器費用昂貴及燃氣型熱水器的不安全性,且排放二氧化碳污染大氣,北方用煤氣取暖造成城市空氣環境污染,這些都是太陽能熱水器良好的外部生存環境。太陽能熱水器 克服了上述缺點,他是綠色環保產品。它使用簡單、方便。太陽能熱水器順應時代發展的要求,滿足人們對環保綠色產品的需求。1.3 太陽能熱水器的應用及意義資源是社會經濟發展的物質基礎,經濟愈發展,對資源的依賴性愈強。許多資源(如煤、石油、天然氣等)是不可再生的,而且在利用過程中給人類生存環境帶來極大污染,人類繁衍生息的物質和環境基礎受到嚴峻挑戰。加強清潔、可再生資源的開發利用,已引起全世界的普遍重視。太陽能作為一種取之不盡、用之不竭的可

6、再生資源,有節能、環保、安全和永續利用等優點,理應成為開發利用的首選。其中太陽能熱水器作為家庭生活用品,其開發利用在我國已走過了二十多年的歷程,生產技術成熟,具有明顯優點:(一)從節能環保的角度講,使用太陽能熱水器不會對環境造成污染,同時為國家節約了大量能源,社會效益明顯,是國家重點推廣項目,使用前景廣闊。(二)太陽能熱水器的使用壽命較長,使用太陽能熱水器經濟實惠。若使用合理,其壽命可達15年甚至更長。據測算,使用平方米太陽能熱水器,相當于每年節約310度電。太陽能熱水器的費用只有燃氣熱水器的七分之一,電熱水器的六分之一。購置太陽能熱水器一次性投資3000元左右,使用5至6年就可實現與其熱水器

7、的支出對比平衡。按照裝置壽命15年計算,其經濟效益是十分明顯的。(三)太陽能熱水器集熱效果好,集熱時間更長。只要陽光能照射到的地方,就可以使用太陽能熱水器,即使在高寒地區一年四季也可以正常使用。在我國浙江、江蘇、山東等地,太陽能熱水器的研發和生產已形成規模,應用太陽能熱水器的場所也由家居使用擴展到醫院、學校、賓館、飯店、游泳池、洗浴場所等。2 太陽能熱水器控制系統的硬件設計 2.1 主控芯片模塊 主控芯片模塊電路單片機系統由AT89C52和一定功能的外圍電路組成,包括為單片機提供復位電壓的復位電路,提供系統頻率的晶振。這部分電路主要負責程序的存儲和運行。對外接電容的值雖然沒有嚴格的要求,但電容

8、的大小會影響振蕩器頻率的高低、諧振器的穩定性、起振的快速性和溫度的穩定性。晶體可在1.2MHz12MHz之間任選,電容C1和C2的典型值在20pF100pF之間選擇,但在60pF70pF時振蕩器具有較高的頻率穩定性。典型值通常選擇為30pF左右,但本電路采用30pF。AT89C52的復位是由外部的復位電路來實現的。復位電路通常采用上電自動復位和按鈕復位兩種方式。本設計中所用到的是上電按鈕復位,如圖2.1所示。圖2.1 單片機系統 主控芯片簡介AT89S52 是一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統可編程Flash 存儲器。使用ATMEL公司高密度非易失性存儲器技術制造,與工

9、業80C51產品指令和引腳完全兼容。片上Flash允許程序存儲器在系統可編程,亦適于常規編程器。在單芯片上,擁有靈巧的8位CPU和在系統可編程Flash,使得AT89S52為眾多嵌入式控制應用系統提供高靈活、有效的解決方案。AT89S52具有以下標準功能:8k字節Flash,256字節RAM,32位I/O口線,看門狗定時器,2個數據指針,三個16位定時器/計數器,一個6向量2級中斷結構,全雙工串行口,片內晶振及時鐘電路。另外,AT89S52可降至0Hz靜態邏輯操作,支持2種軟件可選擇節電模式。空閑模式下,CPU 停止工作,允許RAM、定時器/計數器、串口、中斷繼續工作。掉電保護方式下,RAM內

10、容被保存,振蕩器被凍結,單片機一切工作停止,直到下一個中斷或硬件復位為止1。8位微控制器8K字節在系統可編程Flash AT89S52。圖2.2為AT89S52的引腳圖圖2.2 AT89S52的引腳圖AT89S52引腳功能說明如下:VCC:電源電壓GND:地2P0 口:P0口是一個8位漏極開路的雙向I/O口,也即地址/數據總線復用口。作為輸出口,每位能驅動8個TTL邏輯電平。對P0端口寫“1”時,引腳用作高阻抗輸入。當訪問外部程序和數據存儲器時,P0口也被作為低8位地址/數據復用。在這種模式下,P0內部上拉電阻被激活。在flash編程時,P0口也用來接收指令字節;在程序校驗時,輸出指令字節。程

11、序校驗時,需要外部上拉電阻。P1 口:P1口是一個具有內部上拉電阻的8位雙向I/O口,P1輸出緩沖器能驅動(吸收或輸出電流)4個TTL邏輯門電平。對P1 端口寫“1”時,內部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流(TTL)。此外,P1.0和P1.2分別作定時器/計數器2的外部計數輸入(P1.0/T2)和時器/計數器2 的觸發輸入(P1.1/T2EX),具體如表2.1所示。在flash編程和校驗時,P1口接收低8位地址字節。 表2.1 P1口第二功能端口引腳第二功能P1.0 T2(定時器/計數器T2的外部計數輸入),時鐘輸出P1

12、.1 T2EX(定時器/計數器T2的捕捉/重載觸發信號和方向控制)P1.5 MOSI(在系統編程用)P1.6 MISO(在系統編程用)P1.7 SCK(在系統編程用)P2 口:P2 口是一個具有內部上拉電阻的8位雙向I/O口,P2輸出緩沖器能驅動4個TTL邏輯電平。對P2端口寫“1”時,內部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流(IIL)。在訪問外部程序存儲器或用16位地址讀取外部數據存儲器(例如執行MOVX DPTR)時,P2口送出高八位地址。在這種應用中,P2 口使用很強的內部上拉發送1。在使用8位地址(如MOVX RI)

13、訪問外部數據存儲器時,P2口輸出P2鎖存器的內容。 在flash編程和校驗時,P2口也接收高8位地址字節和一些控制信號。 P3 口:P3 口是一個具有內部上拉電阻的8位雙向I/O口,P2輸出緩沖器能驅動4個TTL邏輯電平。對P3端口寫“1”時,內部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流(TTL)。P3口除了作為一般的I/O口線外,更重要的用途是它的第二功能,P3口的第二功能如表2.2。表2.2 P3口的第二功能端口引腳第二功能端口引腳第二功能P3.0 RXD(串行輸入口)P3.4TO(定時/計數器0)P3.1TXD(串行輸出口

14、)P3.5T1(定時/計數器1)P3.2 INTO(外中斷0)P3.6WR(外部數據存儲器寫選通)P3.3 INT1(外中斷1)P3.7RD(外部數據存儲器讀選通)此外,P3口還接收一些用于FLASH閃存編程和程序校驗的控制信號。RST復位輸入。當振蕩器工作時,RST引腳出現兩個機器周期以上高電平將是單片機復位。WDT溢出將使該引腳輸出高電平,設置SFR AUXR的DISRTO位(地址8EH)可打開或關閉該功能。DISRTO位缺省為RESET輸出高電平打開狀態。ALE/PROG當訪問外部程序存儲器或數據存儲器時,ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節。一般情況下,ALE仍以時鐘

15、振蕩頻率的1/6輸出固定的脈沖信號,因此它可對外輸出時鐘或用于定時目的。要注意的是:每當訪問外部數據存儲器時將跳過一個ALE脈沖。如有必要,可通過對特殊功能寄存器(SFR)區中的8EH單元的D0位置位,可禁止ALE操作。該位置位后,只有一條MOVX和MOVC指令才能將ALE激活。此外,該引腳會被微弱拉高,單片機執行外部程序時,應設置ALE禁止位無效3。PSEN程序儲存允許(PSEN)輸出是外部程序存儲器的讀選通信號,當AT89C52由外部程序存儲器取指令(或數據)時,每個機器周期兩次PSEN有效,即輸出兩個脈沖,在此期間,當訪問外部數據存儲器,將有兩次有效的PSEN信號。EA/VPP外部訪問允

16、許,欲使CPU僅訪問外部程序存儲器(地址為0000H-FFFFH),EA端必須保持低電平(接地)。需注意的是:如果加密位LB1被編程,復位時內部會鎖存EA端狀態。如EA端為高電平(接Vcc端),CPU則執行內部程序存儲器的指令。FLASH存儲器編程時,該引腳加上+12V的編程允許電源Vpp,當然這必須是該器件是使用12V編程電壓Vpp。XTAL1:振蕩器反相放大器及內部時鐘發生器的輸入端。XTAL2:振蕩器反相放大器的輸出端。2.2 實時時鐘模塊 實時時鐘模塊電路從古代的滴漏更鼓到近代的機械鐘,從電子表到目前的數字時鐘,為了準確的測量和記錄時間,人們一直在努力改進計時工具。鐘表的數字化,大力推

17、動了計時的精確性和可靠性。在單片機構成的裝置中,實時時鐘是必不可少的部件。目前常用的實時時鐘,很多采用單片機的中斷服務來實現,這種方式一方面需要采用計數器,占用硬件資源,另一方面需要設置中斷、查詢等,同樣耗費單片機的資源,而且某些測控系統可能不允許;有的則使用并行接口的時鐘芯片,如MC146818、DS12887等,它們雖然能滿足單片機系統對實時時鐘的要求,但是這些芯片與單片機接口復雜,占用地址、數據總線多,芯片體積大,占用空間多,給其它設計帶來諸多不便。本設計選取串行接口時鐘芯片DS1302與單片機同步通信構成數字時鐘電路,如圖2.3。其簡單的三線接口能為單片機節省大量資源,DS1302的后

18、背電源及對后背電源進行涓細電流充電的能力保證電路斷電后仍能保存時間和數據信息等。這些優點解決了目前常用的實時時鐘所無法解決的問題。該時鐘電路強大的功能和優越的性能,在很多領域的應用中,尤其是某些自動化控制、長時間無人看守的測控系統等對時鐘精確性和可靠性有較高要求的場合,具有很高的使用價值。圖2.3 DS1302與單片機接口電路 實時時鐘簡介DS13024是美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實時時鐘芯片,它可以對年、月、日、周日、時、分、秒進行計時,且具有閏年補償功能,工作電壓寬達2.55.5V。時鐘可工作在24小時格式或12小時(AM/PM)格式。DS1302與單片機的接

19、口使用同步串行通信,僅用3條線與之相連接??刹捎靡淮蝹魉鸵粋€字節或突發方式一次傳送多個字節的時鐘信號或RAM數據。DS1302內部有一個31×8的用于臨時性存放數據的RAM寄存器。DS1302是DS1202的升級產品,與DS1202兼容,但增加了主電源后背電源雙電源引腳,同時提供了對后背電源進行細電流充電的能力。DS1302的引腳排列,其中Vcc1為后備電源,VCC2為主電源。在主電源關閉的情況下,也能保持時鐘的連續運行。DS1302由Vcc1或Vcc2兩者中的較大者供電。當Vcc2大于Vcc10.2V時,Vcc2給DS1302供電。當Vcc2小于Vcc1時,DS1302由Vcc1供

20、電。X1和X2是振蕩源,外接32.768kHz晶振。RST是復位/片選線,通過把RST輸入驅動置高電平來啟動所有的數據傳送。RST輸入有兩種功能:首先,RST接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,RST提供終止單字節或多字節數據的傳送手段。當RST為高電平時,所有的數據傳送被初始化,允許對DS1302進行操作。如果在傳送過程中RST置為低電平,則會終止此次數據傳送,I/O引腳變為高阻態。上電運行時,在Vcc>2.0V之前,RST必須保持低電平。只有在SCLK為低電平時,才能將RST置為高電平。I/O為串行數據輸入輸出端(雙向),后面有詳細說明。SCLK為時鐘輸入端。控制字

21、節的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數據寫入到DS1302中。位6如果為0,則表示存取日歷時鐘數據,為1表示存取RAM數據;位5至位1指示操作單元的地址;最低有效位(位0)如為0表示要進行寫操作,為1表示進行讀操作,控制字節總是從最低位開始輸出。DS1302的復位引腳:通過把RST輸入驅動置高電平來啟動所有的數據傳送.RST輸入有兩種功能:首先,RST接通控制邏輯,允許地址命令序列送入移位寄存器;其次,RST提供了終止單字節或多字節數據的傳送手段。當RST為高電平時,所有的數據傳送被初始化,允許對DS1302進行操作。如果在傳送過程中置RST為低電平,則會終止此次數據傳送,

22、并且I/O引腳變為高阻態。上電運行時,在Vcc2.5V之前,RST必須保持低電平。只有在SCLK為低電平時,才能將RST置為高電平。在控制指令字輸入后的下一個SCLK時鐘的上升沿時數據被寫入DS1302,數據輸入從低位即位0開始。同樣,在緊跟8位的控制指令字后的下一個SCLK脈沖的下降沿讀出DS1302的數據,讀出數據時從低位0位至高位7。 DS1302共有12個寄存器5,其中有7個寄存器與日歷、時鐘相關,存放的數據位為BCD碼形式。其日歷、時間寄存器及其控制字見表2.3。表2.3 DS1302的日歷、時鐘寄存器及其控制字寄存器名命令字取值范圍各位內容寫操作讀操作76543210秒寄存器 80

23、H81H00-59CH10SECSEC分寄存器82H83H00-59010MINMIN時寄存器84H85H01-12或00-2312/24010HRHR日寄存器86H87H01-28,29,30,310010DATEDATE月寄存器88H89H01-1200010MMONTH周寄存器8AH8BH01-0700000DAY年寄存器8CH8DH00-9910YEARYEAR此外,DS1302還有年份寄存器、控制寄存器、充電寄存器、時鐘突發寄存器及與RAM相關的寄存器等。時鐘突發寄存器可一次性順序讀寫除充電寄存器外的所有寄存器的內容。DS1302與RAM相關的寄存器分為兩類,一類是單個RAM單元,共

24、31個,每個單元組態為一個8位的字節,其命令控制字為C0H-FDH,其中奇數為讀操作,偶數為寫操作;再一類為突發方式下的RAM寄存器,此方式下可一次性讀寫所有的RAM的31個字節,命令控制字為FEH(寫)、FFH(讀)。2.3 溫度傳感器模塊 溫度傳感器模塊電路基于DS18B20多點溫度測量系統以AT89C51為中心器件,以KEIL為系統開發平臺,用C語言進行程序設計,以PROTEUS作為仿真軟件設計而成的。DS18B20是智能溫度傳感器,它的輸入/輸出采用數字量,以單總線技術,接收主機發送的命令,根據DS18B20內部的協議進行相應的處理,將轉換的溫度以串口發送給主機。主機按照通信協議用一個

25、IO口模擬DS18B20的時序,發送命令(初始化命令、ROM命令、功能命令)給DS18B20,并讀取溫度值,在內部進行相應的數值處理,用圖形液晶模塊顯示各點的溫度。在系統啟動之時,可以通過4×4鍵盤設置各點溫度的上限值,當某點溫度超過設置值時,報警器開始報警,從而實現了對各點溫度的實時監控。每個DS18B20有自己的序列號,因此本系統可以在一根總線上掛接了4個DS18B20,通過CRC校驗,對各個DS18B20的ROM進行尋址,地址符合的DS18B20才作出響應,接收主機的命令,向主機發送轉換的溫度。采用這種DS18B20尋址技術,使系統硬件電路更加簡單,圖2.4所示。圖2.4 18

26、B20與單片機的連接電路2.3.2 溫度傳感器簡介DS18B20數字溫度計是DALLAS公司生產的1Wire,即單總線器件,具有線路簡單,體積小的特點。因此用它來組成一個測溫系統,具有線路簡單,在一根通信線,可以掛很多這樣的數字溫度計,十分方便。DS18B20產品的特點6:只要求一個端口即可實現通信。在DS18B20中的每個器件上都有獨一無二的序列號。實際應用中不需要外部任何元器件即可實現測溫。測量溫度范圍在55.C到125.C之間。數字溫度計的分辨率用戶可以從9位到12位選擇。內部有溫度上、下限告警設置。其引腳功能描述見表2.4。表2.4 DS18B20詳細引腳功能描述序號名稱引腳功能描述1

27、GND地信號2DQ數字輸入輸出引腳,開漏單總線接口引腳,當使用寄生電源時,可向電源提供電源3VDD可選擇的VDD引腳,當工作于寄生電源時,該引腳必須接地64位ROM存儲器件獨一無二的序列號。暫存器包含兩字節(0和1字節)的溫度寄存器,用于存儲溫度傳感器的數字輸出。暫存器還提供一字節的上線警報觸發(TH)和下線警報觸發(TL)寄存器(2和3字節),和一字節的配置寄存器(4字節),使用者可以通過配置寄存器來設置溫度轉換的精度。暫存器的5、6和7字節器件內部保留使用。第八字節含有循環冗余碼(CRC )。DS18B20加電后,處在空閑狀態。要啟動溫度測量和模擬到數字的轉換,處理器須向其發出Conver

28、t T 44h 命令;轉換完后,DS18B20回到空閑狀態。溫度數據是以帶符號位的16-bit補碼存儲在溫度寄存器中的7。符號位說明溫度是正值還是負值,正值時S=0,負值時S=1。訪問DS18B20必須嚴格遵守這一命令序列,如果丟失任何一步或序列混亂,DS18B20都不會響應主機(除了Search ROM 和Alarm Search這兩個命令,在這兩個命令后,主機都必須返回到第一步)。a初始化:DS18B20所有的數據交換都由一個初始化序列開始。由主機發出的復位脈沖和跟在其后的由DS18B20發出的應答脈沖構成。當DS18B20發出響應主機的應答脈沖時,即向主機表明它已處在總線上并且準備工作。

29、b. ROM命令8:ROM命令通過每個器件64-bit的ROM碼,使主機指定某一特定器件(如果有多個器件掛在總線上)與之進行通信。DS18B20的ROM如表2.5所示,每個ROM命令都是8 bit長。表2.5 ROM命令指令協議功能讀ROM33H讀DS18B20中的編碼(即64位地址)符合ROM55H發出此命令后,接著發出64位ROM編碼,訪問單總線上與該編碼相對應的DS18B20,使之作出響應,為下一步對該DS18B20的讀寫作準備搜索ROM0F0H用于確定掛接在同一總線上DS18B20的個數和識別64位ROM地址,為操作各器件作好準備跳過ROM0CCH忽略64位ROM地址,直接向DS18B

30、20V 溫度轉換命令,適用于單個DS18B20工作告警搜索命令0ECH執行后,只有溫度超過廟宇值上限或下限的片子才做出響應溫度轉換44H啟動DS18B20進行溫度轉換,轉換時間最長為500ms(典型為200ms),結果豐入內部9字節RAM中讀暫存器BEH讀內部RAM中9字節的內容寫暫存器4EH發出向內部RAM的第3、4字節寫上、下溫度數據命令,緊該溫度命令之后,傳達兩字節的數據復制暫存器48H將RAM中第3、4字內容復制到E2PROM中重調E2PROM0B8H將E2PROM中內容恢復到RAM中的第3、4字節讀供電方式0B4H讀DS18B20的供電模式,寄生供電時DS18B20發送“0”,外部供

31、電時DS18B20發送“1”2.4 液晶顯示模塊 液晶顯示模塊電路液晶顯示模塊以其微功耗、體積小、顯示內容豐富、模塊化、接口電路簡單等諸多優點得到廣泛應用。液晶顯示模塊分字符型和點陣型兩種,前者只能顯示常用的字符,點陣型液晶顯示模塊除顯示字符外還能顯示各種圖形和漢字。如圖2.5所示,為液晶顯示屏與單片機的連接電路圖。圖2.5 液晶顯示屏與單片機的連接電路2.4.2 液晶顯示屏簡介12864是一種具有4位/8位并行、2線或3線串行多種接口方式,內部含有國標一級、二級簡體中文字庫的點陣圖形液晶顯示模塊;其顯示分辨率為128×64, 內置8192個16*16點漢字,和128個16*8點AS

32、CII字符集。該模塊靈活的接口方式和簡單、方便的操作指令,可構成全中文人機交互圖形界面。可以顯示8×4行16×16點陣的漢字??赏瓿蓤D形顯示。電壓低功耗是其又一顯著特點。由該模塊構成的液晶顯示方案與同類型的圖形點陣液晶顯示模塊相比,不論硬件電路結構或顯示程序都要簡潔得多,且該模塊的價格也略低于相同點陣的圖形液晶模塊9。圖2.6 LCD結構尺寸基本特性:低電源電壓(VDD:+3.0-+5.5V)顯示分辨率:128×64點內置漢字字庫,提供8192個16×16點陣漢字(簡繁體可選)內置 128個16×8點陣字符2MHZ時鐘頻率顯示方式:STN、半透

33、、正顯驅動方式:1/32DUTY,1/5BIAS視角方向:6點背光方式:側部高亮白色LED,功耗僅為普通LED的1/51/10通訊方式:串行、并口可選內置DC-DC轉換電路,無需外加負壓無需片選信號,簡化軟件設計工作溫度: 0 - +55 ,存儲溫度: -20 - +60 控制器接口信號說明:如表2.6,2.7表2.6 RS和R/W的配合選擇決定控制界面的4種模式RSR/W功能說明LLMPU寫指令到指令暫存器(IR)LH讀出忙標志(BF)及地址記數器(AC)的狀態HLMPU寫入數據到數據暫存器(DR)HHMPU從數據暫存器(DR)中讀出數據 表2.7 E信號E狀態執行動作結果高>

34、;低I/O緩沖>DR配合/W進行寫數據或指令高DR>I/O緩沖配合R進行讀數據或指令低/低>高無動作    忙標志:BF。BF標志提供內部工作情況.BF=1表示模塊在進行內部操作,此時模塊不接受外部指令和數據.BF=0時,模塊為準備狀態,隨時可接受外部指令和數據。利用STATUS RD 指令,可以將BF讀到DB7總線,從而檢驗模塊之工作狀態。字型產生ROM(CGROM):字型產生ROM(CGROM)提供8192個此觸發器是用于模塊屏幕顯示開和關的控制。DFF=1為開顯示(DISPLAY ON),DDRAM 的內容就顯示在屏幕上,DFF=0為關顯示

35、(DISPLAY OFF)。DFF 的狀態是指令DISPLAY ON/OFF和RST信號控制的10。顯示數據RAM(DDRAM):模塊內部顯示數據RAM提供64×2個位元組的空間,最多可控制4行16字(64個字)的中文字型顯示,當寫入顯示數據RAM時,可分別顯示CGROM與CGRAM的字型;此模塊可顯示三種字型,分別是半角英數字型(16*8)、CGRAM字型及CGROM的中文字型,三種字型的選擇,由在DDRAM中寫入的編碼選擇,在0000H0006H的編碼中(其代碼分別是0000、0002、0004、0006共4個)將選擇CGRAM的自定義字型,02H7FH的編碼中將選擇半角英數字的

36、字型,至于A1以上的編碼將自動的結合下一個位元組,組成兩個位元組的編碼形成中文字型的編碼BIG5(A140D75F),GB(A1A0-F7FFH)。 字型產生RAM(CGRAM):字型產生RAM提供圖象定義(造字)功能, 可以提供四組16×16點的自定義圖象空間,使用者可以將內部字型沒有提供的圖象字型自行定義到CGRAM中,便可和CGROM中的定義一樣地通過DDRAM顯示在屏幕中。地址計數器AC11:地址計數器是用來貯存DDRAM/CGRAM之一的地址,它可由設定指令暫存器來改變,之后只要讀取或是寫入DDRAM/CGRAM的值時,地址計數器的值就會自動加一,當RS為“0”時而R/W為

37、“1”時,地址計數器的值會被讀取到DB6DB0中。光標/閃爍控制電路:此模塊提供硬體光標及閃爍控制電路,由地址計數器的值來指定DDRAM中的光標或閃爍位置。2.5 鍵盤輸入模塊一般具有人機對話的單片機系統少不了會有鍵盤。本設計采用三個按鍵,最佳的接口方案是獨立式接法,即每一個I/O口上只接一個按鍵,按鍵的另一端接地。獨立式鍵盤的實現方法是利用單片機I/O口讀取口的電平高低來判斷是否有鍵按下。我們將按鍵的一端接地,另一端接一個I/O口,程序開始時將此I/O口置于高電平,平時無按鍵按下時I/O口保護高電平。當有鍵按下時,此I/O口與地短路迫使I/O口為低電平。按鍵釋放后,與單片機連接的上拉電阻使I

38、/O口仍然保持高電平。我們所要做的就是在程序中查詢此I/O口的電平狀態就可以了解我們是否有按鍵動作了。值得注意的是,我們在用單片機對鍵盤處理的時候涉及到了一個重要的過程,那就是鍵盤的去抖動。這里說的抖動是機械的抖動,是當鍵盤在未按到按下的臨界區產生的電平不穩定正?,F象,并不是我們在按鍵時通過注意可以避免的。這種抖動一般在10200毫秒之間,這種不穩定電平的抖動時間對于人來說太快了,而對于時鐘是微秒級的單片機而言則是漫長的。為了提高系統的穩定性,我們必須去除或避開它。此處我采用軟件去抖動,實現方法是先查詢按鍵當有低電平出現時立即延時10200毫秒以避開抖動,延時結束再讀一次I/O口的值。按鍵分工

39、,從左至右依次為1、2、3號按鍵,一號鍵模式鍵,二號三號鍵為加減鍵。圖2.7 鍵盤接口電路3 太陽能熱水器控制系統軟件設計3.1 KEIL uVISION 3軟件環境單片機開發中除必要的硬件外,同樣離不開軟件,本系統的軟件編程設計是在Keil軟件環境中完成的。我們寫的C語言、匯編語言源程序要變為CPU可以執行的機器碼有兩種方法,一種是手工匯編,另一種是機器匯編,目前已極少使用手工匯編的方法了。機器匯編是通過匯編軟件將源程序變為機器碼,用于MCS-51單片機的匯編軟件有早期的A51,隨著單片機開發技術的不斷發展,從普遍使用匯編語言到逐漸使用高級語言開發,單片機的開發軟件也在不斷發展,Keil軟件

40、是目前最流行開發51系列單片機的軟件,這從近年來各仿真機廠商紛紛宣布全面支持Keil即可看出。Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調試器等在內的完整開發方案,通過一個集成開發環境(uVision)將這些部份組合在一起。掌握這一軟件的使用對于使用51系列單片機的愛好者來說是十分必要的,如果使用C語言編程,那么Keil幾乎就是不二之選。即使不使用C語言而僅用匯編語言編程,其方便易用的集成環境、強大的軟件仿真調試工具也會令人事半功倍12。Keil C51是美國Keil Software公司出品的51系列兼容單片機C語言軟件開發系統,與匯編相比,C語言在功能上、結構性

41、、可讀性、可維護性上有明顯的優勢,因而易學易用。用過匯編語言后再使用C來開發,體會更加深刻。 Keil C51軟件提供豐富的庫函數和功能強大的集成開發調試工具,全Windows界面。另外重要的一點,只要看一下編譯后生成的匯編代碼,就能體會到Keil C51生成的目標代碼效率非常之高,多數語句生成的匯編代碼很緊湊,容易理解。在開發大型軟件時更能體現高級語言的優勢。3.2 太陽能熱水器控制系統軟件設計流程圖本課題設計的太陽能熱水器控制系統的軟件程序設計主要由(1)初始化程序,(2)掃描按鍵程序,(3)按鍵處理子程序,(4)讀取水位信息、水箱溫度和時間程序,(6)調用顯示子程序,六個部分組成。系統總

42、體流程圖如圖3.1所示。開始初始化掃描鍵盤,是否有按鍵N調用鍵盤處理子程序Y讀取水位信息和水箱溫度調用顯示子程序顯示水溫時間圖3.1 系統總體流程圖3.3 太陽能熱水器控制系統軟件功能的實施3.3.1 初始化程序 太陽能熱水器控制系統在接通電源后,首先要對系統進行初始化。初始化的過程包括啟動DS1302,啟動12864,對12864進行清屏。初始化流程圖如下:初始化開始啟動DS1302啟動12864清屏圖3.2 初始化程序流程圖初始化程序清單如下:void start(void) /初始化函數 unsigned char i;set_time(0x8e,0x00); /取消寫保護set_tim

43、e(0x80,0x00); /啟動時鐘set_time(0x84,0x00); /設置24小時模式set_time(0x90,0xa5); /時鐘時鐘充電模式set_time(0x8e,0x80); /啟動寫保護RES1=0; RES1=1; dis_write_cmd(0xaf); /啟動12864 clean(); /清屏3.3.2 按鍵檢測及處理程序在太陽能熱水器初始化完成之后,系統便會進入鍵盤掃描狀態,此狀態下,主控芯片AT89S52會不斷掃描是否有鍵按下,即等待用戶輸入。在檢測到有鍵按下后,根據按下的次數(按一下設置“分”,按兩下設置“時”,三下設置“星期”,以此類推),在運用“加”

44、“減”分別設置。按鍵檢測及處理流程圖如圖所示:(以按下“一下”為例)開始掃描是否有鍵按下否是一下(設置分)是否為“+”鍵是“分”加1否“分”減1圖3.3 按鍵檢測及處理程序流程圖按鍵檢測及處理程序清單如下:while(1) /總循環 while(state_button=0) /狀態0循環 /無鍵按下的處理程序while(state_button!=0) /狀態非0循環 set_time(0x80,0x80); /啟動時鐘 set_time(0x8e,0x00); /啟動保護位if(state_button=1) /狀態1設置分 if(time_jia=1) /判斷按鈕加是否按下過 minut

45、e0+; /分操作 下面所有的加減同理 if(minute0>9) / minute0最大為9,minute1最大為5 minute1+; minute0=0; if(minute1>5) minute1=0; time_jia=0; /按鍵清零 表示已經執行完 if(time_jian=1) minute0-; if(minute0<0) minute1-; minute0=9; if(minute1<0) minute1=5; time_jian=0; 3.3.3 讀取溫度的程序 本設計采用while循環,在沒有鍵按下時,跳出while循環,進行下邊的語句,即讀取溫

46、度,并將其顯示在12864上。在讀取的過程中,要注意溫度的正負。讀取溫度的流程圖如圖3.4所示:復位讀取溫度數據判斷正負正轉為十進制負取反后,轉十進制圖3.4 讀取溫度流程圖讀取溫度程序清單: wendu_reset(); /溫度復位 wendu_write(0xcc); /跳過ROM搜索命令wendu_write(0x44); /啟動一次轉換wendu_reset(); /復位wendu_write(0xcc); /跳過ROM搜索命令wendu_write(0xbe); /發送讀命令a=wendu_read(); /讀高字節8位b=wendu_read(); /讀低字節8位 pn=b&

47、;0x80; /判斷溫度正負if(pn=0) /如果溫度為正t=(b*256)+a)/16; /直接轉化為十進制數if(pn=0x80) /如果溫度為負a=a; /將數據取反b=b;c=a+1; /低位加1if(c=0x00) /當低位為255時,加1后為0,這時需進位b+; /向高位進1t=(b*256)+c)/16; /再進行轉換十進4 太陽能熱水器控制系統整體調試4.1 Proteus仿真環境本系統的硬件設計首先是在Proteus軟件環境中仿真實現的。Proteus軟件是來自英國Labcenter electronics公司的EDA工具軟件,Proteus軟件有十多年的歷史,在全球廣泛使

48、用,除了具有和其它EDA工具一樣的原理布圖、PCB自動或人工布線及電路仿真的功能外,其革命性的功能是,它的電路仿真是互動的。針對微處理器的應用,還可以直接在基于原理圖的虛擬原型上編程,并實現軟件源碼級的實時調試。如果有顯示及輸出,配合系統配置的虛擬儀器如示波器、邏輯分析儀等,還能看到運行后輸入輸出的效果。它運行于Windows操作系統上,可以仿真、分析(SPICE)各種模擬器件和集成電路。 Proteus13建立了完備的電子設計開發環境,尤其重要的是Proteus Lite可以完全免費,也可以花微不足道的費用注冊達到更好的效果。Proteus7.1是目前最好的模擬單片機外圍器件的工具??梢苑抡?/p>

49、51系列、AVR、PIC等常用的MCU及其外圍電路(如LCD,RAM,ROM,鍵盤,馬達,LED,AD/DA,部分SPI器件,部分IIC器件,.)。 其實Proteus 與 multisim比較類似,只不過它可以仿真MCU! 當然,軟件仿真精度有限,而且不可能所有的器件都找得到相應的仿真模型,用開發板和仿真器當然是最好選擇,可是初學者擁有它們的可能性比較小。 使用51系列單片機,不管是用匯編語言還是用C語言編程都要用到keil軟件。 使用keil c51 v7.50 + proteus 7.1 可以像使用仿真器一樣調試程序,一般而言,微機實驗中用萬能仿真器+電工系自己做的實驗板的實驗都可以做得

50、到。 當然,硬件實踐還是必不可少的。在沒有硬件的情況下,Proteus能像pspice 仿真模擬/數字電路那樣仿真MCU及外圍電路。另外,即使有硬件,在程序編寫早期用軟件仿真一下也是很有必要的14。Proteus軟件主要具有幾個方面的特點(1)實現了單片機仿真和SPICE電路仿真相結合。具有模擬電路仿真、數字電路仿真、單片機及其外圍電路組成的系統的仿真、RS232動態仿真、I2C調試器、SPI調試器、鍵盤和LCD系統仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號發生器等。(2)支持主流單片機系統的仿真。目前支持的單片機類型有:ARM7(LPC21xx)、 8051/52系列、AVR系列

51、、PIC10/12/16/18系列、HC11系列以及多種外圍芯片。(3)提供軟件調試功能。在硬件仿真系統中具有全速、單步、設置斷點等調試功能,同時可以觀察各個變量、寄存器等的當前狀態,因此在該軟件仿真系統中,也必須具有這些功能15;同時支持第三方的軟件編譯和調試環境,如Keil C51 uVision2、MPLAB等軟件。(4)具有強大的原理圖繪制功能??傊撥浖且豢罴瘑纹瑱C和SPICE分析于一身的仿真軟件,功能極其強大。(5)在設計綜合性方案中,還可以利用ARES開發印制電路板。4.2 太陽能熱水器控制系統調試過程系統的硬件電路設計與軟件程序設計都完成之后,首先,在硬件電路的仿真環境Pr

52、oteus中,將經過編輯、編譯、匯編、連接幾步生成的.HEX文件加載到單片機AT89S52中,然后對系統進行整體調試。以下是調試過程中遇到的主要問題及相應的解決方法:1、問題描述:在控制系統中,涉及到了電加熱模塊,即當室外光強不足(陰天、下雨)時,對水箱的水進行電加熱是很必要的,然而仿真中無法顯示出是否在執行加熱過程。解決方法:用一個等來仿真加熱過程,燈亮時表示加熱,圖中的三極管為光敏三極管(Proteus仿真元件庫中沒有),當燈亮時,光敏三極管導通,繼電器閉合,電阻絲發熱,完成了加熱任務。所以只有當燈亮時為加熱進行中。如圖4.1所示。圖4.1 加熱程序電路圖2、問題描述:在控制中,還有一個重

53、要的部分,水位顯示。也沒有辦法直接顯示到仿真過程中,只有通過另一種模式模擬出來。解決方法:起初想到兩個方案。第一個方案是用多個溫度傳感器,通過溫度比較,來確定水位,因為水下傳感器的溫度必定不同于不在水中的傳感器,通過溫度比較來判斷,但是后來發現,多個傳感器不合理,而且水溫的高低不好處理。最后決定的方案如圖4.2所示。圖4.2 水位顯示電路圖檢測原理如下:當水箱中無水時,8個非門均由1M歐姆電阻上拉成高電平, 所以圖中各“非”門(CD4069) 輸出均為低電平,LED1 LED8 均不亮。當水位高于“非”門1 的輸入探針時,由于水的導電作用,使“非”門1 的輸入變為低電平,所以其輸出變為高電平,LED點亮,依此類推。隨著水位的上升,各“非”門輸出相繼為高電平,LED依次點亮。這里要注意的是上拉電阻不能選擇太小,因為水的電阻在100k8 左右,所以上拉電阻選擇太小的話,將在水位升高時,無法把“非”門輸入端拉成低電平。3、問題描述:生成.HEX文件運行時,調試按鍵,沒按一下,屏幕或者沒有反應,或者連跳兩下,“加”“減”鍵也是如此,想在現有的基礎上加一,結果按了一下以后,并沒有加一,有時候連加

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論