【正文】
是15來實現(xiàn),若是則報警,不是則繼續(xù)執(zhí)行。當11鍵按下,跟15鍵類似,只不過其最終操作是解除布防,置operation為0。= 0x7FPC |=0x808255A方式控制字為0x88,其具體意義如表317。= 0xBFPA |= 0x40PB0PA5PB amp。= 0xEFPA |= 0x10PA5L298_INT2PA amp。= 0xFBPA |= 0x04PA393C66_CSPA amp。= 0xFEPA |= 0x01PA193C66_DIPA amp。8255各主要輸出引腳功能及其連接如表316。= 0xCF。= 0xEF。//IN2置1,電機轉動 }void openlock()//電機停止轉動{ PB |= 0x01。= 0xEF。= 0xFEPB |= 0x012OUT1輸出端1橋點A無3OUT2輸出端2橋點B電機控制模塊函數(shù)如下:void openlock()//電機轉動,開鎖{ PB |= 0x01。= 0xEFPA |= 0x107IN2輸入端2PA5PA amp。電機轉動與停止的控制:當ENA置1,ININ2均置0時電機停止轉動,ININ2均置1時電機轉動。.2 數(shù)據(jù)讀出從93C66讀入8位數(shù)據(jù):片選置高,讀數(shù)據(jù)指令寫入93C66,每到來一個脈沖則從93C66讀入一個數(shù)據(jù),依次取8位數(shù)據(jù),然后片選置低,最后返回所讀數(shù)據(jù)。= 0xFEPA |= 0x015VCC+5V+5V無6NC不接不接7ORG接低為8位,為高為16位接地8GND地接地.1 數(shù)據(jù)寫入向93C66寫入8位數(shù)據(jù):片選置高,寫允許,向93C66寫入寫指令,如果為輸入數(shù)據(jù)則在一個脈沖到來之時向93C66寫入數(shù)據(jù),當忙檢測到不忙時則寫禁止。= 0xFBPA |= 0x043DI串行數(shù)據(jù)輸入端PA1PA amp。表313 AT93C66各引腳分布、功能及相應操作引腳號引腳名功能與控制器連接置0操作置1操作1CS片選PA3PA amp。寫入AT93C66的數(shù)據(jù)可以維持100年的時間,而且AT93C66可以反復地清除后再重新寫入100萬次。AT93C66是一片128words的串行式EEPROM。 keyprocess()。(j33)) j++。i++) { while(JSsz[j]==JMsz[i][j]amp。 for(i=0。 } else//若接收完成,標志位JSbz恢復初值,并確定是哪個鍵按下 { JSbz=0。 else JSsz[JSbz]=1。代碼如下:void ex0( ) interrupt 0//外部0中斷,接收數(shù)據(jù){ if(JSbz33)//若接收位小于33則繼續(xù)接收 { delayus(840)。帶接收完畢通過解碼判斷是哪個按下,從而做出相應操作。外部0中斷每次接收一位數(shù)據(jù),并通過判斷占空比來判斷接收的是0還是1。根據(jù)碼的格式,應該等待 9ms 的起始碼和 的結果碼完成后才能讀碼。警急聲光報警 紅外解碼接收模塊解碼的關鍵是如何識別“0”和“1”,從位的定義我們可以發(fā)現(xiàn)“0”、“1”均以 的低電平開始,不同的是高電平的寬度不同,“0”為 ,“1”為 ,所以必須根據(jù)高電平的寬度區(qū)別“0”和“1”。*39。密碼修改模塊具體流程圖如圖37所示,基本函數(shù)及其功能如表312。首先輸入密碼,跟密碼輸入模塊類似,輸入錯誤返回輸入,連續(xù)三次錯誤輸入則緊急報警;若輸入正確則進入密碼修改界面。時間修改流程圖如圖36,日期修改類似時間修改,基本函數(shù)及其功能如表311。void get_password( )輸入密碼讀取并暫存函數(shù)uint check_password( )密碼核對uint input_newpassword( )新密碼輸入void openlock( )開鎖void Alarm_input_error( )輸入聲光報警Alarm_jinji_error( )。具體流程圖如圖35,所用到基本函數(shù)及其功能見表310。待密碼輸入完成,判斷輸入密碼位數(shù)與從93C66中獲取的密碼位數(shù)是否相同。當主函數(shù)中調(diào)用耗時較長且有可能與中斷產(chǎn)生沖突函數(shù)運行時首先判斷INTbz標志位是否為1,若為1則表示中斷完成或還未進行中斷,即可以正常進行函數(shù)執(zhí)行。中斷使用標志INTbz來判斷中斷是否完成,以避免主函數(shù)中其他函數(shù)與中斷函數(shù)產(chǎn)生沖突。具體如圖33所示流程圖。其中DDRAM的存儲位置如表35所示,LCM1602指令碼及其功能如36所示,LCM1602A各引腳功能及與單片機關聯(lián)如表37所示,液晶顯示模塊基本函數(shù)如表38所示。表34 鍵盤輸入模塊基本函數(shù)及其功能鍵盤輸入模塊函數(shù)功能char keypad_scan()鍵盤掃描,判斷某列有無鍵按下uchar gotkeyno()確認某鍵按下并返回鍵號P2口置0xF0,掃描P2口 P2口值是否改變P2口值是否改變延時去抖P2口值與鍵值比較并返回鍵號 開 始否否是是圖32 鍵掃及按鍵確認流程圖 液晶顯示模塊 LCM1602A是一個2X16的LCD顯示器模塊,除了顯示部分外,還另外包含了一顆HD44780的顯示控制器。先置P2口為0xF0,掃描P2口,判斷P2口是否還是0xF0,若否則鍵抖延時再次確認,若仍然不是0xF0,則確實有鍵按下。鍵盤如表31,按鍵行地址如表32,按鍵對應鍵值如表33,鍵盤模塊主要函數(shù)如表34。其中初始化模塊、鍵盤輸入處理模塊不管主機還是遙控器都是一致的,而紅外編碼發(fā)射是遙控器獨有的,其他是主機的,主機總流程圖分別如圖31。系統(tǒng)主機軟件主要由初鍵盤輸入模塊、液晶顯示模塊、掉電存儲模塊、紅外接收解碼模塊、時間日期模塊、密碼輸入模塊、密碼修改模塊以及時間日期修改模塊組成。 初始化模塊系統(tǒng)軟件框圖主機軟件框圖遙控器軟件框圖 鍵盤輸入處理模塊 液晶顯示模塊 紅外接收處理模塊 時間模塊密碼驗證及鎖控模塊 密碼修改模塊 防控模塊 初始化模塊 鍵盤輸入處理模塊 紅外發(fā)射處理模塊。遙控器軟件主要由初始化模塊、鍵盤輸入處理模塊以及紅外編碼發(fā)射模塊組成。STC單片機LCD顯示模塊測震模塊晶振模塊復位模塊8255AI/O口擴 展模 塊鍵盤模塊警燈模塊接收模塊存儲模塊警鈴模塊電機模塊圖21 硬件主機框圖STC51單片機紅外發(fā)射模塊晶振模塊手動復位模塊鍵盤輸入模塊圖22 硬件遙控器框圖 系統(tǒng)軟件設計框圖系統(tǒng)軟件由主機軟件和遙控器軟件組成。其中主機電路主要是以STC90C51RD+為核心,配備以及結合LCM、水銀開關、晶振、手動拉低電路、地址鎖存器及8255A、93C6步進電機、555多諧振蕩電路、自制4X4小鍵盤、LED組、紅外接收PH302等構成顯示模塊、測振模塊、晶振模塊、手動復位模塊、I/O口擴展模塊、掉電存儲模塊、電機(鎖)模塊、警鈴模塊、鍵盤輸入模塊、警燈模塊、接收模塊等等,如圖21所示。主機遙控器按鍵功能完全相同,見表21。主程序實現(xiàn)鍵盤掃描、LCD顯示、按鍵操作控制、電機控制、震動檢測、以及意外聲光報警、紅外接收解碼等等。程序中使用了兩個中斷:定時器Timer0溢出中斷和外部0中斷;其中定時器Timer0溢出中斷主要實現(xiàn)年、月、日、時、分、秒、星期的液晶顯示控制。2. 軟件:以Keil uVision3為軟件平臺,以C語言為編程語言,以STC_ISP_V483及STC開發(fā)板為燒錄和調(diào)試平臺,最終得以實現(xiàn)結果。 系統(tǒng)總體設計思路根據(jù)系統(tǒng)的設計要求,需要解決顯示、鍵盤終端輸入、掉電存儲、電機控制、無限遙控問題,產(chǎn)生如下方案:1. 硬件:主機是以STC90C516RD+單片機為核心,以4X4矩陣鍵盤和LCM(1602A)液晶為終端輸入輸出,以SM0038及INT0等構成紅外接收模塊,以93C66及周邊電路構成掉電存儲電路,以水銀開關為主構成防震模塊,以L298N和直流電機為主構成鎖功能模塊,并通過C51編程最終實現(xiàn)系統(tǒng)要求。4:當出現(xiàn)錯碼開鎖或強烈震動時,電腦程控密碼鎖立即聲光報警。2:可任意設置10位以內(nèi)的開門密碼一個,且掉電后數(shù)據(jù)不丟失。 紅外遙控問題:紅外收發(fā)編碼解碼亦是本次設計有待解決的一大問題。 電機控制問題:如何控制L298N進而控制電機,即鎖的開關是本次設計的另一大難關之一。 矩陣鍵盤輸入問題:鍵盤掃描與鍵盤識別并對應做出處理是終端輸入的最重要的一個技術環(huán)節(jié),也是系統(tǒng)實現(xiàn)功能的不可或缺的環(huán)節(jié)。系統(tǒng)軟件設計主要有以下幾個難題有待解決: LCD液晶顯示問題:如何在1602A準確穩(wěn)定地顯示成為本設計顯示模塊的一大問題。 軟件設計主要工作 根據(jù)已經(jīng)設計好的硬件,結合所需實現(xiàn)的功能,按照模塊化設計編程的思想依模塊將各個功能分別實現(xiàn)。在國外發(fā)展比較早,所以應用也比較廣泛,主要在家庭裝較貴重地方,銀行,保險柜等應用較多,在國內(nèi)這方面發(fā)展也較快,不管自己開發(fā)或是引進都有,在重要地方應用也較多,由于價錢比普通彈子鎖較貴,早幾年應用較少,現(xiàn)在越來越普及到平?;?,未來的發(fā)展也會越來越被大眾采用,由于它的功能、安全是彈子鎖無法相比的。所以紅外線遙控是目前使用最廣泛的一種通信和遙控手段之一。紅外線發(fā)射裝置采用紅外發(fā)光二極管,遙控發(fā)射器易于小型化且價格低廉;采用數(shù)字信號編碼和二次調(diào)制方式,不僅可以實現(xiàn)多路信息的控制,增加遙控功能,提高信號傳輸?shù)目垢蓴_性,減少誤動作,而且功率消耗低;紅外線不會向室外泄露,不會產(chǎn)生信號串擾;反應速度快、傳輸效率高、工作穩(wěn)定可靠等。另外還配有強烈震動檢測裝置以及意外報警等功能,更加能夠確保人們貴重物品保管的安全性。本系統(tǒng)迎合了目前嵌入式的大趨勢,通過單片機及其外圍電路以及其強大的編程處理功能實現(xiàn)了保險柜密碼鎖的一個劃時代的更新。本系統(tǒng)是針對這個問題而設計的,除了擁有它們密碼輸入、密碼修改等基本功能外,還擁有強大的擴展功能。關鍵詞:單片機,掉電保存,液晶顯示、紅外遙控、防控 指導老師簽字: The Software Design of Electronic Cipher Lock for Safe Student Name: Zhu Zhenhua Class: 0882052 Supervisor: Wang ZhongAbstract:As the country has bee increasingly prosperous, people’s standard of living also is increasing ceaselessly. Home valuables is increasing, which has powerful function of safe appears more and more important. Infrared remote control of electronic locks are the big hero of safes, and through the improvement it also has the strong vibration detection antitheft function, and has a control module. The system’s software is consist of SCM minimum system, keyboard scanning, LCD 1602A display, time and date display, powerdown memory, motor control, alarm control system, strong vibration detection system,infrared remote contol module. The system can plete the input password of lock, password modification, remote host function. In addition to the above basic function, system is also with the function ,like liquid crystal display, time and date display, control settings and revocation , three consecutive input errors system locking, poweroff password save, time changing, acoustooptic tips and other functions. The time and