<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 電源與新能源 > 設計應用 > 基于AT89C51的紅外遙控密碼鎖系統(tǒng)的設計方案

          基于AT89C51的紅外遙控密碼鎖系統(tǒng)的設計方案

          作者: 時間:2016-12-09 來源:網(wǎng)絡 收藏

          1.引言

          本文引用地址:http://www.ex-cimer.com/article/201612/328310.htm

          目前國內外密碼鎖系統(tǒng)的主要發(fā)展方向是:接觸式密碼鎖系統(tǒng)、非接觸式密碼鎖系統(tǒng)、智能識別密碼鎖系統(tǒng);但是他們都相應的存在著不同的缺點。紅外遙控密碼鎖系統(tǒng)的成本與接觸式密碼鎖系統(tǒng)相當,而且可以進行近距離遙控,使用十分方便。采用數(shù)字信號編碼和二次調制方式,不僅可以實現(xiàn)多路信息的控制,增加遙控功能,提高信號傳輸?shù)目垢蓴_性,減少誤動作,而且功率消耗低;紅外線不會向室外泄露,不會產生信號串擾;反應速度快、傳輸效率高、工作穩(wěn)定可靠等。工業(yè)設備中,在高壓、輻射、有毒氣體、粉塵等環(huán)境下,采用紅外線遙控不僅完全可靠而且能有效地隔離電氣干擾。所以紅外線遙控是目前使用最廣泛的一種通信和遙控手段。

          為此本方案設計由紅外接收頭HS0038(紅外接收頻率為38khz)和AT89C51控制的接收部分構成;由紅外發(fā)光二極管和AT89C51控制的發(fā)射部分來完成密碼的發(fā)送過程。設計中使用電磁繼電器來代替所的功能,并且有兩個LED燈來對系統(tǒng)的按鍵和開鎖進行指示。采用單片機進行遙控系統(tǒng)的應用設計,具有編程靈活多樣,電路結構清晰。特別適合家庭、賓館、倉庫、私家車庫等場所。

          2.密碼鎖的總體設計方案

          本系統(tǒng)采用AT89C51單片機作為本設計的核心元件,該系統(tǒng)由發(fā)射模塊和接收模塊兩部分構成,遙控器發(fā)射模塊可以隨身攜帶,只要在接收器附近,即可遙控開鎖。遙控發(fā)射器主要由AT89C51單片機、紅外發(fā)射二極管、矩陣鍵盤及遙控開關電路組成。該部分的結構圖如圖1所示。

          紅外遙控由發(fā)送和接收兩部分組成,發(fā)送端采用單片機將待發(fā)送的二進制信號編碼調制為一系列的脈沖信號,通過紅外發(fā)射管發(fā)射紅外信號。紅外接收采用性能可靠的配套的一體化紅外接收頭接收紅外信號,它同時對信號進行放大、檢波、整形,得到TTL電平的編碼信號,再送給單片機,經單片機解碼并進行相關操作。

          紅外線發(fā)射及接收控制電路均采用8051單片機來實現(xiàn),電路簡單,輸出控制方式可選擇,實用性強。圖2為發(fā)送與接收示意圖:

          3.系統(tǒng)主要硬件設計

          在本設計中,是以AT89C51單片機為核心的。AT89C51單片機是一款低功耗、低電壓、高性能CMOS 8位單片機,其輸出引腳和指令系統(tǒng)都與MCS-51兼容。AT89C51是一種功能強,靈活性高且價格合理的單片機,可方便地應用在各個控制領域。

          3.1 紅外發(fā)射與接收裝置

          這里采用紅外發(fā)光二極管如SE303·PH303,外形和發(fā)光二極管LED相似,發(fā)出紅外光(近紅外線約0.93um)。管壓降約1.4V,工作電流一般小于20mA.為了適應不同的工作電壓,回路中常串有限流電阻。發(fā)射紅外線去控制相應的受控裝置時,其控制的距離與發(fā)射功率成正比。為了增加紅外線的控制距離,紅外發(fā)光二極管工作于脈沖狀態(tài),因為脈動光,也就是調制光的有效傳送距離與脈沖的峰值電流成正比,只需盡量提高峰值電流,就能增加紅外光的發(fā)射距離。提高峰值電流的方法,就是減小脈沖占空比,即壓縮脈沖的寬度。減小脈沖占空比還可使小功率紅外發(fā)光二極管的發(fā)射距離大大增加。要使紅外發(fā)光二極管產生調制光,只需在驅動管上加一定頻率的脈沖電壓。

          本設計采用紅外一體化接收頭HS0038.HS0038將遙控信號的接收、放大、檢波、整形集于一身,并且輸出可以讓單片機識別的TTL信號,這樣大大簡化了接收電路的復雜程度和電路的設計工作,方便使用。

          3.2 紅外信號的編碼處理

          3.2.1 紅外編碼

          遙控器信息碼是由AT89C51單片機的定時器T1調制成38.5KHz紅外載波信號,不同的脈沖個數(shù)代表不同的操作碼信息,最少為兩個脈沖(采用兩個),其他信息碼的脈沖個數(shù)逐個遞增。為了使接收盡量可靠,第一位碼寬為3ms,其余為1ms,碼間距為1ms,遙控碼數(shù)據(jù)間隔大于10ms.遙控器上每個鍵都有唯一的一個鍵號,單片機通過查得按下鍵的鍵值發(fā)送約定個數(shù)的脈沖。

          3.2.2 紅外接收信號的解碼

          接收信號的解碼是根據(jù)紅外線接收器輸出脈沖幀的格式來進行解碼的,即用累加器A分別對符合條件的負跳變脈沖進行計數(shù)。當紅外線接收器輸出脈沖幀數(shù)據(jù)時,第一位碼的低電平將啟動中斷程序,實時接收數(shù)據(jù)幀。在接收數(shù)據(jù)幀時,根據(jù)發(fā)射幀的格式將對第一位(起始)碼的碼寬進行驗證。若第一位低電平碼的脈沖寬小于2ms,將作為錯誤碼處理。當間隔位的高電平脈沖大于3ms時,結束接收,然后根據(jù)累加器A中的脈沖個數(shù),判斷鍵盤輸入六位密碼是否與設定密碼相同,從而控制繼電器開鎖與否。圖3為紅外線接收器輸出的一幀遙控碼波形圖。

          3.2.3 通信接口電路

          計算機與單片機之間的通訊是采用串口通信方式,串口通信是現(xiàn)階段PC串口和設備之間的最簡單也是應用最廣泛的一種數(shù)據(jù)通信的方式。串口是計算機內的通用設備通信的協(xié)議,采用RS-232接口標準就可以實現(xiàn)數(shù)據(jù)之間的傳輸,完成溫度數(shù)據(jù)和控制指令傳輸。

          4.系統(tǒng)軟件設計

          4.1 遙控發(fā)射部分程序設計

          該部分主要分為主程序、按鍵掃描程序以及遙控編碼脈沖發(fā)射程序。主要是對定時器T1定時的方式的設定,計數(shù)器的初始化等。

          4.2 上位機軟件設計

          本文還設計了上位機軟件,來進行人機交互,能夠拓展密碼鎖的在更廣的領域應用。

          本文采用LabVIEW圖形化編程語言,完成了控制平臺的設計。系統(tǒng)軟件采用模塊化的設計思想,LabVIEW程序通過串口通信電路讀取密碼鎖數(shù)據(jù),并對數(shù)據(jù)進行相應的分析處理。

          4.2.1 用戶管理模塊

          密碼鎖監(jiān)控系統(tǒng)的正常運行關系到整個密碼鎖系統(tǒng)的安全,只有授權用戶才能進入系統(tǒng)進行操作。每個授權用戶都有一個唯一的身份標識,即用戶名,用戶憑密碼登錄系統(tǒng)。用戶根據(jù)權限可分為三類:管理員、普通用戶、測試用戶。測試用戶只能使用系統(tǒng)的部分功能;普通用戶可以使用系統(tǒng)全部功能;管理員用戶除了普通用戶的權限外,還可以管理其他用戶,包括增加用戶、修改用戶權限、刪除用戶等。

          4.2.2 密碼鎖狀態(tài)與顯示模塊

          密碼鎖狀態(tài)通過LabVIEW前面板在計算機顯示器上逐點顯示并連線,便可實時顯示被測密碼鎖。數(shù)據(jù)采集程序框圖如圖4所示。

          數(shù)據(jù)存取模塊通過調用LabVIEW中的WriteCharacters To File,使子程序將檢測到的密碼鎖狀態(tài)值保存到Excel表格,方便用戶今后調出歷史密碼鎖狀態(tài)數(shù)值進行查閱研究。

          5.結束語

          本設計是利用單片機芯片來控制一個紅外線遙控系統(tǒng),使其克服了傳統(tǒng)鎖那樣一定要將鑰匙插進鎖里才能開啟的缺點,并具有遠距離遙控開鎖功能。并建立上位機軟件來管理紅外遙控密碼鎖網(wǎng)絡的狀態(tài)。本方案中所設計的紅外遙控密碼鎖具有遙控開鎖、密碼修改、密碼錯誤報警等功能,并且具備保密性好、安全可靠、成本低廉等特點。經測試,該紅外遙控密碼鎖具有較強的實用性。



          評論


          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();