版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 利用數字電路實現(xiàn)電子密碼鎖</p><p> 學生:XXX 指導老師:XXX</p><p> 內容摘要:本數字密碼鎖采用單片機AT89S52為主控芯片,由EEPROM存儲密碼。硬件部分包括主控制系統(tǒng)、人機交互界面以及輸出系統(tǒng)三大部分。</p><p> 主控制系統(tǒng)中主控制芯片使用了AT89S52單片機,該單片
2、機性能優(yōu)良,能滿足一般的普通應用;EEPROM采用AT24C02芯片,掉電后可以存儲密碼,從而保證了系統(tǒng)的安全性。人機交互通道部分采用了4×4矩陣鍵盤輸入以及LCD1602標準字符型液晶顯示。輸出系統(tǒng)部分包括驅動開鎖電路和報警電路;其中,在本系統(tǒng)設計中,驅動開鎖電路用發(fā)光二極管表示,而報警電路則使用蜂鳴器。</p><p> 本系統(tǒng)中使用的AT24C02芯片是一個帶有I2C總線接口的EEPROM存儲器
3、。I2C總線是一種雙向二線制總線,它的結構簡單,可靠性和抗干擾性能好。I2C總線結構很簡單,只有兩條線,包括一條數據線(SDA)和一條串行時鐘線(SCL)。具有I2C接口的器件可以通過這兩根線接到總線上,進行相互之間的信息傳遞。</p><p> 本數字密碼鎖的功能為:密碼位數為8位,可選值為0~9,從而保證足夠的鎖體強度;用戶可以自行設定和修改密碼;防止密碼被盜,輸入密碼錯誤次數超過3次則報警;友好的人機界面
4、;輸入正確的密碼后,驅動開鎖電路。</p><p> 軟件部分應用單片機C語言實現(xiàn)了本設計的全部控制功能。C語言編譯方便,易讀性好,且移植性方便,能夠滿足實現(xiàn)本系統(tǒng)的功能要求。在設計過程中,給出了本系統(tǒng)C語言編程的原理和流程圖。</p><p> 本數字密碼鎖系統(tǒng)穩(wěn)定性好,設計人性化,由于使用單片機控制并有記憶模塊,功能齊全可靠,并有很好的擴展性,而且成本低廉,具有良好的發(fā)展前景。&l
5、t;/p><p> 關鍵詞:數字密碼鎖 AT24C02芯片 安全性</p><p> Electronic combination lock</p><p> Abstract:Using the digital circuit realize electronic combination lock</p><p> This dig
6、ital locks USES the monolithic integrated circuit AT89S52 as the controller chip, by EEPROM memory password. Hardware including master control system, man-machine interface and output system of three.</p><p>
7、; The Lord control system used in the control chip AT89S52 SCM, this single chip good performance, can satisfy the general common application; The AT24C02 chip EEPROM, after power off can be stored password, so as to en
8、sure the security of the system. Man-machine interactive channel part adopts the 4 x 4 matrix keyboard input and LCD1602 standard character type LCD display. The output of system including drive circuit and alarm lock ci
9、rcuit; Which, in the system design, drive the lock circuit usin</p><p> The system used AT24C02 chip is a with the I2C bus interface EEPROM memory. The I2C bus is a two-way two wire bus, its simple structur
10、e, reliability and anti-interference capability. The I2C bus structure is simple, only two lines, including a data line (SDA) and a serial clock line (SCL). Has the I2C devices through this interface to two lines on the
11、bus, the mutual information transfer.</p><p> This digital locks function for: password digits for eight, optional value is 0 ~ 9, so as to ensure enough lock body strength; The user can set and modify the
12、password; To prevent the password is stolen, the input password mistake number more than three times the alarm; Friendly human-machine interface; To enter the correct password, drive the lock circuit.</p><p>
13、; Application software of single chip microcomputer C language realized this design of all control function. C compiler convenient, easy to read the gender is good, and easy portability, and can meet the requirement of
14、system function realization. In the design process are given, and the system of the C programming language principle and flow chart.</p><p> This digital locks system stability, humanized design, because us
15、e a single-chip microcomputer control and a memory module, complete function and reliable, and have a good scalability, and the cost is low, have good development prospect.</p><p> Keywords: Electronic comb
16、ination lock AT24C02 chip safety</p><p><b> 目 錄</b></p><p><b> 前言1</b></p><p> 1 系統(tǒng)的硬件設計2</p><p> 1.1 硬件的總體結構和原理2</p><p
17、> 1.1.1 硬件系統(tǒng)的總體結構圖2</p><p> 1.1.2 硬件系統(tǒng)組成2</p><p> 1.1.3 系統(tǒng)的可能性分析3</p><p> 1.2 單片機AT89S51簡介4</p><p> 1.2.1 主要性能4</p><p> 1.2.2 引腳功能描述5</p
18、><p> 1.3 AT24C02簡介7</p><p> 1.3.1 功能描述7</p><p> 1.3.2 管腳描述7</p><p> 1.3.3 I2C總線協(xié)議8</p><p> 1.4 LCD1602介紹8</p><p> 1.4.1 引腳描述9</p&
19、gt;<p> 1.4.2 LCDI602控制指令9</p><p> 1.4.3 LCDI602讀寫控制時序11</p><p> 1.5 4×4矩陣鍵盤11</p><p> 1.6 復位電路12</p><p> 1.7 振蕩電路12</p><p> 1.8 發(fā)光二
20、極管LED電路13</p><p> 1.9 報警電路13</p><p> 1.10 電源輸入電路14</p><p> 1.11 使用到的元器件列表15</p><p> 2 軟件程序設計15</p><p> 2.1 編譯器Keil uVision2簡介16</p><p
21、> 2.2 軟件總設計流程圖16</p><p> 2.3 具體功能軟件實現(xiàn)17</p><p> 2.3.1 4×4矩陣鍵盤掃描程序17</p><p> 2.3.2 顯示程序19</p><p> 2.3.3 時鐘運行子程序19</p><p> 2.3.4 時鐘時、分修改子程
22、序20</p><p> 2.3.5 掉電存儲服務程序21</p><p> 2.3.7 密碼修改子程序23</p><p><b> 3 結束語24</b></p><p> 附錄1: PCB原理圖26</p><p> 附錄2: 仿真原理圖27</p>&
23、lt;p> 附錄3: 單片機硬件實物圖28</p><p><b> 參考文獻29</b></p><p> 利用數字電路實現(xiàn)電子密碼鎖</p><p><b> 前言</b></p><p> 隨著社會物質財富的日益增長,安全防盜已成為社會問題。而鎖自古以來就是把守門戶的鐵將軍
24、,人們對它要求甚高,既要安全可靠地防盜,又要使用方便,這也是制鎖者長期以來研制的主題。目前國內,大部分人使用的還是傳統(tǒng)的機械鎖。然而,眼下假冒偽劣的機械鎖泛濫成災,互開率非常之高。所謂互開率,是各種鎖具的一個技術質量標準,也就是1把鑰匙能開幾把鎖的比率。經國家工商局、國家內貿局、中國消協(xié)等部門對鎖具市場的調查,發(fā)現(xiàn)個別產品的互開率居然超標26倍。</p><p> 為何彈子鎖的“互開率”會如此之高?據有關專家人
25、士剖析,彈子鎖質量好壞主要取決于彈子數量的多少以及彈子的大小,而彈子的多少和大小受一定條件的限制。此外,即使是一把質量過關的機械鎖,通過急開鎖,甚至可以在不損壞鎖的前提下將鎖打開。機械鎖的這些弊端為一種新型的鎖---電子密碼鎖,提供了發(fā)展的空間。</p><p> 電子密碼鎖是一種通過密碼輸入來控制電路或是芯片工作,從而控制機械開關的閉合,完成開鎖、閉鎖任務的電子產品。它的種類很多,有簡易的電路產品,也有基于芯
26、片的性價比較高的產品?,F(xiàn)在應用較廣的電子密碼鎖是以芯片為核心,通過編程來實現(xiàn)的。其性能和安全性已大大超過了機械鎖,主要特點如下:</p><p> 保密性好,編碼量多,遠遠大于彈子鎖,隨機開鎖成功率幾乎為零。</p><p> 密碼可變。 用戶可以經常更改密碼,防止密碼被盜,同時也可以避免因人的更替而使鎖的密級下降。</p><p> 誤碼輸入保護。當輸入密碼
27、多次錯誤時,報警系統(tǒng)自動啟動,防止試探密碼。</p><p> 從目前的技術水平和市場認可程度看,使用最為廣泛的是鍵盤式電子密碼鎖,該產品主要應用于保險箱、保險柜和金庫,還有一部分應用于保管箱和運鈔車。鍵盤式電子密碼在鍵盤上輸入,與打電話差不多,因而易于掌握,其突出優(yōu)點是“密碼”是記在被授權人腦子里的數字和字符,既準確又可靠,不會丟失(除了忘記),難以被竊(除非自己泄露)。但是密碼不能太簡單,太簡單了就容易被他
28、人在鍵盤上試探出來,或者可能被旁觀者窺測出來,造成保密性不足。當然,密碼又不能太復雜,太復雜了可能自己都糊涂了,或者輸入密碼操作成功率低,造成使用不便。因此,為了發(fā)揚優(yōu)點、克服弱點,鍵盤式電子密碼也在不斷發(fā)展中,如“任意設定密碼”技術使得被授權人可以根據自己的需要或喜好設定密碼,常用常新;而“自動更改密碼”技術使得本次輸入的密碼將自動更改成下次應輸入的密碼,更改的規(guī)律不為他人所知,因而不怕旁觀者窺測;獨出心裁的“鍵盤亂序顯示”技術使得鍵
29、盤上的固定鍵位每次顯示出的字符不固定,并且顯示的窄小角度只能由操作者正面看得到,因而即使旁觀者看見操作動作也難以窺測出密碼;“多重密碼設定”技術使得單組密碼不一定有效,適合多人分權使用,需要輸入兩組以上的密碼才</p><p> 1 系統(tǒng)的硬件設計</p><p> 1.1 硬件的總體結構和原理 </p><p> 1.1.1 硬件系統(tǒng)的總體結構圖<
30、;/p><p> 硬件系統(tǒng)的總體結構圖如圖1.1.1-1所示。</p><p> 圖1.1.1-1 體結構圖</p><p> 1.1.2 硬件系統(tǒng)組成</p><p> 如圖1.1.1-1所示,本系統(tǒng)的硬件部分主要由單片機AT89S52、存儲芯片AT24C02、4×4矩陣鍵盤、LCD1602、報警電路和驅動電路組成;其中驅
31、動電路用發(fā)光二極管LED表示,而報警電路使用蜂鳴器??偟膩碚f,數字密碼鎖主要由微處理器模塊、記憶模塊、鍵盤模塊、聲光提示模塊和顯示模塊構成。</p><p> 微處理器模塊,也就是AT89S52單片機,因為本系統(tǒng)要實現(xiàn)密碼檢測、密碼設定、聲光提示等功能,要求微處理器必須能提供很多I/O口,而且由于系統(tǒng)體積限制,很難擴展I/O口和使用外部程序存儲器,所以選用AT89S52單片機。</p><p
32、> 記憶模塊,AT24C02芯片作為記憶模塊的核心部分,作用是存儲用戶設置的有效開鎖密碼。由于一片AT24C02擁有256字節(jié)存儲空間,而本設計中只需要存儲8個字節(jié)的數據,所以只需要一片AT24C02就已足夠了。并且AT24C02是一種非易失性存儲器,掉電后數據不會掉失,而且該存儲器內數據保存壽命可以保證達到100年以上,功耗低,十分適合本設計使用。</p><p> 聲光提示模塊,由發(fā)光二極管LED和
33、蜂鳴器組成,由單片機控制。發(fā)光二極管LED有綠色和紅色兩種,綠色LED亮表示密碼輸入正確,驅動開鎖電路;相反,紅色LED亮就表示輸入密碼錯誤。蜂鳴器采用5V驅動蜂鳴器,作為報警電路。當輸入密碼錯誤次數超過3次后就發(fā)出聲音警報。</p><p> 顯示模塊,考慮到友好的人機界面,采用LCD1602液晶顯示。顯示模塊的作用主要是顯示提示信息和輸入的密碼,以方便用戶使用。</p><p>
34、鍵盤模塊,鍵盤模塊的作用是讓用戶輸入密碼和修改密碼??紤]到本系統(tǒng)需要用到大量的按鍵,鍵盤模塊采用4×4的16矩陣鍵盤模式。</p><p> 1.1.3 系統(tǒng)的可能性分析</p><p> 系統(tǒng)工作原理分析:使用AT89S51單片機、4×4矩陣鍵盤、發(fā)光二極管LED、蜂鳴器等。4×4矩陣鍵盤的按鍵分別為0、1、2、3、4、5、6、7、8、9、取消、全取消
35、、確定、修改密碼、密碼初始化還原、返回。系統(tǒng)啟動后,開始時LCD1602顯示時鐘界面,切換到密碼鎖輸入界面后,LCD1602顯示“Enter Password”提示輸入密碼;輸入密碼時,LCD1602顯示輸出為“*”,以保證密碼的安全性。當密碼輸入完畢按下確定鍵時,對輸入密碼與設定的密碼進行比較,若密碼正確則LCD1602顯示為“Right!”,并驅動開鎖電路,綠色發(fā)光二極管LED亮;若密碼不正確,LCD1602顯示為“Error!”,
36、紅色發(fā)光二極管LED亮;若連續(xù)3次輸入不正確,則發(fā)出警報聲同時鎖定鍵盤。</p><p> 在按下修改密碼鍵時,LCD1602顯示“Enter old Key”提示輸入舊密碼,此時若輸入正確的舊密碼,則LCD1602顯示會有提示輸入新密碼,在輸入新密碼后,LCD1602顯示會再次提示“再次輸入新密碼”。若兩次輸入的新密碼不一致,則修改密碼失?。灰恢聞t成功,并將新密碼保存到AT24C02芯片中。在修改密碼的過程中
37、,如果一開始輸入的舊密碼錯誤LCD1602會顯示錯誤提示,同時系統(tǒng)返回到開始界面。</p><p> 若在“再次輸入新密碼”的時候輸入新密碼與前次不一致,則會返回到系統(tǒng)并要求重新輸入新密碼。修改密碼完成后,系統(tǒng)自動儲存到AT24C02中,要再次開鎖則需要輸入正確的新密碼。</p><p> 系統(tǒng)中取消鍵用于退格,在輸入密碼時,若輸入錯誤且未按下確定鍵,按下取消鍵可以刪除剛輸入的密碼,然
38、后再次輸入。</p><p> 為了防止惡意嘗試,系統(tǒng)采用若連續(xù)輸入3次錯誤密碼則發(fā)出報警聲,同時鎖定鍵盤。以此提高系統(tǒng)的安全系數,同時也能夠保護合法用戶的正常使用。若用戶忘記了密碼,可以按下密碼初始化還原鍵,恢復到最原始的密碼。</p><p> 1.2 單片機AT89S51簡介</p><p> AT89S52是一種低功耗、高性能CMOS 8位微控制器,
39、具有8K系統(tǒng)可編程Flash存儲器。使用Atmel公司高密度非易失性存儲器技術制造,與工業(yè)80C51產品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程Flash,使得AT89S52為眾多嵌入式控制應用系統(tǒng)提供高靈活、超有效的解決方案。AT89S52具有以下標準功能:8k字節(jié)Flash,256字節(jié)RAM,32位I/O 口線,看門狗定時器,2個數據指針
40、,三個16位定時器/計數器,一個6向量2級中斷結構,全雙工串行口,片內晶振及時鐘電路。另外,AT89S52可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式。空閑模式下,CPU在掉電保護方式下,RAM內容被保存,振蕩器被凍結,單片機一切工作停止,直到下一個中斷或硬件復位為止。</p><p> 1.2.1 主要性能</p><p> ◆與MCS-51單片機產品兼容 &l
41、t;/p><p> ◆8K字節(jié)在系統(tǒng)可編程Flash存儲器 </p><p> ◆1000次擦寫周期</p><p> ◆全靜態(tài)操作:0Hz~33Hz </p><p> ◆三級加密程序存儲器</p><p> ◆32個可編程I/O口線 </p><p> ◆三個16位定時器/計數器&l
42、t;/p><p><b> ◆八個中斷源</b></p><p> ◆全雙工UART串行通道 </p><p> ◆低功耗空閑和掉電模式 </p><p> ◆掉電后中斷可喚醒 </p><p><b> ◆看門狗定時器 </b></p><p>
43、;<b> ◆雙數據指針 </b></p><p><b> ◆掉電標識符 </b></p><p> 1.2.2 引腳功能描述</p><p> AT89S52的引腳如圖1.2.2-1所示,其中各引腳為:</p><p> 圖1.2.2-1 AT89S52引腳圖</p>
44、;<p> VCC: 供電電壓。</p><p><b> GND: 接地 。</b></p><p> P0口:P0口是一個8位漏極開路的雙向I/O口。作為輸出口,每位能驅動8個TTL邏輯電平。對P0端口寫“1”時,引腳用作高阻抗輸入。當訪問外部程序和數據存儲器時,P0口也被作為低8位地址/數據復用。在這種模式下,P0具有內部上拉電阻。在Flas
45、h編程時,P0口也用來接收指令字節(jié);在程序校驗時,輸出指令字節(jié)。程序校驗時,需要外部上拉電阻。</p><p> P1口:P1口是一個具有內部上拉電阻的8位雙向I/O口,P1輸出緩沖器能驅動4個TTL 邏輯電平。對P1端口寫“1”時,內部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流(IIL)。此外,P1.0和P1.2分別作定時器/計數器2的
46、外部計數輸入(P1.0/T2)和時器/計數器2的觸發(fā)輸入(P1.1/T2EX)。在Flash編程和校驗時,P1口接收低8位地址字節(jié)。引腳號第二功能: </p><p> ◆P1.0 T2(定時器/計數器T2的外部計數輸入),時鐘輸出。</p><p> ◆P1.1 T2EX(定時器/計數器T2的捕捉/重載觸發(fā)信號和方向控制)。 </p><
47、;p> ◆P1.5 MOSI(在系統(tǒng)編程用)。</p><p> ◆P1.6 MISO(在系統(tǒng)編程用)。 </p><p> ◆P1.7 SCK(在系統(tǒng)編程用)。 </p><p> P2口:P2口是一個具有內部上拉電阻的8位雙向I/O口,P2輸出緩沖器能驅動4 個TTL 邏輯電平。對P2端口寫“1”時
48、,內部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流(IIL)。在訪問外部程序存儲器或用16位地址讀取外部數據存儲器時,P2口送出高八位地址。在這種應用中,P2口使用很強的內部上拉發(fā)送1。在使用8位地址訪問外部數據存儲器時,P2口輸出P2鎖存器的內容。在Flash編程和校驗時,P2口也接收高8位地址字節(jié)和一些控制信號。</p><p> P3口:P3口
49、是一個具有內部上拉電阻的8位雙向I/O口,P3輸出緩沖器能驅動4個TTL 邏輯電平。對P3 端口寫“1”時,內部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流(IIL)。P3口亦作為AT89S52特殊功能(第二功能)使用,在Flash編程和校驗時,P3口也接收一些控制信號。 </p><p><b> 引腳號第二功能: &
50、lt;/b></p><p> ◆P3.0 RXD(串行輸入)。</p><p> ◆P3.1 TXD(串行輸出)。</p><p> ◆P3.2 INT0(外部中斷0)。 </p><p> ◆P3.3 INT0(外部中斷0)。</p><p> ◆P3.4
51、160;T0(定時器0外部輸入)。</p><p> ◆P3.5 T1(定時器1外部輸入)。</p><p> ◆P3.6 WR(外部數據存儲器寫選通)。 </p><p> ◆P3.7 RD(外部數據存儲器寫選通)。 </p><p> RST: 復位輸入。晶振工作時,RST腳持續(xù)2個機器周期高電平將使
52、單片機復位??撮T狗計時完成后,RST 腳輸出96個晶振周期的高電平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能無效。DISRTO默認狀態(tài)下,復位高電平有效。</p><p> ALE/PROG:地址鎖存控制信號(ALE)是訪問外部程序存儲器時,鎖存低8 位地址的輸出脈沖。在Flash編程時,此引腳(PROG)也用作編程輸入脈沖。在一般情況下,ALE 以晶振六分之
53、一的固定頻率輸出脈沖,可用來作為外部定時器或時鐘使用。然而,特別強調,在每次訪問外部數據存儲器時,ALE脈沖將會跳過。如果需要,通過將地址為8EH的SFR的第0位置“1”,ALE操作將無效。這一位置“1”, ALE 僅在執(zhí)行MOVX 或MOVC指令時有效。否則,ALE 將被微弱拉高。這個ALE 使能標志位(地址為8EH的SFR的第0位)的設置對微控制器處于外部執(zhí)行模式下無效。</p>
54、<p> PSEN: 外部程序存儲器選通信號(PSEN)是外部程序存儲器選通信號。當AT89S52從外部程序存儲器執(zhí)行外部代碼時,PSEN在每個機器周期被激活兩次,而在訪問外部數據存儲器時,PSEN將不被激活。</p><p> EA/VPP: 訪問外部程序存儲器控制信號。為使能從0000H 到FFFFH的外部程序存儲器讀取指令,EA必須接GND。為了執(zhí)行內部程序指令,EA應該接VCC。
55、在Flash編程期間,EA也接收12伏VPP電壓。</p><p> XTAL1: 振蕩器反相放大器和內部時鐘發(fā)生電路的輸入端。</p><p> XTAL2: 振蕩器反相放大器的輸出端。</p><p> 1.3 AT24C02簡介</p><p> AT24C02如圖1.3.2-1所示,是一個2K位串行CMOS EEPROM內部
56、含有256個8位字節(jié),CATALYST公司的先進CMOS技術實質上減少了器件的功耗,有一個16字節(jié)頁寫緩沖器,該器件通過I2C總線接口進行操作;有一個專門的寫保護功能。</p><p> 1.3.1 功能描述</p><p> AT24C02支持I2C總線數據傳送協(xié)議,I2C總線協(xié)議規(guī)定任何將數據傳送到總線的器件作為發(fā)送器,任何從總線接收數據的器件為接收器。數據傳送是由產生串行時鐘和
57、所有起始停止信號的主器件控制的。主器件和從器件都可以作為發(fā)送器或接收器,但由主器件控制傳送數據發(fā)送或接收的模式通過器件地址輸入端A0、A1和A2可以實現(xiàn)將最多8個AT24C02器件連接到總線上。</p><p> 1.3.2 管腳描述</p><p> AT24C02的管腳如圖 1.3.2-1所示,其中各管腳為:</p><p><b> SCL
58、串行時鐘:</b></p><p> AT24C02串行時鐘輸入管腳,用于產生器件所有數據發(fā)送或接收的時鐘,這是一個輸入管腳。</p><p> SDA 串行數據/地址:</p><p> AT24C02雙向串行數據/地址管腳,用于器件所有數據的發(fā)送或接收。SDA是一個開漏輸出管腳。</p><p> A0 A1 A2 器
59、件地址輸入端:</p><p> 這些輸入腳用于多個器件級聯(lián)時設置器件地址。當這些腳懸空時默認值為0。使用AT24C02時最大可級聯(lián)8個器件.如果只有一個AT24C02被總線尋址,這三個地址輸入腳A0、A1、A2可懸空或連接到Vss。 </p><p><b> WP 寫保護:</b></p><p> 如果WP管腳連接到Vcc,所有的內
60、容都被寫保護只能讀;當WP管腳連接到Vss 或懸空,允許器件進行正常的讀/寫操作。</p><p> 圖1.3.2-1 AT24C02引腳圖</p><p> 1.3.3 I2C總線協(xié)議</p><p> I2C總線是一種雙向二線制總線,它的結構簡單,可靠性和抗干擾性能好。目前很多公司都推出了基于I2C總線的外圍器件,AT24C02芯片就是一個帶有I2C總
61、線接口的EEPROM存儲器,I2C總線結構很簡單,只有兩條線,包括一條數據線(SDA)和一條串行時鐘線(SCL)。具有I2C接口的器件可以通過這兩根線接到總線上,進行相互之間的信息傳遞。連接到總線的器件具有不同的地址,CPU根據不同的地址進行識別,從而實現(xiàn)對硬件系統(tǒng)簡單靈活的控制。</p><p> I2C總線協(xié)議定義如下:</p><p> 只有在總線空閑時才允許啟動數據傳送。<
62、;/p><p> 在數據傳送過程中當時鐘線為高電平時,數據線必須保持穩(wěn)定狀態(tài)不允許有跳變;時鐘線為高電平時數據線的任何電平變化將被看作總線的起始或停止信號。</p><p><b> 起始信號:</b></p><p> 時鐘線保持高電平期間數據線電平從高到低的跳變作為I2C總線的起始信號。</p><p><b
63、> 停止信號:</b></p><p> 時鐘線保持高電平期間數據線電平從低到高的跳變作為作為I2C總線的停止信號。</p><p> 1.4 LCD1602介紹</p><p> 液晶顯示模塊具有體積小、功耗低、顯示內容豐富、超薄輕巧等優(yōu)點,在袖珍式儀表和低功耗應用系統(tǒng)中得到廣泛的應用。目前液晶顯示模塊已經是單片機應用設計中最常用的信息
64、顯示器件。其中LCD1602液晶顯示模塊是常用的選擇,它可以顯示兩行,每行16個字符,采用單+5V電源供電,外圍電路配置簡單,價格便宜,具有很高的性價比。考慮到本系統(tǒng)設計中友好的人機界面,相對采用多個LED作為顯示模塊,LCD1602更合適。</p><p> 1.4.1 引腳描述</p><p> 1602采用標準的16腳接口,如圖1.4.1-1所示,其中: </p>
65、<p> ◆第1腳:VSS為地電源。</p><p> ◆第2腳:VDD接5V正電源。</p><p> ◆第3腳:V0為液晶顯示器對比度調整端,接正電源時對比度最弱,接地電源 時對比度最高,對比度過高時會產生“鬼影”,使用時可以通過一個10K的電位器調整對比度。</p><p> ◆第4腳:RS為寄存器選擇,高電平時選擇數據寄存器、低電平時選擇
66、指令寄存器。</p><p> ◆第5腳:R/W為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。當RS和R/W共同為低電平時可以寫入指令或者顯示地址,當RS為低電平R/W為高電平時可以讀忙信號,當RS為高電平R/W為低電平時可以寫入數據。</p><p> ◆第6腳:E端為使能端,當E端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。</p><p> ◆第7
67、~14腳:D0~D7為8位雙向數據線。</p><p> ◆第15腳:LEDA為背光接5V正電源。</p><p> ◆第16腳:LEDK為背光地電源。</p><p> 圖1.4.1-1 LCD1602管腳圖</p><p> 1.4.2 LCDI602控制指令</p><p> 如表1.4.2-1所示
68、,LCD1602的讀寫操作、屏幕和光標的操作都是通過指令編程來實現(xiàn)的。</p><p> ◆指令 1:清顯示。指令碼01H,光標復位到地址00H位置。 </p><p> ◆指令 2:光標復位。光標返回到地址00H。</p><p> ◆指令 3:光標和顯示模式設置,I/D:光標移動方向,高電平右移,低電平左移 ;S:屏幕上所有文字是否左移或者右移。高電平表示
69、有效,低電平則無效。</p><p> ◆指令 4:顯示開關控制。D:控制整體顯示的開與關,高電平表示開顯示,低電平表示關顯示 C:控制光標的開與關,高電平表示有光標,低電平表示無光標 B:控制光標是否閃爍,高電平閃爍,低電平不閃爍。</p><p> ◆指令 5:光標或顯示移位。S/C:高電平時移動顯示的文字,低電平時移動光標 。</p><p> ◆指令
70、6: 功能設置命令 。DL:高電平時為4位總線,低電平時為8位總線; N:低電平時為單行顯示,高電平時雙行顯示;F:低電平時顯示5x7的點陣字符,高電平時顯示5x10的點陣字符。 </p><p> ◆指令 7:字符發(fā)生器RAM地址設置。</p><p> ◆指令 8:DDRAM地址設置。</p><p> ◆指令 9:讀忙信號和光標地址。BF:為忙標志位,高
71、電平表示忙,此時模塊不能接收命令或者數據,如果為低電平表示不忙。</p><p> ◆指令10:寫數據。 </p><p> ◆指令11:讀數據。</p><p> 表1.4.2-1 LCD1602的控制指令表</p><p> 1.4.3 LCDI602讀寫控制時序</p><p> LCD1602的讀
72、寫控制時序如表1.4.2-2所示,使用LCD1602顯示時要嚴格按照時序要求,否則LCD1602顯示會出現(xiàn)問題。</p><p> 表1.4.2-2 LCD1602的讀寫控制時序表</p><p> 1.5 4×4矩陣鍵盤</p><p> 如圖1.5-1所示,本系統(tǒng)采用4×4矩陣鍵盤。當LCD1602為時鐘界面顯示時,S2為時設置鍵,
73、S3為分設置鍵,S4為切換鍵;當切換到密碼鎖界面顯示時,16個按鍵分為輸入數字鍵和功能鍵。其中,S2、S6、S7、S8、S10、S11、S12、S14、S15、S16依次表示數字0~9,S3為取消鍵,S4為全取消鍵,S5為確定鍵,S9為密碼初始化還原鍵,S13為返回鍵,S17為密碼修改鍵。</p><p> 圖1.5-1 4×4矩陣鍵盤</p><p><b>
74、1.6 復位電路</b></p><p> 為確保系統(tǒng)中電路穩(wěn)定可靠工作,復位電路是必不可少的一部分,復位電路的第一功能是上電復位。如圖1.6-1所示,時鐘電路工作后,在REST管腳上加兩個機器周期的高電平,芯片內部開始進行初始復位。</p><p> 圖1.6-1 復位電路</p><p><b> 1.7 振蕩電路</b&
75、gt;</p><p> 圖1.7-1所示為單片機晶體振蕩電路。在本系統(tǒng)設計中晶振選擇頻率為12MHz,其中兩個電容叫晶振的負載電容,分別接在晶振的兩個腳上和對地,一般在幾十皮法,它會影響到晶振的諧振頻率和輸出幅度。多數情況下電容取值在20pF-30pF左右,在本系統(tǒng)中取電容為30pF。</p><p> 圖1.7-1 振蕩電路</p><p> 1.8
76、發(fā)光二極管LED電路</p><p> 圖1.8-1所示為發(fā)光二極管LED電路,開始時發(fā)光二極管LED1、LED2連接的單片機I/O口均為高電平。當輸入密碼正確后,LED1連接的I/O口由高電平變?yōu)榈碗娖?,綠色的發(fā)光二極管LED點亮,表示驅動了開鎖電路;當輸入密碼錯誤時,LED2連接的I/O口由高電平變?yōu)榈碗娖?,紅色的發(fā)光二極管LED點亮。其中R10、R11為發(fā)光二極管LED的保護電阻,阻值均為1K。</
77、p><p> 圖1.8-1 發(fā)光二極管LED電路</p><p><b> 1.9 報警電路</b></p><p> 本系統(tǒng)中的報警電路采用蜂鳴器,如圖1.9-1所示。當連續(xù)3次輸入錯誤密碼后,就會驅動報警電路,蜂鳴器不停地響,以示警報。其中,R5阻值為1kΩ,R6阻值為100Ω。三極管為8550。8550是PNP型中功率高頻三極管,最
78、大耗散功率為700mW,在此電路中起功率放大作用。</p><p> 圖1.9-1 報警電路</p><p> 1.10 電源輸入電路</p><p> 電源輸入電路如圖1.10-1所示,輸入直流電源后,經過三端穩(wěn)壓集成電路7805,使電壓輸出穩(wěn)壓在5V左右。</p><p> 圖1.10-1 電源輸入電路</p>
79、<p> 用7805三端穩(wěn)壓IC來組成穩(wěn)壓電源所需的外圍元件極少,電路內部還有過流、過熱及調整管的保護電路。7805只有三條引腳輸出,分別是輸入端、接地端和輸出端,如圖1.10-2所示。使用7805要注意最高輸入電壓是35V左右。</p><p> 圖1.10-2 7805引腳圖</p><p> 1.11 使用到的元器件列表</p><p>
80、 表1.11-1所示為硬件設計中使用到的元器件。</p><p> 表1.11-1 元器件列表</p><p><b> 2 軟件程序設計</b></p><p> 目前,對單片機的編程主要采用匯編跟C語言。匯編語言有執(zhí)行效率高、速度快、與硬件結合緊密等特點。尤其在進行I/O端口管理時,使用匯編語言有快捷、直觀的優(yōu)點。但是使用匯編語
81、言相對于使用高級語言編程難度要大一些,且程序可讀性低,開放性差,從系統(tǒng)開發(fā)時間來看,效率不是很高。</p><p> C語言是一種結構化語言,可產生緊湊代碼。C語言可以用許多機器級函數直接控制操作8051硬件。與匯編語言相比,C語言有如下的優(yōu)點:</p><p> ◆不要求了解單片機的指令系統(tǒng),僅要求對8051的存儲結構有初步了解;</p><p> ◆寄存器
82、分配,不同存儲器的尋址及數據類型等細節(jié)可由編譯器管理;</p><p> ◆程序有規(guī)范的結構,可分為不同的函數,這種方式可使程序結構化;</p><p> ◆具有將可變的選擇與特殊操作組合在一起的能力,改善了程序的可讀性;</p><p> ◆關鍵字及運算符可用近似人的思維方式使用;</p><p> ◆編程及程序調試時間顯著縮短,從
83、而提高效率;</p><p> ◆提供的庫包含許多標準子程序,具有較強的數據處理能力;</p><p> ◆已編好的程序可容易地植入新程序,因為它具有方便的模塊化編程技術。</p><p> 當然,采用混編模式,就能結合兩者的優(yōu)點。</p><p> 本系統(tǒng)程序使用C語言編寫。使用C語言編程,目的是實現(xiàn)數字密碼鎖的所有功能。C語言編程
84、主要實現(xiàn)顯示功能,進行密碼輸入,對密碼進行比較,判斷密碼對錯和修改密碼等功能。</p><p> 2.1 編譯器Keil uVision2簡介</p><p> Keil uVision2 是德國Keil公司開發(fā)的一個單片機C語言編譯器,可以用它來編譯C源碼,匯編編寫的匯編源程序,連接和重定位目標文件和庫文件,創(chuàng)建HEX文件,調試目標程序。和其他的C語言編譯器相比,Keil uVis
85、ion2有著很多的優(yōu)點,例如可產生最少的代碼、支持浮點和長整數、支持重入和遞歸。在Keil uVision2的仿真功能中,有兩種仿真模式:軟件仿真模式和目標板仿真模式,在軟件仿真模式下我們不需要任何8051單片機硬件即可完成用戶程序仿真調試,極大地提高了用戶程序開發(fā)的效率。在目標板調試方式下,用戶可以將程序下載到自己的8051單片機板上,利用8051的串口與PC機進行通訊來實現(xiàn)程序的實時在線仿真。</p><p>
86、; 2.2 軟件總設計流程圖</p><p> 軟件總設計流程圖如圖2.2-1所示。</p><p> 圖2.2-1 軟件設計流程圖</p><p> 2.3 具體功能軟件實現(xiàn)</p><p> 2.3.1 4×4矩陣鍵盤掃描程序</p><p> 當鍵盤中按鍵數量較多時,為了減少對I/O
87、口的占用,通常將按鍵排列成矩陣形式,也稱為行列鍵盤,這是一種常見的連接方式。矩陣式鍵盤接口見圖2.3.1-1所示,它由行線和列線組成,按鍵位于行、列的交叉點上。當鍵被按下時,其交點的行線和列線接通,相應的行線或列線上的電平發(fā)生變化,MCU通過檢測行或列線上的電平變化可以確定哪個按鍵被按下。</p><p> 圖2.3.1-1 4×4矩陣鍵盤</p><p> 圖2.3.1-
88、1為一個4×4行列結構,可以構成16個鍵的鍵盤。很明顯,在按鍵數量多的場合,矩陣鍵盤與獨立式按鍵鍵盤相比可以節(jié)省很多的I/O口線。</p><p> 矩陣鍵盤不僅在連接上比單獨式按鍵復雜,它的按鍵識別方法也比單獨式按鍵復雜。在矩陣鍵盤的軟件接口程序中,常使用的按鍵識別方法有行掃描法和線反轉法。這兩種方法的基本思路是采用循環(huán)查循的方法,反復查詢按鍵的狀態(tài),因此會大量占用MCU的時間,所以較好的方式是采用
89、狀態(tài)機的方法來設計,盡量減少鍵盤查詢過程對MCU的占用時間。</p><p> 圖2.3.1-1中,KEY1、KEY2、KEY3、KEY4為4根列線,作為鍵盤的輸入口(工作于輸入方式)。KEY5、KEY6、KEY7、KEY8為4根行線,工作于輸出方式,由MCU(掃描)控制其輸出的電平值。 </p><p> 行掃描法也稱為逐行掃描查詢法,其按鍵識別的過程如下:</p&
90、gt;<p> 將全部行線KEY5-KEY8置低電平輸出,然后讀KEY1-KEY4四根輸入列線中有無低電平出現(xiàn)。只要有低電平出現(xiàn),則說明有鍵按下(實際編程時,還要考慮按鍵的消抖)。如讀到的都是高電平,則表示無鍵按下。</p><p> 在確認有鍵按下后,需要進入確定具體哪一個鍵閉合的過程。其思路是:依次將行線置為低電平,并檢測列線的輸入(掃描),進而確認具體的按鍵位置。如當KEY5輸出低電平時(
91、KEY5=0、KEY6=1、KEY7=1、KEY8=1),測到KEY2的輸入為低電平(KEY=1、KEY2=0、KEY3=1、KEY4=1),則可確認按鍵S3處于閉合狀態(tài)。通過以上分析可以看出,MCU對矩陣鍵盤的按鍵識別,是采用掃描方式控制行線的輸出和檢測列線輸入的信號相配合實現(xiàn)的。</p><p> 矩陣按鍵的識別僅僅是確認和定位了行和列的交叉點上的按鍵,接下來還要考慮鍵盤的編碼,即對各個按鍵進行編號。在軟件
92、中常通過計算的方法或查表的方法對按鍵進行具體的定義和編號。</p><p> 2.3.2 顯示程序</p><p> 本系統(tǒng)使用LCD1602實現(xiàn)顯示,只要參照LCD1602的使用手冊進行初始化和程序編寫就可以顯示,即在程序編寫中添加LCD1602的驅動程序。這里的驅動程序主要包括:初始化函數、設置顯示坐標、寫字符函數及寫字符串函數。在時鐘界面時顯示時間的運行,在密碼鎖界面時主要顯示
93、提示信息和輸入的密碼,當然,當輸入密碼數字時,輸出不是顯示數字,而是用“*”顯示代替。</p><p> 2.3.3 時鐘運行子程序</p><p> 當系統(tǒng)開始后,LCD1602初始化,然后顯示時鐘界面,程序在T0中斷,進入時鐘運行子程序,其流程圖如圖2.3.3-1所示。</p><p> 圖2.3.3-1 時鐘運行流程圖</p><p
94、> 2.3.4 時鐘時、分修改子程序</p><p> 在時鐘運行界面是可以修改時鐘的時和分,如圖2.3.4-1所示,S2為時修改的按鍵,S3為分的修改按鍵.如按一下時、分加1。當分為59的時候,再按一下S3,分變?yōu)?0,而當時為23的時候,再按一下S2,時變?yōu)?0.其流程圖如圖2.3.4-1所示。</p><p> 圖2.3.4-1 時鐘時、分修改流程圖</p>
95、;<p> 2.3.5 掉電存儲服務程序</p><p> 當比較密碼的時候,需要讀AT24C02程序,將存儲在芯片內的數據讀到RAM中,然后和輸入的密碼相比較。當修改密碼的時候,需要把輸入的密碼保存到AT24C02中。AT24C02的時序程序如下所示。</p><p> 當AT24C02的SCL引腳為高電平期間SDA引腳上產生的電平變化則表示I2C總線工作的“開始”
96、或“停止”兩種狀態(tài):當SCL為高電平,SDA由高電平轉向低電平時表示“開始” 狀態(tài),而由低電平轉向高電平時表示“結束” 狀態(tài)。編程時要嚴格按照其時序要求。其時序圖如圖2.3.5-1所示。</p><p> 圖2.3.5-1 AT24C02時序圖</p><p> AT24C02在讀寫數據時,無論是接受還是發(fā)送一個字節(jié)之后必須響應一個應答信號才能繼續(xù)工作。圖2.3.5-2為AT24C0
97、2的應答信號時序圖。</p><p> 圖2.3.5-2 AT24C02的應答信號時序圖</p><p> 2.3.6 密碼比較子程序</p><p> 當輸入密碼后,調用AT24C02中的密碼進行比較,若密碼一致,就驅動開鎖電路,即綠色發(fā)光二極管LED亮,若不一致,紅色發(fā)光二極管LED亮,如果超過3次輸入的密碼不正確,此時報警電路就會響應,蜂鳴器響,以及
98、鎖住系統(tǒng)。其程序流程圖如圖2.3.6-1所示。</p><p> 圖2.3.6-1 密碼比較流程圖</p><p> 2.3.7 密碼修改子程序</p><p> 修改密碼時,先輸入舊密碼,如果輸入的密碼正確,再輸入新密碼,否則返回;輸入新密碼后要求再次輸入新密碼,當兩次輸入的新密碼一致時,然后存儲到AT24C02中,否則重新輸入新密碼。修改密碼時,如果連
99、續(xù)三次輸入的舊密碼都不正確,報警電路響應。其程序流程圖如圖2.3.7-1所示。</p><p> 圖2.3.7-1 密碼修改流程圖</p><p><b> 3 結束語</b></p><p> 本數字密碼鎖終于完成了?;旧蠈崿F(xiàn)了所要求的功能,能夠輸入密碼、修改密碼、報警等。從這些方面來說,與市場上的產品沒有很大的區(qū)別。不過,本系統(tǒng)
100、中電磁鎖的部分是用發(fā)光二極管來表示。單從這點來說,差距就很大。如果要用上電磁鎖,就要考慮更多方面。雖然還有些不足,其實可以做的更好。</p><p> 在課程設計完成之際,我要特別感謝我的指導老師XX老師的熱情關懷和悉心指導。在我撰課程設計的過程中,XX老師傾注了大量的心血和汗水,無論是在課程設計的選題、構思和資料的收集方面,還是在課程設計的研究方法以及成文定稿方面,我都得到了XX老師悉心細致的教誨和無私的幫助
101、,特別是他廣博的學識、深厚的學術素養(yǎng)、嚴謹的治學精神和一絲不茍的工作作風使我終生受益,在此表示真誠地感謝和深深的謝意。在課程設計完成的過程中,也得到了許多同學的寶貴建議,在此一并致以誠摯的謝意。 </p><p> 附錄1: PCB原理圖</p><p> 附錄2: 仿真原理圖</p><p> 附錄3: 單片機硬件實物圖</p><p&g
102、t;<b> 參考文獻:</b></p><p> [1]盧旭錦:基于Keil C的AT24C02串行E2PRO編程,現(xiàn)代電子技術,2007.8,P154-P159</p><p> [2]李朝青:單片機原理及接口技術,北京航空航天大學出版社,2005.2, P17-P47</p><p> [3]劉振海:智能密碼鎖微計算機信息,電子工
103、業(yè)出版社,2007.12,P32-P36</p><p> [4]張曉東:帶警報的密碼電子鎖,家用電器,2001.8,P17-P20</p><p> [5]徐緯:單片機綜合學習系統(tǒng)--矩陣鍵盤,電子制作,2007.11,P25-P27</p><p> [6]戴佳,戴衛(wèi)恒:51單片機C語言應用程序設計實例精講.北京電子工業(yè)出版社,2006.5,P154-P1
104、90</p><p> [7]康華光:電子技術基礎(第四版),北京:高等教育出版社,1998 .7,P56-P59</p><p> [8]梁宗善:新型集成塊應用,武漢華中理工大出版社,2004.3,P23-P31</p><p> [9]陳有卿:實用555時基電路300例,中國電力出版社,2005.6,P12-P16</p><p>
105、 [10]沈任元,吳勇:數字電子技術基礎,機械工業(yè)出版社,2001.3,P67-P72</p><p> [11]陳松:數字邏輯電路,東南大學出版社,2006.6,P33-P37</p><p> [12]張慶雙:實用電子電路200例,機械工業(yè)出版社,2003.11,P41-P50</p><p> [13]梅開鄉(xiāng):數字邏輯電路,電子工業(yè)出版社,2004.4
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 利用數字電路實現(xiàn)電子密碼鎖-畢業(yè)設計
- 電子密碼鎖課程設計--基于數字電路的電子密碼鎖
- 電子密碼鎖課程設計--基于數字電路的電子密碼鎖
- 數字電路電子密碼鎖課程設計
- 數字電路密碼鎖課程設計
- 數字電路課程設計--數字密碼鎖電路設計
- 畢業(yè)設計 利用單片機實現(xiàn)電子密碼鎖
- 畢業(yè)設計---利用單片機實現(xiàn)電子密碼鎖
- 電子密碼鎖畢業(yè)設計
- 電子密碼鎖畢業(yè)設計
- 電子密碼鎖畢業(yè)設計
- 畢業(yè)設計---電子密碼鎖設計
- 電子密碼鎖設計畢業(yè)設計
- 電子密碼鎖的畢業(yè)設計
- 電子密碼鎖畢業(yè)設計論文
- 畢業(yè)設計220數字密碼鎖設計
- 畢業(yè)設計220數字密碼鎖設計
- 電子密碼鎖畢業(yè)設計論文
- 電子密碼鎖畢業(yè)設計 (2)
- 設計四 數字電子密碼鎖
評論
0/150
提交評論