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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 63419|回復: 23
打印 上一主題 下一主題
收起左側

基于單片機的電子密碼鎖設計與實現 論文下載

  [復制鏈接]
跳轉到指定樓層
樓主
介紹比較完整的

畢 業 設 計
題目:基于單片機的電子密碼鎖設計與實現
姓       名:       王x雪      
學       號:2010080403204
學        院:      信息學院     
專        業:    電子信息工程   
指 導  教 師:張x杰
協助指導教師:



摘    要
近年來,隨著改革開放的深入發展,電子電器的飛速發展。人民的生活水平有了很大提高。各種高檔家電產品和貴重物品為許多家庭所擁有。然而不法分子也是越來越多,原因在于大部分人防盜意識還不夠強,造成偷盜現象屢見不鮮。越來越多的居民家庭對財產安全問題十分擔憂。因此,出于安全方便等方面的需求,電子密碼鎖相繼問世。
本設計是以單片機AT89S51為主控芯片,并結合外圍液晶顯示LCD1602、存儲芯片AT24C02、紅外遙控HS0038,以及鍵盤輸入、復位、電源等電路組合而成。系統能夠完成開鎖、報警、修改密碼等基本功能,還能夠通過紅外來控制單片機的開鎖,以及掉電儲存密碼的功能。整個設計在Keil開發環境下,用C語言編寫主控芯片的控制程序來實現具有多功能的電子密碼鎖。

目  錄
摘    要
Abstract
引   言
1 概述
1.1 課題背景和意義
1.2電子密碼鎖的發展趨勢
2 系統總體設計思路
2.1 系統設計要求
2.2系統設計方案
3 系統硬件設計與實現
3.1主控芯片AT89S51
3.2 存儲模塊AT24C02
3.3紅外模塊HS0038
3.4 顯示模塊LCD1602
3.5 電源電路模塊
3.6 鍵盤輸入模塊
3.7 報警電路
3.8 開鎖電路
3.9 復位電路
3.10串行通信電路
3.11 系統整體原理圖
4系統軟件設計
4.1 主程序設計
4.2鍵值判斷設計
4.3開鎖設計
4.4密碼修改設計
4.5 紅外遙控設計
4.6 Keil編程軟件介紹
5 仿真設計
5.1 Protues仿真軟件概述
5.2 Protues與Keil的連調
5.3 Protues與Keil的連調的仿真結果
5.4問題及解決辦法
結   論
致    謝

引   言
隨著新技術的不斷開發與應用,近年來單片機發展十分迅速,一個以微機應用為主的新技術革命浪潮正在蓬勃興起,單片機的應用已經滲透到冶金、電力、建材、化工、機械、石油、食品等各個行業。單片機控制無疑是人們追求的目標之一,它所給人們帶來的方便也是不可否認的其中單片機控制就是一個典型的例子。MCS-51系列單片機應用廣泛,是學習單片機技術較好的系統平臺,同時也是單片機微型計算機應用系統開發的一個重要系列。目前,單片機原理與應用教材大都采用匯編語言講解和設計程序實例,但匯編語言學習困難。在實際應用系統開發調試中,特別是開發比較復雜的應用系統時,為了提高開發效率和使程序便于移植,現在多用C語言。
在信息產業飛速發展的今天,我們生活中必不可需的設備都向著小型化、便攜化、智能化、自動化的方向發展。所以電子密碼鎖隨著快節奏的生活應運而生。在我國六七十年代還是傳統的一把鑰匙配一把鎖,不管是單位還是個人每天都要認真檢查是否鎖上了門,而且鑰匙還不能隨便亂放,一旦不小心忘記放在哪里很可能就打不開門了。傳統的鎖也相當的不安全,會有一些不法分子想盡辦法打開你的房鎖去偷盜東西。電子密碼鎖的產生使得這些問題都不再是問題,我們只需簡單的記住六位密碼即可。
1 概述
1.1 課題背景和意義
人們從前使用的鎖不但不方便,而且安全系數也比較低。隨著社會的進步和人們生活水平的提高,老式的鎖已經跟不上人們的要求,況且人們對防盜的要求越來越高,特別是對使用的便捷性也有了更高的需求。因此近幾年一種新型的電子密碼鎖應運而生,受到了人們的青睞。有報警功能的密碼鎖這時正為人們解決了不少問題。但是市場上的密碼鎖大部分都是用于一些大公司財政機構、價格高昂,一般人們難以接受。如果再設計和生產一種價格低廉、性能靈敏可靠的密碼鎖,必將在防盜和保證財政安全方面發揮更加有效的作用。
密碼鎖是現代生活中經常用到的工具之一,廣泛應用于保險柜、房門、賓館、車庫等。電子密碼鎖克服了機械式密碼鎖量少、安全性能差的缺點,特別是使用單片機控制的智能電子密碼鎖,不但功能全,而且具有更高的安全性和可靠性。并且電子密碼鎖只需記住一組密碼,無需攜帶鑰匙,免除了人們攜帶鑰匙的煩惱,被越來越多的人所喜歡。隨著我國第三產業的飛速發展,電子密碼鎖會在不久的將來得到廣泛的應用,方便社會和個人。
1.2電子密碼鎖的發展趨勢
20世紀80年代后,隨著電子鎖專用集成電路的出現,電子鎖的體積縮小,同時可靠性提高,成本也相對提高,所以只適合使用在安全性要求較高的場合,且需要有電源提供能量,使用還局限在一定范圍,難以普及,所以對密碼鎖的研究一直沒有明顯進展。到了90年代,美國、意大利、德國、日本、加拿大、韓國以及我國的臺灣、香港等地的微電子技術的進步和通信技術的發展為密碼鎖提供了技術上的支持,從而推動密碼鎖走向實際應用的階段。目前,在西方國家,電子密碼鎖技術相對先進,種類齊全,電子密碼鎖已被廣泛應用于智能門禁系統中,使之更加安全更加可靠實現大門的管理。我國于90年代初期開始對密碼鎖進行初步的探索。到目前為止,隨著電子技術和信息技術的發展,電子密碼鎖的技術領域已發展的十分成熟。從目前的技術水平和市場認可程度看,使用最為廣泛的是鍵盤式電子密碼鎖,該產品主要應用于保險箱、保險柜和金庫,還有一部分應用于保管箱和運鈔車。在其他技術領域還有遙控式電子密碼鎖以及卡片式密碼鎖等。


2 系統總體設計思路
2.1 系統設計要求
單片機密碼鎖主要內容:用戶可以自由設定密碼、具有報警提示功能、可設置萬用密碼、具有掉電存儲密碼功能。
2.2系統設計方案
本系統采用以單片機為核心元件的控制方案。由于單片機種類繁多,各種型號都有其一定的應用環境,因此在選用時要多加比較,合理選擇,以獲得最佳的性價比。一般來說在選取單片機時從下面幾個方面考慮:性能、存儲器、運行速度、I/O口、定時/計數器、串行接口、模擬電路功能、工作電壓、功耗、封裝形式、抗干擾性、保密性,除了以上的一些方面外,還有一些最基本的條件,比如:中斷源的數量和優先級、工作溫度范圍、有沒有低電壓檢測功能、單片機內有無時鐘振蕩器、有無上電復位功能等。在開發過程中還要考慮開發工具、編程器、開發成本、開發人員的適應性、技術支持和服務等因素。基于以上因素本設計選用單片機AT89S51作為本設計的核心元件,利用單片機靈活的編程設計和豐富的I/O端口,及其控制的準確性,實現基本的密碼鎖功能。在單片機的外圍電路外接輸入鍵盤用于密碼的輸入和一些功能的控制,外接AT24C02芯片用于密碼的存儲,外接LCD1602顯示器用于顯示作用。其原理如下圖1所示。






                            AT89S51






1單片機控制方案

3 系統硬件設計與實現
3.1主控芯片AT89S51
在本設計中選用 ATMEL 公司的 AT89S51單片機作為主控芯片。它是一款低功耗,AT89S51就是一款廣泛應用的,高性能CMOS 8位單片機,由于系統控制方案簡單,數據量也不大,考慮到電路的簡單和成本等因素,因此在本設計中選用 ATMEL 公司的 AT89S51單片機作為主控芯片。主控模塊采用單片機最小系統是由于 AT89S51芯片內含有8 B的 E2PROM ,無需外擴存儲器,電路簡單可靠,其時鐘頻率為 0~24 MHz,并且價格低廉,批量價在 10元以內。AT89S51是一款功能強大的微型計算機,它可為許多嵌入式控制應用系統提供高性價比。
單片機的最小系統是由復位電路、時鐘電路和電源組成。復位操作有上電自動復位、按鍵復位和外部脈沖復位3種方法。本文采用的是上電復位它是通過系統外部的復位電路來實現的。根據電路原理可知電容兩極板間的電壓不能突變當單片機電源接通電源的瞬間單片機的9管腳會產生一個階躍信號,所以RTS端維持高電平由于這個充電時間遠遠大于1ms,一般就可以實現對單片機的上電自動復位,即接通電源就完成了系統的初始化。
初始化是為了讓單片機從地址0000H開始執行, 除此之外單片機要想正常工作還必須有時鐘電路,時鐘電路是產生時序的基礎,單片機每執行一條指令都是建立在時序電路上的,為了能保證單片機執行指令的同步,電路就要在唯一的時鐘信號控制下按時序的先后進行工作。它分為內部時鐘電路和外部時鐘電路。本文采用的是內部時鐘電路,在MCS—51單片機的內部有一個高增益的反向放大器,其輸入端為引腳XTAL1,輸出端為XTAL2,只要在外部接上兩個電容和一個晶振,就能夠成一個穩定的自激振蕩器。
這里主要看一下電容和晶振的選擇,晶振的大小與單片機的振蕩頻率有關,電容的大小影響著振蕩器振蕩的穩定性和起振的快速性,通常選擇10~30pF的瓷片電容。本系統電容選擇為33pF,晶振為12MHz之所以選擇這一頻率的晶振是為了在進行單片機與電腦進行串口通信時容易產生和電腦時鐘同步的波特率,另外在設計電路時,晶振和電容應盡可能的靠近芯片,這樣可以提高系統的抗干擾能力,電源部分,電源與地之間可以接一個0.1uF的電容,它用來濾除電源的紋波,使單片機穩定工作,單片機最小系統如圖3-1所示。



                       3-1 單片機最小系統

    單片機引腳說明:

VCC:電源電壓輸入端。

GND:電源地。

P0口:P0口是一個8位漏極開路雙向I/O端口,每個引腳可以吸收8TTL門電流。P0口當作數據輸出時需要加上拉電阻,當P0口的I/O口被寫“1”后,被定義為高阻抗輸入狀態。P0可以用于外部程序數據存儲器,P0口可以是地址的低八位以及數據輸出口。
P1口:P1口是一個8位雙向的I/O端口單片機內部加上了上拉電阻的端口,P1口緩沖器可接收的4TTL柵極電流輸出。P1口的I/O口被寫 “1”后,內部上拉的是高的,可以作為輸入,P1口外部下拉低時輸出電流,這是因為有內部上拉的緣故。
P2口:P2口是一個8位雙向的I/O端口單片機內部加上了上拉電阻的端口,P2口緩沖器可接收的4TTL柵極電流輸出。當P2口的I/O口被寫“1”后,內部上拉的是高的,可以作為輸入,P2口外部下拉低時輸出電流,這是因為有內部上拉的緣故。當P2口用于外部程序存儲器或外部數據存儲器時P2口是地址高八位輸出。

P3口:P3口是一個8位雙向的I/O端口單片機內部加上了上拉電阻的端口,P3口緩沖器可接收的4TTL柵極電流輸出。P3口的I/O口被寫“1”后,內部上拉的是高的,可以作為輸入,P3口外部下拉低時輸出電流,這是因為有內部上拉的緣故。P3口除了普通I/O口功能,還有其第二功能

P3.0 RXD(串行輸入口)

P3.1 TXD(串行輸出口)

P3.2 /INT0(外部中斷0)

P3.3 /INT1(外部中斷1)

P3.4 T0(T0定時器的外部計數輸入)

P3.5 T1(T1定時器的外部計數輸入)

P3.6 /WR(外部數據存儲器的寫選通)

P3.7 /RD(外部數據存儲器的讀選通)

RST:復位引腳高電平時MCU復位,復位信號輸入端口,當MCU要復位時,給與此引腳高電平,高電平持續時間是不少于兩個機器周期的時間。
ALE/PROG:地址鎖存使能以及編程脈沖信號端口。當單片機訪問外部的存儲器時,地址鎖存使能鎖存地址低八位。通常情況下,ALE引腳輸出單片機外部振蕩器的頻率的1/6的頻率輸出。應該注意到的是:當用于單片機擴展外部的數據存儲器時,它會少一個ALE脈沖。如果你想禁止ALE輸出可以設置為0在SFR8EH地址。此時,ALE只有在執行MOVX,MOVC指令時ALE才起作用。此外,ALE引腳倍稍微拉高。如果微處理器在外部執行狀態ALE的禁令,設置無效。
PSEN:程序存儲器允許輸出控制端,在讀外部程序存儲器時PSEN低電平有效,以實現外部程序存儲器單元的讀操作。
EA/VPP:外部程序存儲器訪問允許。當/EA接高電平時,單片機讀取內部程序序存儲器,當擴展有外部ROM時,當讀完內部ROM后自動讀取外部ROM,當/EA接低電平時,單片機直接讀取外部程序存儲器。
XTAL1:片內振蕩器反相放大器和時鐘發生器的輸入端。
XTAL2:片內振蕩器反相放大器的輸出端。


3.2 存儲模塊AT24C02
存儲模塊的設計是把WP引腳接到GND上因為要讓器件進行正常的讀/寫操作,把SDA串行數據/地址與單片機的P3.7引腳使AT24C02與單片機進行所有數據的發送或接收,把SCK串行時鐘引腳與單片機的P3.6引腳相連接,讓單片機產生一個AT24C02工作的時鐘,使其正常的工作。存儲模塊電路如圖3-2所示。








3-2存儲模塊 AT24C02硬件結構
AT24C02的特點:數據線看門狗定時器;可編程復位門級;高數據傳輸速率400kHz速率和I2C總線;2.7V至7V電壓;低功耗CMOS工藝兼容;16 bespate寫緩沖區;反撇寫保護芯片;高低電平復位信號輸出;100萬擦除周期;保存長達100年。
定義如下的總線狀態,見圖3-3。

3-3 總線時序
  • 總線空閑(狀態A)
   數據線和時鐘線都保持高電平狀態。
  • 起始信號(狀態B)
    時鐘線保持高電平期間,數據線從高電平到低電平的跳變作為I2C總線的起始信號。所有操作都必須以起始信號為前提。
  • 停止信號(狀態C)
    時鐘線保持高電平期間,數據線從低電平到高電平的跳變作為I2C總線的停止信號。所有操作都必須以停止信號結尾。
  • 數據有效(狀態D)
    起始信號之后,在時鐘信號保持高電平期間,數據線傳送的數據有效。
    數據線上的數據必須在時鐘信號為低電平時改變,以傳輸下一字節的數據。每傳輸一字節的數據,就會有一個時鐘信號的暫停。
數據傳輸都必須以起始信號開頭,以停止信號結尾。在起始信號和停止信號期間傳輸數據的總量大小由主器件決定,理論上是沒有限制的。但是在寫狀態下只有最后16個周期傳送的數據會被寫入。如果待寫入的數據超出了這個限制,會根據先入先出的原則覆蓋掉前面的數據。










    每一個被尋址到的從設備,在成功接收一個字節的數據后,都必須產生一個應答信號。主設備必須增加一個額外的時鐘信號,接收從器件對收到數據的響應。器件應答的方式是在響應時鐘周期時將SDA線拉低,表示其已收到一個8位數據。如圖3-4。當然,調整時間和保持時間都必須計算在內。主器件在傳送完最后一個字節的數據之后,不傳送應答信號,從而向從器件標明數據傳送結束。在這種情況下,從器件必須保持SDA高電平,使主器件可以產生停止信號。當AT24C02在內部讀寫周期內是不會產生任何響應信號的。

3.3紅外模塊HS0038
紅外數據傳輸的特點:成本廉價、建設工程期短、適應性好、擴展性好、設備維護上更容易實現。使用紅外模塊進行傳輸,豐富了系統的功能,提高了系統的可操作性,因而達到了交互式與智能化。紅外數據傳輸廣泛地運用在紅外遙控系統和車輛的監控、門禁系統、小區的安全防火系統和傳呼系統、身份的識別、非接觸RF的智能卡等。工業設備中,在高壓,輻射、有毒氣體、粉塵等環境下,采用紅外遙控不僅完全可靠而且能有效地隔離電氣干擾。
一體化紅外線接收頭三個管腳分別是地、+5 V電源、解調信號輸出端接在單片機P3.3引腳上。利用外部中斷進行數據的接收。下圖3-5為紅外模塊硬件結構。

3-5 紅外模塊硬件結構
紅外線接收器大都將信號的接受、放大、檢波等集于一身,而且可以經過編碼解碼時單片機收到可識別的信號源。這樣一來便會減少硬件設計過程中的麻煩,使電路簡單化,且應用起來比較方便。下圖為紅外一體化接受頭HS0038,外觀圖如圖所示。



                      3-6紅外接收元器件
3.4 顯示模塊LCD1602
如果想要了解系統的運行與工作狀態顯示器是不可缺少的,顯示器是一個典型的輸出設備并且它的實際應用也是極為廣泛的,幾乎所有的電子產品都會使用到顯示器其差別僅在于顯示器的結構類型不同而已。最簡單的顯示器可以是LED發光二極管或者數碼管,它可以給出一個簡單的開關信息或者數字顯示,而需要顯示復雜的完整的信息上述的器件就不能勝任,而液晶的出現就很好的解決了這一問題,它不僅顯示內容豐富而且好節約了單片機的管腳資源。本設計采用的是液晶顯示LCD1602。LCD1602內部的字符已經儲存了不同的字符形式,每一個字符都有一個固定的代碼,其代碼與標準的ASCII字符代碼一致。因此只要寫入顯示字符的ASCII碼即可,這種標準化的設計給使用帶來很大的方便。比如英文字母“C”的ASCII代碼是01000011(43H),顯示時單片機往液晶模塊寫入顯示指令,模塊就會把地址為43H中的點陣字符圖形識別出,并會在液晶屏相應位置上看到字母“C”。
LCD1602液晶顯示與單片機的連接可以分為兩種方式:總線方式和模擬口線方式。在實驗中,我們常采用模擬口線連接方式。如圖3-7所示。                           



3-7 顯示模塊硬件結構
目前市場字符液晶絕大多數是基于HD44780的液晶芯片,控制原理是完全相同的,因此基于HD44780的寫控制程序可以很容易地應用到市場上大部分的字符液晶。LCD1602液晶的幾個特性:+5V電壓、對比度可調、內含復位電路;提供各種控制命令,如:清屏、字符閃爍、光標閃爍、顯示移位等多種功能;有80字節顯示數據存儲器DDRAM;內建有160個5X7點陣的字型的字符發生器CGROM 8個可由用戶自定義的5X7的字符發生器CGRAM。

       3-1 LCD液晶屏引腳說明

編號

符號

引腳說明

編號

符號

引腳說明

1

VSS

電源地

9

D2

Data I/O

2

VDD

電源正極

10

D3

Data I/O

3

VEE

液晶顯示偏壓信號

11

D4

Data I/O

4

RS

數據/命令選擇端(H/L)

12

D5

Data I/O

5

R/W

讀寫選擇端(H/L)

13

D6

Data I/O

6

E

使能信號

14

D7

Data I/O

7

D0

Data I/O

15

BLA

背光源正極

8

D1

Data I/O

16

BLK

背光源負極

LCD1602采用標準的16腳接口,其中VSS為地電源,VDD接5V正電源,VEE為液晶顯示器。RS為寄存器選擇,高電平時選擇數據寄存器、低電平時選擇指令寄存器。RW為讀寫信號線,高電平1時進行讀操作,低電平0時進行寫操作。E端為使能端。D0~D7為8位雙向數據線。
3.5 電源電路模塊
控制系統主控制部分電源需要用5V直流電源供電,其電路如圖3-8所示,把有效值為220V頻率為50Hz單相交流電壓轉換為幅值穩定的5V直流電壓。其主要原理是把單相交流電,經過電源變壓器降壓。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
由于輸入電壓為電網電壓,一般情況下所需直流電壓的數值和電網電壓的有效值相差較大,因而電源變壓器的主要作用是起到降壓作用。降壓后還是交流電壓,所以需要整流電路把交流電壓轉換成直流電壓。由于經整流電路整流后的電壓含有較大的交流分量,會影響到負載電路的正常工作。需要通過低通濾波電路濾除交流成分使輸出電壓平滑穩定。穩壓電路的功能是使輸出直流電壓基本不受負載電阻變化和電網電壓波動的影響,從而獲得穩定性足夠高的直流電壓。本電路使用集成穩壓芯片LM7805解決了電源穩壓問題,在穩壓芯片的前段分別放置兩個電容主要是為了濾除電源中的高低頻干擾而在芯片之后又經過一級的濾波以使電源更為潔凈,并在電源輸出端加上LED以此來顯示電源的開關狀態。


3-8 電源電路硬件結構
3.6 鍵盤輸入模塊
鍵盤是單片機十分重要的輸入設備,是實現人機對話的紐帶。鍵盤是由一組規則排列的按鍵組成,一個按鍵實際上就是一個開關元件,即鍵盤是一組規則排列的開關。根據按鍵與單片機的連接方式不同,按鍵主要分為獨立式按鍵和矩陣式按鍵 ,有了這些按鍵,對單片機的控制就方便多了。
本設計按鍵數量較多,所以采用矩陣式按鍵以節省I/O口線。將16個按鍵分為4排4列排列好,如圖3-9矩陣鍵盤硬件結構。當有一個鍵按下時,通過某一邊引腳賦低電平,掃描全部引腳看是否與最初的賦值一樣,不一樣則根據相應的算法(通過改變后的值與初始值相或,根據結果賦值)確定是哪個鍵按下。








3-9鍵盤模塊硬件結構
鍵盤為4×4形式,按鍵包括阿拉伯數字0~9,以及鎖定、更改和改密三個應用按鍵。當用戶需要輸入密碼或修改密碼時,按下相應按鍵即會與單片機產生信號,并會執行相應的程序。
3.7 報警電路
當密碼輸入兩次的數值與所設定的參數值不同時,單片機AT89C51便通過P2.7口控制三極管來驅動揚聲器報警,當輸出低電平時三極管截止,當輸出高電平時三極管導通揚聲器報警。如圖3-10所示。






3-10報警電路硬件結構
3.8 開鎖電路
開鎖電路的功能是當輸入正確的密碼后密碼鎖將被鎖定,既開鎖。當單片機P2.6引腳發出信號經三極管放大后,觸動電磁閥即會把鎖打開。一旦輸入密碼,單片機便會與初始密碼進行比對,如果密碼輸入兩次都與原始密碼不相符即會報警。其原理圖如圖3-11所示。





3-11 開鎖電路硬件結構
3.9 復位電路
能讓單片機運行起來的最小硬件連接就是單片機最小系統電路,51單片機的最小系統電路一般包括工作電源、振蕩電路和復位電路等幾部分。
復位電路(圖3-12是單片機復位電路)具有上電自動復位和手動復位的雙重功能。單片機的RST引腳是復位信號的輸入端,復位信號是高電平的時候才有效,其有效時間應持續24個震蕩脈沖周期(即2個機器周期)以上;通常為了保證應用系統能夠準確地復位,復位電路應使引腳RST腳保持10ms以上的高電平狀態。只要RST保持高電平,單片機就會自動循環復位。當RST引腳從高電平狀態轉為低電平狀態時,單片機退出復位狀態,從程序存儲器的0000H地址開始執行用戶程序。電容C3和電阻R5組成上電復位電路。上電瞬間RST引腳獲得高電平,隨著電容C11的充電,RST引腳的高電平逐漸下降。只要高電平保持足夠的時間,單片機就能完成復位。手動復位的原理與此類似。







3-12 復位電路硬件結構
3.10串行通信電路
隨著計算機在各個領域的廣泛應用和智能化控制的發展,多微機系統和計算機網絡技術的普及,計算機的通信功能顯得越來越重要。計算機通信是指將計算機技術和通信技術相結合完成計算機與外部控制設備或計算機與計算機之間的信息交換或信息處理,按通信方式可以分為兩大類:并行通信與串行通信。并行通信通常是將數據字節的各位用多條數據線同時進行傳送 , 并行通信控制簡單、傳輸速度快,但是由于傳輸線較多長距離傳送時成本高且接收方的各位同時接收存在一定的困難。串行通訊傳輸線少,長距離傳送時成本低且可以利用電話網等現成的設備所以本設計采用串口與單片機進行通信。
大多數PC機都有一個串行通訊端口,RS-232主要用于計算機之間進行數據的交換與通訊RS-232通訊接口是電子領域的一種標準化傳輸接口,主要是為了進行遠程傳輸與通訊連接終端設備的物理接口。RS-232采用非平衡連接在這個線路中信號的電壓都使用一個公共的接地線,所有信號電壓都加到一條導線上為了能提高串口通信的抗干擾能力和數據傳送距離,RS-232芯片的信號和電平采用負邏輯電平,直流電壓值在-15至-5V芯片規定為邏輯值“1”,直流電壓值在+ 5至+15V芯片規定邏輯值“0”,直流電壓在-5至+5V為過渡區。由于單片機輸入與輸出為TTL電平這與 PC機所執行的串行接口標準不一致數據無法正常傳輸。
因此要實現單片機與PC機之間的數據通讀,必須進行電平轉換。一般常用的電平轉換器件有MC1488、MC1489及MAX232等,但MC1488、MC1489需要±12V電源,這對于不具備±12V電源的單片機系統是非常不便的。故本系統使用MAX232實現電平轉換。單片機的第10、11管腳與MAX232芯片的11、12管腳相連并互相傳送數據通過MAX232芯片將單片機的TTL電平轉換成電腦所能識別的電平。電路原理如圖3-13所示。














3-13 串行通信電路硬件結構




3.11 系統整體原理圖
智能電子密碼鎖的基本原理是:從矩陣鍵盤輸入一組密碼,單片機把該密碼和設置密碼進行比較,若輸入的密碼正確,則控制電磁鎖動作,將電磁鎖抽回,從而將鎖打開;若輸入的密碼不正確,則要求從新輸入,并記錄錯誤次數,如果2次錯誤,則被強制鎖定并報警。如下圖3-14所示:

3-14 系統整體原理圖


4系統軟件設計
軟件設計主要包括了主程序設計、鍵盤掃描設計、密碼修改設計、開鎖程序設計以及紅外遙控設計五個方面。本設計采用Keil編譯器來進行軟件的編程。
4.1 主程序設計
























4-1 主程序流程圖設計
主程序主要完成了系統的初始化、按鍵掃描、按鍵功能、以及調用顯示等功能。主程序部分如下:
En bit P8       將LCD的en引腳連接到單片機的P8
Rw bit P9
Rs bit P10
Speaker bit P2.7
Open bit P2.6    開鎖電路的控制端連接到P2.6口

4.2鍵值判斷設計
鍵盤掃描和鍵值讀取程序主要判斷矩陣按鍵是否按下,按下的是哪一個鍵,并求出按鍵的鍵值。矩陣鍵盤的識別方法有多種。相對來說,矩陣式鍵盤的軟件設計最終實現以下功能:是否有按鍵被按下;消除抖動;確定哪個鍵被按下,若按鍵閉合了一次,操作也只能是一次。


            4-2 鍵盤流程圖設計
鍵盤程序如下:
if((0keydata)||(4keydata)||(8keydata)||keydata==14)
                                                                      //在0-9之間的數字通過
                                                        password=keydata;//鍵盤值進行保存
                                                        keydata=0;                            //把鍵盤值置其它值,不被其它利用,以一樣
                                                        i++;
4.3開鎖設計
當輸入密碼正確時,單片機輸出低電平,控制繼電器工作,模擬開鎖動作,同時,當輸入密碼或開鎖成功時,蜂鳴器發出相應的提示音。

4-3開鎖流程圖設計

開鎖程序設計如下:

while(1)
                            {
                                          if(keydata==4)              //鎖定功能
                                          {
                                                        P3_6=0;
                                                        EX1=1;

                                                        goto start;

4.4密碼修改設計
輸入密碼前,要先將正確的密碼從存儲器24C02中讀出,并存放在單片機RAM從40H開始的6個單元中。6位密碼鎖由矩陣按鍵輸入,輸入的密碼存儲在單片機RAM從30H開始的6個單元中,每輸入一位密碼,都要和正確的密碼進行比較;若全部6位密碼均輸入正確,顯示密碼正確信息;若輸入的密碼不完全正確,則進行第二位輸入,若輸入3次仍不正確,則報錯。輸入密碼時,還要打開定時器T0,使定時器T0工作,當計時到30s時,若輸入的密碼不正確或未輸入密碼,則顯示出錯信息。密碼修改程序用來設置新密碼,當輸入的開鎖密碼正確后,可重新設置新密碼,輸入的新密碼暫存在單片機RAM從40H開始的單元中,然后,調用存儲器子程序,將40H開始的6位密碼存儲在24C02中。







4-4 密碼修改流程圖設計

密碼程序如下:

              if(keydata==33)                 //確定進入密碼比較
                                          {
                                                        keydata=0;
panduan:                            i=0;
                                                        for(j=0;j<6;j++)
                                                        {
                                                                      l+=password[j];
                                                                      k+=Random_Read(j);
                                                        }
                                                        if(l!=k)                            //密碼不同進行處理
                                                        {
                                                                      l=0;
                                                                      k=0;
                                                                      LCD_Write_String(0,0,bb);
                                                                      DelayMs(1000);
                                                                      a1+=1;
                                                                      if(a1==2){while(1)P3_7=1;P3_6=0;}//兩次錯誤發出報警

                                                                      goto start;                                                          //第二次輸入密碼

4.5 紅外遙控設計
HS0038 接收頭負責紅外遙控信號的解調,將調制在38kHz上的紅外脈沖信號解調并反相后輸入到單片機的P3.2引腳,接收的信號由單片機進行高電平與低電平寬度的測量,并進行解碼處理。解碼編程時,既可以使用中斷方式,也可以使用查詢方式。

4-5 紅外遙控流程圖設計

4.6 Keil編程軟件介紹
單片機的開發離不開必要的硬件,同樣也離不開軟件,編寫的匯編語言源程序要變為CPU可以執行的機器碼有兩種方法,一種是手工匯編,另一種是機器匯編。隨著單片機開發技術的不斷發展,單片機的開發軟件也在不斷的發展,Keil軟件是目前最流行開發51單片機的軟件。
在硬件電路設計好的同時,也需要軟件的開發及使用。目前單片機類的課程設計大多采用Keil軟件來進行程序的編寫。Keil不僅支持C語言還支持匯編語言。支持不同型號的MCS系類的51單片機的型號。Keil軟件已從早期的第一代發展到第四代了,有了更強大的功能。
這款軟件的操作方法也很簡單,甚至有些必須采用很復雜的硬件電路才能完成的工作,用軟件編程有時會變得很簡單,這樣可以把復雜電路的輸入信號直接用信號發生器給定,或是用電源來給定通過對電壓電流的調節來實現。Keil 工程的建立打開已安裝好的開發環境,進入界面后選擇project然后在其下拉菜單中選擇new project選項如圖4-6所示。

4-6  新建工程
這樣就能新建一個工程 ,在選定的路徑下建立一個名字叫做abc的文件夾如圖4-7所示,在abc文件夾中建立了一個xyz.c文件之后點擊保存按鈕就會出現如圖4-8所示的畫面在此對話框中選擇Atmel之后會彈出一系列的單片機在本次設計中選用的是51單片機,完成后在選Target 1下的Source Group 1選擇Add把xyz.c文件加載到里面在xyz.c下添加所編好的C語言程序或是匯編語言程序,如果程序是分開寫得就可以添加多個子程序還有主程序,每個程序中必須有頭文件否則編譯不會通過 ,會顯示有錯誤。等編譯.hex文件時就要在此文件夾下找到。

4-7  新建工程文件夾的建立

4-8  芯片的選擇
所有程序都加到工程項目文件夾中后就可以對其進行編譯了。編譯成功后,下方會有對話框顯示,有幾個錯誤,分別是在那幾個位置。直接單擊錯誤這條信息就可以索引到源文件中。如圖所示4-9所示。

4-9  錯誤的生成及索引
















5 仿真設計
5.1 Protues仿真軟件概述
Protues是目前使用比較廣泛的單片機類的仿真系統的軟件之一,它可以實現的功能比較多,可以實現程序與原理圖的連調,也可以單獨作為繪制原理圖的工具使用,與Protel有著過之不及的功能,于此同時還可以進行PCB版圖的生成,在方法中與Protel類似。此款軟件及繪制原理圖、PCB版圖和仿真于一身。Protues此款軟件的使用比較簡單。在運行環境搭載好的前提下,打開ISIS直接進入到主界面,在左邊欄框中有一個快捷鍵P(從庫中選取),點擊后出現一個對話框然后輸入想要查找的元器件即可。之后在單擊確定按鍵所選器件就會顯示在界面左上角的小框中此時點擊鼠標左鍵就會放到圖層中,然后直接把鼠標放到接頭處就會顯示一個畫筆的標志此時按住鼠標左鍵就可進行連線了。如圖5-1所示為繪圖界面。

5-1  繪圖界面



5.2 ProtuesKeil的連調
在進行連調之前必須確保程序是完整的,原理圖也是沒有錯誤的。還要在正確的運行平臺下進行操作。檢查沒有錯誤后,打開原理圖,點擊單片機就會出現一個對話框如圖5-2所示,然后把生成的.hex文件添加到里面即可實現。在這里比較重要的就是.hex文件的生成過程。首先把已編寫好的程序加載到Keil軟件下進行編譯如果沒有遇到任何錯誤后,就直接點擊工具欄中的 就會彈出如下圖所示的對話框,然后選擇相應的選項就可以生成.hex文件了。之后再按照生成的的路徑去尋找這個文件。找到之后加載到之前點開的  對話框上即可。在此后點擊運行按鍵就會進行仿真了,按照設計的功能去調試就可以了。

5-2加載.hex文件






5.3 ProtuesKeil的連調的仿真結果
系統仿真運行環境下的結果如圖5-3所示。

5-3 系統仿真圖

開鎖仿真圖如5-4所示。

                       5-4 開鎖圖

更改密碼圖如5-5所示。

5-5 更改密碼圖

輸入錯誤密碼報警如圖5-6所示。

5-6 報警圖

5.4問題及解決辦法
在本系統的軟件設計過程中,遇到了很多問題。首先是對軟件的開發環境Keil的運用有些模糊、對它的操作過程需要看專業書以及向同學請教才能完成!其次是用C語言編程,這對于我來說可是一件十分困難的事情,最終是在同學的幫助之下才得以完成。而在Protues仿真過程中,也遇到了同樣的問題,最后通過網上的教學資料對其使用有了一定的了解。而在仿真軟件中,并沒有紅外一體化接收頭HS0038,所以在同學及指導老師的幫助下采用555振蕩器模擬仿真,一旦有信號發射或接收將會有波形顯示來模擬仿真。

結   論
本設計是基于單片機實現電子密碼鎖,基本完成了按鍵有效提示、輸入錯誤提示,控制開鎖電平、控制報警電路、修改密碼等多種功能。本系統具有結構簡單,硬件較少,容易實現,性能穩定可靠,成本低等特點。
在設計過程中,我查閱大量的相關資料,詳細的了解了各個芯片的作用,如何工作,工作原理,個個芯片引腳的連接方式。對系統硬件的設計,電路原理圖以及仿真,軟件流程圖和具體的匯編語言的設計都有了相應的提高。此次設計涉及到了Protues和Protel99和一些單片機指令,通過近段時間的使用,對這些有了更深的了解。對于軟件部分的Keil軟件的使用,是我們對匯編語言以及C語言又有了更深一步的了解。
通過完成設計,我們對所學的知識有了更深刻地了解,實現了從理論到實踐再到理論的幾個飛躍,也更加了解到科學知識應該以服務社會為目的,只有掌握了足夠的知識才能更好的為社會貢獻我們的力量。我學會了利用所學知識以技術上的知識解決問題的能力。

致    謝

時光飛逝,轉眼間又到了畢業的季節。

兩年在北京聯合大學的學習,讓我真正感受到了大學的生活是那么美好。在即將離開之時才發現心中的不舍是那么的深刻。舍不得與同學間深刻的友誼,舍不得與老師間溫暖的問候,更舍不得校園里象牙塔般的快樂生活!

在校園的生活的最后篇章里,我想要把我全部的感謝感激一一的傾訴出來。首先感謝我的母校,其次感謝我的任課老師,在我人生中最迷茫的時候為我指點迷途,帶我走進那夢想般的燈塔!還要感謝我的論文指導老師張巧杰老師,張巧杰老師最為外聘老師對我們論文的指導十分認真,每周都會帶著自己論文完成情況以及論文中遇到的問題去找指導老師,老師會耐心的為我們解答,并且還會關心我們每個人的實習生活狀況,給予鼓勵和激勵!我衷心的感謝指導老師。當然,不會忘記陪伴我兩年的同窗同學,一起風風雨雨走過的兩年,真的是學生時代的一筆財富!我們一起學習,一起歡笑,一起面對每個清晨和日落。校園里到處都是我們的影子,在操場上、在教室里、在圖書館、在實驗室...每個同學都很珍惜這兩年的時光!最后我不會忘記我的父母,感謝他們一直以來的照顧!我最大的幸福是有你們一直都在!

   即將和學校離別,縱然我有許多的不舍,但是面對社會我依然會充滿了信心。因為我知道在我的身邊有許多朋友的陪伴,感謝我的大學,感謝我的老師,感謝我的同學們!


參考文獻
[1] 李葉紫,王喜斌,胡輝,孫東輝.MCS-51單片機應用教程[M].北京:清華大學出版社 2004:29-35.
[2] 夏路易,石宗義.電路原理圖與電路板設計教程PROTEL 99SE[M].北京:北京希望電子出版社 2004:56-59.
[3] 王福瑞編著,單片微機測控系統設計大全.北京航空航天大學出版社,1999
[4] 李華,MCS-51系列單片機使用接口技術.北京航空航天大學出版社,1990
[5] 余永權,Flash 單片機原理及應用.北京:電子工業出版社,1997
[6] 潘新民、王燕芳.《微型計算機控制技術》.北京:人民郵電出版社:2004:85-112
[7] 蘭吉昌,《51單片機應用設計百例》.北京:化學工業出版社,2009:220-230
[8] 曹素芬,單片微型計算機原理與接口技術[M].沈陽:東北大學出版社,1995.
[9] 吳金戎,8051單片機實踐與應用[M].北京:清華大學出版社,2002.
[10] 于永,戴佳,劉波.51單片機C語言常用模塊與綜合設計實例精講[M].北京:電子工業出版社,2008 第二版.
[11] 周潤景,張麗娜.基于PROTEUS 的電路及單片機系統設計與仿真[M].北京:航空航天大學出版社,2006.P321~P326
[12] 肖婧,單片機系統設計與仿真--基于PROTEUS[M].北京:北京航空航天大學出版社,2010.
[13]胡燁 、姚鵬翼、江思敏.《Protel 99SE電路設計與仿真》.北京: 機械工業出版社,2002:100-170
[14] Johnson J B.The Multibus Design Guidebook. McGrawHill Book Company,1995
[15] Borko H,Bernier C L.Indexing concepts and methods .New York:Academic

完整論文下載(word格式 可編輯):
基于單片機的電子密碼鎖設計與實現.doc (5.16 MB, 下載次數: 311)


評分

參與人數 1黑幣 +10 收起 理由
山科大 + 10 贊一個!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏10 分享淘帖 頂2 踩
回復

使用道具 舉報

來自 12#
ID:362076 發表于 2018-11-11 20:20 | 只看該作者
我想問幾個實際應用中可能遇到的問題:
1.密碼存儲的安全性問題:如果有人使用另一臺機器連接你的24C02,在上電情況下我想也可以進行讀取,那么你的密碼使用明文存儲是肯定不安全的,是否具有加密措施?
2.開鎖機構太簡單,如果在外部使用物理方法實現電平拉低,就可以繞過密碼部分直接開鎖了
3.使用了紅外開鎖的功能,對紅外通信的具體要求和安全性沒有明確敘述啊,例如給程序專門設計的安全通信口令,不然一個人安裝了這個鎖,我買另一款同型號的鎖就可以開這個鎖了,豈不是很糟??

要是沒有想到這些東西,答辯的時候老師想懟人很簡單,萬分輕松。

評分

參與人數 1黑幣 +60 收起 理由
admin + 60 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

沙發
ID:288632 發表于 2018-3-12 10:51 | 只看該作者
有完整程序嗎?
回復

使用道具 舉報

板凳
ID:300755 發表于 2018-4-8 20:21 | 只看該作者
這個有完整程序嗎?
回復

使用道具 舉報

地板
ID:304712 發表于 2018-4-9 21:09 | 只看該作者
下不了,還把分給扣了
回復

使用道具 舉報

5#
ID:305734 發表于 2018-4-11 11:29 | 只看該作者
大神流弊啊!
回復

使用道具 舉報

6#
ID:307760 發表于 2018-4-14 08:49 | 只看該作者
有完整程序嗎請問?
回復

使用道具 舉報

7#
ID:310664 發表于 2018-5-6 23:25 | 只看該作者
有程序嗎
回復

使用道具 舉報

8#
ID:335742 發表于 2018-5-22 15:42 | 只看該作者
大神  把畢業設計給你改可以不
回復

使用道具 舉報

9#
ID:335742 發表于 2018-5-22 15:43 | 只看該作者
有誰會做基于單片機的密碼鎖設計的沒
回復

使用道具 舉報

10#
ID:416161 發表于 2018-10-27 09:52 | 只看該作者
最近在寫畢業設計,一點頭緒都沒,正好拿來借鑒一下
回復

使用道具 舉報

11#
ID:421728 發表于 2018-11-11 14:55 | 只看該作者

謝謝樓主。666
回復

使用道具 舉報

13#
ID:427731 發表于 2018-11-16 15:26 | 只看該作者
厲害啊
回復

使用道具 舉報

14#
ID:448168 發表于 2018-12-19 10:15 來自觸屏版 | 只看該作者
Undo 發表于 2018-11-16 15:26
厲害啊

老哥可以分享一下么1608383880@qq.com
回復

使用道具 舉報

15#
ID:455527 發表于 2018-12-26 15:51 | 只看該作者
求程序啊
回復

使用道具 舉報

16#
ID:460696 發表于 2019-1-3 10:09 | 只看該作者
寫的太棒啦

回復

使用道具 舉報

17#
ID:460866 發表于 2019-1-3 13:06 | 只看該作者
謝謝分享,做個記號收藏備用
回復

使用道具 舉報

18#
ID:460866 發表于 2019-1-3 13:06 | 只看該作者
1.密碼存儲的安全性問題:如果有人使用另一臺機器連接你的24C02,在上電情況下我想也可以進行讀取,那么你的密碼使用明文存儲是肯定不安全的,是否具有加密措施?
2.開鎖機構太簡單,如果在外部使用物理方法實現電平拉低,就可以繞過密碼部分直接開鎖了
3.使用了紅外開鎖的功能,對紅外通信的具體要求和安全性沒有明確敘述啊,例如給程序專門設計的安全通信口令,不然一個人安裝了這個鎖,我買另一款同型號的鎖就可以開這個鎖了,豈不是很糟??
回復

使用道具 舉報

19#
ID:480111 發表于 2019-2-24 21:00 | 只看該作者
求文件
回復

使用道具 舉報

20#
ID:480359 發表于 2019-2-25 20:31 | 只看該作者
不錯呃,單片機就是這么簡單
回復

使用道具 舉報

21#
ID:300582 發表于 2019-3-1 11:00 | 只看該作者
有沒有完整的例程
回復

使用道具 舉報

22#
ID:483285 發表于 2019-3-2 16:46 來自觸屏版 | 只看該作者
厲害呀,謝謝樓主
回復

使用道具 舉報

23#
ID:485130 發表于 2019-4-2 20:05 | 只看該作者
有完整的程序嗎?
回復

使用道具 舉報

24#
無效樓層,該帖已經被刪除
25#
ID:540323 發表于 2019-5-16 23:03
大大請問這一套能運用到電路的畢業論文嗎

26#
ID:662533 發表于 2019-12-17 15:28 | 只看該作者
感謝大神指點,要是有完整的參考程序就好了
回復

使用道具 舉報

27#
無效樓層,該帖已經被刪除
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表