畢業(yè)設計基于8051單片機的電子密碼鎖設計_第1頁
畢業(yè)設計基于8051單片機的電子密碼鎖設計_第2頁
畢業(yè)設計基于8051單片機的電子密碼鎖設計_第3頁
畢業(yè)設計基于8051單片機的電子密碼鎖設計_第4頁
畢業(yè)設計基于8051單片機的電子密碼鎖設計_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、題目:基于單片機的電子密碼鎖設計班 級:智能電子111班姓 名: 李海論學 號:201101460145 目錄摘要-1關鍵詞-1第一章 課題簡介-2第二章 系統(tǒng)總體方案設計-4第三章 硬件電路設計-53.1鍵盤電路設計-63.2LED顯示電路-73.3開鎖電路-83.4 報警電路-93.5密碼存儲電路設計-93.6復位電路-10第四章 軟件設計-134.1軟件設計思路-134.2鍵盤掃描子程序-134.3 LED顯示子程序-144.4 密碼修改比較和報警程序-16第五章 調(diào)試系統(tǒng) -18第六章 總結(jié)-19第七章 附錄-21 7.1 系統(tǒng)電路圖-25基于單片機的電子密碼鎖設計摘要單片機也被稱微控

2、器,是因為它最早被用在工業(yè)控制領域。單片機是靠程序運行的,并且可以修改。通過不同的程序?qū)崿F(xiàn)不同的功能。這是別的器件需要費很大力氣才能做到的,有些則是花大力氣也很難做到的。一個不是很復雜的功能要是用美國50年代開發(fā)的74系列,或者60年代的CD4000系列這些純硬件來搞定的話,電路一定是一塊大PCB板!但是如果要是用美國70年代成功投放市場的系列單片機,結(jié)果就會有天壤之別! 單片機對成本是敏感的,所以目前占統(tǒng)治地位的軟件還是最低級匯編語言,它是除了二進制機器碼最低級的語言了,既然這么低級為什么還要用呢?很多高級的語言已經(jīng)達到了可視化編程的水平為什么不用呢?原因很簡單,就是單片機沒有家用計算機那樣

3、的CPU,也沒有像硬盤那樣的海量存儲設備。單片機在硬件資源方面的利用率必須很高才行。本文涉及的是市場占有率很高的MCS51系列,很多IC生產(chǎn)廠家都生產(chǎn)51兼容的芯片。到目前為止,WCS-51單片機已有數(shù)百個品種。還不斷推出功能更強的產(chǎn)品。本設計是基于單片機的密碼鎖設計方案,根據(jù)要求,給出單片機密碼鎖的硬件電路和軟件程序,同時給出單片機型號的選擇,硬件設計,軟件流程圖等內(nèi)容。關鍵詞:單片機 8051 LED數(shù)碼管第一章 系統(tǒng)總體方案設計系統(tǒng)總體設計方案如下圖復位電路存儲器超次報警電路密碼正確開門電路鍵盤控制電路8051單片機LED顯示電路圖2-1該設計可利用單片機中一個用于構(gòu)成內(nèi)部振蕩器的高增益

4、反相放大器,這個放大器與作為反饋元件的片外石英晶體或陶瓷諧振器一起構(gòu)成自激振蕩器 。外接石英晶體(或陶瓷諧振器)及電容C1、C2 接在放大器的反饋回路中構(gòu)成并聯(lián)振蕩電路。對外接電容C1、C2 雖然沒有十分嚴格的要求,但電容容量的大小會輕微影響振蕩頻率的高低、振蕩器工作的穩(wěn)定性、起振的難易程序及溫度穩(wěn)定性。如果使用石英晶體,最好電容使用30pF±10pF,而如使用陶瓷諧振器建議選擇40pF±10F。用戶也可以采用外部時鐘,外部時鐘脈沖接到XTAL1端,即內(nèi)部時鐘發(fā)生器的輸入端,XTAL2則懸空。由于外部時鐘信號是通過一個2分頻觸發(fā)器后作為內(nèi)部時鐘信號的,所以對外部時鐘信號的占

5、空比沒有特殊要求,但最小高電平持續(xù)時間和最大的低電平持續(xù)時間應符合產(chǎn)品技術條件的要求。本方案采用一種是以8051為核心的單片機控制方案。利用石英晶體諧振器和單片機靈活的編程設計和豐富的I/O端口,及其控制的準確性,實現(xiàn)其基本密碼鎖功能。初步設計如下,1輸入密碼用矩形鍵盤,包括數(shù)字鍵和功能鍵。2用發(fā)光二極管代替發(fā)光電路,發(fā)光表示開鎖。3輸入密碼錯誤次數(shù)超過三次系統(tǒng)報警。4打開電源后顯示器顯示“0000”,設原始密碼“1234”輸入密碼便可開鎖,5重設密碼,先輸入“*”。第3章 硬件電路設計3.1鍵盤電路設計 鍵盤是單片機系統(tǒng)中最常見的一種人機聯(lián)系的一種輸入設備,由若干個按鍵組成,用戶通過鍵盤向C

6、PU輸入數(shù)據(jù)或命令以實現(xiàn)簡單的人機通信。對鍵盤的識別可分為兩類:一類由專用的硬件電路來識別,它使用起來方便,但需要價格昂貴的專用芯片,在單片機系統(tǒng)中一般不采用,另一類靠軟件來識別,稱為非編碼鍵盤,它的結(jié)構(gòu)簡單,價格便宜,應用靈活。但需要編制相應的鍵盤管理程序。單片機普遍采用這種方式。按鍵工作處于兩種狀態(tài):按下與釋放。一般按下為接通,釋放為斷開,這兩種狀態(tài)要被CPU識別,通常將兩種狀態(tài)轉(zhuǎn)換為與之對應的低電平或高電平。CPU通過按鍵信號電平的高低來判斷按鍵的狀態(tài)。使用矩陣鍵盤,所以本設計采用行列式鍵盤,可減少鍵盤與單片機接口是所占用的I/O線的數(shù)目,按鍵比較多時,通常采用這種方法。其原理圖如下圖3

7、-1每一條行線和列線交叉處通過一個按鍵來連接,利用這種行列式矩陣結(jié)構(gòu)只需要N條行線和M條列線就可組成N*M個按鍵。 在這種行列式矩陣鍵盤非鍵盤編碼的單片機中,鍵盤處理程序先執(zhí)行等待按鍵并確認有無鍵盤按下的程序段。確認有鍵盤按下后,下一步執(zhí)行識別哪一個鍵按下。對照4*4鍵盤,首先識別鍵盤中有無鍵盤按下,由單片機I/O口向鍵盤送全掃描字00H,把全部的列線置為低電平,然后把列線的電平狀態(tài)讀入累加器A中,如有鍵按下,總會有一根線電平為低使行線不全為1。判斷鍵盤中哪一個鍵被按下,使通過將列線逐列置低電平后,檢查行輸入狀態(tài)來實現(xiàn)的。方法是:依次給列線送低電平,然后檢查行輸入狀態(tài)來實現(xiàn)。如果全為1,則所按

8、下鍵不在此列,如果不全為1則按下的鍵必在此列。而且是與零電平線相交的交點上的鍵。按鍵列表如下:表3-1按鍵鍵名功能說明19鍵數(shù)字鍵輸入密碼*鍵重設密碼設定新密碼#鍵清除鍵顯示器清零理想的按鍵信號是一個標準脈沖,但鍵的按下和釋放都需要一個過程來實現(xiàn),在這一過程中是處于高低電平之間一種不穩(wěn)定狀態(tài),稱為抖動。抖動時間的長短,頻率的高低與按鍵機械特征有關,一般在5到10ms之間。這就有可能造成CPU對一次按鍵過程進行多次處理。為了避免這種情況應采取措施消除抖動。消抖常見有兩種方法,硬件消抖:如用濾波器,雙穩(wěn)態(tài)電路等。另一種用軟件來實現(xiàn),即當發(fā)現(xiàn)有鍵按下時,間隔10ms以上時間,才能進行下一次查詢,這樣

9、就讓過了抖動過程,鍵的釋放進行同樣處理。本設計為減少電路復雜程度,減少成本。采用軟件消抖的方法。3.2LED顯示電路數(shù)碼管按段數(shù)分為七段數(shù)碼管和八段數(shù)碼管,八段數(shù)碼管比七段數(shù)碼管多一個發(fā)光二極管單元(多一個小數(shù)點顯示);按能顯示多少個“8”可分為1位、2位、4位等等數(shù)碼管;按發(fā)光二極管單元連接方式分為共陽極數(shù)碼管和共陰極數(shù)碼管。共陽數(shù)碼管是指將所有發(fā)光二極管的陽極接到一起形成公共陽極(COM)的數(shù)碼管。共陽數(shù)碼管在應用時應將公共極COM接到+5V,當某一字段發(fā)光二極管的陰極為低電平時,相應字段就點亮。當某一字段的陰極為高電平時,相應字段就不亮。共陰數(shù)碼管是指將所有發(fā)光二極管的陰極接到一起形成公

10、共陰極(COM)的數(shù)碼管。共陰數(shù)碼管在應用時應將公共極COM接到地線GND上,當某一字段發(fā)光二極管的陽極為高電平時,相應字段就點亮。當某一字段的陽極為低電平時,相應字段就不亮。 數(shù)碼管要正常顯示,就要用驅(qū)動電路來驅(qū)動數(shù)碼管的各個段碼,從而顯示出我們要的數(shù)字,因此根據(jù)數(shù)碼管的驅(qū)動方式的不同,可以分為靜態(tài)式和動態(tài)式兩類。 靜態(tài)顯示驅(qū)動:靜態(tài)驅(qū)動也稱直流驅(qū)動。靜態(tài)驅(qū)動是指每個數(shù)碼管的每一個段碼都由一個單片機的I/O端口進行驅(qū)動,或者使用如BCD碼二-十進制譯碼器譯碼進行驅(qū)動。靜態(tài)驅(qū)動的優(yōu)點是編程簡單,顯示亮度高,缺點是占用I/O端口多,如驅(qū)動5個數(shù)碼管靜態(tài)顯示則需要5×840根I/O端口來

11、驅(qū)動,實際應用時必須增加譯碼驅(qū)動器進行驅(qū)動,增加了硬件電路的復雜性。 動態(tài)顯示驅(qū)動:數(shù)碼管動態(tài)顯示接口是單片機中應用最為廣泛的一種顯示方式之一,動態(tài)驅(qū)動是將所有數(shù)碼管的8個顯示筆劃的同名端“a,b,c,d,e,f,g,“連在一起,另外為每個數(shù)碼管的公共極COM增加位選通控制電路,位選通由各自獨立的I/O線控制,當單片機輸出字形碼時,所有數(shù)碼管都接收到相同的字形碼,但究竟是那個數(shù)碼管會顯示出字形,取決于單片機對位選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯示出字形,沒有選通的數(shù)碼管就不會亮。通過分時輪流控制各個數(shù)碼管的的COM端,就使各個數(shù)碼管輪流受控顯示,這就

12、是動態(tài)驅(qū)動。在輪流顯示過程中,每位數(shù)碼管的點亮時間為12ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應,盡管實際上各位數(shù)碼管并非同時點亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會有閃爍感,動態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的I/O端口,而且功耗更低。本設計的顯示電路是為了給使用者以提示而設計的。本系統(tǒng)采用串行顯示的方式,只使用單片機的一個串行口,74LS247驅(qū)動數(shù)碼管發(fā)光顯示數(shù)碼和74LS138控制位選信號,就可以完成單片機的顯示功能,顯示電路原理圖如下所示。圖3-23.3開鎖電路本設計中,基于節(jié)省材料的原則,用發(fā)光二極管代替電磁鎖,二極管發(fā)光表示開鎖,電

13、路圖如圖所示。當P2.0輸出低電平時,二極管發(fā)光,表示開鎖3.4 報警電路報警電路由蜂鳴器和單片機組成。選擇一只壓電式蜂鳴器,壓電式蜂鳴器工作時需要約100mA的驅(qū)動電流。蜂鳴器電路如圖所示。當89C51的P2.1口輸出為低電平時,蜂鳴器產(chǎn)生蜂鳴音。89c51輸出為高電平時,蜂鳴器不發(fā)音。3.5密碼存儲電路設計本設計中,智能密碼鎖工作時分為兩種工作狀態(tài),分別是正常狀態(tài)和鎖定狀態(tài)。鎖定狀態(tài)時,輸出鎖定信號,實現(xiàn)上鎖功能;正常狀態(tài)時,鎖定信號消失實現(xiàn)開鎖功能。本設計采用AT24C01存儲密碼。AT24C01是美國ATMEL公司的低功耗CMOS串行EEPROM,它內(nèi)含128×8位存儲空間,

14、具有工作電壓寬(2.55.5V)、擦寫次數(shù)多(大于10000次)、寫入速度快(小于10ms)等特點。具有PDIP、MSOP/TSSOP及SOIC等三種封裝形式,以適應不同產(chǎn)品的需求。將密碼存入AT24C01中,開鎖時,將從面板上的微鍵盤輸入的數(shù)字序與AT24C01中存儲的密碼相比較,如果位數(shù)及每一位上的數(shù)都相吻合,則進行開鎖程序復位后,先將AT24C01中保存的密碼取出,放入RAM緩沖區(qū)1中暫存,將定時器、堆棧等進行初始化,為報警系統(tǒng)作好準備,將RAM緩沖區(qū)2中的密碼初值設置為和RAM緩沖區(qū)1中的密碼不同,保證程序復位后比較密碼不會相同,這時,進入RAM緩沖區(qū)1和RAM緩沖區(qū)2的密碼比較程序,

15、只有當兩者位數(shù)相同而且每一位數(shù)字都相同時,執(zhí)行開鎖動作、輸出開鎖信號、進入正常狀態(tài),否則執(zhí)行上鎖動作、輸出上鎖信號、進入鎖定狀態(tài)。在正常狀態(tài)時,可以進行重新設置密碼、上鎖等操作,重新設置密碼時,首先驗證原始密碼,如相同則可進行密碼更改,然后將新密碼保存至AT24C01中,同時更新RAM緩沖區(qū)1。在鎖定狀態(tài)時,系統(tǒng)啟動報警功能,同時等待用戶開鎖,如發(fā)現(xiàn)用戶按下“開鎖”鍵,則讀入從微鍵盤輸入的數(shù)字序列,用其更新RAM緩沖區(qū)2,轉(zhuǎn)入密碼比較程序,如密碼相同則開鎖,否則繼續(xù)等待用戶開鎖,為防止非法用戶惡意多次試探密碼,可在程序中設置當連續(xù)三次輸入錯誤密碼后自動報警,直至開鎖后解除。圖3-53.6復位電

16、路單片機的第9腳RST為硬件復位端,只要將該端持續(xù)4個機器周期的高電平即可實現(xiàn)復位,復位后單片機的各狀態(tài)都恢復到初始化狀態(tài),電路圖如圖所示圖3-6圖中由按鍵以及電解電容、電阻構(gòu)成按鍵及上電復位電路。由于單片機是高電平復位,所以當按鍵按下的時候,單片機的9腳RESET管腳處于高電平,此時單片機處于復位狀態(tài)。當上電后,由于電容的緩慢充電,單片機的9腳電壓逐步由高向低轉(zhuǎn)化,經(jīng)過一段時間后,單片機的9腳處于穩(wěn)定的低電平狀態(tài),此時單片機上電復位完畢,系統(tǒng)程序從0000H開始執(zhí)行。第四章 軟件設計4.1軟件設計思路電子密碼鎖工作的主要過程是通過鍵盤輸入密碼,同時LED顯示密碼輸入情況,按下確認鍵后判斷密碼

17、的正確性,做出開鎖或報警處理。當輸入密碼連續(xù)三次錯誤時,系統(tǒng)報警。密碼的的設定在此程序中密碼是固定40H45H中,假設預定密碼為“123456”六位。在正常狀態(tài)時,可以進行重新設置密碼、上鎖等操作。重新設置密碼時,首先驗證原始密碼,如相同則可進行密碼更改,然后將新密碼保存至AT24C01中。按鍵按其功能分為兩種,其中一種為功能鍵另一種為數(shù)字鍵。輸入密碼后,直到所有密碼輸入完畢按下確認功能鍵之后,才完成密碼輸入過程。進入密碼的判斷比較處理狀態(tài)并給出相應的處理過程。4.2鍵盤掃描子程序設計鍵盤掃描流程如圖鍵盤掃描子程序如下:int key() UINT8 temp; P3=0X7f; temp=P

18、3&0x0f; if(temp!=0x0f) delay(5); if(temp!=0x0f) temp=P3; switch(temp)case S10:num=10; break; case S0:num=0; break; case S11:num=11; break;dotemp=P3;temp=temp&0x0f; while(temp!=0x0f); /等待按鍵抬起flag=1;yin(); P3=0Xbf;dotemp=P3;temp=temp&0x0f;while(temp!=0x0f);flag=1;yin();return(num);4.3 LED顯

19、示子程序LED顯示子程序流程圖如下開始載入按鍵值按鍵值掃描送入P0口圖4-3顯示函數(shù)程序如下:void Display(UINT8 g) static UINT8 n=0;P2=0xff;switch(n)case 0:P0=tabg;break;case 1:P0=tabg;break;case 2:P0=tabg;break;case 3:P0=tabg;break;P2=SELECTn;n+;n%=4; void writedata(UINT8 num)/傳送一個字節(jié)4.4密碼修改比較和報警程序密碼比較流程圖如下圖4-4開始比較第一位比較下一位4位比較完?正確開鎖清零清除顯示記錄錯誤次數(shù)

20、3次報警YNNNYY密碼修改與比較程序if(flag=1&&num=15) flag=0; yhsh=0; shw=1; num=0; for(i=0;i<16;i+) /從24c02里讀出16個密碼 PSWD1_1i=i2cRead24LC16B(i); delay_10ms(); for(i=0;i<16;i+) if(PSWD1_1i!=PSWD0_0i) BJCB=1;break;else BJCB=0; if(BJCB!=0) BJC+; if(BJC!=3) BJCB=0; /第一次和第二次報警 delay(500); mg=0;/密碼個數(shù)清零 for(

21、i=0;i<3;i+)/聲光報警電路 L3=0;display_3();bjyin(1000);L3=1;delay(1000); goto loop;第5章 系統(tǒng)調(diào)試(1) 靜態(tài)調(diào)試第一步為目測,單片機應用系統(tǒng)中大部分電路安裝在印制電路板上,因此對每一塊加工好的印制電路板要進行仔細的檢查。第二步為示波器測試,目測檢查后,可進行示波器測試。第三步為加電檢查,第四步實際聯(lián)機檢查。但注意示波器必須接在入口而不能接在電壓大的端口上。(2) 動態(tài)調(diào)試 一般方法是由近及遠、由分到合。首先按邏輯功能將用戶系統(tǒng)硬件電路分為若干份,先分塊調(diào)試,當調(diào)試某塊電路時,與該電路無關的器件全部從用戶系統(tǒng)中去掉,這樣,可將故障范圍限定在某個局部電路上。當各塊電路調(diào)試無故障后,將各塊電路加入系統(tǒng)中,再對個塊電路功能及電路間可能存在的相互聯(lián)系進行試驗。經(jīng)歷這樣一個調(diào)試過程后,大部分硬件故障基本可以排除。軟件調(diào)試一般步驟:先獨立后聯(lián)機:一個子程序一個子程序的進行調(diào)試,最

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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

提交評論