2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩54頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p>  2013屆畢業(yè)設計(論文)</p><p><b>  材 料</b></p><p>  院 、 部: </p><p>  學生姓名: </p><p>  指導教師: </p&g

2、t;<p>  職 稱: 講師 </p><p>  專 業(yè): 電子信息工程 </p><p>  班 級: </p><p>  學 號: </p><p><b>  2013年6月</b

3、></p><p><b>  材料清單</b></p><p>  1、畢業(yè)設計(論文)課題任務書2、開題報告3、工作進度檢查表</p><p>  4、指導教師評閱表5、評閱評語表6、答辯資格審查表7、答辯及最終成績評定表</p><p><b>  8、畢業(yè)設計說明書</b>&

4、lt;/p><p>  湖南工學院畢業(yè)設計(論文)開題報告 </p><p>  2013屆畢業(yè)設計說明書</p><p>  基于MCS-51單片機電子密碼鎖的設計</p><p>  院 、 部: </p><p>  學生姓名: </p><p&

5、gt;  指導教師: 職稱 </p><p>  專 業(yè): 電子信息工程 </p><p>  班 級: </p><p>  完成時間: 2013年5月25日 </p><p><b>  摘 要</b></p>&

6、lt;p>  本設計采用的是AT89C52作為主控芯片與數據存儲器單元所設計的電子密碼鎖。通過單片機與外圍的矩陣鍵盤輸入、LCD液晶顯示、報警等電路相結合,利用單片機的靈活性和豐富的I/O口線資源,用C語言編寫的主控芯片控制程序與EEPROM AT24C02讀寫程序相結合,并用Keil軟件進行編譯,設計了一款簡單、實用、方便的電子密碼控制系統(tǒng)。在本次設計中,能夠實現密碼輸入正確及錯誤的不同顯示,在密碼泄露后,合法用戶能夠

7、修改并存儲密碼,當輸入密碼錯誤次數超過三次時,系統(tǒng)會自動報警,并且鍵盤被鎖定2分鐘,防止被非法用戶無限制的套取密碼。在設計的過程中,采用矩陣鍵盤減少了對I/O口線的占用,優(yōu)化了系統(tǒng)。采用的顯示元件是LCD1602液晶顯示,使得顯示更加清楚,用戶使用時也更明白。存儲芯片采用的是AT24C02芯片,具有掉電保護的作用。通過在Proteus中仿真測試,能夠很好的實現密碼鎖的所有功能,達到了設計的要求。</p><p>

8、  關鍵詞:單片機;密碼鎖;AT24C02 </p><p><b>  ABSTRACT</b></p><p>  This design is used as the master chip AT89C52 data memory unit designed electronic locks. Through the microcontroller and pe

9、ripheral matrix keyboard, LCD liquid crystal display, alarm and other circuits combine the flexibility of the use of single and rich I / O port line resources, using C language master chip control procedures and EEPROM A

10、T24C02 literacy program combined and compiled using Keil software, designed a simple, practical and convenient electronic code control system. In this desi</p><p>  Key words microcontroller; locks; at24c02

11、</p><p><b>  目 錄</b></p><p><b>  1 緒論1</b></p><p><b>  1.1 引言1</b></p><p>  1.2 課題背景和意義1</p><p>  2 總體設計方案的確定3<

12、/p><p>  2.1 電子密碼鎖設計的具體要求3</p><p>  2.2 總體設計方案選定3</p><p>  3 主要元器件介紹5</p><p>  3.1 主控芯片AT89C525</p><p>  3.1.1 主要特性5</p><p>  3.1.2 引腳功能說明6

13、</p><p>  3.2 存儲芯片AT24C027</p><p>  3.2.1 管腳的描述8</p><p>  3.2.2 功能的描述8</p><p>  3.3 LCD1602顯示器9</p><p>  3.3.1 LCD1602的引腳功能說明9</p><p>  3

14、.3.2 LCD1602的指令說明10</p><p>  4 硬件電路的設計12</p><p>  4.1 最小系統(tǒng)的設計12</p><p>  4.1.1 單片機的復位電路12</p><p>  4.1.2 單片機的時鐘電路13</p><p>  4.2 鍵盤電路14</p>&l

15、t;p>  4.3 顯示電路15</p><p>  4.4 密碼鎖存電路16</p><p>  4.5 報警電路16</p><p>  5 軟件系統(tǒng)的設計17</p><p>  5.1 主函數模塊17</p><p>  5.2 鍵盤掃描及識別子函數17</p><p>

16、;  5.3 延時子函數19</p><p>  5.4 LCD1602初始化函數19</p><p>  5.5 AT24C02的初始化函數20</p><p>  6 在Proteus中的仿真21</p><p>  6.1 仿真原理圖21</p><p>  6.2 仿真結果21</p>

17、<p><b>  結束語25</b></p><p><b>  參考文獻26</b></p><p><b>  致 謝28</b></p><p><b>  附 錄29</b></p><p><b>  1 緒論

18、</b></p><p><b>  1.1 引言</b></p><p>  隨著人們生活水平的提高,如何實現家庭防盜這一問題也變的尤其的突出,傳統(tǒng)的機械鎖由于其構造的簡單,被撬的事件屢見不鮮,電子鎖由于其保密性高,使用的靈活性和安全系數都很高,受到了廣大用戶的喜愛。鎖是置于可啟閉的器物上,用以關住某個確定的空間范圍或某種器具的,必須以鑰匙或暗碼打開的扣

19、件。鎖具發(fā)展到現在已有若干年的歷史了,人們對它的結構、機理也研究得很透徹,因此,不用鑰匙就能打開的方法和工具也層出不窮?,F代人類文明社會里,由于社會中各種矛盾沖突十分劇烈,人們的思想道德觀念,價值觀念,文化修養(yǎng)水平等差異,群眾中良莠不齊,善良的人們能夠自覺規(guī)范自已的行為,“非禮不為”,雖無鑰匙亦不會亂闖。然而,那些毫無道德觀念的盜賊卻想方設法利用高科技手段撬門開鎖,使廣大居民防不勝防。</p><p>  為什么

20、會出現這種情況呢?因為傳統(tǒng)鎖具都存在致命的弱點:</p><p>  第一、 鎖芯采用常見的銅、鋁、鋅等材料,抵抗不了強力破壞;</p><p>  第二、 鎖具制作工藝,技術落后,無法阻止技術手段的開啟。</p><p>  目前,市場上很多國內外的鎖具,實際上都不具備真正的防盜功能。在慣偷面前,兩根鋼絲或幾件簡單的工具就可以把這些鎖打開,有的慣偷甚至公開揚言:“

21、沒有我打不開的鎖?!逼鋵?,不是他們多高明,而是一般鎖具技術原理太過簡單。面對這一殘酷的現狀,新時代提出了鎖具必須革命的迫切的要求。</p><p>  1.2 課題背景和意義</p><p>  隨著電子技術和計算機技術的飛速發(fā)展,單片機性能不斷完善,性能價格比顯著提高,技術日趨完善。由于單片機具有體積小、重量輕、價格便宜、功耗低、控制功能強及運算速度快等特點,因而在國民經濟建設、軍事及家

22、用電器等各個領域均得到了廣泛的應用。本設計利用單片機及附加電子元器件實現數據采集和控制算法,來完成某一實際功能,檢驗并提高對整體電路設計和把握的能力,了解單片機系統(tǒng)設計流程,以及仿真和調試能力。同時也加強對數字電路、單片機和微機原理等課程知識的實際應用能力,也為同類產品的進一步發(fā)展奠定理論和實踐基礎。</p><p>  隨著人們生活水平的提高和安全意識的加強,對安全的要求也就越來越高。鎖自古以來就是把守護門的鐵

23、將軍,人們對它要求甚高,既要安全可靠的防盜,又要使用方便,這也是制鎖者長期以來研制的主題。隨著電子技術的發(fā)展,各類電子產品應運而生,電子密碼鎖就是其中之一。據有關資料介紹,電子密碼鎖的研究從20世紀30年代就開始了,在一些特殊場所早就有所應用。這把鎖是通過鍵盤的輸入密碼就可以完成解鎖的過程。之所以要研究這種鎖,就是為提高鎖的安全性。由于電子密碼鎖的密碼量很大,可以配合機械鎖一起使用,還可以防止由于鑰匙被仿制而留下的安全隱患。電子密碼鎖只

24、需要記住一組密碼,不用攜帶一般的金屬鑰匙,去除了用戶攜帶鑰匙的麻煩,從而受到很多人的贊賞。電子鎖的種類繁多,例如數碼鎖,指紋鎖,磁卡鎖,IC卡鎖,生物鎖等。但較實用的還是按鍵式電子密碼鎖。</p><p>  20世紀80年代后,隨著電子鎖專用集成電路的出現,電子鎖的體積縮小,可靠性提高,成本較高,是適合使用在安全性要求較高的場合,且需要有電源提供能量,使用仍局限于一定的范圍內,難以普及到廣大人民群眾,因此研究它

25、沒有得到一定的顯著進展。</p><p>  目前,在西方發(fā)達國家的電子密碼鎖的技術相對比較先進的,種類比較齊全,電子密碼鎖已被廣泛應用于智能門禁系統(tǒng)中通過多種更安全,更可靠的技術來實現對大門的管理。在我國電子鎖整體水平尚處于國際上70年代左右,電子密碼鎖的成本還很高,市場上仍以按鍵電子鎖為主,按鍵式和卡片鑰匙式電子鎖已引進國際先進水平,現國內有幾個廠生產供應市場。但國內自行研制開發(fā)的電子鎖,其市場結構尚未形成,

26、應用還不廣泛。國內的不少企業(yè)也引進了世界上先進的技術,發(fā)展前景非??捎^。希望通過不斷的努力,使電子密碼鎖在我國也能得到廣泛應用。</p><p>  2 總體設計方案的確定</p><p>  2.1 電子密碼鎖設計的具體要求</p><p>  (1)、本設計為了防止密碼被竊取要求在輸入密碼時在LCD屏幕上顯示*號。</p><p> ?。?/p>

27、2)、設計開鎖密碼為六位密碼的電子密碼鎖。</p><p>  (3)、密碼輸入正確時LCD顯示Unlock OK!,密碼錯誤時顯示ERROR,輸入密碼時顯示Your Password。</p><p>  (4)、當密碼鎖輸入正確時,LED指示燈亮,開鎖成功。</p><p> ?。?)、4×4的矩陣鍵盤其中包括0-9的數字鍵和A-F的功能鍵。</

28、p><p> ?。?)、本產品具備報警功能,當輸入密碼錯誤的次數超過3次時蜂鳴器響。</p><p> ?。?)、密碼可以由用戶自己修改設定,修改密碼之前必須輸入原來的密碼,在輸入新密碼時候需要二次確認,才能修改成功,以防止誤操作 。</p><p>  2.2 總體設計方案選定</p><p>  方案一:采用數字電路控制。</p>

29、<p>  74LS112雙JK觸發(fā)器所構成的數字邏輯電路作為電子密碼鎖控制的核心,共設置了9個用戶輸入鍵,其中只有4個按鍵是作為密碼按鍵,其它的都是作為干擾按鍵而設置的,如果是按下干擾按鍵,鍵盤輸入電路自動清零,開始輸入的密碼變?yōu)闊o效,需要再次輸入;如果用戶在輸入密碼的時候超過了20秒(在一般情況下,用戶不會超過20秒)電路就會報警十幾秒,如果電路報警超過了三次,鍵盤將被鎖定1分鐘,防止他人的非法操作。采用數字電路設計方

30、案的好處就是設計簡單,但控制的準確性和靈活性差。故不采用。</p><p>  方案二:采用以AT89C52為核心的單片機控制方案。</p><p>  選用單片機AT89C52作為本設計的核心元件,利用單片機靈活的編程設計和豐富的IO端口,及其控制的準確性,實現密碼鎖的功能。在單片機的外圍電路接入輸入鍵盤用于密碼的輸入和一些功能的控制,外接LCD1602顯示器用于顯示作用。其原理如下圖1

31、所示:</p><p>  圖1 系統(tǒng)總設計結構圖</p><p>  經過對比,可知采用單片機控制更容易實現,更簡易。所以本次設計采用的是此方案。本設計由主控芯片51單片機,單片機時鐘電路,鍵盤,和開鎖電路組成。單片機負責控制整個系統(tǒng)的執(zhí)行過程。</p><p><b>  3 主要元器件介紹</b></p><p>

32、  3.1 主控芯片AT89C52 </p><p>  美國ATMEL公司生產的AT89C52是一種低功耗,高性能的CMOS 8位微控制器,可以被讀取的閃存程序存儲器占了4K bytes,該設備采用ATMEL公司的高密度非易失性內存技術生產兼容標準8051指令集和指針。它集閃存程序存儲器,無論是在線編程(ISP)也可以用來編程的傳統(tǒng)方法和一般片上8位微處理器芯片中,ATMEL公司的AT89C52功能強大,低成本

33、的微控制器可以提供你許多高性價的應用程序,可以靈活應用于各種控制領域。 </p><p>  3.1.1 主要特性 </p><p>  AT89C52具有如下特點:40個引腳,4k Bytes Flash片內程序存儲器,128 bytes的隨機存取數據存儲器(RAM),32個外部雙向輸入/輸出(I/O)口,5個中斷優(yōu)先級2層中斷嵌套中斷,2個16位可編程定時計數器,2個串行通信口,看門狗

34、(WDT)電路,片內時鐘振蕩器。</p><p>  此外,AT89C52設計和配置了振蕩頻率可為0Hz并可通過軟件設置省電模式??臻e模式下,CPU暫停工作,而RAM定時計數器,串行口,外中斷系統(tǒng)可繼續(xù)工作,掉電模式凍結振蕩器而保存RAM的數據,停止芯片其它功能直至外中斷激活或者有硬件來復位。同時該芯片還具有PDIP、TQFP和PLCC等三種封裝形式,以適應不同產品的需求。</p><p>

35、;  其主要的功能特性有:</p><p> ?。?)兼容MCS51指令系統(tǒng)</p><p> ?。?)8kB可反復擦寫(大于1000次)Flash ROM;</p><p> ?。?)32個雙向I/O口;</p><p> ?。?)256x8bit內部RAM;</p><p> ?。?)3個16位可編程定時/計數器中

36、斷;</p><p> ?。?)時鐘頻率0-24MHz;</p><p> ?。?)2個串行中斷,可編程UART串行通道;</p><p> ?。?)2個外部中斷源,共8個中斷源;</p><p> ?。?)2個讀寫中斷口線,3級加密位;</p><p>  3.1.2 引腳功能說明 </p><p

37、><b>  圖2 單片機引腳圖</b></p><p><b>  VCC:電源電壓 </b></p><p><b>  GND:接地 </b></p><p>  P0口:P0口是8位雙向的數據口線,由于P0內部是高阻抗的輸入狀態(tài),當外接電路時,需要接上拉電阻。 </p>&

38、lt;p>  P1口和P2口是雙向的數據口線 ,可直接外接電路。</p><p>  P3口:P3 口是一組帶有內部上拉電阻的8 位雙向I/0 口。P3 口輸出緩沖級可驅動(吸收或輸出電流)4 個TTL邏輯門電路。P3口除了作為一般的I/0口線外,更重要的用途是它的第二功能,P3口的第二功能如下表1所示。</p><p>  表1 P3口的第二功能</p><p&

39、gt;  RST:復位輸入。當輸入的復位信號延續(xù)2個機器周期以上高電平時即為有效,用于完成單片機的復位操作。</p><p>  ALE/PROG:在系統(tǒng)擴展時,ALE用于控制把P0口輸出的低8位地址送入鎖存器鎖存起來,以實現低位地址和數據的分時傳送。此外由于ALE是以1/6晶振頻率的固定頻率輸出的正脈沖,因此,可作為外部時鐘或外部定時脈使用。</p><p>  PSEN:在讀外部ROM

40、時PSEN有效(低電平),以實現外部ROM單元的讀操作。 </p><p>  EA/VPP:外部訪問允許。欲使CPU僅訪問外部程序存儲器(地址為0000H-FFFFH),EA必須保持低電平(接地)。而當EA信號為高電平時,對ROM的讀操作是從內部程序存儲器開始,并可延續(xù)至外部程序存儲器。</p><p>  XTAL1和XTAL2:當使用芯片內部時鐘時,XTAL1和XTAL2用于外接石英

41、晶體諧振器和微調電容;當使用外部時鐘時,用于接入外部時鐘脈沖信號。</p><p>  3.2 存儲芯片AT24C02 </p><p>  美國Atmel公司生產的AT24C02是一種低功耗的CMOS型的E2PROM,內含256×8位的存儲的空間,其工作電壓的寬度為(2.5~5.5 V)、擦寫次數多(大于10000次)、抵抗干擾的能力很強、不容易丟失數據、體積小、寫入的速度快(

42、小于10 ms)等特點。并用它來讀取和寫入I2C總線串行數據設備,占用很少的資源和I/O口線,支持在線編程,實時數據訪問是非常方便的。AT24C02芯片的地址寄存器。每次讀或者寫一個字節(jié)的數據,地址寄存器會自動的加1,用來讀寫下一個存儲單元。每一個字節(jié)都是用單一的操作方式來讀取的。為了達到降低寫入時間的目的,每一次操作所寫入的數據都可以達到8個字節(jié)。I2C總線是一種用來連接兩個或多個IC器件的二線制總線。它通過SDA及SCL兩根口線連到

43、總線上的器件之間來傳送數據,根據不同的地址識別不同的器件。AT24C02就是運用了這種I2C的規(guī)程,從而使得主/從機之間能夠實現雙向通信,主機和從機都可以工作在接收器和發(fā)送器的狀態(tài)上。串行時鐘信號(通過SCL引腳)由主機產生并發(fā)送控制字和控制總線的傳送方向,還會產生起始和終止的條件。不管是主機(單片機)還是從機(AT2</p><p>  圖3 AT24C02的兩種引腳圖</p><p>

44、;  3.2.1 管腳的描述</p><p>  SCL:串行時鐘。AT24C02的串行時鐘輸入管腳用于產生器件,所有數據的發(fā)送或接收的時鐘都是一個輸入管腳輸入的。</p><p>  SDA:串行數據/地址。</p><p>  A0、A1、A2 :器件地址輸入引腳。當需要多個器件級聯(lián)時,地址可由這些引腳來設置。當這些腳懸空時默認值為0。AT24C02最大可級聯(lián)8

45、個器件</p><p>  WP:寫保護。如果該管腳連接到+5V,24C02的內容都被寫保護(只能讀)。當該管腳接到VSS 或懸空,允許器件進行正常的讀/寫操作。</p><p>  3.2.2 功能的描述</p><p>  IIC總線協(xié)議:IIC總線協(xié)議定義如下,(1)只有在總線空閑時才允許啟動數據傳送。(2)在數據傳送過程中,當時鐘線為高電平,數據線必須保持穩(wěn)

46、定狀態(tài),不允許有跳變。時鐘線為高電平時,數據線的任何電平變化將被看作總線的起始或停止信號。</p><p>  起始信號:時鐘線保持高電平期間,數據線電平從高到低的跳變作為IIC總線的起始信號。</p><p>  停止信號:時鐘線保持高電平期間,數據線電平從低到高的跳變作為IIC總線的停止信號。 </p><p>  應答信號:IIC總線數據傳送時,每成功地傳送一

47、個字節(jié)數據后,接收器都必須產生一個應答信號。應答的器件在第9 個時鐘周期時將SDA 線拉低,表示其已收到一個8 位數據。AT24C02在接收到起始信號和從器件地址之后響應一個應答信號,如果器件已選擇了寫操作,則在每接收一個8 位字節(jié)之后響應一個應答信號。</p><p>  器件尋址:主器件通過發(fā)送一個起始信號啟動發(fā)送過程然后發(fā)送它所要尋址的從器件的地址。它的址由圖4上的地址位來決定。AT24C02監(jiān)視總線時,當

48、其地址與發(fā)送的從地址相符合時就響應一個應答信號(通過SDA 線)。AT24C02再通過讀寫控制位(R/W) 的狀態(tài)來進行讀或寫操作。</p><p><b>  圖4 從器件地址位</b></p><p>  寫保護:當WP 管腳接的是高電平時,整個寄存器區(qū)域的內容全都被保護了,用戶不能對里面的數據進行操作,但是可以從中讀取內容。</p><p&g

49、t;  立即地址讀:AT24C02 的地址計數器里面的內容是最后操作字節(jié)的地址加1。 即如果上一次讀或寫的操作地址為M 則立即讀的地址從地址M+1 開始。主器件不需要發(fā)送一個應答信號,但需要產生一個停止信號。</p><p>  3.3 LCD1602顯示器 </p><p>  在現代日常生活中,字符型液晶模塊已經運用到很多的顯示器件中了,如計算器、萬用表、電子表等,顯示的主要是專用符號

50、和圖形。在單片機系統(tǒng)中,使用液晶顯示器作為顯示器件具有顯示質量高、體積小、功耗低等優(yōu)點。</p><p>  3.3.1 LCD1602的引腳功能說明</p><p>  1602型LCD的引腳如下表2所示。</p><p>  表2 1602型LCD的接口信號說明</p><p>  第1腳:VSS接地。</p><p&

51、gt;  第2腳:VDD接+5V。</p><p>  第3腳:VL可以接10K的滑動變阻器,用來調節(jié)液晶顯示的亮度。</p><p>  第4腳:RS腳。用來選擇寄存器,當需要選擇數據寄存器時,RS腳接的是高電平、當選擇指令寄存器時,接的是低電平。</p><p>  第5腳:R/W為信號線,當接高電平時進行讀的操作,當接低電平時進行寫的操作。當RS和R/W共同為

52、低電平時寫入指令或者顯示地址,當RS為低電平R/W為高電平時讀忙信號,當RS為高電平R/W為低電平時寫入數據。</p><p>  第6腳:E端為使能端,當E端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。</p><p>  第7~14腳:D0~D7為8位雙向數據線。</p><p>  3.3.2 LCD1602的指令說明</p><p> 

53、 在1602型LCD中,一共有11條控制指令,如表3所示。</p><p>  表3 LCD1602的指令表</p><p>  LCD1602液晶模塊的讀寫操作、屏幕和光標的操作都是通過指令編程來實現的。LCD1602共有11條指令,在初始化的時候主要使用的是前6條指令。這里主要介紹第三條到第六條指令。第三條指令是設置光標和顯示模式,當D1為高電平是,光標右移,當為低電平時,光標左移。當

54、D0為高電平時,液晶顯示的全部文字均左移或者右移,當D0為低電平時,文字不移動。第四條指令是控制顯示的開或關,D2為高電平時顯示打開,為低電平時顯示關閉;D1為高電平時顯示光標,為低電平時關閉光標;D0為高電平時光標閃爍,為低電平時光標不閃爍。第五條指令控制光標或顯示的移位,D3為高電平時移動顯示的文字,為低電平時移動光標。第六條指令功能設置命令,當D4為高電平時,連接的是4位總線,為低電平時,連接的是八位總線;當D3為高電平時顯示兩行

55、,為低電平時顯示一行;當D2為高電平時顯示的是5x10點陣字符,為低電平時顯示的是5x7點陣字符。</p><p><b>  基本的操作程序:</b></p><p>  讀狀態(tài):輸入:RS=L,RW=L, E=H </p><p>  輸出:D0~D7=狀態(tài)字</p><p>  讀數據:輸入:R

56、S=H,RW=H, E=H</p><p><b>  輸出:無</b></p><p>  寫指令:輸入:RS=L,RW=L, D0~D7=指令碼,E=高脈沖 </p><p>  輸出:D0~D7=數據</p><p>  寫數據:輸入:RS=H,RW=L, D0~D7=數據, E=高脈沖 </p>

57、<p><b>  輸出:無</b></p><p><b>  4 硬件電路的設計</b></p><p>  4.1 最小系統(tǒng)的設計</p><p>  單片機所有的電路設計和應用都是基于它的最小系統(tǒng)的,或者稱為最小應用系統(tǒng)的。單片機的最小系統(tǒng)是指用最少的元件組成的單片機可以工作的系統(tǒng)。對于系列單片機來說

58、,一般的最小系統(tǒng)應該包括:單片機芯片、時鐘電路以及復位電路。如圖6所示,就是單片機的最常見的最小系統(tǒng)。</p><p>  圖6 單片機的最小系統(tǒng)電路圖</p><p>  4.1.1 單片機的復位電路</p><p>  復位電路的作用是使單片機能夠在死機狀態(tài)時重新回到程序的起始段。單片機的復位方式一般有兩種。一種是上電復位,在系統(tǒng)一上電時利用電容兩端電壓不能突變

59、的原理給系統(tǒng)一個短時的低電平;手動復位,通過按鈕接通低電平給系統(tǒng)復位。手動按鍵復位電路如圖7所示。</p><p>  圖7 單片機的復位電路</p><p>  4.1.2 單片機的時鐘電路</p><p>  單片機的時鐘電路由振蕩電路和分頻電路組成。其中振蕩電路由反相器以及并聯(lián)外接的石英晶體和電容構成,用于產生振蕩脈沖。而分頻電路則用于把振蕩脈沖分頻,以得到所

60、需要的時鐘信號。</p><p><b>  振蕩電路</b></p><p>  單片機芯片中的高增益反相放大器,其輸入端為引腳XTAL1,輸出端為引腳XTAL2。通過這兩個引腳在芯片外并接石英晶體振蕩器和兩只電容器(電容的容量一般取30pF)。石英晶體為一感性元件,與電容構成振蕩回路,為片內放大器提供正反饋和振蕩所需的相移條件,從而構成一個穩(wěn)定的自激振蕩器,如圖8

61、所示。</p><p>  圖8 單片機的晶振電路</p><p><b>  4.2 鍵盤電路</b></p><p>  由于本次設計需要用到10個數字鍵和其它的一些功能鍵,按鍵較多,為了不增加I/O的使用數目,因此本設計采用的是4×4的矩陣鍵盤。 </p><p>  當在使用較多數量的按鍵時,為了減少對

62、單片機數據口線的的占用,通常要把按鍵排列成矩陣形式。在矩陣式鍵盤中,分為行和列。每個按鍵分別接行線和列線,每一行接一個根數據口,每一列也接一根數據口。所以,單片機的每一個I/O口都可以接16個按鍵。而直接與單片機相接的話就要多出一倍多。這樣就節(jié)約了很多的口線資源。在本次設計中,由于需要16個按鍵,所以就把P1口外接了距陣鍵盤。把單片機P1口的高四位接了鍵盤的四行,把P1口的低四位接了鍵盤的四列。在鍵盤掃描之前,先給P1口賦初值0x0F,

63、當有鍵按下的時候P1口的值就會發(fā)生變化,這樣就可以判斷按鍵是發(fā)生在哪一列,再通過給P1口賦值0Xf0,就可以確定按鍵發(fā)生在哪一行。再通過計算得到具體的按鍵鍵值。本設計鍵盤電路的接法如圖9所示。</p><p>  圖9 矩陣式鍵盤的接法</p><p><b>  4.3 顯示電路</b></p><p>  顯示設計采用字符型液晶屏設計,由單

64、片機的P0口控制顯示,由P2.0~P2.2控制LCD的控制端口。圖10為顯示電路的電路圖。</p><p>  圖10 LCD顯示電路</p><p>  4.4 密碼鎖存電路</p><p>  在本次設計中,密碼的保存采用的是串行CMOS EEPROM的AT24C02芯片,它和單片機的接法如圖11所示。</p><p>  圖11密碼鎖

65、存電路圖</p><p><b>  4.5 報警電路</b></p><p>  當有鍵按下時,“?!币宦?,每按一下,發(fā)聲一次,密碼輸入正確時,蜂鳴器不響直接開鎖,當輸入錯誤密碼的次數有三次時,蜂鳴器報警10秒。蜂鳴器電路如圖12所示。</p><p><b>  圖12 蜂鳴器電路</b></p><

66、;p><b>  5 軟件系統(tǒng)的設計</b></p><p><b>  5.1 主函數模塊</b></p><p>  本設計的主函數主要是完成系統(tǒng)初始化、調用鍵掃函數、調用顯示函數等。主函流程圖如圖12所示。</p><p>  圖12 主函數流程圖</p><p>  5.2 鍵盤掃描及

67、識別子函數 </p><p>  鍵盤掃描是采用查詢的方式,在主程序中進行調用,在沒有鍵按下的時候,進行循環(huán)查詢,只要有鍵按下,立即執(zhí)行相應的功能鍵函數,處理結束后再返回。鍵盤掃描函數流程圖如圖13所示。</p><p>  圖13 鍵盤掃描函數流程圖</p><p>  鍵盤掃描子函數如下:</p><p>  uchar Keys_Sc

68、an()</p><p><b>  {</b></p><p>  uchar Tmp, KeyNo=0;</p><p>  P1=0x0F; //高四位置0,放入四行</p><p>  Delay_ms(1); </p><p>  //按鍵后00001111將變成0000xx

69、xx,x中1個為0,3個仍為1</p><p>  //異或操作會把3個1變成0,唯一的0變成1 </p><p>  Tmp=P1 ^ 0x0F; </p><p>  switch (Tmp) // 判斷發(fā)生于0~3列中的哪一列</p><p><b>  {</b></p><p

70、>  case 1: KeyNo=0; break;</p><p>  case 2: KeyNo=1; break;</p><p>  case 4: KeyNo=2; break;</p><p>  case 8: KeyNo=3; break;</p><p>  default: KeyNo=16; //無鍵按下<

71、;/p><p><b>  }</b></p><p>  P1=0xF0; //低四位置0,放入四列</p><p>  Delay_ms(1);</p><p>  //按鍵后11110000將變成xxxx0000,x中1個為0,3個仍為1</p><p>  //將高四位移至低四位,并將其中

72、的唯一的0變?yōu)?,其余為0</p><p>  Tmp=P1>>4 ^0x0F;</p><p>  switch(Tmp)</p><p><b>  {</b></p><p>  case 1: KeyNo+=0; break;</p><p>  case 2: KeyNo+=

73、4; break;</p><p>  case 4: KeyNo+=8; break;</p><p>  case 8: KeyNo+=12; break;</p><p><b>  }</b></p><p>  return KeyNo;</p><p><b>  }<

74、/b></p><p>  5.3 延時子函數 </p><p>  本次設計采用的延時函數為語句循環(huán)延時。通過預設循環(huán)變量來得到不同的延時時間,既方便、又準確。延時子函數如下:</p><p>  void Delay_ms(uint x)</p><p><b>  {</b></p><p

75、><b>  uint i,j;</b></p><p>  for(i = 0;i < x; i++)</p><p>  for(j = 0; j < 110; j++);</p><p><b>  }</b></p><p>  5.4 LCD1602初始化函數 </

76、p><p>  由于LCD1602液晶顯示需要預先進行初始化,才能得到需要的顯示要求,因此需要進行液晶顯示器的初始化。先給LCD1602寫不同的指令命令,再向LCD1602發(fā)送要顯示的內容。初始化函數如下:</p><p>  void LCD_Init()</p><p><b>  {</b></p><p>  Wri

77、te_LCD_Command(0x38); //設置兩行顯示,8位數據總線,5*7的點陣字符</p><p>  Delay_ms(1);</p><p>  Write_LCD_Command(0x06); //寫一個字符后地址指針加1</p><p>  Delay_ms(1);</p><p>  Write_LCD_Comma

78、nd(0x0C); //設置開顯示,不顯示光標</p><p>  Delay_ms(1);</p><p>  Write_LCD_Command(0x01); //顯示清0,數據指針清0</p><p>  Delay_ms(1);</p><p><b>  }</b></p><p&g

79、t;  5.5 AT24C02的初始化函數 </p><p>  24C02是一種存儲芯片,它可以和單片機進行串行通信,但是在通信之前,需要用軟件進行初始化,以便單片機能夠明白串行通信的方式。本設計中的AT24C02的總線初始化函數如下所示:</p><p>  void i2cinit() //總線初始化</p><p><b>  {</b

80、></p><p><b>  SDA = 1;</b></p><p><b>  Delay();</b></p><p><b>  SCK = 1;</b></p><p><b>  Delay();</b></p><

81、p><b>  }</b></p><p>  6 在PROTEUS中的仿真</p><p><b>  6.1 仿真原理圖</b></p><p>  根據設計的方案,在Proteus中畫出了仿真的原理圖進行仿真,原理圖如圖14所示。</p><p><b>  圖14 原理圖&l

82、t;/b></p><p><b>  6.2 仿真結果</b></p><p>  通過在Protues中的仿真,電子密碼鎖的功能都能在仿真中實現,仿真的結果如下:</p><p> ?。?)當處于上鎖狀態(tài)時的結果如圖15所示。</p><p>  圖15 上鎖狀態(tài)的顯示結果</p><p&g

83、t;  (2)當開鎖成功時的結果如圖16所示。</p><p>  圖16 開鎖成功時的顯示結果</p><p>  (3)當輸入密碼錯誤時的結果如圖17所示。</p><p>  圖17 密碼輸入錯誤時的顯示結果</p><p>  (4)當修改密碼時的結果如圖18所示。</p><p>  圖18 修改密碼時的顯示

84、結果</p><p> ?。?)當修改密碼成功時的結果如圖19所示。</p><p>  圖19 密碼修改成功時的顯示結果</p><p>  (6)當密碼連續(xù)三次輸入錯誤時的結果如圖20所示。</p><p>  圖20 密碼連續(xù)三次輸入錯誤時的顯示結果</p><p><b>  結束語</b>

85、;</p><p>  本次課題研究的是基于單片機的電子密碼鎖,經過多次的修改與調試,達到了密碼鎖設計的要求。該設計的電子密碼鎖具有按鍵有效提示,輸入錯誤提示,控制報警電路,鎖定鍵盤,修改密碼等多種功能??稍谝馔庑姑艿那闆r下隨時修改密碼。本次設計的電子密碼鎖可用于實際應用中,具有良好的保密效果。通過對該課題的研究,加深了對所學知識的理解和鞏固,提高了對課外知識的學習能力,增強了對知識的應用能力,提高了對解決實際問

86、題的能力,培養(yǎng)了自我創(chuàng)新的意識。同時也積累了一些實踐經驗,為以后的發(fā)展打下一定的基礎,同時也能夠在這方面培養(yǎng)自己的興趣。畢業(yè)設計對培養(yǎng)學生的綜合能力有很大的幫助,同時也是檢驗學生發(fā)現,提出,分析以及解決實際問題的能力。隨著科學技術的發(fā)展,單片機目前已經成為了當今計算機應用中很活躍的領域,在生活中也可以說是無處不在。因此,對于二十一世紀的大學生來說,掌握單片機的開發(fā)技術是十分重要的。在本次設計中,也存在著一些不足,比如現在的密碼的位數只有

87、6位,還應該可以由用戶自已來決定。希望能夠在以后做得更好。</p><p><b>  參考文獻</b></p><p>  [1] 石文軒,宋薇.基于單片機MCS一51的智能密碼鎖設計[J].武漢工程職業(yè)技術學院學報,2004,(01),2~3</p><p>  Shi Wenxuan,Song Wei. MCS-51 microcontr

88、oller-based intelligent locks designed[J]. Wuhan Engineering Institute,2004,(01):2~3(in Chinese)</p><p>  [2] 葉啟明.單片機制作的新型安全密碼鎖[J].家庭電子,2005,(10), 13~15</p><p>  Ye Qiming. MCU production of new

89、 security locks[J]. Home electronics,2005,(10):13~15</p><p>  [3] 王千.實用電子電路大全[M].北京:電子工業(yè)出版社,2001.23~45</p><p>  Wan Qian. Practical Encyclopedia of Electronic Circuits[M].Beijing: Electronic Ind

90、ustry Press,2001. 23~45(in Chinese)</p><p>  [4] 何立民.單片機應用技術選編[M].北京:北京航空大學出版社,1998.59~72</p><p>  He Limin. Selected SCM Application[M].Bejing: Beijing Aviation University Press,1998.59~72(in C

91、hinese)</p><p>  [5] 李華.MCS-51系列單片機使用接口技術[M].北京:北京航空航天大學出版社,1993.90~102</p><p>  Li Hua. MCS-51 series MCU interface technology[M].Beijing: Beijing Aviation University Press,1993.90~102(in Chine

92、se)</p><p>  [6] acob millman and Arvin Grabel :Microelectronics,2nd,Mc Graw-Hill BooK Company,New York,1987</p><p>  [7] 童詩白.模擬電子技術基礎[M].北京:高等教育出版社,2000.23~120</p><p>  Tong Shibai

93、. Basic Analog Electronic Technology[M].Beijing: Higher Education Press,2000. 23~120(in Chinese)</p><p>  [8] 閻石.數字電子技術基礎[M].北京:高等教育出版社,1998.10~63</p><p>  Yan Shi. Fundamentals of Digital Elect

94、ronics[M].Beijing: Higher Education Press,1998.10~63(in Chinese)</p><p>  [9] 樊昌信,曹麗娜.通信原理[M].北京:國防工業(yè)出版社,2007.42~60</p><p>  Fan Changxin,Cao Lina. Communication Principle[M].Beijing: National D

95、efense Industry Press,2007. 42~60(in Chinese)</p><p>  [10]彭偉.單片機C語言程序設計實訓100例[M].北京:電子工業(yè)出版社,</p><p>  2010.78~125</p><p>  Peng Wei.Microcontroller C Progamming Language Training 1

96、00 case[M].Beijing:Electronic Industry Press,2010.78~125(in Chinese)</p><p>  [11]Hermarn K P. Neubert. Instrument Transducers-An Introduction to their Performance and Design.2nd Ed[M]. Clarendon Press, Oxfo

97、rd. 1975</p><p>  [12]李廣弟.單片機基礎[M].北京:北京航空航天大學出版社,2007.2~125</p><p>  Li Guangdi. MCU-based[M].Beijing: Beijing University of Aeronautics and Astronautics Press,2007.2~125(in Chinese)</p>

98、<p><b>  致 謝</b></p><p>  四年的大學生活不知不覺中就要結束了,在這段難忘的生活中,有我許多美好的回憶。在我的心中,除了不舍,還是不舍。</p><p>  在這份大學的最后一頁里,我要感謝的人很多,首先要感謝我的學校,感謝在這四年中教給我的做人的道理,讓我從一個懵懂的高中生變成一個成熟的青年。還要感謝我的論文指導老師陳老師,

99、在他的指導下我完成了論文,為我解決了很多問題,包括硬件和軟件方面的難點,使我能夠順利的完成設計及論文的書寫。他一絲不茍的作風,嚴謹求實的態(tài)度,踏踏實實的工作精神,不僅授我以文,而且教我做人,給以終生受益無窮之道,我從心里感謝他。還要感謝的是我們所有的任課老師,在大學四年里,是他們孜孜不倦的為我們傳播知識,傳授我們做人的道理,以及對生活樂觀的態(tài)度,所以在這里也一定要特別感謝他們。當然,也還是要感謝寢室的兄弟們在我寫作論文的過程中給予了我許

100、多無私的幫助和鼓勵,也是他們陪伴我度過了這四年的大學生活。最后,我還要感謝我的父母,非常感謝他們,沒有他們的教導和培養(yǎng)就不會有我的今天,是他們教會了我如何積極樂觀的生活。再一次感謝所有幫肋過我的人,感謝你們一直都伴隨著我。</p><p>  現在我即將告別我的學校、老師、同學,還有我四年的大學生活。雖然依依不舍,但是天下沒有不散的宴席,就讓我們用最真誠的祝福來祝愿我們的未來,一切都將變得更加美好。在未來的道路上

101、,雖然會遇到很多的困難和挫折,但是我對自已充滿了信心,只要有一顆積極向上的心,所有的困難都只是暫時的。最后,感謝在大學期間認識我和我認識的所有人,有你們的伴隨,才有我大學生活的豐富多彩,絢麗多姿!</p><p><b>  附 錄</b></p><p>  電子密碼鎖的C語言程序</p><p>  #include <reg52.

102、h></p><p>  #include <string.h></p><p>  #include <intrins.h></p><p>  #define uchar unsigned char</p><p>  #define uint unsigned int</p><p>

103、;  uchar code Title_Text[]="Your Password...";//標題字符串</p><p>  uchar DSY_BUFFER[16]=""; //顯示緩沖</p><p>  uchar UserPassword[16]=""; //用戶輸入的密碼</p>

104、<p>  uchar UserPassword1[16]="";</p><p>  uchar aa; //輸入密碼錯誤的次數,夠三次報警</p><p>  sbit RS=P2^0;// LCD的數據命令選擇</p><p>  sbit RW=P2^1;// LCD的讀寫控制</p>

105、<p>  sbit EN=P2^2;//LCD的使能控制</p><p>  sbit SCK=P2^3; // 中行時鐘</p><p>  sbit SDA=P2^4; // 串行數據</p><p>  sbit BEEP=P2^6;//蜂鳴器的接口</p><p>  sbit LED_OP

106、EN=P2^7;//LED燈的接口,開鎖信號</p><p>  //-------------------------------------------------------------</p><p>  // 延時</p><p>  //---------------------------------------------------

107、----------</p><p>  void Delay_ms(uint x)</p><p><b>  {</b></p><p><b>  uint i,j;</b></p><p>  for(i = 0;i < x; i++)</p><p>  fo

108、r(j = 0; j < 110; j++);</p><p><b>  }</b></p><p>  void Delay()</p><p><b>  {</b></p><p><b>  ;;</b></p><p><b>

109、;  }</b></p><p>  //---------------------------------</p><p><b>  // 蜂鳴器</b></p><p>  //---------------------------------</p><p>  void Beep()</p

110、><p><b>  {</b></p><p><b>  uchar i;</b></p><p>  for(i=0; i<100; i++)</p><p><b>  {</b></p><p>  Delay_ms(1);BEEP=!BEE

111、P;</p><p><b>  }</b></p><p><b>  BEEP=0;</b></p><p><b>  }</b></p><p>  void Beep1()</p><p><b>  {</b></

112、p><p><b>  uchar i;</b></p><p>  for(i = 0; i < 10; i++)</p><p><b>  Beep();</b></p><p><b>  }</b></p><p>  //---------

113、-------------------------</p><p>  // 清除密碼</p><p>  //----------------------------------</p><p>  void Clear_Password()</p><p><b>  {</b></p>

114、<p>  UserPassword[0]='\0';</p><p>  DSY_BUFFER[0]='\0';</p><p><b>  }</b></p><p>  //----------------------------------</p><p><b&g

115、t;  // 忙檢查</b></p><p>  //----------------------------------</p><p>  uchar Busy_Check()</p><p><b>  {</b></p><p>  uchar LCD_Status;</p>&

116、lt;p>  RS=0; //寄存器選擇</p><p>  RW=1; //讀狀態(tài)寄存器選擇</p><p><b>  EN=1;</b></p><p>  Delay_ms(1);</p><p>  LCD_Status=P0;</p><p><b>  EN=0;

117、</b></p><p>  return LCD_Status;</p><p><b>  }</b></p><p>  //-----------------------------------</p><p>  // 與LCD命令</p><p>  //--------

118、---------------------------</p><p>  void Write_LCD_Command(cmd)</p><p><b>  { </b></p><p>  while((Busy_Check() & 0x80)==0x80);</p><p><b>  RS=0;

119、</b></p><p><b>  RW=0;</b></p><p><b>  EN=0;</b></p><p>  P0=cmd; EN=1; Delay_ms(1); EN=0;</p><p><b>  }</b></p><p&

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論