廣東省工商高級技工學校 雷國榮
基于AT89C52單片機的出入管理控制系統(tǒng)的設計
廣東省工商高級技工學校 雷國榮
出入管理控制系統(tǒng)是一種全新的出入管理方式,通過一定身份識別手段來判斷選擇擁有權限的人員進入指定區(qū)域。本文將介紹一個采用TM卡對來訪者身份進行識別的實時門禁記錄系統(tǒng)。
門禁控制器;單片機AT89C52;系統(tǒng);芯片
出入管理控制系統(tǒng)主要由門禁控制器、身份識別卡兩個部分組成。用戶可以通過身份識別卡來進入身份,同時系統(tǒng)也將對每一個進入到房間的用戶進行記錄,記錄信息包括用戶身份號、進入時間。
門禁控制器以單片機AT89C52為核心,利用DS1302時鐘芯片進行設計。系統(tǒng)的身份識別卡采用型號為DS1990A的TM卡完成設計,由于該型號的TM卡上面都刻有一個獨有的64位二進制ID號,并且該編號不能仿造,可以極大地提高系統(tǒng)的安全性。
根據(jù)出入管理控制系統(tǒng)的功能特點,本系統(tǒng)主要為識別卡電路、單片機模塊電路、時鐘模塊電路、數(shù)據(jù)存儲模塊電路、顯示電路和繼電器控制電路6部分組成。整個系統(tǒng)的結(jié)構框圖如圖1所示。
本設計采用Atmel公司的高性能低功耗的單片機AT89C52作為控制系統(tǒng)的核心。下表1是出入管理控制系統(tǒng)設計具體的設備選型表。
出入管理控制系統(tǒng)的硬件電路如圖2所示,主要由識別卡電路、單片機模塊電路、時鐘模塊電路、數(shù)據(jù)存儲模塊電路、顯示電路和繼電器控制電路6部分組成。
在單片機及識別卡電路中,由DS1990A為主構成的身份識別裝置,單片機可以通過對其內(nèi)部的編號進行讀取,來判斷來訪者是否有權限開電子鎖。單片機模塊是以AT89C52為核心構成,晶振選取12MHz,采用上電和手動兩種復位方式。
時鐘模塊電路采用DS1302進行設計,X1和X2引腳之間連接一個32.768kHz的晶振,由于DS1302內(nèi)部已經(jīng)集成了6pF的電容,這樣就不需要在外部連接電容了。BT2為3.6V充電電池,用于時鐘/日歷數(shù)據(jù)和靜態(tài)RAM掉電保護。
在數(shù)據(jù)存儲模塊電路中,由于CAT24WC02是EEPROM存儲單元,具有掉電保護數(shù)據(jù)的功能,因此在本系統(tǒng)設計中用來存儲用戶進入房間的時間信息。通過將A0、A1、A2引腳接地,可以設置CAT24WC02的器件地址。寫保護引腳/WC懸空,存儲器可以進行正常的寫操作。
表1 設備選型表
圖1 出入管理控制系統(tǒng)結(jié)構框圖
圖2 出入管理控制系統(tǒng)電路
圖3 系統(tǒng)流程圖
圖4 定時器TO服務流程圖
圖5 讀身份信息流程圖
顯示模塊電路中,系統(tǒng)在沒有訪問者時,通過MAX7221來驅(qū)動8個七段數(shù)碼管顯示時間。比如在晚上10點23分19秒時,顯示格式格式如“22-23-19”。如果有人員訪問時,數(shù)碼管上顯示為“------”。
系統(tǒng)的繼電器控制電路里,繼電器是通過三極管Q1來驅(qū)動的,Q1的基極通過一個510歐的電阻連接到單片機P2.3引腳。當P2.3輸出高電平時,Q1導通同時繼電器線圈得電,使得繼電器常開端閉合,綠燈提示燈亮,表示電子鎖打開。二極管D1為續(xù)流二極管,在線圈失電時用于構成回路釋放線圈中的電流,同時保護三極管。
通過出入管理控制系統(tǒng)硬件電路的設計后,還需要進行軟件程序設計來實現(xiàn)功能。主要由主程序、定時器服務程序、讀身份信息程序等構成。
系統(tǒng)的主程序流程圖如圖3所示,進入主程序后,系統(tǒng)首先對MAX7221、DS1302及內(nèi)部定時器T0進行初始化。當進入循環(huán)工作程序后,讀取身份識別卡內(nèi)部的64位ROM后,與設定的64位碼進行比較。如果兩個碼一致,系統(tǒng)會閉合繼電器常開觸點,同時啟動定時器T0工作。這時,數(shù)碼管上將會顯示“--------”,當用戶取下身份識別卡后,才會重新恢復為時間顯示狀態(tài)。當繼電器常開觸點閉合10s時,系統(tǒng)會將自動斷開常開觸點。如果兩個碼不同,系統(tǒng)將直接調(diào)用時間顯示程序。
定時器的設計程序如圖4所示,進入定時器T0中斷服務程序后,首先需要重載定時器初值,然后將設定的計數(shù)變量num,減1判斷是否已經(jīng)減到0。若num不為0,則繼續(xù)退出中斷服務程序;若num為0,說明定時10s時間已經(jīng)到了,這時停止定時器工作,重置num初值,最后斷開繼電器后推出中斷程序。
由于身份識別卡是采用DS1990A進行設計的,因此讀取激光ROM碼應滿足單總線的讀時序要求。讀身份信息程序如圖5所示,首先,需要對DS1990A進行初始化,若已經(jīng)插入識別卡,則DS1990A會產(chǎn)生一個應答脈沖;反之,則沒有應答脈沖,程序返回值為0(error)。當有識別卡時,單片機再發(fā)送讀ROM碼命令(33H),并讀取ROM碼,最后,對讀取的ROM碼進行校驗,判斷讀碼是否正確。正確返回1(right),錯誤返回0(error)。
在本系統(tǒng)的基礎上增加相應的輔助設備可以進行電梯控制、車輛進出控制、物業(yè)消防監(jiān)控管理等,可實現(xiàn)區(qū)域內(nèi)一卡智能管理。同時,可以擴展為考勤系統(tǒng)、會議簽到系統(tǒng)、巡邏管理系統(tǒng)、就餐管理系統(tǒng)等一卡通工程。
[1]及力.Protel 99 SE原理圖與PCB設計教程(第二版)[M].電子工業(yè)出版社,2007.
[2]張軍.AVR單片機應用系統(tǒng)開發(fā)典型實例[M].中國電力出版社,2005.
[3]譚浩強.C程序設計(第三版)[M].清華大學出版社,2005.
雷國榮,畬族,廣東省工商高級技工學校電子技術講師。