基于51單片機的電子密碼鎖設計_第1頁
基于51單片機的電子密碼鎖設計_第2頁
基于51單片機的電子密碼鎖設計_第3頁
基于51單片機的電子密碼鎖設計_第4頁
基于51單片機的電子密碼鎖設計_第5頁
已閱讀5頁,還剩21頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

課程設計報告課程設計名稱:單片機系統綜合課程設計課程設計題目基于51單片機的電子密碼鎖設計院(系):專業:班級:學號:姓名:指導教師:完成日期:目錄第1章總體設計方案 8 第1章總體設計方案1.1課程設計的內容和要求一、課程設計內容:密碼鎖設計具體內容如下:狀態顯示功能:鎖定狀態時系統用三位數碼管顯示OFF,用三位數碼管顯示成功開鎖次數;成功開鎖時用三位數碼管顯示888,用三位數碼管顯示成功開鎖次數。2.密碼設定功能:通過一個4×4的矩陣式鍵盤可以任意設置用戶密碼(1-16位長度)。3報警和加鎖功能: 密碼的輸入時間大于12秒或者連續三次輸入失敗,聲音報警同時鎖定系統,不讓再次輸入密碼。此時只有使用管理員密碼方能對系統解鎖。二、課程設計要求:1.獨立完成課程設計任務;2.通過老師現場驗收;3.交出完整的課程設計報告。1.2課程設計原理根據題目要求,要完成密碼鎖的設置密碼,解鎖,顯示等功能,在本次設計中主要使用了鍵盤、數字數碼管以及片選連線來完成密碼鎖的設計。編制鍵盤掃描程序,實現密碼的設定和開鎖功能,同時在開鎖和開鎖成功的時候顯示不同數據。通過兩個函數,分別調用。通過中斷服務程序完成對12秒的計時,當開鎖的時候開啟定時器,開鎖完成后關閉定時器并還原定時器相應數據。課程設計思路一.提出方案首先,設計三種數碼管顯示方案:開鎖成功、開鎖失敗、系統態、在實現不同的功能的時候分別調用每一種函數。另外編鐘鍵盤掃描程序,根據矩陣鍵盤的原理,編寫掃描程序,把按下的鍵作為返回值,供其他函數使用。編寫設定密碼程序,通過調用鍵盤掃描程序以0xff為結束標志,并把密碼存貯進數組內,實現密碼的設定。開鎖功能可以通過開鎖函數把輸入的密碼存入另一個數組,待輸入完成后,跟密碼進行比較,當開鎖成功時和不成功是返回不同的值,這樣在主函數內根據函數的不同返回值對成功次數和失敗次數進行處理,同時在開鎖函數內開啟定時器,開鎖結束時關閉計時器。如果計時到12秒或者輸入密碼次數三次時進入系統態,只能輸入實現設定好的系統密碼才能回到普通狀態。二.方案論證由于單片機執行程序的時候每一條函數的執行時間基本可以忽略,所以顯示函數放在主函數內會出現一閃而過的現象。但是函數大部分的時間都停在檢測是否有鍵按下函數中,所以在可以在鍵盤掃描程序內調用顯示函數,并通過函數傳遞判斷該顯示哪些數字。這樣在一個功能內在視覺上就會看到一直顯示要顯示的信息。1.4實驗環境·硬件環境:Lab6000通用微控制器,PC機。·軟件環境:WAVE應用軟件xxxxxx大學課程設計報告第2章詳細設計方案 第2章詳細設計方案2.1實現方法開始運行時,數碼管顯示OFF0,開始設定密碼。設定完成后顯示OFF0,進入開鎖函數,當輸入密碼的時候顯示OFF0,開鎖成功后顯示8881,當不繼續操作時,停留在這。繼續輸入密碼可繼續開鎖,當連續輸入密碼三次或者輸入密碼時間超過12秒時。數碼管顯示000000,蜂鳴器響,此時只能通過輸入系統密碼,才能函數返回,否則一直在系統態內死循環。返回后顯示OFF,繼續循環進行。模塊設計程序由設定密碼模塊、開鎖模塊、系統模塊組成。2.2.1設定密碼模塊設定密碼模塊要實現密碼的初始化,先在程序開始申請全局數組PASS用來存放密碼。根據功能,當沒有數據輸入時要等數據輸入,顯示OFF。當有鍵按下時通過鍵盤掃描程序判斷輸入的程序在數組內的位置,最后通過查找數組返回輸入的數據。如果返回的數據為0XFF,則密碼設定功能完成。如圖2.1所示。開始開始Y通過超找數組確定輸入的數據是否有鍵按下Y通過超找數組確定輸入的數據是否有鍵按下YY顯示OFF把輸入的數據存入數組PASSPPPPPPAPASS值Y顯示OFF把輸入的數據存入數組PASSPPPPPPAPASS值YYY輸入數據輸入數據是否為0xffYYYYY返回輸入值返回輸入值圖2.1設定密碼模塊流程圖2.2.2開鎖模塊開鎖模塊實現開鎖功能。在系統進入開鎖過程后,通過鍵盤掃描把輸入的開鎖密碼輸入到開鎖數組PASSBUFF中,并且以RST鍵結束開鎖密碼的輸入。開鎖密碼輸入結束后,對密碼數組PASS和開鎖數組PASSBUFF進行比較,如果兩數組內數據完全相同,則返回1,否則返回2,這樣就可以根據返回值判斷開鎖是否成功。如圖2.2所示。開始開始是否有鍵按下N是否有鍵按下NYY開啟定時器開啟定時器Y是否有鍵按下把輸入的值存入數組Y是否有鍵按下把輸入的值存入數組PASSBUFF NN顯示OFF輸入值是否為0XFF顯示OFF輸入值是否為0XFFNN YYY關閉定時器關閉定時器PASS與PAABUFFPASS與PAABUFF是否一樣NN返回2返回2YY返回1返回1圖2.2開鎖模塊流程圖2.2.3系統模塊系統模塊實現對系統的保護,當三次密碼輸入錯誤或者輸入密碼時間大于12秒時,進入系統狀態,提醒用戶,并且保護系統。本模塊跟開鎖模塊大致相同。從鍵盤上輸入數據后,然后和系統數據進行比較。如果和系統密碼相同時,則返回。否則一直在系統函數內循環,知道輸入正確的系統函數。開始開始是否有鍵輸入是否有鍵輸入把輸入的數據存入PASSBUFFY把輸入的數據存入PASSBUFFN輸出000000,蜂鳴器響輸出000000,蜂鳴器響輸入的數據是否為0XFF輸入的數據是否為0XFFNY比較PASSBUFF與系統函數是否一樣比較PASSBUFF與系統函數是否一樣NY結束結束圖2.3系統模塊流程圖2.2.4主函數流程圖開始開始初始化定時器初始化定時器設置密碼設置密碼開鎖開鎖YY顯示開鎖成功開鎖是否成功顯示開鎖成功開鎖是否成功NN密碼錯誤是否超過三次密碼錯誤是否超過三次YY系統狀態系統狀態NN顯示開鎖失敗顯示開鎖失敗是否繼續開鎖是否繼續開鎖YYNN結束結束 主函數內先對密碼進行設定,設定完成后進行開鎖,在主函數內申請變量SUCCESS和FAILURE。存儲開鎖的成功次數和失敗次數。設定密碼完成之后,進行開鎖操作。根據開鎖函數的返回值判斷開鎖是否成功。如果成功則顯示開鎖成功。按鍵后繼續開鎖,顯示關閉。如果開鎖為成功。則顯示關閉、當連續開鎖失敗三次或者開鎖時間大于12秒后。進入系統態。通過系統密碼解鎖返回開鎖操作。硬件連線硬件電路由矩陣鍵盤和片選控制構成,如圖2.4所示。LED/KEYCSCS0LED/KEYCSCS0鍵盤8031鍵盤8031脈沖輸入P1.0蜂鳴器脈沖輸入P1.0蜂鳴器圖2.4硬件連線圖本試驗使用了6位數碼管,只要按地址輸出相應數據,就可以實現對顯示器的控制。顯示共有6位,用動態方式顯示。本試驗中8位段碼輸出地址位0X004H,位碼輸出地址為0X002H。同時試驗提供一個6的小鍵盤,向列掃描碼地址(0X002H)逐列輸出低電平,然后從行碼地址(0X001H)讀回。如果有鍵按下,則相應行的值為0。如無鍵按下,由于上拉的作用,行碼為高。這樣就可以通過輸出的列碼和讀取的行碼來判斷按下的是什么鍵。在判斷有鍵按下以后,要有一定的延時,防治鍵盤抖動。此處X由KEY/LEDCS決定。蜂鳴器電路可以輸入不同時間的高低電平驅動蜂鳴器發生。 xxxxxx大學課程設計報告第3章調試及結果分析 第3章調試及結果分析3.1調試步驟及方法編譯并連接程序后全速運行,在數碼管上顯示OFF0之后通過矩陣鍵盤設定密碼。密碼設定的輸入以RST鍵結束。密碼設定完成之后。數碼管顯示OFF0。之后完成開鎖操作。輸入密碼并以RST結束。成功后。數碼管顯示8881。并且每次開啟成功的時候后面的數字都會增加1。當輸入密碼錯誤的時候顯示OFF1,連續第二次錯誤的時候,顯示OFF1,連續的第三次錯誤的時候顯示000000。進入系統態,此時輸入系統密碼,輸入系統密碼成功后。退出系統態,顯示OFF1。當開鎖是輸入密碼的時間超過12秒的時候。同樣進入系統態。3.2實驗結果及分析本程序實現了課設的基本要求,能夠實現密碼鎖的基本功能。并且能夠實現基本的保護功能。當輸入密碼錯誤三次的時候或者輸入密碼時間大于12秒的時候,進入系統狀態。進入系統態后,只能通過系統密碼解鎖進入正常狀態。實現了課程設計的基本要求。PAGE24PAGE24xxxxxx大學課程設計報告參考文獻9參考文獻[1]張毅剛.MCS-51單片機原理及應用[M].哈爾濱:哈爾濱工業大學出版社.2004[2]高峰.單片微型計算機原理與接口技術[M].北京:科學出版社.2003[3]胡漢才.單片機原理極其接口技術[M].北京:清華大學出版社.2001[4]薛棟梁.單片機原理及應用[M].西安:中國水利水電出版社.2001xxxxxx大學課程設計報告附錄xxxxxx大學課程設計報告附錄10 附錄1(源程序)#include<reg51.h>xdataunsignedchardat_at_0x8004;xdataunsignedcharkey_at_0x8001;xdataunsignedcharled_at_0x8002;unsignedintK=120;sbitL=P1^0;codeunsignedcharledmap[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};codeunsignedcharkeytable[]={0x16,0x15,0x14,0xff,0x13,0x12,0x11,0x10,0x0d,0x0c,0x0b,0x0a,0x0e,0x03,0x06,0x09,0x0f,0x02,0x05,0x08,0x00,0x01,0x04,0x07};unsignedcharpass[16];unsignedcharpassbuf[16];unsignedcharsword[16]={0x00,0x01,0x02,0x03,0xff};voiddelay(inta);voidledoff(intsuccess);voidledsys();voidsystem();voidTimer0()interrupt1{K--;TR0=0;TH0=0X3C;TL0=0XB0;TR0=1;if(K==0)system();}unsignedchartestkey(){led=0;return(~key&0x0f);}unsignedchargetkey(inttest,intsuccess){intpos;inti;intk;if(test==1){while(!testkey())ledsys();}if(test==0){while(!testkey())ledoff(success);}i=6;pos=0x20;do{led=~pos;pos>>=1;k=~key&0x0f;}while((--i!=0)&&(k==0));if(k!=0){i*=4;if(k&2)i+=1;elseif(k&4)i+=2;elseif(k&8)i+=3;led=0;dodelay(4);while(testkey());return(keytable[i]);}elsereturn(0xff);}voidsetpassword(intsuccess){unsignedchari;for(i=0;i<16;i++){pass[i]=getkey(0,success);if(pass[i]==0xff)break;}}voiddelay(inta){inti=0,j=0,q=0;for(;i<a;i++)for(;j<a;j++)for(;q<a;q++){}}voidledoff(intsuccess){led=1;dat=ledmap[success];delay(4);led=8;dat=0x71;delay(4);led=16;dat=0x71;delay(4);led=32;dat=0x3f;delay(4);}voidledsys(void){led=0x3f;key=0x64;delay(4);L=1;delay(50);L=0;delay(50);}voidledopen(intsuccess){led=1;dat=ledmap[success];delay(4);led=8;dat=ledmap[8];delay(4);led=16;dat=ledmap[8];delay(4);led=32;dat=ledmap[8];delay(4);}voidtimer0init(void){TMOD=0x01;TR0=0;TH0=0X3C;TL0=0XB0;ET0=1;EA=1;}intopen(intsuccess,intfailure){inti=0;while(!testkey());TR0=1;for(i=0;i<16;i++){passbuf[i]=getkey(0,success);if(passbuf[i]==0xff){TR0=0;break;}}i=0;while(pass[i]!=0xff){if(passbuf[i]!=pass[i]){failure++;K=120;return1;}i++;}K=120;return2;}voidsystem(){intq,x;x=0;K=120;while(!testkey())ledsys();for(;1;){for(q=0;q<16;q++){passbuf[q]=getkey(1,0);if(passbuf[q]==0xff)break;}q=0;while(sword[q]!=0xff&&q<16){if(sword[q]!=passbuf[q])break;q++;}if(sword[q]==0xff){K=120;break;}}}voidmain(void){intsuccess=0;intfailure=0;inta;inti;unsignedcharx;timer0init();setpassword();for(;1;){a=open(success,failure);if(a==2){success++;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論