版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 PAGE36 / NUMPAGES38摘 要 隨著人們生活水平的不斷提高,全球人口和經濟規(guī)模的不斷增長,單片機控制無疑是人們追求的目標之一,它所給人帶來的方便也是不可否定的,其中,能源使用帶來的環(huán)境問題與其誘因逐漸為人們所認識,“低碳經濟”這一概念開始進入人們的視野。太陽能具有儲量的“無限性”、存在的普遍性,并且?guī)缀醪划a生任何污染。鑒于此,人們在大力的發(fā)展太陽能產業(yè)。太陽能熱水器順應時代發(fā)展的要求,滿足人們對環(huán)保綠色產品的需求。在人類文明程度日益提高的今天,它是現代文明社會的最佳選擇。本文提出了一種新型的太陽能熱水器控制系統設計方案。本設計采用MSC-51系列單片機AT89S52作為中央處理
2、器,采用DS1302實時時鐘,12864點陣式液晶顯示屏等模塊,完成時間溫度水位的顯示,以與時間和溫度的設定等功能。關鍵字:太陽能熱水器;單片機;實時時鐘;液晶顯示屏 目錄TOC o 1-3 h u HYPERLINK l _Toc12886 1 智能儀器儀表的簡介 PAGEREF _Toc12886 1 HYPERLINK l _Toc32657 1.1智能儀器儀表簡介 PAGEREF _Toc32657 1 HYPERLINK l _Toc14677 1.2智能儀器儀表的作用 PAGEREF _Toc14677 1 HYPERLINK l _Toc7902 1.3本課題的背景和意義 PAG
3、EREF _Toc7902 1 HYPERLINK l _Toc4151 2 系統設計簡介 PAGEREF _Toc4151 3 HYPERLINK l _Toc1791 2.1 方案論證 PAGEREF _Toc1791 3 HYPERLINK l _Toc28702 2.2 總體設計 PAGEREF _Toc28702 4 HYPERLINK l _Toc651 2.2.1太陽能熱水器的組成與工作原理 PAGEREF _Toc651 4 HYPERLINK l _Toc32600 2.2.2系統總體流程圖 PAGEREF _Toc32600 5 HYPERLINK l _Toc21600
4、3 太陽能熱水器控制系統的硬件設計 PAGEREF _Toc21600 6 HYPERLINK l _Toc31729 3.1 主控芯片模塊 PAGEREF _Toc31729 6 HYPERLINK l _Toc13943 3.1.1 主控芯片模塊電路 PAGEREF _Toc13943 6 HYPERLINK l _Toc17319 3.1.2 主控芯片簡介 PAGEREF _Toc17319 7 HYPERLINK l _Toc13436 3.2 實時時鐘模塊 PAGEREF _Toc13436 9 HYPERLINK l _Toc27842 3.2.1 實時時鐘模塊電路 PAGEREF
5、 _Toc27842 9 HYPERLINK l _Toc26581 3.2.2 實時時鐘簡介 PAGEREF _Toc26581 10 HYPERLINK l _Toc32344 3.3 溫度傳感器模塊 PAGEREF _Toc32344 11 HYPERLINK l _Toc2375 3.3.1 溫度傳感器模塊電路 PAGEREF _Toc2375 11 HYPERLINK l _Toc3078 3.3.2 溫度傳感器簡介 PAGEREF _Toc3078 12 HYPERLINK l _Toc11350 3.4 液晶顯示模塊 PAGEREF _Toc11350 14 HYPERLINK
6、l _Toc22570 3.4.1 液晶顯示模塊電路 PAGEREF _Toc22570 14 HYPERLINK l _Toc23315 3.4.2 液晶顯示屏簡介 PAGEREF _Toc23315 15 HYPERLINK l _Toc31001 3.5 鍵盤輸入模塊 PAGEREF _Toc31001 17 HYPERLINK l _Toc15610 4 設計語言與軟件介紹 PAGEREF _Toc15610 19 HYPERLINK l _Toc8429 4.1 匯編語言介紹 PAGEREF _Toc8429 19 HYPERLINK l _Toc2564 4.2wave6000軟件
7、介紹 PAGEREF _Toc2564 19 HYPERLINK l _Toc25821 5 系統軟件設計 PAGEREF _Toc25821 20 HYPERLINK l _Toc21285 5.1 概述 PAGEREF _Toc21285 20 HYPERLINK l _Toc2113 5.2 系統程序設計模塊 PAGEREF _Toc2113 20 HYPERLINK l _Toc13252 5.3 初始化程序 PAGEREF _Toc13252 21 HYPERLINK l _Toc12453 5.4 按鍵檢測與處理程序 PAGEREF _Toc12453 22 HYPERLINK l
8、 _Toc23541 5.5讀取溫度的程序 PAGEREF _Toc23541 24 HYPERLINK l _Toc21408 5.6控制源程序 PAGEREF _Toc21408 25 HYPERLINK l _Toc8569 5.7調試與仿真 PAGEREF _Toc8569 29 HYPERLINK l _Toc29777 結 論 PAGEREF _Toc29777 33 HYPERLINK l _Toc30163 參 考 文 獻 PAGEREF _Toc30163 341 智能儀器儀表的簡介1.1智能儀器儀表簡介儀器儀表(英文:instrumentation)儀器儀表是用以檢出、測量
9、、觀察、計算各種物理量、物質成分、物性參數等的 HYPERLINK :/baike.baidu /view/1736722.htm t _blank 器具或設備。真空檢漏儀、 HYPERLINK :/baike.baidu /view/655644.htm t _blank 壓力表、測長儀、顯微鏡、乘法器等均屬于儀器儀表。廣義來說,儀器儀表也可具有自動控制、報警、 HYPERLINK :/baike.baidu /view/1331229.htm t _blank 信號傳遞和數據處理等功能,例如用于 HYPERLINK :/baike.baidu /view/1714883.htm t _bl
10、ank 工業(yè)生產過程自動控制中的氣動調節(jié)儀表,和 HYPERLINK :/baike.baidu /view/2147787.htm t _blank 電動調節(jié)儀表,以與集散型儀表控制系統也皆屬于儀器儀表。1.2智能儀器儀表的作用 隨著全球人口和經濟規(guī)模的不斷增長,能源使用帶來的環(huán)境問題與其誘因逐漸為人們所認識,“低碳經濟”這一概念開始進入人們的視野。人們在大力的發(fā)展太陽能產業(yè)。能源問題將更為突出:從長遠來看,全球已探明的石油儲量只能用到2020 年,天然氣也只能延續(xù)到2040 年左右,即使儲量豐富的煤炭資源也只能維持二三百年。環(huán)境污染溫室效應引起全球氣候變化。因此,人類在解決上述能源問題,實
11、現可持續(xù)發(fā)展,只能依靠科技進步,大規(guī)模地開發(fā)利用可再生潔凈能源。太陽能具有:儲量的“無限性”太陽每秒鐘放射的能量大約是1.610 的23 次方kW,一年到達地球表面的太陽能總量折合標準煤共約1.89210 的13 次方千億t。太陽能對于地球上絕大多數地區(qū)具有存在的普遍性,可就地取用。 在世界圍,太陽能熱水器技術已很成熟,并已形成行業(yè),正在以優(yōu)良的性能不斷地沖擊電熱水器市場和燃氣熱水器市場。2000 年太陽能熱水器取代47000 套家用電熱水器;2000 年日本太陽能熱水器的擁有量將翻一番;以色列更是明文規(guī)定,所有新建房屋必須配備太陽能熱水器。目前,我國是世界上太陽能熱水器生產量和銷售量最大的國
12、家。然而,目前市場上太陽能熱水器的控制系統大多存在功能單一、操作復雜、控制不方便等問題,很多控制器具有溫度和水位顯示功能,卻不具有溫度控制功能,致使熱水器陰天的時候不能方便使用。即使熱水器具有輔助加熱功能,也可能由于加熱時間不能控制而產生過燒,從而浪費電能。1.3本課題的背景和意義 資源是社會經濟發(fā)展的物質基礎,經濟愈發(fā)展,對資源的依賴性愈強。許多資源(如煤、石油、天然氣等)是不可再生的,而且在利用過程中給人類生存環(huán)境帶來極大污染,人類繁衍生息的物質和環(huán)境基礎受到嚴峻挑戰(zhàn)。加強清潔、可再生資源的開發(fā)利用,已引起全世界的普遍重視。太陽能作為一種取之不盡、用之不竭的可再生資源,有節(jié)能、環(huán)保、安全和
13、永續(xù)利用等優(yōu)點,理應成為開發(fā)利用的首選。其中太陽能熱水器作為家庭生活用品,其開發(fā)利用在我國已走過了二十多年的歷程,生產技術成熟,具有明顯優(yōu)點:(一)從節(jié)能環(huán)保的角度講,使用太陽能熱水器不會對環(huán)境造成污染,同時為國家節(jié)約了大量能源,社會效益明顯,是國家重點推廣項目,使用前景廣闊。(二)太陽能熱水器的使用壽命較長,使用太陽能熱水器經濟實惠。若使用合理,其壽命可達15年甚至更長。據測算,使用平方米太陽能熱水器,相當于每年節(jié)約310度電。太陽能熱水器的費用只有燃氣熱水器的七分之一,電熱水器的六分之一。購置太陽能熱水器一次性投資3000元左右,使用5至6年就可實現與其熱水器的支出對比平衡。按照裝置壽命1
14、5年計算,其經濟效益是十分明顯的。(三)太陽能熱水器集熱效果好,集熱時間更長。只要能照射到的地方,就可以使用太陽能熱水器,即使在高寒地區(qū)一年四季也可以正常使用。在我國、等地,太陽能熱水器的研發(fā)和生產已形成規(guī)模,應用太陽能熱水器的場所也由家居使用擴展到醫(yī)院、學校、賓館、飯店、游泳池、洗浴場所等。2 系統設計簡介2.1 方案論證 (1)方案一 在單片機學習課程中,就遇到過一種方案,稱其為方案一。它通過三極管的導通截止特性來判斷液位的位置,并且可以通過按鍵切換檢測壓力。但是在過程中只能檢測三點,雖然可以擴展,但是占了太多的I/O口,容易造成資源的浪費。而且僅顯示單元就占用了12個I/O口,同樣屬于資
15、源浪費。在電機電路設計方面,方案一采用的三極管的導通截止來控制點擊的正轉與反轉,雖然設計簡單,但是過多的使用三極管以與二極管類的元器件,也會使成本升高。而且,既然是太陽能熱水器的自動控制裝置,那么必不可少的就是溫度的檢測,而方案一中卻忽略了這點,造成了最大的殘缺。 (2)方案二 方案二主要解決了方案一中資源浪費與過于使用分立元件的缺陷。在液位檢測方面,通過利用兩片CD4051芯片,它相當于一個單刀八擲開關,當INH禁止端為低電平即“0”時,開關接通哪一通道由輸入的3位地址碼ABC來決定。這樣就簡單的解決了16個點檢測的問題,并且在最大程度上減少了I/O口的使用。僅使用了8個I/O口即可控制16
16、個點的檢測,如果是方案一,則需要使用16個I/O口。而且在方案二中,使用目前比較流行51系列單片機AT89S52。AT89S52是一種低功耗、高性能 HYPERLINK :/baike.baidu /view/22318.htm CMOS 8位微控制器,具有8K 在系統可編程Flash 存儲器。使用Atmel 公司高密度非易失性存儲器技術制造,與工業(yè)80C51 產品指令和引腳完全兼容。片上Flash允許程序存儲器在系統可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8 位CPU 和在系統可編程Flash,使得AT89S52在眾多嵌入式控制應用系統中的優(yōu)勢明顯。在方案二中還解決了方案一種不能檢測
17、溫度缺點,使用了先進的DS18B20芯片,DS18B20數字溫度傳感器是Dallas公司生產的1-Wire,即單總線器件,具有線路簡單、體積小的特點。因此用他組成一個測溫系統,具有線路簡單,在1根通信線可以掛很多這樣的數字溫度傳感器,十分方便。 (3)方案選擇 通過上述兩個方案的比較,便能發(fā)現方案二設計的電路比方案一的電路有極大的優(yōu)勢,性能全面,使用方便,而且簡單、穩(wěn)定。故選擇方案二。2.2 總體設計2.2.1太陽能熱水器的組成與工作原理1-集熱器 2-下降水管3-循環(huán)水管4-補給水箱5-上升水管6-自來水管7-熱水出水管圖2.1熱水器的組成熱水器主要由集熱器、循環(huán)管道和水箱等組成,圖中為典型
18、的熱水器裝置圖。圖中集熱器1按最佳傾角放置,下降水管2的一端與循環(huán)水箱3的下部相連,另一端與集熱器1的下集管接通。上升水管5與循環(huán)水箱3上部相連,另一端與集熱器1的上集管相接。補給水箱4供給循環(huán)水箱3所需的冷水。集熱器吸收太陽輻射后,集熱器溫度上升,水溫也隨之升高。水溫升高后,水的比重減輕,便經上升水管進入循環(huán)水箱上部。而循環(huán)水箱下部的冷水比重較大,就由水箱下流到集熱器下方,在集熱器受熱后又上升。這樣不斷對流循環(huán),水溫逐漸提高,直到集熱器吸收的熱量與散失的熱量相平衡時,水溫不再升高。這種熱水利用循環(huán)加熱的原理,因此又稱循環(huán)熱水器。集熱器是一種利用溫室效應,將太陽能輻射轉換為熱能的裝置,該裝置與
19、一般熱水交換器不一樣,熱交換器通常只是液體到液體,或是液體到氣體的熱交換過程,而平板行集熱器時直接將太陽輻射傳給液體或氣體,是一個復雜的傳熱過程。平板型集熱器結構形式很多,世界上已實用的集熱器就有直管式、瓦楞式、扁管式、鋁翼式等二十多種。2.2.2系統總體流程圖開始初始化掃描鍵盤,是否有按鍵N調用鍵盤處理子程序Y讀取水位信息和水箱溫度調用顯示子程序顯示水溫時間圖2.2系統總體流程圖3 太陽能熱水器控制系統的硬件設計3.1 主控芯片模塊3.1.1 主控芯片模塊電路單片機系統由AT89S52和一定功能的外圍電路組成,包括為單片機提供復位電壓的復位電路,提供系統頻率的晶振。這部分電路主要負責程序的存
20、儲和運行。對外接電容的值雖然沒有嚴格的要求,但電容的大小會影響振蕩器頻率的高低、諧振器的穩(wěn)定性、起振的快速性和溫度的穩(wěn)定性。晶體可在1.2MHz12MHz之間任選,電容C1和C2的典型值在20pF100pF之間選擇,但在60pF70pF時振蕩器具有較高的頻率穩(wěn)定性。典型值通常選擇為30pF左右,但本電路采用30pF。AT89S52的復位是由外部的復位電路來實現的。復位電路通常采用上電自動復位和按鈕復位兩種方式。本設計中所用到的是上電按鈕復位,如圖3.1所示。圖3.1 單片機系統3.1.2 主控芯片簡介AT89S52 是一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統可編程Flash
21、存儲器。使用ATMEL公司高密度非易失性存儲器技術制造,與工業(yè)80C51產品指令和引腳完全兼容。片上Flash允許程序存儲器在系統可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8位CPU和在系統可編程Flash,使得AT89S52為眾多嵌入式控制應用系統提供高靈活、有效的解決方案。AT89S52具有以下標準功能:8k字節(jié)Flash,256字節(jié)RAM,32位I/O口線,看門狗定時器,2個數據指針,三個16位定時器/計數器,一個6向量2級中斷結構,全雙工串行口,片晶振與時鐘電路。另外,AT89S52可降至0Hz靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU 停止工作,允許RAM、定
22、時器/計數器、串口、中斷繼續(xù)工作。掉電保護方式下,RAM容被保存,振蕩器被凍結,單片機一切工作停止,直到下一個中斷或硬件復位為止。8位微控制器8K字節(jié)在系統可編程Flash AT89S52。圖3.2為AT89S52的引腳圖圖3.2 AT89S52的引腳圖AT89S52引腳功能說明如下:VCC:電源電壓GND:地P0 口:P0口是一個8位漏極開路的雙向I/O口,也即地址/數據總線復用口。作為輸出口,每位能驅動8個TTL邏輯電平。對P0端口寫“1”時,引腳用作高阻抗輸入。當訪問外部程序和數據存儲器時,P0口也被作為低8位地址/數據復用。在這種模式下,P0部上拉電阻被激活。在flash編程時,P0口
23、也用來接收指令字節(jié);在程序校驗時,輸出指令字節(jié)。程序校驗時,需要外部上拉電阻。P1 口:P1口是一個具有部上拉電阻的8位雙向I/O口,P1輸出緩沖器能驅動(吸收或輸出電流)4個TTL邏輯門電平。對P1 端口寫“1”時,部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于部電阻的原因,將輸出電流(TTL)。此外,P1.0和P1.2分別作定時器/計數器2的外部計數輸入(P1.0/T2)和時器/計數器2 的觸發(fā)輸入(P1.1/T2EX),具體如表3-1所示。在flash編程和校驗P1口接收低8位地址字節(jié)。端口引腳第二功能P1.0 T2(定時器/計數器T2的外部計數輸入)
24、,時鐘輸出P1.1 T2EX(定時器/計數器T2的捕捉/重載觸發(fā)信號和方向控制)P1.5 MOSI(在系統編程用)P1.6 MISO(在系統編程用)P1.7 SCK(在系統編程用) 表3-1 P1口第二功能P2 口:P2 口是一個具有部上拉電阻的8位雙向I/O口,P2輸出緩沖器能驅動4個TTL邏輯電平。對P2端口寫“1”時,部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于部電阻的原因,將輸出電流(IIL)。在訪問外部程序存儲器或用16位地址讀取外部數據存儲器(例如執(zhí)行MOVX DPTR)時,P2口送出高八位地址。在這種應用中,P2 口使用很強的部上拉發(fā)送1。在
25、使用8位地址(如MOVX RI)訪問外部數據存儲器時,P2口輸出P2鎖存器的容。 在flash編程和校驗時,P2口也接收高8位地址字節(jié)和一些控制信號。 端口引腳第二功能端口引腳第二功能P3.0 RXD(串行輸入口)P3.4TO(定時/計數器0)P3.1TXD(串行輸出口)P3.5T1(定時/計數器1)P3.2 INTO(外中斷0)P3.6WR(外部數據存儲器寫選通)P3.3 INT1(外中斷1)P3.7RD(外部數據存儲器讀選通) 表3-2 P3口的第二功能此外,P3口還接收一些用于FLASH閃存編程和程序校驗的控制信號。RST復位輸入。當振蕩器工作時,RST引腳出現兩個機器周期以上高電平將是
26、單片機復位。WDT溢出將使該引腳輸出高電平,設置SFR AUXR的DISRTO位(地址8EH)可打開或關閉該功能。DISRTO位缺省為RESET輸出高電平打開狀態(tài)。ALE/PROG當訪問外部程序存儲器或數據存儲器時,ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。一般情況下,ALE仍以時鐘振蕩頻率的1/6輸出固定的脈沖信號,因此它可對外輸出時鐘或用于定時目的。要注意的是:每當訪問外部數據存儲器時將跳過一個ALE脈沖。如有必要,可通過對特殊功能寄存器(SFR)區(qū)中的8EH單元的D0位置位,可禁止ALE操作。該位置位后,只有一條MOVX和MOVC指令才能將ALE激活。此外,該引腳會被微弱拉
27、高,單片機執(zhí)行外部程序時,應設置ALE禁止位無效。PSEN程序儲存允許(PSEN)輸出是外部程序存儲器的讀選通信號,當AT89C52由外部程序存儲器取指令(或數據)時,每個機器周期兩次PSEN有效,即輸出兩個脈沖,在此期間,當訪問外部數據存儲器,將有兩次有效的PSEN信號。EA/VPP外部訪問允許,欲使CPU僅訪問外部程序存儲器(地址為0000H-FFFFH),EA端必須保持低電平(接地)。需注意的是:如果加密位LB1被編程,復位時部會鎖存EA端狀態(tài)。如EA端為高電平(接Vcc端),CPU則執(zhí)行部程序存儲器的指令。FLASH存儲器編程時,該引腳加上+12V的編程允許電源Vpp,當然這必須是該器
28、件是使用12V編程電壓Vpp。XTAL1:振蕩器反相放大器與部時鐘發(fā)生器的輸入端。XTAL2:振蕩器反相放大器的輸出端。3.2 實時時鐘模塊3.2.1 實時時鐘模塊電路從古代的滴漏更鼓到近代的機械鐘,從電子表到目前的數字時鐘,為了準確的測量和記錄時間,人們一直在努力改進計時工具。鐘表的數字化,大力推動了計時的精確性和可靠性。在單片機構成的裝置中,實時時鐘是必不可少的部件。目前常用的實時時鐘,很多采用單片機的中斷服務來實現,這種方式一方面需要采用計數器,占用硬件資源,另一方面需要設置中斷、查詢等,同樣耗費單片機的資源,而且某些測控系統可能不允許;有的則使用并行接口的時鐘芯片,如MC146818、
29、DS12887等,它們雖然能滿足單片機系統對實時時鐘的要求,但是這些芯片與單片機接口復雜,占用地址、數據總線多,芯片體積大,占用空間多,給其它設計帶來諸多不便。本設計選取串行接口時鐘芯片DS1302與單片機同步通信構成數字時鐘電路,如圖3.3。其簡單的三線接口能為單片機節(jié)省大量資源,DS1302的后背電源與對后背電源進行涓細電流充電的能力保證電路斷電后仍能保存時間和數據信息等。這些優(yōu)點解決了目前常用的實時時鐘所無法解決的問題。該時鐘電路強大的功能和優(yōu)越的性能,在很多領域的應用中,尤其是某些自動化控制、長時間無人看守的測控系統等對時鐘精確性和可靠性有較高要求的場合,具有很高的使用價值。圖3.3
30、DS1302與單片機接口電路3.2.2 實時時鐘簡介DS1302是美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實時時鐘芯片,它可以對年、月、日、周日、時、分、秒進行計時,且具有閏年補償功能,工作電壓寬達2.55.5V。時鐘可工作在24小時格式或12小時(AM/PM)格式。DS1302與單片機的接口使用同步串行通信,僅用3條線與之相連接??刹捎靡淮蝹魉鸵粋€字節(jié)或突發(fā)方式一次傳送多個字節(jié)的時鐘信號或RAM數據。DS1302部有一個318的用于臨時性存放數據的RAM寄存器。DS1302是DS1202的升級產品,與DS1202兼容,但增加了主電源后背電源雙電源引腳,同時提供了對后背電源進行
31、細電流充電的能力。DS1302的引腳排列,其中Vcc1為后備電源,VCC2為主電源。在主電源關閉的情況下,也能保持時鐘的連續(xù)運行。DS1302由Vcc1或Vcc2兩者中的較大者供電。當Vcc2大于Vcc10.2V時,Vcc2給DS1302供電。當Vcc2小于Vcc1時,DS1302由Vcc1供電。X1和X2是振蕩源,外接32.768kHz晶振。RST是復位/片選線,通過把RST輸入驅動置高電平來啟動所有的數據傳送。RST輸入有兩種功能:首先,RST接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,RST提供終止單字節(jié)或多字節(jié)數據的傳送手段。當RST為高電平時,所有的數據傳送被初始化,允許對
32、DS1302進行操作。如果在傳送過程中RST置為低電平,則會終止此次數據傳送,I/O引腳變?yōu)楦咦钁B(tài)。上電運行時,在Vcc2.0V之前,RST必須保持低電平。只有在SCLK 為低電平時,才能將RST置為高電平。I/O為串行數據輸入輸出端(雙向),后面有詳細說明。SCLK為時鐘輸入端??刂谱止?jié)的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數據寫入到DS1302中。位6如果為0,則表示存取日歷時鐘數據,為1表示存取RAM數據;位5至位1指示操作單元的地址;最低有效位(位0)如為0表示要進行寫操作,為1表示進行讀操作,控制字節(jié)總是從最低位開始輸出。DS1302的復位引腳:通過把RST輸入驅動置
33、高電平來啟動所有的數據傳送.RST輸入有兩種功能:首先,RST接通控制邏輯,允許地址命令序列送入移位寄存器;其次,RST提供了終止單字節(jié)或多字節(jié)數據的傳送手段。當RST為高電平時,所有的數據傳送被初始化,允許對DS1302進行操作。如果在傳送過程中置RST為低電平,則會終止此次數據傳送,并且I/O引腳變?yōu)楦咦钁B(tài)。上電運行時,在Vcc2.5V之前,RST必須保持低電平。只有在SCLK為低電平時,才能將RST置為高電平。在控制指令字輸入后的下一個SCLK時鐘的上升沿時數據被寫入DS1302,數據輸入從低位即位0開始。同樣,在緊跟8位的控制指令字后的下一個SCLK脈沖的下降沿讀出DS1302的數據,
34、讀出數據時從低位0位至高位7。 DS1302共有12個寄存器,其中有7個寄存器與日歷、時鐘相關,存放的數據位為BCD碼形式。其日歷、時間寄存器與其控制字見表3-3。寄存器名命令字取值圍各位容寫操作讀操作76543210秒寄存器 80H81H00-59CH10SECSEC分寄存器82H83H00-59010MINMIN時寄存器84H85H01-12或00-2312/24010HRHR日寄存器86H87H01-28,29,30,310010DATEDATE月寄存器88H89H01-1200010MMONTH周寄存器8AH8BH01-0700000DAY年寄存器8CH8DH00-9910YEARYE
35、AR 表3-3 DS1302的日歷、時鐘寄存器與其控制字此外,DS1302還有年份寄存器、控制寄存器、充電寄存器、時鐘突發(fā)寄存器與與RAM相關的寄存器等。時鐘突發(fā)寄存器可一次性順序讀寫除充電寄存器外的所有寄存器的容。DS1302與RAM相關的寄存器分為兩類,一類是單個RAM單元,共31個,每個單元組態(tài)為一個8位的字節(jié),其命令控制字為C0H-FDH,其中奇數為讀操作,偶數為寫操作;再一類為突發(fā)方式下的RAM寄存器,此方式下可一次性讀寫所有的RAM的31個字節(jié),命令控制字為FEH(寫)、FFH(讀)。3.3 溫度傳感器模塊3.3.1 溫度傳感器模塊電路基于DS18B20多點溫度測量系統以AT89C
36、51為中心器件,以KEIL為系統開發(fā)平臺,用C語言進行程序設計,以PROTEUS作為仿真軟件設計而成的。DS18B20是智能溫度傳感器,它的輸入/輸出采用數字量,以單總線技術,接收主機發(fā)送的命令,根據DS18B20部的協議進行相應的處理,將轉換的溫度以串口發(fā)送給主機。主機按照通信協議用一個IO口模擬DS18B20的時序,發(fā)送命令(初始化命令、ROM命令、功能命令)給DS18B20,并讀取溫度值,在部進行相應的數值處理,用圖形液晶模塊顯示各點的溫度。在系統啟動之時,可以通過44鍵盤設置各點溫度的上限值,當某點溫度超過設置值時,報警器開始報警,從而實現了對各點溫度的實時監(jiān)控。每個DS18B20有自
37、己的序列號,因此本系統可以在一根總線上掛接了4個DS18B20,通過CRC校驗,對各個DS18B20的ROM進行尋址,地址符合的DS18B20才作出響應,接收主機的命令,向主機發(fā)送轉換的溫度。采用這種DS18B20尋址技術,使系統硬件電路更加簡單,圖3.4所示。圖3.4 系統硬件電路3.3.2 溫度傳感器簡介DS18B20數字溫度計是DALLAS公司生產的1Wire,即單總線器件,具有線路簡單,體積小的特點。因此用它來組成一個測溫系統,具有線路簡單,在一根通信線,可以掛很多這樣的數字溫度計,十分方便。DS18B20產品的特點:只要求一個端口即可實現通信。在DS18B20中的每個器件上都有獨一無
38、二的序列號。實際應用中不需要外部任何元器件即可實現測溫。測量溫度圍在55.C到125.C之間。數字溫度計的分辨率用戶可以從9位到12位選擇。部有溫度上、下限告警設置。其引腳功能描述見表3-4。序號名稱引腳功能描述1GND地信號2DQ數字輸入輸出引腳,開漏單總線接口引腳,當使用寄生電源時,可向電源提供電源3VDD可選擇的VDD引腳,當工作于寄生電源時,該引腳必須接地 表3-4 DS18B20詳細引腳功能描述64位ROM存儲器件獨一無二的序列號。暫存器包含兩字節(jié)(0和1字節(jié))的溫度寄存器,用于存儲溫度傳感器的數字輸出。暫存器還提供一字節(jié)的上線警報觸發(fā)(TH)和下線警報觸發(fā)(TL)寄存器(2和3字節(jié)
39、),和一字節(jié)的配置寄存器(4字節(jié)),使用者可以通過配置寄存器來設置溫度轉換的精度。暫存器的5、6和7字節(jié)器件部保留使用。第八字節(jié)含有循環(huán)冗余碼(CRC )。DS18B20加電后,處在空閑狀態(tài)。要啟動溫度測量和模擬到數字的轉換,處理器須向其發(fā)出Convert T 44h 命令;轉換完后,DS18B20回到空閑狀態(tài)。溫度數據是以帶符號位的16-bit補碼存儲在溫度寄存器中的。符號位說明溫度是正值還是負值,正值時S=0,負值時S=1。訪問DS18B20必須嚴格遵守這一命令序列,如果丟失任何一步或序列混亂,DS18B20都不會響應主機(除了Search ROM 和Alarm Search這兩個命令,在
40、這兩個命令后,主機都必須返回到第一步)。a初始化:DS18B20所有的數據交換都由一個初始化序列開始。由主機發(fā)出的復位脈沖和跟在其后的由DS18B20發(fā)出的應答脈沖構成。當DS18B20發(fā)出響應主機的應答脈沖時,即向主機表明它已處在總線上并且準備工作。b. ROM命令:ROM命令通過每個器件64-bit的ROM碼,使主機指定某一特定器件(如果有多個器件掛在總線上)與之進行通信。DS18B20的ROM如表3-5所示,每個ROM命令都是8 bit長。指令協議功能讀ROM33H讀DS18B20中的編碼(即64位地址)符合ROM55H發(fā)出此命令后,接著發(fā)出64位ROM編碼,訪問單總線上與該編碼相對應的
41、DS18B20,使之作出響應,為下一步對該DS18B20的讀寫作準備搜索ROM0F0H用于確定掛接在同一總線上DS18B20的個數和識別64位ROM地址,為操作各器件作好準備跳過ROM0CCH忽略64位ROM地址,直接向DS18B20V 溫度轉換命令,適用于單個DS18B20工作告警搜索命令0ECH執(zhí)行后,只有溫度超過廟宇值上限或下限的片子才做出響應溫度轉換44H啟動DS18B20進行溫度轉換,轉換時間最長為500ms(典型為200ms),結果豐入部9字節(jié)RAM中讀暫存器BEH讀部RAM中9字節(jié)的容寫暫存器4EH發(fā)出向部RAM的第3、4字節(jié)寫上、下溫度數據命令,緊該溫度命令之后,傳達兩字節(jié)的數
42、據復制暫存器48H將RAM中第3、4字容復制到E2PROM中重調E2PROM0B8H將E2PROM中容恢復到RAM中的第3、4字節(jié)讀供電方式0B4H讀DS18B20的供電模式,寄生供電時DS18B20發(fā)送“0”,外部供電時DS18B20發(fā)送“1”表3-5 ROM命令3.4 液晶顯示模塊3.4.1 液晶顯示模塊電路液晶顯示模塊以其微功耗、體積小、顯示容豐富、模塊化、接口電路簡單等諸多優(yōu)點得到廣泛應用。液晶顯示模塊分字符型和點陣型兩種,前者只能顯示常用的字符,點陣型液晶顯示模塊除顯示字符外還能顯示各種圖形和漢字。如圖3.5所示,為液晶顯示屏與單片機的連接電路圖。3.5 液晶顯示屏與單片機的連接電路
43、3.4.2 液晶顯示屏簡介12864是一種具有4位/8位并行、2線或3線串行多種接口方式,部含有國標一級、二級簡體中文字庫的點陣圖形液晶顯示模塊;其顯示分辨率為12864, 置8192個16*16點漢字,和128個16*8點ASCII字符集。該模塊靈活的接口方式和簡單、方便的操作指令,可構成全中文人機交互圖形界面??梢燥@示84行1616點陣的漢字。可完成圖形顯示。電壓低功耗是其又一顯著特點。由該模塊構成的液晶顯示方案與同類型的圖形點陣液晶顯示模塊相比,不論硬件電路結構或顯示程序都要簡潔得多,且該模塊的價格也略低于一樣點陣的圖形液晶模塊。圖3.6 LCD結構尺寸基本特性:低電源電壓(VDD:+3
44、.0-+5.5V)顯示分辨率:12864點置漢字字庫,提供8192個1616點陣漢字(簡繁體可選)置 128個168點陣字符2MHZ時鐘頻率顯示方式:STN、半透、正顯驅動方式:1/32DUTY,1/5BIAS視角方向:6點背光方式:側部高亮白色LED,功耗僅為普通LED的1/51/10通訊方式:串行、并口可選置DC-DC轉換電路,無需外加負壓無需片選信號,簡化軟件設計工作溫度: 0 - +55 ,存儲溫度: -20 - +60 控制器接口信號說明:如表3-6,3-7RSR/W功能說明LLMPU寫指令到指令暫存器(IR)LH讀出忙標志(BF)與地址記數器(AC)的狀態(tài)HLMPU寫入數據到數據暫
45、存器(DR)HHMPU從數據暫存器(DR)中讀出數據表3-6 RS和R/W的配合選擇決定控制界面的4種模式E狀態(tài)執(zhí)行動作結果高低I/O緩沖DR配合/W進行寫數據或指令高DRI/O緩沖配合R進行讀數據或指令低/低高無動作 表3-7 E信號忙標志:BF。BF標志提供部工作情況.BF=1表示模塊在進行部操作,此時模塊不接受外部指令和數據.BF=0時,模塊為準備狀態(tài),隨時可接受外部指令和數據。利用STATUS RD 指令,可以將BF讀到DB7總線,從而檢驗模塊之工作狀態(tài)。字型產生ROM(CGROM):字型產生ROM(CGROM)提供8192個此觸發(fā)器是用于模塊屏幕顯示開和關的控制。DFF=1為開顯示(
46、DISPLAY ON),DDRAM 的容就顯示在屏幕上,DFF=0為關顯示(DISPLAY OFF)。DFF 的狀態(tài)是指令DISPLAY ON/OFF和RST信號控制的。顯示數據RAM(DDRAM):模塊部顯示數據RAM提供642個位元組的空間,最多可控制4行16字(64個字)的中文字型顯示,當寫入顯示數據RAM時,可分別顯示CGROM與CGRAM的字型;此模塊可顯示三種字型,分別是半角英數字型(16*8)、CGRAM字型與CGROM的中文字型,三種字型的選擇,由在DDRAM中寫入的編碼選擇,在0000H0006H的編碼中(其代碼分別是0000、0002、0004、0006共4個)將選擇CGR
47、AM的自定義字型,02H7FH的編碼中將選擇半角英數字的字型,至于A1以上的編碼將自動的結合下一個位元組,組成兩個位元組的編碼形成中文字型的編碼BIG5(A140D75F),GB(A1A0-F7FFH)。 字型產生RAM(CGRAM):字型產生RAM提供圖象定義(造字)功能, 可以提供四組1616點的自定義圖象空間,使用者可以將部字型沒有提供的圖象字型自行定義到CGRAM中,便可和CGROM中的定義一樣地通過DDRAM顯示在屏幕中。地址計數器AC:地址計數器是用來貯存DDRAM/CGRAM之一的地址,它可由設定指令暫存器來改變,之后只要讀取或是寫入DDRAM/CGRAM的值時,地址計數器的值就
48、會自動加一,當RS為“0”時而R/W為“1”時,地址計數器的值會被讀取到DB6DB0中。光標/閃爍控制電路:此模塊提供硬體光標與閃爍控制電路,由地址計數器的值來指定DDRAM中的光標或閃爍位置。3.5 鍵盤輸入模塊一般具有人機對話的單片機系統少不了會有鍵盤。本設計采用三個按鍵,最佳的接口方案是獨立式接法,即每一個I/O口上只接一個按鍵,按鍵的另一端接地。獨立式鍵盤的實現方法是利用單片機I/O口讀取口的電平高低來判斷是否有鍵按下。我們將按鍵的一端接地,另一端接一個I/O口,程序開始時將此I/O口置于高電平,平時無按鍵按下時I/O口保護高電平。當有鍵按下時,此I/O口與地短路迫使I/O口為低電平。
49、按鍵釋放后,與單片機連接的上拉電阻使I/O口仍然保持高電平。本設計所要做的就是在程序中查詢此I/O口的電平狀態(tài)就可以了解是否有按鍵動作了。值得注意的是,本設計在用單片機對鍵盤處理的時候涉與到了一個重要的過程,那就是鍵盤的去抖動。這里說的抖動是機械的抖動,是當鍵盤在未按到按下的臨界區(qū)產生的電平不穩(wěn)定正?,F象,并不是我們在按鍵時通過注意可以避免的。這種抖動一般在10200毫秒之間,這種不穩(wěn)定電平的抖動時間對于人來說太快了,而對于時鐘是微秒級的單片機而言則是漫長的。為了提高系統的穩(wěn)定性,必須去除或避開它。此處我采用軟件去抖動,實現方法是先查詢按鍵當有低電平出現時立即延時10200毫秒以避開抖動,延時
50、結束再讀一次I/O口的值。按鍵分工,從左至右依次為1、2、3號按鍵,一號鍵模式鍵,二號三號鍵為加減鍵。圖3.7 鍵盤接口電路4 設計語言與軟件介紹4.1 匯編語言介紹匯編語言是一種功能很強的HYPERLINK :/baike.baidu /view/128511.htm程序設計語言,也是利用計算機所有硬件特性并能直接控制硬件的語言。匯編語言”作為一門語言,對應于HYPERLINK :/baike.baidu /view/14900.htm高級語言的HYPERLINK :/baike.baidu /view/487018.htm編譯器,需要一個“HYPERLINK :/baike.baidu /
51、view/1315652.htm匯編器”來把匯編語言原文件匯編成機器可執(zhí)行的代碼。4.2wave6000軟件介紹這個軟件是偉福公司的HYPERLINK :/baike.baidu /view/1012.htm單片機開發(fā)軟件,一般就是用在C51單片機。不需要購買HYPERLINK :/baike.baidu /view/557623.htm仿真器,使用軟件模擬器就可以了,使用很方便的。 也支持KEILC,但最好不要在WAVE使用C,如果想用C編寫,還是用KEIL C方便。WAVE6000編譯軟件,采用中文界面。用戶源程序大小不受限制,有豐富的窗口顯示方式,能夠多方位、動態(tài)地展示程序的執(zhí)行過程。其
52、項目管理功能強大,可使HYPERLINK :/baike.baidu /view/1012.htm單片機程序化大為小,化繁為簡,便于管理。另外,其書簽、斷點管理功能以與外設管理功能等為51單片機的仿真帶來極大的便利。5 系統軟件設計5.1 概述單片機開發(fā)中除必要的硬件外,同樣離不開軟件,本系統的軟件編程設計是在Keil軟件環(huán)境中完成的。我們寫的C語言、匯編語言源程序要變?yōu)镃PU可以執(zhí)行的機器碼有兩種方法,一種是手工匯編,另一種是機器匯編,目前已極少使用手工匯編的方法了。機器匯編是通過匯編軟件將源程序變?yōu)闄C器碼,用于MCS-51單片機的匯編軟件有早期的A51,隨著單片機開發(fā)技術的不斷發(fā)展,從普遍
53、使用匯編語言到逐漸使用高級語言開發(fā),單片機的開發(fā)軟件也在不斷發(fā)展,Keil軟件是目前最流行開發(fā)51系列單片機的軟件,這從近年來各仿真機廠商紛紛宣布全面支持Keil即可看出。Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調試器等在的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(uVision)將這些部份組合在一起。掌握這一軟件的使用對于使用51系列單片機的愛好者來說是十分必要的,如果使用C語言編程,那么Keil幾乎就是不二之選。即使不使用C語言而僅用匯編語言編程,其方便易用的集成環(huán)境、強大的軟件仿真調試工具也會令人事半功倍。Keil C51是美國Keil Software公司出品的
54、51系列兼容單片機C語言軟件開發(fā)系統,與匯編相比,C語言在功能上、結構性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學易用。用過匯編語言后再使用C來開發(fā),體會更加深刻。 Keil C51軟件提供豐富的庫函數和功能強大的集成開發(fā)調試工具,全Windows界面。另外重要的一點,只要看一下編譯后生成的匯編代碼,就能體會到Keil C51生成的目標代碼效率非常之高,多數語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能體現高級語言的優(yōu)勢。5.2 系統程序設計模塊 本課題設計的太陽能熱水器控制系統的軟件程序設計主要由(1)初始化程序,(2)掃描按鍵程序,(3)按鍵處理子程序,(4)讀取水位信息、水箱溫
55、度和時間程序,(6)調用顯示子程序,六個部分組成。系統總體流程圖如圖5.1所示。開始初始化掃描鍵盤,是否有按鍵N調用鍵盤處理子程序Y讀取水位信息和水箱溫度調用顯示子程序顯示水溫時間圖5.1系統總體流程圖5.3 初始化程序 太陽能熱水器控制系統在接通電源后,首先要對系統進行初始化。初始化的過程包括啟動DS1302,啟動12864,對12864進行清屏。初始化流程圖如下:初始化開始啟動DS1302啟動12864清屏圖5.2系統初始化流程圖 void start(void) /初始化函數 unsigned char i;set_time(0 x8e,0 x00); /取消寫保護set_time(0
56、x80,0 x00); /啟動時鐘set_time(0 x84,0 x00); /設置24小時模式set_time(0 x90,0 xa5); /時鐘時鐘充電模式set_time(0 x8e,0 x80); /啟動寫保護RES1=0; RES1=1; dis_write_cmd(0 xaf); /啟動12864 clean(); /清屏5.4 按鍵檢測與處理程序在太陽能熱水器初始化完成之后,系統便會進入鍵盤掃描狀態(tài),此狀態(tài)下,主控芯片AT89S52會不斷掃描是否有鍵按下,即等待用戶輸入。在檢測到有鍵按下后,根據按下的次數(按一下設置“分”,按兩下設置“時”,三下設置“星期”,以此類推),在運用
57、“加”“減”分別設置。按鍵檢測與處理流程圖如圖所示:(以按下“一下”為例)開始掃描是否有鍵按下否是一下(設置分)是否為“+”鍵是“分”加1否“分”減1圖5.3 按鍵檢測與處理程序流程圖按鍵檢測與處理程序清單如下:while(1) /總循環(huán) while(state_button=0) /狀態(tài)0循環(huán) /無鍵按下的處理程序while(state_button!=0) /狀態(tài)非0循環(huán) set_time(0 x80,0 x80); /啟動時鐘 set_time(0 x8e,0 x00); /啟動保護位if(state_button=1) /狀態(tài)1設置分 if(time_jia=1) /判斷按鈕加是否按下
58、過 minute0+; /分操作 下面所有的加減同理 if(minute09) / minute0最大為9,minute1最大為5 minute1+; minute0=0; if(minute15) minute1=0; time_jia=0; /按鍵清零 表示已經執(zhí)行完 if(time_jian=1) minute0-; if(minute00) minute1-; minute0=9; if(minute10;i-) DQ=0; /總線拉低DQ=date&0 x01; /發(fā)送最低位字節(jié)到DS18B20delay(7); /延遲30微秒左右,等DS18B20采樣DQ=1; /將總線拉高dat
59、e=1; /寫入數據右移一位 signed int wendu_read(void) /讀溫度字節(jié)程序 unsigned char i=0,t=0,pn=0; /t為暫存變量 for(i=8;i0;i-) DQ=0; /總線為低電平準備讀操作,然后在1微秒釋放總線,以便讓DS18B20將數據反饋 t=1; /將變量右移一位,剛好可以抵消讀所需的延遲時間DQ=1; /總線拉為高電平后,執(zhí)行下面代碼if(DQ=1) /如果總線反饋為高電平t|=0 x80; /則將變量最高位置1 /如果反饋為0,則變量最高位為0 delay(4); /延遲一頓時間,然后開始下次循環(huán) return(t); /反饋讀取
60、的字節(jié)/*DS1302*/void time_write(unsigned char time_wd) /寫溫度函數unsigned char i,j; /設置循環(huán)變量for(i=0;i1; /待發(fā)送的數據右移1位SCLK=1; /拉高時鐘信號SCLK=0; /寫完一個字節(jié),拉低時鐘信號unsigned char time_read() /讀時間函數unsigned char time_rd; /設置返回變量unsigned char i; /設置循環(huán)變量IO=1; /設置數據口方向為輸入for(i=0;i1; /接收寄存器右移1位if(IO=1) /判斷信號是1還是0 time_rd=tim
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025飯店轉包合同范文
- 2025年度養(yǎng)老機構寵物養(yǎng)護服務合同示范文本3篇
- 二零二五年度競業(yè)禁止勞動合同在文化產業(yè)的關鍵作用3篇
- 二零二五年度公租房合同簽訂及補貼發(fā)放協議3篇
- 二零二五年度學校食堂兼職校醫(yī)食品安全合同2篇
- 二零二五年度素食餐飲技術加盟經營合同2篇
- 二零二五年度土方運輸車輛智能化改造與升級合同3篇
- 二零二五年度新能源電動汽車租賃合同2篇
- 2025年度年度租賃車輛保險責任協議3篇
- 2025年度極限運動賽事委托承辦授權協議3篇
- 2024中國近海生態(tài)分區(qū)
- 企業(yè)節(jié)能獎懲管理制度(3篇)
- 統編版2024-2025學年三年級上冊語文期末情景試卷 (無答案)
- 2024年時事政治試題【有答案】
- 造價咨詢部組織架構及基本工作流程
- 新媒體代運營協議合同書
- 2024年1月國家開放大學法律事務??啤睹穹▽W(1)》期末紙質考試試題及答案
- 2025版國家開放大學法律事務??啤斗勺稍兣c調解》期末紙質考試案例分析題題庫
- 安防監(jiān)控智能化售后服務方案
- 河南省洛陽市2023-2024學年高一上學期期末考試化學試題(含答案)
- 手術室年終述職
評論
0/150
提交評論