基于Proteus環(huán)境的電子密碼鎖設(shè)計_第1頁
基于Proteus環(huán)境的電子密碼鎖設(shè)計_第2頁
基于Proteus環(huán)境的電子密碼鎖設(shè)計_第3頁
基于Proteus環(huán)境的電子密碼鎖設(shè)計_第4頁
基于Proteus環(huán)境的電子密碼鎖設(shè)計_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、基于Proteus環(huán)境的電子密碼鎖設(shè)計一、實驗?zāi)康?. 掌握嵌入式系統(tǒng)開發(fā)的基本流程;2. 熟悉嵌入式系統(tǒng)開發(fā)仿真軟件使用方法;3. 基于89C52單片機來設(shè)計電子密碼鎖。二、實驗要求1、用4*3組成0-9數(shù)字鍵及確認鍵、刪除鍵;2、用8位數(shù)碼管組成顯示電路提示信息,當輸入密碼時,只顯示“”,當密碼位數(shù)輸入完畢按下“確定”鍵時,對輸入的密碼與設(shè)定的密碼進行比較,若密碼正確,則開鎖,此處用LED發(fā)光二極管亮1s作為提示;若密碼不正確,禁止按鍵輸入3s,同時發(fā)出“嘀、嘀”報警聲。三、實現(xiàn)原理1、按鍵消抖圖3-1由圖3-l可見,在按鍵閉合和斷開時產(chǎn)生了多個邊沿,而在實際中每按一次鍵,我們只需要一組穩(wěn)

2、定的上升或下降邊沿,所以對于電路中的按鍵信號,如果我們不濾除抖動的話,還是簡單的讀取信號的邊沿,會引起一次按鍵被誤讀多次,這樣就會引起電路的誤動作。為了保證按一次鍵電路只有一次正確的響應(yīng),即在鍵閉合穩(wěn)定時讀取鍵的狀態(tài),就要求電路中必須采取濾除抖動的措施。本設(shè)計按鍵較多,故采用軟件方法去抖,即檢測出鍵閉合后執(zhí)行一個延時程,產(chǎn)生5ms10ms的延時,讓前沿抖動消失后再一次檢測鍵的狀態(tài),如果仍保持閉合狀態(tài)電平,則確認為真正有鍵按下。當檢測到按鍵釋放后,也要給5ms10ms的延時,待后沿抖動消失后才能轉(zhuǎn)入該鍵的處理程序。2、矩陣掃描電路由于本設(shè)計所用到的按鍵數(shù)量較多而不適合用獨立按鍵式鍵盤。采用的是矩

3、陣式按鍵鍵盤,它由行線和列線組成,也稱行列式鍵盤,按鍵位于行列的交叉點上,密碼鎖的密碼由鍵盤輸入完成,與獨立式按鍵鍵盤相比,要節(jié)省很多I/O口。本設(shè)計中使用的這個3*4鍵盤不但能完成密碼的輸入還能作特別功能鍵使用,比如清空顯示功能等。鍵盤的每個按鍵功能在程序設(shè)計中設(shè)置 。其大體功能(看鍵盤按鍵上的標記)及與單片機引腳接法如圖3-2所示:圖3-23、復(fù)位電路單片機復(fù)位是使CPU和系統(tǒng)中的其他功能部件都處在一個確定的初始狀態(tài),并從這個狀態(tài)開始工作,例如復(fù)位后PC0000H,使單片機從第個單元取指令。無論是在單片機剛開始接上電源時,還是斷電后或者發(fā)生故障后都要復(fù)位。在復(fù)位期間(即RST為高電平期間)

4、,P0口為高組態(tài),P1P3口輸出高電平;外部程序存儲器讀選通信號PSEN無效。地址鎖存信號ALE也為高電平。根據(jù)實際情況選擇如圖3-3所示的復(fù)位電路。該電路在最簡單的復(fù)位電路下增加了手動復(fù)位按鍵,在接通電源瞬間,電容C1上的電壓很小,復(fù)位下拉電阻上的電壓接近電源電壓,即RST為高電平,在電容充電的過程中RST端電壓逐漸下降,當RST端的電壓小于某一數(shù)值后,CPU脫離復(fù)位狀態(tài),由于電容C1足夠大,可以保證RST高電平有效時間大于24個振蕩周期,CPU能夠可靠復(fù)位。增加手動復(fù)位按鍵是為了避免死機時無法可靠復(fù)位。當復(fù)位按鍵按下后電容C1通過R5放電。當電容C1放電結(jié)束后,RST端的電位由R11與R1

5、5分壓比決定。由于R11<<R15 因此RST為高電平,CPU處于復(fù)位狀態(tài),松手后,電容C1充電,RST端電位下降,CPU脫離復(fù)位狀態(tài)。R11的作用在于限制按鍵按下瞬間電容C1的放電電流,避免產(chǎn)生火花,以保護按鍵觸電。 圖3-3 復(fù)位電路原理圖4、晶振電路AT89C51引腳XTAL1和XTAL2與晶體振蕩器及電容C2、C1按圖3.4所示方式連接。晶振、電容C2C3及片內(nèi)與非門(作為反饋、放大元件)構(gòu)成了電容三點式振蕩器,振蕩信號頻率與晶振頻率及電容C1、C2的容量有關(guān),但主要由晶振頻率決定,范圍在033MHz之間,電容C2、C3取值范圍在530pF之間。根據(jù)實際情況,本設(shè)計中采用1

6、2MHZ做系統(tǒng)的外部晶振。電容取值為33pF。圖3-4 晶振電路原理圖5、報警電路報警部分由陶瓷壓電發(fā)聲裝置及外圍電路組成,加電后不發(fā)聲,當有鍵按下時,“叮”聲,每按一下,發(fā)聲一次,密碼正確時,不發(fā)聲直接開鎖,當密碼輸入錯誤時,單片機的P3.1引腳為低電平,三極管T3導喇叭發(fā)出噪鳴聲報警。如圖3-5所示:圖3-5 報警電路原理圖四、實驗步驟1 熟悉Proteus軟件環(huán)境;2 熟悉89C52硬件環(huán)境;3 編寫相應(yīng)處理器程序代碼;4 基于Proteus環(huán)境進行仿真測試。五、程序代碼#include<reg52.h>#define uchar unsigned char#define u

7、int unsigned intuchar smg16;/數(shù)碼管段顯示;uchar code password=1,9,8,8,0,8,1,4;char num,k,x;void display();void key_scan();/void correct();/密碼正確數(shù)碼管顯示“open”/void error(); /密碼錯誤數(shù)碼管顯示“error”int Flag; /與密碼初值比較,正確則置1sbit fmq=P31;/蜂鳴器輸入端sbit led=P30;/ 密碼正確,燈亮 /主函數(shù)void main() k=0; led=0; fmq=1; x=0; while(1) key_

8、scan(); display(); /延時函數(shù)void delay(uint i) /延時函數(shù) uint j; while(i-) for(j=0;j<120;j+); void beep()/蜂鳴器函數(shù); uint i; for(i=0;i<5;i+)/蜂鳴器響五次 fmq=0; delay(300); fmq=1; delay(300); P2=0xff; P0=0x00; fmq=1;/掃描函數(shù)void key_scan() uchar temp; P1=0xf0; temp=P1; if(temp!=0xf0) delay(25);P1=0xf0;temp=P1;if(t

9、emp!=0xf0) P1=0xfe; temp=P1; switch(temp) case(0xee):P0=0x40;smgx+=num;num=0;k+;delay(200);break; case(0xde):P0=0x40;smgx+=num;num=1;k+;delay(200);break; case(0xbe):P0=0x40;smgx+=num;num=2;k+;delay(200);break; case(0x7e):P0=0x40;smgx+=num;num=3;k+;delay(200);break; P1=0xfd; temp=P1; switch(temp) cas

10、e(0xed):P0=0x40;smgx+=num;num=4;k+;delay(200);break; case(0xdd):P0=0x40;smgx+=num;num=5;k+;delay(200);break; case(0xbd):P0=0x40;smgx+=num;num=6;k+;delay(200);break; case(0x7d):P0=0x40;smgx+=num;num=7;k+;delay(200);break; P1=0xfb; temp=P1; switch(temp) case(0xeb):P0=0x40;smgx+=num;num=8;k+;delay(200)

11、;break; case(0xdb):P0=0x40;smgx+=num;num=9;k+;delay(200);break; case(0xbb):P0=0x40; if(Flag=1)&(k=8) led=1;/correct();delay(1000);led=0;k=0; else beep(); /error(); k=0; break; case(0x7b):P0=0x40; k-;delay(200);Flag=1;x-;num=smgx; break; /顯示函數(shù)void display() if(k=1) P2=0x7f; if(password0=num) Flag

12、=1; else Flag=0; while(k=2) P2=0x3f;if(password1=num) Flag=1&Flag; else Flag=0; key_scan(); while(k=3) P2=0x1f;if(password2=num) Flag=1&Flag; else Flag=0; key_scan(); while(k=4) P2=0X0f;if(password3=num) Flag=1&Flag; else Flag=0; key_scan(); while(k=5) P2=0x07;if(password4=num) Flag=1&Flag; else Flag=0; key_scan(); while(k=6) P2=0X03;if(password5=num) Flag=1&Flag; else Flag=0; key_scan(); while(k=7) P2=0x01;if(password6=num) Flag=1&Flag; else Flag=0; key_scan(); while(k>=8) P2=0X00;k=8;if(password7=num) Flag=1&Flag;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論