




已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
畢業(yè)設計 基于at89s51的密碼柜控制器設計 基于at89s51的密碼柜控制器設計鄒佳輝摘要:隨著社會物質(zhì)財富的日益增長和科技文明的高速發(fā)展,安全防盜已成為一個備受關注的社會問題。而互開率極高的機械鎖泛濫成災,有諸多安全隱患。本文使用單片機設計了一個密碼柜控制器。設計中,使用單片機at89s51作為主控芯片,e2prom at24c02作為數(shù)據(jù)存儲器,并結(jié)合外圍電路進行設計。該控制器具有密碼輸入、密碼比對、密碼修改、錯誤報警和狀態(tài)顯示等功能。論文詳細描述了控制器的設計方案,給出了各功能模塊的程序流程圖和代碼清單。經(jīng)測試表明,該控制器的軟件運行正常,可以實現(xiàn)設計目標。關鍵詞:密碼柜;單片機;led顯示;at89s51;at24c024design of code cabinet controller based on at89s51li liangcollege of physics and electronic information electrical engineering and automation no:070544*tutor: cui *abstract: with the growing material wealth of the society and the rapid development of science and technology, security has become a social problem which should be paid more attention. the mechanical locks can be opened mutually which has become a safety hazard. in this paper, a design of the code cabinet controller based on mcu is proposed. the design is accomplished by using at89s51 and at24c02 as the main controller chip and the data memory. in addition, external circuit is also adopted to finished the design. the controller has many functions such as password inputting, password comparing, password modifying, error warning and state displaying etc. in this thesis, the design method of the controller is described in detail, and the program flow chart and code list of function blocks are presented respectively. the debugging indicated that the software works well and can achieve the design goal. key words: code cabinet; mcu; led display; at89s51; at24c02 目 錄摘要11 引言42 密碼柜控制器的功能與設計方案42.1 密碼柜控制器的功能42.2 密碼柜控制器的設計方案43 芯片介紹53.1 單片機at89s5153.2 存儲器芯片at24c02463.3 譯碼器74ls13873.4 集成穩(wěn)壓模塊mc780574 密碼柜控制器硬件設計74.1 電源電路設計74.2 輸入鍵盤電路設計84.3 復位電路設計94.4 時鐘電路設計94.5 信息存儲電路設計104.6 數(shù)碼管顯示電路設計104.7 報警電路設計114.8 開鎖電路設計115 密碼柜控制器軟件設計125.1 軟件工作流程125.2 鍵盤輸入子程序125.3 密碼比對子程序125.4 密碼修改子程序135.5 密碼錯誤報警子程序135.6 開鎖子程序135.7 程序存儲器讀寫子程序135.8 狀態(tài)顯示子程序146 軟件編譯與調(diào)試156.1 keil c51 編譯156.2 開發(fā)板調(diào)試157 結(jié)束語16參考文獻16附錄117附錄218 1 引言 鎖自古以來就是把守門戶不可或缺的法寶,古代能工巧匠對于機械鎖的研究至今仍讓世人嘆為觀止。但是,由于高保密性能的機械鎖工藝復雜、成本較高,一直未能推廣使用,大多使用的還是傳統(tǒng)的簡單機械鎖。同時,假冒偽劣的機械鎖也已泛濫成災,互開率非常高,極不安全?,F(xiàn)在,在大型超市、娛樂場所等,員工個人物品的存放和顧客隨身物品的寄存都需要儲物柜。而一些工廠、企事業(yè)單位保密文件的安全存放,更需要保密設施完備的文件柜。傳統(tǒng)的箱柜多采用機械鎖,而傳統(tǒng)機械鎖有諸多不安全因素。隨著電子產(chǎn)品的普及和自動化時代的到來,機械產(chǎn)品由于其高繁復性和高廢材性,已不能適應人們的需求,慢慢退出市場。而電子產(chǎn)品則以其輕便、快捷、高性價比的特點迅速占領市場。采用電子電路設計的密碼鎖應運而生,并逐漸引領潮流。本設計采用單片機at89s51設計了一個密碼柜控制器,該控制器可用一個電路控制多個密碼柜,通過輸入密碼對密碼柜進行開啟和鎖閉,操作簡便,防盜性強。2 密碼柜控制器的功能與設計方案2.1 密碼柜控制器的功能本次設計的,密碼柜控制器的功能如下:系統(tǒng)初始化后,進入等待密碼輸入階段,當有6位密碼輸入時(前2位為箱號,后4位為密碼),則進行密碼比對。密碼正確,則顯示“p-”,此時,若按下“開鎖”按鈕,對應的柜門打開;若按下“修改密碼”按鈕,則進入密碼修改狀態(tài)。完成相應操作后,系統(tǒng)會進行初始化,可重新輸入密碼。密碼錯誤,則進入密碼錯誤環(huán)節(jié),提示重新輸入。當密碼輸入錯誤三次時,就不再讀取按鍵,并進行報警,同時屏幕顯示“error”。2.2 密碼柜控制器的設計方案密碼柜控制器設計方案如圖1所示,電路分為九個部分:電源電路、led數(shù)碼管顯示、復位電路、時鐘電路、鍵盤輸入、密碼儲存、報警電路、led指示、開鎖控制電路。本設計以單片機at89s51為核心設計密碼柜的控制器。單片機具有編程方式靈活、i/o端口豐富、控制性能準確等優(yōu)點。設計中,使用at24c02作為程序存儲器,與單片機p1.0p1.2相連;輸入鍵盤作為密碼輸入終端,與單片機p3口相連;數(shù)碼管電路作為狀態(tài)顯示終端,與單片p0口及p2.0p2.2口相連;開鎖電路用來控制開鎖動作,與單片機p2.3p2.7相連。圖1 密碼柜控制器設計方案3 芯片介紹3.1 單片機at89s51 at89s51是美國 atmel 公司生產(chǎn)的低功耗、高性能的8位單片機,采用 atmel 公司的高密度、非易失性存儲技術生產(chǎn),兼容標準 8051 指令系統(tǒng)及引腳。片內(nèi)含有4k字節(jié)的可編程flash程序存儲器,既可在線編程(isp),也可用傳統(tǒng)方法進行編程。 at89s51的封裝形式如圖2所示, 提供以下標準功能:4k字節(jié) flash存儲器,128 字節(jié)內(nèi)部 ram,4個i/o 口,看門狗(wdt),兩個數(shù)據(jù)指針,兩個16位定時/計數(shù)器,一個5向量兩級中斷結(jié)構(gòu),一個全雙工串行通信口,片內(nèi)振蕩器及時鐘電路。同時,at89s51可降至0hz的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式:空閑方式和掉電方式。空閑方式停止cpu的工作,但允許ram、定時/計數(shù)器、串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存ram中的內(nèi)容,但振蕩器停止工作,并禁止其它所有部件,直到下一個硬件復位1。圖2 at89s51封裝圖3.2 存儲器芯片at24c024at24c02是支持i2c總線數(shù)據(jù)傳送協(xié)議的cmos e2prom,其容量為256字節(jié),擦寫次數(shù)可達10萬次以上,寫入數(shù)據(jù)的有效保存時間可達100年2。其封裝形式如圖3所示。圖3 at24c02封裝圖scl:串行時鐘,at24c02串行時鐘輸入管腳用于產(chǎn)生器件所有數(shù)據(jù)發(fā)送或接收的時鐘,這是一個輸入管腳。 sda:串行數(shù)據(jù)/地址,at24c02 雙向串行數(shù)據(jù)/地址管腳用于器件所有數(shù)據(jù)的發(fā)送或接收,sda 是一個開路輸出管腳,可與其它開路輸出或集電極開路輸出進行線或(wire-or)。 a0、a1、a2:地址輸入端,這些輸入腳用于多個器件級聯(lián)時設置器件地址,當這些腳懸空時默認值為0。當使用at24c02 時最大可級聯(lián)8個器件。如果只有一個at24c02被總線尋址,這三個地址輸入腳(a0、a1、a2 )可懸空或連接到vss,如果只有一個at24c02被總線尋址這三個地址輸入腳(a0、a1、a2 )必須連接到vss。 wp:寫保護,如果wp管腳連接到vcc,所有的內(nèi)容都被寫保護只能讀。當wp管腳連接到vss 或懸空時,允許器件進行正常的讀/寫操作3,4。3.3 譯碼器74ls138 74ls138 為3 線8 線譯碼器,其封裝形式如圖4所示。該譯碼器有3位二進制輸入a1、a2、a3,共有8種狀態(tài)組合,可編譯出8個輸出信號。此外,還設置了3個使能輸入端和和5。3.4 集成穩(wěn)壓模塊mc7805設計中,需要一個能提供精確+5v電壓的穩(wěn)壓電源,這里使用motorola公司的電壓芯片mc7805,它能將12v左右的電壓轉(zhuǎn)變?yōu)榫_+5v的電壓輸出6,7。其封裝形式如圖5所示。 圖4 74ls138 封裝圖 圖5 mc7805封裝圖4 密碼柜控制器硬件設計4.1 電源電路設計在單片機系統(tǒng)中,電源電路入侵是干擾入侵的主要途徑,為增加系統(tǒng)的穩(wěn)定性,采用抗干擾穩(wěn)壓電源。電源電路由變壓器、整流橋、三端集成穩(wěn)壓電路和濾波電路組成。電源通過低通濾波器和隔離變壓器接入電網(wǎng),如圖6所示。在市電與變壓器間并聯(lián)兩個0.01f電容構(gòu)成低通濾波器,用以吸收市電中的“毛刺”。經(jīng)變壓后得到8v-12v的交流電,并通過橋式整流得到直流電壓。然后,由并聯(lián)100f的電解電容和0.33f的瓷片電容構(gòu)成的濾波器進行濾波,最后使用mc7805將12v左右的電壓轉(zhuǎn)變?yōu)榫_+5v輸出。為了進一步降低干擾,在單片系統(tǒng)的vcc處并聯(lián)電容濾波網(wǎng)絡1,7。圖6 電源電路圖4.2 輸入鍵盤電路設計本設計采用44矩陣式鍵盤,與獨立式鍵盤相比,這種鍵盤可節(jié)省很多i/o口線。矩陣式鍵盤由行線和列線組成,按鍵位于行列的交點上。矩陣式鍵盤的按鍵識別方式有兩種:一是行掃描法,二是線反轉(zhuǎn)法。行掃描法中,首先由行線發(fā)出低電平信號,此時,若有按鍵按下,則相應列線為“0”;無按鍵按下,則相應列線為“1”。逐行掃描完畢后,若只有一個鍵按下,則讀入鍵值;若多鍵按下則按鍵無效。線反轉(zhuǎn)法中,首先由單片機向列線輸出全“0”,讀入行線值后,若某行有鍵按下,則該行線值為“0”。然后再將讀取的行線值經(jīng)行線輸出,同時將所有列線置“1”。隨后,讀取列線值,有鍵按下的列線值為“0”。這樣通過行列交叉定位,可識別出按鍵的位置。因此線反轉(zhuǎn)法的識別速度比行掃描快很多,本設計采用線反轉(zhuǎn)識別方法。鍵盤電路如圖7所示,按鍵設置在行列線交點上,行、列線分別接到按鍵開關兩端。其中,行、列線通過上拉電阻接到+5v上,并連接到單片機的p3口1,8。圖7 輸入鍵盤電路圖4.3 復位電路設計單片機的復位電路如圖8所示。在通電瞬間,rc電路充電,reset端出現(xiàn)正脈沖,從而使單片機復位。在系統(tǒng)的運行過程中,只要按下開關,reset就能得到高電位,復位有效1,9,10。復位脈沖要持續(xù)10ms以上,才能保證有效復位。4.4 時鐘電路設計在單片機的xtal1引腳和xtal2引腳之間接12m石英晶體振蕩器和30pf的電容,組成并聯(lián)諧振回路,如圖9所示1,9。 圖8 單片機復位電路圖 圖9 時鐘電路4.5 信息存儲電路設計存儲器芯片at24c02的a0、a1、a2是三條地址線,用于確定芯片的硬件地址。本設計只用到了一片at24c02,因此a0、a1、a2均接至高電平。wp、scl、sda分別接單片機的p1.0、p1.1、p1.2,通過p1.0、p1.1、p1.2來模擬實現(xiàn)i2c的功能3,11。圖10 程序儲存電路圖4.6 數(shù)碼管顯示電路設計數(shù)碼管顯示電路如圖11所示。由單片機p2.0、p2.1、p2.2依次輸出000b111b,經(jīng)74hc138譯碼后得到位選通信號,順次選通8個數(shù)碼管。然后,單片機的p0口的輸出數(shù)據(jù)顯示在被選通的數(shù)碼管上12。 圖11 數(shù)碼管顯示電路4.7 報警電路設計報警電路如圖12所示,由蜂鳴器和外圍電路組成。密碼輸入正確時,蜂鳴器不發(fā)聲,直接開鎖,指示燈亮;密碼輸入錯誤時,蜂鳴器發(fā)聲報警,指示燈熄滅。圖12 報警電路4.8 開鎖電路設計開鎖電路的功能是將單片機內(nèi)部信號轉(zhuǎn)化成開鎖信號。由于本設計采用集成控制,由一個單片機來控制16個箱體的門鎖,因此采用譯碼器來擴展控制數(shù)目。開鎖電路如圖13所示,使用2片74hc138組合成4線-16線的譯碼系統(tǒng),其中p1.5是連接防止誤開鎖的選通信號。圖13 開鎖電路5 密碼柜控制器軟件設計5.1 軟件工作流程密碼柜控制器的工作流程如圖14所示,軟件設計主要完成密碼比對、密碼修改、錯誤報警、存儲器讀寫、鍵盤輸入、開鎖和顯示等功能。其中顯示功能利用單片機的內(nèi)部時鐘中斷完成,中斷間隔為10ms。其它功能均通過調(diào)用相應子程序?qū)崿F(xiàn)。主程序流程圖如圖15,程序代碼見附錄2。圖14 軟件工作流程圖 圖15 主程序流程圖 5.2 鍵盤輸入子程序鍵盤設計采用了44矩陣鍵盤,采用反線法掃描鍵盤,得到鍵盤按鍵的返回值后,再通過比對來辨別按鍵的具體功能。鍵盤輸入子程序流程圖如圖16,程序代碼見附錄2。5.3 密碼比對子程序密碼比對子程序?qū)︽I盤輸入的密碼和密碼存儲器中的密碼進行比對,并根據(jù)結(jié)果修改相關的標志位,返回給主程序。密碼比對子程序流程圖如圖17,程序代碼見附錄2。圖16 鍵盤輸入子程序流程圖 圖17 密碼比對子程序流程圖5.4 密碼修改子程序密碼修改子程序是通過修改密碼存儲器中的內(nèi)容,實現(xiàn)密碼修改功能。密碼修改子程序流程圖如圖18,程序代碼見附錄2。5.5 密碼錯誤報警子程序密碼錯誤報警子程序的功能是:當錯誤次數(shù)不超過三次時,提示錯誤,并轉(zhuǎn)入密碼輸入程序,輸入新密碼;當輸入錯誤次數(shù)達到三次時,進行報警并鎖定鍵盤3分鐘。密碼錯誤報警子程序流程圖如圖19,程序代碼見附錄2。5.6 開鎖子程序開鎖子程序?qū)崿F(xiàn)開鎖功能,當輸入密碼正確并按下開鎖時,通過p2.4p2.7口和p1.5的輸出開鎖信號,控制箱柜的門開啟或鎖閉。開鎖子程序流程圖如圖20,程序代碼見附錄2。5.7 程序存儲器讀寫子程序程序存儲器讀寫子程序?qū)崿F(xiàn)對密碼存儲器訪問。當進行密碼修改時,需進行寫入操作;當進行密碼比對時,需進行讀出操作。寫入程序和讀出程序流程圖如圖21和圖22所示,程序代碼見附錄2。圖18 密碼修改流程圖 圖19 密碼錯誤報警流程圖 圖20 開鎖流程圖5.8 狀態(tài)顯示子程序狀態(tài)顯示子程序顯示系統(tǒng)運行狀態(tài),采用內(nèi)部時鐘中斷實現(xiàn),即先通過程序?qū)⒁@示的數(shù)據(jù)存入顯示緩沖數(shù)組內(nèi),再通過中斷將緩沖數(shù)組內(nèi)的數(shù)據(jù)顯示到數(shù)碼管上。狀態(tài)顯示子程序流程圖如圖23,程序代碼見附錄2。圖21 寫密碼流程圖 圖22 讀密碼流程圖 圖23 顯示流程圖 6 軟件編譯與調(diào)試6.1 keil c51 編譯keil c51是美國keil software公司出品的51系列兼容單片機c語言軟件開發(fā)系統(tǒng)。與匯編相比,c語言在功能上、結(jié)構(gòu)性、可讀性、可維護性上有明顯的優(yōu)勢。將程序代碼添加到工程中,點擊“編譯”,通過錯誤提示修改程序的語法錯誤與邏輯錯誤,并再次編譯。編譯無錯誤提示后,點擊“匯編”,生成16進制的可執(zhí)行程序。結(jié)果如圖23所示。6.2 開發(fā)板調(diào)試在萬用單片機實驗開發(fā)板上,將程序通過usb在線下載器下載到單片機中,其下載過程如圖24所示。在開發(fā)板中調(diào)試各程序模塊,直到各模塊運行正常。密碼柜控制器部分功能運行過程如圖25-28所示。 圖23 keil c51編譯結(jié)果 圖24 程序燒寫過程 圖25 等待輸入密碼 圖26 密碼錯誤報警 圖27 比對正確 圖28 開啟01號箱 7 結(jié)束語本次設計以單片機at89s51為核心,設計了一個密碼柜控制器。該密碼柜控制器具有電路結(jié)構(gòu)簡單、成本低等優(yōu)點,能夠完成密碼比對、密碼修改、錯誤報警等功能。測試結(jié)果表明,各程序模塊運行正常。本次設計比較簡單,還有一些不足之處。例如,密碼存儲器在讀寫過程中沒有采取加密措施,密碼有被破解的風險,今后將進一步解決此問題。參考文獻1 余錫存, 曹國華. 單片機原理及接口技術m. 西安: 西安電子科技大學出版社, 2007. 第二版: 178-186; 159-163; 130-133; 24-25.2 于會山, 崔學禮. 一種新型紅外線遙控智能密碼鎖j. 電子技術, 2005, 10: 45-49.3 盧旭錦. 基于keil c的at24c02串行e2prom的編程j. 現(xiàn)代電子技術, 2007, 8: 154-160.4 季宏鋒, 吳軍輝, 徐立輝. i2c總線技術及應用實例j. 自動化儀表, 2002, 4. 21-23.5 康華光. 電子技術基礎數(shù)字部分(第五版) m. 北京: 高等教育出版社, 2006, 1. 第五版: 144-153.6 陳開文. 基于at89c51的安全密碼鎖應用設計a. 科技資訊, 2006, 9: 2-3.7 康華光. 電子技術基礎模擬部分(第五版) m. 北京: 高等教育出版社, 2006, 1. 第五版: 485-511.8 周文龍. 基于單片機控制的電子密碼鎖設計j. 大眾商務, 2009, 3: 108-109.9 張陪仁. 基于c語言編程mcs-51單片機原理與應用m. 北京: 清華大學出版社,2003, 1: 12-13.10 邱關源, 羅先覺. 電路(第五版) m, 高等教育出版社. 2006. 5. 第五版: 147-152.11 卜登立. 基于優(yōu)先級編碼器的非編碼矩陣鍵盤接口設計j. 化工自動化及儀表, 2010, 37 (4): 93 -95. 12 管小明, 雷伯錄, 曾凡錦, 吳邦國. 具有激活功能的實用型密碼系統(tǒng)的設計j. 設計參考, 2008, 10 (12): 33-38.附錄1電路原理圖附錄226/*- 名稱:基于at89s51單片機的16箱密碼柜 學校:洛陽師范學院 編寫:李良 日期:2011年5月 指導老師:崔 版本號:1.0 內(nèi)容:通過鍵盤輸入密碼來完成對16箱密碼 柜控制。-*/#include #include #include#define uint unsigned int#define uchar unsigned char#define key p3 /定義鍵盤接口 #define no_key 20 /定義鍵盤無按鍵鍵值 #define addwr 0xae /定義寫24c02地址 #define addrd 0xaf /定義讀24c02地址 sbit sda=p12; /定義i2c總線sbit scl=p11;sbit wp=p10; /定義寫保護 sbit light= p13; /定義密碼正確標示燈sbit light1= p14;/定義錯誤報警接口sbit km=p15;/定義開鎖允許接口uchar j ;/數(shù)據(jù)輸入個數(shù)uchar aa; /記錄鍵盤鎖定時間uchar xh;/箱號uchar dispcode8=0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40;/顯示緩存uchar dispbit8=0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7;/顯示位選uchar code table= 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40;uchar code table1=0x73,0x40,0x40,0x40,0x40,0x40,0x40,0x40 ;uchar code table2=0x79,0x31,0x31,0x3f,0x31,0x00,0x00,0x00 ;uchar code table3=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;uchar code ks=0x1f,0x2f,0x3f,0x4f,0x5f,0x6f,0x7f,0x8f,0x9f,0xaf,0xbf,0xcf,0xdf,0xef,0xff;uchar password4 ; /密碼緩存uchar save6; /輸入數(shù)據(jù)緩存 uchar conflag ; / 密碼正確標志 uchar lockflag; /鎖定鍵盤標志 uchar startflag; /開始標志 void mdelay(uchar yy); /延時子程序 void init(); /初始化子程序 void display_ok();/密碼真確顯示void display_enter();/等待輸入密碼顯示void display_error(); /密碼錯誤顯示void delete(); /刪除子函數(shù)void change();/更改密碼子函數(shù)uchar keyscan() ; /鍵盤掃描子函數(shù) uchar keyscanxz(void) ;/鍵值選擇子函數(shù)void enter_code(uchar t); /輸入數(shù)據(jù)記錄子函數(shù)void kaisuo(uchar h);/開鎖子函數(shù)void confirm();/密碼比對子函數(shù)void succeed_an(); /密碼正確響應void fail_an(); /密碼錯誤響應void lockkey(); /鍵盤鎖定子函數(shù) void alarm(); /錯誤報警子函數(shù)void reset(); /數(shù)據(jù)復位子函數(shù) void start(void);/開啟i2c總線void stop(void);/關閉i2c總線void ack(void);/應答void noack(void);/非應答void send(unsigned char data);/發(fā)送一個數(shù)據(jù)unsigned char read(void);/讀取一個數(shù)據(jù)void wrtorom(unsigned char data,unsigned char address,unsigned char num);/寫數(shù)據(jù)void rdfromrom(unsigned char data,unsigned char address,unsigned char num);/讀數(shù)據(jù)/*主程序*/void main(void) uchar temp; init(); /初始化 while(1) if(lockflag) temp=keyscanxz(); if(temp!=no_key) aa=0; /鎖定鍵盤是掃描鍵盤 else temp=keyscanxz(); if(temp!=no_key) /判斷鍵值賦予不同的功能 if(temp=10) reset();/數(shù)據(jù)復位 startflag=1;/置位開始標志 di if(startflag) enter_code(temp); if(temp=13) confirm();/調(diào)用密碼比對 if(conflag) succeed_an();/調(diào)用密碼正確響應 reset(); memcpy(dispcode, table, sizeof(dispcode);/將要顯示數(shù)據(jù)存入顯示緩存數(shù)組 else fail_an();/密碼錯誤響應 reset(); if(temp=14) delete();/調(diào)用刪除子函數(shù),進行數(shù)據(jù)修改 /*初始化*/void init(void)/初始化設置內(nèi)部計時器t0,t1tmod = 0x11;th0=(65536-50000)/256;tl0=(65536-50000)%256;th1 = 0xb1;tl1 = 0xe0;et0=1;tr0=1;et1 = 1; tr1 = 1;ea = 1;/* 對各種變量進行復位*/void reset()uchar num;for(num=0;num8;num+) dispcodenum=0;/復位顯示緩存數(shù)組 savenum=0;/復位顯示緩存數(shù)組lockflag=0; /復位鎖鍵盤標志conflag=0;/復位密碼正確標志j=0;/復位數(shù)據(jù)個數(shù)記錄display_enter();/* 顯示子程序*/void display_enter()dispcode7=0x80;void display_ok()memcpy(dispcode, table1, sizeof(dispcode);void display_error()memcpy(dispcode, table2, sizeof(dispcode);void timer1interrupt(void) interrupt 3 uchar ii,jj; th1 = 0xb1; tl1 = 0xe0; km=1;/關閉開鎖允許for(ii=0;ii4) goto loop; loop1: reset(); xmflag=1; while(xmflag) temp=keyscanxz(); if(temp!=no_key) enter_code(temp); if(temp=14) delete(); if(temp=13) xmflag=0; if(j4) goto loop1; else for(k=0;k2) /錯誤三次進行報警 bb0=0; wrtorom(bb,70,1); wp=1; alarm(); lockkey();void alarm() /密碼報警 uchar s=50,ss=250,sss=20; while(sss-) while(ss-) while(s-); light1=light1; light1=1;/*鎖鍵盤子程序*/void lockkey() /鎖鍵盤lockflag=1;void timer0() interrupt 1 th0=(65536-50000)/256; tl0=(65536-50000)%256; if(lockflag) aa+; light1=0; if(aa=60) aa=0; light1=1; lockflag=0; reset(); /*對比密碼子程序*/void confirm() uchar k; xh=save0*10+save1-1;/計算箱號 if(xh16 ) goto cc;/輸入箱號大于16退出比對 rdfromrom(password,xh*4,4);/讀取原始密碼 for(k=0;k=0&t0;yy-) for(i=0;i125;i+) ; /*密碼存儲器讀寫子程序*/void start(void) /開啟總線 sda=1; _nop_();_nop_(); scl=1; _nop_();_nop_();_nop_();_nop_();_nop_(); sda=0; _nop_();_nop_();_nop_();_nop_();_nop_(); scl=0; void stop(void) /關閉總線 sda=0; _nop_(); scl=1; _nop_();_nop_();_nop_();_nop_();_nop_(); sda=1; _nop_();_nop_();_nop_();_nop_();_nop_(); scl=0; void ack(void) /總線應答 sda=0;_nop_();_nop_();_nop_();scl=1;_nop_();_nop_();_nop_();_nop_();_nop_();scl=0;_nop_();_nop_();void noack(void) /總線非應答 s
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 石英電子鐘機心企業(yè)數(shù)字化轉(zhuǎn)型與智慧升級戰(zhàn)略研究報告
- 公司保密及技術成果歸屬協(xié)議范本2篇
- 2025-2030中國戶外冷藏箱行業(yè)市場現(xiàn)狀供需分析及投資評估規(guī)劃分析研究報告
- 2025-2030中國廢物回收及循環(huán)再造行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略研究報告
- 2025-2030中國廣告制作行業(yè)發(fā)展分析及發(fā)展前景與投資研究報告
- 2025-2030中國布洛芬行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略研究報告
- 2025-2030中國寵物殯葬服務行業(yè)市場深度分析及發(fā)展前景與投資戰(zhàn)略研究報告
- 文化創(chuàng)意版權(quán)轉(zhuǎn)讓與免責聲明協(xié)議
- 農(nóng)業(yè)大棚設施設備采購與維護協(xié)議
- 物流運輸服務合作協(xié)議
- 二年級下冊科學不斷發(fā)展的人工產(chǎn)品鄂教版課件
- 小學部編版六年級下冊道德與法治《4、地球-我們的家園》第一課時說課稿
- DB11T 1340-2022 居住建筑節(jié)能工程施工質(zhì)量驗收規(guī)程
- 保險市場調(diào)查與分析實訓三任務一2.3.1任務一運用Excel整理市場調(diào)查問卷數(shù)據(jù)
- 中央空調(diào)(多聯(lián)機)施工方案
- PKPM磚混結(jié)構(gòu)抗震及其他計算全攻略
- “育鯤”輪轉(zhuǎn)葉式舵機工作原理和電氣控制以及故障分析
- 流動資金自動測算表(內(nèi)自帶計算公式)
- 最新.爾雅批判與創(chuàng)意思考--馮林答案
- 宿州光伏玻璃項目可行性研究報告(范文模板)
- 10KV變電站施工方案
評論
0/150
提交評論