基于單片機(jī)的自動門控制系統(tǒng)完整_第1頁
基于單片機(jī)的自動門控制系統(tǒng)完整_第2頁
基于單片機(jī)的自動門控制系統(tǒng)完整_第3頁
基于單片機(jī)的自動門控制系統(tǒng)完整_第4頁
基于單片機(jī)的自動門控制系統(tǒng)完整_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、畢業(yè)設(shè)計報告 題 目: 院 系: 信息與控制學(xué)院 專 業(yè): 班級學(xué)號: 學(xué)生姓名: 指導(dǎo)教師: 成 績: 2014 年 月 日目 錄1 方案設(shè)計11.1 設(shè)計任務(wù)要求11.2 硬件方案設(shè)計11.3 軟件方案的設(shè)計11.4 主要設(shè)計的實(shí)現(xiàn)原理12 硬件設(shè)計12.1 單片機(jī)的簡介12.2 硬件器件選擇12.2.1 單片機(jī)選型12.2.2 按鍵部分12.2.3 人體檢測傳感器12.2.4 光電檢測傳感器12.3 單片機(jī)最小系統(tǒng)12.4 按鍵部分電路圖12.5 光電檢測部分12.6 人體熱釋電傳感器12.7 電機(jī)驅(qū)動電路13 軟件部分設(shè)計13.1 總程序設(shè)計13.2 按鍵程序流程圖13.3 定時器0中

2、斷13.4 門控判斷程序1參考文獻(xiàn)1附錄A 系統(tǒng)原理圖1附錄B 程序代碼1附錄C 實(shí)物圖片1I1 方案設(shè)計1.1 設(shè)計任務(wù)要求對于自動門控制系統(tǒng),需要實(shí)現(xiàn)的功能如下所示:(1)自動檢測功能:能夠自動檢測門的附近是否有人,如果有人則開啟該門,在沒有人體信號時,延時數(shù)秒后自動關(guān)閉。(2)安全保護(hù)功能:關(guān)門時,檢測門導(dǎo)軌上是否有人,如果有則停止關(guān)門,并迅速打開門,防止人被擠住。(3)電機(jī)調(diào)速功能:能夠通過單片機(jī)控制電機(jī)的速度,開門關(guān)門時需要有個加速與減速的過程。(4)按鍵輸入功能:能夠通過按鍵來控制門自動還是手動運(yùn)行,在特殊情況下需要手動來操作該門。(5)門開關(guān)限位功能:在開門與關(guān)門的時候能夠檢測到

3、門的限位開關(guān),來檢測是否到門的關(guān)門與開門的限位。1.2 硬件方案設(shè)計本設(shè)計選用STC89C52單片機(jī)作為本設(shè)計的微控制芯片。按鍵部分采用獨(dú)立式按鍵, 人體檢測部分,使用紅外熱釋電傳感器對外部人體信號進(jìn)行檢測。光電檢測傳感器使用TCRT5000光電傳感器進(jìn)行檢測。硬件部分框圖如圖1.1所示。單片機(jī)按鍵輸入電機(jī)驅(qū)動晶振電路安全檢測人體檢測復(fù)位電路限位開關(guān)檢測圖1.1 硬件部分框圖自動門控制系統(tǒng)的硬件組成如圖1.1所示,本系統(tǒng)主要由STC89C52RC單片機(jī)及其外圍電路、紅外檢測電路,門行程檢測電路、直流電機(jī)控制電路、安全檢測電路等部分組成,單片機(jī)與晶振復(fù)位電路構(gòu)成最小系統(tǒng)電路,作為主控電路,來協(xié)調(diào)

4、外部其他各部分硬件電路,各個電路的功能如下:(1)晶振電路給單片機(jī)提供時鐘系統(tǒng),讓單片機(jī)能夠有運(yùn)行的節(jié)拍與動力,晶振與單片機(jī)內(nèi)部的電路一同構(gòu)成了一個波形發(fā)生電路,輸出與晶振頻率相同的時鐘,該時鐘用作單片機(jī)的運(yùn)行。(2)復(fù)位電路復(fù)位電路為單片機(jī)提供一個足夠的開機(jī)運(yùn)行的復(fù)位脈沖,能夠讓單片機(jī)在上電時有足夠的時間復(fù)位。(3)按鍵輸入部分按鍵輸入部分用來作為人機(jī)交互界面部分,能夠控制門的手動開關(guān),切換自動模式與手動模式。(4)電機(jī)驅(qū)動部分電機(jī)驅(qū)動部分,用來驅(qū)動直流電機(jī),單片機(jī)輸出控制信號,來進(jìn)行對電機(jī)的調(diào)速(5)安全檢測安全檢測部分用來檢測是否有人被夾,能夠提供使用者的安全。(6)人體檢測人體檢測用來

5、檢測是否有人接進(jìn)門附近,檢測到信號后單片機(jī)開始驅(qū)動外部電路開門。(7)限位開關(guān)限位開關(guān)主要用來檢測開關(guān)門的行程位置。1.3 軟件方案的設(shè)計C語言是一種計算機(jī)程序設(shè)計語言,它既具有高級語言的特點(diǎn),又具有匯編語言的特點(diǎn)。隨著微型計算機(jī)的日益普及,出現(xiàn)了許多C語言版本。由于沒有統(tǒng)一的標(biāo)準(zhǔn), 使得這些C語言之間出現(xiàn)了一些不一致的地方。為了改變這種情況,美國國家標(biāo)準(zhǔn)研究所(ANSI)為C語言制定了一套ANSI標(biāo)準(zhǔn),成為現(xiàn)行的C語言標(biāo)C語言是世界上最流行、使用最廣泛的高級程序設(shè)計語言之一。在操作系統(tǒng)和系統(tǒng)使用程序以及需要對硬件進(jìn)行操作的場合,用C語言明顯優(yōu)于其它高級語言,以前有許多大型應(yīng)用軟件都是用C語言

6、編寫的(由于面向?qū)ο缶幊碳夹g(shù)的出現(xiàn),大型軟件轉(zhuǎn)由C+、JAVA、C#再配合C語言開發(fā);C語言在面對大型的軟件開發(fā)時,會顯得有些吃力)C語言繪圖能力強(qiáng),具有可移植性,并具備很強(qiáng)的數(shù)據(jù)處理能力,因此適于編寫系統(tǒng)軟件,三維,二維圖形和動畫。它是數(shù)值計算的高級語言。對于編譯軟件則使用Keil C51軟件。Keil C51軟件為目前相當(dāng)流行的51系列單片機(jī)開發(fā)軟件,它是一個基于32位Windows環(huán)境的應(yīng)用程序,支持C語言和匯編語言編程。Keil是目前最好的51單片機(jī)開發(fā)應(yīng)用軟件。它是一款通俗易懂易于上手的單片機(jī)程序開發(fā)軟件,與其他的單片機(jī)軟件有很好的兼容性。我們在日常的學(xué)習(xí)中都是使用這個軟件,所以在本

7、次設(shè)計中我使用Keil C51軟件進(jìn)行程序的編譯。1.4 主要設(shè)計的實(shí)現(xiàn)原理本次設(shè)計是紅外線自動門控制系統(tǒng),使用紅外線傳感器作為感應(yīng)器,檢測到人體輻射的紅外線能量變化,將其轉(zhuǎn)化為電信號,傳給單片機(jī),單片機(jī)通過驅(qū)動H橋電路來驅(qū)動直流電機(jī),來使門開關(guān),在關(guān)門的時候使用光電傳感器進(jìn)行檢測,是否有人在門軌道上,如果有則停止關(guān)門,防止有人被夾,通過單片機(jī)控制交流電機(jī),使門自動打開,當(dāng)人進(jìn)門后又可以使門自動關(guān)閉。本課題主要實(shí)現(xiàn)紅外線檢測和基于STC89C51的單片機(jī)控制系統(tǒng)。2 硬件設(shè)計2.1 單片機(jī)的簡介單片機(jī)是把一個計算機(jī)系統(tǒng)集成到一塊芯片上,它是采用大規(guī)模集成電路技術(shù)把中央處理器CPU、隨機(jī)存儲器R

8、AM、只讀存儲器ROM、各種I/O口和中斷系統(tǒng)、定時器等功能集成到一個芯片上構(gòu)成的一個簡小而完善的微型計算計系統(tǒng)。單片機(jī)已成為電子設(shè)計中使用最多最廣泛的元件,它的體積小、低電壓、低功耗、可靠性高、處理功能強(qiáng)、控制功能強(qiáng)、環(huán)境適應(yīng)能力強(qiáng)、使用方便等優(yōu)點(diǎn),主要在儀器儀表、家用電器和玩具、醫(yī)用設(shè)備、計算機(jī)通信技術(shù)、智能測量設(shè)備、航空航天等領(lǐng)域被廣泛應(yīng)用。大概可分如下幾個方面:在智能儀器儀表中,單片機(jī)的優(yōu)點(diǎn)使它廣泛應(yīng)用于各種儀器儀表中,單片機(jī)通過不同類型的傳感器,可以測量溫度、頻率、速度、長度、音量、光亮、電壓、功率等物理量。利用單片機(jī)控制使得儀器儀表準(zhǔn)確率更高,靈敏度更高,測量速度更快。 在家用電器

9、和玩具中,隨著國內(nèi)國外的快速發(fā)展,現(xiàn)在的家用電器各式各樣,其中少不了單片機(jī)控制,例如電視、空調(diào)、洗衣機(jī)、微波爐、電飯鍋等。現(xiàn)在孩子手中的玩具更少不了單片機(jī)控制,例如音樂盒、遙控車等等其它智能玩具。這使我們的生活不僅方便而且更加有趣。在計算機(jī)通信中,單片機(jī)能夠在計算機(jī)網(wǎng)絡(luò)和通信設(shè)備之間提供方便的條件?,F(xiàn)如今的通信設(shè)備也在一步一步實(shí)現(xiàn)單片機(jī)智能控制,例如手機(jī)、對講機(jī)、樓宇門呼叫對講系統(tǒng)、列車和飛機(jī)無線通信。在汽車電子產(chǎn)品中,單片機(jī)也實(shí)現(xiàn)了它的價值,例如汽車的集中顯示系統(tǒng)、動力、速度、壓力監(jiān)測控制系統(tǒng)、自動駕駛系統(tǒng)、導(dǎo)航系統(tǒng)、安全保護(hù)系統(tǒng)等。單片機(jī)在辦公自動化設(shè)備,商業(yè)營銷設(shè)備等其他領(lǐng)域中中也有著廣

10、泛的應(yīng)用,它使我們的生活變得更加方便快捷,更加豐富多彩,生活工具也越來越智能化,如今我們的生活離不開單片機(jī), 它是我們生活中不可缺少的一部分。2.2 硬件器件選擇2.2.1 單片機(jī)選型方案一:傳統(tǒng)51單片機(jī)AT89C51AT89C51是一種帶4K字節(jié)FLASH存儲器的低電壓、高性能CMOS8位微處理器,該處理器單指令周期為1us(在12M晶振下),工作頻率0-24MHz,并且該芯片支持仿真,是經(jīng)典51單片機(jī)課程中的芯片,抗干擾能力強(qiáng),但是隨著科技速度的發(fā)展,該芯片慢慢被后繼的芯片所替代,因?yàn)樵撔酒瑑r格比較高,而且仿真器的成本較高,所以本設(shè)計不適于使用該芯片。方案二:使用430單片機(jī)TI生產(chǎn)的4

11、30系列單片機(jī)為超低功耗單片機(jī),被廣泛應(yīng)用于各類低功耗的產(chǎn)品中,該系列單片機(jī)的優(yōu)點(diǎn)為,功耗非常低,而且具有豐富的外設(shè),能夠直接進(jìn)行ADC采集,高端芯片還可以進(jìn)行DAC輸出,并且外圍電路簡單,I/O口具有可控的輸入與輸出的方式,由于本設(shè)計不考慮功耗,所以此單片機(jī)不做考慮使用。方案三:使用STC系列單片機(jī)STC系列單片機(jī)由宏晶公司生產(chǎn),其以低廉的價格與豐富的內(nèi)部資源,深受廣大使用者的喜愛,他內(nèi)核與AT89S51的功能完全相同,我們采用STC89C52單片機(jī)為主控芯片,這樣更能體現(xiàn)我們此次設(shè)計的性價比。綜上所述,本設(shè)計使用方案三選用STC89C52單片機(jī)作為本設(shè)計的微控制芯片。2.2.2 按鍵部分方

12、案一:行列掃描按鍵行列式按鍵適用于按鍵應(yīng)用數(shù)目比較多的設(shè)計,例如手機(jī)、電子稱等需要輸入數(shù)據(jù)較多的設(shè)備,行列式按鍵的優(yōu)點(diǎn)是節(jié)省I/O口資源,使用8個I/O口就可以實(shí)現(xiàn)16個按鍵,分為行掃描口與列掃描口,該方案編程比較復(fù)雜,而且必須對I/O口進(jìn)行實(shí)時的掃描。方案二:使用獨(dú)立按鍵由于本設(shè)計使用的按鍵功能較少,只需要清零,計數(shù)壓力值設(shè)置,需要4個按鍵,所以本設(shè)計使用獨(dú)立按鍵,作為按鍵的輸入部分,獨(dú)立按鍵硬件電路設(shè)計簡單,并且編程方便簡單,而且速度快,不需要對I/O口做頻繁的操作。綜上所述,本設(shè)計使用按鍵較少,使用方案二作為本設(shè)計的按鍵部分。2.2.3 人體檢測傳感器人體檢測部分,使用紅外熱釋電傳感器對

13、外部人體信號進(jìn)行檢測,本設(shè)計使用人體熱釋電傳感器模塊HC-SR501,對人體信號進(jìn)行檢測,當(dāng)檢測到人體信號時,模塊返回一個高電平信號,當(dāng)人體信號消失時,模塊返回一個低電平信號,模塊輸入5V直流電壓信號,單片機(jī)的I/O口與模塊返回的信號直連。2.2.4 光電檢測傳感器光電檢測傳感器,用來檢測關(guān)門時是否有東西在門軌道上,如果有檢測到該信號則打開門,延時一定時間沒有人體信號時在關(guān)閉,本設(shè)計使用TCRT5000光電傳感器進(jìn)行檢測。2.3 單片機(jī)最小系統(tǒng)單片機(jī)最小系統(tǒng),或者稱為最小應(yīng)用系統(tǒng),是指用最少的元件組成的單片機(jī)可以工作的系統(tǒng),對本次設(shè)計使用單片機(jī)來說,最小系統(tǒng)一般應(yīng)該包括:單片機(jī)、晶振電路、復(fù)位

14、電路3。 復(fù)位電路:由電容串聯(lián)電阻構(gòu)成,由圖并結(jié)合“電容電壓不能突變”的性質(zhì),可以知道,當(dāng)系統(tǒng)一上電,RST腳將會出現(xiàn)高電平,并且這個高電平持續(xù)的時間由電路的RC值來決定。典型的51單片機(jī)當(dāng)RST腳的高電平持續(xù)兩個機(jī)器周期以上就將復(fù)位,所以,適當(dāng)組合RC的取值就可以保證可靠的復(fù)位。一般教科書推薦C 取10u,R取8.2K當(dāng)然也有其他取法的,原則就是要讓RC組合可以在RST腳上產(chǎn)生不少于2個機(jī)周期的高電平至于如何具體定量計算,可以參考電路分析相關(guān)書籍。晶振電路:典型的晶振值取11.0592MHz(因?yàn)榭梢詼?zhǔn)確地得到9600波特率和19200波特率,用于有串口通訊的場合)/12MHz。(1)復(fù)位電

15、路的用途單片機(jī)復(fù)位電路就好比電腦的重啟部分,當(dāng)電腦在使用中出現(xiàn)死機(jī),按下重啟按鈕電腦內(nèi)部的程序從頭開始執(zhí)行。單片機(jī)也一樣,當(dāng)單片機(jī)系統(tǒng)在運(yùn)行中,受到環(huán)境干擾出現(xiàn)程序跑飛的時候,按下復(fù)位按鈕內(nèi)部的程序自動從頭開始執(zhí)行。單片機(jī)復(fù)位電路如圖2.1所示。圖2.1 89C51最小系統(tǒng)圖(2)復(fù)位電路的工作原理在單片機(jī)系統(tǒng)中,系統(tǒng)上電啟動的時候復(fù)位一次,當(dāng)按鍵按下的時候系統(tǒng)再次復(fù)位,如果釋放后再按下,系統(tǒng)還會復(fù)位,所以可以通過按鍵的斷開和閉合在運(yùn)行的系統(tǒng)中控制其復(fù)位。在電路圖中,電容的大小是10uF,電阻的大小是10k。所以根據(jù)公式,可以算出電容充電到電源電壓的0.7倍(單片機(jī)的電源是5V,所以充電到0.

16、7倍即為3.5V),需要的時間是10K*10UF=0.1S。也就是說在電腦啟動的0.1S內(nèi),電容兩端的電壓時在03.5V增加。這個時候10K電阻兩端的電壓為從51.5V減少(串聯(lián)電路各處電壓之和為總電壓)。所以在0.1S內(nèi),RST引腳所接收到的電壓是5V1.5V。在5V正常工作的51單片機(jī)中小于1.5V的電壓信號為低電平信號,而大于1.5V的電壓信號為高電平信號。所以在開機(jī)0.1S內(nèi),單片機(jī)系統(tǒng)自動復(fù)位(RST引腳接收到的高電平信號時間為0.1S左右)。在單片機(jī)啟動0.1S后,電容C兩端的電壓持續(xù)充電為5V,這時候10K電阻兩端的電壓接近于0V,RST處于低電平所以系統(tǒng)正常工作。當(dāng)按鍵按下的時

17、候,開關(guān)導(dǎo)通,這個時候電容兩端形成了一個回路,電容被短路,所以在按鍵按下的這個過程中,電容開始釋放之前充的電量。隨著時間的推移,電容的電壓在0.1S內(nèi),從 5V釋放到變?yōu)榱?.5V甚至更小。根據(jù)串聯(lián)電路電壓為各處之和,這個時候10K電阻兩端的電壓為3.5V,甚至更大,所以RST引腳又接收到高電平,單片機(jī)系統(tǒng)自動復(fù)位。2.4 按鍵部分電路圖按鍵電路主要分為兩種,一種為掃描式按鍵,所謂掃描式按鍵就是對按鍵進(jìn)行定期的逐個或者逐行的掃描,然后通過判斷掃描處的高低電平,判斷按鍵是否按下,這種按鍵被廣泛應(yīng)用在移動設(shè)備與電氣設(shè)備中;另外一種按鍵的檢測方式為AD檢測,每個按鍵串一個電阻,組成一個電阻串聯(lián)的網(wǎng)絡(luò)

18、,每個按鍵按下,對AD檢測口所分的的電壓就不相同,通過檢測AD值的變化來達(dá)到按鍵檢測的目的,該方式的優(yōu)點(diǎn)是,使用的I/O口少,在單片機(jī)外圍I/O資源不充足時比較適宜使用,但是該方法容易受到干擾,并且按鍵的個數(shù)受到ADC檢測的精度約束,對于本設(shè)計由于使用的按鍵較少,并且單片機(jī)的I/O口資源比較豐富,所以使用獨(dú)立式按鍵作為本設(shè)計按鍵的輸入部分,其按鍵電路圖如圖2.2所示。如圖2.2所示,本設(shè)計使用四個獨(dú)立按鍵,每個獨(dú)立按鍵占用單片機(jī)的一個I/O口,單片機(jī)在檢測時,先將K1K4的I/O口的狀態(tài)全都置為高電平,然后不斷的檢測這四個I/O口的狀態(tài),通過if語句判斷是否有I/O口為低電平,如果為低電平證明

19、有按鍵按下,然后單片機(jī)需要做消除抖動的程序,因?yàn)橛行r候從單片機(jī)的線上會進(jìn)入一些干擾,這些干擾會使單片機(jī)誤認(rèn)為是按鍵動作,所以根據(jù)機(jī)械彈性的反彈接觸曲線,做20ms的延時是最理想的,延時后再次檢測按鍵,如果按鍵還是為低電平,則證明有按鍵按下,如果不是低電平則此按鍵信號為干擾信號,跳出程序,如果有按下則while(1)等待按鍵釋放,這樣就完成了整個獨(dú)立按鍵功能的判斷。圖2.2 按鍵電路圖2.5 光電檢測部分光電檢測部分電路圖如圖2.3所示,光電檢測模塊,接口如圖所示,輸入電壓為5V直流信號輸入,3、4引腳為地,2引腳為輸出,模塊中輸出使用的是LM358運(yùn)放做的比較器輸出,輸出具有一定的驅(qū)動能力,

20、所以不需要加上拉電阻,使用簡單方便,當(dāng)有信號擋道傳感器前面時,INT1引腳返回高電平信號,否則返回低電平信號,INT1引腳接到單片機(jī)的P3.5上。圖2.3 光電檢測電路圖2.6 人體熱釋電傳感器人體熱釋電傳感器模塊使用HC-SR501,該模塊的參數(shù)如下:1、全自動感應(yīng):人進(jìn)入其感應(yīng)范圍則輸出高電平, 人離開感應(yīng)范圍則自動延時關(guān)閉高電平,輸出低電平。2、光敏控制(可選擇,出廠時未設(shè))可設(shè)置光敏控制,白天或光線強(qiáng)時不感應(yīng)。3、溫度補(bǔ)償(可選擇,出廠時未設(shè)):在夏天當(dāng)環(huán)境溫度升高至3032,探測距離稍變短,溫度補(bǔ)償可作一定的性能補(bǔ)償。4、兩種觸發(fā)方式:(可跳線選擇)a、不可重復(fù)觸發(fā)方式:即感應(yīng)輸出高

21、電平后,延時時間段一結(jié)束,輸出將自動從高電平變成低電平;b、可重復(fù)觸發(fā)方式:即感應(yīng)輸出高電平后,在延時時間段內(nèi),如果有人體在其感應(yīng)范圍活動,其輸出將一直保持高電平,直到人離開后才延時將高電平變?yōu)榈碗娖剑ǜ袘?yīng)模塊檢測到人體的每一次活動后會自動順延一個延時時間段,并且以最后一次活動的時間為延時時間的起始點(diǎn))。5、具有感應(yīng)封鎖時間(默認(rèn)設(shè)置:2.5S 封鎖時間):感應(yīng)模塊在每一次感應(yīng)輸出后(高電平變成低電平),可以緊跟著設(shè)置一個封鎖時間段,在此時間段內(nèi)感應(yīng)器不接受任何感應(yīng)信號。此功能可以實(shí)現(xiàn)“感應(yīng)輸出時間”和“封鎖時間”兩者的間隔工作,可應(yīng)用于間隔探測產(chǎn)品;同時此功能可有效抑制負(fù)載切換過程中產(chǎn)生的各

22、種干擾。(此時間可設(shè)置在零點(diǎn)幾秒幾十秒鐘)。6、工作電壓范圍寬:默認(rèn)工作電壓DC4.5V-20V。7、微功耗:靜態(tài)電流<50 微安,特別適合干電池供電的自動控制產(chǎn)品。8、輸出高電平信號:可方便與各類電路實(shí)現(xiàn)對接。其電路圖如圖2.4所示,接口電壓為5V,INT0接入到單片機(jī)的P3.2引腳,高電平為有人體熱釋電信號,低電平為無人體信號。圖2.4 紅外熱釋電接口電路圖2.7 電機(jī)驅(qū)動電路電動機(jī)驅(qū)動部分使用驅(qū)動模塊,該驅(qū)動模塊使用的驅(qū)動芯片為L9110,該芯片一個可以驅(qū)動一個電動機(jī),輸入部分為兩個引腳,其電路圖如圖2.5所示,其中控制信號Control_A與Control_B來控制電機(jī)運(yùn)行,當(dāng)C

23、ontrol_A為0,Control_B為1時電機(jī)正傳,此時通過PWM信號控制Control_A可以調(diào)整速度,當(dāng)Control_A為1,Control_B為0時電動機(jī)反轉(zhuǎn),此時通過PWM控制Control_B來調(diào)整速度。圖2.5 驅(qū)動接口電路圖3 軟件部分設(shè)計程序設(shè)計的基本概念有程序、數(shù)據(jù)、子程序、子例程、協(xié)同例程、模塊以及順序性、并發(fā)性、并行性、和分布性等。程序是程序設(shè)計中最為基本的概念,子程序和協(xié)同例程都是為了便于進(jìn)行程序設(shè)計而建立的程序設(shè)計基本單位,順序性、并發(fā)性、并行性和分布性反映程序的內(nèi)在特性。 在硬件系統(tǒng)設(shè)計好以后,就要設(shè)計相應(yīng)的程序?qū)崿F(xiàn)系統(tǒng)功能。把整個過程分成若干個部分,每一部分

24、叫做一個模塊。把一個程序分成具有多個明確任務(wù)的程序模塊,分別編制、調(diào)試后再把它們連接在一起形成一個完整的程序,這樣的程序設(shè)計方法稱為模塊化程序設(shè)計。所謂“模塊”,實(shí)質(zhì)上就是能完成一定功能,并相對獨(dú)立的程序段,這種程序設(shè)計方法稱為模塊程序設(shè)計法。模塊程序設(shè)計法的主要優(yōu)點(diǎn)是:(1)單個模塊比起一個完整的程序易編寫、調(diào)試及修改。(2)程序的易讀性好。(3)程序的修改可局部化。(4)模塊可以共存,一個模塊可以被多個任務(wù)在不同條件下調(diào)用。(5)模塊程序允許設(shè)計者分割任務(wù)和利用已有程序,為設(shè)計者提供方便。3.1 總程序設(shè)計本設(shè)計為基于單片機(jī)的自動門控制,程序控制部分較為復(fù)雜的是PWM驅(qū)動輸出功能,因?yàn)殡姍C(jī)

25、在運(yùn)行時,啟動時需要有個加速的過程,停止時要有一個減速的過程,所以電機(jī)運(yùn)行時需要PWM控制電機(jī)運(yùn)行的加速與減速,這樣需要使用到單片機(jī)的定時器作為PWM定時的功能定時器,然后是按鍵功能與門控的判斷控制部分。主函數(shù)程序設(shè)計流程圖如圖3.1所示,單片機(jī)上電后,對定時器進(jìn)行初始化設(shè)置,配置定時器0,工作模式1,16位定時器,手動裝入初始計時值,將定時時間定位1ms,這樣PWM的調(diào)整度為20,則PWM調(diào)整的頻率為50Hz,然后打開定時器0中斷,由于定時運(yùn)行的PWM需要有個時間周期來維護(hù)運(yùn)行,所以需要將定時器1配置為定時器,定時時間配置為50ms,開啟中斷,然后開啟總中斷,進(jìn)入while循環(huán)函數(shù),該函數(shù)里

26、完成所有功能函數(shù)的動作,主要包括,按鍵查詢與執(zhí)行函數(shù),自動手動模式指示燈函數(shù),門控指示燈控制函數(shù),自動門控函數(shù)。開 始初始化定時器0初始化定時器1停止電機(jī)輸出按鍵處理函數(shù)模式指示燈門控指示燈自動門控判斷圖3.1 總體設(shè)計流程圖3.2 按鍵程序流程圖按鍵掃描程序?yàn)楠?dú)立按鍵的掃描程序,主要完成按鍵的判斷,延時去抖動,判斷是否有按鍵確實(shí)按下,然后對對應(yīng)的按鍵的功能做詳細(xì)的介紹,其按鍵掃描程序的流程圖如圖3.2所示,首先使用if語句判斷是否按鍵1按下,如果按下則為低電平,然后進(jìn)入20mS延時函數(shù),防止抖動,然后再次判斷該按鍵是否按下,如果確實(shí)按下則進(jìn)入對應(yīng)的按鍵的執(zhí)行函數(shù)。開 始延時20mS按鍵1按下

27、按鍵1按下延時20mS按鍵2按下按鍵2按下延時20mS按鍵3按下按鍵3按下延時20mS按鍵4按下按鍵4按下結(jié) 束限位信號工作模式切換手動開門手動關(guān)門YNYNYNYNYNYNYNYN圖3.2 按鍵掃描程序流程圖3.3 定時器0中斷定時器0中斷主要用來負(fù)責(zé)對PWM信號的產(chǎn)生,每次進(jìn)入中斷首先裝入定時器的初始值,然后將定時累加值Timer0_Com加1,因?yàn)镻WM的頻率定為50Hz,所以當(dāng)累加值大于19時,定時時間為20Ms,為一個判斷周期,需要將Timer0_Com清0,然后判斷累計值與PWM調(diào)節(jié)值的帶下,如果小于PWM則輸出電機(jī)驅(qū)動信號低電平,否則為高電平,這樣就將PWM信號輸出到單片機(jī)驅(qū)動模塊

28、端了,其定時器0中斷流程圖如圖3.3所示。中斷入口裝入定時初始值定時累計值加1累計值>19定時累計清0累計值<pwm值如果是開門A=0;B=1A=1;B=0A=1;B=1返 回YNYNYN圖3.3 定時器0中斷函數(shù)流程圖3.4 門控判斷程序進(jìn)入該程序先判斷是否為自動模式,如果不是則跳出函數(shù),否則檢測是否有紅外信號,如果有則檢測當(dāng)前狀態(tài),如果為靜止或者關(guān)門狀態(tài)則開門,如果沒有紅外信號,檢測門是否有光電信號,如果有則將門打開,其門控判斷程序流程圖如圖3.4所示。開 始如果為自動模式Y(jié)N如果有紅外信號YN如果靜止?fàn)顟B(tài)YN開門如果關(guān)門狀態(tài)YN開門如果關(guān)門狀態(tài)YN如果有光電信號YN開門返 回

29、圖3.4 門控函數(shù)流程圖參考文獻(xiàn)1傳感器及其應(yīng)用.張金鐸 金歡陽名編著.西安電子科技大學(xué)出版社,2002.2傳感器及其應(yīng)用實(shí)例.何希才編著.機(jī)械工業(yè)出版社.2003.3傳感器的理論與設(shè)計基礎(chǔ)及其應(yīng)用,單成祥 編著.國際工業(yè)出版社 .2002.4傳感器技術(shù)與應(yīng)用.金慶發(fā)編著.機(jī)械工業(yè)出版社.1994.5單片微行計算機(jī)原理、應(yīng)用及接口技術(shù).張迎新編著.國防工業(yè)出版社.2000.6電子技術(shù)基礎(chǔ)康華光.陳大欽編著.高等教育出版社,1998.7單片機(jī)原理及其接口技術(shù).胡漢才編著.北京:清華大學(xué)出版社.2004.8紅外線探測與控制電路. 陳永甫編著.北京:人民郵電出版社.2004.9傳感器工作原理及應(yīng)用實(shí)

30、例.黃繼昌.徐巧魚等編著.人民郵電出版社.2002.10基于單片機(jī)的智能系統(tǒng)設(shè)計與實(shí)現(xiàn).沈紅衛(wèi)編著.北京.電子工業(yè)出版社.2005.11現(xiàn)場總線技術(shù)及其應(yīng)用.陽憲惠編著.清華大學(xué)出版社.1999.12單片機(jī)原理應(yīng)用與實(shí)驗(yàn).張友德,等編著.復(fù)旦大學(xué)出版社.2000.13單片機(jī)原理及接口技術(shù).李朝青編著.北京航空航天大學(xué)出版社.1996.14數(shù)字電子技術(shù)基礎(chǔ).閻石編著.高等教育出版社.1998.15向鳳紅.自動控制原理.陳玉宏編著.重慶:重慶大學(xué)出版社.2003.附錄A 系統(tǒng)原理圖附錄B 程序代碼#include "delay.h"uchar Timer0_Com = 0;uc

31、har Pwm_Val = 0;uint Timer1_Com = 0;void Deal_AutoJudge( void ); /DistancValue SpeedValuevoid KeyBoard_Deal( void );sbit KEY_1 = P03;sbit KEY_2 = P02;sbit KEY_3 = P01;sbit KEY_4 = P00;sbit KEY_5 = P37;sbit KEY_6 = P36;sbit JC_DOOR = P20;sbit JC_INFR = P32;sbit MOTOR_A = P26;sbit MOTOR_B = P27;sbit L

32、ED1 = P06;sbit LED2 = P05;sbit LED3 = P04;bit WORK_FLAGE = 0; /-工作模式 默認(rèn)為手動模式 bit SINGEL_FLAGE = 0; /-開關(guān)門限位信號uchar DOOR_STAT = 0;uchar Work_Mode = 0;void Init_Timer( void )TMOD = 0x11;TH0 = 0XFC;TL0 = 0X17;ET0 = 1; TH1 = 0X3C;TL1 = 0Xb0;ET1 = 1; EA = 1;TR0 = 0;TR1 = 0;void main( void )/-定時器初始化Init_Ti

33、mer( );MOTOR_A = 1;MOTOR_B = 1;while(1)/-按鍵掃描KeyBoard_Deal( );/-自動與手動模式判斷if( WORK_FLAGE )LED1 = 0;else LED1 = 1;/-是否開啟門控判斷if( DOOR_STAT = 0 )LED2 = 1, LED3 = 1, Work_Mode = 0, TR1 = 0, TR0 = 0;else LED2 = 1;LED3 = 1;if( DOOR_STAT = 1 )LED2 = 0;else if( DOOR_STAT = 2 )LED3 = 0;/-自動檢測判斷Deal_AutoJudge(

34、 );void Deal_AutoJudge( void )/-處理自動檢測if( WORK_FLAGE = 0 )return;if( JC_INFR = 1 )if( DOOR_STAT = 0 )DOOR_STAT = 1; /-開門Work_Mode = 0;Pwm_Val = 0;TR1 = 1;else if( DOOR_STAT = 2 )DOOR_STAT = 0; /-停止關(guān)門delay_ms(500);DOOR_STAT = 1; /-開門Work_Mode = 0;Pwm_Val = 0;TR1 = 1;else /-如果沒有感應(yīng)信號/-如果在開門狀態(tài),則關(guān)門if( DO

35、OR_STAT = 1 )if( JC_DOOR = 0 )DOOR_STAT = 0; /-停止關(guān)門delay_ms(500);DOOR_STAT = 2; /-關(guān)門Work_Mode = 0;Pwm_Val = 0;TR1 = 1;else if( DOOR_STAT = 2 )if( JC_DOOR = 1 )DOOR_STAT = 0; /-停止關(guān)門delay_ms(500);DOOR_STAT = 1; /-開門Work_Mode = 0;Pwm_Val = 0;TR1 = 1;/*函數(shù)名稱:void Int_Timer1( void ) interrupt 3*函數(shù)功能:定時器1中

36、斷函數(shù) 100HZ PWM 輸出*入口函數(shù): *出口函數(shù):*/void Int_Timer1( void ) interrupt 3TH1 = 0X3c;TL1 = 0Xb0;Timer1_Com +;if( Timer1_Com > 3 )Timer1_Com = 0;switch( Work_Mode )case 0:TR0 = 1;Work_Mode = 1; /-開始加速break;case 1:Pwm_Val+;if( Pwm_Val > 19 )Work_Mode = 2;break;case 2: /-勻速運(yùn)行 直到檢測到門限位信號if( SINGEL_FLAGE )SINGEL_FLAG

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論