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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

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

6、2MHZ做系統(tǒng)的外部晶振。電容取值為33pF。圖3-4 晶振電路原理圖5、報(bào)警電路報(bào)警部分由陶瓷壓電發(fā)聲裝置及外圍電路組成,加電后不發(fā)聲,當(dāng)有鍵按下時(shí),“叮”聲,每按一下,發(fā)聲一次,密碼正確時(shí),不發(fā)聲直接開(kāi)鎖,當(dāng)密碼輸入錯(cuò)誤時(shí),單片機(jī)的P3.1引腳為低電平,三極管T3導(dǎo)喇叭發(fā)出噪鳴聲報(bào)警。如圖3-5所示:圖3-5 報(bào)警電路原理圖四、實(shí)驗(yàn)步驟1 熟悉Proteus軟件環(huán)境;2 熟悉89C52硬件環(huán)境;3 編寫(xiě)相應(yīng)處理器程序代碼;4 基于Proteus環(huán)境進(jìn)行仿真測(cè)試。五、程序代碼#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(); /密碼錯(cuò)誤數(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í)函數(shù)void delay(uint i) /延時(shí)函數(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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論