基于單片機的恒溫控制系統(tǒng)設(shè)計與模擬畢業(yè)論文_第1頁
基于單片機的恒溫控制系統(tǒng)設(shè)計與模擬畢業(yè)論文_第2頁
基于單片機的恒溫控制系統(tǒng)設(shè)計與模擬畢業(yè)論文_第3頁
基于單片機的恒溫控制系統(tǒng)設(shè)計與模擬畢業(yè)論文_第4頁
基于單片機的恒溫控制系統(tǒng)設(shè)計與模擬畢業(yè)論文_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 畢 業(yè) 設(shè) 計(論 文)題目 基于單片機的恒溫調(diào)控及proteus仿真摘 要溫度的測量和控制對人類日常生活、工業(yè)生產(chǎn)、氣象預(yù)報、物資倉儲等都起著極其重要的作用。在許多場合,及時準確獲得目標的溫度是十分重要的,近年來,溫度測控領(lǐng)域發(fā)展迅速,并且隨著數(shù)字技術(shù)的發(fā)展,溫度的測控芯片也相應(yīng)的登上歷史的舞臺,能夠在工業(yè)、農(nóng)業(yè)等各領(lǐng)域中廣泛使用。 單片機具有體積小控制精度高的且價格低等諸多特點,將單片機與溫度傳感器相結(jié)合,構(gòu)成的溫度控制電路具有良好的測溫溫控功能。8952單片機的溫度控制系統(tǒng)由AT89C52單片機、七段溫度顯示數(shù)碼管、溫度傳感器DS18B20、工作狀態(tài)LED燈等模塊組成。恒溫系統(tǒng)除有溫度

2、檢測功能外,還具有溫度報警與外部控制功能,調(diào)節(jié)溫度手動設(shè)置、可數(shù)顯各項系統(tǒng)參數(shù)、上限溫度報警等相關(guān)功能。理論證明該系統(tǒng)能夠簡單、經(jīng)濟,有效地提高系統(tǒng)的工作效率。本設(shè)計主要做了如下幾方面的工作:一是確定系統(tǒng)溫度控制的總體設(shè)計,包括實時溫度的采集系統(tǒng)應(yīng)擁有的各項功能,二是進行外部電路設(shè)計、顯示電路等的設(shè)計和基本功能要求。三是進行軟件系統(tǒng)的設(shè)計,對于本系統(tǒng),本人采用單片機匯編語言編寫,總體上完成了相應(yīng)要求。關(guān)鍵詞:溫度控制,溫度檢測,AT89C52,溫度顯示,上限報警AbstractTraffic control system is a modern society with logistics,

3、travel etc of traffic development a unique set of public management system. To ensure the effective safety traffic, except for a series of traffic rules, still must through certain technological means to achieve. Based on analysis of traffic control, based on real-time detection sensor, adjust the i

4、mplementation technology of intelligent control, real-time monitoring, sensor adjust vehicles time algorithm and single-chip microcomputer control function is proposed, which combines the traffic control system based on single chip design scheme.The 8051 microcontroller control system consists of th

5、e traffic lights display, 8051 monolithic integrated circuits, and LED the countdown, traffic violation detection, emergency adjustment, manual mode, time as modules. In addition to the basic traffic function outside, still have time to manually set, can pass the countdown, car that forced through t

6、raffic, inspection and adjustment, transportation and processing abnormal discriminant functions. Theory shows that the system can simple, economic and effective relieves traffic, improve the crossroads capacity.This design mainly do the following aspects: one is the work of the traffic control syst

7、em design, including the crossroads, specific design and system should be restricted with each function, two is that the sensor, the hardware circuit design of the circuit and the basic function and requirement. Three is software system design, this system for I MCU assembly language, overall finish

8、ed writing software.Key Words: traffic control, sensing detection, display, and countdown AT89C52 abnormal discrimination and processing.目 錄摘 要IAbstractII目 錄III1 緒 論51.1單片機溫度控制系統(tǒng)的選題背景51.2單片機交通控制系統(tǒng)選題的現(xiàn)實意義51.3單片機交通控制系統(tǒng)主要研究的內(nèi)容82 單片機恒溫控制系統(tǒng)總體設(shè)計92.1單片機溫度控制系統(tǒng)的方案設(shè)計92.2單片機溫度控制系統(tǒng)的功能要求102.3單片機恒溫控制系統(tǒng)的基本構(gòu)成及原理123

9、 系統(tǒng)硬件電路的設(shè)計133.1系統(tǒng)硬件總電路構(gòu)成及原理13系統(tǒng)硬件電路構(gòu)成13系統(tǒng)工作原理133.2單片機的選擇15單片機的概述153.2.2 AT89C52芯片的主要性能153.2.3 AT89C52芯片的內(nèi)部結(jié)構(gòu)框圖153.2.4 AT89C52芯片最小系統(tǒng)163.3其它硬件介紹及連接17溫度檢測方案17七段數(shù)碼管顯示方案183.3.3其它器件214 系統(tǒng)軟件程序的設(shè)計234.1程序主體設(shè)計流程234.2理論基礎(chǔ)知識244.3子程序模塊設(shè)計264.4源程序314.5系統(tǒng)軟件調(diào)試36結(jié) 論39參考文獻40致 謝411 緒 論1.1單片機交通控制系統(tǒng)的選題背景溫度的測量和控制對人類日常生活、工

10、業(yè)生產(chǎn)、氣象預(yù)報、物資倉儲等都起著極其重要的作用。在許多場合,及時準確獲得目標的溫度是十分重要的,近年來,溫度測控領(lǐng)域發(fā)展迅速,并且隨著數(shù)字技術(shù)的發(fā)展,溫度的測控芯片也相應(yīng)的登上歷史的舞臺,能夠在工業(yè)、農(nóng)業(yè)等各領(lǐng)域中廣泛使用。溫度控制對于社會的工業(yè)經(jīng)濟和人們的生活生產(chǎn)中有著十分重要的意義。隨著單片機和傳感技術(shù)的迅速發(fā)展,自動檢測領(lǐng)域發(fā)生了巨大變化,溫度自動監(jiān)測控制方面的研究有了明顯的進展,并且必將以其優(yōu)異的性能價格比走進千家萬戶。1.2單片機交通控制系統(tǒng)選題的現(xiàn)實意義隨著制造工藝的快速增長,以及人們對于產(chǎn)品的完美追求,工業(yè)生產(chǎn)對于外部因素愈加重視,溫度控制就應(yīng)運而生,在人類的設(shè)計生產(chǎn)中,外部環(huán)

11、境因素被人們所重視,而其中溫度因素扮演著極其重要的角色。近年來,溫度測控領(lǐng)域發(fā)展迅速,冰潔隨著數(shù)字技術(shù)的發(fā)展,溫度的測控芯片業(yè)相應(yīng)的登上了歷史的舞臺,在工業(yè)農(nóng)業(yè)等個領(lǐng)域中廣泛使用。1.3單片機恒溫控制系統(tǒng)主要研究的內(nèi)容基于整個恒溫控制系統(tǒng)的發(fā)展情況,本設(shè)計主要進行如下方面的研究:用智能,集成,且功能強大的單片機芯片為控制中心,設(shè)計出一套控制系統(tǒng),以指揮外部電路進行相應(yīng)的溫度調(diào)節(jié)。本設(shè)計主要做了如下幾方面的工作:一是確定系統(tǒng)控制的總體設(shè)計,包括,環(huán)境溫度的實時掃描方案設(shè)計以及系統(tǒng)應(yīng)擁有的各項功能,在這里,本設(shè)計除了有溫度掃描與調(diào)節(jié)裝置能實現(xiàn)基本的溫度自動調(diào)節(jié)功能,還增加了上限溫度報警功能,基于實

12、際情況,設(shè)計了雙溫度傳感器同時采集信號求取平均值以保證采集信號的準確性,同時對雙通道進行監(jiān)測報警處理和鍵盤可設(shè)置等強大功能。 二是進行智能傳感器的硬件電路,顯示電路等的設(shè)計對各器件的選擇及連接,大體分配各個器件及模塊的基本功能要求。三是進行軟件系統(tǒng)的設(shè)計,對于本系統(tǒng),本人采用單片機匯編語言編寫,對單片機內(nèi)部結(jié)構(gòu)和工作情況做了充足的研究,了解中斷以及延時原理,總體上完成了軟件的編寫。2 單片機交通控制系統(tǒng)總體設(shè)計2.1單片機恒溫控制系統(tǒng)的方案設(shè)計設(shè)置兩個溫度傳感器,分別同時采集環(huán)境溫度,求取平均值數(shù)顯在LED數(shù)碼管上,外部通過按鈕調(diào)節(jié)設(shè)置時間并與所求取的平均值對比以確定外部電路工作狀態(tài),另一方面

13、系統(tǒng)設(shè)置上限溫度,如果環(huán)境溫度超過40度,系統(tǒng)停止一切工作,狀態(tài)處綠燈閃爍,當外部溫度恢復(fù)正常后按下按鍵區(qū)的復(fù)位鍵系統(tǒng)重新開始正常工作。硬件上設(shè)置狀態(tài)燈使外部電路工作情況一目了然,具體外部電路如圖2.1所示:溫度傳感器DS18B20A T 8 9 C 5 2上限溫度數(shù)顯設(shè)定溫度數(shù)顯環(huán)境溫度數(shù)顯外部電路驅(qū)動工作狀態(tài)燈顯示外部按鈕調(diào)節(jié)圖2.1 通過具體的運行狀態(tài)演示分析我們可以把整個過程歸納如下:分別取兩處環(huán)境溫度將平均值顯示在七段數(shù)碼管上。將設(shè)定溫度和上限溫度40度顯示在七段數(shù)碼管上。系統(tǒng)通過軟件實現(xiàn)設(shè)定溫度與環(huán)境溫度想比較以確定外部電路工作狀態(tài)。外部電路的工作狀態(tài)我們用以下圖表表示:環(huán)境溫度與

14、設(shè)定溫度對比外電路工作情況狀態(tài)指示燈大于驅(qū)動加熱繼電器紅燈 小于驅(qū)動降溫繼電器 藍燈 等于等待燈點亮黃燈 當環(huán)境溫度大于40度停止工作 綠燈閃爍表2.1 運行狀態(tài)及指示燈狀態(tài)2.2單片機恒溫控制系統(tǒng)的功能要求本設(shè)計能模擬基本的恒溫控制系統(tǒng),用繼電器代表外部調(diào)溫電路的加熱和降溫,還能進行設(shè)定溫度顯示,環(huán)境溫度檢測及調(diào)整等功能。(1)設(shè)定溫度顯示系統(tǒng)默認初始設(shè)定溫度為25度,用戶可以通過按鈕區(qū)的INC和DEC按鈕自行調(diào)節(jié)設(shè)定溫度值,以適應(yīng)用戶的不同需求。(2)環(huán)境檢測及調(diào)整 電路設(shè)計兩個溫度傳感器同時檢測環(huán)境溫度通過求取平均以確定環(huán)境溫度,這樣可以減少環(huán)境因素對系統(tǒng)精確性的影響。(3)上限溫度設(shè)置

15、 除系統(tǒng)自動按照設(shè)定環(huán)境溫度自動控制調(diào)整外,系統(tǒng)通過軟件寫入上限溫度,以防止溫度因素對硬件電路產(chǎn)生破壞,避免自動故障和意外發(fā)生,當環(huán)境溫度恢復(fù)正常時可通過復(fù)位按鈕恢復(fù)系統(tǒng)的工作。(4)緊急處理 環(huán)境溫度過高的現(xiàn)象在所難免,但是當因外部因素引起的系統(tǒng)停工后畢并須要有相應(yīng)的重啟動功能,在這種情況下設(shè)置了復(fù)位按鈕用于系統(tǒng)停工后的重啟動。3 系統(tǒng)硬件電路的設(shè)計3.1系統(tǒng)硬件總電路構(gòu)成及原理實現(xiàn)本設(shè)計要求的具體功能,可以選用AT89C52單片機及外圍器件構(gòu)成最小控制系統(tǒng),4個發(fā)光二極管分成1組紅綠黃綠四色燈構(gòu)成狀態(tài)燈指示模塊,6七段數(shù)碼管構(gòu)成3組溫度顯示模塊,溫度傳感器DS18B20溫度傳感器采集溫度數(shù)

16、據(jù),若干按鍵組成溫度設(shè)置和復(fù)位重啟動按鈕,以及用1個蜂鳴器進行報警。系統(tǒng)硬件電路構(gòu)成本系統(tǒng)以單片機為核心,組成一個集溫度采集、處理、自動控制為一身的閉環(huán)控制系統(tǒng)。系統(tǒng)硬件電路由溫度檢測檢測電路,單片機,狀態(tài)燈,LED顯示,按鍵,蜂鳴器組成。其具體的硬件電路總圖如圖3.1所示。其中P0口,用于送顯六片LED數(shù)碼管,P1.0和p1.1實現(xiàn)接通DS18B20溫度傳感器實現(xiàn)外部數(shù)據(jù)的串行采集,P1.2用于控制綠色發(fā)光二極管通過軟件使其閃爍報警,XTAL1和XTAL2接入晶振時鐘電路,設(shè)計采用12MHZ的晶振,一個匯編指令周期為1us,便于對系統(tǒng)運行時間評估, P3.2即INT1溫度加一INC按鈕,P3

17、.3即INT1溫度減一DEC按鈕,系統(tǒng)采用中斷方式相應(yīng)外部設(shè)定溫度調(diào)節(jié),相比于鍵盤掃描的方式改變設(shè)定溫度,中斷方式具有受程序掃描周期影響小的特點,P1.5和P1.6分別接通兩個繼電器以實現(xiàn)外部溫控電路的驅(qū)動,P1.7連接等待燈,表示實時溫度與設(shè)定溫度一致,P3.0、P3.1對環(huán)境溫度顯示的兩個數(shù)碼管進行片選,P3.4、P3.5對上限溫度顯示的兩個數(shù)碼管進行片選P3.6、P3.7對設(shè)定溫度顯示的兩個數(shù)碼管進行片選。因為系統(tǒng)程序未超過4KB,所以為添加外部ROM,故將EA位電平拉高。圖3.1 系統(tǒng)工作原理系統(tǒng)上電之后,系統(tǒng)默認設(shè)定溫度為25攝氏度,上限溫度為40攝氏度,外部信號采集后,立即求取平均

18、值,系統(tǒng)自動判斷環(huán)境溫度值,并驅(qū)動繼電器工作,并將工作情況反應(yīng)在工作狀態(tài)燈處。,設(shè)定溫度通過外部按鈕區(qū)的INC和DEC按鈕實現(xiàn)加一減一,此處通過軟件延遲方式去抖動,延時時間為200ms可以在一定程度上去除按鈕的抖動。接下來,系統(tǒng)顯示狀態(tài)燈及LED數(shù)碼管,將狀態(tài)碼值送至P1.5、P1.6、P1.7口,并將狀態(tài)燈與外部驅(qū)動電路連接,以實現(xiàn)外部電路與狀態(tài)顯示的同步化,而溫度顯示通過數(shù)碼管的動態(tài)顯示實現(xiàn)6個數(shù)碼管顯示以1.2秒的周期不斷刷新顯示。但溫度高于40度時系統(tǒng)停工,工作燈綠燈閃爍,當外部溫度恢復(fù)正常后可以通過START/RES按鈕實現(xiàn)系統(tǒng)的重啟動。當然,還要開啟兩個外部中斷,其一為設(shè)定溫度的加

19、一,一旦信號觸發(fā),中斷開始,進入中斷服務(wù)子程序,設(shè)定溫度由系統(tǒng)默認溫度25度實現(xiàn)加一功能,200ms后系統(tǒng)中斷返回,并于下一周期數(shù)顯在數(shù)碼管上。其二為設(shè)定溫度的減一,一旦信號觸發(fā)進入相應(yīng)的中斷子程序,設(shè)定溫度由系統(tǒng)默認溫度25度實現(xiàn)減一功能,200ms后系統(tǒng)中斷返回,并于下一周期數(shù)顯在數(shù)碼管上,若為自動模式,則須將檢測到的車流量數(shù)據(jù)處理一次,判斷兩個方向的交通輕重緩急狀況,再調(diào)整下次狀態(tài)循環(huán)的紅綠燈時間,以達到自動控制的目的。3.2單片機的選擇單片機的概述單片微型計算機簡稱單片機,又稱微控制器,嵌入式微控制器等,屬于第四代電子計算機。它把中央處理器、存儲器、輸入/輸出接口電路以及定時器/計數(shù)器

20、集成在一塊芯片上,從而具有體積小、功耗低、價格低廉、抗干擾能力強且可靠性高等特點,因此,適合應(yīng)用于工業(yè)過程控制、智能儀器儀表和測控系統(tǒng)的前端裝置。正是由于這一原因,國際上逐漸采用微控制器(MCU)代替單片微型計算機(SCM)這一名稱?!拔⒖刂破鳌备芊从硢纹瑱C的本質(zhì),但是由于單片機這個名稱已經(jīng)為國內(nèi)大多數(shù)人所接受,所以仍沿用“單片機”這一名稱。單片機的主要特點有:1)具有優(yōu)異的性能價格比。2)集成度高、體積小、可靠性高。3)控制功能強。4)低電壓,低功耗。3.2.2 AT89C52芯片的主要性能芯片AT89C52是ATMEL公司生產(chǎn)的帶2K字節(jié)快閃存儲器的8位單片機。它具有如下的一些特性:指令

21、和89C51產(chǎn)品兼容 內(nèi)含2K字節(jié)可重復(fù)編程快閃存儲器耐久性1,000寫/擦除周期 2.7V6V的工作電壓范圍全靜態(tài)操作0Hz24MHz 二級程序存儲器加鎖內(nèi)含128*8位內(nèi)部RAM 15根可編程I/0引線2個16位的計數(shù)器/定時器 6個中斷源帶有可編程串行通訊口 可直接驅(qū)動LED輸出片內(nèi)模擬電壓比較器 低功耗空載和掉電方式另外,該單片機還具有體積小,價格低等特點。3.2.3 AT89C52芯片的內(nèi)部結(jié)構(gòu)框圖AT89C52是一帶有2K字節(jié)快閃可編程可擦除存儲體(EEPROM)的低電壓、高性能8位CMOS微型計算機。它采用ATMEL的高密非易失存儲技術(shù)制造并和工業(yè)標準MCS51指令集和引腳結(jié)構(gòu)兼

22、容。通過在單塊芯片上組合通用的CPL1和快閃存儲器,ATMEL公司生產(chǎn)的AT89C52是一強勁的微型計算機,它對許多嵌入式控制的應(yīng)用,提供了一種高度靈活和成本低的解決辦法。圖3.2為AT89C52的內(nèi)部結(jié)構(gòu)框圖。圖3.2AT89C2051內(nèi)部結(jié)構(gòu)圖3.2.4 AT89C52芯片最小系統(tǒng)一個最簡單的單片機系統(tǒng)包括晶振、復(fù)位、電源、系統(tǒng)的輸入控制、輸出顯示,以及其他外圍模塊(如通信、數(shù)據(jù)采集等)。(1)時鐘電路首先介紹一下單片機的晶振電路,即時鐘電路。單片機的工作流程,就是在系統(tǒng)時鐘的作用下,一條一條地執(zhí)行存儲器中的程序。單片機的時鐘電路由外接的一只晶振和兩只起振電容,以及單片機內(nèi)部的時鐘電路組成

23、,晶振的頻率越高,單片機處理數(shù)據(jù)的速度越快,系統(tǒng)功耗也會相應(yīng)增加,穩(wěn)定性也會下降。單片機系統(tǒng)常用的晶振頻率有6MHz、110592MHz、12MHz、本系統(tǒng)采用110592MHz晶振,電容選22pF或30pF均可。(2)復(fù)位電路系統(tǒng)剛上電時,單片機內(nèi)部的程序還沒有開始執(zhí)行,需要一段準備時間,也就是復(fù)位時間。一個穩(wěn)定的單片機系統(tǒng)必須設(shè)計復(fù)位電路。當程序跑飛或死機時,也需要進行系統(tǒng)復(fù)位。復(fù)位電路有很多種,有上電復(fù)位,手動復(fù)位等。 (3)EA腳的功能及接法單片機的EA腳控制程序從內(nèi)部存儲器還是從外部存儲器讀取程序。由于現(xiàn)在單片機內(nèi)部的flash容量都很大,因此基本都是從內(nèi)部的存儲器讀取程序,即不需要

24、外接ROM來存儲程序,因此,EA腳必須接高電平。3.3其它硬件介紹及連接車流量檢測電路及模擬為了達到對溫度的控制功能,需要對環(huán)境溫度進行檢測。當前比較流行的溫度檢測器件,是一種串口溫度傳感器DS18B20。其工作原理是通過內(nèi)部電路采集環(huán)境溫度模擬信號并通過內(nèi)部AD轉(zhuǎn)化電路將采集的模擬信號轉(zhuǎn)換為數(shù)字信號,再將12位數(shù)字溫度信號串行傳輸?shù)絾纹瑱C內(nèi)部,考慮到單片機系統(tǒng)的便利性,本次采用DS18B20具有眾多優(yōu)點,首先由于DS18B20內(nèi)部集成AD轉(zhuǎn)換電路節(jié)約了外部電路另需添加AD電路的成本,其次由于是串行傳輸,節(jié)省了單片機為數(shù)不多的管腳,再者由于DS18B20采用TO-92B封裝,在一定程度上節(jié)約了

25、PCB面積。DS18B20數(shù)字溫度傳感器接線方便,封裝成后可應(yīng)用于多種場合,如管道式,螺紋式,磁鐵吸附式,不銹鋼封裝式,型號多種多樣,有LTM8877,LTM8874等等。主要根據(jù)應(yīng)用場合的不同而改變其外觀。封裝后的DS18B20可用于電纜溝測溫,高爐水循環(huán)測溫,鍋爐測溫,機房測溫,農(nóng)業(yè)大棚測溫,潔凈室測溫,彈藥庫測溫等各種非極限溫度場合。耐磨耐碰,體積小,使用方便,封裝形式多樣,適用于各種狹小空間設(shè)備數(shù)字測溫和控制領(lǐng)域。本次設(shè)計檢測電路如下圖3.4所示。圖3.4 溫度檢測電路本次設(shè)計擬使用單片機內(nèi)存28H和29H分別存儲溫度信號,DS18B20串口通信為12位二進制數(shù)據(jù),因為12位轉(zhuǎn)化時每一

26、位的精度為0.0625度,而設(shè)計要求是保證溫度精度在個位,不要求顯示小數(shù),所以可以拋棄29H的低4位,將28H中的低4位移入29H中的高4位,這樣獲得一個新字節(jié),這個字節(jié)就是實際測量獲得的溫度。按鍵電路及模擬在系統(tǒng)運行時,設(shè)定溫度是可以自行調(diào)整的,本次設(shè)計提供了良好的人機界面,使用者可通過按鍵實時改變設(shè)置,按鍵采用中斷方式,提供了溫度改變的實時性。設(shè)計提供一個START/RES按鈕用于溫度報警后的重啟動。按鈕電路如圖3.5所示。圖3.5按鈕檢測電路其基本設(shè)計思想是:通過按鈕INC接通P3.2實現(xiàn)外部中斷0通過軟件更改設(shè)定溫度加一;通過按鈕DEC接通P3.2實現(xiàn)外部中斷1通過軟件更改設(shè)定溫度減一

27、;START/RES按鈕實現(xiàn)系統(tǒng)在報警狀態(tài)下的重啟動,因為系統(tǒng)報警子程序很簡短,所以不需要考慮程序時序問題。七段LED數(shù)碼管LED顯示屏作為大型顯示設(shè)備的一種,具有亮度高、價格低、壽命長、維護簡便等優(yōu)點。LED數(shù)碼管的結(jié)構(gòu)簡單,分為七段和八段兩種形式,也有共陽和共陰之分。以八段共陽管為例,它有7個發(fā)光二極管(比八段少一個發(fā)光二極管,用來顯示小數(shù)點),每個發(fā)光二極管的陽極連在一起,如圖3.6所示。這樣,一個LED數(shù)碼管就有I根位選線和8根段選線,要想顯示一個數(shù)值,就要分別對它們的高低電平來加以控制。為方便起見,本文主要討論共陽八段LED數(shù)碼顯示管,其他類形的顯示管與其類似。圖3.6 LED數(shù)碼管

28、LED 燈的顯示原理:通過同名管腳上所加電平的高低來控制發(fā)光二極管是否點亮而顯示不同的字形,如 dp,g,f,e,d,c,b,a全亮顯示為,采用共陽極連接驅(qū)動代碼,代碼表如下表3.1所示。顯示數(shù)值dp,g,f,e,d,c,b,a驅(qū)動代碼011010000C0H111111001F9H210100100A4H310110000B0H41001100199H51001001092H61000001082H711111000F8H81000000080H91001000090H表3.1 驅(qū)動代碼表相應(yīng)在程序軟件上,可以通過調(diào)用程序給定的數(shù)值通過除十確定余數(shù)和商從而確定溫度值的個位與十位,然后再通過D

29、PTR調(diào)取七段數(shù)碼管斷碼表TAB的代碼實現(xiàn)相應(yīng)值的數(shù)顯。LED7段數(shù)碼管的設(shè)置為每個方位上的一對2為顯示器。四個方位上總共用7個LED接在單片機的IO口上。雖然路口不一樣,但是顯示的時間在數(shù)字上是一樣的,所以兩邊連接的IO口是對稱的。如圖3.7所示,其中A,B分別是P0,P1的網(wǎng)絡(luò)標號。圖3.7 LED連接圖3.3.4其它器件(1)發(fā)光二極管根據(jù)本設(shè)計的特點,狀態(tài)燈的顯示不可少,狀態(tài)燈顯示采用普通的發(fā)光二極管。設(shè)置4個LED燈使現(xiàn)場運行狀況一目了然,如果紅燈亮,外部加熱電路運行,如果綠燈亮,外部降溫電路運行,如果黃燈亮,外部調(diào)溫電路處于等待狀態(tài)。如果綠燈亮,系統(tǒng)曾出現(xiàn)過報警信號,現(xiàn)已排除。如果

30、綠燈閃爍,溫度超過上限值系統(tǒng)停工以保證微電子器件的安全。圖3.8 狀態(tài)燈的連接(2)外部驅(qū)動繼電器本設(shè)計采用繼電器驅(qū)動外部電路,通過使用NPN三極管進行驅(qū)動控制,當P1.6和P1.7引腳輸出為高電平,NPN導通,繼電器接通;當P1.6和P1.7引腳輸出低電平時,NPN截止,外部繼電器停止工作。如下圖3.9所示圖3.9 繼電器連接(3)等待燈本設(shè)計設(shè)置了外部電路的第三種狀態(tài)等待狀態(tài)。高電平有效,當環(huán)境溫度與設(shè)置溫度一致時系統(tǒng)停止外部調(diào)溫電路運行點亮等待燈。如下圖3.10所示圖3.10 等待燈示意圖4 系統(tǒng)軟件程序的設(shè)計4.1程序主體設(shè)計流程全部控制程序?qū)嶋H上分為若干模塊:按鍵設(shè)置處理程序,狀態(tài)燈

31、控制程序,LED數(shù)碼管顯示程序,消抖動延時程序,溫度掃描處理程序,上限溫度報警程序,中斷服務(wù)子程序,設(shè)定溫度實時穩(wěn)定比較程序等。整個軟件程序方面主要分兩大部分:實時溫度掃描程序,溫度對比判斷程序。系統(tǒng)流程圖如圖4.1所示。傳感器初始化并寫入工作方式 寫入完成開始接受采樣值調(diào)用轉(zhuǎn)換控制子程序保存轉(zhuǎn)換值顯示設(shè)定溫度顯示當前溫度NY圖4.1 系統(tǒng)總流程圖首先是溫度掃描程序,89C52通過對P1.0和P1.1掃描溫度傳感器,確定實時溫度,再與系統(tǒng)內(nèi)部的設(shè)定溫度對比,根據(jù)ACC累加器的到按鍵處理程序。按鍵處理結(jié)果可設(shè)置兩種工作模式:紅綠燈時間設(shè)置模式和紅綠燈時間自動模式,次程序相當于系統(tǒng)的模式設(shè)置,若想

32、重新設(shè)置則要按下復(fù)位鍵。設(shè)置過后進入50ms掃描程序。50ms掃描程序開始后,先刷新顯示模塊,若為自動模式則接下來要計數(shù)車流量,然后掃描緊停信號和違規(guī)信號,若捕獲則調(diào)用中斷,中斷服務(wù)子程序主要啟動蜂鳴器,直至恢復(fù)鍵按下。50ms已到則重新掃描。掃描20次之后計時到達1s則時間數(shù)據(jù)減1,在顯示模塊中修改顯示緩沖區(qū)內(nèi)容。在半個狀態(tài)對換時,車流量計數(shù)程序在一個狀態(tài)變換循環(huán)先后計數(shù)兩個方向的車流量,然后調(diào)用紅綠燈時間調(diào)整程序,更新紅綠燈時間。當前狀態(tài)時間已到,則判斷次狀態(tài)裝入相應(yīng)數(shù)據(jù),然后進入下一狀態(tài)。4.2理論基礎(chǔ)知識(1)定時器原理定時器工作的基本原理其實就是給初值,讓它不斷加1直至減完為模值,這

33、個初值是送到TH和TL中的。它是以加法記數(shù)的,并能從全1到全0時自動產(chǎn)生溢出中斷請求。因此,我們可以把計數(shù)器記滿為零所需的計數(shù)值,即所要求的計數(shù)值設(shè)定為C,把計數(shù)初值設(shè)定為TC 可得到如下計算通式:TC=M-C式中,M為計數(shù)器模值。計數(shù)值并不是目的,目的是時間值,設(shè)計1次的時間,即定時器計數(shù)脈沖的周期為T0,它是單片機系統(tǒng)主頻周期的12倍,設(shè)要求的時間值為T,則有C=TT0。計算通式變?yōu)椋篢=(MTC)T0模值和計數(shù)器工作方式有關(guān)。在方式0時M為8192;在方式1時M的值為65536;在方式2和3為256。就此可以算出各種方式的最大延時。如單片機的主脈沖頻率為12MHZ,經(jīng)過12分頻后,若采用

34、方式最大延時只有8.129毫秒,采用方式最大延時也只有65.536毫秒。這就是為什么掃描周期為50ms的原因,若使用軟件則會耽擱程序流程,顯然不可行。相反,時間計時方面卻不可能只用計數(shù)器,因為顯然秒鐘已經(jīng)超過了計數(shù)器的最大定時間,所以我們還必須采用定時器和軟件相結(jié)合的辦法才能解決這個問題。(2)軟件延時原理MCS-51的工作頻率為12MHZ,機器周期與主頻有關(guān),機器周期是主頻的12倍,所以一個機器周期的時間為12*(1/12MHZ)=1us。我們可以知道具體每條指令的周期數(shù),這樣我們就可以通過指令的執(zhí)行條數(shù)來確定1秒的時間,但同時由于單片機的運行速度很快其他的指令執(zhí)行時間可以忽略不計。我們設(shè)定

35、一個初值為20的軟件計數(shù)器和使T0定時50毫秒。這樣每當T0到50毫秒時CPU就響應(yīng)它的溢出中斷請求,進入他的中斷服務(wù)子程序。在中斷服務(wù)子程序中,CPU先使軟件計數(shù)器減,然后判斷它是否為零。為零表示秒已到。設(shè)定定時器需要定時50毫秒,故T0必須工作于方式。要求初值:TC=M-T*T0=216-50ms/1us=15536=3CBOH,程序如下: WAIT: JNB TF0,WAIT1CLR TF0MOV TH0,#01HMOV TL0,#0B01HDJNZ R2,WAIT (3)中斷原理本系統(tǒng)主要使用了外部中斷,中斷信號有引腳INT0和INT1輸入,低電平有效,CPU每個時鐘周期都會檢測INT

36、0和INT1上的信號,8051允許外部中斷以電平方式或負邊沿方式兩種中斷方式輸入中斷請求信號,可由用戶通過設(shè)置TCON中IT0和IT1位的狀態(tài)來實現(xiàn)。以IT0為例,IT0=0,為電平觸發(fā)方式,IT0=1,為負邊沿觸發(fā)方式,本設(shè)計采用電平方式,IE0為其中斷標志位,有中斷信號則置位,中斷服務(wù)子程序響應(yīng)后,IE0自動清零。IE中的EA為允許中斷的總控制位,為1開啟,EX0為外部中斷允許控制位,為1開啟。在優(yōu)先級的允許下,一旦有外部中斷信號產(chǎn)生,單片機CPU首先保護斷點,PC值進棧,然后執(zhí)行相應(yīng)的中斷服務(wù)子程序,執(zhí)行完后,用RETI指令返回,此時CPU會從堆棧中取保存的斷點地址,送回PC,程序再正常

37、執(zhí)行。(4)紅綠燈時間調(diào)整原理車流量檢測傳感器可對單片機控制系統(tǒng)提供實時數(shù)據(jù),系統(tǒng)對所獲數(shù)據(jù)進行模糊處理。實現(xiàn)紅綠燈模糊控制必須解決對當前十字路口的交通狀況的檢測,并完成如下工作:1.輸入量的采集,系統(tǒng)采集兩個輸入量,即兩個方向的車流量。2.輸出量的確認,即紅綠燈時間值。3.設(shè)計將輸入映照到輸出的模糊規(guī)則。4.決定被激活模糊規(guī)則的組合方式和清晰處理,生成精確的輸出控制信號。為了采集上述數(shù)據(jù),在十字路口的四側(cè)共設(shè)置2個傳感器。分別檢測兩個方向的車流量,車流量檢測不是最終目的,在每半個循環(huán)周期,系統(tǒng)會檢測到兩個方向的車流量數(shù)據(jù),除以時間,那么就可以得到單位時間的車流量,然后比較兩個方向單位時間車流

38、量多少,以確定下一次循環(huán)紅綠燈時間,達到調(diào)整的目的。如,在一次循環(huán)過后,檢測到南北向車流量(設(shè)此時南北綠燈,東西紅燈時間為20s)為100輛,東西向車流量(設(shè)此時東西綠燈,南北紅燈時間為30s)為90輛,則單位時間車流量南北向和東西向的比例是:(100/20)/(90/30)=1.6,顯然南北向交通嚴重,那么現(xiàn)在就可以把南北綠燈,東西紅燈時間調(diào)長。上面的比例1.6還是一個確定數(shù)值,究竟多少為多,多少為少,這就必須設(shè)定模糊規(guī)則,劃定幾個值域范圍,分別對應(yīng)到具體的調(diào)整時間上,系統(tǒng)就調(diào)用具體的輸出值了。4.3子程序模塊設(shè)計(1)按鍵掃描程序首先程序不斷掃描模式設(shè)置鍵,分別記為:S鍵,J鍵,F(xiàn)鍵對應(yīng)端

39、口的3.6,P3.2,P3.7,低電平有效,按鍵順序是指定的,若直接按F鍵,則為自動調(diào)整模式,然后進入下一程序;若先按S鍵,再按J鍵,F(xiàn)鍵則為設(shè)置時間模式,然后進入下一程序。程序的開始要判斷是否有鍵按下,可以不斷將S鍵值和F鍵值相與,與值為1則表示沒有鍵按下,為0則表示有鍵按下,程序如下:K1: MOV C, P0.0 ANL C, P0.1JB C, K1 接下來要判斷具體是那個鍵,若為F鍵,則將自動標志位置1,進入下一程序,否則為S鍵,則表示設(shè)置南北綠燈時間,用R0存值,按1下加1,同時還需判斷此時J鍵是否按下,若按下,則表示南北綠燈時間設(shè)置完畢,開始設(shè)置東西綠燈時間,用R1存值,同樣按1

40、下加1 ,同時判斷此時F鍵是否按下,若按下,則表示時間設(shè)置完畢,進入下一程序。在這個過程中,S,J鍵的計數(shù)是循環(huán)的,從初值20開始,加到40則循環(huán)回到20。如判斷S鍵程序如下:CJNZ R0, #40, V1MOV R0, #20V1: INC R0 (2)狀態(tài)燈顯示及判斷在本設(shè)計中,實際控制的燈只有6個,即:東西紅燈,東西綠燈,東西黃燈,南北紅燈,南北綠燈,南北黃燈。定義IO端口如下,其中均是低電平有效。H_GREEN BIT P2.2H_YELLOW BIT P2.3L_RED BIT P2.4L_GREEN BIT P2.5L_YELLOW BIT P2.6共有4鐘狀態(tài):東西紅燈亮,南北

41、綠燈亮(11011101/DDH);東西紅燈亮,南北黃燈亮(10111101/BDH);東西綠燈亮,南北紅燈亮(11101101/EDH);東西黃燈亮,南北紅燈亮(11100111/E7H)。括號中是P2端口8個引腳值P2.7,P2.6,P2.5,P2.4,P2.3,P2.2,P2.1,P2.0以及對應(yīng)的十六進制碼。在用于顯示發(fā)光二極管時,直接由MOV指令將十六進制碼送入P2口。剛才的4個狀態(tài)是依次變換的,這就要涉及到狀態(tài)的判斷和銜接了。先把P2端口的值與所有的4個狀態(tài)碼比較,若相同則判斷成功當前狀態(tài),再把下一狀態(tài)的狀態(tài)碼送顯P2即可。程序如下:MOV A, P2CJNZ A, #0DDH,D

42、1MOV P2, #BDHD1: CJNZ A, BDH,D2MOV P2, #EDHD2: CJNZ A, #EDH,D3MOV P2, #E7HD3: CJNZ A, #E7H,YMOV R2, #DDH(3)LED倒計時顯示LED計時每1秒都要刷新1次,那么計時滿1秒時就要將存儲時間的工作寄存器R4減1,然后送入LED顯示程序中顯示。下面要將時間數(shù)據(jù)R4的十位,個位分開送顯P1,P0端口,首先將R4除以10,整數(shù)即十位放在A中,余數(shù)即個位放在B中,設(shè)置7段LED顯示數(shù)據(jù)的數(shù)據(jù)表,用數(shù)據(jù)指針寄存器DPTR指向數(shù)據(jù)表的首地址,再加上A中的偏移量,就可以指向十位數(shù)字,然后送顯即可,個位顯示同理

43、。具體程序如下:MOV A, R4 MOV B, #10DIV A, BMOV DPTR, #LEDMAPMOVC A, A+DPTRMOV P1, AMOV A, BMOVC A, A+DPTRMOV P3, ALEDMAP: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH(4)車流量檢測中斷服務(wù)子程序車流量檢測是用外部中斷引腳P3.3即INT1捕獲到一個低電平,則進入相應(yīng)的中斷服務(wù)子程序,在子程序中,用R5計南北向車流量,用R6計東西向車流量,設(shè)車向標志位為01H,判斷車向,程序如下:JNB 01H, U INC R5U: INC R6(5)緊停及違規(guī)

44、中斷服務(wù)子程序緊停按鍵和違規(guī)信號傳感器均連接到外部中斷引腳P3.2,即INT0捕獲到一個低電平,則進入該中斷,中斷程序中先把蜂鳴器P3.4端口置0,啟動蜂鳴。并且等待恢復(fù)鍵F鍵P3.7按下,然后關(guān)閉蜂鳴返回。INT0: SETB P0.5 JB P0.0, $LCALL DELAYCLR P0.5RETI(6)紅綠燈時間調(diào)整程序根據(jù)紅綠燈時間調(diào)整原理,一個周期下來,R5,R6中分別存儲著南北,東西的車流量,接下來求單位時間車流量,此時南北向時間,東西向時間分別存儲在R0,R1中,則兩個方向的流量比例為(R5/R0)/(R6/R1)=(R5*R1)(R6*R0),顯然該比例是1左右?guī)?shù)的值,然

45、而單片機程序中只取整數(shù),重要的數(shù)據(jù)信息就會丟失,所以本設(shè)計中首先將(R5*R1)乘以10,比例就變?yōu)?0左右的值。將該比例值放在A,然后進行時間調(diào)整。由于受到多方面的限制,時間調(diào)整在此只劃定3個范圍。比例0到0.7為一個范圍,0.8到1.5為一個范圍,1.5以上為一個范圍。第一范圍顯然表明東西向交通嚴重,應(yīng)將時間調(diào)長;第二范圍表明兩向相當,可設(shè)置一樣的時間,第三范圍表明南北向交通嚴重,應(yīng)將該向時間調(diào)長。具體設(shè)置如下表4.1.南北與東西向比例00.70.81.51.5及以上調(diào)整南北向時間203040調(diào)整東西向時間403020表4.1 比例及調(diào)整時間由表可知,對應(yīng)的時間調(diào)整也只有三種,分別是20,

46、40;30,30;40,20.顯然在實際應(yīng)用中這樣簡單的處理難以盡如人意,但在此處,本設(shè)計只是模擬大致的調(diào)整過程,以上要求的程序如下:CJNZ A, #7 M1M2: MOV R2, #20MOV R1, #40SJMP OUTM1: JB C, M2CJNZ A, #15 N1N2: MOV R0, #30MOV R1, #30SJMP OUTN1: JB C, N2MOV R0, #40MOV R1, #20OUT: CLR R5CLR R6RET(7)消抖動程序另外,在按鍵計數(shù)的過程中,還存在機械抖動與軟件方面的矛盾,即當程序檢測到了有按鍵按下,則會計一次數(shù),但是實際上,按鍵閉合后在微觀

47、上還會彈起,然后閉合,一直到達穩(wěn)定,顯然后面的彈落是無效的,為了使程序避免這個問題,可以在檢測到首次閉合時,調(diào)用一定時間的延時程序。此處延時程序完全用軟件完成,利用程序執(zhí)行一條指令的時間,再加上兩次累減嵌套,程序如下:DELAY: MOV R2, #14H A1: MOV R7, #0FFHDJNZ R2, $DJNZ R7, A1RET4.4源程序H_RED BIT P2.1 ;定義IO端口H_GREEN BIT P2.2H_YELLOW BIT P2.3L_RED BIT P2.4L_GREEN BIT P2.5L_YELLOW BIT P2.6;*;主程序,選擇設(shè)置紅綠燈時間模式或自動調(diào)

48、整模式;*ORG 0000HLJMP MAINORG 0003H ;中斷入口LJMP INT0ORG 0030HMAIN: MOV R3, #20 ;用于嵌套50ms軟件方法計時1sMOV R0, #20 ;預(yù)設(shè)值紅綠燈時間MOV R1, #20CLR EX0K1: MOV C, P3.7 ;等待檢測何種模式按鍵按下ANL C, P3.2JB C, K1JNB P3.7, F ;F鍵按下為自動模式,進入掃描K2: JNB P3.2, S ;S鍵按下并等待計數(shù)次數(shù)SJMP K2F: LCALL DELAYMOV R0, #30MOV R1, #30SETB 00HSETB EASETB EX1S

49、JMP STARTS: LCALL DELAYCJNZ R0, #40, V1MOV R0, #20V1: INC R0JNB P0.1, $JNB P3.6, J ;J鍵按下并等待計數(shù)次數(shù)SJMP K2J: LCALL DELAYCJNZ R1, #40, V2MOV R1, #20V2: INC R1JNB P3.6, $JNB P3.7, START ;設(shè)置完畢為設(shè)定時間模式,進入掃描JNB P3.6, JMOV P2, #0DDH ;預(yù)設(shè)信號燈狀態(tài),時間和車向MOV R4, R0SETB 01HSETB EX0;*;程序開始,進行每50ms掃描;*START: MOV TMOD, #0

50、1HMOV TH0, #3CHMOV TL0, #0B0HCLR TF0SETB TR0 ;開始50ms計時DJNZ R3, Y ;1s是否計時完畢MOV R3, #20DJNZ R4, Y ;本狀態(tài)是否結(jié)束,并進行下一狀態(tài)設(shè)置MOV A, P2CJNZ A, #0DDH,D1MOV P2, #BDHMOV R4, #5D1: CJNZ A, BDH,D2MOV P2, #EDHMOV R4, R1CLR 01HD2: CJNZ A, #EDH,D3MOV P2, #E7HMOV R4, #5JNB 00H, D3LCALL DATAD3: CJNZ A, #E7H,YMOV R2, #DDH

51、MOV R4, R0SETB 01HY: MOV A, R4 ;LED倒計時顯示MOV B, #10DIV A, BMOB DPTR, #LEDMAPMOVC A, A+DPTRMOV P1, AMOV A, BMOVC A, A+DPTRMOV P0, ALEDMAP: DB C0H,F9H,A4H,B0H,99H,92H,82H,F8H,80H,90HJNB 00H, WAIT ;判斷是否要計數(shù)車流量JB P3.3, WAIT ;判斷是否有車經(jīng)過WAIT: JNB TF0, WAIT ;50ms一次掃描完畢SJMP STARTINT1: JNB 01H, U ;判斷車向INC R5U: I

52、NC R6RETIINT0: SETB P3.4 ;中斷服務(wù)子程序,闖紅燈或緊停按鍵JB P3.7, $LCALL DELAYCLR P3.4RETIDATA: MOV A, R6 ;車流量數(shù)據(jù)處理及紅綠燈時間調(diào)整MOV B, R0MUL A, BMOV R6, AMOV A , R5MOV B, R1MUL A, BMOV B, #10MUL A, BMOV B, R6DIV A, BCJNZ A, #7 M1M2: MOV R2, #20MOV R1, #40SJMP OUTM1: JB C, M2CJNZ A, #15 N1N2: MOV R0, #30MOV R1, #30SJMP OUTN1: JB C, N2MOV R0, #40MOV R1, #20OUT: CLR R5CLR R6RETDELAY: MOV R2, #14H ;延時程序,用于按鍵消抖動A1: MOV R7,

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論