欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 基于單片機的電子密碼鎖設計資料下載 [打印本頁]

作者: mulanshang    時間: 2016-4-17 16:43
標題: 基于單片機的電子密碼鎖設計資料下載
看看吧,挺好的。
做出來的51單片機電子密碼鎖實物圖:

pcb圖:

電路原理圖:

系統(tǒng)元件清單

器件名稱
型號
大小
個數(shù)
封裝
說明

電阻
R5 R6 R7
1K
3
AXIAL-0.4

R1 R2 R3 R4 R10
10K
5
AXIAL-0.3

R11
10K
1
SIP-3
滑動變阻器

電容
C1 C2
20pF
2
RAD-0.1

C3 C4 C5 C6 C8 C9
104
6
RAD0.1

C7 C10
100uF
2
RAD0.1
極性電容
C11
10uF
1
RAD-0.1
晶振

11.0592MHZ
1
CRYSTAL

單片機
STC89C52

1
DIP-40

轉化芯片
MAX232

1
DIP16

并口
DB9

1
DB9

二極管
IN4007
D7 D8 D9 D10
4
DIODE0.4
整流二極管
J2


1
DIANYUAN
電源接口
穩(wěn)壓芯片
LM7805CT

1
TO-126

三極管


1
SANJIGUAN

蜂鳴器


1
FENGMINGQI

發(fā)光二極管
D1 D3 D4
<5mA
3
LED
2紅1綠
液晶顯示屏
SMC1602A

1


電源
9V

1


接口線


1


P1


1

液晶接口
按鈕
S1~S14

14
SW-PB1-15



內容預覽:


隨著科技的不斷發(fā)展,人們越來越重視對具有私密、重要物質的場所的安全性,所以具有報警功能的電子密碼鎖在日常生活中用的越來越多,因此研究與設計單片機為主要控制器的電子密碼鎖具有工程意義和解決日常應用需求的價值。

本電子密碼鎖的設計采用以單片機STC89C52RC為主控制器,應用矩陣鍵盤、SMC1602A液晶顯示器、STC89C52RC內部的EEPROM等器件進行設計了鍵盤電路、液晶顯示電路、UART串口電路、電源(5V)電路、指示(LED)電路、報警(蜂鳴器)電路等電路設計;應用protel軟件設計了硬件原理圖和PCB圖;應用C51語言設計了顯示時間和校對時間、輸入密碼和修改密碼、控制EEPROM等軟件模塊;最后焊接PCB并調試電路。最終設計出一個具有等待狀態(tài)顯示時間(可以對時間進行校準)、輸入密碼、修改密碼、密碼正確與否指示、報警、密碼保護、一鍵還原初始密碼等功能的密碼鎖。設計此系統(tǒng)具有較高的安全性和科學性。






目   次

1  緒論…………………………………………………………………….……..….1
1.1本文的研究背景及意義……………………………………………….….……..1
1.2 技術的發(fā)展歷史與現(xiàn)狀………………………………….1
2 系統(tǒng)總體方案設計……………………………………4
2.1 電子密碼鎖系統(tǒng)的功能簡介………………………………………….….…….4
2.2電子密碼鎖系統(tǒng)的總方案設計………………………….………..………….....4
2.3本章小結………………………………………………………………………..11
3系統(tǒng)硬件設計………………………………………………………...…………..12
3.1指示燈電路設計………………………………………………………...……...12
3.2 5V電源電路設計…………………………………………………………..…..12
3.3 晶振電路設計……………………………………………………………….....13
3.4 復位電路設計……………………………………………………………...…..13
3.5 液晶顯示電路設計………………………………………………………...…..13
3.6報警電路設計…………………………………………………………………..14
3.7鍵盤電路設計…………………………………………………………………..15
3.8串口電路設計…………………………………………………………………..16
3.9 本章小結…………………………………….……………………………..…..16
4  系統(tǒng)軟件設計…………………………………………………………………..17
4.1主程序設計流程……………………………………………………………..…17
4.2鍵盤掃描設計流程…………………………………………………………..…18
4.3 輸入密碼程序設計流程…………………………………………………….…19
4.4 修改密碼程序設計流程…………………………………………………….…20
4.5 報警程序設計流程………………………………………………………….…21
4.6 時間顯示程序設計流程………………………………………………….……21
4.7 時間設置程序設計流程………………………………………………….……22
4.8 控制EEPROM程序設計流程……………………………………….……......23
4.9本章小結…………………………………………………………..……….…...25
5 系統(tǒng)測試與調試………………………………………………………….……...26
5.1 系統(tǒng)仿真測試與調試…………………………………………………….……26
5.2 系統(tǒng)測試及結果分析………………………………………………….………29
結論 …………………………………………………………………………..……36
參考文獻……………………………………………………………………………37
致謝….…………………………………………………………………………...…38
附錄A 系統(tǒng)總電路圖...…...………………………………………………………39
附錄B 系統(tǒng)PCB版圖……………………………………………………..…..…..40
附錄C 系統(tǒng)元件布局圖……………………………………….……….…..………40
附錄D 系統(tǒng)元件清單………………………………………………….…….…......41
附錄E 部分源程序清單……………….……….………………….………. .….......42

(圖片請下載附件中的word版本)


隨著科技的不斷發(fā)展,人們越來越重視對具有私密、重要物質的場所的安全性,所以具有報警功能的電子密碼鎖在日常生活中用的越來越多,因此研究與設計單片機為主要控制器的電子密碼鎖具有工程意義和解決日常應用需求的價值。本文主要介紹的是以單片機STC89C52型號為主要控制器的電子密碼鎖的設計并介紹其設計方法和設計的成果。

隨著科技的不斷進步和發(fā)展,人類已經步入了一個高科技的新時代。在這日新月異的時代中,人們對住宅、部門等具有私密、重要物質的場所的安全性要求不斷提高。舊社會中,由于科技不發(fā)達,人們常常用機械鎖來保護個人的財產,以這種方法來確保它們的安全性。這種用鑰匙開鎖式的機械鎖常常會給人們帶來不少的煩惱,比如:開鎖的鑰匙不慎丟了或者鎖門的鎖壞了。同時,平時攜帶一大竄鑰匙也給人們帶來不少的麻煩。從安全的角度來看,一種具有報警和高實用性的密碼鎖將取代人們所熟知的機械鎖,這種電子密碼鎖安全可靠,具有較高的安全性和科學性。

1.2.1  電子密碼鎖技術的發(fā)展歷史

電子密碼鎖從電子科技技術發(fā)展以來經歷了由大型到小型、由復雜到簡單、由原始到智能的發(fā)展經歷。尤其是近年來不同型號的微處理器出現(xiàn),為電子密碼鎖不斷的改進與創(chuàng)新提供了新的發(fā)展契機:比如如今的微處理器會做的很小,這樣小巧的處理器能為電子密碼鎖節(jié)省更多的硬件空間達到節(jié)省成本;再比如說老版本的8051單片機它內部是不提供EEPROM的,這如果想實現(xiàn)數(shù)據(jù)儲存就需要用I2C總線來外接存儲器來保存數(shù)據(jù),如今單片機內部有EEPROM,數(shù)據(jù)掉電不會丟失。

說到識別密碼方式,國內外大致經歷了由早期的矩陣鍵盤輸入操作到紅外遙控控制操作再到智能IC卡再到如今指紋識別等多種實現(xiàn)方法。紅外遙控控制密碼鎖會更加的方便快捷,通過密碼鎖的內部芯片對紅外接收頭接受到的信號進行解碼然后通過對比密碼來判定輸入密碼是否正確;IC卡密碼鎖設計是基于一個AT24C01A卡進行設計的,IC卡的核心是電可擦除的EEPROM。指紋密碼鎖設計是西門子公司研制的一種指紋感應片,這種芯片面積只有130mm,大小和人的指甲蓋差不多,在這么小的芯片上卻覆蓋著有6.5萬個微小型敏感元件,每個感應片有很高的靈敏度和測量精度,如此多的敏感細致元件完全可以非常詳細和精準的將人手上的各種紋路信息拾取下來,將指紋數(shù)據(jù)存于電腦數(shù)據(jù)庫中,這種具有人體特征標志的人體密碼不僅可以大大增加了私人財產的安全性而且其操作簡便、快捷具有很高的可靠性,于是這種指紋人體密碼芯片將逐漸的被用于日常生活中具有重要物質的場所和設備比如銀行、倉庫等。

還有顯示方面,早期顯示使用的led燈、后來有了7段數(shù)碼管、再后來大多數(shù)用的是lcd顯示器。所以,隨著科技的進步和創(chuàng)新,設計密碼鎖的技術也不甘落后,也在朝著智能化,通用化,人性化等富有創(chuàng)新的方向發(fā)展。

1.2.2  電子密碼鎖技術的研究現(xiàn)狀

針對電子密碼鎖系統(tǒng)設計經過翻閱資料和對學術的學習和研究,提出多種實現(xiàn)方案,其中比較典型的有以下幾種。文獻中應用矩陣式鍵盤作為密碼輸入,用單片機的IO口控制鍵盤,通過編寫程序用單片機對鍵盤進行掃描,然后用7段數(shù)碼管顯示系統(tǒng)狀態(tài)和信息、門開門關提示信息是由LED燈進行提示。還有,應用紅外遙控器和紅外接收頭來代替上面的矩陣式鍵盤,采用現(xiàn)成的遙控器,應用單片機編程對紅外接收頭接受的信號進行解碼,顯示應用的是型號為1602A的液晶顯示,開關門指示信息是由led燈提示的,設計的優(yōu)勢是應用了I2C總線來控制外接的EEPEOM,來實現(xiàn)輸入密碼的數(shù)據(jù)保存功能。還有,應用STC89C52單片機,這個單片機和AT系列的單片機最大區(qū)別就是這類單片機有內部集成了4kb大小的EEPROM,利用ISP/API功能能應用編程來控制內部的EEPROM的讀寫而不需要外接存儲器來進行數(shù)據(jù)保護。再有,應用單片機來完成以下的工作,第一個工作是對連接在單片機IO口上的鍵盤進行編碼來制作一個遠紅外遙控器,將序列碼經過發(fā)送頭發(fā)送到單片機連接的接收頭上,第二個工作是將接受到的數(shù)據(jù)經過紅外接收頭解碼將數(shù)據(jù)交給單片機來處理來實現(xiàn)各個碼的功能。目前,電子密碼鎖的功能的得到實現(xiàn)的新方法真是別出心裁,展現(xiàn)科技的發(fā)展和進步,比如:IC卡和指紋識別,IC卡密碼鎖設計是基于一個AT24C01A卡進行設計的,IC卡的核心是EEPROM。應用指紋設計出的密碼鎖主要應用的是傳感器是西門子公司研制,這種傳感器有很高的測量精度和靈敏度,所以這種人體密碼大大提高了家庭、個人、公共的具有重要性的財產的安全性,這是科技發(fā)展和人類不斷創(chuàng)新的結果,所以我們要好好利用科技帶給我們生活的每一種便捷。

1.2.3  總結:

通過對以上各種實現(xiàn)電子密碼鎖的方法的學習、研究和比較,下面來談一談各種方法的優(yōu)缺點,對于采用矩陣鍵盤來進行輸入的這種方法生產成本低、操作方便,在如今也是很受歡迎的,但是他壽命不長;而用7段數(shù)碼顯示比較落后,顯示不出科技的進步;對于采用遙控方式,優(yōu)點是輸入電路換成了紅外遙控控制輸入,這樣來操作密碼更加方便,缺點是成本比較高,外接EEPROM增加了硬件成本和操作強度。對于采用STC單片機,這種設計方法很合理,充分利用了單片機內部集成的EEPROM,只需通過編寫控制它的程序就能實現(xiàn)數(shù)據(jù)保護功能,而不需外接儲存器所以就降低了生產成本,不僅如此,這樣設計的系統(tǒng)可行性好。而目前,密碼鎖設計和實現(xiàn)的新方法是現(xiàn)在流行的高科技手段來對密碼鎖進行更進一步的智能化,技術含量高。由此可見密碼鎖的發(fā)展的方向是不斷的滿足人們生活中的要求,功能更加齊全,更加人性,更加智能,更加方便的方向發(fā)展。

上面對電子密碼鎖的研究背景意義、發(fā)展進行了簡要的介紹,在下面的章節(jié)中,將對系統(tǒng)的設計方案;以及系統(tǒng)的硬件設計;還有系統(tǒng)的軟件設計;最后對系統(tǒng)的測試按照任務書和設計的功能要求來一一測試。

第2章主要說明系統(tǒng)的功能要求、系統(tǒng)的工作原理及最終實行的方案。

第3章主要介紹供5V直流電源設計,lcd顯示電路的設計等系統(tǒng)硬件部分的設計,這部分工作為畫原理圖和PCB版圖提供能基礎,所以是系統(tǒng)重要的部分。

第4章主要介紹系統(tǒng)軟件部分的設計,比如輸入密碼怎么實現(xiàn),修改密碼怎么實現(xiàn)等等,可以說這一章是第三章的靈魂,它的地位與第三章一樣重要。

第5章主要是進行系統(tǒng)的測試與調試;主要對系統(tǒng)按設計的功能要求來一一進行驗證。


對本系統(tǒng)設計任務書要求的功能羅列如下:

1、系統(tǒng)的液晶顯示屏具有指示功能。

2、系統(tǒng)在空閑狀態(tài)顯示當前時間并可以對時間進行校準。

3、系統(tǒng)在輸入密碼狀態(tài)用鍵盤(0~9)來輸入系統(tǒng)設定的當前密碼,如果密碼輸入正確在屏幕上有歡迎信息提示和開門信息提示;如果輸入密碼錯誤在屏幕上會有密碼錯誤信息提示,如果輸入密碼錯誤三次將會有報警提示。

4.系統(tǒng)在修改密碼狀態(tài),要求輸入當前密碼,如果密碼輸入正確則進入修改密碼狀態(tài);如果輸入當前密碼錯誤則有錯誤信息提示。

5.系統(tǒng)有存儲數(shù)據(jù)功能,當斷電后會保存當前的密碼不會丟失。

6.系統(tǒng)在按了輸入密碼鍵或修改密碼健后如果30秒內沒有對系統(tǒng)進行任何操作的話,系統(tǒng)將自動切換到顯示時鐘狀態(tài)。

7.系統(tǒng)具有一鍵還原出廠密碼功能,如果對密碼管理不善可以使用本功能進行密碼還原。


本課題設計用的主要芯片有兩個:一個是STC89C52單片機,一個是SMC1602A液晶顯示器。STC89C52單片機作為系統(tǒng)的總控制核心,SMC1602A 為主要的外圍電路。下面對STC89C52和SMC1602A做一下簡單的介紹。


2.2.1  STC89C52概述


STC89C52系列單片機的封裝形式共分為DIP、PLCC及PQEP 3中形式,常用的是DIP封裝方式。

STC89C52單片機共40個引腳,大致可分為4類:

(1)電源引腳

Vcc(40腳):電源端,+5V

Vss(20腳):接地端(GND)

(2)時鐘電路引腳

XTAL1(19腳):外部接晶振輸入端

XTAL2(18腳):外部接晶振輸出端

(3)  I/O引腳

P0口 (39~32腳):P0口是一組8位的漏極開路型雙向I/O口,也是地址和數(shù)據(jù)的總線復用口

P1口 (1 ~ 8腳):P1口是一組帶內部上拉電阻的8位準雙向I/O口,可驅動4個TTL門電路

P2口(21~28腳):P2口是一組帶內部上拉電阻的8位準雙向I/O口,可驅動4個TTL門電路

P3口(10~17腳):P3口是一組帶內部上拉電阻的8位準雙向I/O口,該端口的每個引腳都有第二功能

(4) 控制線引腳

RST(9腳):復位端

EA/VPP(31腳):片外的存儲器選擇端/Flash存儲器編程電源

ALE/PROG(30腳):地址鎖存允許端/編程脈沖輸入端

PSEN(29腳):讀片外程序存儲器選通信號輸入端

STC89C52單片機最大的特點就是有ISP/IAP功能,它具有4K字節(jié)的EEPROM。其內部集成的EEPROM是與程序空間分開的,內部寄存器和功能描述如下:

表2.1 ISP/IAP相關寄存器列表
名稱
地址
功能描述
D7
D6
D5
D4
D3
D2
D1
D0
復位值
ISP_DATA
E2h
Flash數(shù)據(jù)寄存器








1111 1111
ISP_ADDRH
E3h
Flash高字節(jié)地址寄存器








0000 0000
ISP_ADDRL
E4h
Flash低字節(jié)地址寄存器








0000 0000
ISP_CMD
E5h
Flash命令模式寄存器
--
--
--
--
--
MS2
MS1
MS0
xxxx x000
ISP_TRIG
E6h
Flash命令觸發(fā)寄存器








xxxx xxxx
ISP_CONTR
E7h
ISP/IAP 控制寄存器
ISPEN
SWBS
SWRST
--
--
WT2
WT1
WT0
000x x000

ISP_DATA:ISP/IAP操作時的數(shù)據(jù)寄存器。

ISP/IAP從Flash讀出的數(shù)據(jù)放在此處,向Flash寫入的數(shù)據(jù)也需放在此處。

ISP_ADDRH:ISP/IAP操作時的地址寄存器高八位。

ISP_ADDRL:ISP/IAP操作時的地址寄存器低八位。

ISP_CMD:ISP/IAP操作時的命令模式寄存器,須命令觸發(fā)寄存器觸發(fā)方可生效。命令模式如表2.2所示。

表2.2 ISP_CMD寄存器模式設置
D7
D6
D5
D4
D3
D2
D1
D0
模式選擇
保留
命令選擇

--
--
--
--
--
0
0
0
待機模式,無ISP操作
--
--
--
--
--
0
0
1
對用戶的應用程序flash區(qū)及數(shù)據(jù)flash區(qū)字節(jié)讀
--
--
--
--
--
0
1
0
對用戶的應用程序flash區(qū)及數(shù)據(jù)flash區(qū)字節(jié)編程
--
--
--
--
--
0
1
1
對用戶的應用程序flash區(qū)及數(shù)據(jù)flash區(qū)扇區(qū)擦除

程序在系統(tǒng)ISP程序區(qū)時可以對用戶應用程序區(qū)/數(shù)據(jù)Flash區(qū)(EEPROM)進行字節(jié)讀/字節(jié)編程/扇區(qū)擦除;程序在用戶應用程序區(qū)時,僅可以對數(shù)據(jù)Flash區(qū)(EEPROM)進行字節(jié)讀/字節(jié)編程/扇區(qū)擦除。STC89C51RC/RD+系列單片機出廠時已經固化有ISP引導碼,并設置為上電復位進入ISP程序區(qū),并且出廠時就已完全加密。

ISP_TRIG:ISP/IAP操作時的命令觸發(fā)寄存器。

在ISPEN(ISP_CONTR.7)=1時,對ISP_TRIG 先寫入46h,再寫入B9h,ISP/IAP命令才會生效。

STC89C52RC,STC89LE52RC單片機內部可用Data Flash(EEPROM)的地址如表2.3所示

表2.3 STC89C52RC、STC89LE52RC單片機內部EEPROM地址表
第一扇區(qū)
第二扇區(qū)
第三扇區(qū)
第四扇區(qū)
起始地址
結束地址
起始地址
結束地址
起始地址
結束地址
起始地址
結束地址
2000H
21FFH
2200H
23FFH
2400H
25FFH
2600H
27FFH
第五扇區(qū)
第六扇區(qū)
第七扇區(qū)
第八扇區(qū)
起始地址
結束地址
起始地址
結束地址
起始地址
結束地址
起始地址
結束地址
2800H
29FFH
2A00H
2BFFH
2C00H
2DFFH
2E00H
2FFFH

2.2.2  SMC1602A概述

SMC1602A 標準字符點陣型液晶顯示模塊(LCM),采用點陣型液晶顯示器(LCD),可顯示16 個字符X2 行西文字符,

字符尺寸為2.95X4.35(WXH)mm,內置HD44780 接口型液晶顯示控制器,可與MCU 單片機直接連接,廣泛應用于各類儀器儀表及電子設備。

◆控制器接口說明(HD44780 及兼容芯片):

1) 基本操作時序:

1.1 讀狀態(tài):輸入:RS=L,RW=H,E=H 輸出:D0~D7=狀態(tài)字

1.2 寫指令:輸入:RS=L,RW=L,D0~D7=指令碼,E=高脈沖輸出:無

1.3 讀數(shù)據(jù):輸入:RS=H,RW=H,E=H 輸出:D0~D7=數(shù)據(jù)

1.4 寫數(shù)據(jù):輸入:RS=H,RW=L,D0~D7=數(shù)據(jù),E=高脈沖輸出:無


2) RAM 地址映射圖控制器內部帶有80X8 位(80字節(jié))的RAM緩沖區(qū),對應關系如右圖所示:


3) 指令說明


控制器內部設有一個數(shù)據(jù)地址指針,用戶可通過它們來訪問內部的全部 80 字節(jié)RAM。


4) 初始化過程(復位過程)


2.2.3  系統(tǒng)框圖

本系統(tǒng)的核心部分是STC89C52單片機,利用MAX232芯片實現(xiàn)將hex文件下載到單片機運行的功能;利用SMC1602液晶顯示屏實現(xiàn)電子密碼鎖所需的提示信息輸出功能;利用鍵盤實現(xiàn)對密碼操作的各項的功能比如輸入密碼或者修改密碼等;采用蜂鳴器實現(xiàn)系統(tǒng)在輸入密碼錯誤三次后的自動報警功能;LED燈來指示密碼輸入是否正確和指示狀態(tài)的功能;利用STC單片機內部的EEPROM實現(xiàn)密碼數(shù)據(jù)保存功能;用電源電路為系統(tǒng)提供5V的穩(wěn)定電源電源;用12MHZ的晶振電路為系統(tǒng)的單片機提供內部時鐘。


系統(tǒng)的框圖如下圖所示:


         圖2.9 系統(tǒng)結構框圖

單片機中P1.0~P1.6連接10個獨立按鍵來組成一個矩陣鍵盤,實現(xiàn)鍵盤掃描并對按鍵進行編碼,從而實現(xiàn)輸入密碼和修改密碼的功能;P1.7通過NPN型三極管來驅動蜂鳴器,當輸入密碼錯誤三次后自動實現(xiàn)報警功能;P2.0~P2.7連接液晶顯示器的8位數(shù)據(jù)線,實現(xiàn)從單片機向液晶顯示器傳輸數(shù)據(jù);P3.0連接液晶的RS端和max232的out端、P3.1連接液晶的RW端和max232的in端、P3.2連接液晶的EN端,實現(xiàn)單片機控制液晶顯示器和連接串口的功能;P3.3連接獨立按鍵,按鍵后進入輸入密碼狀態(tài);單片機的P3.4、P3.5、P3.6都連接了獨立按鍵,這些獨立鍵盤都是功能鍵盤他們是:輸入密碼功能鍵,按下系統(tǒng)會進入輸入密碼狀態(tài);修改密碼功能鍵,按下系統(tǒng)會進入修改密碼狀態(tài);還有一個確定功能鍵,按下系統(tǒng)會實現(xiàn)確定功能;P3.6和 P3.7分別連接紅色LED燈和綠色的LED燈,實現(xiàn)密碼輸入是否正確指示的功能。

根據(jù)設計的要求和系統(tǒng)中所用到的元件的原理特征,確定了設計的總體方案即:以STC89C52為主控制器,SMC1602A液晶顯示為提示器件,矩陣鍵盤為輸入器件,蜂鳴器為報警器件,STC89C52內部的EEPROM為存儲數(shù)據(jù)器件,LED燈為指示器件,MAX232和上位機實現(xiàn)異步通信的器件等。這些器件與單片機的連接方式將在下面的內容進行說明。


本設計包括8個電路模塊,其中包括:指示燈電路模塊、5V電源電路模塊、晶振電路模塊、復位電路模塊、LCD顯示電路模塊、報警電路模塊、鍵盤電路模塊、串口電路模塊。


指示電路分為兩個部分:電源指示和密碼輸入狀態(tài)指示,設計電路如下圖所示:

3.2.1 電源指示燈電路設計

當電源接通后指示燈亮,表示系統(tǒng)供電正常。

圖3.1 電源指示燈電路

3.2.2  密碼輸入狀態(tài)指示電路設計

P3.6連接紅色LED1,LED1亮表示當前密碼輸入錯誤;P3.7連接綠色LED2,LED2亮表示當前密碼輸入正確,LED1、LED2全亮表示系統(tǒng)在修改密碼狀態(tài)。

圖3.2 密碼輸入狀態(tài)指示電路

設計電路如下圖所示:

圖3.3 電源電路接法電路

晶振電路這里采用的是內部振蕩器接法,晶振的頻率為12MHZ,它為單片機提供內部時鐘源,設計電路如下圖所示:

圖3.4 晶振電路


3.4 復位電路設計

單片機的復位本設計手動復位,復位的作用是防止程序由于某些原因跑飛,通過此鍵來保證單片機運行的可靠性,設計電路如下圖所示:

圖3.5 復位電路

3.5 LCD顯示電路設計

單片機的P2.0~P2.7連接液晶顯示器的7~14腳(8位數(shù)據(jù)),實現(xiàn)從單片機向液晶顯示器傳輸數(shù)據(jù)的功能;P3.0連接液晶4腳(RS端),從而實現(xiàn)單片機向其發(fā)送命令或數(shù)據(jù)功能;P3.1連接液晶的5腳(RW端),從而實現(xiàn)單片機對其讀寫的功能;P3.2連接液晶的6腳(EN端),這個引腳是用來編程控制lcd使能的。還有l(wèi)cd顯示器的3引腳連接10K歐姆的可變電阻器,當改變它的阻值大小時可以改變lcd顯示的對比度如,設計電路下圖所示:

圖3.6 液晶顯示電路

蜂鳴器的連接到單片機的P1.7端。當編程給P1.7一個高電平的話,三極管的源極和集電極導通,蜂鳴器將要通電,通過設置蜂鳴器的通電的時間來實現(xiàn)報警的聲音,設計電路如下圖所示:

圖3.7 報警電路

鍵盤電路分為兩種:矩陣式輸入鍵盤和獨立按鍵,矩陣式輸入鍵盤是(0~9)10個數(shù)輸入鍵,獨立按鍵共3個為功能鍵:輸入密碼鍵、修改密碼鍵、確定鍵,設計電路如下圖所示:

3.7.1  矩陣式鍵盤

矩陣鍵盤與單片機的引腳連接如下圖,其中的P1.0~P1.2是行掃描,P1.3~P1.6列掃描。

圖3.8 矩陣鍵盤電路

3.7.2  獨立式功能鍵

以下三個獨立按鍵是密碼鎖的功能鍵,S12連接P3.3實現(xiàn)進入輸入密碼狀態(tài)的功能;S13連接P3.4實現(xiàn)按鍵后進入修改密碼狀態(tài)的功能;S14連接P3.5實現(xiàn)確定功能。

圖3.9 功能鍵盤電路

串口電路的作用是將TTL電平轉換為CMOS電平,從而將PC機產生的hex文件拷貝到單片機中,設計電路如下圖所示:

圖3.10 串口電路

3.9   本章小結

根據(jù)設計的設計要求完成了以上所述的各個硬件部分的設計。系統(tǒng)硬件設計共分為8個部分:指示電路設計的作用是指示電源與密碼輸入狀態(tài)的指示作用;5V電源電路設計的作用是為系統(tǒng)提供穩(wěn)定的電壓;晶振電路設計的作用是為單片機的運行提供內部的時鐘脈沖;復位電路設計的作用是防止程序跑飛回復運行的作用;液晶顯示電路設計的作用是提示與指示操作的作用;報警電路設計的作用是當密碼輸入錯誤三次以上能夠報警;鍵盤電路設計的作用是向系統(tǒng)輸入數(shù)據(jù)和進入各種功能狀態(tài);串口電路設計的作用是將hex文件拷貝到單片機內部rom。


本系統(tǒng)軟件主要包括10個軟件程序模塊:主程序、鍵盤掃描程序、輸入密碼程序、修改密碼、時間顯示程序、時間調整程序、報警程序、對EEPROM操作程序、還原出廠設置程序、密碼校驗函數(shù)等函數(shù)模塊的設計。

主程序流程圖如下圖所示:

(圖片請下載附件中的word版本)

系統(tǒng)上電后,系統(tǒng)將對硬件中的寄存器進行初始化設置,初始化的寄存器主要是初始化單片機的內部定時器用哪個定時器就要使能該定時器然后設置它的定時初值;初始化液晶,主要是初始化lcd的顯示方式等;初始化單片機的IO端口等。當初始化完成后系統(tǒng)進入了顯示當前時間的等待狀態(tài),在顯示時間的同時系統(tǒng)在主函數(shù)中也不斷的調用以下幾個功能函數(shù):輸入密碼子函數(shù),修改時間子函數(shù),報警子函數(shù),一鍵還原子函數(shù)等。當系統(tǒng)檢測到有功能鍵按下的時候,系統(tǒng)就調用相應的子函數(shù)去執(zhí)行,來實現(xiàn)相應子程序的預設功能。

下面對主要的函數(shù)模塊的流程簡要的說明。


鍵盤掃描程序流程圖如下圖所示:

(圖片請下載附件中的word版本)

當系統(tǒng)用到鍵盤時就要對鍵盤進行掃描。鍵盤有10個數(shù)字鍵和3個功能鍵,數(shù)字鍵盤的連接方式見圖3.8和圖3.9。當系統(tǒng)檢測到有鍵按下的時候,這時系統(tǒng)將這個按下的鍵對應的鍵值傳遞給函數(shù)告訴主函數(shù)是哪個鍵按下,實現(xiàn)的方法是將按下鍵的序號付給一個變量,然后將這個變量的值返回給主函數(shù)。

為了實現(xiàn)在輸入密碼狀態(tài)和修改密碼2個狀態(tài)之間的自由切換,在鍵盤掃描電路的程序中又添加了兩個工作狀態(tài)的判斷程序,比如我現(xiàn)在是輸入密碼狀態(tài),現(xiàn)在我又想修改密碼。這時按一下對應的功能鍵就能進入想要進入的狀態(tài)。


輸入密碼程序流程圖如下圖所示:

(圖片請下載附件中的word版本)

圖4.3 輸入密碼程序流程圖

當按了輸入密碼鍵后,密碼鎖進入輸入密碼狀態(tài),首先系統(tǒng)將調用鍵盤掃描函數(shù)進行密碼的輸入,當6位密碼輸入完成后,此時需要按一下確認鍵,此時如果輸入的6位密碼全部正確,密碼鎖將會通過lcd提示密碼正確信息的提示,同時綠色的led燈亮表示輸入的密碼正確;當6位密碼輸入錯誤,密碼鎖將會有通過lcd提示密碼錯誤的提示同時紅色的led指示燈亮表示輸入的密碼錯誤,此時錯誤次數(shù)加一,如輸錯的次數(shù)到達系統(tǒng)設置的要求的話密碼鎖將自動產生報警信號。如果在輸入密碼狀態(tài)沒有對系統(tǒng)進行任何的操作的話,30秒后系統(tǒng)將自動的跳到等待狀態(tài)。


修改密碼程序流程圖如下圖所示:

(圖片請下載附件中的word版本)

圖4.4 修改密碼程序流程圖

當按下修改密碼鍵后,密碼鎖將進入修改密碼狀態(tài),此時的紅色和綠色的指示燈都亮表示當前的狀態(tài)是修改密碼狀態(tài),系統(tǒng)調用鍵盤掃描函數(shù)進行密碼的輸入,當6位密碼輸入完成后需要按一下確認鍵,此時如果輸入的6位密碼全部正確,密碼鎖進入修改密碼狀態(tài);當6位密碼輸入錯誤那么會有密碼輸入錯誤的提示;進入修改密碼狀態(tài)后,系統(tǒng)將再一次的調用鍵盤掃描函數(shù)進行新的密碼輸入,要求輸入新的6位密碼,輸完后按確認鍵后,系統(tǒng)會有修改密碼成功的提示;如果按了修改密碼功能鍵后沒有對系統(tǒng)進行任何的操作的話,30秒后系統(tǒng)將自動的跳到等待狀態(tài)。

報警程序流程圖如下圖所示:

(圖片請下載附件中的word版本)

圖4.5 報警程序流程圖

在報警函數(shù)主要設置了報警聲音的頻率,當報警條件滿足時,系統(tǒng)將由蜂鳴器進行十次報警。和蜂鳴器連接的是NPN型號的三極管,當給驅動引腳送一個高電平則蜂鳴器通路,開始報警,當給驅動引腳送一個低電平則蜂鳴器不通,停止報警。


(圖片請下載附件中的word版本)

                           

系統(tǒng)上電后,將初始化定時器,然后系統(tǒng)向液晶的第一行送入now time數(shù)據(jù),然后向液晶的第二行送入時間數(shù)組的值。

(圖片請下載附件中的word版本)

圖4.7 時鐘設置流程圖

當按下修改時間功能鍵后,系統(tǒng)將停止定時并記錄按下此鍵的次數(shù),按下的次數(shù)為1的時候將對秒的個位進行校準;按下的次數(shù)為2的時候將對秒的十位進行校準等等,當按下的次數(shù)為7時候,系統(tǒng)將開啟定時,這時時鐘將按照設置好的時間值進行計時。


EEPROM操作(讀、寫、擦除)程序流程圖如下圖所示:


(圖片請下載附件中的word版本)

              圖4.8 對EEPROM進行讀操作流程圖            


(圖片請下載附件中的word版本)


圖4.9 對EEPROM進行讀操作流程圖



(圖片請下載附件中的word版本)


圖4.10 對EEPROM進行擦除操作流程圖


本章介紹的主要是基于硬件平臺的軟件的流程,通過keil uvision3軟件的編程來實現(xiàn)任務書中要求的各個功能。本系統(tǒng)共設計了10個功能模塊,每個功能模塊的實現(xiàn)都是是經過不斷的編寫、不斷的調試、不斷的改進實現(xiàn)的。對編寫好的電子密碼鎖的代碼進行編譯、鏈接生成了hex文件,最后下載到焊接好的硬件平臺上,在下面的章節(jié)中將對測試系統(tǒng)功能進行詳細介紹。


在設計完硬件和軟件后對系統(tǒng)也進行仿真,這里用的仿真軟件是protues。仿真運行結果沒什么問題,可以滿足設計要求。將hex文件拷貝到實際的硬件電路上的單片機上,然后進行測試設計要求的各種功能。通過測試和調試不斷的提高系統(tǒng)的可靠性與可執(zhí)行性。


5.1系統(tǒng)仿真測試與調試

系統(tǒng)調試用到的軟件是keil uvision3和protues,將keil uvision3和protues仿真軟件結合起來,仿真實現(xiàn)各種功能能否實現(xiàn),然后再將軟件加載到硬件上。調試過程很重要,因為在代碼編寫的過程中,調試能夠清楚的了解程序運行的順序和各個函數(shù)之間的調用情況,更重要的是調試能夠幫助找到程序中遇到的不可理解的錯誤。經過多次對代碼的調試,系統(tǒng)的軟件部分可以滿足系統(tǒng)的設計要求,使設計合理、完美。

下面對protues仿真結果進行簡要的說明:

圖5.1 KC51調試界面



圖5.4  仿真時鐘顯示功能

              通過以上一步一步的調試和仿真,說明設計的軟件部分可以滿足系統(tǒng)設計的要求,接下來對系統(tǒng)的硬件電路進行調試。當把所有的元器件都有序的焊接到電路板上后,主要應用萬用表來檢查焊接好的電路電壓是否正常,檢查焊接的節(jié)點有沒有虛焊、漏焊、短接等情況。

如果軟件與硬件調試都沒什么問題的話,應用STC系列單片機的程序下載工具,將軟件編寫好后生成的hex文件拷貝到單片機內部,然后按復位鍵,開始測試系統(tǒng)的各項功能。

下載工具如下圖所示:


5.2系統(tǒng)測試及結果分析

              下面主要按照第三章第一小節(jié)中功能要求來對密碼鎖系統(tǒng)所要求的功能來進行一一測試。

5.2.1  測試液晶顯示屏的提示與指示操作功能。

空閑顯示時間和提示操作信息等。測試結果如下圖所示:

         

圖5.6 液晶顯示屏的提示功能

5.2.2  測試系統(tǒng)在空閑狀態(tài)顯示時間并校對時間功能。

空閑狀態(tài)時顯示當前時間。測試結果如下圖所示:

圖5.7 空閑狀態(tài)顯示當前時間

當按下校對時間功能鍵后進入時間校準狀態(tài)。測試結果如下圖所示:

         

對秒的個位校準                                                對秒的十位進行校準

        

對分的個位進行校準                   對分的十位進行校準

        

對時的個位進行校準                                  對時的十位進行校準

圖5.8 校對時間狀態(tài)

5.2.3  測試系統(tǒng)在輸入密碼和報警功能

系統(tǒng)初始密碼為528825,當按下輸入密碼功能鍵后屏幕會顯示輸入密碼提示信息。測試結果如下圖所示:

圖5.9 輸入密碼狀態(tài)

輸入密碼后結果為:

圖5.10 輸入6位密碼

按確認鍵后:

如果密碼輸入正確結果提示信息為:hello 請關門;密碼輸入正確綠燈亮表示輸入密碼正確。測試結果如下圖所示:

      

圖5.11 密碼輸入正確


如果密碼輸入錯誤,lcd1602a上的提示信息內容為:密碼輸入錯誤,請按輸入密碼鍵進行重輸入密碼;紅色的led亮表示輸入密碼錯誤。測試結果如下圖所示:

      

圖5.12 密碼輸入錯誤


如果密碼輸入錯誤達到三次液晶顯示會有報警提示,蜂鳴器將進行報警。測試結果如下圖所示:


圖5.13 報警狀態(tài)


5.2.4  測試系統(tǒng)修改密碼功能

初始密碼為528825;按下修改密碼功能鍵后,紅色的led和綠色的led亮(當修改密碼時這兩個燈都亮)。測試結果如下圖所示:

        

圖5.14 修改密碼狀態(tài)

輸入密碼鎖系統(tǒng)的6位密碼正確則進入修改密碼狀態(tài),密碼正確后要求設置新密碼,當按了確定鍵后新密碼設置成功。測試結果如下圖所示:

        

圖5.15 輸入新密碼

         

圖5.16 設置新密碼

         

圖5.17 測試新密碼輸入正確


當初始密碼輸入錯誤,測試結果如下圖所示:(提示信息為:對不起 密碼錯誤,修改密碼錯誤)

圖5.18  測試新密碼輸入錯誤


5.2.5  測試系統(tǒng)密碼數(shù)據(jù)保護功能

比如說電子密碼鎖初始的密碼為528825,現(xiàn)在將它改為123123。這時突然掉電,當系統(tǒng)再次接上電后,現(xiàn)在可以用123123來進行輸入密碼。測試結果如下圖所示:


                     

         

                                 

         

圖5.19  測試密碼數(shù)據(jù)保護

5.2.6  測試30秒到切換狀態(tài)功能

比如按下修改密碼功能鍵或輸入密碼功能鍵,按下此鍵后如果沒有對系統(tǒng)做任何操作,30秒后將回到等待狀態(tài)。測試結果如下圖所示:

         

圖5.20  30秒到狀態(tài)切換功能

5.2.7  測試一鍵還原初始密碼功能

當按下一鍵還原功能鍵后,(此時系統(tǒng)提示信息意思為:初始化密碼完成)之后就可以用初始密碼進行開鎖了。測試結果如下圖所示:

圖5.21  一鍵還原出廠密碼

結  論

設計的基于單片機的電子密碼鎖實現(xiàn)了密碼鎖的常用功能和技術指標。在指導老師精心指導和自己的不懈努力下完成了軟件和硬件的各項工作,現(xiàn)在系統(tǒng)各項功能運行正常,基本上完成了任務書中的要求和任務。

系統(tǒng)中用LCD1602A來顯示提示信息,使系統(tǒng)更加實用。

電子密碼鎖最重要的方面就是具有較高的可靠性,本文設計的密碼鎖具有密碼數(shù)據(jù)保護功能和備用電源等措施來增加系統(tǒng)的可靠性。在數(shù)據(jù)保護方面,應用單片機內部的eeprom,這樣使硬件資源利用率大大提高。

由單片機控制器系統(tǒng)控制密碼鎖在空閑狀態(tài)顯示當前時間的同時不斷的檢測那幾個功能鍵是否被按下,如果有功能鍵按下,之后系統(tǒng)就馬上進入相應的功能狀態(tài)。




附錄A 系統(tǒng)總電路圖

附錄B 系統(tǒng)PCB版圖
附錄C 系統(tǒng)元件布局圖

附錄E 部分源程序清單
主程序程序:

1
  1. void main()
  2. {
  3.     init();
  4.               while(1)            
  5.               {            
  6.                             display();
  7.                             szkey();
  8.                             gaimihs();
  9.                             mimahs();
  10.                             if(errcount==3)                                        //輸入密碼三次錯誤報警
  11.                             {
  12.                                           write_com(0x01);
  13.                                           write_com(0x80);
  14.                                           for(i=0;alarm[i]!='';i++)
  15.                                           {
  16.                                                         write_data(alarm[i]);
  17.                                                         delay(1);
  18.                                           }                                         
  19.                                           fayin();
  20.                                           errcount=0;
  21.                             }
  22.                             initpaswd();                                                                     
  23.               }                                                                     
  24. }
復制代碼

很開心你和我做的項目一樣,我這里有我當初寫的程序和設計的電路板。

以上圖文的Word格式文檔下載(內容和本網(wǎng)頁上的一模一樣,方便大家保存):
文檔下載地址(為防止有人照搬,附件不含代碼和仿真,僅供學習參考): 文檔.7z (2.61 MB, 下載次數(shù): 649)

作者: 1106818916    時間: 2016-4-18 14:43
最近在做1602顯示的計算器,想拓展功能  就這個了。
作者: VxpV    時間: 2016-11-25 10:58
感謝大神的幫助
作者: ANSELWX    時間: 2016-12-29 22:54
想看看完整的程序
作者: 18824162221    時間: 2017-1-9 22:39
我下載了,請問你那個php文件怎么打不開。要用什么打

作者: 楊喬亦    時間: 2017-3-17 21:03
親,你好,可以加我微信交流一下嗎 yy643720230
作者: 過去的黑    時間: 2017-3-26 00:29
謝謝樓主,支持
作者: rainbow3    時間: 2017-6-10 15:17
謝謝分享

作者: kirby004    時間: 2017-7-19 21:51
想看看完整的程序
作者: binjunsong    時間: 2017-10-26 16:03
沒有下載文件
作者: 愛小琳琳    時間: 2017-11-16 20:47
感謝樓主  給我擴展思維 很有幫助 謝謝
作者: ggg620    時間: 2017-11-17 13:06
hen'ba 很棒哦,謝謝樓主
作者: LRX1113100356    時間: 2017-11-17 16:29
樓主很棒,學到很多,謝謝
作者: 化相如真    時間: 2017-12-4 16:19
很棒


作者: 殘月丿.    時間: 2017-12-11 16:37

樓主很棒,學到很多,謝謝

作者: 花開花謝是非    時間: 2017-12-19 20:18
樓主,加我QQ給我發(fā)一下吧,2322487244謝謝
作者: 州中制作    時間: 2017-12-26 13:46
請問有沒有全部程序
作者: 一半大仁    時間: 2017-12-27 22:20
很詳細,很管用 剛剛好最近要做課程設計
作者: windylc000    時間: 2017-12-28 14:53
感謝分享

作者: iLMarvel    時間: 2018-1-6 15:08
可以,多謝樓主
作者: 1439871027    時間: 2018-1-15 10:50
謝謝分享啊啊啊啊啊
作者: 州城zc    時間: 2018-3-6 19:13
很強勢
作者: 電子4    時間: 2018-3-12 10:39
請問有完整程序嗎?
作者: 8789361500    時間: 2018-3-12 19:40
感謝樓主啊 真的非常棒
作者: linnyshow    時間: 2018-3-13 20:57
挺不錯的,感謝分享
作者: 篤三信    時間: 2018-3-18 11:17
挺好的

作者: yudazhu    時間: 2018-4-14 08:44
好棒,好想要源程序
作者: 125123456    時間: 2018-4-30 20:22
很有用,感謝
作者: wcc1    時間: 2018-5-15 23:54
很好,很有用
作者: nzh810124    時間: 2018-5-16 08:31
挺不錯的,非常棒哦
作者: 821416759    時間: 2018-6-23 23:20
絕世好帖!
作者: 15276691870    時間: 2018-6-28 22:22
程序和仿真圖有嗎?
作者: 南666666    時間: 2018-7-3 08:33
樓主給我發(fā)一下好嘛QQ2396457790
作者: 2512410269    時間: 2018-7-10 11:10
你這個是怎么實現(xiàn)錯誤后如何不能再輸入的啊
作者: 小小斑鳩    時間: 2018-8-24 17:22
可以使用TTP229觸摸鍵盤會高大上一點吧

作者: 小小斑鳩    時間: 2018-8-25 14:02
能不能發(fā)一下全部程序
作者: ggg620    時間: 2018-10-28 14:30
謝謝樓主。666
作者: Angel電    時間: 2018-11-11 14:54
很幫的教程
作者: Undo    時間: 2018-11-16 15:12
怎么下載呀
作者: Undo    時間: 2018-11-16 15:13
畢業(yè)論文選的這個 怎么辦
作者: Undo    時間: 2018-11-20 18:25
樓主 你們的 12篇文獻論述怎么弄的  有嗎
作者: 1518921    時間: 2018-11-23 19:42
厲害,很贊

作者: 1642783812    時間: 2018-12-17 17:07
大佬發(fā)我一份吧1642783812@qq.com
作者: lzqkk    時間: 2019-1-8 11:49
windylc000 發(fā)表于 2017-12-28 14:53
**** 作者被禁止或刪除 內容自動屏蔽 ****

謝謝分享
作者: 123456啦啦    時間: 2019-1-10 15:12
真棒


作者: @小湫    時間: 2019-1-12 17:06
樓主,剛才我自己仿真了一下,發(fā)現(xiàn)無法報警
作者: bg3irm    時間: 2019-1-12 22:46
挺好,挺詳細的。
作者: EB_Chen    時間: 2019-3-21 08:57
下的附件里面沒有別的程序喔。。。
作者: 634169866    時間: 2019-12-24 20:54
謝謝指導
作者: llllly    時間: 2020-3-25 14:58

謝謝樓主,支持
作者: 小阿呆    時間: 2020-4-7 23:06
樓主,怎么才能得到全部內容呀




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1