計算機控制系統(tǒng)課程設計論文_第1頁
計算機控制系統(tǒng)課程設計論文_第2頁
計算機控制系統(tǒng)課程設計論文_第3頁
計算機控制系統(tǒng)課程設計論文_第4頁
計算機控制系統(tǒng)課程設計論文_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、基于單片機實現(xiàn)的電子密碼鎖一:電子密碼鎖的特點 電子密碼鎖是一種通過密碼輸入來控制電路或是芯片工作,從而控制機械開關的閉合,完成開鎖、閉鎖任務的電子產(chǎn)品。它的種類很多,有簡易的電路產(chǎn)品,也有基于芯片的性價比較高的產(chǎn)品?,F(xiàn)在應用較廣的電子密碼鎖是以芯片為核心,通過編程來實現(xiàn)的。其性能和安全性已大大超過了機械鎖,主要特點如下: 1.保密性好,編碼量多,遠遠大于彈子鎖。隨機開鎖成功率幾乎為零。2.密碼可變。 用戶可以經(jīng)常更改密碼,防止密碼被盜,同時也可。3.以避免因人員的更替而使鎖的密級下降。 4.誤碼輸入保護。當輸入密碼多次錯誤時,報警系統(tǒng)自動啟動,防止試探密碼。二.設計目標 本次設計使用atme

2、l公司的at89c51實現(xiàn)一基于單片機的電子密碼鎖的設計,其主要具有如下功能: 1.設置6位密碼,密碼通過鍵盤輸入,若密碼正確,則將鎖打開。 2.密碼可以由用戶自己修改設定(只支持6位密碼),鎖打開后才能修改密碼。修改密 3.碼之前必須再次輸入舊密碼,在輸入新密碼。 4.報警、鎖定鍵盤功能。密碼輸入錯誤數(shù)碼顯示器會出現(xiàn)錯誤提示,若密碼輸入錯誤次數(shù)超過3次,蜂鳴器報警并且鎖定鍵盤。3. 設計的具體體現(xiàn)1. 系統(tǒng)概述 電子密碼鎖的設計主要由三部分組成:44矩陣鍵盤接口電路、密碼鎖的控制電路、輸出八段顯示電路。另外系統(tǒng)還有l(wèi)ed提示燈,報警蜂鳴器等。 密碼鎖設計的關鍵問題 1.密碼輸入功能:按下一個

3、數(shù)字鍵,一個“”就顯示在最右邊的數(shù)碼管上,同時將先前輸入的所有“”向左移動一位。 2.密碼清除功能:當按下清除鍵時,清除前面輸入的最后一位值,并清對應顯示。 3.密碼更改功能:將輸入的值作為新的密碼。 4.開鎖功能:當按下開鎖鍵,系統(tǒng)將輸入與密碼進行檢查核對,如 at89c 51數(shù)碼管蜂鳴器led44鍵盤復位電路果正確鎖打開,否則不打開。電源系統(tǒng)結(jié)構(gòu) 圖一 系統(tǒng)組成如圖二所示系統(tǒng)主要由at89c51(51系列)、六位位數(shù)碼管、蜂鳴器、led、44矩陣鍵盤、復位電路等組成。系統(tǒng)可行性分析系統(tǒng)工作原理分析:使用at59c51單片機、44矩陣鍵盤、led、蜂鳴器等。矩陣鍵盤分別為0、1、2、3、4、

4、5、6、7、8、9、back、enter、sz、close、tcsz。輸入密碼時,led顯示電路顯示為“”,當密碼輸入完畢按下enter鍵時,對輸入密碼與設定的密碼進行比較,若密碼正確則led顯示電路顯示為“開鎖指示燈亮”提示鎖打開;若密碼不正確,led顯示電路顯示提示“密碼錯誤指示燈亮”,若連續(xù)3次輸入不正確,則發(fā)出警報聲同時鎖定鍵盤。在輸入正確密碼后,按下修改鍵時,輸入舊密碼,此時輸入正確的舊密碼,則顯示“”電路會有提示輸入新密碼在輸入新密碼后,輸入新密碼后按“enter”在修改密碼的過程中,如果一開始輸入的舊密碼錯誤顯示電路會顯示提示。 系統(tǒng)中cel鍵用于退格,在輸入密碼時,若輸入錯誤且

5、未按下enter鍵,按下cle可以刪除剛輸入的密碼,然后再次輸入。為了防止惡意嘗試,系統(tǒng)才用若連續(xù)輸入3次錯誤密碼則發(fā)出報警聲,且鎖定鍵盤,可以提高系統(tǒng)的安全系數(shù),同時也能夠保護合法用戶的正常使用。2.單元電路設計、仿真與分析(1)at89c51 主要特性 8031 cpu與mcs-51 兼容 4k字節(jié)可編程flash存儲器(壽命:1000寫/擦循環(huán)) 全靜態(tài)工作:0hz-24khz 三級程序存儲器保密鎖定 128*8位內(nèi)部ram 32條可編程i/o線 兩個16位定時器/計數(shù)器 6個中斷源 可編程串行通道 低功耗的閑置和掉電模式 片內(nèi)振蕩器和時鐘電路 管腳說明vcc:供電電壓。gnd:接地。

6、圖二 p0口:p0口為一個8位漏級開路雙向i/o口,每腳可吸收8ttl門電流。當p1口的管腳第一次寫1時,被定義為高阻輸入。p0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在fiash編程時,p0 口作為原碼輸入口,當fiash進行校驗時,p0輸出原碼,此時p0外部必須被拉高。 p1口:p1口是一個內(nèi)部提供上拉電阻的8位雙向i/o口,p1口緩沖器能接收輸出4ttl門電流。p1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,p1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在flash編程和校驗時,p1口作為第八位地址接收。 p2口:p2口為一個內(nèi)部上拉電阻的8位雙向

7、i/o口,p2口緩沖器可接收,輸出4個ttl門電流,當p2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,p2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。p2口當用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,p2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當對外部八位地址數(shù)據(jù)存儲器進行讀寫時,p2口輸出其特殊功能寄存器的內(nèi)容。p2口在flash編程和校驗時接收高八位地址信號和控制信號。 p3口:p3口管腳是8個帶內(nèi)部上拉電阻的雙向i/o口,可接收輸出4個ttl門電流。當p3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入

8、,由于外部下拉為低電平,p3口將輸出電流(ill)這是由于上拉的緣故。 p3口也可作為at89c51的一些特殊功能口,如下表所示:管腳 備選功能:p3.0 rxd(串行輸入口)p3.1 txd(串行輸出口)p3.2 /int0(外部中斷0)p3.3 /int1(外部中斷1)p3.4 t0(記時器0外部輸入)p3.5 t1(記時器1外部輸入)p3.6 /wr(外部數(shù)據(jù)存儲器寫選通)p3.7 /rd(外部數(shù)據(jù)存儲器讀選通) p3口同時為閃爍編程和編程校驗接收一些控制信號。 rst:復位輸入。當振蕩器復位器件時,要保持rst腳兩個機器周期的高電平時間。 ale/prog:當訪問外部存儲器時,地址鎖存

9、允許的輸出電平用于鎖存地址的地位字節(jié)。在flash編程期間,此引腳用于輸入編程脈沖。在平時,ale端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數(shù)據(jù)存儲器時,將跳過一個ale脈沖。如想禁止ale的輸出可在sfr8eh地址上置0。此時, ale只有在執(zhí)行movx,movc指令是ale才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ale禁止,置位無效 /psen:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/psen有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/psen信

10、號將不出現(xiàn)。 /ea/vpp:當/ea保持低電平時,則在此期間外部程序存儲器(0000h-ffffh),不管是否有內(nèi)部程序存儲器。注意加密方式1時,/ea將內(nèi)部鎖定為reset;當/ea端保持高電平時,此間內(nèi)部程序存儲器。在flash編程期間,此引腳也用于施加12v編程電源(vpp)。xtal1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入xtal2:來自反向振蕩器的輸出。(2)44矩陣鍵盤圖三如圖所示,本系統(tǒng)采用44矩陣鍵盤,16個按鍵分為輸入數(shù)字鍵:0、1、2、3、4、5、6、7、8、9;功能鍵back、enter、sz、close、tcsz。矩陣鍵盤。(3)復位電路 圖四單片機的復位電路

11、非常重要,一般單片機剛開始工作時需要復位以完成內(nèi)部的初始化,而當程序出錯誤,程序跑飛,死機等非正常狀態(tài)時,更需要使單片機重新工作。時鐘電路工作后,在rest管腳上加兩個機器周期的高電平,芯片內(nèi)部開始進行初始復位如圖四。該復位電路還兼有手動復位,在通電的瞬間,在rc微分過程中,rst端出現(xiàn)正脈沖,從而使單片機復位。c3和r6的值隨時鐘頻率的變化而變化,當采用6mhz時鐘頻率時,c3=22uf,r6=2k(一般常取c3=10uf,r6=10k)當采用12mhz時鐘頻率時,一般常取c3=0.47uf,r6=1k.(4)振蕩電路 圖五時鐘電路用于產(chǎn)生單片機工作所需的時鐘信號,而時序是指令執(zhí)行中各個信號

12、的相互關系。單片機本身就如一個復雜的同步時鐘電路,為了保證單片機同步工作的實現(xiàn),電路應在唯一的時鐘信號控制下嚴格的按時序進行工作。所以時鐘電路的質(zhì)量會直接形象單片機的工作穩(wěn)定性和可靠性。本設計晶振選擇頻率為12mhz,電容選擇30pf如圖(34)。經(jīng)計算得單片機工作胡機器周期為:12(112m)=1us。(5)數(shù)碼管 圖六本設計采用兩個4位8段共陰極數(shù)碼管。由于由單片機直接驅(qū)動的直流電流不夠,數(shù)碼管亮度顯得不足,所以加上74ls373用以放大電流。(6)發(fā)光二極管led 圖七由于led使用p3口驅(qū)動 3.元器件列表元器件規(guī)格/型號數(shù)量四位八段共陰數(shù)碼管3461afr1-b102電阻4.7k8電

13、阻5108電阻1k2電解電容0.47uf/50v1瓷片電容30pf2單片機at89c511驅(qū)動芯片74ls3731三.系統(tǒng)軟件設計開始初始化開鎖修改密碼正確輸入舊密碼開鎖出錯報警原密碼相同返回設新密碼1.主程序流程圖 n y n y 圖八2.鍵功能程序流程圖如圖鍵功能程序鍵值=09?鍵值=開鎖?鍵值=確認?鍵值=設置? 返回密碼輸入程序確認程序設置程序開鎖程序 y n y n y n y n 圖九3.存儲單元分配30h-35h 顯示緩沖區(qū)41h-45h 輸入暫存區(qū)50h-55h 原始密碼存儲單元36h 臨時單元,存儲位碼內(nèi)容37h、39h 在按鍵子程序中用于內(nèi)外循環(huán)計數(shù)38h 按鍵子程序存放查

14、表后得到的編碼3ah 臨時單元,存放逐行開的編碼3bh 密碼錯誤次數(shù)計數(shù)器40h 在按鍵子程序中存放鍵盤的值r0 在顯示子程序中作顯示緩沖區(qū)的指針r2 數(shù)字鍵輸入次數(shù)計數(shù)器r4 在中斷中作計數(shù)器r5、r6 延時子程序循環(huán)計數(shù)器r7 顯示子程序六個數(shù)碼管逐個顯示計數(shù)器20h.0=1 密碼正確標志位20h.1=1 設置鍵按下標志位20h.2=1 當前輸入的是新密碼標志位20h.3=1 密碼三次錯誤報警開啟標志位源程序 ;主程序org 0000hajmp startorg 000bhajmp distorg 0030hstart:mov tmod, #01hmov th0, #3chmov tl0,

15、 #0b0hsetb easetb et0 acall xscsh ;顯示緩沖區(qū)初始化顯示6個橫線acall cshmov 3bh, #0mov 50h, #1mov 51h ,#2mov 52h, #3mov 53h, #4mov 54h, #5mov 55h,#6 ;原始密碼設置為123456loop: acall dispacall ajajmp loop;顯示子程序disp:mov r7, #6mov r0, #30hmov dptr, #tabmov 36h, #01hloop1:mov a,r0movc a, a+dptrmov p0, amov p2, 36hacall dela

16、yinc r0mov a, 36hrl amov 36h,adjnz r7,loop1ret;按鍵判斷子程序,4*4循環(huán) aj:mov p1, #0f0hmov a, p1cjne a, #0f0h, d1ajmp d16 d1:acall dispmov a, p1cjne a, #0f0h, d2ajmp d16 d2:mov 3ah, #0fehmov 40h, #0mov dptr, #dabmov 39h, #4 d3:mov 37h, #4mov p1, 3ah d4:mov a, 40hmovc a, a+dptrmov 38h, amov a, p1cjne a, 38h, d

17、5ajmp d14 d5:inc 40hdjnz 37h, d4mov a, 3ahrl amov 3ah, adjnz 39h, d3sjmp d16 d14:acall pd d15:acall dispmov p1, #0f0hmov a,p1cjne a, #0f0h, d15d16:ret;按鍵功能子程序 pd:mov a, 40hcjne a,#0,f1acall dinajmp f16 f1:cjne a, #1, f2acall dinajmp f16 f2:cjne a, #2, f3acall dinajmp f16 f3:cjne a, #3, f4acall dinaj

18、mp f16 f4:cjne a, #4, f5acall dinajmp f16 f5:cjne a, #5, f6acall dinajmp f16 f6:cjne a, #6, f7acall dinajmp f16 f7:cjne a, #7,f8acall dinajmp f16 f8:cjne a, #8, f9acall dinajmp f16 f9:cjne a, #9, f10acall dinajmp f16 f10: cjne a, #10, f11acall backajmp f16 f11:cjne a, #11, f12acall enterajmp f16 f12

19、:cjne a, #12, f13acall szajmp f16 f13:cjne a, #13, f14acall closeajmp f16 f14:cjne a, #14, f15acall tszajmp f16 f15:cjne a,#15,f16 f16:ret;數(shù)字鍵輸入子程序 din:jb 20h.3, f21 ;定時開始,按鍵不起作用cjne r2, #6, f20 ;已輸入六個數(shù),數(shù)字鍵無效ajmp f21 f20: inc r2;輸入數(shù)字個數(shù)+1mov 35h, 34hmov 34h, 33hmov 33h, 32hmov 32h, 31hmov 31h, 30hmov

20、 30h, 40h f21:ret;退格鍵子程序 back:jb 20h.3, l1 ;定時開始,按鍵不起作用cjne r2, #0, l0;有數(shù)字輸入,按鍵起作用ajmp l1 l0:dec r2mov 30h, 31hmov 31h, 32hmov 32h, 33hmov 33h, 34hmov 34h, 35hmov 35h, #17 l1:ret;確定鍵輸入子程序 enter:jb 20h.3, l5 ;定時開始,按鍵不起作用cjne r2, #6, l5 ;數(shù)字輸入不滿6個,按鍵無效mov r2, #0;可以重新輸入數(shù)字mov 41h, 30h ;輸入數(shù)字存入輸入暫存區(qū)mov 42h

21、, 31hmov 43h, 32hmov 44h, 33hmov 45h, 34hmov 46h, 35hacall xscshjnb 20h.2,d6;判斷當前是否為新密碼輸入acall xmm ajmp l5 d6:mov a, 41h;輸入暫存區(qū)與密碼比較cjne a, 50h, l3mov a, 42hcjne a,51h,l3mov a, 43hcjne a, 52h, l3mov a, 44hcjne a, 53h, l3mov a, 45hcjne a, 54h, l3mov a, 46hcjne a, 55h, l3mov r2, #6 ;鎖開狀態(tài),不允許輸入數(shù)字clr p3.

22、1setb p3.0setb p3.4 setb 20h.0;密碼正確標志位jb 20h.1, l2;判斷設置鍵是否按下clr 20h.2 ajmp l5 l2:setb 20h.2 ;輸入新密碼狀態(tài)標志位mov r2, #0 ;允許輸入數(shù)字ajmp l5 l3:inc 3bh;密碼錯誤次數(shù)+1mov a, 3bhcjne a, #3, l4 ;判斷密碼輸入錯誤幾次clr p3.3setb tr0;密碼輸入錯誤3次,啟動定時setb 20h.3 ;定時開始標志位ajmp l5 l4:clr p3.5clr p3.4 l5:ret;關門鍵子程序 close:jb 20h.3, l6 ;定時開始,

23、按鍵不起作用jnb 20h.0, l6 ;該按鍵只在開門狀態(tài)有效acall xscshacall csh l6: ret;設置鍵輸入子程序 sz:jb 20h.3, l7 ;定時開始,按鍵不起作用jnb 20h.0, l7 ;該按鍵只在開門狀態(tài)有效setb 20h.1 ;設置鍵有效標志位mov r2, #0 ;按下設置鍵,允許數(shù)字輸入clr p3.2 l7: ret;退出設置鍵子程序 tsz:jb 20h.3, l8;定時開始,按鍵不起作用jnb 20h.1, l8 ;該按鍵在設置狀態(tài)有效acall xscshsetb p3.2setb p3.3setb p3.4clr 20h.1 ;退出設置

24、狀態(tài)mov r2, #6 ;回到開門狀態(tài),不允許數(shù)字輸入l8: ret;新密碼輸入子程序 xmm:mov 50h, 41hmov 51h, 42hmov 52h, 43hmov 53h, 44hmov 54h, 45hmov 55h, 46h ;clr p3.1setb p3.0setb p3.2clr 20h.2 mov r2, #6 ;開門狀態(tài),不允許數(shù)字輸入ret;顯示緩沖區(qū)初始化子程序 xscsh:mov 30h, #17mov 31h, #17mov 32h, #17mov 33h, #17mov 34h, #17mov 35h, #17ret;密碼鎖基本功能初始化 csh:mov

25、r2, #0mov r4, #200clr 20h.0clr 20h.1clr 20h.2clr 20h.3clr p3.0setb p3.1setb p3.2setb p3.3setb p3.4ret;中斷子程序 dist:mov th0, #3chmov tl0, #0b0h ;初值重裝djnz r4, l9acall xscshacall cshclr tr0 ;關中斷 l9:reti;延時子程序,延時2ms delay:mov r6, #5 d17:mov r5, #200 d18:djnz r5, d18djnz r6, d17 ret tab:db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h, 7fh, 6fh, db 77h, 7ch, 39h, 5eh, 79h, 71h, 08h, 40h, 0bfh, 086h,db 0dbh, 0cfh, 0e6h, 0edh, 0fdh, 087h, 0ffh, 0efh dab:db 0eeh, 0deh, 0beh, 7eh, 0edh, 0ddh, 0bdh, 7dh,

溫馨提示

  • 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

提交評論