久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 22188|回復: 0
打印 上一主題 下一主題
收起左側

基于單片機的自動門控系統設計論文與全套資料下載

[復制鏈接]
跳轉到指定樓層
樓主
ID:307189 發表于 2018-4-13 11:02 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

題目:于單片機的自動門控系統設計

The automatic door control system design based on MCU

摘  要

隨著現代化的高速發展,自動門已經在我們的生活中四處可見。自動門既美觀又方便了人們的出入,給了人們更好的人性化享受。同時自動門控系統逐漸向大型化、智能化的方向發展。本論文著重闡述了以單片機為控制器,傳感器及步進電機為核心元件的系統。

本設計是用STC89C52單片機作為控制器,步進電機、熱釋電型紅外傳感器、led指示燈、蜂鳴器相結合的系統。熱釋電紅外傳感器給單片機傳輸檢測信號,通過單片機控制電機驅動,從而控制電機轉動,實現門的自動開關。充分發揮了單片機的性能。其優點是硬件可設計性強,軟件功能強大,整體系統安全可靠,性價比高等,具有一定的實用和參考價值。


目 錄


Abstract
1.緒 論
1.1本課題國內外研究現狀及發展趨勢
1.2本課題研究的意義與目的
1.3本課題的設計與要求
2.系統總體方案設計及論證
2.1設計的基本設計思路
2.2系統控制核心的對比及選擇
2.3無刷電機和步進電機的對比以及選擇
2.4傳感器的選擇
2.5總體方案論證
3.硬件系統設計
3.1單片機介紹
3.1.1 STC89C52主要特性
3.1.2 STC89C52管腳說明
3.1.3引腳具體方案
3.2紅外熱釋電模塊HC-SR501
3.2.1 HC-SR501特性
3.2.2紅外模塊調整方案
3.3步進電機
3.3.1步進電機特點
3.3.2驅動控制系統組成
3.3.3步進電機運行方案
3.4電路設計框圖及原理
4.軟件系統設計
4.1程序設計思路
4.2系統運行流程圖
4.3主程序分析
4.3.1程序聲明
4.3.2子函數聲明
4.3.3單片機引腳聲明
4.3.4全局變量
4.3.5主函數實現部分
4.3.6中斷函數
總 結
參考文獻
致 謝


1.緒 論1.1本課題國內外研究現狀及發展趨勢

第一臺在世界范圍內銷售的自動門控系統是由DOORMX開發,相比國內要早很多。1802年8月德標公司成功設計并開發出世界第一臺感應自動門,并且為自動門能順暢,平靜,安全運行,多樣化地設計的創新理念努力設計,生產出了高品質和值得依賴的產品,并且有完整的解決方案提供,但價格十分昂貴。

目前國內自動門控系統生產規模一般不大,自主研發能力也不夠高,新產品開發能力和質量穩定性方面還無法和進口產品競爭。而本身國內的標準很少,所以要明確一個標準才能體現一個產品的完整嚴密。近年來出現了很多生產相關零部件的廠家,使得自動門生產門檻降低、競爭日益激烈。目前國內廠家的產品基本上也都具備了較完善的功能,但生產工藝略顯粗糙,質量參差不齊,整體檔次較低,主要集中在中低端市場。

日后的自動門技術的發展方向將會是:

多功能,人性化:今后的自動門控系統還將加入更多新功能,比如用手機遠程控制;人臉(指紋)識別,增加安全性能等等

免維護:采取多種優化措施,減少使用過程中的維護工作。

多樣化:將會有各種各樣不同外觀和功能的產品,滿足各類用戶的不同需要。

安全性:隨著用戶安全意識的提高,安全性將是用戶看重的首要指標,也將是一項基本要求。

1.2本課題研究的意義與目的

自動門適合于賓館、酒店、銀行、寫字樓、醫院、商場等,應用非常廣泛。自動門除了方便我們出入,還可以節約空調用電、防風、防塵。隨著我國現代化的快速發展,各類場所對自動門的需求也越來越大,高端場所為了提升豪華程度也對自動門功能有了更高的要求。現有的一些自動門功能比較簡單,使用不夠人性化,而且安全系數不高,所以設計出一套既安全效率又高的自動門控系統迫在眉睫。

大部分自動門都是在門的內外兩側安裝探測器,有人經過則探測器響應給處理器信號,處理器控制電機運行實現開門,無人的情況下處理器控制關門。由于自動化程度較高可以實現無人管理,于是在市場上得到了大范圍應用。我在這次畢業設計中所選擇的就是單片機、紅外模塊與門結合的產物——自動門控系統。

1.3本課題的設計與要求

    任何一個控制系統的研發,首先要明確設計基本要求,即分析輸入信號、輸出信號及需要完成的控制。紅外線感應自動門,即用熱釋電紅外線傳感器來感應門前有無人進出,并將信號發送給控制器,由控制器控制電機轉動以達到自動門開閉門的目的。這是最基本的要求,還需要加入其它人性化的功能,例如自動門自動調速、防夾、指示燈信息等等

根據系統要求實現的功能,設計中要注意以下幾個問題:
   一、智能化設計
   自動門選擇配置智能化控制系統,可手動控制門開關,調節方便。使自動門始終保持在最佳運行狀態。并具有提示警示功能,在開關門之前有信號提示。
  二、安全性設計
   電機能實現隨時正轉反轉,意外情況可以反向開門,避免夾人現象出現。使用優良的原器件,保證安全性,延長運行壽命。
三、穩定性設計
   自動門采用步進電機驅動,相對傳統交流伺服電機來說具有省電、高扭矩、低噪音、不過熱等優點。
四。具體場合使用設計
    1、安全輔助裝置
    如在私人場所加裝指紋(人臉)識別系統,在便捷的基礎上大大增強了安全性。
2、備用電源
   在大型商場等地方必須做好安全疏散工作,用備用電源可以保證在停電情況下,自動門能發揮作用。
    3、超聲波距離傳感器
    在需要的地方,可以通過確定目標距離來有效防止門誤開誤關。

本次課題的中心部分就是使用紅外傳感器產生信號,單片機控制步進電機的紅外感應自動門控系統,關鍵部分分別為紅外傳感器、步進電機、單片機控制芯片、led燈、蜂鳴器等,完成的是一個安全可靠,并且效率兼備的自動門控系統。


2.系統總體方案設計及論證2.1設計的基本設計思路
  • 有人來時(進門或出門)開門。熱釋電紅外傳感器檢測到人的信號之后,電機將啟動運轉通過傳動系統打開門。

    2、無人時延遲關門,開門之后當熱釋電紅外模塊沒有檢測到人,將進入等待狀態,若檢測到有人則延遲進入等待狀態。

3、關門中途來人,立即反向開門。準備關門時檢測到有人則不關門等待。

4、開關門之前伴隨提示信號,起警示作用

2.2系統控制核心的對比及選擇

自動門控制系統是利用電機來帶動自動門機械系統實現開關門。由于自動門系統工作環境和對象的特殊性,該系統要求實現開關門必須快速、平穩、沖擊力小并且可靠運行,這樣就要求系統的數字控制。所以,可以使用的控制芯片有很多種,比如說單片機、PLC、DSP等等。所以這里我對比了單片機和PLC的功能使用。

PLC剛引入國內時,人們稱之為PC。后來,IBM-PC獲得廣泛應用,PC成了個人電腦的代名詞,才改名為為PLC。

PLC是智能產品,板級的CPU肯定是不能考慮的,MPU也要好幾塊集成電路構成,以Z80 MPU為例,需要Z80MPU、PIO、CTC、SIO、EPROM、SRAM等,把這些電路集成在一塊電路板上,這就是早期的單板計算機。這種方案體積大,不符合現代要求。由此可見,PLC的核心控制器采用單片機是最合適的。

由此可得出結論:微型、小型、中型到大型控制系統都可以由單片機構成,PLC只是單片機應用的一個特例。單片機系統有一定的互換性,有質量保障,正是單片機相對于PLC能獲得廣泛應用的原因。

最后,從工程的角度,談談PLC與單片機系統的選用:

(1)對單項工程或重復數極少的項目,PLC方案是明智、快捷的選擇,成功率高,可靠性好,但成本較高。

(2)對于批量生產,單片機系統成本低、效益高。而且單片機的外圍設備擴展更容易掌握和控制,并且有高度的兼容性和穩定性。

故此,針對本次設計參考工業量產的自動門標準,并且考慮到資金的緣故,我采用單片機作為系統的核心控制器。

AT89C51單片機具備一個完整的計算器所需要的基本組成部分,并且指令系統功能強大,執行快。

本設計采用升級的STC89C52單片機作為CPU,相對于AT89C51增加的了數據存儲器和程序數據存儲器大小,多了一個計時器,在本設計中引腳、功能使用與51保持一致,而且與單片機開發板配套節約了成本。

2.3無刷電機和步進電機的對比以及選擇

這次設計中最重要的執行單元就是電機部分,需要控制好電機來帶動門的開關。而平開門只是直線運動,更要求電機完成直線運動的穩定。這樣,我們選擇電機的時候就必須在多個方面考慮,比如說穩定性,高效率,安全性來選擇電機。這里我們分析步進電機和無刷電機的對比。

步進電機是一種可以轉動固定角度的執行機構。當步進電機驅動接收到一個信號時,它就驅動步進電機按設定的方向轉動一個固定的角度。控制器可以通過控制脈沖個數來控制旋轉角度精確定位;同時可以通過控制信號頻率來控制電機轉速,達到控制速度的目的。步進電機利用其角度控制功能以及沒有積累誤差的特點,廣泛應用于各種開源控制。

直流無刷電動機具有優秀的線形機械特性、寬的調速范圍、大的啟動扭矩、簡單的控制電路等優點,長期以來廣泛地應用在各種驅動裝置和伺服系統中。但是,直流電機的電刷以及換向器卻成為阻礙它發展的障礙。而現在無刷電機的轉子是電磁鐵做成的永磁體,這樣結構上正好與普通的直流電機相反,不會出現步進電機出現磁性減弱的現象。去掉了電刷這部分換成電子換向器,也是為了讓電機更加穩定有效的運行。

本次設計中,考慮到為了更方便的控制門行程,防止開關門過盈,在這方面步進電機的旋轉是以固定的角度一步一步運行的,更具優勢,能輕松控制門轉動固定角度。而且控制電機能瞬間反轉需要提供較大的力矩,步進電機更能滿足要求。所以選擇步進電機。

2.4傳感器的選擇

    目前自動門行業運用的傳感器件主要有微波感應器、紅外感應器等。微波傳感器反應速度快,可以對物體的移動進行反饋,適用于人員通過的場所,微波感應器是基于多普勒原理的傳感器,整機關鍵元件均為進口器件,確保了產品可靠性。

    微波感應器是以10.525GHz頻率發射、接收。其探測方式具體如下優點:

    1.非接觸探測。

    2.不受溫度、濕度、噪音。

    紅外傳感器反應很靈敏,只要處于它的探測范圍內,都會有反應。根據不同的功能和性能應用在各類不同場合的自動控制系統中,是自動門控系統的關鍵部位,其性能直接影響自動門控系統的安全穩定,如在高檔酒店、寫字樓,可以選擇高靈敏度的感應器,在人行道邊上的銀行、商場等經常有人路過的地方可以選擇窄區域的感應器。

熱釋電紅外傳感器是基于熱釋電效應工作的。由探測元件將接收到的紅外輻射轉變成微弱的電壓信號,放大后向外部輸出。一般在探測器的前方裝一個菲涅爾透鏡提高探測器的靈敏度以增大探測距離,它和放大電路相結合,可將信號放大70分貝以上,可以探測出10-20米范圍內人的活動。當人體進入檢測區時,因人體與環境輻射溫度有差別,產生溫度差ΔT,則有信號輸出;若人體進入檢測區后不動,則溫度沒有變化,傳感器沒有輸出,所以這種傳感器能方便檢測人體或者動物的活動。

熱釋紅外線傳感器內部結構與電路如下圖1所示。

圖1.熱釋紅外線傳感器內部結構與電路

傳感器的組成部分有外殼、濾光片、PZT、FET等。其中,濾光片對太陽光和熒光燈光的短波長(約5mm以下)可以濾除。熱釋電元件PZT將波長在8mm-12mm之間的紅外信號的微弱變化轉變為電信號,在它的輻射照面通常覆蓋有特殊的菲涅耳濾光片,只對人體的紅外輻射敏感,明顯減少環境的干擾

熱釋電紅外探頭具有以下優點:

    價格低廉(選擇的首要原因),自身不發生輻射、功耗小(單片機電路可以輕松驅動)、隱蔽性好。

本次設計在功能允許的情況下考慮了成本問題故采用熱釋電紅外傳感器。

2.5總體方案論證
本采用單片機為主控制器,使用熱釋電型紅外線傳感器來檢測人體輻射,其特點是只對人體輻射有感應,這樣會明顯減少誤報操作。并且可以通過D/A轉換來控制步進電機正轉/反轉,轉動固定角度,更高效率的完成每一次開關門,而且設計中更體現了防夾系統,即遇阻檢測系統,更加安全,最后的外圍設備電子時鐘、蜂鳴器、led燈也是由單片機來控制,更加人性化。這種方案的優點是有目共睹的。

3.硬件系統設計3.1單片機介紹   
3.1.1 STC89C52主要特性
3.2紅外熱釋電模塊HC-SR501    3.2.1 HC-SR501特性

    技術參數:

1.工作電壓:DC5V至20V

    2.靜態功耗:65微安

    3.電平輸出:高3.3V,低0V

    4.延時時間:可調(0.3秒~18秒)

5.封鎖時間:默認0.2秒

6.觸發方式:L不可重復,H可重復,默認值為H

7.感應范圍:小于120度錐角,7米以內

8.工作溫度:-15~+70度

功能特點:

  • 全自動感應:當有人進入其探測范圍則輸入高電平,人離開后延時輸出低電平。
  • 光敏控制(可選):光敏控制為可選功能,出廠時未安裝光敏電阻。
  • 兩種觸發方式:L不可重復,H可重復。可跳線選擇,默認為H。 A.不可重復觸發方式:即感應到紅外信號輸出高電平后,延時然后輸出低電平,期間不探測紅外信號 B.可重復觸發方式: 即感應到紅外信號輸出高電平后,在延時時間段內,繼續探測紅外信號,如果有人體在其探測范圍內活動,其輸出將一直保持高電平,直到人離開后才延時將高電平變為低電平
  • 具有感應封鎖時間(默認設置:0.2秒):在封鎖時間段內感應器不接收任何紅外信號。可應用于間隔探測產品。也可以有效抑制外界頻繁的干擾。
  • 工作電壓范圍寬:默認工作電壓DC5V至20V

    6.微功耗:靜態電流65微安,特別適合干電池供電的電器產品。

7.輸出高電平信號:可方便與各類電路實現對接。

應用范圍:作為傳感器它能配合單片機、繼電器實現對各類家用、商用電器的開關控制,是一種高技術產品。在 安防產品、人體感應玩具、人體感應燈具、工業自動化控制等方面都有應用。

    3.2.2紅外模塊調整方案

    1.購買的是基于紅外線技術的自動控制模塊HC-SR501,經測試靈敏度太高,故調整感應距離至最低3m,

  • 買來的元件采用不可觸發方式,更改為效果更優的可重復觸發方式:即探測到人信號后輸出高電平后,在延時時間段內,如果有人體在其探測范圍活動,其輸出將一直保持高電平,直到人離開后才延時將高電平變為低電平。

    3.將延遲時間設為2s,確保單片機每次間歇接收紅外模塊信號都正確,使系統更加安全可靠。

3.3步進電機    3.3.1步進電機特點

步進電機是純粹的數字控制電動機,它將脈沖信號轉變成角位移.即一個脈沖信號,步進電動機就轉動一個角度.因此作常適合單片機控制。近30年來.步進電動機的發展得益于數字技術、計算機技術和水磁材料的迅速發展,步進電動機的應用現階段具有廣闊的前景。

步進電動機有如下特點:

  • 步進電機的角位移與輸入信號數嚴格成正比具有良好的跟隨型。由步進電動機與驅動電路組成的開系統,非常簡單、廉價,又非常可靠。
  • 步進電動機的動態響應快。易于停、正反轉及變速。
  • 速度可在寬的范圍內平滑調節。低速下仍能保證獲很大矩,因此,一般可以不用減速器可以直接驅動負載。
  • 步進電動機只能通過脈沖電源供電才能行。它不能直接使用交流電源和直流電源
  • 步進電動機存在振蕩和失步現象必須對控制系統和負載采取相應的防干擾措施。

6、步進電動機自身的噪音和振動較大,帶慣性負載的能力較差。

    3.3.2驅動控制系統組成

    步進電機必須由環形脈沖、功率放大器等組成的系統進行控制,其方框圖如圖3所示:

圖3.電機驅動系統流程圖

步進電動機的驅動電路根據控制信號工作,在步進電動機的單片機控制中,控制信號由單片機產生。其基本控制作用如下:

(1) 反應式步進電動機控制換相順序

步進電動機的通電換相順序嚴格安照步進電動機的工作方式進行。通常我們把通電換相這—過程稱為脈沖分配。三相六拍步進電機工作方式通電換相的正序是A-AB-B-BC-C-CA;反序為A-CA-C-BC-B-AB;共有八個通電狀態P1口輸出控制信號,0表示繞子通電,表示繞子斷電,則可以用六個字來表示六個通電狀態。這六個字表示如表1所示:

A

1

1

0

06H

AB

1

0

0

08H

B

1

0

1

09H

BC

0

0

1

01H

C

0

1

1

03H

CA

0

1

0

02H

表1.通電狀態

(2)通電狀態 P1.2(C) P1.1(B) P1.0(A) 控制

(3) 控制電路如圖4所示:

圖4.步進電機驅動電路圖

    3.3.3步進電機運行方案

步進電機開關門過程分為8步,每步正向或者反向轉360度,每步完成之后都由單片機檢測紅外模塊信號,然后繼續控制電機正轉或者反轉一步,達到安全開關門的目的。

3.4電路設計框圖及原理

    平移式自動門機組由以下部件組成:

1.STC89C52:它是自動門的中心處理器,檢測紅外模塊信號發出相應指令,指揮步進電機、led指示燈,蜂鳴器等工作。

2.熱釋電紅外模塊:負責探測外部紅外輻射,當人進入他的輻射范圍時,它就輸出高電平,由單片機接收。 

3.步進電機:提供開門與關門的主動力,控制門轉動固定角度。 

4.led指示燈:多種閃爍方式提示自動門的工作狀態。 

    5.蜂鳴器:開關門之前伴隨響聲,起警示作用

6.兩個外部按鈕:控制門手動開和和關。

一次自動化工作流程如下:

感應探測器探測到有人進入時,熱釋電紅外模塊輸出高電平給單片機,單片機判斷后控制步進電機運行開門,開完門之后單片機檢測紅外模塊信號,高電平則延時進入等待狀態,低電平則進入3s的等待狀態,等待狀態之后是即將關門的警告狀態,然后再檢測紅外模塊,高電平則繼續等待不關門,低電平則進入關門狀態伴蜂鳴器響一聲,關門中途檢測紅外模塊若為高電平則立即反向開門,進入開門之后的步驟循環運行。

硬件電路如圖5所示:






4.軟件系統設計4.1程序設計思路
    本設計按以下思路展開研究:
  一、智能化設計
   設置兩個中斷按鈕實現手動開關門;設置led指示燈,空閑狀態、延時進入等待狀態、等待狀態 、警示狀態 、門開關行程均有不同led燈顯示;開關門前的瞬間均有蜂鳴器提示音。
   二、安全性設計
   當關門中途有人出現則反向開門,有人在則保持一直不關門;步進電機轉動分為8步,很好的控制了門行程,防止過盈間隙問題。

三、穩定性設計
     自動門采用步進電機驅動,相對傳統交流伺服電機來說具有省電、高扭矩、低噪音、不過熱等優點。

4.2系統運行流程圖



4.3主程序分析  
4.3.1.程序聲明

總 結

本次設計的題目是“基于單片機的自控門控系統設計”,我很認真而且有著從未有過的靜下心來學習的態度,學習了很多不是本專業的知識,受益匪淺,自己動手做出了自動門控系統,在反復的調試修改中將一個設計做好真是很有成就感。至此,我覺得,要做好一件事情必須要先在態度上認真,不放棄,然后才是發揮自己的能力去認真思考、學習一些東西,最后完成任務。
通過本次自動門控系統的設計,我才發現我所學的東西太少了,知識面的不牢固,在選擇方案的時候,不確定性太高。設計的時候查閱過的課本知識、硬件特性很多,深深的感覺到自己知識方面的缺陷,經過很長時間努力在畢業設計中我學到了很多,有很大的收獲。
做任何事情都要有好的態度耐心,首先我明白了做學問要一絲不茍,千萬不能有“差不多”的想法,遇到問題要想辦法通過正確的途徑去解決,在做事情的過程中要有耐心和毅力,只要堅持下去就可以找到思路去解決問題的。在工作中也一樣要有這種不放棄的態度,認真聽取別人的意見,在自己身上找問題這樣做起事情來就可以事倍功半。


致謝
大學生活四年已近尾聲,很懷念同學們坐在一個教室上課的時候,氛圍很好,可以安心的學習知識,也很遺憾自己所學的東西遠遠不夠。其實不管是上學和工作都是一個不斷學習的過程,比如這次畢業設計我就學到了不少知識。
本次畢業設計在王正家老師的悉心指導和鼓勵下已經完成,王老師指導很細心,我發過去的初稿都是一字一句仔細給我找問題,讓我少走彎路。每一個細節無不凝聚著王老師的心血和汗水,在我的畢業設計期間,王老師為我提供了很多關于硬件設計方面的知識,關于硬件的選用,軟件運行方式等等。王老師一絲不茍的作風,嚴謹求實的態度使我深受感動,讓我這么順利的完成畢業設計。在此向王正家老師表示深深的感謝!
在畢業之際,我還要借此機會向在這四年中給予我諸多幫助指導的各位老師表示由衷的謝意,感謝他們四年來的辛勤指導。不積跬步何以至千里,各位任課老師認真負責,在他們的悉心幫助和支持下,我掌握了很多有用的專業知識,并在設計中得以體現,順利完成畢業論文。
同時,在畢業設計寫作過程中,我還參考了有關的書籍和論文,在這里一并向有關的作者表示謝意。
我還要感謝我周圍同學對我的幫助,在硬件選用調試方面幫了我很大的忙,他門積極的幫我查找硬件資料,給了我很多的啟發,提出了很多寶貴的意見,對于你們幫助和支持,我表示深深地感謝!馬上畢業了,祝你們前程似錦!

單片機源程序如下:
  1.     4.3.1.程序聲明
  2. #include <reg52.h>
  3. #define uchar unsigned char  //無符號字符型 宏定義              變量范圍0~255
  4. #define uint  unsigned int              //無符號整型 宏定義              變量范圍0~65535
  5.     4.3.2子函數聲明
  6. void key() ;
  7. void bujindj();              //步進電機函數
  8. 4.3.3單片機引腳聲明
  9. sbit led1 = P2^0;   //指示燈
  10. sbit led2 = P2^1;
  11. sbit led3 = P2^2;
  12. sbit led4 = P2^3;

  13. sbit hw1 = P2^4;              //紅外感應
  14. sbit hw2 = P2^5;              //紅外感應    4.3.4全局變量
  15. unsigned char code zheng[4]={0x08,0x04,0x02,0x01};//正轉表格
  16. unsigned char code fan[4]  ={0x01,0x02,0x04,0x08};//反轉表格
  17.     4.3.5主函數實現部分




  18. void Delay(unsigned int i)//延時
  19. {
  20.               while(--i);
  21. }

  22. /***********************1ms延時函數*****************************/
  23. void delay_1ms(uint q)
  24. {
  25.               uint i,j;
  26.               for(i=0;i<q;i++)
  27.                             for(j=0;j<120;j++);
  28. }


  29. uchar key_can;
  30. /********************獨立按鍵程序*****************/
  31. void key()
  32. {
  33.               static uchar key_new;
  34.               if((P3 & 0xf0) != 0xf0)                            //按鍵按下
  35.               {
  36.                             Delay(1000);                                                        //按鍵消抖動
  37.                             if(((P3 & 0xf0) != 0xf0) && (key_new == 1))
  38.                             {                                                                                    //確認是按鍵按下
  39.                                           key_new = 0;
  40.                                           switch(P3 & 0xf0)
  41.                                           {
  42.                                                         case 0xe0:  key_can = 1;  break;              //得到按鍵值
  43.                                                         case 0xd0:  key_can = 2;  break;              //得到按鍵值
  44.                                                         case 0xb0:  key_can = 3;  break;              //得到按鍵值
  45.                                                         case 0x70:  key_can = 4;  break;              //得到按鍵值
  46.                                           }                                                      
  47.                             }            
  48.               }
  49.               else                 //按鍵松開
  50.                             key_new = 1;            
  51. }


  52. void bujindj()              //步進電機函數
  53. {
  54.               static uchar i;
  55.               if(flag_z_f != 0)            
  56.               {            
  57.                             if(flag_z_f == 1)                 //開
  58.                             {
  59.                                           if(bjdj_value >= 512)
  60.                                           {
  61.                                                         flag_z_f = 0;
  62.                                                         flag_zdg = 1;
  63.                                           }else
  64.                                                         bjdj_value ++;            
  65.                             }
  66.                             if(flag_z_f == 2)                 //關
  67.                             {                                                      
  68.                                           if(bjdj_value <= 1)
  69.                                           {
  70.                                                         flag_z_f = 0;
  71.                                                         bjdj_value = 1;
  72.                                           }else
  73.                                           {
  74.                                                         bjdj_value --;
  75.                                           }
  76.                             }
  77.                             for(i=0;i<4;i++)          //4相
  78.                             {
  79.                                           if(flag_z_f == 1)                //開
  80.                                                         P1=zheng[i];// & (P1 | 0xf0);                     //
  81.                                           else if(flag_z_f == 2)//關
  82.                                                         P1=fan[i];// & (P1 | 0xf0);                      //
  83.                             }
  84.               }
  85. }



  86. /******************主程序**********************/
  87. void main()
  88. {
  89.               static unsigned char value;            
  90.               while(1)
  91.               {
  92.                             key();
  93.                             if(key_can < 10)
  94.                             {                                                                                   
  95.                                           if(key_can == 1)              //自動模式
  96.                                           {
  97.                                                         flag_moshi = 0;
  98.                                                         flag_z_f = 0;
  99.                                                         led4 = 0; led3 = 1;              //指示燈
  100.                                           }
  101.                                           if(key_can == 2)              //手動模式
  102.                                           {
  103.                                                         flag_moshi = 1;
  104.                                                         flag_z_f = 0;
  105.                                                         led4 = 1; led3 = 0;              //指示燈
  106.                                           }
  107.                                           if(key_can == 3)               //手動關
  108.                                           {
  109.                                                         flag_z_f = 2;
  110.                                                         led2 = 0; led1 = 1;              //指示燈
  111.                                           }
  112.                                           if(key_can == 4)              //手動開
  113.                                           {
  114.                                                         flag_z_f = 1;
  115.                                                         led2 = 1; led1 = 0;              //指示燈
  116.                                           }
  117.                             }
  118.                             if(flag_moshi == 0)                //自動模式
  119.                             {
  120.                                           if((hw1 == 1) || (hw2 == 1))
  121.                                           {
  122.                                                         flag_z_f = 1;   //打開            
  123.                                                         led2 = 1; led1 = 0;              //指示燈
  124.                                                         flag_zdg = 0;
  125.                                                         flag_sj = 0;
  126.                                           }
  127.                                           if(flag_zdg == 1)              //延時自動關
  128.                                           {
  129. ……………………

  130. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:

pcb+源碼+電路原理圖:http://www.zg4o1577.cn/bbs/dpj-112829-1.html
論文:
基于單片機的自動門控系統設計.doc (442.96 KB, 下載次數: 197)



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂1 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: ww亚洲ww亚在线观看 | 人人做人人澡人人爽欧美 | 成人性视频免费网站 | 精品视频一区二区三区 | 亚洲视频免费在线播放 | 国产欧美一区二区三区日本久久久 | 亚洲成人a v | 午夜视频在线免费观看 | 国产一区二区三区在线 | 精品久久久久久久久久 | 欧美激情一区二区 | 欧美一区日韩一区 | 噜噜噜噜狠狠狠7777视频 | 久久久久国产精品一区二区 | 新疆少妇videos高潮 | 国产黄色小视频在线观看 | 中文字幕日韩在线观看 | 国产91网站在线观看 | 九九亚洲| 亚洲精品国产偷自在线观看 | 精品视频在线一区 | 免费午夜剧场 | 国产99在线 | 欧美 | 狠狠艹| 久久精品久久精品久久精品 | h片在线观看网站 | 成人二区 | 欧美aⅴ| 精品成人av| 玖玖操 | 国产精品乱码一区二三区小蝌蚪 | av在线一区二区三区 | 2019天天操 | 亚洲网在线 | 精品91久久| 91在线视频观看免费 | 国产91在线播放精品91 | 久久99成人| 在线国产一区二区 | 麻豆天堂 | 久久精品成人 |