




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、 畢 業(yè) 設 計(論 文)設計(論文)題目:基于單片機的電子密碼鎖仿真設計學生姓名:指導教師:二級學院: 專業(yè):班級:學號:提交日期: 2012年 5 月16日 答辯日期: 2012 年 5 月 19 日 目 錄摘要IIAbstractIII1 緒論12 系統(tǒng)的總體設計和主要元器件介紹22.1 系統(tǒng)方案論證選擇22.2 系統(tǒng)的總體思路設計32.3 主要元器件介紹32.3.1 AT89C51介紹32.3.2 繼電器介紹62.3.3 LED數(shù)碼管介紹72.3.4 矩陣鍵盤介紹73、硬件設計93.1 單片機主控制模塊(含晶振、復位基本工作電路)93.2 鍵盤輸入模塊93.3 顯示模塊103.4 報警
2、模塊113.5 開鎖模塊114、軟件設計124.1 系統(tǒng)程序設計流程圖124.2 系統(tǒng)程序設計125、系統(tǒng)仿真設計175.1 Proteus 軟件介紹175.2 Proteus 仿真圖17總結19參考文獻20附錄21致謝27基于單片機的電子密碼鎖仿真設計摘 要電子密碼鎖是一種通過密碼輸入來控制電路或是芯片工作,從而控制機械開關的閉合,完成開鎖、閉鎖任務的電子產(chǎn)品。它的種類很多,有簡易的電路產(chǎn)品,也有基于芯片的性價比較高的產(chǎn)品。現(xiàn)在應用較廣的電子密碼鎖是以芯片為核心,通過編程來實現(xiàn)的。本文以AT89C51單片機為核心器件,結合按鍵電路、LED數(shù)碼管顯示電路、報警指示電路和開鎖機構,利用單片機靈活
3、的編程設計和豐富的I/O端口,及其控制的準確性通過軟件程序來控制整個系統(tǒng)實現(xiàn)電子密碼鎖的基本功能,其主要具有如下功能:密碼通過鍵盤輸入,若密碼正確,則將鎖打開密碼輸入錯誤,蜂鳴器將報警提示用戶可以自由設定密碼本密碼鎖具有設計方法合理,簡單易行成本低,安全實用等特點,具有一定的推廣價值。關鍵詞:AT89C51 ; 電子密碼鎖 ; 功能The Simulation DesignofElectronic Cipher Lock Based on MCUAbstractThe electronic cipher lock is a electronic products,which control t
4、he mechanical switch by the control circuit or chip when you input a password. It has many different types ,for example,simple circuit products , chip products with a higher value.Now the widely used electronic locks are based on the chip and achieve the function by programming.Based on the AT89C51
5、single-chip microcomputer as the core device, combining with the key circuit, LED digital tube display circuit, an alarm circuit and unlocking mechanism, design the whole system to achieve the basic functions of electronic cipher lockby its flexible programming , rich I / O port, and accuracy basing
6、 on the software program . With the following functions :Input password through the keyboard, if the password is correct, lock will open If the password is error, the buzzer will alarm Users can freely set the password The lock has some features like a reasonable design methods,simple to work,low co
7、st and security,it also has some promotion value.Key words:AT89C51;Cipher lock ; Function1 緒 論隨著人們生活水平的提高, 日常生活和工作中的住宅與部門的安全防范、單位的文件檔案、財務報表以及一些個人資料的保存等一系列安全防盜問題變的尤其突出。傳統(tǒng)的機械鎖由于其構造的簡單,被撬的事件屢見不鮮,且人們常需攜帶多把鑰匙, 使用極不方便, 一旦鑰匙丟失安全性即大打折扣。隨著科學技術的不斷發(fā)展,人們對日常生活中的安全保險器件的要求越來越高。為滿足人們對鎖的使用要求,增加其安全性,用密碼代替鑰匙的密碼鎖應運而生。密
8、碼鎖因具有安全性高、成本低、功耗低、易操作等優(yōu)點,受到了廣大用戶的青睞。據(jù)有關資料介紹,電子密碼鎖的研究從20世紀30年代就開始了,在一些特殊場所早就有所應用。但當時多半是配合機械鎖一起作用且存在著諸如體積較大,成本較高,可靠性較低等缺點一時難以普及。20世紀80年代后,隨著信息技術、集成電路、半導體技術的發(fā)展,電子密碼鎖的設計也取得了快速的進步。目前,在西方發(fā)達國家,電子密碼鎖技術相對先進,種類齊全,電子密碼鎖已被廣泛應用于安全處所,而我國在此點上這稍有落后。現(xiàn)今常見的密碼鎖設計主要有兩種方案,一種是中規(guī)模集成電路控制的方案,另一種是單片機控制的方案。對于采用集成電路控制的方案,其中的編碼電
9、子鎖電路分為編碼電路、控制電路、復位電路、解碼電路、防盜報警電路、門鈴電路,而電子鎖主要由輸入元件、電路(包括電源)以及鎖體三部分組成。顯然此種方案的物理實現(xiàn)結構較為復雜且重新設置密碼、輸入密碼的操作過程也會給用戶帶來一定的不方便;而利用單片機控制的方案,由于單片機靈活的編程設計和豐富的I/O端口,及其控制的準確性,不但能實現(xiàn)基本的密碼鎖功能,還能添加掉電存儲、聲光提示甚至添加遙控控制功能,但其也有一定的局限性,就在于其控制原理的復雜以及要求設計人員具有更加良好的程序設計能力,調(diào)試較為繁瑣,否則程序一旦跑飛將造成意想不到的損失。通過對這兩種方案的優(yōu)缺點比較,再考慮到本人自己對單片機設計具有一定
10、的基礎,所以此次選擇利用單片機來進行密碼鎖的設計。本文以AT89C51單片機為核心器件,結合按鍵電路、LED數(shù)碼管顯示電路、報警指示電路和開鎖機構,利用單片機靈活的編程設計和豐富的I/O端口,及其控制的準確性通過軟件程序來控制整個系統(tǒng)實現(xiàn)電子密碼鎖的基本功能。系統(tǒng)能實現(xiàn)如下的功能:(1)密碼通過鍵盤輸入,若密碼正確,則將鎖打開(2)密碼輸入錯誤,蜂鳴器將報警提示(3)用戶可以自由設定密碼系統(tǒng)功能實用,成本低廉,具有一定的實用價值。2 系統(tǒng)的總體設計和主要元器件介紹2.1 系統(tǒng)方案論證選擇現(xiàn)今常見的密碼鎖設計主要有兩種方案,一種是中規(guī)模集成電路控制的方案,另一種是單片機控制的方案。方案一:采用數(shù)
11、字電路控制。其原理方框圖如圖2.1所示:圖2.1 數(shù)字電路控制原理圖顯然此種方案的物理實現(xiàn)結構較為復雜且重新設置密碼、輸入密碼的操作過程也會給用戶帶來一定的不方便; 方案二:采用一種是用以AT89S51為核心的單片機控制方案。其原理如圖2.2所示:開鎖模塊89S51單片機矩陣鍵盤控制顯示模塊報警模塊圖2.2 單片機控制原理圖 通過比較以上兩種方案,單片機方案有較大的活動空間,不但能實現(xiàn)所要求的功能而且能在很大的程度上擴展功能,而且還可以方便的對系統(tǒng)進行升級,所以我們采用后一種方案。本方案采用一種是用以89S51為核心的單片機控制方案。利用單片機靈活的編程設計和豐富的I/O端口,及其控制的準確性
12、,實現(xiàn)基本的密碼鎖功能。2.2 系統(tǒng)的總體思路設計以AT89C51單片機為主控制單元,鍵盤為主要輸入單元,結合開鎖裝置、報警器和顯示器完成整個系統(tǒng)設計。系統(tǒng)的運行過程大致如下:假設初始狀態(tài)為閉鎖,此時整個系統(tǒng)只等待按鍵輸入,數(shù)碼管也不顯示。每按下一個數(shù)據(jù)鍵(即每輸入一個密碼),數(shù)碼管相應的顯示一個“-”標志,當密碼全部輸入完成后,需按下確認鍵“#”,此時系統(tǒng)判斷密碼是否正確,正確則開鎖(仿真中以繼電器動作導致發(fā)光二級管點亮為標志),錯誤則報警,此后數(shù)碼管熄滅繼續(xù)等待按鍵;若按下密碼重置鍵“*”,則需先輸入原密碼,正確后請輸入新密碼,輸入密碼過程中,數(shù)碼管顯示如上“-”。2.3 主要元器件介紹2
13、.3.1 AT89C51介紹圖2.3 AT89C51封裝圖 圖2.4 引腳圖本次畢業(yè)設計選用的是AT89C51,AT89C51是一種帶4K字節(jié)FLASH存儲器(FPEROMFlash Programmable and Erasable Read Only Memory)的低電壓、高性能CMOS 8位微處理器,俗稱單片機。單片機的可擦除只讀存儲器可以反復擦除1000次。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器。AT89C51單片機為很多嵌入式
14、控制系統(tǒng)提供了一種靈活性高且價廉的方案。AT89C51主要特性: 1. 與MCS-51 兼容2. 4K字節(jié)可編程FLASH存儲器3. 壽命:1000寫/擦循環(huán)4. 數(shù)據(jù)保留時間:10年5. 全靜態(tài)工作:0Hz-24MHz6. 三級程序存儲器鎖定7. 128×8位內(nèi)部RAM832可編程I/O線9. 兩個16位定時器/計數(shù)器105個中斷源11可編程串行通道12. 低功耗的閑置和掉電模式13. 片內(nèi)振蕩器和時鐘電路AT89C51單片機引腳:VCC:供電電壓。 GND:接地。 P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當P0口的管腳第一次寫1時,被定義為高阻輸入
15、。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的低八位。在FIASH編程時,P0 口作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須接上拉電阻。 P1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗時,P1口作為低八位地址接收。 P2口:P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此
16、作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當對外部八位地址數(shù)據(jù)存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。 P3口:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。 P3口也可作為AT89C51的一些特殊功能口,
17、如下表所示: 口管腳 備選功能 P3.0 RXD(串行輸入口) P3.1 TXD(串行輸出口) P3.2 /INT0(外部中斷0) P3.3 /INT1(外部中斷1) P3.4 T0(記時器0外部輸入) P3.5 T1(記時器1外部輸入) P3.6 /WR(外部數(shù)據(jù)存儲器寫選通) P3.7 /RD(外部數(shù)據(jù)存儲器讀選通) P3口同時為閃爍編程和編程校驗接收一些控制信號。 RST:復位輸入。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平時間。 ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端
18、以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時, ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。 /PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN信號將不出現(xiàn)。 /EA/VPP:當/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFF
19、H),不管是否有內(nèi)部程序存儲器。注意加密方式1時,/EA將內(nèi)部鎖定為RESET;當/EA端保持高電平時,此間內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。 XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。 XTAL2:來自反向振蕩器的輸出。 振蕩器特性: XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時鐘源驅(qū)動器件,XTAL2應不接。有余輸入至內(nèi)部時鐘信號要通過一個二分頻觸發(fā)器,因此對外部時鐘信號的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。2.3.2 繼電器介紹繼
20、電器是一種電控制器件。它具有控制系統(tǒng)(又稱輸入回路)和被控制系統(tǒng)(又稱輸出回路)之間的互動關系。通常應用于自動化的控制電路中,它實際上是用小電流去控制大電流運作的一種“自動開關”。故在電路中起著自動調(diào)節(jié)、安全保護、轉(zhuǎn)換電路等作用。當輸入量(如電壓、電流、溫度等)達到規(guī)定值時,繼電器被所控制的輸出電路導通或斷開。輸入量可分為電氣量(如電流、電壓、頻率、功率等)及非電氣量(如溫度、壓力、速度等)兩大類。繼電器具有動作快、工作穩(wěn)定、使用壽命長、體積小等優(yōu)點。廣泛應用于電力保護、自動化、運動、遙控、測量和通信等裝置中。電磁繼電器工作原理和特性:圖2.5 繼電器原理圖電磁繼電器一般由鐵芯、線圈、銜鐵、觸
21、點簧片等組成的。只要在線圈兩端加上一定的電壓,線圈中就會流過一定的電流,從而產(chǎn)生電磁效應,銜鐵就會在電磁力吸引的作用下克服返回彈簧的拉力吸向鐵芯,從而帶動銜鐵的動觸點與靜觸點(常開觸點)吸合。當線圈斷電后,電磁的吸力也隨之消失,銜鐵就會在彈簧的反作用力返回原來的位置,使動觸點與原來的靜觸點(常閉觸點)釋放。這樣吸合、釋放,從而達到了在電路中的導通、切斷的目的。對于繼電器的“常開、常閉”觸點,可以這樣來區(qū)分:繼電器線圈未通電時處于斷開狀態(tài)的靜觸點,稱為“常開觸點”;處于接通狀態(tài)的靜觸點稱為“常閉觸點”。繼電器一般有兩股電路,為低壓控制電路和高壓工作電路。2.3.3 LED數(shù)碼管介紹圖2.6 數(shù)碼
22、管 LED數(shù)碼管實際上是由七個發(fā)光管組成8字形構成的,加上小數(shù)點就是8個。這些段分別由字母a,b,c,d,e,f,g,dp來表示。當數(shù)碼管特定的段加上電壓后,這些特定段就會發(fā)亮,以形成我們眼睛看到的樣子。以“2”為例,應當是a亮b亮g亮e亮d亮f不亮c不亮dp不亮。LED數(shù)碼管有一般亮和超亮等不同之分,也有0.5寸、1寸等不同的尺寸。小尺寸數(shù)碼管的顯示筆畫常用一個發(fā)光二極管組成,而大尺寸的數(shù)碼管由二個或多個發(fā)光二極管組成,一般情況下,單個發(fā)光二極管的管壓降為1.8V左右,電流不超過30mA。發(fā)光二極管的陽極連接到一起連接到電源正極的稱為共陽數(shù)碼管,發(fā)光二極管的陰極連接到一起連接到電源負極的稱為
23、共陰數(shù)碼管。常用LED數(shù)碼管顯示的數(shù)字和字符是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。 2.3.4 矩陣鍵盤介紹圖2.7 矩陣鍵盤在鍵盤中按鍵數(shù)量較多時,為了減少I/O口的占用,通常將按鍵排列成矩陣形式,如圖1所示。在矩陣式鍵盤中,每條水平線和垂直線在交叉處不直接連通,而是通過一個按鍵加以連接。這樣,一個端口(如P1口)就可以構成4*4=16個按鍵,比之直接將端口線用于鍵盤多出了一倍,而且線數(shù)越多,區(qū)別越明顯,比如再多加一條線就可以構成20鍵的鍵盤,而直接用端口線則只能多出一鍵(9鍵)。由此可見,在需要的鍵數(shù)比較多時,采用矩陣法來做鍵盤是合理的。矩陣式結構的鍵盤顯然比直
24、接法要復雜一些,識別也要復雜一些,上圖中,列線通過電阻接正電源,并將行線所接的單片機的I/O口作為輸出端,而列線所接的I/O口則作為輸入。這樣,當按鍵沒有按下時,所有的輸入端都是高電平,代表無鍵按下。行線輸出是低電平,一旦有鍵按下,則輸入線就會被拉低,這樣,通過讀入輸入線的狀態(tài)就可得知是否有鍵按下了。3、硬件設計3.1 單片機主控制模塊(含晶振、復位基本工作電路)圖 主控制模塊3.2 鍵盤輸入模塊本設計中采用3*4矩陣鍵盤,與AT89C51的P1口相連,提供按鍵輸入,如圖:圖鍵盤輸入模塊表3.1 按鍵功能按 鍵鍵 名功 能 說 明19鍵數(shù) 字 鍵輸 入 密 碼* 鍵重 設 密 碼 鍵設 定 新
25、 密 碼# 鍵確認鍵確認密碼輸入完畢3.3 顯示模塊圖 顯示模塊此設計中,使用了四個共陰極數(shù)碼管,使用動態(tài)顯示技術控制數(shù)碼管。其4個位選信號與P2.0-P2.3相連,當其中某位為低電平時表示選中該位;8段段選信號與P0口相連,當其中某段為高電平時導通該段,特殊的,由于AT89C51的P0口的驅(qū)動能力較弱,不足以驅(qū)動數(shù)碼管點亮,故在此又引入上拉電阻以驅(qū)動數(shù)碼管。關于上拉電阻有如下介紹:1、 當TTL電路驅(qū)動CMOS電路時,如果電路輸出的高電平低于CMOS電路的最低高電平(一般為3.5V), 這時就需要在TTL的輸出端接上拉電阻,以提高輸出高電平的值。 2、OC門電路必須加上拉電阻,以提高輸出的高
26、電平值。3、為加大輸出引腳的驅(qū)動能力,有的單片機管腳上也常使用上拉電阻。4、在CMOS芯片上,為了防止靜電造成損壞,不用的管腳不能懸空,一般接上拉電阻產(chǎn)生降低輸入阻抗, 提供泄荷通路。5、芯片的管腳加上拉電阻來提高輸出電平,從而提高芯片輸入信號的噪聲容限增強抗干擾能力。6、提高總線的抗電磁干擾能力。管腳懸空就比較容易接受外界的電磁干擾 。7、長線傳輸中電阻不匹配容易引起反射波干擾,加上下拉電阻是電阻匹配,有效的抑制反射波干擾。3.4 報警模塊圖 報警模塊報警模塊由蜂鳴器、PNP三極管和單片機組成。選擇一只壓電式蜂鳴器,壓電式蜂鳴器工作時約需要100mA驅(qū)動電流。特殊的,此處為加強驅(qū)動能力,選用
27、三極管來放大電流驅(qū)動蜂鳴器。當89C51的P3.0口輸出為低電平時,三極管導通,蜂鳴器產(chǎn)生蜂鳴音,89C51輸出為高電平時,蜂鳴器不發(fā)聲。3.5 開鎖模塊圖 開鎖模塊此處以繼電器的動作來模擬鎖的開閉。同樣,為了增強驅(qū)動能力添加了PNP三極管以放大電流,當P3.1口為低電平時,三極管導通,此時繼電器動作(鎖開),燈亮;二極管具有續(xù)流作用以保護器件安全。4、軟件設計4.1 系統(tǒng)程序設計流程圖開始初始化模式選擇識別按鍵密碼輸入手動清除密碼比較開門舊密碼輸入新密碼輸入存入緩存區(qū)再次輸入密碼重新輸入完成返回NANBY圖 流程圖4.2 系統(tǒng)程序設計重要端口定義說明:sbit buzzer=P30;sbit
28、 relay=P31;uchar code table2=0x40,0x00 ; /共陰極數(shù)碼管編碼 顯示-和 熄滅uchar keyword4=1,1,1,1;uchar keycmp4;uchar key=0,num=0,flg=0;報警子程序:(通過控制buzzer端口的高低電平來控制三極管的通斷,從而控制蜂鳴器)void alarm() num=0; buzzer=0;delay(100);buzzer=1; 數(shù)碼管顯示子程序:LED顯示器工作方式有兩種:靜態(tài)顯示方式和動態(tài)顯示方式。靜態(tài)顯示的特點是每個數(shù)碼管的段選必須接一個8位數(shù)據(jù)線來保持顯示的字形碼。當送入一次字形碼后,顯示字形可一
29、直保持,直到送入新字形碼為止。這種方法的優(yōu)點是占用CPU時間少,顯示便于監(jiān)測和控制。缺點是硬件電路比較復雜,成本較高;動態(tài)顯示的特點是將所有位數(shù)碼管的段選線并聯(lián)在一起,由位選線控制是哪一位數(shù)碼管有效。選亮數(shù)碼管采用動態(tài)掃描顯示。所謂動態(tài)掃描顯示即輪流向各位數(shù)碼管送出字形碼和相應的位選,利用發(fā)光管的余輝和人眼視覺暫留作用,使人的感覺好像各位數(shù)碼管同時都在顯示。動態(tài)顯示的亮度比靜態(tài)顯示要差一些。本設計使用動態(tài)顯示方法。void display() uchar i,j,cs=0x7f; for(i=num;i>0;i-) P0=table0; cs=_crol_(cs,1); P2=cs; d
30、elay(10); for(j=4-num;j>0;j-) P0=table1; cs=_crol_(cs,1); P2=cs; delay(10); 按下確認鍵后執(zhí)行功能子程序:(使用標志變量flg,根據(jù)其值來選擇執(zhí)行相應的功能)void ok() uchar i=0; display(); / P0=(flg+1);delay(1000); if(flg=0) for(i=0;i<4;i+) if(keywordi!=keycmpi) alarm();break;if(num=4) relay=0;num=0; if(flg=2) num=0; for(i=0;i<4;i
31、+) keywordi=keycmpi; flg=0; if(flg=1) for(i=0;i<4;i+) if(keywordi!=keycmpi) alarm();break;if(num=4) num=0; display(); / P0=0x07;delay(1000); flg=2; 鍵盤掃描子程序:(運用矩陣鍵盤逐行逐列掃描法,一次檢測各個按鍵)鍵盤是單片機常用輸入設備,在按鍵數(shù)量較多時,為了節(jié)省I/O口等單片機資源,一般采取掃描的方式來識別到底是哪一個鍵被按下。即通過確定被按下的鍵處在哪一行哪一列來確定該鍵的位置,獲取鍵值以啟動相應的功能程序。查找哪個按鍵被按下的方法為:一
32、個一個地查找。 先第一行輸出0,檢查列線是否非全高;否則第二行輸出0,檢查列線是否非全高;否則第三行輸出0,檢查列線是否非全高;如果某行輸出0時,查到列線非全高,則該行有按鍵按下;根據(jù)第幾行線輸出0與第幾列線讀入為0,即可判斷在具體什么位置的按鍵按下。void keyscan() uchar temp1,temp2; P1=0xfe;/令第一列為低電平,檢測第1列 temp1=P1; if(temp1!=0xfe) delay(5);/去抖 temp2=P1;if(temp1=temp2) switch(temp2) case 0xf6: if(num<4)key=1;keycmpnum
33、=key;num+;display(); else alarm(); break;case 0xee: if(num<4)key=4;keycmpnum=key;num+;display(); else alarm(); break;case 0xde: if(num<4)key=7;keycmpnum=key;num+;display(); else alarm(); break;case 0xbe: set();break; while(temp1!=0xfe)temp1=P1;/等待按鍵釋放 P1=0xfd;/檢測第2列 temp1=P1; if(temp1!=0xfd) d
34、elay(5);/去抖 temp2=P1;if(temp1=temp2) switch(temp2) case 0xf5: if(num<4)key=2;keycmpnum=key;num+;display(); else alarm(); break;case 0xed: if(num<4)key=5;keycmpnum=key;num+;display(); else alarm(); break;case 0xdd: if(num<4)key=8;keycmpnum=key;num+;display(); else alarm(); break;case 0xbd: i
35、f(num<4)key=0;keycmpnum=key;num+;display(); else alarm(); break; while(temp1!=0xfd)temp1=P1;/等待按鍵釋放P1=0xfb;/檢測第3列 temp1=P1; if(temp1!=0xfb) delay(5);/去抖 temp2=P1;if(temp1=temp2) switch(temp2) case 0xf3: if(num<4)key=3;keycmpnum=key;num+;display(); else alarm(); break;case 0xeb: if(num<4)key
36、=6;keycmpnum=key;num+;display(); else alarm(); break;case 0xdb: if(num<4)key=9;keycmpnum=key;num+;display(); else alarm(); break;case 0xbb: if(num=4) ok(); else alarm(); break; while(temp1!=0xfb)temp1=P1;/等待按鍵釋放 display(); 中斷服務函數(shù):(當通過機械手段關鎖時,將通過外部中斷的形式使程序初始化恢復原狀態(tài))void Int0() interrupt 0 relay=1;整
37、個系統(tǒng)的完整程序設計詳見附錄。5、系統(tǒng)仿真設計5.1 Proteus 軟件介紹Proteus軟件是英國Labcenter electronics公司出版的EDA工具軟件(該軟件中國總代理為廣州風標電子技術有限公司)。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機及外圍器件。它是目前最好的仿真單片機及外圍器件的工具。雖然目前國內(nèi)推廣剛起步,但已受到單片機愛好者、從事單片機教學的教師、致力于單片機開發(fā)應用的科技工作者的青睞。Proteus是世界上著名的EDA工具(仿真軟件),從原理圖布圖、代碼調(diào)試到單片機與外圍電路協(xié)同仿真,一鍵切換到PCB設計,真正實現(xiàn)了從概念到產(chǎn)品的完整設計。是目前世界
38、上唯一將電路仿真軟件、PCB設計軟件和虛擬模型仿真軟件三合一的設計平臺,其處理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列處理器,并持續(xù)增加其他系列處理器模型。在編譯方面,它也支持IAR、Keil和MPLAB等多種編譯器。在PROTEUS繪制好原理圖后,調(diào)入已編譯好的目標代碼文件:*.HEX,可以在PROTEUS的原理圖中看到模擬的實物運行狀態(tài)和過程。 PROTEUS 是單片機課堂教學的先進助手。 PROTEUS不僅可將許多單片機實例功能形象化,也可將許多單片機實例運
39、行過程形象化。前者可在相當程度上得到實物演示實驗的效果,后者則是實物演示實驗難以達到的效果。 它的元器件、連接線路等卻和傳統(tǒng)的單片機實驗硬件高度對應。這在相當程度上替代了傳統(tǒng)的單片機實驗教學的功能,例:元器件選擇、電路連接、電路檢測、電路修改、軟件調(diào)試、運行結果等。 課程設計、畢業(yè)設計是學生走向就業(yè)的重要實踐環(huán)節(jié)。由于PROTEUS提供了實驗室無法相比的大量的元器件庫,提供了修改電路設計的靈活性、提供了實驗室在數(shù)量、質(zhì)量上難以相比的虛擬儀器、儀表,因而也提供了培養(yǎng)學生實踐精神、創(chuàng)造精神的平臺 隨著科技的發(fā)展,“計算機仿真技術”已成為許多設計部門重要的前期設計手段。它具有設計靈活,結果、過程的統(tǒng)
40、一的特點??墒乖O計時間大為縮短、耗資大為減少,也可降低工程制造的風險。相信在單片機開發(fā)應用中PROTEUS也能茯得愈來愈廣泛的應用。 使用Proteus 軟件進行單片機系統(tǒng)仿真設計,是虛擬仿真技術和計算機多媒體技術相結合的綜合運用,有利于培養(yǎng)學生的電路設計能力及仿真軟件的操作能力;在單片機課程設計和全國大學生電子設計競賽中,我們使用 Proteus 開發(fā)環(huán)境對學生進行培訓,在不需要硬件投入的條件下,學生普遍反映,對單片機的學習比單純學習書本知識更容易接受,更容易提高。實踐證明,在使用 Proteus 進行系統(tǒng)仿真開發(fā)成功之后再進行實際制作,能極大提高單片機系統(tǒng)設計效率。因此,Proteus 有
41、較高的推廣利用價值。5.2 Proteus 仿真圖圖系統(tǒng)仿真圖總結使用單片機制作的電子密碼鎖具有軟硬件設計簡單,易于開發(fā),成本較低,安全可靠,操作方便等特點。本文在設計之初認真探討分析了幾種方案的優(yōu)缺點,正是由于單片機的眾多優(yōu)良特性的吸引,最終從經(jīng)濟實用的角度出發(fā),采用單片機AT89C51作為主控芯片,結合外圍的鍵盤輸入、顯示、報警、開鎖等電路,用C語言編寫主控芯片的控制程序,設計了一款可以多次更改密碼具有報警功能的電子密碼鎖。參考文獻1 于殿泓,王新年單片機原理與程序設計實驗教程M西安:西安電子科技大學出版社,2007,82 趙文博,劉文濤單片機語言C51程序設計M北京:人民郵電出版社,20
42、05,103 李愛秋紅外線遙控12位電子密碼鎖的設計J 溫州職業(yè)技術學院學報第8卷第一期,20084 陳杰,黃鴻傳感器與檢測技術M北京:高等教育出版社,2010,85 周航慈. 單片機應用程序設計技術M. 北京:北京航空航天大學出版社,2011,26 李朝青. 單片機原理及接口技術M. 北京:北京航空航天大學出版社, 2005,107 孫育才. MCS-51系列單片微型計算機及其應用M. 東南大學出版社, 2004,68 沈紅衛(wèi). 單片機應用系統(tǒng)設計實力與分析M. 北京:北京航空航天大學出版社,2003.9 徐愛鈞, 彭秀華. 單片機高級語言C51應用程序設計M.北京航空航天大學出版社,200
43、610 曾一江. 單片微機原理與接口技術M. 北京:科技出版社,2009,1211 康華光. 電子技術基礎(模擬部分)M. 北京:高等教育出版社, 2004,412 Nishino S F,Paoli G C,Spain J C. Aerobic degradation of dinitroto-luenes and pathway for bacterial degradation of 2,6-dinitrotoluene Volume 66,2006.13 Kennes C,W M Wu,L Bhatnagar et al. Anaerobic dechlorination and mi
44、neralization of PCP and 2,4,6-trichlorophenol by the methanogenic PCP-degrading granules Volume 44,2004.14 Philips. Product Specification. COMS single-chip 8-bit microcontroller.15 Hermarn K P. Neubert. Instrument Transducers-An Introduction to their Performance and Design.2nd EdM. Clarendon Press,
45、Oxford. 1975.附錄電子密碼鎖完整程序設計:#include <reg51.h>#include<intrins.h>#define uint unsigned int#define uchar unsigned charsbit buzzer=P30;sbit relay=P31;uchar code table2=0x40,0x00 ; /共陰極數(shù)碼管編碼 顯示-和 熄滅uchar keyword4=1,1,1,1;uchar keycmp4;uchar key=0,num=0,flg=0;/=延遲程序 延時x毫秒void delay(uint x) ui
46、nt i,j; for(i=x;i>0;i-) for(j=110;j>0;j-); /=報警程序 void alarm() num=0; buzzer=0;delay(100);buzzer=1; /=數(shù)碼管顯示程序void display() uchar i,j,cs=0x7f; for(i=num;i>0;i-) P0=table0; cs=_crol_(cs,1); P2=cs; delay(10); for(j=4-num;j>0;j-) P0=table1; cs=_crol_(cs,1); P2=cs; delay(10); /=密碼重置程序void se
47、t() num=0;display();flg=1; /=確認鍵程序void ok() uchar i=0; display(); / P0=(flg+1);delay(1000); if(flg=0) for(i=0;i<4;i+) if(keywordi!=keycmpi) alarm();break;if(num=4) relay=0;num=0; if(flg=2) num=0; for(i=0;i<4;i+) keywordi=keycmpi; flg=0; if(flg=1) for(i=0;i<4;i+) if(keywordi!=keycmpi) alarm(
48、);break;if(num=4) num=0; display(); / P0=0x07;delay(1000); flg=2; /=鍵盤掃描程序void keyscan() uchar temp1,temp2; P1=0xfe;/令第一列為低電平,檢測第1列 temp1=P1; if(temp1!=0xfe) delay(5);/去抖 temp2=P1;if(temp1=temp2) switch(temp2) case 0xf6: if(num<4)key=1;keycmpnum=key;num+;display(); else alarm(); break;case 0xee: if(num
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年湖南機電職業(yè)技術學院單招職業(yè)適應性測試題庫帶答案
- 2025年淮南職業(yè)技術學院單招職業(yè)技能測試題庫完整
- 2025年邯鄲應用技術職業(yè)學院單招職業(yè)技能測試題庫1套
- 水電運維專業(yè)(變電+動力安規(guī))模擬題及參考答案
- 2025年甘肅警察職業(yè)學院單招職業(yè)傾向性測試題庫帶答案
- 2025年杭州萬向職業(yè)技術學院單招職業(yè)技能測試題庫完美版
- 2025年廣東食品藥品職業(yè)學院單招職業(yè)傾向性測試題庫1套
- 2025年河北女子職業(yè)技術學院單招職業(yè)傾向性測試題庫一套
- 2025年甘肅省甘南藏族自治州單招職業(yè)傾向性測試題庫及答案一套
- 貨車股份轉(zhuǎn)讓合同范本
- 初三下學期班主任工作計劃標準版(4篇)
- 消化道出血診療規(guī)范2022版
- DL-T5190.1-2022電力建設施工技術規(guī)范第1部分:土建結構工程
- 教育機構傳染病防控應急預案
- 商業(yè)道德承諾書
- 足浴年工作總結及計劃
- 高血壓患者不遵醫(yī)飲食行為的原因分析及對策
- 《煤制油技術》課程標準(煤化工技術)
- 膝關節(jié)僵硬個案護理
- 高速公路服務區(qū)管理系統(tǒng)搭建
- 2024年中國華能瀾滄江水電股份有限公司招聘筆試參考題庫含答案解析
評論
0/150
提交評論