密碼鎖資料.rar
(2.05 MB, 下載次數: 688)
課題設計的目的以及主要內容
社會在不斷發展、物質生活水平在不斷的提高,人們對自己的生活水平也提出了更高的要求,尤其是在安全隱私方面。因此洗安全易用的密碼鎖又顯得極其重要,而且它已經成為人們日常生活的重要組成部分。
本系統設計了一款性價比較高的基于LCD1602和單片機為控制核心的電子密碼鎖系統。
本課題設計功能主要包括如下幾個方面:
1. 按下“存包”按鍵生成隨機的四位數密碼;
2. 按下“取包”按鍵后,進行密碼輸入并自動校驗;
3. 密碼校驗時對錯與否,通過不同的LED指示燈來指示;
4. LCD實時顯示相關信息;
5. 用protues仿真軟件實現上述功能。
二、系統硬件設計
為了達到系統要求,硬件應該包括如下部分:
單片機最小系統,最小系統主要包括時鐘電路和復位電路;
LCD電路,為了能直觀的看到生成的密碼,以及用戶輸入的密碼,就需要一個顯示設備,而在單片機系統中,比較常見的顯示設備就是LED和LCD,相比較于LED來說,LCD顯示效果更加美觀,更加真實;
按鍵電路,為了做到密碼的提取以及校驗,就需要有人機交互的操作,本設計采用了機械按鍵充當此功能。
LED電路,本設計有紅綠兩個LED,當密碼校驗正確時,綠燈亮;相反當密碼校驗錯誤時,紅燈亮。
繼電器電路,為了模擬鎖的開和關,用到了繼電器的開關來模擬。
系統整體框圖如圖2-1所示
本課題設計的電熱洗腳盆溫控系統主控制芯片選型為STC89C52單片機,其特點如下:
1.STC89C52單片機簡介目前,不管是在工業,農業還是消費電子領域,51系列單片機的身影隨處可見,例如,我們可以利用單片機來檢測溫濕度,來檢測空氣質量,我們日常使用的電子時鐘等等都能很方便的使用51單片機來實現。STC89C52單片機是深圳宏晶科技有限公司生產的一種單片機,它是在一小塊很小的集成電路上集成了一個微型計算機。每一個單片機的組成都離不開如下幾種組成成分:
CPU:51系列單片機內部集成的CPU都是8位的;
IO口;數據輸入輸出的并行口,51單片機有32個IO口,分別是P0,P1,P2,P3,每種有8條數據線;
ROM:片內程序存儲器,它主要用來存儲程序的,一般大小為4K;
RAM:片內數據存儲器,它主要用來存儲臨時數據,一般大小為512K;
中斷源;它主要用來引發中斷的,有5個中斷源;
定時器:它主要用來計數定時用,51單片機有2個,分別是定時器0和定時器1;
2.STC89C52單片機時序任何一個單片機的運行都離不開時鐘,時鐘就好比是人的心臟,只有心臟起搏,系統才能運轉,那么單片機的時鐘信號是由晶振產生的,而晶振又分為外部晶振和內部晶振,一般來說,采用外部晶振的穩定性要高很多,有了晶振,那個系統的各個部分就在這個晶振所產生的時鐘下有條不紊的按自己的節拍工作了。
51單片機的時序可以分成如下幾個名詞:節拍,震蕩周期,機器周期,他們的關系為,一個機器周期分為12個震蕩周期,而一個震蕩周期又分成6個節拍。
一個CPU的運算分為算術運算和邏輯運算,以及運算完成后數據的傳輸,比如從寄存器到寄存器的傳輸。那么大部分情況下,運算操作發送在P1器件,而傳輸操作發生在P2期間。并且對于不同類型的指令,其時序也是不一樣的,大致分為如下:
對于單周期指令,當指令操作碼讀人指令寄存器時,使從S1P2開始執行指令。如果是雙字節指令,則在同一機器周期的s4讀入第二字節。
3.STC89C52單片機引腳介紹STC89C52單片機總共有40個引腳,其中有32個IO口,分別是P0(8個),P1(8個),P2(8個)和P3(8個),還有8個專用引腳,現在將他們分成四個大部分分別介紹如下:
(1)電源引腳Vcc和Vss
Vcc(40腳):接+5V電源正端;
Vss(20腳):接+5V電源正端。
XTAL1是單片機的第19腳,XTAL2是單片機的第18腳,這兩個引腳就是用來接晶體振蕩器的,當我們不用外部晶體振蕩器,只是使用內部振蕩器的話,這兩個管腳就懸空;當我們接外部晶體振蕩器時,它又有兩種接法,最常用的接法就是這兩個腳分別接上晶體振蕩器的兩個腳(沒有極性之分),然后分別并聯一個電容到地(電容的大小根據晶振大小來定);另外一種接法就是,XTAL1接晶體振蕩器的一個引腳,晶振的另外一個接地,而XTAL2就懸空或接地。
單片機總共有四種狀態的控制信號引腳,它們分別是 RST,EA,PSEN以及ALE。
(a).RST/VPD:該引腳是單片機的第九腳,從名稱就可以看出來它具有兩個功能,第一個就是復位功能(RST即為RESET的意思,復位),當單片機上電后,晶體振蕩器開始工作之時,如果該引腳是出現連續兩個震蕩周期的高電平,就能正常的復位,也就是單片機進入工作狀態,否則,復位不成功,單片機可能無法工作;第二個功能就是掉電保護功能,它可以接上備用電源以防止VCC發生故障。
(b).ALE/ P :該引腳是單片機的第三十腳,當內部程序空間不夠用,需要外接外部程序存儲器時,該引腳便派上了用場,不接時該引腳恒定的接高電平,接外部的時候,該引腳接低電平。
(c).PSEN:該引腳是單片機的第二十九腳,當接了外部程序存儲器的時候,該引腳就是用來決定是否開始讀取外部存儲器的,當該引腳為低電平時,單片機就可以讀取外部存儲器,相反,當它是高電平的時候,就禁止讀取。同時,此引腳對于外部數據存儲器的讀寫不起作用。
(d).EA/Vpp:該引腳是單片機的第三十一腳,當內部程序空間不夠用,需要外接外部程序存儲器時,該引腳便派上了用場,不接時該引腳恒定的接高電平,接外部的時候,該引腳接低電平。
(4)IO口P0、P1、P2及P3
(a).P0口:該組引腳有8跟數據線,分別是P0.0到P0.7,位于單片機的第三十九腳到第二十二腳。該引腳主要有三個功能,正常情況下,他作為普通的IO口,數據的輸入跟輸出;當接了外部存儲器的時候,它作為地址總線的高8位;同時,如果單片機內部有EEPROM,對該EEPROM讀寫操作的時候,也要從P0口輸入或輸出指令。
(b).P1口:該組引腳有8跟數據線,分別是P1.0到P1.7,位于單片機的第一腳到第八腳。該引腳主要有兩個功能,正常情況下,他作為普通的IO口,數據的輸入跟輸出;另外,對于本設計使用的STC89C52單片機來說,P1.0和P1.1還有另外的功能:作為兩個計數脈沖輸入端,可以統計脈沖的個數,此舉很多應用在測試頻率、速度的場合。
(c).P2口:該組引腳有8跟數據線,分別是P2.0到P2.7,位于單片機的第二十一腳到第二十八腳。該引腳主要有兩個功能,正常情況下,他作為普通的IO口,數據的輸入跟輸出;當接有外部程序存儲器時,P2口用于地址總線的高8位。
(d).P3口(10腳~17腳):該組引腳有8跟數據線,分別是P2.0到P2.7,位于單片機的第十腳到第十七腳。該引腳主要有兩個功能,正常情況下,他作為普通的IO口,數據的輸入跟輸出;同時它的每個口都有第二功能。P3口的第2功能見下表
表1 單片機P3.0管腳含義
引腳 | 第2功能 |
P3.0 | RXD(串行口輸入端0) |
P3.1 | TXD(串行口輸出端) |
P3.2 | INT0(部中斷0請求輸入端,低電平有效) |
P3.3 | INT1(中斷1請求輸入端,低電平有效) |
P3.4 | T0(時器/計數器0計數脈沖端) |
P3.5 | T1(時器/計數器1數脈沖端) |
P3.6 | WR(部數據存儲器寫選通信號輸出端,低電平有效) |
P3.7 | RD(部數據存儲器讀選通信號輸出端,低電平有效) |
綜上所述,STC89C52單片機的引腳作用可歸納為以下兩點:
1).可以用少數幾根數據線實現多樣化的功能;
2).IO口除了作為通用的數據輸入輸出外,還有地址總線和數據總線分時復用的功能。
任何一個處理器,都有與之對應的最小系統,該系統能保證處理器啟動起來,并能夠連續不斷的正常運轉下去,除此之外并沒有其他多余的功能,所以成為最小系統,對51單片機來說,最小系統一般包括:單片機、復位電路和晶振電路。最小系統如圖2-2所示。
電阻和電容組成的電路經常用在單片機的復位電路中,它的工作過程如下,當系統一上電時,RST引腳瞬間將會出現高電平,同時,電阻和電容之積(RC)決定了高電平的持續時間,51單片機對于此時間的要求是2個機器周期以上。所以,適當組合RC的取值就可以保證可靠的復位,一般來說,C 取10UF,R取10K,也可以去其他參數值,原則就是要讓RC組合可以在RST腳產生不少于2個機器周期的高電平,保證可靠的復位。
晶振電路中的晶振采用典型的11.0592M ,因為這個頻率的晶振可以產生更準確的波特率,用于RS232通訊的場合,它經過內部12分頻后,產生11.0592/12M的機器頻率。同時,為了保證晶振能夠穩定可靠的起振,一般還需要在晶振兩端分別并接兩個電容,電容取值一般在10~47pf之間
另外注意,單片機的第31腳是用來決定上電時是從內部ROM讀取數據還是從外部ROM讀取數據,當為高電平時,表示從內部ROM讀取;當為低電平時,表示從外部ROM,本設計中,考慮到實際程序的大小不是特別大,無需外界ROM,所以就將該引腳接了高電平。
2.4 LCD選型
隨著人機界面的越來越人性化,液晶屏應運而生,十九世紀八十年代,奧地利科學家賴倪次在一種植物身上提取出了看起來很奇怪的物質,它既不是液態的,也不是固態的,徘徊于兩者之間,但是他即具有固態的特征,也有液態的特征,所以,當時的人們就把它叫做成液態的晶體,這就是當今液晶的前身。
市面上的LCD顯示屏可謂是林林總總,大型的有拼接墻,數十寸的等等,從才子上來分,有TFT、LED等等,但對于單片機系統來說,常用的LCD有兩種:分別是1602和12864型號。
12864的意思就是該LCD的點陣是128行*64列,總共有8192個像素點, 控制器AIP31020。可顯示漢字及圖形, 內置8192 個中文漢字 (16X16 點陣)、 128 個字符 (8X16點陣)及64X256點陣顯示RAM(GDRAM)。可與CPU 直接接口,提供兩種界面來連接微處理機:8-位并行及串行兩種連接方式。具有多種功能:光標顯示、畫面移位、睡眠模式等。其硬件結構如圖2-3所示。
圖 2-3 12864內部結構
而1602的意思就是該LCD的點陣是16行*2列,總共有32個像素點,1602LCD分為帶背光和不帶背光兩種,帶背光的用起來就比較方便,但缺點就是比較厚,而不帶背光的需要自己加一個背光片,不方便使用,但他比較輕薄。
編號 | 符號 | 引腳說明 | 編號 | 符號 | 引腳說明 |
1 | VSS | 電源地 | 9 | D2 | 數據 |
2 | VDD | 電源正極 | 10 | D3 | 數據 |
3 | VL | 顯示偏壓 | 11 | D4 | 數據 |
4 | RS | 數據/命令選擇 | 12 | D5 | 數據 |
5 | R/W | 讀寫/選擇 | 13 | D6 | 數據 |
6 | E | 使能 | 14 | D7 | 數據 |
7 | D0 | 數據 | 15 | BLA | 背光源正極 |
8 | D1 | 數據 | 16 | BLK | 背光源負極 |
第3腳:VL為液晶顯示器對比度調整端,,當該腳接5V時,由于電壓差幾乎為0,所以對比度最弱,幾乎看不見顯示內容,該腳接地時,由于電壓差幾乎為最大,對比度最高,有可能會產生“鬼影”,因此為了是顯示有個舒適的感覺,使用時可以通過一個10K的電位器調整對比度,根據不同的外界光線靈活的調整亮度。
RS | RW | 操作 |
0 | 0 | 寫入指令或者顯示地址 |
0 | 1 | 讀忙信號 |
1 | 0 | 寫入數據 |
1 | 1 | 讀取數據 |
LCD的8個數據口跟單片機的P1的8個口相連,控制信號RS接P30,RW接P31以及E接P32。
2.6 LED提示電路本設計 用到了一個紅色LED和一個綠色LED來指示輸入密碼的正確與否。每個LED的正極通過一個限流電阻接到電源正極,然后負極分別接到P33和P34,當IO口為高電平時,燈熄滅,當LED為低電平時,燈亮起來。圖2-5是其連線圖。
圖2-5 LED提示燈電路
2.7 繼電器電路
本設計用繼電器來模擬鎖的動作,當繼電器吸合表示開始鎖關閉,當繼電器斷開表示斷開,繼電器的控制引腳接在單片機的P37口,高電平讓其吸合,低電平讓其斷開,圖2-6是其連接圖。
圖2-6 繼電器跟單片機連接圖
2.8 按鍵電路
為了滿足輸入功能的需要,本設計采用了14個按鍵,如果全部接成獨立式按鍵,那么就需要14個IO口,資源占用過多,所以這里采用了矩陣式4*4規格的鍵盤,多余兩個按鍵做備用。它總共占用8個IO口,分別接到了P0口上,由于P0口的特殊結構,必須接一個上拉電阻,才能輸出高電平。
鍵盤電路如圖2-7所示。
系統的軟件主要是采用單片機特定的C語言--C51,對單片機進行編程實現所有功能。主程序對模塊進行初始化,而后調用按鍵掃描程序、顯示子程序、LED子程序以繼電器模塊程序。圖3-1是其主程序流程圖。
圖3-1 主流程圖
主程序里面首先對單片機的硬件資源進行初始化,硬件資源的初始化包括:
基本的資源初始化完畢后,程序然后進入了一個while(1)死循環,這樣保證了程序不斷的運行,在該循環中,多個任務逐一按順序的執行。
從時序圖可以看出,首先判斷RS和RW,從硬件那一章我們得知,RS代表了是指令的操作(高電平)還是數據的操作(低電平),而RW代表了是往LCD里面寫數據(高電平)還是從LCD里面讀出數據(低電平),所以圖3-5就表示讀時序,而圖3-6就表示寫時序。
然后再通過控制器把使能端拉低(通過上面一章,我們知道此管腳為高表示禁用該芯片,此管腳為低表示使能該芯片),拉低后需要延時一段時間,至于要不要 延時,延時的時間多長,對于51單片機來說,其實關系都不大,不影響其使用。
以上兩步準備操作完成后,就可以開始讀和寫了,也就是從這時候開始數據或地址信號就被送上了數據總線,數據送完之后,然后又將使能端拉高(禁止芯片),當然,這中間需要一個建立時間的延遲,改時間最短為40納秒。然后再將使能端拉低(啟用),就可以將剛才數據總線上的數據送入LCD了。
根據上面描述的時序,可以得出如圖3-4所示的流程圖
16個按鍵接在了P0的8個口,其中P00-P03為四行,P04-P07為四列,本設計采用的是行掃描法,也就是說每次給四行當中的一行輸出低電平(其他三行為高電平),然后再讀取四列的值,如果發現四列全部為高電平,那么就表示沒有按鍵按下,如果有某一列為低電平,就表示有按鍵按下了。
其工作流程圖如3-5所示
圖3-5 按鍵流程圖
3.4 LED指示燈流程圖在密碼校驗過程中,如果密碼正確,就亮起綠燈,如果密碼校驗錯誤,就讓紅燈亮起。流程圖如3-6所示
圖3-6 LED指示燈流程圖
參考文獻
[1] 李廣弟,朱月秀,王秀山.《單片機基礎》北京航空航天大學出版社,2001(07).
[2] 蔡美琴,張為民等.《MCS-51系列單片機系統及其應用》高等教育出版社,2004(06).
[3] 張毅剛,等.MCS-51單片機應用設計[M].哈爾濱工業大學出版社,1997.
[4] 劉瑞星,胡健等.《Protel DXP 實用教程》機械工業出版社,2003(04).
[5] 于海生. 《計算機控制技術》 機械工業出版社 2007(05).
[6] 譚浩強. 《C程序設計》 清華大學出版社.
[7] 康華光. 《電子技術基礎 模擬部分》 高等教育出版社 1998(08).
[8] 余錫存. 《單片機原理與接口技術》 西安電子科技大學出版社,2003.
致謝
本論文是在我的指導老師密切關心和悉心指導下完成的。老師在課題開題期間和論文寫作的過程中給予了我許多指導,導師總是以認真負責、一絲不茍的工作態度閱讀并修改文章中不足的地方,他優良的作風和嚴謹治學的態度深深影響著我,至此,向恩師致以最真摯的感謝和最崇高的敬意!
同時我要感謝我的同學,特別是我的室友們,正是他們在這幾年里陪我一起成長,一起學習,才讓我有了今天的成績。他們在平時的學習和生活中他們給予了我無私的關懷和幫助,在此表示我最誠摯的謝意。
| 歡迎光臨 (http://m.raoushi.com/bbs/) | Powered by Discuz! X3.1 |