![單片機(jī)課程設(shè)計(jì)電子密碼鎖設(shè)計(jì)_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-4/28/93e29772-8bf6-4a40-bf48-6b6b5412bc2d/93e29772-8bf6-4a40-bf48-6b6b5412bc2d1.gif)
![單片機(jī)課程設(shè)計(jì)電子密碼鎖設(shè)計(jì)_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-4/28/93e29772-8bf6-4a40-bf48-6b6b5412bc2d/93e29772-8bf6-4a40-bf48-6b6b5412bc2d2.gif)
![單片機(jī)課程設(shè)計(jì)電子密碼鎖設(shè)計(jì)_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-4/28/93e29772-8bf6-4a40-bf48-6b6b5412bc2d/93e29772-8bf6-4a40-bf48-6b6b5412bc2d3.gif)
![單片機(jī)課程設(shè)計(jì)電子密碼鎖設(shè)計(jì)_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-4/28/93e29772-8bf6-4a40-bf48-6b6b5412bc2d/93e29772-8bf6-4a40-bf48-6b6b5412bc2d4.gif)
![單片機(jī)課程設(shè)計(jì)電子密碼鎖設(shè)計(jì)_第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-4/28/93e29772-8bf6-4a40-bf48-6b6b5412bc2d/93e29772-8bf6-4a40-bf48-6b6b5412bc2d5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、單片機(jī)課程設(shè)計(jì)電子密碼鎖設(shè)計(jì)1引言錯(cuò)誤!未定義書簽,2系統(tǒng)設(shè)計(jì)分析錯(cuò)誤!未定義書簽。2.1總體設(shè)計(jì)框圖錯(cuò)誤!未定義書簽。2.2硬件電路設(shè)計(jì)分析錯(cuò)誤!未定義書簽。2.2.1時(shí)鐘電路設(shè)計(jì)錯(cuò)誤!未定義書簽。2.2.2復(fù)位電路設(shè)計(jì)錯(cuò)誤!未定義書簽。2.2.3矩陣鍵盤設(shè)計(jì)錯(cuò)誤!未定義書簽。2.2.4報(bào)警控制電路錯(cuò)誤!未定義書簽。2.2.5液晶顯示電路錯(cuò)誤!未定義書簽。2.3系統(tǒng)軟件設(shè)計(jì)錯(cuò)誤!未定義書簽。2.3.1初始化及按盤識(shí)別程序錯(cuò)誤!未定義書簽。2.3.2開鎖程序錯(cuò)誤!未定義書簽。2.3.3修改密碼程序錯(cuò)誤!未定義書簽。2.3.4 LCD顯示程序錯(cuò)誤!未定義書簽。2.4仿真測(cè)試結(jié)果錯(cuò)誤!未定義書簽。
2、3總結(jié)錯(cuò)誤!未定義書簽。參考文獻(xiàn)錯(cuò)誤!未定義書簽。附錄錯(cuò)誤!未定義書簽。1引言隨著科技和人們的生活水平的提高, 如何實(shí)現(xiàn)家庭防盜這一問題也變的特別的突出,傳統(tǒng)機(jī)械鎖由于構(gòu)造簡(jiǎn)單,被撬事件屢見不鮮;電子鎖由于其保密性高,使用靈活性好,安全系數(shù)高,受到了廣大用戶的青睞。單片機(jī), 亦稱單片微電腦或單片微型計(jì)算機(jī)。 它是把中央處理器 (CPU、隨機(jī)存取存儲(chǔ)器(RAM、只讀存儲(chǔ)器(ROM、輸入/輸出端口(I/0)等主要計(jì)算機(jī)功能部件都集成在一塊集成電路芯片上的微型計(jì)算機(jī)。計(jì)算機(jī)的產(chǎn)生加快了人類改造世界的步伐,可是它畢竟體積大。微計(jì)算機(jī)(單片機(jī))在這種情況下誕生了,它為我們改變了什么?縱觀我們現(xiàn)在生活的各
3、個(gè)領(lǐng)域,從導(dǎo)彈的導(dǎo)航裝置,到飛機(jī)上各種儀表的控制,從計(jì)算機(jī)的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,到工業(yè)自動(dòng)化過程的實(shí)時(shí)控制和數(shù)據(jù)處理,以及我們生活中廣泛使用的各種智能IC卡、電子寵物等,這些都離不開單片機(jī)。在單片機(jī)產(chǎn)生后,我們就將控制這些東西變?yōu)橹悄芑?,我們只需要在單片機(jī)外圍接一點(diǎn)簡(jiǎn)單的接口電路, 核心部分只是由人為的寫入程序來完成。 這樣產(chǎn)品的體積變小了,成本也降低了,長(zhǎng)期使用也不會(huì)擔(dān)心精度達(dá)不到了,且容易升級(jí)改進(jìn)。電子鎖能夠在日常生活和現(xiàn)代辦公中,住宅與辦公室的安全防范、單位的文件檔案、財(cái)務(wù)報(bào)表以及一些個(gè)人資料的保存等多種場(chǎng)合使用。大大提高了主人物資的安全性,安全能夠代替老式機(jī)械鎖。當(dāng)前使用的密碼鎖種類
4、繁多,各具特色。本文從經(jīng)濟(jì)實(shí)用的角度出發(fā),采用AT89C2051單機(jī),研制了一款具有防盜自動(dòng)報(bào)警功能的電子密碼鎖。該密碼鎖設(shè)計(jì)方法合理,簡(jiǎn)單易行,成本低,符合住宅、辦公室用鎖要求,具有一定的推廣價(jià)值。(1)系統(tǒng)設(shè)置6位密碼,密碼經(jīng)過鍵盤輸入,若密碼正確,則將鎖打開。(2)密碼由用戶自己設(shè)定,在開鎖狀態(tài)下,用戶可自行修改密碼。(3)具有自動(dòng)報(bào)警功能,系統(tǒng)工作時(shí),用戶經(jīng)過按鍵輸入6位密碼,若密碼不正確,則要求重新輸入密碼,重新輸入密碼的次數(shù)不能超過3次,若3次輸入的密碼都不正確,則發(fā)出報(bào)警信號(hào)。本課程設(shè)計(jì)以AT89C51為主控芯片,LCD1602為顯示屏,利用單片機(jī)的讀寫控制、擴(kuò)展電路等功能部件設(shè)
5、計(jì)電子密碼鎖。2系統(tǒng)設(shè)計(jì)分析2.1總體設(shè)計(jì)框圖本設(shè)計(jì)主要由單片機(jī)、矩陣鍵盤、液晶顯示器和密碼存儲(chǔ)等部分組成。其中矩陣鍵盤用于輸入數(shù)字密碼和進(jìn)行各種功能的實(shí)現(xiàn)。由用戶經(jīng)過連接單片機(jī)的矩陣鍵盤輸入密碼,后經(jīng)過單片機(jī)對(duì)用戶輸入的密碼與自己保存的密碼進(jìn)行對(duì)比,從而判斷密碼是否正確,然后控制引腳的高低電平傳到開鎖電路控制是否開鎖。系統(tǒng)整體框圖如圖2-1所示。蜂鳴器報(bào)警電路鍵盤輸入模塊圖2-1系統(tǒng)整體框圖各模塊功能如下:1 .鍵盤輸入模塊:分為密碼輸入按鍵與功能按鍵,用于完成密碼輸入功能。AT89C51LCD顯示模塊開鎖由路2 .密碼存儲(chǔ)模塊:用于完成掉電存儲(chǔ)功能,使修改的密碼斷電后仍能保存。3 .晶振電
6、路:用于單片機(jī)的起振。4 .復(fù)位電路:完成系統(tǒng)的復(fù)位。5 .LCD顯示模塊:用于完成對(duì)系統(tǒng)狀態(tài)顯示及操作提示功能。6 .開鎖電路:應(yīng)用發(fā)光二極管模擬開鎖,完成開鎖及開鎖提示。2.2硬件電路設(shè)計(jì)分析本系統(tǒng)電路由鍵盤輸入部分、密碼存儲(chǔ)部分、復(fù)位部分、顯示部分、報(bào)警部分、開鎖部分組成,根據(jù)實(shí)際情況鍵盤輸入部分選擇4X4矩陣鍵盤,顯示部分選擇字符型液晶顯示LCD1602密碼存儲(chǔ)部分選用內(nèi)部存儲(chǔ)器來完成。具原理圖如圖2-2所示。-mm明Esib.Esib.圖2-2電子密碼鎖原理圖2.2.1時(shí)鐘電路設(shè)計(jì)時(shí)鐘電路為單片機(jī)產(chǎn)生時(shí)序脈沖,單片機(jī)所有運(yùn)算與控制過程都是在統(tǒng)一的時(shí)序脈沖的驅(qū)動(dòng)下的進(jìn)行的,如果單片機(jī)的
7、時(shí)鐘電路停止工作(晶振停振),那么單片機(jī)也就停止運(yùn)行了。當(dāng)采用內(nèi)部時(shí)鐘時(shí),連接方法如下圖所示, 在晶振引腳XTAL1 (19腳) 和XTAL2 (18腳) 引腳之間接入一個(gè)12MHZ1振,兩個(gè)引腳對(duì)地分別再接入一個(gè)電容即可產(chǎn)生所需的時(shí)鐘信號(hào),電容的容量一般在幾十皮法,如33PF。如圖2-3所示。R13R13IT&TIT&TmiCTE-T-O-OR12R121CDR1CDR2.2.2復(fù)位電路設(shè)計(jì)復(fù)位是單片機(jī)的初始化操作。單片機(jī)啟運(yùn)運(yùn)行時(shí),都需要先復(fù)位,其作用是使CPlft系統(tǒng)中其它部件處于一個(gè)確定的初始狀態(tài),并從這個(gè)狀態(tài)開始工作。因而,復(fù)位是一個(gè)很重要的操作方式。但單片機(jī)本身是不
8、能自動(dòng)進(jìn)行復(fù)位的,必須配合相應(yīng)的外部電路才能實(shí)現(xiàn)。該復(fù)位電路采用按鍵電平復(fù)位式復(fù)位電路。當(dāng)單腳)腳持續(xù)出現(xiàn)24個(gè)振蕩器脈沖周期(即2個(gè)機(jī)器周期)的高電平信號(hào)將使單片機(jī)復(fù)位。也能使RS偽一段時(shí)間的高電平,從而實(shí)現(xiàn)C1C2220220口X1CRYSTALTEXThU1KTAL1ieieXTAL2XTAL2圖2-3時(shí)鐘電路片機(jī)已在運(yùn)行當(dāng)中時(shí),按下復(fù)位鍵后松開,在復(fù)位引腳RET(9上電或開關(guān)復(fù)位的操作。如圖2-4所示。圖2-4復(fù)位電路2.2.3矩陣鍵盤設(shè)計(jì)為了加強(qiáng)密碼的保密性,采用一個(gè)4X4的矩陣式鍵盤能夠任意設(shè)置用戶密碼(1-16位長(zhǎng)度),從而提高了密碼的保密性,同時(shí)也能減少與單片機(jī)接口時(shí)所占用的I
9、/O口線的數(shù)目,節(jié)省了單片機(jī)的寶貴資源,在按鍵比較多的時(shí)候,一般采用這種方法。其原理圖如圖2-5所示。圖2-5矩陣鍵盤每一行與每一列的交叉處不相同,而是經(jīng)過一個(gè)按鍵來連通,利用這種行列式矩陣結(jié)構(gòu)只需要N艮行線與M艮列線,即可組成具有 NXm按鍵的矩陣鍵盤。在這種行列式矩陣鍵盤編碼的單片機(jī)系統(tǒng)中,鍵盤處理程序首先執(zhí)行等待按鍵并確認(rèn)有無按鍵按下的程序段。當(dāng)確認(rèn)有按鍵按下后, 下一步就是要識(shí)別哪一個(gè)按鍵被按下。 對(duì)鍵的識(shí)別方法一般有兩種:一種是行掃描查詢法;另一種是速度較快的線反轉(zhuǎn)法。此系統(tǒng)中,我們采用線反轉(zhuǎn)法。首先辨別鍵盤中有無按鍵被按下,在單片機(jī)I/O口向鍵盤送全掃描字,然后讀入行線狀態(tài)來判斷。
10、具體方法是:向行線輸出全掃描字00H,把全部列線置成低電平,然后將列線的電平狀態(tài)讀入累加器A中。如果有按鍵被按下,總會(huì)有一根行線電瓶被拉至低電平從而使行線不全為1。判斷鍵盤中哪一個(gè)按鍵被按下一般是經(jīng)過將列線逐列至低電平后, 檢查行輸入狀態(tài)來實(shí)現(xiàn)的。方法是:依次給列線送低電平,然后檢查所有行線狀態(tài),如果全為1,則所按下的按鍵不在此列; 如果不全為1,則所按下的按鍵必在此列, 而且是在與零電平行線相交的交點(diǎn)上的那個(gè)按鍵。按鍵的操作面板共計(jì)10個(gè)數(shù)字鍵和6個(gè)功能鍵, 鍵盤側(cè)面還有一個(gè)微型蜂鳴器。鍵盤側(cè)面還有一個(gè)蜂鳴器,每操作一次,它便發(fā)出聲音,提示操作成功。10個(gè)數(shù)字鍵用來輸入密碼,另外6個(gè)功能鍵分
11、別是:A查看鍵、B設(shè)置新密碼鍵、C退格鍵、D返回鍵、E確認(rèn)/退出鍵和F開啟鍵。其中退格鍵的功能是當(dāng)輸入密碼錯(cuò)誤的時(shí)候, 清除前面已經(jīng)輸入的數(shù)據(jù), 重新輸入。確認(rèn)鍵的功能是確認(rèn)輸入的密碼。開啟鍵是切換到密碼輸入狀態(tài),輸密碼前需按該鍵才能開始輸入密碼。按“F”鍵啟動(dòng)進(jìn)入輸入密碼程序,按住“F”鍵不放3秒以上后進(jìn)入輸入密碼狀態(tài)。在輸入密碼狀態(tài)下,0-9數(shù)字鍵為有效鍵,有時(shí)間和次數(shù)限制功能:只有三次輸入密碼機(jī)會(huì),每次限制在10秒內(nèi)完成,輸入密碼有誤或每次輸入密碼超時(shí),則被認(rèn)為是密碼輸入錯(cuò)誤。當(dāng)3次輸入都錯(cuò)誤時(shí),程序?qū)⒎祷仄鹗紶顟B(tài)。密碼輸入正確后,繼電器吸合,表示鎖被打開。在密碼輸入正確的情況下,程序進(jìn)
12、入查看密碼和修改密碼狀態(tài),按“E”鍵退出查看密碼狀態(tài)。按“B”鍵進(jìn)入重新設(shè)置密碼狀態(tài),在輸入密碼時(shí),如發(fā)現(xiàn)輸入有誤,可按“C刪除后, 重新輸入, 按“E”確認(rèn)后, 程序退出修改密碼狀態(tài)。 按“D”鍵或等待10秒后程序退出修改密碼和查看密碼狀態(tài),回到起始狀態(tài)。程序內(nèi)定密碼為:1,送電開機(jī)時(shí),只要輸入內(nèi)定密碼便可開門,這樣可預(yù)防停電后再送電時(shí)無密碼可用。當(dāng)密碼輸入錯(cuò)誤或密碼輸入時(shí)間超過規(guī)定的時(shí)間時(shí),蜂鳴器報(bào)警。鍵盤的功能如表2-1所示。表2-1按鍵功能表按鍵鍵名功能說明0-9鍵數(shù)字鍵輸入密碼A鍵查看鍵查看密碼B鍵設(shè)置新密碼鍵設(shè)置新密碼C鍵退格鍵退格刪除D鍵返回鍵返回到開始界面E鍵確認(rèn)/退出鍵確認(rèn)/
13、退出F鍵開啟鍵開啟密碼輸入2.2.4報(bào)警控制電路該電路采用單頻音報(bào)警電路,實(shí)現(xiàn)單頻音報(bào)警的接口電路比較簡(jiǎn)單,其發(fā)音元件一般可采用壓電蜂鳴器, 當(dāng)在蜂鳴器兩引腳上加315V直流工作電壓,就能產(chǎn)生3kHZ&右的蜂鳴振蕩音響。壓電式蜂鳴器結(jié)構(gòu)簡(jiǎn)單、耗電少,更適于在單片機(jī)系統(tǒng)中應(yīng)用。壓電式蜂鳴器,約需10mA勺驅(qū)動(dòng)電流,可在某端口接上一只三極管和電阻組成的驅(qū)動(dòng)電路來驅(qū)動(dòng),P.3.1接三極管基極輸入端,當(dāng)P3.7輸出高電平“1”時(shí),三極管導(dǎo)通,蜂鳴器的通電而發(fā)音,當(dāng)P3.1輸出低電平“0”時(shí),三極管截止,蜂鳴器停止發(fā)音。其原理圖如圖2-6所示。An/,FEM13LE1rll/rll/r-UJr-
14、UJ=T&CT5-=T&CT5-Ik k圖2-6報(bào)警控制電路2.2.5液晶顯示電路本設(shè)計(jì)的顯示電路是為了給使用者以提示而設(shè)置的為了達(dá)到界面友好的目的,顯示部分由液晶顯示器LCD160取代普通的數(shù)碼管完成。開鎖時(shí),按下鍵盤上的開鎖按鍵后,利用鍵盤上的數(shù)字鍵0-9輸入密碼, 每按下一個(gè)數(shù)字鍵后在顯示器上顯示一個(gè)*,輸入多少位就顯示多少個(gè)*。當(dāng)密碼輸入完成時(shí),按下確認(rèn)鍵,如果輸入的密碼正確的話,LCD顯示“IUPUTRIGHT,單片機(jī)具中P3.0引腳會(huì)輸出低電平,使三極管T2導(dǎo)通,電磁鐵吸合,繼電器開關(guān)跳轉(zhuǎn),電子密碼鎖被打開,如果密碼不正確,LCDS示屏?xí)@示“IUPUTERROR,
15、P3.0輸出的是高電平,電子密碼鎖不能打開。經(jīng)過LCDS示屏,能夠清楚地判斷出密碼鎖所處的狀態(tài)。電路圖如圖2-7所示。圖2-7顯示電路2.3系統(tǒng)軟件設(shè)計(jì)系統(tǒng)的軟件設(shè)計(jì)采用匯編語言編碼。設(shè)計(jì)方法是先用文本編輯器編寫源碼,然后用軟件KeilC51編譯,如果沒有錯(cuò)誤,可連接生成.HEX格式的文件 (需事先在KeilC51中設(shè)置)。如果有錯(cuò)誤則無法連接,但可在生成的.OBJ文件中找到代碼錯(cuò)誤的地方,便于修改。當(dāng)然也能夠直接在Keil中編碼。生成的HEXC件是記錄文本行的ASCII文本文件,在HEXC件中,每一行是一個(gè)HEX己錄,由十六進(jìn)制數(shù)組成的機(jī)器碼或者數(shù)據(jù)常量。HEXC件經(jīng)常被用于將程序或數(shù)據(jù)傳輸
16、存儲(chǔ)到ROMEPROM大多數(shù)編程器和模擬器使用HEX文件。系統(tǒng)的主程序如圖2-8所示。由于用戶在使用系統(tǒng)的過程中,可能在任何時(shí)刻按下任何按鍵,而程序都必須對(duì)此作出正確響應(yīng)。圖2-8系統(tǒng)主流程圖2.3.2初始化及按盤識(shí)別程序如圖2-9所示,系統(tǒng)的初始化包括堆棧起始地址的設(shè)定,定時(shí)/計(jì)數(shù)器的設(shè)定,液晶顯示模式的設(shè)定,密碼緩沖區(qū)的初始化,一些自定義數(shù)據(jù)空間的初始化等操作。系統(tǒng)初始化并讀取密碼完成后,液晶顯示“PASSWORDCONTR。L,提示用戶能夠輸入密碼。此時(shí)程序即不斷測(cè)試按鍵,檢查是否有按鍵被按下。如果有,則進(jìn)行按鍵識(shí)別; 如果沒有按鍵按下, 或者按下的按鍵沒有被識(shí)別,R3賦彳10FFH,并
17、跳轉(zhuǎn)至按鍵測(cè)試。實(shí)際程序運(yùn)行時(shí),絕大部分時(shí)間都在測(cè)試按鍵,等待用戶輸入。2.3.3開鎖程序首先LCDH始化,輸入密碼,密碼正確則使開鎖電路動(dòng)作,引腳P2.3得到低電平使發(fā)光二極管燈亮, 開鎖。 開鎖程序流程圖如圖2-10所示。邛ILCD,始化_按開j啟鍵1FLCD口始化恤入密碼1確認(rèn).序Y-開鎖成功圖2-9初始化及按鍵識(shí)別流程圖圖2-10開鎖流程圖2.3.4修改密碼程序如圖2-11所示,能夠看出,改密鍵的處理流程跟開鎖鍵類似,都需檢查密碼是否正確,錯(cuò)誤的話,提示重新輸入,只有輸入密碼正確才能夠進(jìn)行改密。 然后再按更改鍵, 密碼更改程序被調(diào)用, 進(jìn)而更改密碼, 此過程,LCDB會(huì)顯示信息。圖2-
18、11修改密碼流程圖2.3.5 LCD顯示程序液晶顯示子程序在每次更新顯示內(nèi)容時(shí)都會(huì)被調(diào)用,具流程如圖2-12所示開始圖2-12LCD顯示子程序流程圖每次更新顯示內(nèi)容前,需清顯示清空LCDM先的顯示內(nèi)容,清屏指令的指令碼為01H,即將P0口賦值01H,然后寫入指令寄存器IR。LCD160要顯示的內(nèi)容是根據(jù)其控制器內(nèi)置的字符碼表,事先列出要顯示的ASCII字符串。每次送一個(gè)字符的ASCII碼入P0口,然后寫入數(shù)據(jù)寄存器DR最后將字符地址加一,LCD160會(huì)將寫入的ASCII碼對(duì)應(yīng)的字符依次顯示出來。由于顯示字符串的長(zhǎng)度不盡相同,約定每串字符以00H結(jié)尾;程序檢測(cè)到字符碼為00H時(shí),即停止寫入,返回
19、。LCDS示的內(nèi)容在下次更新前會(huì)一直保持。2.4仿真測(cè)試結(jié)果開機(jī)后,LCD160濕示如圖2-13所示,等待按鍵輸入圖2-13開機(jī)界面輸入密碼分兩個(gè)過程:首先必須開啟密碼輸入功能才能輸入密碼,按住“F”鍵3秒以上才能啟動(dòng)進(jìn)入輸入密碼程序,進(jìn)入輸入密碼狀態(tài),LCD1602a示如圖2-14所示:圖2-14輸入界面此時(shí)使用矩陣鍵盤輸入密碼,在輸入密碼狀態(tài)下,0-9為有效數(shù)字鍵。本系統(tǒng)有時(shí)間、次數(shù)限制功能,不給別人試探機(jī)會(huì):三次輸入密碼機(jī)會(huì),每次限制在10秒內(nèi)完成,輸入過程如圖2-15所示:當(dāng)密碼輸入正確后,LCfS示界面如圖2-16所示:twrtwrINPUTPASSWORDINPUTPASSWORD
20、IUPUTRIGHTIUPUTRIGHT圖2-16輸入正確的界面在輸入密碼正確的基礎(chǔ)上能夠在密碼輸入正確的情況下,程序進(jìn)入查看密碼和修改密碼狀態(tài)。按“B”鍵進(jìn)入重新設(shè)置狀態(tài),在輸入新密碼時(shí),能夠按“C鍵刪除修改,按“E”確認(rèn)后,程序退出修改密碼狀態(tài)。界面如圖2-17所示:按“A”鍵進(jìn)入查看密碼狀態(tài),LCDS示界面如圖2-18所示:圖2-18查看密碼的界面LCm到初始界面,并鎖定。如果錯(cuò)誤則LCLS示的界面如圖2-17所示:3總結(jié)課程設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí),發(fā)現(xiàn),提出,分析和解在密碼輸入錯(cuò)誤或是超過輸入時(shí)間時(shí),當(dāng)錯(cuò)誤次數(shù)為3次后,圖2-17修改密碼的界面圖2-17輸入錯(cuò)誤的界面決實(shí)際問題
21、,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對(duì)學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過程.隨著科學(xué)技術(shù)發(fā)展的日新日異,單片機(jī)已經(jīng)成為當(dāng)今計(jì)算機(jī)應(yīng)用中空前活躍的領(lǐng)域,在生活中能夠說得是無處不在。 因此作為21世紀(jì)的大學(xué)來說掌握單片機(jī)的開發(fā)技術(shù)是十分重要的。在著手本次課程設(shè)計(jì)時(shí), 經(jīng)過查閱網(wǎng)絡(luò)的資料, 再加上請(qǐng)教同學(xué)和老師,結(jié)合生活中對(duì)密碼鎖的功能特性要求,設(shè)計(jì)出了這一套電子密碼鎖系統(tǒng)的主要硬件結(jié)構(gòu)和軟件結(jié)構(gòu),基本完成了課題的要求。本次課程設(shè)計(jì)所設(shè)計(jì)的系統(tǒng)簡(jiǎn)單只能實(shí)現(xiàn)一些簡(jiǎn)單的功能,還有很多不足之處,自己所學(xué)的知識(shí)和能力有限。回顧起此次單片機(jī)課程設(shè)計(jì),至今我仍感慨頗多,的確,從選題到定稿,從理論到實(shí)踐,能夠說得是苦多于
22、甜,可是能夠?qū)W到很多很多的的東西,同時(shí)不但能夠鞏固了以前所學(xué)過的知識(shí),而且學(xué)到了很多在書本上所沒有學(xué)到過的知識(shí)。經(jīng)過這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過程中遇到問題,能夠說得是困難重重,這畢竟第一次做的,難免會(huì)遇到過各種各樣的問題,同時(shí)在設(shè)計(jì)的過程中發(fā)現(xiàn)了自己的不足之處,對(duì)以前所學(xué)過的知識(shí)理解得不夠深刻,掌握得不夠牢固,對(duì)單片機(jī)匯編語言掌握得不好,特別是外部中斷,定時(shí)/計(jì)數(shù)器和串行口,掌握的不好,應(yīng)用不熟練。經(jīng)過這次課程設(shè)計(jì)之
23、后,一定把以前所學(xué)過的知識(shí)重新溫故電子鎖是信息化時(shí)代發(fā)展的產(chǎn)物,應(yīng)時(shí)而生,我相信隨著科技的不斷發(fā)展,將來的電子鎖一定更加完美,更加人性化,更加便宜,更加安全。這次課程設(shè)計(jì)終于順利完成了,在設(shè)計(jì)中遇到了很多編程問題,經(jīng)過這次課設(shè)自己也學(xué)到了很多東西,在這一周的時(shí)間里,感謝魏明哲老師的指導(dǎo)和同學(xué)們的幫助,終于游逆而解。參考文獻(xiàn)1何立民主編,單片機(jī)中級(jí)教程,北京航空航天大學(xué)出版社。2丁元杰主編,單片機(jī)原理與應(yīng)用,機(jī)械工業(yè)出版社。3孫育才主編,MCS-51系列單片微型計(jì)算機(jī)及其應(yīng)用,東南大學(xué)出版社。附錄BEEPBITP3.1RELAYBITP3.6SEC10BIT20H.1SEC3BIT20H.2PA
24、SS_OKBIT20H.3PASS_OLDEQU30HPASS_NEWEQU37HPASS_DISEQU40H;COUNTEQU47H;50msSECEQU48H;POSEQU49HBUSYBITP0.7LCD_RSBITP2.0;LCDLCD_RWBITP2.1LCD_ENBITP2.2密碼顯存單元計(jì)數(shù)單元秒單元控制管腳定義DATAPORTEQUP0定義LCD的數(shù)據(jù)端口LCD_XEQU29HTIMESEQU2AHBUSY_CHECKBIT20H.0ORG0000HAJMPMAINORG000BHLJMPTIMER0ORG0050HMAIN:MOVSP,#60H;MOVP0,#0FFHMOVP
25、1,#0FFHMOVP2,#0FFHMOVTMOD,#01H;MOVTH0,#4CH;50msMOVTL0,#00HSETBET0設(shè)置堆棧指針工作于方式1定時(shí)常數(shù)SETBEAMOVPASS_OLD+1,#01HMOVPASS_OLD+2,#01HMOVPASS_OLD+3,#01HMOVPASS_OLD+4,#01HMOVPASS_OLD+5,#01HACALLLCD_INIT;LCD初始化MAIN1:CLRTR0CLRSEC3CLRSEC10CLRPASS_OKMOVCOUNT,#00HMOVSEC,#00HSETBRELAY;繼電器釋放ACALLMENU1ACALLSTART_INMAIN
26、2:MOVPASS_OLD,#01H內(nèi)定密碼值MOVR4,#03H;3次輸入密碼機(jī)會(huì)ACALLPASS_INACALLPASS_COMPMOVR5,#100;延時(shí)1sACALLDELAYJBPASS_OK,MAIN3DJNZR4,MAIN2AJMPMAIN1MAIN3:ACALLPASS_LOOKACALLCHANGE_PASSJBSEC10,MAIN4ACALLKEY_SCANCJNEA,#0DH,MAIN3;判是否D按下?MAIN4:ACALLBEEP_BLAJMPMAIN1;菜單1顯示子程序(PASSWORDCONTROL);(LEARNBYHEART)MENU1:MOVB,#00HMO
27、VDPTR,#INFO1;指針指到信息1ACALLWSTRING1MOVB,#00HMOVDPTR,#INFO4;指針指到信息4ACALLW_STRING2RET;菜單2顯示子程序(INPUTPASSWORD);(PASSWORD)MENU2:MOVB,#00HMOVDPTR,#INFO3;指針指到信息3ACALLW_STRING1MOVB,#00HMOVDPTR,#INFO2;指針指到信息2ACALLW_STRING2RET;菜單3顯示子程序(LOOKPASSWORD);(PASSWORD)MENU3:MOVB,#00HMOVDPTR,#INFO7;指針指到信息7ACALLWSTRING1M
28、OVDPTR,#INFO2;指針指到信息2ACALLW_STRING2RET;菜單4顯示子程序(CHANGEPASSWORD);(PASSWORD)MENU4:MOVB,#00HMOVDPTR,#INFO8;指針指到信息1ACALLW_STRING1MOVB,#00HMOVDPTR,#INFO2;指針指到信息2ACALLW_STRING2RET;信息字符串表INFO1:DBPASSWORDCONTROL,0INFO2:DBPASSWORD,0INFO3:DBINPUTPASSWORD,0INFO4:DBLEARNBYHEART,0INFO5:DBIUPUTRIGHT,0INFO6:DBIUPU
29、TERROR,0INFO7:DBLOOKPASSWORD,0INFO8:DBRESETPASSWORD,0;矩陣鍵盤鍵值查找程序;鍵值存入R3KEY_SCAN:MOVP1,#0F0H;NOPMOVA,P1;ANLA,#0F0H;MOVB,A;MOVP1,#0FH;NOPMOVA,P1;ANLA,#0FH;ORLA,B;CJNEA,#0FFH,KEY_IN1;0FFHAJMPKEY_ENDKEY_IN1:MOVB,A;MOVDPTR,#KEYTABLE;MOVR3,#0FFH;KEY_IN2:置列線為0,行線為1讀入P1口狀態(tài)保留高4位保存數(shù)據(jù)置列線為1,行線為0讀入P1口狀態(tài)保留低4位高四位與
30、低四位重新組合保存鍵值置鍵編碼表首址MOVA,R3MOVCA,A+DPTRCJNEA,B,KEY_IN3;MOVA,R3;AJMPKEY_ENDKEY_IN3:CJNEA,#00H,KEY_IN2KEY_END:RET;鍵編碼表KEYTABLE:DB0EEH,0EDH,0EBH,0E7H,0DEHDB0DDH,0DBH,0D7H,0BEH,0BDHDB0BBH,0B7H,07EH,07DH,07BH密碼顯本子程序PASS_PLAY:MOVR0,#PASS_OLDMOVR2,#06H;INCR3查表次數(shù)加1取出鍵碼比較找到,取次數(shù)值繼續(xù)查;00H為結(jié)束碼DB 077H,00H;00H為結(jié)束碼存放
31、數(shù)據(jù)首地址顯示6組數(shù)據(jù)MOVLCD_X,#09HACALLSETX2P_PLAY:MOVA,R0;ADDA,#30H;ACALLWDATA;INCR0;DJNZR2,P_PLAYRET;啟動(dòng)輸入子程序;按F鍵大于3秒,方可退出此程序START_IN:CLRSEC3;MOVCOUNT,#00HMOVSEC,#00HS_IN1:ACALLKEY_SCANCJNEA,#0FH,S_IN1;FSETBTR0;S_IN2:ACALLKEY_SCANCJNEA,#0FH,S_IN3;F第二行取顯示數(shù)據(jù)轉(zhuǎn)換為ASCII碼寫數(shù)據(jù),顯示修改存放數(shù)據(jù)地址清3s標(biāo)志位清中斷計(jì)數(shù)單元鍵啟動(dòng)TIMER0中斷鍵JNBSE
32、C3,S_IN2沒有達(dá)到3s,轉(zhuǎn)移CLRTR0停止TIMER0中斷CLRSEC3;MOVSEC,#00HMOVCOUNT,#00HACALLMENU2ACALLBEEP_BLAJMPS_ENDS_IN3:CLRTR0;CLRSEC3;MOVCOUNT,#00HMOVSEC,#00HAJMPS_IN1S_END:RET;密碼輸入子程序PASS_IN:ACALLMENU2MOVR0,#PASS_NEWMOVR2,#06H;6MOVLCD_X,#09H;ACALLSET_X2清3s標(biāo)志位清中斷計(jì)數(shù)單元停止TIMER0中斷清3s標(biāo)志位清中斷計(jì)數(shù)單元存放輸入密碼單元首地址位密碼確定顯示首位置CLRSEC
33、10MOVSEC,#00HMOVCOUNT,#00HSETBTR0P_IN1:JBSEC10,P_ENDACALLKEY_SCANCJNEA,#0FFH,P_IN2AJMPP_IN1P_IN2:ACALLKEY_SCANCJNEA,#0AH,P_IN3;P_IN3:JNCP_IN1;=MOVA,R3;MOVR0,A;INCR0MOVA,#2AH;ACALLWDATA;ACALLBEEP_BL;DJNZR2,P_IN1清10s標(biāo)志位清秒計(jì)數(shù)單元清中斷計(jì)數(shù)單元判是否有鍵按下?數(shù)字鍵0-9有效時(shí),C=0取鍵值保存輸入密碼值轉(zhuǎn)換為ASCII碼顯示輸入密碼的位數(shù)蜂鳴器響一聲PEND:CLRTR0MOVS
34、EC,#00HCLRSEC10MOVCOUNT,#00HRET;修改密碼子程序CHANGE_PASS:ACALLKEY_SCANCJNEA,#0BH,CH_END;CLRTR0ACALLMENU4MOVR0,#PASS_OLD;MOVR2,#06H;6MOVPOS,#09H;ACALLBEEP_BLCH_IN1:ACALLKEY_SCANCJNEA,#0FFH,CH_IN2;AJMPCH_IN1CH_IN2:ACALLKEYSCAN清秒計(jì)數(shù)單元清10s標(biāo)志位清中斷計(jì)數(shù)單元判B鍵是否按下?存放輸入密碼單元首地址位密碼確定顯示首位置判是否有鍵按下?CJNEA,#0AH,CH_IN3數(shù)字鍵0-9有效
35、CH_IN3:JNCCH_IN4;=MOVLCD_X,POS;ACALLSET_X2MOVA,R3;MOVR0,A;MOVA,#2AH;ACALLWDATA;ACALLBEEP_BL;INCPOSINCR0DJNZR2,CH_IN1;6AJMPCH_IN6CH_IN4:ACALLKEY_SCANCJNEA,#0CH,CH_IN1;CMOVA,POSCJNEA,#09H,CH_IN5;AJMPCH_IN1CH_IN5:DECPOS時(shí),C=0確定顯示位置取鍵值保存輸入密碼值轉(zhuǎn)換為ASCII碼顯示輸入密碼的位數(shù)蜂鳴器響一聲位密碼是否輸入完?修改鍵檢測(cè)POS是否到最小值DECR0INCR2MOVLCD
36、_X,POSACALLSET_X2MOVA,#2DH;ACALLWDATAACALLBEEP_BL;AJMPCH_IN1CH_IN6:ACALLKEY_SCANCJNEA,#0EH,CH_IN7;EACALLMENU1ACALLBEEP_BLAJMPCH_ENDCH_IN7:CJNEA,#0CH,CH_IN6;CAJMPCH_IN5CH_END:SETBTR0RET;密碼比較子程序顯木一蜂鳴器響一聲鍵確定退出鍵返回修改;比較正確,置密碼正確標(biāo)志位。;比較錯(cuò)誤,清密碼正確標(biāo)志位。PASS_COMP:MOVR2,#06H;MOVR0,#PASS_OLDMOVR1,#PASS_NEWP_COMP0:
37、MOVA,R0MOVB,R1CJNEA,B,P_COMP1INCR0INCR1DJNZR2,P_COMP0SETBPASS_OK;CLRRELAY;MOVB,#00HMOVDPTR,#INFO5;ACALLW_STRING2MOVSEC,#00H;CLRSEC10MOVCOUNT,#00HSETBTR0比較6組數(shù)據(jù)置密碼正確標(biāo)志位繼電器吸合指針指到信息5清秒計(jì)數(shù)單元清10s標(biāo)志位清中斷計(jì)數(shù)單元RETP_COMP1:CLRPASS_OK;MOVB,#00HMOVDPTR,#INFO6;ACALLW_STRING2RET;查看密碼子程序PASS_LOOK:ACALLKEY_SCANCJNEA,#0
38、AH,LOOK_END;AACALLMENU3CLRTR0ACALLPASS_PLAYACALLBEEP_BLLOOK_1:ACALLKEY_SCANCJNEA,#0EH,LOOK_1;EACALLMENU1ACALLBEEP_BLSETBTR0清密碼正確標(biāo)志位指針指到信息6鍵查看鍵退出LOOK_END:RET;蜂鳴器響一聲子程序BEEP_BL:MOVR6,#200BL1:ACALLBL2CPLBEEP;蜂鳴器取反產(chǎn)生驅(qū)動(dòng)脈沖DJNZR6,BL1SETBBEEP;關(guān)閉蜂鳴器MOVR5,#15ACALLDELAYRETBL2:MOVR7,#200BL3:NOPDJNZR7,BL3RET;定時(shí)器0
39、計(jì)時(shí)中斷子程序TIMER0:PUSHACCPUSHPSWMOVTH0,#4CHINCCOUNTMOVA,COUNT;50ms計(jì)數(shù)值力口1CJNEA,#20,T0_ENDMOVCOUNT,#0INCSEC;MOVA,SECCJNEA,#03H,T0_0SETBSEC3;T0_0:CJNEA,#10,T0_ENDMOVSEC,#0;SETBSEC10;T0_END:POPPSWPOPACCRETI延時(shí)R5*10MS子程序DELAY:MOVR6,#50MOVTL0,#00H;50ms定時(shí)常數(shù)秒加1置3s標(biāo)志位是否到10秒?秒單元清0置10s標(biāo)志位DEL1:MOVR7,#93DEL2:DJNZR7,D
40、EL2DJNZR6,DEL1DJNZR5,DELAYRET;延時(shí)5MS子程序DELAY1:MOVR6,#25DEL3:MOVR7,#93DEL4:DJNZR7,DEL4DJNZR6,DEL3RET;檢查L(zhǎng)CD忙狀態(tài);busy為1時(shí),忙,等待。busy為0時(shí),閑,可寫指令與數(shù)據(jù)LCD_BUSY:MOVDATAPORT,#0FFHBUSY_1:CLRLCD_RSSETBLCD_RWCLRLCD_ENNOPSETBLCD_ENJBBUSY,BUSY_1CLRLCD_ENRET;LCD寫命令子程序;LCD_RS=L,LCD_RW=L,D0-D曲令碼,=高脈沖WCOM:JNBBUSY_CHECK,WCOM_1ACA
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 校園文化建設(shè)與學(xué)校發(fā)展戰(zhàn)略
- 行為習(xí)慣與孩子未來家庭教育的長(zhǎng)遠(yuǎn)影響
- DB6103T 80-2025獼猴桃園覆土栽培香菇技術(shù)規(guī)范
- 不可撤銷物業(yè)服務(wù)合同范例
- 中保人壽幸福家園保險(xiǎn)合同范本(A)
- 臨街旺鋪?zhàn)赓U合同樣本
- 二手車買賣合同(權(quán)威版)
- 業(yè)務(wù)拓展與培訓(xùn)合作合同
- 上海市物流運(yùn)輸合同范本
- 個(gè)人信用擔(dān)保貸款合同范文
- 美容衛(wèi)生管理制度
- 銅陵2025年安徽銅陵郊區(qū)周潭鎮(zhèn)招聘鄉(xiāng)村振興專干和村級(jí)后備干部5人筆試歷年參考題庫(kù)附帶答案詳解
- 2025年紀(jì)檢辦公室工作計(jì)劃范文
- 七年級(jí)上學(xué)期歷史期末考試模擬卷02(原卷版)
- 華北理工兒童口腔醫(yī)學(xué)教案06兒童咬合誘導(dǎo)
- 中國(guó)建筑項(xiàng)目管理表格
- 高一3班第一次月考總結(jié)班會(huì)課件
- 公共政策分析導(dǎo)論教學(xué)課件匯總完整版電子教案
- 我國(guó)油菜生產(chǎn)機(jī)械化技術(shù)(-119)
- 大跨度斜拉橋上部結(jié)構(gòu)施工技術(shù)(圖文并茂)
- 論人口模型論文計(jì)劃生育政策調(diào)整對(duì)人口數(shù)量結(jié)構(gòu)及其影響
評(píng)論
0/150
提交評(píng)論