電子信息工程畢業(yè)設計 文獻綜述 開題報告】紅外遙控電子密碼鎖設計—軟件設計
《電子信息工程畢業(yè)設計 文獻綜述 開題報告】紅外遙控電子密碼鎖設計—軟件設計》由會員分享,可在線閱讀,更多相關《電子信息工程畢業(yè)設計 文獻綜述 開題報告】紅外遙控電子密碼鎖設計—軟件設計(63頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、【電子信息工程畢業(yè)設計+文獻綜述+開題報告】紅外遙控電子密碼鎖設計—軟件設計 (20_ _屆) 本科畢業(yè)設計 紅外遙控電子密碼鎖設計―軟件設計 摘 要 目前,具有報警功能的電子密碼鎖,正逐步取代傳統(tǒng)的機械密碼鎖。電子密碼鎖在性能和技術方面都有了很大的進展,例如:克服了傳統(tǒng)的機械密碼鎖密碼少,可靠性不足和操作不方便等缺點。本文設計了一種基于單片機STC89C52的紅外遙控電子密碼鎖。在該設計中,采用了紅外線作為傳輸介質,因為它具有信息傳輸可靠,抗干擾能力強等特點。這種密碼鎖有兩種類型的輸入設備,一個是安裝在電子密碼
2、鎖上的4 * 4矩陣鍵盤,另一個是紅外遙控器。具有開鎖和更改所設定的密碼等功能。操作時,LCD1602可以顯示有關信息。在介紹了紅外遙控編碼和解碼的原理,4*4矩陣鍵盤的工作原理,STC89C52內部EEPROM的應用以及LCD1602顯示屏的初始化和工作原理等的基礎上,本文詳細敘述了軟件的設計要點以及方法,同時給出了主程序和幾個主要子程序的流程圖和代碼。子程序主要包括紅外遙控子程序和4*4矩陣鍵盤子程序。 關鍵詞:單片機 電子密碼鎖 紅外遙控 The Design of Electronic Code Locks Based on Infrared Remote ControlSoft
3、ware Design Abstract 碼At present, key-pad electronic code lock with alarming function is to gradually replace the traditional mechanical code lock. Key- pad electronic code lock makes a great progress in terms of performance and technology, for instance, overcoming the shortcoming of the tradition
4、al mechanical code lock which contain few password , lack of reliability and inconvenient operation. This paper introduces a type of remote-controlled electronic code lock based on the chip of 80C52. This code lock have two input devices, one is a 4*4 matrix keyboard installed on the code lock. Anot
5、her is a remote controller . In the design, we adopt the infrared ray as the medium, because of the reliable transmission of information,and the strong anti-interference ability. We can use either of them to open the lock or change the password we have set. when you are operating, LCD1602 could disp
6、lay the information. This paper first introduce the encoding and decoding theory of infrared remote control, the working principle of the 4*4 matrix keyboard, STC89C52 internal EEPROM applications, and LCD1602 initialization and working principle, and so on .Then the design of software is described
7、in detail. The flowchart and code of the main program and major subroutine such as infrared remote control subroutine and 4 * 4 matrix keyboard subroutine are shown. Keywords: MCU Electronic code lock Infrared Remote-control 目錄 摘 要 III Abstract IV 1 緒論 1 1.1課題的來源 1 1.2課題的意義 1 1.3國內外發(fā)展現(xiàn)狀
8、1 1.4課題研究的主要內容 2 2方案設計與總體設計 3 2.1總體方案的設計 3 2.1.1總體方案的硬件設計 3 2.1.2總體方案的軟件設計 4 2.2硬件設計簡述 5 2.2.1單片機主控模塊 5 2.2.2 紅外遙控模塊 5 2.2.3 4*4矩陣鍵盤模塊 6 2.2.4 LCD1602液晶顯示模塊 6 2.2.5 報警模塊 7 2.2.6 電源模塊 7 2.3方案評價 7 3系統(tǒng)軟件設計 9 3.1主程序設計 9 3.2紅外遙控模塊軟件設計 9 3.2.1 紅外通信基本原理及標準 9 3.2.2 紅外遙控系統(tǒng)及原理 10 3.3 LCD160
9、2液晶顯示模塊軟件設計 13 3.4 STC單片機內部EEPROM及ISP的應用 14 3.4.1 EEPROM存儲器 14 3.4.2 ISP特殊功能寄存器 15 3.5 4*4矩陣鍵盤模塊軟件設計 16 3.5.1 4*4矩陣鍵盤的流程圖及功能 16 3.5.2 4*4矩陣鍵盤的工作原理 17 3.6 報警器模塊軟件設計 17 3.7 系統(tǒng)調試 18 3.7.1 程序編譯 18 3.7.2 程序下載 18 4結論 20 參考文獻 21 致謝 22 附錄 23 附錄圖1 電路原理圖 23 附錄圖2 PCB板 24 附錄圖3 實物圖 25 附錄4 程序 26
10、 1 緒論 隨著人們生活的提高和安全意識的加強,在日常生活中出現(xiàn)了各式各樣的密碼鎖。社會科技在不斷地地進步,密碼鎖也經(jīng)歷了一代又一代。密碼鎖已經(jīng)從傳統(tǒng)的機械鎖發(fā)展到了磁性鎖,電子鎖,聲控鎖等等,這些鎖是在傳統(tǒng)機械鎖的基礎上,加上了不同的密碼,不同的磁場,不同的聲音等來控制鎖的開啟。這些密碼鎖保密性高,使用靈活性強,安全系數(shù)高,在很大程度上克服了傳統(tǒng)機械鎖的缺點,使得人們對自身的財產(chǎn)安全有了更多的保障。但是這些密碼鎖不能很好的實現(xiàn)遠距離遙控控制,比如聲控鎖在進行遠距離遙控時穩(wěn)定性不高,不能進行很正確的遠距離控制,一定程度上限制了這些密碼鎖在日常生活中普及和推廣。為了解決遠距離控制的問題,
11、紅外遙控電子密碼鎖的研究普遍受到人們的重視和關注。紅外遙控電子密碼鎖在一定程度上可以解決傳統(tǒng)機械鎖和一般電子密碼鎖存在的問題,具有很大的研究價值。 1.2課題的意義 紅外遙控是目前使用最廣泛的一種通信和遙控手段,采用紅外線作為傳輸媒介進行數(shù)據(jù)通信是一種既方便又經(jīng)濟實用的選擇,在小型移動設備中得到了廣泛的應用。在許多單片機應用系統(tǒng)中,常常利用非電信號傳送信息以實現(xiàn)遙控的功能。而紅外通信具有傳輸可靠性高、實施方便、控制簡單等特點,是一種較為常用的通信方式。 該系統(tǒng)以單片機為核心,結合紅外遙控技術,配以相應的硬件電路,由各模塊共同作用實現(xiàn)各種功能。紅外遙控電子密碼鎖解決了傳統(tǒng)密碼鎖和一般的電
12、子密碼鎖的不足,操作方便,提高密碼鎖的可靠性和安全性,實現(xiàn)了遠距離控制技術,并且能夠很穩(wěn)定的實現(xiàn)遠距離控制技術,還具有密碼預置、誤碼報警、耗電省等功能,基本可以滿足用戶的需要,起到防盜的作用,非常適合辦公室、住宅等用鎖的要求,具有很好的開發(fā)和研究價值。 密碼鎖的發(fā)展大致可以分為四個階段:1、木質鎖;2、機械鎖;3、普通的電子密碼鎖、磁片密碼鎖、EP卡鎖;4、未來的家用電子密碼鎖、遙控電子密碼鎖、以及用于特定場合的安全密碼鎖。 目前,在日常安全范圍領域,具有防盜報警功能的電子密碼鎖逐漸替代了傳統(tǒng)機械鎖,在性能上和技術上都大大提高了。隨著大規(guī)模集成電路技術的發(fā)展,特別是單片機的出現(xiàn)以后,它
13、在保留了電子密碼鎖原有的一些功能的同時,對這些電子鎖進行了智能化管理,這樣的產(chǎn)品體積大大減小了,成本也大大降低了,也進一步提高了密碼鎖的 安全性、可靠性。 紅外遙控技術在遙控方式上大體經(jīng)歷了從有線到無線的超聲波、從振動子到紅外線、再到使用總線的微機紅外遙控這樣幾個階段,紅外遙控技術慢慢變得成熟,運用在各方面。目前,紅外線遙控是使用最廣泛的一種通信和遙控手段,采用紅外線作為傳輸媒介進行數(shù)據(jù)通信是一種既方便又經(jīng)濟實用的選擇,在小型移動設備中得到了廣泛的應用。 紅外遙控電子密碼鎖系統(tǒng)大致以單片機為核心,結合紅外遙控技術,配以相應的硬件電路,實現(xiàn)了電子密碼鎖密碼的顯示、存儲、修改以及驅動報
14、警等功能,同時實現(xiàn)了遠程遙控,具有更好的密碼保護以及更完善的功能系統(tǒng)。 課題主要關于紅外遙控電子密碼鎖的設計研究。該系統(tǒng)以單片機為核心,結合紅外遙控技術,配以相應的硬件電路(矩陣鍵盤、報警模塊、顯示模塊等),預期實現(xiàn)電子密碼的密碼顯示、修改、存儲以及驅動報警等功能,同時,采用的紅外遙控技術可以實現(xiàn)遠程遙控。結合硬件電路,通過軟件設計,主要完成以下幾點內容:1、紅外遙控信號的接收(遙控距離達到8-10米);2、鍵盤輸入、本機設置的鍵盤信息管理功能;3、單人電控鎖開鎖、關鎖的控制功能;4、報警功能。主要完成主程序結構設計及其程序編寫和子程序結構設計及其程序編寫。 軟件是整個系統(tǒng)的核
15、心內容,在硬件電路已經(jīng)確定的情況下,不同程序可以實現(xiàn)不同的功能。該課題的設計基于C語言,使用KeiluVision編輯、調試、編譯通過。采用模塊化設計,自頂而下的設計思路,這樣的設計有利于程序代碼的優(yōu)化,而且便于設計、調試和維護。以主程序為核心設置了多個功能模塊子程序。程序大致可以分為系統(tǒng)初始化程序、紅外遙控模塊子程序、密碼判斷子程序、顯示子程序、鍵盤掃描中斷服務程序等。其中主程序主要起到一個決策和導向作用,系統(tǒng)的各個功能模塊主要通過調用具體的子程序來實現(xiàn)。系統(tǒng)初始化主要包括:定時器、中斷、1602芯片以及系統(tǒng)參數(shù)等的初始化;往EEPROM寫入初始化密碼主要是完成對原先密碼進行更改或者進行相關
16、設置的任務,然后將更新后的密碼保存到EEPROM中。 2方案設計與總體設計 根據(jù)設計要求,本系統(tǒng)的設計思路如下:以單片機STC89C52控制為中心,分為紅外遙控,單片機控制,蜂鳴器報警,LCD1602液晶顯示,4*4鍵盤輸入以及電源??傮w設計方案如圖2-1所示。 圖2-1系統(tǒng)總體設計方案 各個功能模塊的功能大致如下: 紅外遙控模塊:紅外遙控器按有鍵被按下時,就輸出一定數(shù)量被調制的脈沖信號。當接收器收到發(fā)射器發(fā)射的紅外指令信號時,它將紅外指令信號變成TTL電平信號,再經(jīng)過放大、解調、整形、解碼處理后送入單片機,由單片機進行識別處理,從而控制電子密碼鎖的工作。
17、單片機模塊:主控電路模塊主要采用以單片機STC89C52為核心的主控電路。紅外線接收器把接收到的信號傳送給單片機,單片機對信號進行識別,將信號識別成指令,利用這些指令控制電子密碼鎖的工作。 蜂鳴器報警功能模塊:若3次輸入密碼錯誤,報警模塊報警。 LCD1602液晶顯示模塊:此模塊采用單片機向液晶顯示屏的串口發(fā)送數(shù)據(jù)指令,當串口接收到一串數(shù)據(jù)后,LCD1602液晶顯示屏能實現(xiàn)數(shù)據(jù)的顯示、清屏操作和光標的設置等操作。 4*4矩陣鍵盤模塊:該模塊可以實現(xiàn)輸入密碼,設置新密碼等功能。 軟件是整個控制系統(tǒng)的核心,在硬件結構一定的情況下,只要改變軟件就能實現(xiàn)一些不同的功
18、能。對于51系列單片機,現(xiàn)有四種語言支持,即匯編、PL/M,C和BASIC。匯編語言最接近機器語言,利用匯編語言時,單片機的資源利用效率較高,但是這要求對單片機的指令系統(tǒng)非常了解,對單片機的存儲器結構也要有一定的了解。PL/M是Intel從8080微處理器系列開始為其系列產(chǎn)品開發(fā)的編程語言,對于51系列的單片機而言,PL/M不支持復雜的算術運算、無豐富的庫函數(shù)支持。C語言是一種源于編寫UNIX操作系統(tǒng)的語言,它是一種結構化語言,可產(chǎn)生壓縮代碼,對單片機的指令系統(tǒng)不要求了解,僅要求對51系列單片機的存儲器結構有初步了解。BASIC通常附在PC機上,是初學編程的第一種語言,主要用于要求編程簡單而對
19、運行速度和編程效率要求都不高的場合,現(xiàn)在已經(jīng)很少用到BASIC語言了。 經(jīng)過上述的比較后,該課題的設計選擇基于C語言,使用KeiluVision編輯、調試、編譯通過。采用模塊化設計,自頂而下的設計思路,這樣的設計有利于程序代碼的優(yōu)化,而且便于設計、調試和維護。以主程序為核心設置了多個功能模塊子程序。程序大致可以分為系統(tǒng)初始化程序、紅外遙控模塊子程序、密碼判斷子程序、顯示子程序、鍵盤服務程序等。主程序流程圖如下: 圖2-2主程序流程圖 本設計中我們選用的單片機控制芯片是STC89C52芯片,相較于AT系列的單片
20、機,STC89C52可在線編程,燒制程序簡單,工作穩(wěn)定高,兼容性好且抗干擾性強。模塊圖如圖2-3。 圖2-3 單片機主控模塊 2.2.2 紅外遙控模塊 紅外遠程遙控模塊由發(fā)射和接受兩部分組成,電路如圖2-4。遙控發(fā)射器采用型號TC9012芯片,TC9012芯片是一塊用于東芝系列紅外遙控系統(tǒng)中的專用發(fā)射集成電路,采用 CMOS 工藝制造。而遙控接收器采用HS0038B型號的紅外一體化接收頭,HS0038B的管腳分布如圖2-5所示,2腳、3腳分別為地電源和地,1腳是解調信號輸出口,其電平與TTL兼容。 圖2-
21、4 紅外遙控模塊電路圖 圖2-5 HS0038B 2.2.3 4*4矩陣鍵盤模塊 因為本系統(tǒng)需要用到10個數(shù)字按鍵以及幾個系統(tǒng)功能鍵,需要用到的按鍵數(shù)量比較多,由于單片機的I/O口是有限的,選擇使用4*4的矩陣鍵盤來作為輸入,這樣一個8位的I/O口就可以驅動16個鍵盤,大大提升了I/0口的利用率。矩陣鍵盤硬件電路圖如圖2-6所示。 圖2-6 4*4矩陣鍵盤電路圖 2.2.4 LCD1602液晶顯示模塊 液晶顯示模塊采用應用比較廣泛的LCD1602,是通用型的雙行16字符點陣液晶
22、模塊,內含數(shù)字、字母、符號192種(無漢字)字符庫,可通過8位或4位的單片機進行顯示字符的控制,通過編程可實現(xiàn)字行的上下滾頁,左右移動,通過硬件連線可控制背景燈的對比度,背景燈的開關。LCD1602與STC89C52單片機的電路引腳連接圖如圖2-7所示。 圖2-7 1602液晶顯示模塊電路引腳圖 2.2.5 報警模塊 本次研究課題是紅外電子密碼鎖,目的是良好保護財產(chǎn),因此我們需要在設計中加入報警模塊,在密碼連續(xù)3次錯誤時就報警。如圖2-8。 圖2-7 報警模塊電路圖 2.2.6 電源模塊 該模塊是用來控制系統(tǒng)在工作
23、時的電源,上述采用的芯片所需的電壓基本都在5V左右,所以系統(tǒng)在工作時采用5V的工作電壓。如圖2-8。 圖2-8 電源模塊圖 對于51系列單片機,現(xiàn)有四種語言支持,即匯編、PL/M,C和BASIC。匯編語言最接近機器語言,利用匯編語言時,單片機的資源利用效率較高,但是這要求對單片機的指令系統(tǒng)非常了解,對單片機的存儲器結構也要有一定的了解。PL/M是Intel從8080微處理器系列開始為其系列產(chǎn)品開發(fā)的編程語言,對于51系列的單片機而言,PL/M不支持復雜的算術運算、無豐富的庫函數(shù)支持。C語言是一種源于編寫UNIX操作系統(tǒng)的語言,它是一種結構化語言,可產(chǎn)生壓縮代碼,對單
24、片機的指令系統(tǒng)不要求了解,僅要求對51系列單片機的存儲器結構有初步了解。BASIC通常附在PC機上,是初學編程的第一種語言,主要用于要求編程簡單而對運行速度和編程效率要求都不高的場合,現(xiàn)在已經(jīng)很少用到BASIC語言了。 C語言有以下幾個優(yōu)點:1、C語言是編譯型語言,不僅有高級語言的特點,還具備匯編語言簡潔、可控制硬件的特點;2、可移植性好;3、有豐富的庫函數(shù);4、表達能力好,易于編程,可讀性強;5、寄存器的分配由編譯器完成;6、可以模塊化設計,只要將各模塊之間的接口確定好就可以了;7、開發(fā)周期短;8、有實時多任務操作系統(tǒng),可以合理地分配CPU的時間和單片機的資源。 經(jīng)過比較之后,采用C語言
25、來完成該系統(tǒng)的設計。 3系統(tǒng)軟件設計 本設計采用模塊化設計,自頂而下的誰思路。主程序的內容主要涵蓋了各子程序的內容。主程序的流程圖在第二章中已經(jīng)給出。從流程圖中可以看出,主程序主要包括這些內容:初始化定時器和中斷,采用定時器0和外部中斷0,并且定時器0工作在工作方式2;初始化LCD1602和EEPROM;設置初始密碼;判斷紅外和4*4矩陣鍵盤是否有鍵按下,如果紅外有鍵按下,則紅外接收頭接收數(shù)據(jù),外部中斷響應,單片機產(chǎn)生中斷,進入數(shù)據(jù)處理階段,最后根據(jù)按鍵流程圖輸出響應的結果,如果矩陣鍵盤有鍵按下,直接進入按鍵處理程序。按鍵處理程序包含了報警和LCD1602顯示。
26、對紅外遙控模塊進行系統(tǒng)設計,必須先了解一些相關的原理和標準,如:紅外通信基本原理,紅外遙控器編碼和解碼原理,紅外數(shù)據(jù)協(xié)會標準,紅外遙控器原理等,這樣才能有一個比較清楚系統(tǒng)的設計方案。 3.2.1 紅外通信基本原理及標準 紅外通信是利用紅外技術實現(xiàn)兩點間的近距離保密通信和信息轉發(fā)。它一般由紅外發(fā)射和紅外接收兩部分組成。發(fā)射系統(tǒng)對一個紅外輻射源進行調制后發(fā)射紅外信號,而接收系統(tǒng)用光學裝置和紅外探測器進行接收,就構成紅外通信系統(tǒng)。紅外通信的基本原理是發(fā)送端將基帶二進制信號調制為一系列的脈沖串信號(載波信號),通過紅外發(fā)射管發(fā)射紅外信號。常用的有通過脈沖寬度來實現(xiàn)信號調制的脈寬調制(PWM)和通過
27、脈沖串之間的時間間隔來實現(xiàn)信號調制的脈時調制(PPM)兩種方法。 1993年,由HP、COMPAQ、INTEL等二十多家公司發(fā)起成立了紅外數(shù)據(jù)協(xié)會(Infrared Data Association,簡稱IRDA),1993年6月28日,來自50多家企業(yè)的120多位代表出席了紅外數(shù)據(jù)協(xié)會的首次會議,并在建立統(tǒng)一的紅外通訊標準問題上達成了一致。 IRDA1.0簡稱為SIR(Serial InfraRed),是基于HP-SIR開發(fā)出來的一種異步的、半雙工的紅外通訊方式。SIR以系統(tǒng)的異步通訊收發(fā)器(UART)為依托,通過對串行數(shù)據(jù)脈沖的波形壓縮和對所接收的光信號電脈沖的波形擴展這一編碼和解碼過
28、程實現(xiàn)紅外數(shù)據(jù)信號傳輸。由于受到UART通訊速率的限制,SIR的最高通訊速率只能達到115.2kbps。IRDA標準包括三個基本的協(xié)議和規(guī)范:物理層規(guī)范(Physical Layer Link Specification),鏈接建立協(xié)議(ink Access Protocol:IRLAP),鏈接管理協(xié)議(Link Management Protocol: IRLMP)。 3.2.2 紅外遙控系統(tǒng)及原理 通用紅外遙控系統(tǒng)由發(fā)射和接收兩大部分組成,應用編碼和解碼專用集成電路芯片來進行控制操作,如圖3-1所示。發(fā)射部分包括鍵盤、編碼調制、LED紅外發(fā)送器;接收部分包括光/電轉換放大器、解調、解碼
29、電路。 遙控發(fā)射器 遙控接收器 圖3-1紅外遙控系統(tǒng) 1、遙控發(fā)射器及編碼 遙控發(fā)射器專用芯片很多,該系統(tǒng)中采用了TC9012芯片。TC9012芯片是一塊用于東芝系列紅外遙控系統(tǒng)中的專用發(fā)射集成電路,采用 CMOS 工藝制造。它可外接32個按鍵,提供8種用戶編碼,另外還具有 3 種雙重按鍵功能。 當發(fā)射器按鍵按下時即有遙控碼發(fā)出,所按的鍵不同遙控編碼也不一樣。TC9012芯片采用脈沖位置調制方式(PPM)。TC9012 的一幀數(shù)據(jù)中含有 32 位碼,包括兩個8位用戶碼,8 位數(shù)據(jù)碼和8位數(shù)據(jù)碼的反碼及最后位的同步位。引導碼由
30、4.5ms的載波和4.5ms的載波關斷波形所構成。用戶碼和數(shù)據(jù)碼的發(fā)射都是低位在前,高位在后。發(fā)射碼格式如圖3-2: 圖3-2 發(fā)射碼格式 脈沖位置調制方式(PPM):“1”和“0”的區(qū)分取決于脈沖之間的時間 。脈寬為0.565ms、間隔0.56ms、周期為1.125ms,占空比大約為1:1的組合表示二進制的“0”,如圖2-6;以脈寬為0.565ms、間隔1.685ms、周期為2.25ms,占空比大約為1:3的組合表示二進制的“1”,如圖3-3。 圖3-3 遙控碼的“0”和“1” 2、遙控接收器及解碼
31、 一體化紅外線接收頭是一種集紅外線接收和放大于一體的器件,不需要外接任何其它元件,就能實現(xiàn)紅外線接收,輸出與TTL電平信號兼容的所有工作,體積和一般的塑料三極管大小一樣,它適合于各種紅外遙控和紅外線數(shù)據(jù)傳輸。 HS0038B有許多優(yōu)點:穩(wěn)定性好,抗干擾能力很強,外圍電路非常簡潔,成本低,適用于各種紅外遙控和紅外數(shù)據(jù)傳輸,是替代其它紅外接器的理想元件。所以在該設計中采用了HS0038B型號的一體化紅外接收器。HS0038B的信號電平為:38KHz紅外發(fā)射接收到時:低電平輸出;38KHz紅外發(fā)射接收不到時:高電平輸出。HS0038B接收器可以實現(xiàn)紅外信號接收的一系列功能,如解調、濾波等功能,所以
32、采用一體化紅外接收器的信號輸出引腳直接與單片機的中斷引腳(INT0)相連,來實現(xiàn)紅外信號的解碼。在設計中采用下降沿觸發(fā),若檢測到低電平則引起中斷,進入中斷程序。外部中斷程序如下: void INT0init void EA 1; IT0 1;//下降沿觸發(fā)方式 EX0 1; 解碼的關鍵是如何識別“0”和“1”,由圖2-6可以發(fā)現(xiàn)“0”、“1”均以0.56ms的高電平開始,不同的是低電平寬度不同,“0”為0.56ms,“1”為1.68ms,所以必須根據(jù)低電平的寬度區(qū)別“0”和“1”,也就是判斷時間為1.25ms還是2.25ms,如果時間是1.25ms,收到的就
33、是“0”,如果時間是2.25ms,收到的就是“1”。 在該系統(tǒng)中,對紅外發(fā)射器發(fā)射出的數(shù)據(jù)處理的代碼如下: void irpros void uchar k 1,i,j; uchar value; for j 0;j 4;j++ //四個碼(2個用戶碼,數(shù)據(jù)碼和數(shù)據(jù)反碼) for i 0;i 8;i++ value value 1;//執(zhí)行7次,右移一位(低位在前,高位在后) if irdata[k] 6 //執(zhí)行8次,判斷發(fā)射的數(shù)據(jù)是否為“1” v
34、alue value|0x80; //高位置1 k++; ircode[j] value; irprosok 1;//紅外接收OK 遙控器功能鍵 該設計定義了遙控器的一些功能鍵,通過遙控器的輸入對已設密碼進行寫入,修改和清空,實現(xiàn)上鎖和開鎖的功能。遙控器主要有數(shù)字鍵0-9,開鎖鍵,上鎖鍵,設置密碼鍵,保存密碼鍵和清空密碼鍵。遙控器按鍵分配如圖3-4所示: 圖 3-4 遙控器按鍵分配圖 紅處接收控制電路采用STC89C52單片機來實現(xiàn),輸出控制方式可選擇,實用性強。紅外按鍵部分的流程圖和4*4
35、鍵盤的按鍵處理流程圖是一樣的。紅外遙控模塊的流程圖如圖3-5: 圖3-5 紅外遙控模塊流程圖 3.3 LCD1602液晶顯示模塊軟件設計 LCD1602液晶屏的主要功能有:1、40個通道點陣LCD驅動;2、輸入、輸出信號;3、可選擇當作列驅動或者行驅動;4、通過單片機控制將所測的數(shù)據(jù)顯示出來。 LCD1602的初始化設置: 顯示模式設置: 指令碼 功能 0 0 1 1 1 0 0 0 設置16*2顯示,5*7點陣,8位數(shù)據(jù)接口 2、顯示開/關和光標設置 指令碼 功能 0 0 0 0 1 D C B D 0 關顯示 ;D 1
36、開顯示 C 0 不顯示光標 ;C 1 顯示光標 B 0 光標不閃爍 ;B 1 光標閃爍 0 0 0 0 0 1 N C N 0 當讀或寫一個字符后地址指針減一,且光標減一 N 1 當讀或寫一個字符后地址指針加一,且光標加一 S 0 當寫一個字符,整屏顯示不移動 S 1 當寫一個字符,整屏顯示左移或者右移,以得到光標不移動但屏幕移動的效果 3、數(shù)據(jù)指針設置 設置數(shù)據(jù)指針地址:80H+地址碼。 清屏設置:01H。包括數(shù)據(jù)指針清零和所有顯示清零。 RAM地址映射圖:控制器內部帶有80*8位的RAM緩沖區(qū),對應的圖如圖3-6。 圖3-6 RAM地址映射圖 寫操作時序圖: 綜
37、上所述,LCD1602的初始化程序如下: void init_1602 //1602初始化函數(shù) lcden 0; write_com 0x38 ; //顯示模式設置 write_com 0x0c ; //顯示開 不顯示光標 光標不顯示 write_com 0x06 ; //顯示地址遞增,即寫一個數(shù)據(jù)后,顯示位置右移一位 write_com 0x01 ; //清屏 Display_string table,0x80 ;
38、 //在第一行顯示 Display_string "Lock ok! ",0x80+0X40 ; //在第二行顯示 3.4 STC單片機內部EEPROM及ISP的應用 3.4.1 EEPROM存儲器 在STC單片機中有2KB的EEPROM存儲器,分為8個扇區(qū),每個扇區(qū)有512B寫入的數(shù)據(jù)可以保存的有效時間長達100年,擦寫次數(shù)可長達10萬次以上。片內EEPROM地址如表3-1所示。與采用片外EEPROM相比,采用單片機內部的EEPROM保存密碼的可靠性和安全性都較高,這種方法也廣泛用于家居和辦公等智能控制系統(tǒng)中。 EEPROM存儲器有串口和
39、并口兩種,串口的部分電路電路還支持下載線。在該系統(tǒng)中采用EEPROM來完成密碼的讀寫和保存。 表3-1 片內EEPROM地址 第一扇區(qū) 第二扇區(qū) 第三扇區(qū) 第四扇區(qū) 起始 地址 結束 地址 起始地址 結束 地址 起始 地址 結束 地址 起始 地址 結束 地址 2000H 21FFH 2200H 23FFH 2400H 25FFH 2600H 27FFH 第五扇區(qū) 第六扇區(qū) 第七扇區(qū) 第八扇區(qū) 起始 地址 結束 地址 起始地址 結束 地址 起始 地址 結束 地址 起始 地址 結束 地址 2800H 29FFH
40、2A00H 2BFFH 2C00H 2DFFH 2E00H 2FFFH 3.4.2 ISP特殊功能寄存器 ISP是in system programable的縮寫 ,是指在線系統(tǒng)編程,也就是說不用將板子取下,可以簡單地對其進行編程。IAP是in application programable 的縮寫,是指在線應用編程,也就是單片機提供了一系列的機制,當單片機在運行時可以提供一種改變flash數(shù)據(jù)的方法,這種方法的典型應用是用一小段代碼來實現(xiàn)程序的下載。事實上,單片機的ISP功能是通過IAP技術來實現(xiàn)的。 下面介紹一下ISP特殊功能寄存器的含義: ISP_DATA: ISP操作時的數(shù)
41、據(jù)寄存器,從FLASH中讀出數(shù)據(jù)和向FLASH中寫數(shù)據(jù)都應該放在此處; ISP_ADDRH: ISP操作時的地址寄存器高八位; ISP_ADDRL:ISP操作時的地址寄存器低八位; ISP_CMD: ISP操作時的命令模式寄存器,須命令觸發(fā)寄存器觸發(fā)方可生效。 ISP_TRIG: ISP操作時的命令觸發(fā)寄存器。在ISPEN ISP_TRIG.7 1時,對ISP_TRIG先寫入46H,再寫入B9H,ISP命令才會生效。 ISP_CONTR: ISP控制寄存器。 定義ISP功能寄存器地址的代碼如下: //定義ISP功能寄存器地址 sfr ISP_DATA 0xE2;
42、 //定義ISP的數(shù)據(jù)寄存器地址 sfr ISP_ADDRH 0xE3; //定義EEPROM地址寄存器的高8位 sfr ISP_ADDRL 0xE4; //定義EEPROM地址寄存器的低8位 sfr ISP_CMD 0xE5; //定義ISP的命令寄存器地址 sfr ISP_TRIG 0xE6; //定義ISP命令觸發(fā)寄存器地址 sfr ISP_CONTR 0xE7; //定義ISP控制寄存器地址 3.5 4*4矩陣鍵盤模塊軟件設計 由于單片機的I/O口數(shù)量有限,該系統(tǒng)采用4*4矩陣鍵盤。這樣用一個8位的I/O口就可以驅動16個
43、鍵盤。每一條水平(行線)與垂直線(列線)的交叉處不相通,而是通過一個按鍵來連通。從附錄圖1中可以看出鍵盤的連線方式,由行線和列線共同來決定哪一個按鍵被按下。4*4矩陣鍵盤的按鍵功能和紅外遙控模塊的按鍵功能是一樣的,包括15個按鍵:數(shù)字鍵0-9,開鎖鍵,上鎖鍵,設置密碼鍵,保存密碼鍵和清空密碼鍵。 3.5.1 4*4矩陣鍵盤的流程圖及功能 矩陣鍵盤的流程圖如圖3-6。下面對流程圖進行具體的介紹: 當沒有接收到遙控信號時,這時由鍵盤輸入密碼,當6位有效密碼輸入正確時開鎖鍵確認,完成開鎖,1602顯示open ok!。 開鎖完成后,如果需要再把鎖鎖上,可以按下上鎖鍵,此時鎖又重新鎖上,160
44、2顯示Lock ok!。 在輸入6位有效密碼時,必須按照先后序輸入,如順序錯誤或密碼不對時,1602顯示器會提示錯誤,若連續(xù)3次輸入錯誤,系統(tǒng)會長時間報警,這時必須按復位鍵恢復到初始化狀態(tài)。 在輸入密碼的過程中,若發(fā)現(xiàn)錯誤了可以按下清空鍵,清空已輸入的密碼,然后重新輸入密碼。 當鎖處于開鎖狀態(tài)時,可以設置新密碼,先按下設置密碼鍵,輸入新密碼,然后按下保存密碼鍵,此時新密碼已保存,同時鎖被重新鎖上。 圖3-7鍵盤功能按鍵分布圖 圖3-6 矩陣鍵盤流程圖 3.5.2 4*4矩陣鍵盤的工作原理 一個按鍵是否被按下有行線和列線共同決定。判斷鍵盤中有無鍵按下:將
45、全部行線置低電平(0000),然后檢測列線的狀態(tài),只要有一個列線的電平為低, 就表示鍵盤中有按鍵被按下,而且被按下的鍵是低電平列線和4根行線交叉的4個按鍵之中的其中一個,若所有列線均為高電平(1111),則表示鍵盤中沒有鍵被按下;接著判斷被按下的按鍵所在的位置:在知道有按鍵被按下后,就要確定到底是哪個按鍵被按下。方法是:依次將行線置為低電平,就是在置某根行線為低電平時,剩余行線為高電平,當確定某一根行線為低電平后,再依次檢測各列線的電平狀態(tài),若某一根列線為低電平,則該列線與置為低電平的行線交叉處的按鍵就是閉合的按鍵。 3.6 報警器模塊軟件設計 該功能為當輸入密碼錯誤時,實現(xiàn)報警功能,從而
46、提高其安全性。該模塊比較簡單,就是在用4*4矩陣鍵盤或者紅外遙控器輸入密碼時,若果連續(xù)3次輸入的密碼都是錯誤,此時蜂鳴器就會進入長時間報警,必須按復位鍵,蜂鳴器才會停止報警。 3.7 系統(tǒng)調試 3.7.1 程序編譯 本設計采用C語言來完成,同時也決定了編譯器的選擇,采用KEIL編譯器來完成整個程序的編譯。KEIL是德國KEIL公司開發(fā)的單片機編譯器,是目前最好的51系列單片機開發(fā)工具之一,提供了豐富的庫函數(shù)和集成開發(fā)調試工具,全windows界面。KEIL已被完全集成到uVision3的集成開發(fā)環(huán)境中,本設計的程序就是在uVision3的集成開發(fā)環(huán)境中編譯的,這個開發(fā)環(huán)境包括以下幾個部分
47、:匯編器、編譯器、項目管理器、實時操作系統(tǒng)和調試器。 在uVision3的集成開發(fā)環(huán)境中操作的步驟為先新建一個project,填寫好保存路徑,在file菜單里新建text文本,在text里寫入程序,保存,最后把text添加到source group1里,這樣就可以對程序進行編譯了,若沒有錯誤就可以生產(chǎn)HEX文件了。由于程序比較長,在軟件調試時,本設計采用先模塊調試然后再進行系統(tǒng)調試。在調試的過程中紅外遙控模塊的程序經(jīng)常出現(xiàn)錯誤,紅外通信只能工作于半雙工方式,另外,通信波特率比較低,編程時應注意等待時間。在編譯時采用單步編譯,逐一找出錯誤的地方并改正直至編譯正確。編譯正確后的界面如3-8。
48、 圖3-8 編譯正確后的界面 程序編譯成功,生產(chǎn)了HEX文件后,就可以把程序下載到STC89C52單片機中了。在下載程序時,要用一個轉換器將單片機和電腦連接起來。本設計下載程序時采用了RS-232轉換器。下載時硬件連接是這樣的:單片機RXD(P3.0)引腳――RS-232轉換器――電腦TXD;單片機TXD(P3.1)引腳――RS-232轉換器――電腦RXD;單片機GND――電腦GND。連接圖如圖3-9。 圖3-9 串口連接圖 STC系列的單片機相比AT系列的單片機的優(yōu)點是可以在線編程,而且速度快,
49、STC提供了ISP下載工具STC-ISP.exe軟件。在連接好單片機和電腦之后就可以運行STC-ISP.exe軟件進行程序下載了。打開軟件進行參數(shù)設置。下載時都要先點下載再上電。下載界面圖如圖3-10。 圖3-10 下載界面圖 4結論 通過上面軟件的分析和設計,本系統(tǒng)完全是可行的。在設計和實驗的基礎上,和設計硬件部分的同學一起做出了實物。 本設計利用STC89C52單片機芯片控制基于單片機的紅外遙控密碼鎖,選擇C語言來完成整個軟件的設計。實現(xiàn)了紅外遙控和鍵盤雙
50、輸入控制,密碼儲存部分采用STC89C52單片機芯片內部的EEPROM實現(xiàn),可以實現(xiàn)輸入密碼開鎖,對密碼鎖進行上鎖,還有設置新密碼等多種功能。顯示部分采用1602LCD液晶顯示屏,在報警模塊部分設計了蜂鳴器在密碼輸入錯誤三次后蜂鳴器報警的功能。任何個項目都不是十全十美的,該系統(tǒng)也有一些不足的地方。沒有考慮到外部因素對系統(tǒng)的影響,比如密碼丟失,誤操作對系統(tǒng)的影響。報警功能做得不夠完善,只有一個蜂鳴器,在嘈雜的地方就不一定能感覺到蜂鳴器的報警聲音。紅外遙控有時也不太穩(wěn)定,在調試的時候發(fā)現(xiàn)用遙控器輸入密碼時,感應不是太靈敏,要多輸幾次才可以,它實際的有效距離也沒有進行系統(tǒng)的理論論證。 參考文獻
51、[1] 石晶晶 李亞梅.新型紅外遙控密碼鎖的研究與設計[J].中國科技信息2008 19 :134-136. [2] 王曉東,劉春紅,于鑫.單片機和計算機的串口通信[J].應用科技,2003(30) 1:14-16. [3] 何小艇主編.電子系統(tǒng)設計[M].浙江大學出版社,1998.12. [4] 曹開田. 基于單片機的紅外遙控密碼鎖的設計與實現(xiàn)[J].中國儀器儀表,2006 3 :93-94. [5] 于會山,崔學禮.一種新型紅外線遙控智能密碼鎖[M].電子技術,2005.10. [6] 曹巧媛.單片機原理及應用[M].北京:電子工業(yè)出版社,200[7] 牛翌光.單片機原
52、理及接口技術[M].北京:電子工業(yè)出版社,200[8] 楊路明.C語言程序設計[M].北京:北京郵電大學出版社,2005IrDA 紅外通信在導航儀中的應用[J]. 2000 10 :54-56. [10] 尹學鋒.紅外線遙控密碼鎖的研究[M].安防科技研究與探索,2008.3. [11] 李明等.C語言程序設計教程[M].上海.上海交通大學出版社,2008. [12] 馬冬梅,屈 霞.一種簡易紅外遙控密碼鎖設計與實現(xiàn)[J].現(xiàn)代電子技術,2010 13 :159-162. [13] 程院蓮,盧飛躍,基于AT89S51單片機的電子密碼鎖的設計[J].福建電腦,2010 6 :58-61.
53、 [14] 王金國. 采用單片機的電子密碼鎖控制電路[J] . 山東煤炭科技,2000 3 :30 - 33. [15] 朱純益 .單片機用作通用紅外遙控接收器的設計[J].單片機與嵌入式系統(tǒng)應用 ,2002 [16] Jimemez Petal. Improved PPM schemes for infrared wireless LAN [J].Electronics Lettrs.1996.10. [17] Serial Infrared Link Access Protocol IrLAP ,Version 1.1. June 16,1996,IBM Corpora
54、tion , Hewlett-Packard Company, Apple Computer, Inc.,Counterpoint Systems Foundry, Inc. [18] 黃耀軍,周云,嚴國萍.計算機紅外無線互連的設計幾實現(xiàn)[J].2000.2. [19] 張毅坤,陳善久,裘雪紅.單片微型計算機原理及應用[M].西安:西安科技大學出社,1998.8. [20] 謝平.USB與紅外組合通信系統(tǒng)的研究與實踐[J] .微計算機信息,2009 附錄 附錄圖1 電路原理圖 附錄圖2 PCB板 附錄圖3 實物圖
55、 附錄4 程序 #include #include //字符串 #include #define uint unsigned int #define uchar unsigned char // //定義ISP功能寄存器地址 sfr ISP_DATA 0xE2; //定義ISP的數(shù)據(jù)寄存器地址 sfr ISP_ADDRH 0xE3; //定義EEPROM地址寄存器的高8位 sfr ISP_ADDRL
56、 0xE4; //定義EEPROM地址寄存器的低8位 sfr ISP_CMD 0xE5; //定義ISP的命令寄存器地址 sfr ISP_TRIG 0xE6; //定義ISP命令觸發(fā)寄存器地址 sfr ISP_CONTR 0xE7; //定義ISP控制寄存器地址 //定義ISP操作模式選擇 ISP_CMD #define ISP_BYTE_READ 0x01 //讀字節(jié)指令碼 #define ISP_BYTE_PROGRAM 0x02 //寫字節(jié)指令碼,前提是該字節(jié)是空的,所以建議先擦除該字節(jié)所在扇區(qū) #define ISP_
57、BYTE_ERASE 0x03 //扇區(qū)擦除指令碼,EEPROM沒有字節(jié)擦除指令碼 //定義ISP等待時間指令碼 ISP_CONTR,ISP_CONTR.7是ISP功能允許位ISPEN,0禁止,1允許 #define ENABLE_ISP 0x81 //晶振20MHZ以下 //定義EEPROM的起始扇區(qū)地址 #define FLASH_START_ADDRESS 0x2000 //STC89C51/52RC //定義全局變量 uchar DataMemery; //IspRead 函數(shù)返回字節(jié)數(shù)據(jù)的中轉變量 //
58、 sbit lcden P2^5; sbit rw P2^6; sbit rs P2^7; sbit beep P2^3; uchar num,flag; //flag:密碼真確的標志位 uchar table1[6] 0 ; //存初始密碼 uchar table2[16] " "; //放*的數(shù)組 uchar table3[16] "
59、 "; //清除一個 uchar userpassword[6] 0 ; //放密碼的數(shù)組 uchar code table4[6] "012345"; //初始密碼 uchar code table[] "your password..."; //紅外設置 uchar bitnum;// uchar startflag; //是否開始接受的標志 uchar irtime; //紅外時間 uchar bitime,irreceok;
60、 //irreceok紅外接收是否OK的標志 uchar irprosok; //紅外處理數(shù)據(jù)是否OK的標志 uchar irdata[33];//引導碼1位,用戶碼16位,數(shù)據(jù)碼8位,數(shù)據(jù)碼反碼8位,共33位 uchar ircode[4];//該數(shù)組用于存儲解碼后的數(shù)據(jù), 四個字節(jié) 除去引導碼 void delay uint z //1ms延時 uint x,y; for x z;x 0;x-- for y 110;y 0;y-- ; void write_com uchar
61、com //寫命令函數(shù) rs 0; rw 0; P0 com; delay 5 ; lcden 1; delay 5 ; lcden 0; void write_date uchar date //寫數(shù)據(jù)函數(shù) rs 1; rw 0; P0 date; delay 5 ; lcden 1; delay 5 ; lcden 0; void prints uchar *string //顯示字符串 while *string write_date *string ;
62、string++; void Display_string uchar *string,uchar com uchar i; write_com com ; //prints string ; for i 0;i 16;i++ write_date string[i] ; void init_1602 //1602初始化函數(shù) lcden 0; write_com 0x38 ; //顯示模式設置 write_com 0x0c ; //顯示開 不顯示光標 光
63、標不顯示 write_com 0x06 ; //顯示地址遞增,即寫一個數(shù)據(jù)后,顯示位置右移一位 write_com 0x01 ; //清屏 Display_string table,0x80 ; Display_string "Lock ok! ",0x80+0X40 ; /**************************************** 函數(shù)功能:清空密碼 ****************************************/ void clear uchar i,j;
64、 for i 0;i 6;i++ userpassword[i] ' '; for j 0;j 16;j++ table4[j] ' '; // //函數(shù)名稱:void TriggerIsp void //函數(shù)功能:觸發(fā)ISP命令寄存器 //輸入輸出:空 //
65、 void TriggerIsp void //EA 0; ISP_TRIG 0x46; ISP_TRIG 0xb9; _nop_ ; //EA 1; // //函數(shù)名稱:void DisableIsp void //函數(shù)功能:對操作后的EEPROM善后處理 //輸入輸出:空 //
66、 void DisableIsp void ISP_CONTR 0x00; ISP_CMD 0x00; ISP_TRIG 0x00; ISP_ADDRH 0x00; ISP_ADDRL 0x00; // //函數(shù)名稱:void IspRead uchar Address //函數(shù)功能:從EEPROM中讀取一字節(jié)數(shù)據(jù) //輸入輸出:輸入:EEPROM的扇區(qū)地址 // 輸出:DataMemery,讀取到的數(shù)據(jù)內容 // void IspRead uint Address uchar Addrh,Addrl; ISP_C
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。