熊佩軒,萬在紅,賈宇琪,胡偉倩
(南昌航空大學 信息工程學院,江西 南昌 330000)
基于8086微機的多功能密碼鎖項目分析
熊佩軒,萬在紅*,賈宇琪,胡偉倩
(南昌航空大學 信息工程學院,江西 南昌 330000)
本課題以8086微處理器為基礎,設計了一個簡單的低成本的多功能密碼鎖,旨在解決人們日常生活和工作當中遇到安全問題。在Proteus仿真軟件中利用8086微處理器可編程的特點[1],以匯編語言為媒介[2],最后通過矩陣鍵盤輸入和LCD1602液晶顯示實現了多功能密碼鎖的開啟、關閉和報警以及密碼修改、液晶顯示密碼等一系列功能,成功地擔任了防盜衛士的角色。
多功能密碼鎖;Proteus仿真;8086微處理器;矩陣鍵盤;LCD1602液晶屏
隨著科學技術的高速發展和高新技術的廣泛應用,電子技術在人們的日常生活中所起的作用越來越大,并深深地滲透到了人們的生活,工作和學習的各個方面[3]。人們生活水平的不斷提高以及工業領域專業性的提高,如何實現家庭防盜和加密的機械控制這一問題也變得尤為突出。傳統的機械鎖構造簡單,被撬的事件屢有報道,電子密碼鎖由于其安全性較高,成本低廉,簡單實用,開發性好等優點受到了廣大用戶的青睞,得到了廣泛的應用,本課題便是基于8086微處理器的多功能密碼鎖。
微電子技術的高速發展,出現了磁控鎖,聲控鎖,超聲波鎖,紅外線鎖,指紋鎖,遙控鎖等,這些鎖具有機械鎖無可比擬的高保密性能,特別是可以在特定的環境系統中,按照指定的邏輯關系實現系統的程序控制。但是由于成本較高,而且保密性超高,一般供給個人的箱,柜等等,這在一定程度上也影響了這一類型產品的大范圍推廣應用。
此多功能密碼鎖是一款成本低廉,性價比高的密碼鎖,可以通過以此為基礎拓展更為豐富多樣的解鎖方式,例如當下流行的指紋和虹膜解鎖,為了達到密碼鎖所需實現的基本要求,采用了8086微處理器作為核心,矩陣鍵盤作為輸入設備,LCD液晶顯示作為輸出設備,同時也是該產品和用戶的一個交互窗口,該鎖還提供了密碼修改功能和報警功能,當使用該產品時,液晶顯示屏會顯示PLEASE INPUT PASSWORD的提示信息,當密碼輸入正確指示燈亮起,同時顯示OPEN字樣,當密碼輸入錯誤時發出錯誤警告聲音,同時顯示ERROR字樣,還可以實現對密碼的修改,修改成功之后,LCD會提示修改成功并提示新密碼。基于此多功能密碼鎖也可以與各類防盜報警電路配合達成更為強大的防盜報警功能。
1.1 系統硬件設計總體框架
系統硬件模塊包含:微處理器控制模塊,采用8086芯片;LCD液晶顯示模塊,采用LCD1602液晶屏;鍵盤輸入模塊,采用4×4矩陣鍵盤;開鎖報警模塊,采用蜂鳴器,LED以及電機構成。系統總框架如圖1所示。

圖1 系統總框架
1.2 8086系統模塊
微處理器控制模塊使用8086作為CPU,74LS373作為地址鎖存器,可編程并行I/O接口芯片8255A作為并行I/O接口電路,如圖2所示。8086CPU由于引腳數目的限制,數據地址信號等引腳是分時復用的,構成微型計算機系統必須外接總線配置芯片將復用的信號加以分離。利用74LS373將總線上的地址碼暫存起來。在CPU與外部通信時,必須先發送存儲器或I/O端口的地址才能正確地發送數據[4]。通過74LS245實現8086與8255A芯片的雙向數據傳輸,并行接口具有傳送數據速度快、要求傳輸線較多的特點[5]。本系統中8255A選擇的是A組,以工作方式0輸出;B組以工作方式0輸出;C組端口高半字節輸入,低半字節輸出。A組連接LCD液晶顯示器8位數據線,B組連接低3位連接LCD液晶顯示器的控制引腳,同時控制報警器和開鎖指示燈以及電機。C口連接矩陣鍵盤[6]。

圖2 微處理器控制模塊
1.3 LCD液晶顯示模塊
LCD液晶顯示模塊使用LCD1602液晶屏,實物如圖3所示,受8255A的PA及PB口的低三位控制,電路如圖4所示,它是一種專門用來顯示字母、數字、符號的點陣型液晶模塊,顯示能容為16×2即可以顯示兩行,每行16個字符液晶顯示方陣[7]。LCD1602為16腳,1,2腳分別為電源地(VSS)和電源正極(VDD),3,4,5腳是控制引腳分別為數據/命令選擇端(RS)、讀/寫選擇端(R/W)、使能信號(E),7—14腳為8位的數據傳輸引腳,15,16腳為背光LED的電源的正極(LED+)和負極(LED-),若要向LCD中寫入命令則使RS=0,RW=0,E=1,D0-D7=指令碼。寫入數據則使RS=1,RW=0,E=1,D0-D7=數據。常用指令碼有初始化指令碼0011 1000。

圖3 LCD1602實物

圖4 LCD液晶顯示模塊
LCD1602的第一行字符起始顯示方陣地址為80 H,該行其余的顯示方陣可以通過80 H加上偏移地址來得到地址碼,先使RS=0,RW=0,E=1通過D0-D7寫入地址碼,再使RS=1,RW=0,E=1通過D0-D7寫入字符對應的表格數據碼,即可在LCD指定位置上顯示一個指定的字符。
1.4 矩陣鍵盤模塊
矩陣鍵盤模塊采用四腳開關組成4×4鍵盤,實物如圖5所示,它與8255A芯片的PC端口相連,電路如圖6所示,本系統中使用了其中的12個鍵,包括數字鍵0-9和輸入鍵input和修改密碼鍵write。矩陣鍵盤是通過軟件實現對4×4的按鍵進行動態逐行掃描,并實現按鍵的單次點擊識別。通過使用8255A芯片PC端口低半字節輸出、高半字節輸入,再將鍵盤狀態讀取至8086中,接著對數據進行處理并識別被點擊的按鍵,最終將輸入保存的六位數據進行密碼核對或密碼修改。

圖5 矩陣鍵盤實物
1.5 開鎖報警模塊
開鎖報警模塊分為3個部分,如圖7所示,由8255A芯片的PB口的高四位和低四位分別進行控制,當輸入密碼核對正確時,控制PB4口輸出低電平,使開鎖指示燈亮起,同時帶鐵芯的電感線圈由于電流產生磁性,將密碼鎖的鎖芯吸起使密碼鎖得以打開。當程序識別輸入密碼錯誤時,通過8086控制8255A芯片的低四位輸出低電平,通過與非門使蜂鳴器發出報警,通過增加外圍電路可以實現多種報警方式,例如添加藍牙通信模塊可進行近距離無線報警。
本系統的軟件設計分為3個部分,主要包括驅動LCD1602液晶顯示程序設計、矩陣鍵盤程序設計以及密碼存儲核對及修改程序設計,系統主程序流程如圖8所示。
本系統設計以8086作為多功能密碼鎖監控裝置的檢測與控制核心,通過編程實現對密碼鎖開關的控制。其特點是使用靈活性好,用戶可以隨時修改密碼,防止由于鑰匙丟失而引起的安全性下降。而不像機械鎖必須佩戴鑰匙才能開鎖。隨著科技發展和人們生活需求的提高,磁卡型、遙控型、指紋型電子鎖已成為現在的發展趨勢,并且此密碼鎖基于8086編程靈活,能夠以此為基礎增加外圍模塊,拓展出更為強大的功能,擁有較為廣泛的市場前景。

圖7 開鎖報警模塊

圖8 主程序流程
[1]謝龍漢,莫衍.Proteus電子電路設計與仿真[M].北京:電子工業出版社,2012.
[2]王慶生.匯編語言程序設計教程[M].北京:人民郵電出版社,2013.
[3]閻石.數字電路技術基礎[M].北京:高等教育出版社,2006.
[4]尹建華.微型計算機原理與接口技術[M].2版.北京:高等教育出版社,2008.
[5]顧暉,梁惺彥.微機原理與接口技術—基于8086和Proteus仿真[M].北京:電子工業出版社,2011.
[6]何宏.微機原理與接口技術—基于Proteus仿真的8086微機系統設計及應用[M].北京:清華大學出版社,2015.
[7]郭天祥.新概念51單片機C語言教程—入門、提高、開發[M].北京:電子工業出版社,2009.
Analysis on multi-function combination lock project based on 8086 microcomputer
Xiong Peixuan,Wan Zaihong*, Jia Yuqi, Hu Weiqian
(Information Engineering College of Nanchang Hangkong University , Nanchang 330000, China)
This topic is based on 8086 microprocessor, and designs a simple low cost of multi-function combination lock, aiming at solving safety problems of people’s daily life and work. Take advantage of the characteristics of 8086 microprocessor programmable[1]in the Proteus simulation software, with assembly language as the medium[2], at last, through matrix keyboard input and LCD1602 display to realize the multi-functional combination lock’s a series of functions of open, close and alarm, and password revision, and liquid crystal display password, successful serving as the role of security guards.
multi-function combination lock; Proteus simulation; 8086 microprocessor; matrix keyboard; LCD 1602
熊佩軒(1995— ),男,江西樟樹,本科。
*通訊作者:萬在紅(1970— ),女,江西南昌,碩士,副教授;研究方向:工藝過程控制。