版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 畢 業(yè) 設(shè) 計(jì)(論 文)題目 基于單片機(jī)的恒溫調(diào)控及proteus仿真摘 要溫度的測(cè)量和控制對(duì)人類日常生活、工業(yè)生產(chǎn)、氣象預(yù)報(bào)、物資倉(cāng)儲(chǔ)等都起著極其重要的作用。在許多場(chǎng)合,及時(shí)準(zhǔn)確獲得目標(biāo)的溫度是十分重要的,近年來(lái),溫度測(cè)控領(lǐng)域發(fā)展迅速,并且隨著數(shù)字技術(shù)的發(fā)展,溫度的測(cè)控芯片也相應(yīng)的登上歷史的舞臺(tái),能夠在工業(yè)、農(nóng)業(yè)等各領(lǐng)域中廣泛使用。 單片機(jī)具有體積小控制精度高的且價(jià)格低等諸多特點(diǎn),將單片機(jī)與溫度傳感器相結(jié)合,構(gòu)成的溫度控制電路具有良好的測(cè)溫溫控功能。8952單片機(jī)的溫度控制系統(tǒng)由AT89C52單片機(jī)、七段溫度顯示數(shù)碼管、溫度傳感器DS18B20、工作狀態(tài)LED燈等模塊組成。恒溫系統(tǒng)除有溫度
2、檢測(cè)功能外,還具有溫度報(bào)警與外部控制功能,調(diào)節(jié)溫度手動(dòng)設(shè)置、可數(shù)顯各項(xiàng)系統(tǒng)參數(shù)、上限溫度報(bào)警等相關(guān)功能。理論證明該系統(tǒng)能夠簡(jiǎn)單、經(jīng)濟(jì),有效地提高系統(tǒng)的工作效率。本設(shè)計(jì)主要做了如下幾方面的工作:一是確定系統(tǒng)溫度控制的總體設(shè)計(jì),包括實(shí)時(shí)溫度的采集系統(tǒng)應(yīng)擁有的各項(xiàng)功能,二是進(jìn)行外部電路設(shè)計(jì)、顯示電路等的設(shè)計(jì)和基本功能要求。三是進(jìn)行軟件系統(tǒng)的設(shè)計(jì),對(duì)于本系統(tǒng),本人采用單片機(jī)匯編語(yǔ)言編寫,總體上完成了相應(yīng)要求。關(guān)鍵詞:溫度控制,溫度檢測(cè),AT89C52,溫度顯示,上限報(bào)警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單片機(jī)溫度控制系統(tǒng)的選題背景51.2單片機(jī)交通控制系統(tǒng)選題的現(xiàn)實(shí)意義51.3單片機(jī)交通控制系統(tǒng)主要研究的內(nèi)容82 單片機(jī)恒溫控制系統(tǒng)總體設(shè)計(jì)92.1單片機(jī)溫度控制系統(tǒng)的方案設(shè)計(jì)92.2單片機(jī)溫度控制系統(tǒng)的功能要求102.3單片機(jī)恒溫控制系統(tǒng)的基本構(gòu)成及原理123
9、 系統(tǒng)硬件電路的設(shè)計(jì)133.1系統(tǒng)硬件總電路構(gòu)成及原理13系統(tǒng)硬件電路構(gòu)成13系統(tǒng)工作原理133.2單片機(jī)的選擇15單片機(jī)的概述153.2.2 AT89C52芯片的主要性能153.2.3 AT89C52芯片的內(nèi)部結(jié)構(gòu)框圖153.2.4 AT89C52芯片最小系統(tǒng)163.3其它硬件介紹及連接17溫度檢測(cè)方案17七段數(shù)碼管顯示方案183.3.3其它器件214 系統(tǒng)軟件程序的設(shè)計(jì)234.1程序主體設(shè)計(jì)流程234.2理論基礎(chǔ)知識(shí)244.3子程序模塊設(shè)計(jì)264.4源程序314.5系統(tǒng)軟件調(diào)試36結(jié) 論39參考文獻(xiàn)40致 謝411 緒 論1.1單片機(jī)交通控制系統(tǒng)的選題背景溫度的測(cè)量和控制對(duì)人類日常生活、工
10、業(yè)生產(chǎn)、氣象預(yù)報(bào)、物資倉(cāng)儲(chǔ)等都起著極其重要的作用。在許多場(chǎng)合,及時(shí)準(zhǔn)確獲得目標(biāo)的溫度是十分重要的,近年來(lái),溫度測(cè)控領(lǐng)域發(fā)展迅速,并且隨著數(shù)字技術(shù)的發(fā)展,溫度的測(cè)控芯片也相應(yīng)的登上歷史的舞臺(tái),能夠在工業(yè)、農(nóng)業(yè)等各領(lǐng)域中廣泛使用。溫度控制對(duì)于社會(huì)的工業(yè)經(jīng)濟(jì)和人們的生活生產(chǎn)中有著十分重要的意義。隨著單片機(jī)和傳感技術(shù)的迅速發(fā)展,自動(dòng)檢測(cè)領(lǐng)域發(fā)生了巨大變化,溫度自動(dòng)監(jiān)測(cè)控制方面的研究有了明顯的進(jìn)展,并且必將以其優(yōu)異的性能價(jià)格比走進(jìn)千家萬(wàn)戶。1.2單片機(jī)交通控制系統(tǒng)選題的現(xiàn)實(shí)意義隨著制造工藝的快速增長(zhǎng),以及人們對(duì)于產(chǎn)品的完美追求,工業(yè)生產(chǎn)對(duì)于外部因素愈加重視,溫度控制就應(yīng)運(yùn)而生,在人類的設(shè)計(jì)生產(chǎn)中,外部環(huán)
11、境因素被人們所重視,而其中溫度因素扮演著極其重要的角色。近年來(lái),溫度測(cè)控領(lǐng)域發(fā)展迅速,冰潔隨著數(shù)字技術(shù)的發(fā)展,溫度的測(cè)控芯片業(yè)相應(yīng)的登上了歷史的舞臺(tái),在工業(yè)農(nóng)業(yè)等個(gè)領(lǐng)域中廣泛使用。1.3單片機(jī)恒溫控制系統(tǒng)主要研究的內(nèi)容基于整個(gè)恒溫控制系統(tǒng)的發(fā)展情況,本設(shè)計(jì)主要進(jìn)行如下方面的研究:用智能,集成,且功能強(qiáng)大的單片機(jī)芯片為控制中心,設(shè)計(jì)出一套控制系統(tǒng),以指揮外部電路進(jìn)行相應(yīng)的溫度調(diào)節(jié)。本設(shè)計(jì)主要做了如下幾方面的工作:一是確定系統(tǒng)控制的總體設(shè)計(jì),包括,環(huán)境溫度的實(shí)時(shí)掃描方案設(shè)計(jì)以及系統(tǒng)應(yīng)擁有的各項(xiàng)功能,在這里,本設(shè)計(jì)除了有溫度掃描與調(diào)節(jié)裝置能實(shí)現(xiàn)基本的溫度自動(dòng)調(diào)節(jié)功能,還增加了上限溫度報(bào)警功能,基于實(shí)
12、際情況,設(shè)計(jì)了雙溫度傳感器同時(shí)采集信號(hào)求取平均值以保證采集信號(hào)的準(zhǔn)確性,同時(shí)對(duì)雙通道進(jìn)行監(jiān)測(cè)報(bào)警處理和鍵盤可設(shè)置等強(qiáng)大功能。 二是進(jìn)行智能傳感器的硬件電路,顯示電路等的設(shè)計(jì)對(duì)各器件的選擇及連接,大體分配各個(gè)器件及模塊的基本功能要求。三是進(jìn)行軟件系統(tǒng)的設(shè)計(jì),對(duì)于本系統(tǒng),本人采用單片機(jī)匯編語(yǔ)言編寫,對(duì)單片機(jī)內(nèi)部結(jié)構(gòu)和工作情況做了充足的研究,了解中斷以及延時(shí)原理,總體上完成了軟件的編寫。2 單片機(jī)交通控制系統(tǒng)總體設(shè)計(jì)2.1單片機(jī)恒溫控制系統(tǒng)的方案設(shè)計(jì)設(shè)置兩個(gè)溫度傳感器,分別同時(shí)采集環(huán)境溫度,求取平均值數(shù)顯在LED數(shù)碼管上,外部通過(guò)按鈕調(diào)節(jié)設(shè)置時(shí)間并與所求取的平均值對(duì)比以確定外部電路工作狀態(tài),另一方面
13、系統(tǒng)設(shè)置上限溫度,如果環(huán)境溫度超過(guò)40度,系統(tǒng)停止一切工作,狀態(tài)處綠燈閃爍,當(dāng)外部溫度恢復(fù)正常后按下按鍵區(qū)的復(fù)位鍵系統(tǒng)重新開(kāi)始正常工作。硬件上設(shè)置狀態(tài)燈使外部電路工作情況一目了然,具體外部電路如圖2.1所示:溫度傳感器DS18B20A T 8 9 C 5 2上限溫度數(shù)顯設(shè)定溫度數(shù)顯環(huán)境溫度數(shù)顯外部電路驅(qū)動(dòng)工作狀態(tài)燈顯示外部按鈕調(diào)節(jié)圖2.1 通過(guò)具體的運(yùn)行狀態(tài)演示分析我們可以把整個(gè)過(guò)程歸納如下:分別取兩處環(huán)境溫度將平均值顯示在七段數(shù)碼管上。將設(shè)定溫度和上限溫度40度顯示在七段數(shù)碼管上。系統(tǒng)通過(guò)軟件實(shí)現(xiàn)設(shè)定溫度與環(huán)境溫度想比較以確定外部電路工作狀態(tài)。外部電路的工作狀態(tài)我們用以下圖表表示:環(huán)境溫度與
14、設(shè)定溫度對(duì)比外電路工作情況狀態(tài)指示燈大于驅(qū)動(dòng)加熱繼電器紅燈 小于驅(qū)動(dòng)降溫繼電器 藍(lán)燈 等于等待燈點(diǎn)亮黃燈 當(dāng)環(huán)境溫度大于40度停止工作 綠燈閃爍表2.1 運(yùn)行狀態(tài)及指示燈狀態(tài)2.2單片機(jī)恒溫控制系統(tǒng)的功能要求本設(shè)計(jì)能模擬基本的恒溫控制系統(tǒng),用繼電器代表外部調(diào)溫電路的加熱和降溫,還能進(jìn)行設(shè)定溫度顯示,環(huán)境溫度檢測(cè)及調(diào)整等功能。(1)設(shè)定溫度顯示系統(tǒng)默認(rèn)初始設(shè)定溫度為25度,用戶可以通過(guò)按鈕區(qū)的INC和DEC按鈕自行調(diào)節(jié)設(shè)定溫度值,以適應(yīng)用戶的不同需求。(2)環(huán)境檢測(cè)及調(diào)整 電路設(shè)計(jì)兩個(gè)溫度傳感器同時(shí)檢測(cè)環(huán)境溫度通過(guò)求取平均以確定環(huán)境溫度,這樣可以減少環(huán)境因素對(duì)系統(tǒng)精確性的影響。(3)上限溫度設(shè)置
15、 除系統(tǒng)自動(dòng)按照設(shè)定環(huán)境溫度自動(dòng)控制調(diào)整外,系統(tǒng)通過(guò)軟件寫入上限溫度,以防止溫度因素對(duì)硬件電路產(chǎn)生破壞,避免自動(dòng)故障和意外發(fā)生,當(dāng)環(huán)境溫度恢復(fù)正常時(shí)可通過(guò)復(fù)位按鈕恢復(fù)系統(tǒng)的工作。(4)緊急處理 環(huán)境溫度過(guò)高的現(xiàn)象在所難免,但是當(dāng)因外部因素引起的系統(tǒng)停工后畢并須要有相應(yīng)的重啟動(dòng)功能,在這種情況下設(shè)置了復(fù)位按鈕用于系統(tǒng)停工后的重啟動(dòng)。3 系統(tǒng)硬件電路的設(shè)計(jì)3.1系統(tǒng)硬件總電路構(gòu)成及原理實(shí)現(xiàn)本設(shè)計(jì)要求的具體功能,可以選用AT89C52單片機(jī)及外圍器件構(gòu)成最小控制系統(tǒng),4個(gè)發(fā)光二極管分成1組紅綠黃綠四色燈構(gòu)成狀態(tài)燈指示模塊,6七段數(shù)碼管構(gòu)成3組溫度顯示模塊,溫度傳感器DS18B20溫度傳感器采集溫度數(shù)
16、據(jù),若干按鍵組成溫度設(shè)置和復(fù)位重啟動(dòng)按鈕,以及用1個(gè)蜂鳴器進(jìn)行報(bào)警。系統(tǒng)硬件電路構(gòu)成本系統(tǒng)以單片機(jī)為核心,組成一個(gè)集溫度采集、處理、自動(dòng)控制為一身的閉環(huán)控制系統(tǒng)。系統(tǒng)硬件電路由溫度檢測(cè)檢測(cè)電路,單片機(jī),狀態(tài)燈,LED顯示,按鍵,蜂鳴器組成。其具體的硬件電路總圖如圖3.1所示。其中P0口,用于送顯六片LED數(shù)碼管,P1.0和p1.1實(shí)現(xiàn)接通DS18B20溫度傳感器實(shí)現(xiàn)外部數(shù)據(jù)的串行采集,P1.2用于控制綠色發(fā)光二極管通過(guò)軟件使其閃爍報(bào)警,XTAL1和XTAL2接入晶振時(shí)鐘電路,設(shè)計(jì)采用12MHZ的晶振,一個(gè)匯編指令周期為1us,便于對(duì)系統(tǒng)運(yùn)行時(shí)間評(píng)估, P3.2即INT1溫度加一INC按鈕,P3
17、.3即INT1溫度減一DEC按鈕,系統(tǒng)采用中斷方式相應(yīng)外部設(shè)定溫度調(diào)節(jié),相比于鍵盤掃描的方式改變?cè)O(shè)定溫度,中斷方式具有受程序掃描周期影響小的特點(diǎn),P1.5和P1.6分別接通兩個(gè)繼電器以實(shí)現(xiàn)外部溫控電路的驅(qū)動(dòng),P1.7連接等待燈,表示實(shí)時(shí)溫度與設(shè)定溫度一致,P3.0、P3.1對(duì)環(huán)境溫度顯示的兩個(gè)數(shù)碼管進(jìn)行片選,P3.4、P3.5對(duì)上限溫度顯示的兩個(gè)數(shù)碼管進(jìn)行片選P3.6、P3.7對(duì)設(shè)定溫度顯示的兩個(gè)數(shù)碼管進(jìn)行片選。因?yàn)橄到y(tǒng)程序未超過(guò)4KB,所以為添加外部ROM,故將EA位電平拉高。圖3.1 系統(tǒng)工作原理系統(tǒng)上電之后,系統(tǒng)默認(rèn)設(shè)定溫度為25攝氏度,上限溫度為40攝氏度,外部信號(hào)采集后,立即求取平均
18、值,系統(tǒng)自動(dòng)判斷環(huán)境溫度值,并驅(qū)動(dòng)繼電器工作,并將工作情況反應(yīng)在工作狀態(tài)燈處。,設(shè)定溫度通過(guò)外部按鈕區(qū)的INC和DEC按鈕實(shí)現(xiàn)加一減一,此處通過(guò)軟件延遲方式去抖動(dòng),延時(shí)時(shí)間為200ms可以在一定程度上去除按鈕的抖動(dòng)。接下來(lái),系統(tǒng)顯示狀態(tài)燈及LED數(shù)碼管,將狀態(tài)碼值送至P1.5、P1.6、P1.7口,并將狀態(tài)燈與外部驅(qū)動(dòng)電路連接,以實(shí)現(xiàn)外部電路與狀態(tài)顯示的同步化,而溫度顯示通過(guò)數(shù)碼管的動(dòng)態(tài)顯示實(shí)現(xiàn)6個(gè)數(shù)碼管顯示以1.2秒的周期不斷刷新顯示。但溫度高于40度時(shí)系統(tǒng)停工,工作燈綠燈閃爍,當(dāng)外部溫度恢復(fù)正常后可以通過(guò)START/RES按鈕實(shí)現(xiàn)系統(tǒng)的重啟動(dòng)。當(dāng)然,還要開(kāi)啟兩個(gè)外部中斷,其一為設(shè)定溫度的加
19、一,一旦信號(hào)觸發(fā),中斷開(kāi)始,進(jìn)入中斷服務(wù)子程序,設(shè)定溫度由系統(tǒng)默認(rèn)溫度25度實(shí)現(xiàn)加一功能,200ms后系統(tǒng)中斷返回,并于下一周期數(shù)顯在數(shù)碼管上。其二為設(shè)定溫度的減一,一旦信號(hào)觸發(fā)進(jìn)入相應(yīng)的中斷子程序,設(shè)定溫度由系統(tǒng)默認(rèn)溫度25度實(shí)現(xiàn)減一功能,200ms后系統(tǒng)中斷返回,并于下一周期數(shù)顯在數(shù)碼管上,若為自動(dòng)模式,則須將檢測(cè)到的車流量數(shù)據(jù)處理一次,判斷兩個(gè)方向的交通輕重緩急狀況,再調(diào)整下次狀態(tài)循環(huán)的紅綠燈時(shí)間,以達(dá)到自動(dòng)控制的目的。3.2單片機(jī)的選擇單片機(jī)的概述單片微型計(jì)算機(jī)簡(jiǎn)稱單片機(jī),又稱微控制器,嵌入式微控制器等,屬于第四代電子計(jì)算機(jī)。它把中央處理器、存儲(chǔ)器、輸入/輸出接口電路以及定時(shí)器/計(jì)數(shù)器
20、集成在一塊芯片上,從而具有體積小、功耗低、價(jià)格低廉、抗干擾能力強(qiáng)且可靠性高等特點(diǎn),因此,適合應(yīng)用于工業(yè)過(guò)程控制、智能儀器儀表和測(cè)控系統(tǒng)的前端裝置。正是由于這一原因,國(guó)際上逐漸采用微控制器(MCU)代替單片微型計(jì)算機(jī)(SCM)這一名稱?!拔⒖刂破鳌备芊从硢纹瑱C(jī)的本質(zhì),但是由于單片機(jī)這個(gè)名稱已經(jīng)為國(guó)內(nèi)大多數(shù)人所接受,所以仍沿用“單片機(jī)”這一名稱。單片機(jī)的主要特點(diǎn)有:1)具有優(yōu)異的性能價(jià)格比。2)集成度高、體積小、可靠性高。3)控制功能強(qiáng)。4)低電壓,低功耗。3.2.2 AT89C52芯片的主要性能芯片AT89C52是ATMEL公司生產(chǎn)的帶2K字節(jié)快閃存儲(chǔ)器的8位單片機(jī)。它具有如下的一些特性:指令
21、和89C51產(chǎn)品兼容 內(nèi)含2K字節(jié)可重復(fù)編程快閃存儲(chǔ)器耐久性1,000寫/擦除周期 2.7V6V的工作電壓范圍全靜態(tài)操作0Hz24MHz 二級(jí)程序存儲(chǔ)器加鎖內(nèi)含128*8位內(nèi)部RAM 15根可編程I/0引線2個(gè)16位的計(jì)數(shù)器/定時(shí)器 6個(gè)中斷源帶有可編程串行通訊口 可直接驅(qū)動(dòng)LED輸出片內(nèi)模擬電壓比較器 低功耗空載和掉電方式另外,該單片機(jī)還具有體積小,價(jià)格低等特點(diǎn)。3.2.3 AT89C52芯片的內(nèi)部結(jié)構(gòu)框圖AT89C52是一帶有2K字節(jié)快閃可編程可擦除存儲(chǔ)體(EEPROM)的低電壓、高性能8位CMOS微型計(jì)算機(jī)。它采用ATMEL的高密非易失存儲(chǔ)技術(shù)制造并和工業(yè)標(biāo)準(zhǔn)MCS51指令集和引腳結(jié)構(gòu)兼
22、容。通過(guò)在單塊芯片上組合通用的CPL1和快閃存儲(chǔ)器,ATMEL公司生產(chǎn)的AT89C52是一強(qiáng)勁的微型計(jì)算機(jī),它對(duì)許多嵌入式控制的應(yīng)用,提供了一種高度靈活和成本低的解決辦法。圖3.2為AT89C52的內(nèi)部結(jié)構(gòu)框圖。圖3.2AT89C2051內(nèi)部結(jié)構(gòu)圖3.2.4 AT89C52芯片最小系統(tǒng)一個(gè)最簡(jiǎn)單的單片機(jī)系統(tǒng)包括晶振、復(fù)位、電源、系統(tǒng)的輸入控制、輸出顯示,以及其他外圍模塊(如通信、數(shù)據(jù)采集等)。(1)時(shí)鐘電路首先介紹一下單片機(jī)的晶振電路,即時(shí)鐘電路。單片機(jī)的工作流程,就是在系統(tǒng)時(shí)鐘的作用下,一條一條地執(zhí)行存儲(chǔ)器中的程序。單片機(jī)的時(shí)鐘電路由外接的一只晶振和兩只起振電容,以及單片機(jī)內(nèi)部的時(shí)鐘電路組成
23、,晶振的頻率越高,單片機(jī)處理數(shù)據(jù)的速度越快,系統(tǒng)功耗也會(huì)相應(yīng)增加,穩(wěn)定性也會(huì)下降。單片機(jī)系統(tǒng)常用的晶振頻率有6MHz、110592MHz、12MHz、本系統(tǒng)采用110592MHz晶振,電容選22pF或30pF均可。(2)復(fù)位電路系統(tǒng)剛上電時(shí),單片機(jī)內(nèi)部的程序還沒(méi)有開(kāi)始執(zhí)行,需要一段準(zhǔn)備時(shí)間,也就是復(fù)位時(shí)間。一個(gè)穩(wěn)定的單片機(jī)系統(tǒng)必須設(shè)計(jì)復(fù)位電路。當(dāng)程序跑飛或死機(jī)時(shí),也需要進(jìn)行系統(tǒng)復(fù)位。復(fù)位電路有很多種,有上電復(fù)位,手動(dòng)復(fù)位等。 (3)EA腳的功能及接法單片機(jī)的EA腳控制程序從內(nèi)部存儲(chǔ)器還是從外部存儲(chǔ)器讀取程序。由于現(xiàn)在單片機(jī)內(nèi)部的flash容量都很大,因此基本都是從內(nèi)部的存儲(chǔ)器讀取程序,即不需要
24、外接ROM來(lái)存儲(chǔ)程序,因此,EA腳必須接高電平。3.3其它硬件介紹及連接車流量檢測(cè)電路及模擬為了達(dá)到對(duì)溫度的控制功能,需要對(duì)環(huán)境溫度進(jìn)行檢測(cè)。當(dāng)前比較流行的溫度檢測(cè)器件,是一種串口溫度傳感器DS18B20。其工作原理是通過(guò)內(nèi)部電路采集環(huán)境溫度模擬信號(hào)并通過(guò)內(nèi)部AD轉(zhuǎn)化電路將采集的模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào),再將12位數(shù)字溫度信號(hào)串行傳輸?shù)絾纹瑱C(jī)內(nèi)部,考慮到單片機(jī)系統(tǒng)的便利性,本次采用DS18B20具有眾多優(yōu)點(diǎn),首先由于DS18B20內(nèi)部集成AD轉(zhuǎn)換電路節(jié)約了外部電路另需添加AD電路的成本,其次由于是串行傳輸,節(jié)省了單片機(jī)為數(shù)不多的管腳,再者由于DS18B20采用TO-92B封裝,在一定程度上節(jié)約了
25、PCB面積。DS18B20數(shù)字溫度傳感器接線方便,封裝成后可應(yīng)用于多種場(chǎng)合,如管道式,螺紋式,磁鐵吸附式,不銹鋼封裝式,型號(hào)多種多樣,有LTM8877,LTM8874等等。主要根據(jù)應(yīng)用場(chǎng)合的不同而改變其外觀。封裝后的DS18B20可用于電纜溝測(cè)溫,高爐水循環(huán)測(cè)溫,鍋爐測(cè)溫,機(jī)房測(cè)溫,農(nóng)業(yè)大棚測(cè)溫,潔凈室測(cè)溫,彈藥庫(kù)測(cè)溫等各種非極限溫度場(chǎng)合。耐磨耐碰,體積小,使用方便,封裝形式多樣,適用于各種狹小空間設(shè)備數(shù)字測(cè)溫和控制領(lǐng)域。本次設(shè)計(jì)檢測(cè)電路如下圖3.4所示。圖3.4 溫度檢測(cè)電路本次設(shè)計(jì)擬使用單片機(jī)內(nèi)存28H和29H分別存儲(chǔ)溫度信號(hào),DS18B20串口通信為12位二進(jìn)制數(shù)據(jù),因?yàn)?2位轉(zhuǎn)化時(shí)每一
26、位的精度為0.0625度,而設(shè)計(jì)要求是保證溫度精度在個(gè)位,不要求顯示小數(shù),所以可以拋棄29H的低4位,將28H中的低4位移入29H中的高4位,這樣獲得一個(gè)新字節(jié),這個(gè)字節(jié)就是實(shí)際測(cè)量獲得的溫度。按鍵電路及模擬在系統(tǒng)運(yùn)行時(shí),設(shè)定溫度是可以自行調(diào)整的,本次設(shè)計(jì)提供了良好的人機(jī)界面,使用者可通過(guò)按鍵實(shí)時(shí)改變?cè)O(shè)置,按鍵采用中斷方式,提供了溫度改變的實(shí)時(shí)性。設(shè)計(jì)提供一個(gè)START/RES按鈕用于溫度報(bào)警后的重啟動(dòng)。按鈕電路如圖3.5所示。圖3.5按鈕檢測(cè)電路其基本設(shè)計(jì)思想是:通過(guò)按鈕INC接通P3.2實(shí)現(xiàn)外部中斷0通過(guò)軟件更改設(shè)定溫度加一;通過(guò)按鈕DEC接通P3.2實(shí)現(xiàn)外部中斷1通過(guò)軟件更改設(shè)定溫度減一
27、;START/RES按鈕實(shí)現(xiàn)系統(tǒng)在報(bào)警狀態(tài)下的重啟動(dòng),因?yàn)橄到y(tǒng)報(bào)警子程序很簡(jiǎn)短,所以不需要考慮程序時(shí)序問(wèn)題。七段LED數(shù)碼管LED顯示屏作為大型顯示設(shè)備的一種,具有亮度高、價(jià)格低、壽命長(zhǎng)、維護(hù)簡(jiǎn)便等優(yōu)點(diǎn)。LED數(shù)碼管的結(jié)構(gòu)簡(jiǎn)單,分為七段和八段兩種形式,也有共陽(yáng)和共陰之分。以八段共陽(yáng)管為例,它有7個(gè)發(fā)光二極管(比八段少一個(gè)發(fā)光二極管,用來(lái)顯示小數(shù)點(diǎn)),每個(gè)發(fā)光二極管的陽(yáng)極連在一起,如圖3.6所示。這樣,一個(gè)LED數(shù)碼管就有I根位選線和8根段選線,要想顯示一個(gè)數(shù)值,就要分別對(duì)它們的高低電平來(lái)加以控制。為方便起見(jiàn),本文主要討論共陽(yáng)八段LED數(shù)碼顯示管,其他類形的顯示管與其類似。圖3.6 LED數(shù)碼管
28、LED 燈的顯示原理:通過(guò)同名管腳上所加電平的高低來(lái)控制發(fā)光二極管是否點(diǎn)亮而顯示不同的字形,如 dp,g,f,e,d,c,b,a全亮顯示為,采用共陽(yáng)極連接驅(qū)動(dòng)代碼,代碼表如下表3.1所示。顯示數(shù)值dp,g,f,e,d,c,b,a驅(qū)動(dòng)代碼011010000C0H111111001F9H210100100A4H310110000B0H41001100199H51001001092H61000001082H711111000F8H81000000080H91001000090H表3.1 驅(qū)動(dòng)代碼表相應(yīng)在程序軟件上,可以通過(guò)調(diào)用程序給定的數(shù)值通過(guò)除十確定余數(shù)和商從而確定溫度值的個(gè)位與十位,然后再通過(guò)D
29、PTR調(diào)取七段數(shù)碼管斷碼表TAB的代碼實(shí)現(xiàn)相應(yīng)值的數(shù)顯。LED7段數(shù)碼管的設(shè)置為每個(gè)方位上的一對(duì)2為顯示器。四個(gè)方位上總共用7個(gè)LED接在單片機(jī)的IO口上。雖然路口不一樣,但是顯示的時(shí)間在數(shù)字上是一樣的,所以兩邊連接的IO口是對(duì)稱的。如圖3.7所示,其中A,B分別是P0,P1的網(wǎng)絡(luò)標(biāo)號(hào)。圖3.7 LED連接圖3.3.4其它器件(1)發(fā)光二極管根據(jù)本設(shè)計(jì)的特點(diǎn),狀態(tài)燈的顯示不可少,狀態(tài)燈顯示采用普通的發(fā)光二極管。設(shè)置4個(gè)LED燈使現(xiàn)場(chǎng)運(yùn)行狀況一目了然,如果紅燈亮,外部加熱電路運(yùn)行,如果綠燈亮,外部降溫電路運(yùn)行,如果黃燈亮,外部調(diào)溫電路處于等待狀態(tài)。如果綠燈亮,系統(tǒng)曾出現(xiàn)過(guò)報(bào)警信號(hào),現(xiàn)已排除。如果
30、綠燈閃爍,溫度超過(guò)上限值系統(tǒng)停工以保證微電子器件的安全。圖3.8 狀態(tài)燈的連接(2)外部驅(qū)動(dòng)繼電器本設(shè)計(jì)采用繼電器驅(qū)動(dòng)外部電路,通過(guò)使用NPN三極管進(jìn)行驅(qū)動(dòng)控制,當(dāng)P1.6和P1.7引腳輸出為高電平,NPN導(dǎo)通,繼電器接通;當(dāng)P1.6和P1.7引腳輸出低電平時(shí),NPN截止,外部繼電器停止工作。如下圖3.9所示圖3.9 繼電器連接(3)等待燈本設(shè)計(jì)設(shè)置了外部電路的第三種狀態(tài)等待狀態(tài)。高電平有效,當(dāng)環(huán)境溫度與設(shè)置溫度一致時(shí)系統(tǒng)停止外部調(diào)溫電路運(yùn)行點(diǎn)亮等待燈。如下圖3.10所示圖3.10 等待燈示意圖4 系統(tǒng)軟件程序的設(shè)計(jì)4.1程序主體設(shè)計(jì)流程全部控制程序?qū)嶋H上分為若干模塊:按鍵設(shè)置處理程序,狀態(tài)燈
31、控制程序,LED數(shù)碼管顯示程序,消抖動(dòng)延時(shí)程序,溫度掃描處理程序,上限溫度報(bào)警程序,中斷服務(wù)子程序,設(shè)定溫度實(shí)時(shí)穩(wěn)定比較程序等。整個(gè)軟件程序方面主要分兩大部分:實(shí)時(shí)溫度掃描程序,溫度對(duì)比判斷程序。系統(tǒng)流程圖如圖4.1所示。傳感器初始化并寫入工作方式 寫入完成開(kāi)始接受采樣值調(diào)用轉(zhuǎn)換控制子程序保存轉(zhuǎn)換值顯示設(shè)定溫度顯示當(dāng)前溫度NY圖4.1 系統(tǒng)總流程圖首先是溫度掃描程序,89C52通過(guò)對(duì)P1.0和P1.1掃描溫度傳感器,確定實(shí)時(shí)溫度,再與系統(tǒng)內(nèi)部的設(shè)定溫度對(duì)比,根據(jù)ACC累加器的到按鍵處理程序。按鍵處理結(jié)果可設(shè)置兩種工作模式:紅綠燈時(shí)間設(shè)置模式和紅綠燈時(shí)間自動(dòng)模式,次程序相當(dāng)于系統(tǒng)的模式設(shè)置,若想
32、重新設(shè)置則要按下復(fù)位鍵。設(shè)置過(guò)后進(jìn)入50ms掃描程序。50ms掃描程序開(kāi)始后,先刷新顯示模塊,若為自動(dòng)模式則接下來(lái)要計(jì)數(shù)車流量,然后掃描緊停信號(hào)和違規(guī)信號(hào),若捕獲則調(diào)用中斷,中斷服務(wù)子程序主要啟動(dòng)蜂鳴器,直至恢復(fù)鍵按下。50ms已到則重新掃描。掃描20次之后計(jì)時(shí)到達(dá)1s則時(shí)間數(shù)據(jù)減1,在顯示模塊中修改顯示緩沖區(qū)內(nèi)容。在半個(gè)狀態(tài)對(duì)換時(shí),車流量計(jì)數(shù)程序在一個(gè)狀態(tài)變換循環(huán)先后計(jì)數(shù)兩個(gè)方向的車流量,然后調(diào)用紅綠燈時(shí)間調(diào)整程序,更新紅綠燈時(shí)間。當(dāng)前狀態(tài)時(shí)間已到,則判斷次狀態(tài)裝入相應(yīng)數(shù)據(jù),然后進(jìn)入下一狀態(tài)。4.2理論基礎(chǔ)知識(shí)(1)定時(shí)器原理定時(shí)器工作的基本原理其實(shí)就是給初值,讓它不斷加1直至減完為模值,這
33、個(gè)初值是送到TH和TL中的。它是以加法記數(shù)的,并能從全1到全0時(shí)自動(dòng)產(chǎn)生溢出中斷請(qǐng)求。因此,我們可以把計(jì)數(shù)器記滿為零所需的計(jì)數(shù)值,即所要求的計(jì)數(shù)值設(shè)定為C,把計(jì)數(shù)初值設(shè)定為TC 可得到如下計(jì)算通式:TC=M-C式中,M為計(jì)數(shù)器模值。計(jì)數(shù)值并不是目的,目的是時(shí)間值,設(shè)計(jì)1次的時(shí)間,即定時(shí)器計(jì)數(shù)脈沖的周期為T0,它是單片機(jī)系統(tǒng)主頻周期的12倍,設(shè)要求的時(shí)間值為T,則有C=TT0。計(jì)算通式變?yōu)椋篢=(MTC)T0模值和計(jì)數(shù)器工作方式有關(guān)。在方式0時(shí)M為8192;在方式1時(shí)M的值為65536;在方式2和3為256。就此可以算出各種方式的最大延時(shí)。如單片機(jī)的主脈沖頻率為12MHZ,經(jīng)過(guò)12分頻后,若采用
34、方式最大延時(shí)只有8.129毫秒,采用方式最大延時(shí)也只有65.536毫秒。這就是為什么掃描周期為50ms的原因,若使用軟件則會(huì)耽擱程序流程,顯然不可行。相反,時(shí)間計(jì)時(shí)方面卻不可能只用計(jì)數(shù)器,因?yàn)轱@然秒鐘已經(jīng)超過(guò)了計(jì)數(shù)器的最大定時(shí)間,所以我們還必須采用定時(shí)器和軟件相結(jié)合的辦法才能解決這個(gè)問(wèn)題。(2)軟件延時(shí)原理MCS-51的工作頻率為12MHZ,機(jī)器周期與主頻有關(guān),機(jī)器周期是主頻的12倍,所以一個(gè)機(jī)器周期的時(shí)間為12*(1/12MHZ)=1us。我們可以知道具體每條指令的周期數(shù),這樣我們就可以通過(guò)指令的執(zhí)行條數(shù)來(lái)確定1秒的時(shí)間,但同時(shí)由于單片機(jī)的運(yùn)行速度很快其他的指令執(zhí)行時(shí)間可以忽略不計(jì)。我們?cè)O(shè)定
35、一個(gè)初值為20的軟件計(jì)數(shù)器和使T0定時(shí)50毫秒。這樣每當(dāng)T0到50毫秒時(shí)CPU就響應(yīng)它的溢出中斷請(qǐng)求,進(jìn)入他的中斷服務(wù)子程序。在中斷服務(wù)子程序中,CPU先使軟件計(jì)數(shù)器減,然后判斷它是否為零。為零表示秒已到。設(shè)定定時(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)主要使用了外部中斷,中斷信號(hào)有引腳INT0和INT1輸入,低電平有效,CPU每個(gè)時(shí)鐘周期都會(huì)檢測(cè)INT
36、0和INT1上的信號(hào),8051允許外部中斷以電平方式或負(fù)邊沿方式兩種中斷方式輸入中斷請(qǐng)求信號(hào),可由用戶通過(guò)設(shè)置TCON中IT0和IT1位的狀態(tài)來(lái)實(shí)現(xiàn)。以IT0為例,IT0=0,為電平觸發(fā)方式,IT0=1,為負(fù)邊沿觸發(fā)方式,本設(shè)計(jì)采用電平方式,IE0為其中斷標(biāo)志位,有中斷信號(hào)則置位,中斷服務(wù)子程序響應(yīng)后,IE0自動(dòng)清零。IE中的EA為允許中斷的總控制位,為1開(kāi)啟,EX0為外部中斷允許控制位,為1開(kāi)啟。在優(yōu)先級(jí)的允許下,一旦有外部中斷信號(hào)產(chǎn)生,單片機(jī)CPU首先保護(hù)斷點(diǎn),PC值進(jìn)棧,然后執(zhí)行相應(yīng)的中斷服務(wù)子程序,執(zhí)行完后,用RETI指令返回,此時(shí)CPU會(huì)從堆棧中取保存的斷點(diǎn)地址,送回PC,程序再正常
37、執(zhí)行。(4)紅綠燈時(shí)間調(diào)整原理車流量檢測(cè)傳感器可對(duì)單片機(jī)控制系統(tǒng)提供實(shí)時(shí)數(shù)據(jù),系統(tǒng)對(duì)所獲數(shù)據(jù)進(jìn)行模糊處理。實(shí)現(xiàn)紅綠燈模糊控制必須解決對(duì)當(dāng)前十字路口的交通狀況的檢測(cè),并完成如下工作:1.輸入量的采集,系統(tǒng)采集兩個(gè)輸入量,即兩個(gè)方向的車流量。2.輸出量的確認(rèn),即紅綠燈時(shí)間值。3.設(shè)計(jì)將輸入映照到輸出的模糊規(guī)則。4.決定被激活模糊規(guī)則的組合方式和清晰處理,生成精確的輸出控制信號(hào)。為了采集上述數(shù)據(jù),在十字路口的四側(cè)共設(shè)置2個(gè)傳感器。分別檢測(cè)兩個(gè)方向的車流量,車流量檢測(cè)不是最終目的,在每半個(gè)循環(huán)周期,系統(tǒng)會(huì)檢測(cè)到兩個(gè)方向的車流量數(shù)據(jù),除以時(shí)間,那么就可以得到單位時(shí)間的車流量,然后比較兩個(gè)方向單位時(shí)間車流
38、量多少,以確定下一次循環(huán)紅綠燈時(shí)間,達(dá)到調(diào)整的目的。如,在一次循環(huán)過(guò)后,檢測(cè)到南北向車流量(設(shè)此時(shí)南北綠燈,東西紅燈時(shí)間為20s)為100輛,東西向車流量(設(shè)此時(shí)東西綠燈,南北紅燈時(shí)間為30s)為90輛,則單位時(shí)間車流量南北向和東西向的比例是:(100/20)/(90/30)=1.6,顯然南北向交通嚴(yán)重,那么現(xiàn)在就可以把南北綠燈,東西紅燈時(shí)間調(diào)長(zhǎng)。上面的比例1.6還是一個(gè)確定數(shù)值,究竟多少為多,多少為少,這就必須設(shè)定模糊規(guī)則,劃定幾個(gè)值域范圍,分別對(duì)應(yīng)到具體的調(diào)整時(shí)間上,系統(tǒng)就調(diào)用具體的輸出值了。4.3子程序模塊設(shè)計(jì)(1)按鍵掃描程序首先程序不斷掃描模式設(shè)置鍵,分別記為:S鍵,J鍵,F(xiàn)鍵對(duì)應(yīng)端
39、口的3.6,P3.2,P3.7,低電平有效,按鍵順序是指定的,若直接按F鍵,則為自動(dòng)調(diào)整模式,然后進(jìn)入下一程序;若先按S鍵,再按J鍵,F(xiàn)鍵則為設(shè)置時(shí)間模式,然后進(jìn)入下一程序。程序的開(kāi)始要判斷是否有鍵按下,可以不斷將S鍵值和F鍵值相與,與值為1則表示沒(méi)有鍵按下,為0則表示有鍵按下,程序如下:K1: MOV C, P0.0 ANL C, P0.1JB C, K1 接下來(lái)要判斷具體是那個(gè)鍵,若為F鍵,則將自動(dòng)標(biāo)志位置1,進(jìn)入下一程序,否則為S鍵,則表示設(shè)置南北綠燈時(shí)間,用R0存值,按1下加1,同時(shí)還需判斷此時(shí)J鍵是否按下,若按下,則表示南北綠燈時(shí)間設(shè)置完畢,開(kāi)始設(shè)置東西綠燈時(shí)間,用R1存值,同樣按1
40、下加1 ,同時(shí)判斷此時(shí)F鍵是否按下,若按下,則表示時(shí)間設(shè)置完畢,進(jìn)入下一程序。在這個(gè)過(guò)程中,S,J鍵的計(jì)數(shù)是循環(huán)的,從初值20開(kāi)始,加到40則循環(huán)回到20。如判斷S鍵程序如下:CJNZ R0, #40, V1MOV R0, #20V1: INC R0 (2)狀態(tài)燈顯示及判斷在本設(shè)計(jì)中,實(shí)際控制的燈只有6個(gè),即:東西紅燈,東西綠燈,東西黃燈,南北紅燈,南北綠燈,南北黃燈。定義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)。括號(hào)中是P2端口8個(gè)引腳值P2.7,P2.6,P2.5,P2.4,P2.3,P2.2,P2.1,P2.0以及對(duì)應(yīng)的十六進(jìn)制碼。在用于顯示發(fā)光二極管時(shí),直接由MOV指令將十六進(jìn)制碼送入P2口。剛才的4個(gè)狀態(tài)是依次變換的,這就要涉及到狀態(tài)的判斷和銜接了。先把P2端口的值與所有的4個(gè)狀態(tài)碼比較,若相同則判斷成功當(dāng)前狀態(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倒計(jì)時(shí)顯示LED計(jì)時(shí)每1秒都要刷新1次,那么計(jì)時(shí)滿1秒時(shí)就要將存儲(chǔ)時(shí)間的工作寄存器R4減1,然后送入LED顯示程序中顯示。下面要將時(shí)間數(shù)據(jù)R4的十位,個(gè)位分開(kāi)送顯P1,P0端口,首先將R4除以10,整數(shù)即十位放在A中,余數(shù)即個(gè)位放在B中,設(shè)置7段LED顯示數(shù)據(jù)的數(shù)據(jù)表,用數(shù)據(jù)指針寄存器DPTR指向數(shù)據(jù)表的首地址,再加上A中的偏移量,就可以指向十位數(shù)字,然后送顯即可,個(gè)位顯示同理
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)車流量檢測(cè)中斷服務(wù)子程序車流量檢測(cè)是用外部中斷引腳P3.3即INT1捕獲到一個(gè)低電平,則進(jìn)入相應(yīng)的中斷服務(wù)子程序,在子程序中,用R5計(jì)南北向車流量,用R6計(jì)東西向車流量,設(shè)車向標(biāo)志位為01H,判斷車向,程序如下:JNB 01H, U INC R5U: INC R6(5)緊停及違規(guī)
44、中斷服務(wù)子程序緊停按鍵和違規(guī)信號(hào)傳感器均連接到外部中斷引腳P3.2,即INT0捕獲到一個(gè)低電平,則進(jìn)入該中斷,中斷程序中先把蜂鳴器P3.4端口置0,啟動(dòng)蜂鳴。并且等待恢復(fù)鍵F鍵P3.7按下,然后關(guān)閉蜂鳴返回。INT0: SETB P0.5 JB P0.0, $LCALL DELAYCLR P0.5RETI(6)紅綠燈時(shí)間調(diào)整程序根據(jù)紅綠燈時(shí)間調(diào)整原理,一個(gè)周期下來(lái),R5,R6中分別存儲(chǔ)著南北,東西的車流量,接下來(lái)求單位時(shí)間車流量,此時(shí)南北向時(shí)間,東西向時(shí)間分別存儲(chǔ)在R0,R1中,則兩個(gè)方向的流量比例為(R5/R0)/(R6/R1)=(R5*R1)(R6*R0),顯然該比例是1左右?guī)?shù)的值,然
45、而單片機(jī)程序中只取整數(shù),重要的數(shù)據(jù)信息就會(huì)丟失,所以本設(shè)計(jì)中首先將(R5*R1)乘以10,比例就變?yōu)?0左右的值。將該比例值放在A,然后進(jìn)行時(shí)間調(diào)整。由于受到多方面的限制,時(shí)間調(diào)整在此只劃定3個(gè)范圍。比例0到0.7為一個(gè)范圍,0.8到1.5為一個(gè)范圍,1.5以上為一個(gè)范圍。第一范圍顯然表明東西向交通嚴(yán)重,應(yīng)將時(shí)間調(diào)長(zhǎng);第二范圍表明兩向相當(dāng),可設(shè)置一樣的時(shí)間,第三范圍表明南北向交通嚴(yán)重,應(yīng)將該向時(shí)間調(diào)長(zhǎng)。具體設(shè)置如下表4.1.南北與東西向比例00.70.81.51.5及以上調(diào)整南北向時(shí)間203040調(diào)整東西向時(shí)間403020表4.1 比例及調(diào)整時(shí)間由表可知,對(duì)應(yīng)的時(shí)間調(diào)整也只有三種,分別是20,
46、40;30,30;40,20.顯然在實(shí)際應(yīng)用中這樣簡(jiǎn)單的處理難以盡如人意,但在此處,本設(shè)計(jì)只是模擬大致的調(diào)整過(guò)程,以上要求的程序如下: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)消抖動(dòng)程序另外,在按鍵計(jì)數(shù)的過(guò)程中,還存在機(jī)械抖動(dòng)與軟件方面的矛盾,即當(dāng)程序檢測(cè)到了有按鍵按下,則會(huì)計(jì)一次數(shù),但是實(shí)際上,按鍵閉合后在微觀
47、上還會(huì)彈起,然后閉合,一直到達(dá)穩(wěn)定,顯然后面的彈落是無(wú)效的,為了使程序避免這個(gè)問(wèn)題,可以在檢測(cè)到首次閉合時(shí),調(diào)用一定時(shí)間的延時(shí)程序。此處延時(shí)程序完全用軟件完成,利用程序執(zhí)行一條指令的時(shí)間,再加上兩次累減嵌套,程序如下: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è)置紅綠燈時(shí)間模式或自動(dòng)調(diào)
48、整模式;*ORG 0000HLJMP MAINORG 0003H ;中斷入口LJMP INT0ORG 0030HMAIN: MOV R3, #20 ;用于嵌套50ms軟件方法計(jì)時(shí)1sMOV R0, #20 ;預(yù)設(shè)值紅綠燈時(shí)間MOV R1, #20CLR EX0K1: MOV C, P3.7 ;等待檢測(cè)何種模式按鍵按下ANL C, P3.2JB C, K1JNB P3.7, F ;F鍵按下為自動(dòng)模式,進(jìn)入掃描K2: JNB P3.2, S ;S鍵按下并等待計(jì)數(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鍵按下并等待計(jì)數(shù)次數(shù)SJMP K2J: LCALL DELAYCJNZ R1, #40, V2MOV R1, #20V2: INC R1JNB P3.6, $JNB P3.7, START ;設(shè)置完畢為設(shè)定時(shí)間模式,進(jìn)入掃描JNB P3.6, JMOV P2, #0DDH ;預(yù)設(shè)信號(hào)燈狀態(tài),時(shí)間和車向MOV R4, R0SETB 01HSETB EX0;*;程序開(kāi)始,進(jìn)行每50ms掃描;*START: MOV TMOD, #0
50、1HMOV TH0, #3CHMOV TL0, #0B0HCLR TF0SETB TR0 ;開(kāi)始50ms計(jì)時(shí)DJNZ R3, Y ;1s是否計(jì)時(shí)完畢MOV R3, #20DJNZ R4, Y ;本狀態(tài)是否結(jié)束,并進(jìn)行下一狀態(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倒計(jì)時(shí)顯示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 ;判斷是否要計(jì)數(shù)車流量JB P3.3, WAIT ;判斷是否有車經(jīng)過(guò)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ù)處理及紅綠燈時(shí)間調(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 ;延時(shí)程序,用于按鍵消抖動(dòng)A1: MOV R7,
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年房產(chǎn)建設(shè)融資具體要求
- 2024年度噸不銹鋼帶打印功能電子地磅秤廣告宣傳合同
- 2024年承包單位施工合同
- 2024年奶牛遺傳資源國(guó)際合作與許可合同
- 押題04河湖水體的動(dòng)態(tài)變化-備戰(zhàn)2023年高考地理之考前押大題(原卷版)
- 讀教師讀書心得(5篇素材稿件)
- 年終出納個(gè)人工作總結(jié)范文(3篇)
- 2024年投資擔(dān)保合同新解讀
- 2024年家居團(tuán)購(gòu)權(quán)益保障協(xié)議
- 2024年房產(chǎn)保險(xiǎn)經(jīng)紀(jì)與服務(wù)合同
- 北京市第四中學(xué)2024-2025學(xué)年七年級(jí)上學(xué)期期中生物學(xué)試題(含答案)
- 體育教師先進(jìn)個(gè)人事跡材料
- 2025屆江蘇省蘇州市第一中學(xué)物理高三第一學(xué)期期末學(xué)業(yè)水平測(cè)試模擬試題含解析
- 企業(yè)財(cái)務(wù)管理數(shù)字化轉(zhuǎn)型實(shí)施方案
- 第九課+發(fā)展中國(guó)特色社會(huì)主義文化+課件高中政治統(tǒng)編必修四哲學(xué)與文化
- 牙用漂白凝膠市場(chǎng)環(huán)境與對(duì)策分析
- 2024年山東省濟(jì)南市中考英語(yǔ)試題卷(含答案)
- 人教版七年級(jí)道德與法治上冊(cè) 期中復(fù)習(xí)知識(shí)梳理
- 3.1 農(nóng)業(yè)區(qū)位因素及其變化 課件 高一地理人教版(2019)必修第二冊(cè)
- 建筑施工企業(yè)(安全管理)安全生產(chǎn)管理人員安全生產(chǎn)考試參考題及答案
- 鍋爐應(yīng)急預(yù)案演練方案
評(píng)論
0/150
提交評(píng)論