




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 電氣工程課程設(shè)計(jì)報(bào)告單片機(jī)實(shí)現(xiàn)密碼鎖學(xué)號(hào):姓名: 學(xué)院:指導(dǎo)老師: 日期:?jiǎn)纹瑱C(jī)實(shí)現(xiàn)密碼鎖自動(dòng)化學(xué)院 摘要:隨著科技的發(fā)展和社會(huì)生活水平的提高,人們對(duì)日常生活中安全保險(xiǎn)器件的要求越來越高,電子安全密碼鎖是基于這一要求的保險(xiǎn)器件。目前使用的密碼鎖種類繁多,如指紋密碼鎖、紅外密碼鎖、gps密碼鎖等,各具特色。本文從經(jīng)濟(jì)實(shí)用的角度出發(fā),介紹了如何采用at89c51單片機(jī),設(shè)計(jì)一款具有報(bào)警功能的電子密碼鎖。該設(shè)計(jì)方法合理,簡(jiǎn)單易行,成本低,適用于家庭、賓館、辦公室等場(chǎng)所。關(guān)鍵字:?jiǎn)纹瑱C(jī)密碼鎖報(bào)警abstract :with technological development and social i
2、mprovement of living standards, people in daily life-safe devices have become increasingly demanding, electronic security locks is based on the requirements of the insurance device. currently use a wide range of locks, such as fingerprint lock, password lock infrared, gps lock and other distinguishi
3、ng features. this article from the economical point of view, describes how to use at89c51 single-chip, designed with an electronic lock with alarm function. the design is reasonable, simple, low cost, suitable for families, hotels, offices and other places.keywords: mcu password lock alarm1、 概述本文介紹了
4、采用at89c51單片機(jī)設(shè)計(jì)一款電力密碼鎖,它具有按鍵提示、輸入錯(cuò)誤提示、密碼顯示、密碼出錯(cuò)報(bào)警、控制開鎖、密碼重置等功能,具體功能如下:1.1、 密碼輸入:用戶通過鍵盤輸入正確密碼后,系統(tǒng)自動(dòng)解鎖。使用確定按鍵結(jié)束密碼輸入,使用退格鍵可以返回前面某處重新輸入密碼,使用閉鎖鍵可以使密碼鎖重新閉鎖。1.2、 提示與報(bào)警:系統(tǒng)使用不同的聲音作為用戶不同操作的提。短叫一聲表示有按鍵輸入,長(zhǎng)叫一聲表示密碼正確,長(zhǎng)叫5s表示密碼錯(cuò)誤,長(zhǎng)叫3min表示連續(xù)三次輸入密碼錯(cuò)誤。1.3、 數(shù)碼管顯示:系統(tǒng)使用6位字符表示有關(guān)信息。第一個(gè)字符表示功能,p表示密碼鎖處于閉鎖狀態(tài),等待用戶輸入開鎖密碼;表示系統(tǒng)已開鎖
5、;顯示a表示密碼多次錯(cuò)誤而報(bào)警。1.4、 電子鎖控制:當(dāng)用戶輸入正確密碼后,系統(tǒng)開鎖;否則系統(tǒng)閉鎖。當(dāng)系統(tǒng)處于開鎖狀態(tài)時(shí),可以使用按鍵閉鎖。1.5、 密碼重置:當(dāng)用戶在開鎖狀態(tài)下時(shí),可以通過密碼重置鍵進(jìn)入密碼重置模式,連續(xù)兩次輸入密碼正確之后,重置密碼成功,原密碼失效,新密碼生效。2、 設(shè)計(jì)思路及流程根據(jù)上述功能介紹,密碼鎖系統(tǒng)可以分為用戶密碼輸入、顯示和控制報(bào)警3大功能,因此可以鍵盤模塊、顯示模塊、報(bào)警模塊、電子鎖控制模塊和單片機(jī)模塊。系統(tǒng)模塊圖如圖1所示。各模塊設(shè)計(jì)思路如下:2.1、鍵盤設(shè)計(jì)。密碼鍵有10個(gè)(09),功能鍵有3個(gè),一個(gè)共需要13個(gè)按鍵,因此系統(tǒng)采用44的行列矩陣鍵盤,可安裝
6、16個(gè)按鍵,足夠滿足要求。2.2、數(shù)碼管設(shè)計(jì)。系統(tǒng)只需6為數(shù)碼管顯示器,為了簡(jiǎn)化設(shè)計(jì),采用動(dòng)態(tài)顯示方法。3、 硬件電路設(shè)計(jì)3.1、鍵盤電路設(shè)計(jì)按鍵模塊采用44行列矩陣結(jié)構(gòu),由4條行線和4條列線構(gòu)成。行線和列線共有16個(gè)交叉點(diǎn)每個(gè)交叉點(diǎn)可以放置一個(gè)按鍵,這樣共可以放置16個(gè)按鍵。按鍵電路如圖2所示。圖2keyl0keyl3為行線,分別接單片機(jī)的p2.0p2.3;keyr0keyr3為列線,分別接單片機(jī)的p2.4p2.7。軟件編程采用線翻轉(zhuǎn)法,該方法要求行線和列線上 都有上拉電阻。由于at89c51單片機(jī)的p2口內(nèi)部集成了上拉電阻,所以系統(tǒng)未加。圖中順序前十個(gè)按鍵為09,最后3個(gè)按鍵分別為退格鍵、
7、閉鎖鍵和確認(rèn)鍵。3.2、顯示電路設(shè)計(jì)顯示電路由6個(gè)共陽(yáng)極數(shù)碼管構(gòu)成。軟件編程時(shí)采用動(dòng)態(tài)顯示方法,其結(jié)構(gòu)圖如圖3所示。圖3軟件編程時(shí),按照下面的步驟顯示字符:(1)、首先從p0口輸出共陽(yáng)極字符的段碼;(2)、然后從lconi輸出低電平。3.3、報(bào)警電路設(shè)計(jì)報(bào)警電路主要由pnp三極管和蜂鳴器構(gòu)成。報(bào)警電路圖如圖4所示。圖4ls1為一個(gè)5v的壓電蜂鳴器,當(dāng)對(duì)其1、2號(hào)引腳施加5v電壓時(shí),便會(huì)鳴叫。由圖4可知,當(dāng)alarmcon輸出低電平時(shí),三極管飽和導(dǎo)通,蜂鳴器鳴叫;當(dāng)alarmcon輸出高電平時(shí),三極管飽截止,蜂鳴器停止鳴叫。通過控制alarmcon輸出低電平的時(shí)間長(zhǎng)短來控制蜂鳴器長(zhǎng)叫或短叫。3.
8、4、電子鎖控制電路電子鎖控制電路主要由繼電器、三極管和發(fā)光二極管構(gòu)成。電子鎖控制電路圖如圖5所示。圖5繼電器線圈的一個(gè)引腳接電源正極,另一端接npn三極管的集電極。三極管的基極通過一個(gè)電阻接單片機(jī)的引腳。當(dāng)lockcon輸出高電平時(shí),三極管導(dǎo)通,繼電器線圈得電,觸點(diǎn)閉合,發(fā)光二極管發(fā)光,相當(dāng)于電子鎖閉鎖;當(dāng)lockcon輸出低電平時(shí),三極管截止,繼電器線圈失電,觸點(diǎn)釋放,發(fā)光二極管熄滅,相當(dāng)于電子鎖開鎖。圖中普通二極管是繼電器線圈的續(xù)流二極管,為感應(yīng)電動(dòng)勢(shì)提供回路,以免損壞三極管。3.5、單片機(jī)電路單片機(jī)電路主要由單片機(jī)、振蕩電路和復(fù)位電路構(gòu)成。由于at89c51內(nèi)部集成了12mhz的振蕩電路
9、,所以系統(tǒng)外部未加。單片機(jī)電路圖如圖6所示。圖6at89c51單片機(jī)的p0口用于輸出顯示器段碼。p1口的p1.0p1.5用于6個(gè)led的亮與滅。p2口用于構(gòu)成行列矩陣鍵盤。p3.3用于控制蜂鳴器的鳴叫。p3.5用于控制電子鎖的開閉。4、 軟件設(shè)計(jì)軟件設(shè)計(jì)主要是對(duì)鍵盤進(jìn)行掃描,根據(jù)按鍵控制報(bào)警電路、電子鎖電路,并將結(jié)果顯示。因此整個(gè)軟件分為按鍵子程序、顯示子程序、報(bào)警子程序、電子鎖控制子程序及主程序。/常量、變量說明/#includetypedefunsigned char uchar;typedef unsigned int uint;/鍵盤子程序相關(guān)說明#define blankchar 1
10、0 /定義空白常量#define pchar 11 /定義字符p常量#define openchar 12 /定義開鎖字符常量#define alarmchar 13 /定義字符a常量#define linechar 14 /定義字符-常量#define setchar 15 /定義字符b常量#define backkey 0x0d /定義退格鍵常量#define enterkey 0x0f /定義確定鍵常量#define lockkey 0x0e /定義閉鎖鍵常量#define setkey 0x0c /定義設(shè)定鍵常量#define no_key 20 /定義無按鍵返回常量#define k
11、eyport p2 /定義鍵盤端口uchar keypre; /保存上次掃描按鍵的鍵值uchar keyup; /用于控制按鍵去抖動(dòng)操作#define ledport p0 /定義顯示器段碼輸出端口#define ledcon p1 /定義顯示器位碼輸出端口uchar code segcode=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,/09的共陽(yáng)極段碼0xff,/不顯示的共陽(yáng)極段碼0x8c,/字符p的共陽(yáng)極段碼0x8f,/的共陽(yáng)極段碼0x88,/字符a的共陽(yáng)極段碼0xbf, /字符-的共陽(yáng)極段碼0x00;/led位碼 uchar co
12、de bitcode=0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80;uchar dispbuf6; /保存顯示的字符bit dispnormal;/控制顯示時(shí)是正常顯示還是閃爍顯示uchar dispcnt;/控制閃爍顯示的頻率#define long_time 200 /蜂鳴器響2s#define short_time 20/蜂鳴器響200ms #define longer_time 18000/蜂鳴器響3minsbit alarmcon=p34; /定義報(bào)警控制引腳bit alarmenable; /定義是否報(bào)警或聲音提示uint alarmtime; /
13、定義報(bào)警時(shí)間長(zhǎng)度sbit lockcon=p33; /定義電子鎖控制引腳uchar password=1,2,2,2,1; /定義初始密碼表uchar passinbuf6; /保存輸入的密碼字符uchar passinbuf16; /設(shè)定密碼時(shí)保存第一次輸入的密碼uchar passposi=1;/用戶輸入的密碼字符在passinbuf6中的位置bit timerbit;/20ms定時(shí)時(shí)間到標(biāo)志uchar sysmode;/系統(tǒng)所處的模式:0輸入密碼模式1報(bào)警模式2開鎖模式uchar errorcnt; /用戶連續(xù)輸入密碼出錯(cuò)次數(shù)long int j;char i=0;char h=0; /
14、密碼重新輸入錯(cuò)誤標(biāo)志位char q;char p=0; /重置密碼輸入次數(shù)標(biāo)志char set=0; /設(shè)定密碼標(biāo)志位 /顯示子程序/ /信息填充函數(shù)void fill_buf(uchar fillchar)/將字符fillchar寫入緩沖區(qū)uchar t;for(t=0;t6;t+)dispbuft=fillchar;passinbuft=fillchar;void fill_buf_p() /將系統(tǒng)閉鎖時(shí)的信息寫入緩沖區(qū)fill_buf(blankchar);dispbuf0=pchar;void fill_buf_o() /將系統(tǒng)開鎖時(shí)的信息寫入緩沖區(qū)fill_buf(blankchar
15、);dispbuf0=openchar;void fill_buf_a() /將系統(tǒng)報(bào)警時(shí)的信息寫入緩沖區(qū)fill_buf(linechar);dispbuf0=alarmchar; void fill_buf_b() /將系統(tǒng)設(shè)定密碼時(shí)的信息寫入緩沖區(qū)fill_buf(blankchar);dispbuf0=setchar; /緩沖區(qū)顯示函數(shù) void disp_led_sin(uchar dispchar,uchar dispposi) /在某個(gè)led上顯示字符ledport=segcodedispchar;ledcon=bitcodedispposi; void disp_led_off
16、() /關(guān)閉顯示器uchar t;ledcon|=0x3f;for(t=0;t6;t+)disp_led_sin(blankchar,t);void disp_led(uchar i)/當(dāng)系統(tǒng)處于不同模式下時(shí)顯示某個(gè)顯示器dispcnt+;dispcnt%=10;if(dispcnt=0)dispnormal=dispnormal;if(sysmode=1)if(!dispnormal)disp_led_off();return;disp_led_sin(dispbufi,i);/報(bào)警子程序/void sys_speaker(uint stime) /設(shè)置報(bào)警時(shí)間及報(bào)警標(biāo)志位alarmenab
17、le=1;alarmtime=stime;void sys_alarm() /控制蜂鳴器鳴叫if(alarmenable=1)alarmcon=0;alarmtime-;if(alarmtime=0)alarmenable=0;alarmcon=1;if(sysmode=1)sysmode=0;fill_buf_p();/鍵盤子程序/uchar find_key()/掃描一次鍵盤返回按鍵值 uchar keytemp,i,j;keyport=0xf0;keytemp=keyport;if(keytemp=0xf0)return no_key;switch(keytemp)case 0x70:
18、j=4; break; case 0xb0: j=3; break; case 0xd0: j=2; break; case 0xe0: j=1; break;default: break;keyport=0x0f;keytemp=keyport;switch(keytemp) case 0x07: i=4; break; case 0x0b: i=3; break; case 0x0d: i=2; break; case 0x0e: i=1; break; default: break; return (4*(i-1)+j-1);uchar scan_key() /負(fù)責(zé)按鍵去抖動(dòng)等操作uch
19、ar keytemp;keytemp=find_key();if(keytemp=no_key)if(keyup2)keyup=0;return no_key;if(keyup=2)keyup=3;return no_key;if(keyup=3)keyup=0;return keypre;elseif(keyup=0)keyup=1;keypre=keytemp;else if(keyup=1)if(keypre=keytemp)keyup=2;elsekeypre=keytemp;else if(keyup=3)keyup=2;return no_key;void key_process(
20、uchar key) /按鍵處理函數(shù)uchar i;if(key=no_key)return;switch(sysmode)case 0:switch(key)case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:dispbufpassposi=linechar;passinbufpassposi=key;if(passposi1)passposi-;sys_speaker(short_time);break;case enterkey:for(i=0;i=5)fill_buf_o();passposi=1;
21、lockcon=1;errorcnt=0;sys_speaker(long_time);sysmode=2;elseerrorcnt+;if(errorcnt2)errorcnt=0;fill_buf_a(); passposi=1; sys_speaker(longer_time);sysmode=1;elsefill_buf_p();passposi=1; sys_speaker(long_time);break;case lockkey:fill_buf_p();passposi=1;sys_speaker(short_time);break;break;case 2:if(key=lo
22、ckkey)fill_buf_p();sysmode=0;lockcon=0;sys_speaker(short_time);break;if(key=setkey)/密碼重置if(set=0)fill_buf_b();set=1;break;break;if(set=1)switch(key)case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:dispbufpassposi=linechar;passinbufpassposi=key;if(passposi1)passposi-;sys_speaker(short_time);break;case enterkey:if(passposi5)break;if(p=0)p=1;fill_buf_b();passposi=1;for(i=0;i5;i+)(passinbuf1i=passi
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 口頭承諾合同范本
- 新冠課題申報(bào)書
- 涼茶加盟合同范本
- 品牌共建協(xié)議合同范例
- 單位轉(zhuǎn)讓二手房合同范本
- 東芝熱水器安裝合同范本
- 臺(tái)球球員合同范本
- 員工股合同范本模板
- 品牌特賣合同范本
- 雙方出資合作合同范本
- 作品集合同范本
- 保安員綜合理論考試題庫(kù)備考500題(含各題型)
- 《苗圃生產(chǎn)與管理》教案-第一章 園林苗圃的建立
- 山泉水公司《質(zhì)量管理手冊(cè)》
- X證書失智老年人照護(hù)身體綜合照護(hù)講解
- 2025年內(nèi)蒙古自治區(qū)政府工作報(bào)告測(cè)試題及參考答案
- 2024年全國(guó)中學(xué)生生物學(xué)聯(lián)賽試題及答案詳解
- 2024年全國(guó)職業(yè)院校技能大賽高職組(社區(qū)服務(wù)實(shí)務(wù)賽項(xiàng))考試題庫(kù)(含答案)
- 中醫(yī)治療男科疾病的方法
- 2025年度花卉產(chǎn)業(yè)大數(shù)據(jù)服務(wù)平臺(tái)建設(shè)合同2篇
- 2025年度花卉產(chǎn)業(yè)大數(shù)據(jù)平臺(tái)建設(shè)合同3篇
評(píng)論
0/150
提交評(píng)論