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