單片機課程設計--液晶顯示電子密碼鎖_第1頁
已閱讀1頁,還剩34頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  液晶顯示電子密碼鎖</b></p><p>  院 、 部: 電氣與信息工程學院 </p><p>  學生姓名: </p><p>  指導教師: 職稱 副教授</p><p>  專 業(yè): 電氣工程及其自動化 </p>&

2、lt;p>  班 級: </p><p>  完成時間: 2012年12月19日 </p><p><b>  課程設計任務書</b></p><p>  課 程: 單片機技術 </p><p>  課程設計題目:

3、 數字電子鐘 </p><p>  數字頻率計 </p><p>  數字電壓表 </p><p>  交通燈 </p><p>  搶答器 </p><p>  密碼鎖 </p><p&

4、gt;  波形發(fā)生器 </p><p>  數字溫度計 </p><p>  計算器 </p><p>  數字式秒表 </p><p>  適 用 班 級: 自本1003~4、電子1001~2 </p><p>  電氣本1001~2、通信本1

5、001~2</p><p>  《單片機技術》課程設計任務書</p><p>  一、設計題目:數字電子鐘、數字頻率計、數字電壓表、交通燈、搶答器、密碼鎖、波形發(fā)生器、數字溫度計、計算器、數字式秒表。</p><p>  二、適用班級:自本1003~4、電子1001~2、電氣本1001~2、通信本1001~2</p><p><b>

6、;  三、指導教師:王韌</b></p><p>  四、設計目的與任務:</p><p>  學生通過理論設計和實物制作解決相應的實際問題,鞏固和運用在《單片機技術》中所學的理論知識和實驗技能,掌握單片機應用系統的一般設計方法,提高設計能力和實踐動手能力,為以后從事電子電路設計、研發(fā)電子產品打下良好的基礎。</p><p><b>  五、設

7、計內容與要求</b></p><p><b>  設計內容</b></p><p><b>  1、數字電子鐘</b></p><p>  設計一個具有特定功能的電子鐘。該電子鐘上電或按鍵復位后能自動顯示系統提示符“P.”, 進入時鐘準備狀態(tài);第一次按電子鐘啟動/調整鍵,電子鐘從0時0分0秒開始運行,進入時鐘運

8、行狀態(tài);再次按電子鐘啟動/調整鍵,則電子鐘進入時鐘調整狀態(tài),此時可利用各調整鍵調整時間,調整結束后可按啟動/調整鍵再次進入時鐘運行狀態(tài)。</p><p><b>  2、數字頻率計</b></p><p>  設計一個能夠測量周期性矩形波信號的頻率、周期、脈寬、占空比的頻率計。該頻率計上電或按鍵復位后能自動顯示系統提示符“P.”, 進入測量準備狀態(tài)。按頻率測量鍵則測量

9、頻率;按周期測量鍵則測量周期;按脈寬測量鍵則測量脈寬;按占空比測量鍵則測量占空比。</p><p><b>  3、數字電壓表</b></p><p>  設計一個能夠測量直流電壓的數字電壓表。測量電壓范圍0~5V,測量精度小數點后兩位。該電壓表上電或按鍵復位后能自動顯示系統提示符“P.”, 進入測量準備狀態(tài),按測量開始鍵則開始測量,并將測量值顯示在顯示器上,按測量結

10、束鍵則自動返回“P.”狀態(tài)。</p><p><b>  4、交通燈</b></p><p>  設計一個具有特定功能的十字路口交通燈。該交通燈上電或按鍵復位后能自動顯示系統提示符“P.”, 進入準備工作狀態(tài)。按開始鍵則開始工作,按結束鍵則返回“P.”狀態(tài)。要求甲車道和乙車道兩條交叉道路上的車輛交替運行,甲車道為主車道,每次通車時間為60秒,乙車道為次車道,每次通車時

11、間為30秒,要求黃燈亮3秒,并且1秒閃爍一次。有應急車輛出現時,紅燈全亮,應急車輛通車時間10秒,同時禁止其他車輛通過。</p><p><b>  5、搶答器</b></p><p>  設計一個具有特定功能的搶答器。該搶答器上電或按鍵復位后能自動顯示系統提示符“P.”, 進入準備工作狀態(tài)。主持人按下開始按鈕后,搶答開始并限定時間30S;10S內無人搶答,蜂鳴器發(fā)出

12、音響;主持人按下開始按鈕之前有人按下搶答器,搶答違規(guī),顯示器顯示違規(guī)臺號,違規(guī)指示燈亮,其它按鈕不起作用;正常搶答,顯示器顯示臺號,蜂鳴器發(fā)出音響,其它搶答按鈕無效;正常搶答下,從按下搶答按鈕開始30S內,答完按鈕沒按下,則作超時處理,超時處理時,違規(guī)指示燈亮,顯示器顯示違規(guī)臺號。蜂鳴器發(fā)出音響;各臺數字顯示的消除,蜂鳴器音響及違規(guī)指示燈的關斷,都要通過主持人按復位按鈕。</p><p><b>  6

13、、密碼鎖</b></p><p>  設計一個具有特定功能的密碼鎖。該密碼鎖上電或按鍵復位后能自動顯示系統提示符“P.”, 進入準備工作狀態(tài)。該密碼鎖具有系統原始密碼888888,用戶可以設定并存儲用戶密碼,密碼輸入時應處于保密顯示狀態(tài),密碼輸入正確時應顯示密碼輸入正確提示信息,否則,顯示密碼輸入錯誤提示信息。</p><p><b>  7、波形發(fā)生器</b&

14、gt;</p><p>  設計一個具有特定功能的波形發(fā)生器。該波形發(fā)生器上電或按鍵復位后能自動顯示系統提示符“P.”, 進入準備工作狀態(tài)。該波形發(fā)生器可以分別產生幅值0~5V、頻率100Hz~100KHz范圍內的三角波、鋸齒波、方波、梯形波和正弦波。</p><p><b>  8、數字溫度計</b></p><p>  設計一個具有特定功能

15、的數字溫度計。該數字溫度計上電或按鍵復位后能自動顯示系統提示符“P.”,進入準備工作狀態(tài)。測量溫度范圍0℃~99℃,測量精度小數點后兩位,可以通過開始和結束鍵控制數字溫度計的工作狀態(tài)。</p><p><b>  9、計算器</b></p><p>  設計一個具有特定功能的計算器。該計算器上電或按鍵復位后能自動顯示系統提示符“P.”,進入準備工作狀態(tài)。能實現(1)基

16、本的加、減、乘、除、平方、開方;(2)三角函數運算;(3)十進制、十六進制轉換運算;(4)其他功能。</p><p><b>  10、數字式秒表</b></p><p>  設計一個具有特定功能的數字式秒表。該數字式秒表上電或按鍵復位后能自動顯示系統提示符“P.”,進入準備工作狀態(tài)。該數字式秒表應具有開始、暫停、連續(xù)、清零和停止功能。</p><

17、p><b>  設計要求</b></p><p>  1、以上課題可以任選其一或多選,學生也可以自擬課題;</p><p>  2、編程語言:匯編或C51;</p><p>  3、計算機打印《單片機技術》課程設計說明書一份;</p><p>  4、設計時間:一周;</p><p><

18、;b>  5、實物制作;</b></p><p>  6、人員分組:一人一組一實物。</p><p>  六、《單片機技術》課程設計說明書正文主要內容</p><p>  參照“《單片機技術》課程設計說明書正文主要內容”文件。</p><p>  七、《單片機技術》課程設計說明書書寫規(guī)范格式</p><p

19、>  參照“《單片機技術》課程設計說明書書寫規(guī)范格式”文件。</p><p><b>  八、參考資料</b></p><p>  1、馬忠梅,單片機的C語言Windows環(huán)境編程寶典[M], 北京:北京航空航天大學出版社,2003.6;    </p><p>  2、李光飛,單片機C程序設計指導[M],北京:北京航空航天大學出版社,2

20、003.01 ;</p><p>  3、李光飛,單片機課程設計實例指導[M],北京:北京航空航天大學出版社,2004.9。</p><p><b>  摘 要</b></p><p>  本文是基于12864液晶系統設計的密碼鎖課程設計,以AT89S52為核心的單片機控制方案,利用單片機靈活的編程設計和豐富的I/O端口,及其控制的準確性,通

21、過AT89S52模擬I2C總線和AT24C02通訊,實現基本的密碼鎖功能。</p><p>  本設計主要硬件由三部分組成:4×4行列式鍵盤接口電路、密碼鎖的控制電路、液晶顯示電路。初步設計思路如下: </p><p>  (1)具有系統原始密碼88888888,密碼通過行列式鍵盤輸入,若密碼正確,則將鎖打開。 </p><p> ?。?)用戶可以自定義密

22、碼。開鎖后,用戶可對原始密碼進行修改</p><p> ?。?)具有超級密碼,用于處理非常情況;</p><p> ?。?)密碼輸入時應處于保密顯示狀態(tài),密碼輸入正確時應顯示密碼輸入正確提示信息,否則,顯示密碼輸入錯誤提示信息,三次輸入密碼錯誤,則不允許輸入并報警。</p><p>  (5)系統崩潰后重啟,變?yōu)樵瓉沓跏紶顟B(tài)</p><p>

23、  軟件的設計主要包括鍵掃子程序,液晶顯示程序,密碼比較程序,AT24C02讀寫程序,報警程序和開鎖顯示程序等。</p><p>  經實驗證明,該密碼控制系統具有設計方法合理,簡單易行,成本低,安全使用等特點,符合車輛、辦公室用鎖要求,具有推廣價值。</p><p>  關鍵詞 :12864液晶系統;行列式鍵盤;AT89S52;24C02 </p><p><

24、;b>  ABSTRACT</b></p><p>  This paper is based on the 12864 LCD system design coded lock curriculum design, with AT89S52 as the core of the single chip microcomputer control scheme, using the single

25、 chip microcomputer to agile programming design and rich I/O port, and the control accuracy, through the AT89S52 simulation of I2C bus and AT24C02 communication, realize the basic trick lock function.</p><p>

26、;  This design main hardware consists of three parts: 4 x4 determinant keyboard interface circuit, coded lock control circuit, liquid crystal display circuit. Preliminary design idea is as follows:</p><p>  

27、(1) is the original password system 88888888, password through the determinant keyboard input, if the password is correct, will open the lock.</p><p>  (2) the user can customize the password. Unlocked, the

28、user can modify the original password</p><p>  (3) have super password, used for processing very;</p><p>  (4) the password input should be in confidential displays a status, the password input

29、the correct password input should display the correct prompt information, otherwise, show the password input error message information, three input password mistake, do not allow input and alarm.</p><p>  (5

30、) system collapse after restart, into the original initial state</p><p>  Software design mainly includes key and subroutine, liquid crystal display program, the password is AT24C02 procedures, reading and

31、writing program, alarm procedures and unlocking display program, etc.</p><p>  The test shows that the password control system has the design method is reasonable, simple, low cost, safe operation, etc, in l

32、ine with the vehicle, office use lock requirements with promotion value.</p><p>  Key words :12864 LCD system; Determinant keyboard; AT89S52;24C02 </p><p><b>  目 錄</b></p>&l

33、t;p>  1 設計課題任務、功能要求說明及總體方案介紹………………………………4</p><p>  1.1 設計課題任務 ……………………………………………………………4</p><p>  1.2 功能要求說明 ……………………………………………………………4</p><p>  1.3 總體方案介紹 …………………………………………………………

34、…4</p><p>  2 設計課題硬件系統的設計 ……………………………………………………5</p><p>  2.1 設計課題硬件系統各模塊功能簡要介紹 ………………………………5</p><p>  2.2 設計課題電路原理圖、PCB 圖、元器件布局圖 ………………………6</p><p>  2.3 設計課題元器件清單

35、……………………………………………………6</p><p>  3 設計課題軟件系統的設計 ……………………………………………………7</p><p>  3.1 設計課題使用單片機資源的情況 ………………………………………7</p><p>  3.2 設計課題軟件系統各模塊功能簡要介紹 ………………………………7</p><p>

36、  3.3 設計課題軟件系統程序流程框圖 ………………………………………8</p><p>  3.4 設計課題軟件系統程序清單……………………………………………11</p><p>  4 設計結論、仿真結果、誤差分析、教學建議 ………………………………34</p><p>  4.1 設計課題的設計結論及使用說明………………………………………34<

37、/p><p>  4.2 設計課題的仿真結果……………………………………………………34</p><p>  4.3 設計課題的誤差分析……………………………………………………34</p><p>  4.4 設計體會…………………………………………………………………35</p><p>  4.5 教學建議………………………………………

38、…………………………36</p><p>  參考文獻 …………………………………………………………………………37</p><p>  致謝…………………………………………………………………………………38</p><p>  附錄…………………………………………………………………………………39</p><p>  1 密碼鎖設計課題

39、任務、功能要求說明及總體方案介紹</p><p>  1.1 設計課題任務</p><p>  設計一個具有特定功能的密碼鎖。該密碼鎖上電或按鍵復位后能自動顯示菜單系統界面, 根據菜單界面的數字進入對應的進入工作狀態(tài)。該密碼鎖具有系統原始密碼88888888,用戶可以設定并存儲用戶密碼,密碼輸入時應處于保密顯示狀態(tài),密碼輸入正確時應顯示正確提示信息,否則,顯示錯誤提示信息。</p&g

40、t;<p>  1.2 功能要求說明</p><p>  設計一個利用AT89S52單片機控制的電子密碼鎖,該電子密碼功能包括10個密碼輸入,密碼輸入過程中有清除輸入,密碼正確和錯誤等提示,還有密碼修改,12864LCD顯示菜單實現多功能等等。</p><p>  1.3 設計課題總體方案介紹</p><p>  1.3.1總體方案介紹如下:<

41、/p><p> ?。?)具有系統原始密碼88888888,密碼通過行列式鍵盤輸入,密碼輸入時處于保密顯示狀態(tài),若密碼正確,則將鎖打開。 </p><p> ?。?)用戶可以自定義密碼。開鎖后,用戶可對原始密碼進行修改</p><p> ?。?)具有超級密碼,用于處理非常情況;</p><p> ?。?)密碼輸入時應處于保密顯示狀態(tài),密碼輸入正確時

42、應顯示密碼輸入正確提 示信息,否則,顯示密碼輸入錯誤提示信息,三次輸入密碼錯誤,則不允許輸入并報警。</p><p> ?。?)系統崩潰后重啟,變?yōu)樵瓉沓跏紶顟B(tài)</p><p>  1.3.2單片機系統結構圖:</p><p>  圖1 單片機系統結構圖</p><p><b>  2 硬件系統的設計</b><

43、/p><p>  2.1 硬件電路的組成及各模塊功能說明</p><p>  單片機系統是整個硬件系統的核心,它既協調整機工作,又是數據處理器,是軟硬件系統連接的橋梁。本系統主要包括:AT89S52單片機、存儲芯片AT24C02、鍵盤輸入電路、電源輸入電路、掉電存儲電路、復位電路、晶振電路、液晶顯示模塊、報警電路。</p><p>  2.1.1 AT89S52單片機

44、 </p><p>  AT89S52是一個低功耗,高性能CMOS 8位單片機,片內含4k Bytes的只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術制造,兼容標準MCS-51指令系統及AT89S52引腳結構,芯片內集成了通用8位中央處理器和ISP Flash存儲單元,功能強大的微型計算機的AT89S52可為許多嵌入式控制應用系統提供高性價比的解決方案。</p><p>

45、  2.1.2存儲芯片AT24C02</p><p>  AT24C02是美國Atmel公司的低功耗CMOS型E2PROM,內含256×8位存儲空間,具有工作電壓寬(2.5~5.5 V)、擦寫次數多(大于10000次)、寫入速度快(小于10 ms)、抗干擾能力強、數據不易丟失、體積小等特點。而且他是采用了I2C總線式進行數據讀寫的串行器件,占用很少的資源和I/O線,并且支持在線編程,進行數據實時的存取十

46、分方便。</p><p><b>  管腳描述:</b></p><p>  (1)SCL 為串行時鐘:</p><p>  串行時鐘輸入管腳用于產生器件所有數據發(fā)送或接收的時鐘,是一個輸入管腳。</p><p> ?。?)SDL 為串行數據/地址:</p><p>  雙向串行數據/地址管腳用于

47、器件所有數據的發(fā)送或接收SDL,是一個開漏輸出管腳可與其它開漏輸出或集電極開路輸出進行線或。</p><p> ?。?)A0、A1、A2 為器件地址輸入端:</p><p>  當使用24C02 時最大可級聯8個器件,如果只有一個24C02被總線尋址,這三個地址輸入腳A0、A1、A2可懸空或連接到Vss。</p><p> ?。?)WP為寫保護:</p>

48、<p>  如果WP 管腳連接到Vcc 所有的內容都被寫保護只能讀當WP, 管腳連接到Vss 或懸空,允許器件進行正常的讀/寫操作[12]。</p><p>  2.1.3 鍵盤輸入電路</p><p>  由于本設計所用到的按鍵數量較多而不適合用獨立按鍵式鍵盤。采用的是矩 陣式按鍵鍵盤,它由行線和列線組成,也稱行列式鍵盤,按鍵位于行列的交叉上,密碼鎖的密碼由鍵

49、盤輸入完成,與獨立式按鍵鍵盤相比,要節(jié)省很多I/O口。 </p><p>  2.1.4 電源輸入電路</p><p>  密碼鎖主要控制部分電源需要用5V直流電源供電。 </p><p>  2.1.5 掉電存儲電路</p><p>  作為密碼鎖,掉電保護是必須的,在這里我們用AT24C02來儲存密碼。AT24C02的1、2、3腳是

50、三條地址線,用于確定芯片的硬件地址。在AT89S52試驗開發(fā)板上它們都接地,第4腳和第8腳分別為正、負電源。第6腳SDA為串行數據輸入/輸出,數據通過這條雙向I²C總線串行傳送,在AT89S52試驗開發(fā)板上和單片機的P3.2連接。第5腳SCK為串行時鐘輸入線,在AT89S52試驗開發(fā)板上和單片機的P3.3連接。SDA和SCK都需要和正電源間各接一個5.1K的電阻上拉。第7腳接地。</p><p>  2

51、.1.6 復位電路</p><p>  單片機復位是使CPU和系統中的其他功能部件都處在一個確定的初始狀態(tài),并從這個狀態(tài)開始工作,例如復位后PC=0000H,使單片機從第—個單元取指令。無論是在單片機剛開始接上電源時,還是斷電后或者發(fā)生故障后都要復位。為了避免死機時無法可靠復位,本設計電路在最簡單的復位電路下增加了手動復位按鍵。</p><p>  2.1.7 晶振電路</p&g

52、t;<p>  AT89S52引腳XTAL1和XTAL2與晶體振蕩器及電容按附錄一所示方式連接。晶振、電容構成了電容三點式振蕩器,振蕩信號頻率與晶振頻率及電容的容量有關,但主要由晶振頻率決定,范圍在0~33MHz之間,電容取值范圍在5~40pF之間。根據實際情況,本設計中采用12MHZ做系統的外部晶振。電容取值為33pF。</p><p>  2.1.8 液晶顯示電路</p><

53、;p>  為了提高密碼鎖的密碼顯示效果能力。本設計的顯示部分由液晶顯示器FYD12864取代普通的數碼管來完成。當需要對密碼鎖進行開鎖時,利用鍵盤上的數字鍵0-9輸入密碼,每按下一個數字鍵后在顯示器上顯示一個*,輸入多少位就顯示多少個*。當密碼輸入完成時,按下確認鍵,如果輸入的密碼正確, 液晶板顯示“成功開啟”,通過LCD顯示屏,可以清楚的判斷出密碼鎖所處的狀態(tài) 。</p><p>  表1 并行接口管腳

54、信號表</p><p>  *注釋1:如在實際應用中僅使用并口通訊模式,可將PSB接固定高電平,也可以將模塊上的J8和“VCC”用焊錫短接。</p><p>  *注釋2:模塊內部接有上電復位電路,因此在不需要經常復位的場合可將該端懸空。 </p><p>  *注釋3:如背光和模塊共用一個電源,可以將模塊上的JA、JK用焊錫短接。</p>&l

55、t;p>  根據以上對FYD12864-0402介紹我們可以設計出液晶顯示的原理圖。</p><p>  可變電阻RA用于調整液晶顯示的亮度。</p><p>  2.1.9 報警電路</p><p>  報警模塊由蜂鳴器實現。選擇壓電式蜂鳴器,當三次密碼輸入錯誤,AT89S52的P3.0口輸出為低電平,蜂鳴器產生蜂鳴音。否則,AT89S52輸出為高電平,蜂鳴

56、器不發(fā)聲。</p><p>  2.1.10 鍵盤按鍵功能</p><p>  具體的功能設計如表2:</p><p><b>  表2 按鍵功能</b></p><p>  2.2 設計課題電路原理圖、PCB圖、元器件布局圖</p><p>  2.2.1 液晶系統電路原理圖附錄2<

57、/p><p>  2.2.2 液晶系統PCB圖附錄3</p><p>  2.2.3 液晶系統3D圖附錄4</p><p>  2.2.4 底層PCB圖附錄5</p><p>  2.2.5 頂層PCB圖附錄6</p><p>  2.2.6 絲印層PCB圖附錄7 </p><p>  2.3 設計

58、課程元器件清單(附錄1)</p><p><b>  3 軟件設計</b></p><p>  3.1 密碼鎖設計使用單片機資源的情況</p><p>  原始密碼存放在內部程序存儲器中,78H-7FH單元做字形代碼緩沖區(qū),70H-77H單元做數據比較緩沖區(qū),61H-66H作為新密碼存放區(qū),88H-8DH做密碼緩沖區(qū)。</p>&

59、lt;p>  3.2 密碼鎖設計軟件系統各模塊功能簡介及流程圖</p><p>  軟件的設計主要包括鍵掃子程序,液晶顯示程序,密碼比較程序,AT24C02讀寫程序,報警程序和開鎖顯示程序。</p><p><b>  3.2.1 主程序</b></p><p>  有本設計的要求可以畫出主程序流程圖,如圖5-1所示</p>

60、<p>  圖3.1 總程序流程圖 </p><p><b>  3.2.2鍵掃程序</b></p><p>  根據矩陣式鍵盤的編程規(guī)則,我們可以很容易寫出鍵掃子程序流程圖</p><p>  鍵掃子程序流程圖如圖5-2所示</p><p>  圖3.2 鍵盤掃描流程圖</p><

61、;p>  3.2.3 密碼比較和報警程序</p><p>  密碼鎖在輸入密碼時只有密碼完全相同才能開鎖,超過3次輸入錯誤則啟動報警電路,并且鎖定鍵盤。密碼比較和報警流程圖如5-3所示</p><p>  圖3.3 密碼比較和報警流程</p><p>  3.2.4 AT24C02讀寫程序設計</p><p>  有前面對于24C0

62、2和I2C總線工作原理的介紹,我們很容易寫出流程圖.圖5-4讀操作算法流程圖,圖5-5寫操作算法流程圖</p><p>  圖3.4 讀操作算法流程圖 圖3.5 寫操作算法流程圖</p><p>  4、設計結論、仿真結果、誤差分析、教學建議</p><p><b>  4.1設計結論</b></p>

63、<p>  本設計是利用AT89S52與24C02一起組成電路,還利用了LCD12864顯示器,C51寫的程序,顯示內容很豐富、直觀,24C02能存儲數據,在斷電的情況下密碼還能保護好,能確保下次來電了還能繼續(xù)使用原來的密碼,設計比較人性化,能修改密碼,還有一個超級密碼,在用戶忘了密碼的情況下還能繼續(xù)使用此密碼鎖,提高了密碼鎖可使用性。</p><p><b>  4.2仿真結果</b

64、></p><p>  4.2.1 仿真軟件介紹</p><p>  在仿真時用到了兩個軟件,第一個是Keil,第二個是Protues,本次仿真是將兩個軟件結合起來進行的。</p><p>  Proteus 軟件所提供了30多個元件庫,數千種元件。元件涉及到數字和模擬、交流和直流等。對于一個仿真軟件或實驗室, 測試的儀器儀表的數量、 類型和質量, 是衡量實驗

65、室是否合格的一個關鍵因素。在Proteus軟件包中,不存在同類儀表使用數量的問題。Proteus還提供了一個圖形顯示功能,可以將線路上變化的信號,以圖形的方式實時地顯示出來,其作用與示波器相似但功能更多。Proteus ISIS是英國Labcenter公司開發(fā)的電路分析與實物仿真軟件。它運行于Windows操作系統上,可以仿真、分析(SPICE)各種模擬器件和集成電路,該軟件的特點是:①實現了單片機仿真和SPICE電路仿真相結合。具有模

66、擬電路仿真、數字電路仿真、單片機及其外圍電路組成的系統的仿真、RS232動態(tài)仿真、I2C調試器、SPI調試器、鍵盤和LCD系統仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號發(fā)生器等。②支持主流單片機系統的仿真。目前支持的單片機類型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各種外圍芯片。③提供軟件調試功能</p><p>  單

67、片機電路的模擬調試選中單片機AT89S52,左鍵點擊AT89S52,在出現的對話框里點擊Program File按鈕,找到剛才編譯得到的HEX文件,然后點擊“OK”按鈕就可以模擬了。點擊模擬調試按鈕的運行按鈕 ,進人調試狀態(tài)。我們還可以單步模擬調試,點擊按鈕,進人單步調試狀態(tài), 在單步模擬調試狀態(tài)下,點擊菜單欄的“Debug”,點擊Simulation Log會出現和模擬調試有關的信息。</p><p>  總之

68、,利用此兩軟件的有效結合使得數字電子鐘能夠在模擬的環(huán)境下進行。因此,可以讓我在制作實物時,先進行軟件的調試和模擬,使得制作實物時能夠更加有效的減少錯誤。</p><p>  4.2.2 仿真結果</p><p>  用Proteus仿真,圖見附錄五。</p><p>  圖4.1 仿真密碼鎖顯示</p><p>  4.3 設計誤差及重點分析

69、</p><p>  在設計的過程中,雖然用了鍵掃,但還是存在按鍵的誤差,不太靈敏。這個設計的重點在于把用戶輸入的密碼逐個逐個的比較,直到輸入的所有的密碼都正確才能開鎖。</p><p><b>  4.4 設計體會</b></p><p>  通過一學期單片機的學習,我對單片機有了一定的了解,王老師通過一邊教課,一邊讓我們動手,是我們對單片機

70、慢慢的有了了解,先是學習單片機的各個部分,一部分一部分的應用,再通過實驗把單片機的各個部分都有了很好基礎,為我們這個課程設計打下了堅實的基礎,通過這次課程設計我感覺到了理論還是要與實踐結合起來,只有通過了實踐,有了經驗,才會感覺理論學起來也還是很容易的。我感覺在這次的設計過程中,我們必須知道要應用的硬件的基本結構,各個部分的基本功能,芯片的各個引腳的定義及能實現的功能。在軟件設計時,我們必須結合硬件的電路,沒有硬件就不能寫出軟件程序,不

71、同的硬件電路,設計的程序也不相同。</p><p>  盡管這次應用的電路是王老師給的電路圖,但是在學習的過程中王老師把這個系統分成很多個模塊,一個模塊一個模塊的講解,慢慢地明白了這個模塊這么設計的原因,也對我們自己設計硬件電路時有了很大的幫助。</p><p>  在寫程序的過程中,遇到了很多的難題,可能在仿真中能實現的,但是到了實物就實現不了了,這個讓我很困惑,但是使我再次認識到了理論

72、和實際還是有差距的。還有就是一個程序我看了好久,根據理論是完全的沒問題,但是就是出不來,這就讓我學會了調試,利用keil調試程序,對我們也是至關重要的。</p><p>  以前對寫程序感覺是一個很大的難題,一看到寫程序就不想寫下去了。但是,設計C51程序的過程中,我了解了其實不是學的好就能把程序寫出來,而是要多寫,在寫的實踐過程中學習C51的用法,這對我以后的學習也有了很大的幫助,通過這次的實踐我對寫程序不再那

73、么畏懼了。</p><p>  還有,我對不怎么熟悉的芯片也沒那么抵觸了,無論什么樣的芯片我們都可以利用網絡找到其有用的資料,通過自己看資料能把不熟悉的芯片了解得很透徹,比如在開始我對24C02不怎么了解得通過在寫程序的過程中,讀有關資料,寫出了密碼鎖的程序。提高了自信心。</p><p><b>  4.5 教學建議</b></p><p>

74、  轉眼間一個學期就結束了,一個學期以來,在王老師的指導下,學習單片機知識,讓我覺得非常的充實。通過實驗與理論相結合,將理論應用于實踐,用實踐來檢驗理論,取得了很好的效果。課程設計的順利完成有自己的不懈努力,也有很大一部分得歸功于老師教給我們的學習方法,大大的提高了學習的效率。</p><p>  我感覺王老師的教學方法很好,把理論和實踐結合起來了,先理論后實踐,理論與實踐相結合。這也對我們學好理論有很大的幫助,

75、也正是因為這個方法,使我們對單片機產生了濃厚的興趣。通過在實踐中找到了自信,也驗證了理論的正確性。這種一邊學習理論一邊實踐的學習方法應該推廣,這能夠彌補中國應試教育的弊端。</p><p>  王老師嚴謹的治學態(tài)度,廣博的理論知識,豐富的工作經驗,務實的工作態(tài)度,使我受益匪淺。我不僅從他們身上學到了許多實踐的方法,還學會了很多做人的道理,這將使我終生受益。在此,感謝王老師這一學期的精心指導,我會在以后的生活、學習

76、中做的更好。</p><p><b>  參考文獻</b></p><p>  [1] 李廣弟,朱月秀,冷祖祁.單片機基礎(第3版).北京:北京航空航天大學出版社,2007.6.</p><p>  [2] 宋薇.基于單片機MCS-51的智能密碼鎖設計[M].武漢工程職業(yè)技術學院學報,2004,(01);</p><p>

77、;  [3] 葉啟明.單片機制作的新型安全密碼鎖[J].家庭電子,2005,(10);</p><p>  [4] 董繼成.一種新型安全的單片機密碼鎖[J].電子技術,2004,(03);</p><p>  [5] 郭海英.基于單片機的電子安全密碼鎖的設計[M].現代電子技術,2005,(13);</p><p>  [6] 何立民.單片機應用技術選編[M],北京

78、:北京航空大學出版社,1998;</p><p>  [7] 李華.MCS-51系列單片機使用接口技術[M],北京航空航天大學出版社,1993;</p><p>  [8] 彭為.單片機典型系統設計實例精講[M],北京:電子工業(yè)出版社,2006;</p><p><b>  致 謝</b></p><p>  經過暑假

79、的入門培訓以及一學期單片機的學習,在期末完成了電子密碼鎖的設計課題。本次設計得到了王任老師和同學的大力支持和幫助,在此一并感謝! 限于本人的能力和水平,錯誤和不妥之處在所難免,望老師批評和指正。</p><p><b>  附 錄</b></p><p>  附錄1 元器件數量及規(guī)格</p><p>  表1 元器件數量及規(guī)格</

80、p><p>  附錄2 液晶系統總的原理圖</p><p>  圖1 液晶系統總的原理圖</p><p>  附錄3 液晶系統PCB圖</p><p>  圖2 液晶系統PCB圖</p><p>  附錄4 液晶系統3D圖</p><p>  圖3 液晶系統3D圖</p>&l

81、t;p>  附錄5 底層PCB圖</p><p>  圖4 底層PCB圖</p><p>  附錄6 頂層PCB圖</p><p>  圖5 頂層PCB圖</p><p>  附錄7 絲印層PCB圖</p><p>  圖6 絲印層PCB圖</p><p><b>  

82、附錄8 參考程序</b></p><p>  /*****************************************/</p><p>  /*名稱:密碼鎖*/</p><p>  /* 要求: 功能要求:</p><p>  設計一個具有特定功能的密碼鎖。</p><p> ?。?)具有系

83、統原始密碼88888888;</p><p>  (2)用戶可以自定義密碼;</p><p> ?。?)具有超級密碼,用于非常情況;</p><p> ?。?)密碼輸入時應處于保密顯示狀態(tài),密碼輸入正確時應顯示密碼輸入正確提示信息,否則,顯示密碼輸入錯誤提示信息,三次輸入密碼錯誤,則不允許輸入并報警。</p><p>  (5)系統崩潰后重啟

84、,變?yōu)樵瓉沓跏紶顟B(tài)</p><p>  /* 時間:2012年10月22日 */ </p><p>  /*作者:仇爭光*/</p><p>  /*****************************************/</p><p>  #include <reg52.h></p><

85、;p>  #include <intrins.h></p><p>  #define uchar unsigned char</p><p>  #define uint unsigned int</p><p>  sbit rs = P3^1;</p><p>  sbit rw = P3^6;</p>

86、<p>  sbit en = P3^7;</p><p>  #defineOP_READ0xa1 // 器件地址以及讀取操作</p><p>  #defineOP_WRITE 0xa0 // 器件地址以及寫入操作 </p><p>  #defineMAX_ADDR 0x7f // AT24C02最大地址&l

87、t;/p><p>  Uchar code dis_code[]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,</p><p>  0x39}; //0-9,寫入到AT24C01的數據串</p><p>  uchar code surper_code[]={0x39,0x

88、39,0x39,0x39,0x39,0x39,0x39,</p><p>  0x39}; //99999999 超級密碼</p><p>  uchar mima[]={0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38}; </p><p>  //原始密碼8個8, 最后一位

89、標志位</p><p>  uchar password1[7]={0};</p><p>  uchar Userpassword[7]={0}; //原始密碼8個8</p><p>  sbit P3_0 = P3^0;</p><p>  sbit SDA = P2^3; //串行數據/地

90、址</p><p>  sbit SCL = P2^4; //串行時鐘</p><p>  bit fuhe=0,aa; //用戶自定義 溢出標志位</p><p>  uchar w=0;</p><p>  uchar table[10]; //存放原始密碼的,可以比較</p><

91、p>  uchar table2[10]; //存放用戶自定義密碼,可以比較</p><p>  uchar find_code1[16]=" "; //緩沖數組1 </p><p>  uchar find_code2[16]=" "; //緩沖

92、數組2</p><p>  /*******************函數聲明*****************************/</p><p>  void Display_String(uchar *p,uchar com);//顯示要寫的信息</p><p>  uchar key_return(); /

93、/返回鍵掃描鍵值</p><p>  uchar keyscan(void); //鍵掃描函數 </p><p>  void clear_password(); //清除密碼函數</p><p>  void delay(uint m);//延時函數</p><p>  void writecomman

94、d(uchar command);//液晶寫命令函數</p><p>  void writedata(uchar date);//液晶寫數據函數</p><p>  void lcdset(void); //液晶設置函數</p><p>  void display(uchar y, uchar x, uchar *p);//液晶顯示函數&

95、lt;/p><p>  /*** **與24c02有關的函數** ******/</p><p>  void delayms(uchar ms); // 延時子程序</p><p>  void start(); // 開始位</p><p>  void stop(); // 停

96、止位</p><p>  uchar shin(); // 從AT24Cxx移入數據到單片機</p><p>  bit shout(uchar write_data); // 從單片機移出數據到AT24Cxx</p><p>  void write_byte(uchar addr, uchar write_data);

97、 </p><p>  // 在指定地址addr處寫入數據write_data</p><p>  void fill_byte(uchar fill_data); // 填充數據fill_data到EEPROM內 </p><p>  uchar read_current();// 在當前地址讀取</p><p

98、>  uchar read_random(uchar random_addr); // 在指定地址讀取</p><p>  /*******************************************************************/</p><p>  void main(void)</p><p><b&g

99、t;  { </b></p><p>  uchar u,temp2,k, surper=0;</p><p>  uchar i ,w,j=0,ii=0,n=0;</p><p>  // uchar t;</p><p><b>  f:</b></p><p>  SDA =

100、 1;//二線串行接口</p><p><b>  SCL = 1;</b></p><p>  fill_byte(0xff);</p><p><b>  lcdset();</b></p><p>  writecommand(0x01);</p><

101、p>  w=read_random(8); //從24c02的第十位讀出m的值 若m為0 則說明用戶還沒修改密碼 轉向24c02中讀出原始密碼 </p><p>  if(w==2)//w為2 則說明用戶一修改過密碼 轉向24c02中讀出新密碼 </p><p>  { for(i=0;i&l

102、t;8;i++)</p><p>  {mima[i]= read_random(i);} // 循環(huán)讀取24Cxx內容 </p><p><b>  }</b></p><p>  s: display(1,1,"歡迎使用密碼鎖");</p><p>  display(2,1,&

103、quot;密碼:");display(4,1,"確認A");display(4,6,"重輸E");</p><p><b>  while(1)</b></p><p><b>  { </b></p><p>  temp2=key_return();</p>

104、;<p>  switch(temp2)</p><p><b>  {</b></p><p>  case 0x30: case 0x31:case 0x32:case 0x33:case 0x34:case 0x35:case 0x36:case 0x37:case 0x38:case 0x39:</p><p><b

105、>  if(ii<=7)</b></p><p><b>  {</b></p><p>  Userpassword[ii]=temp2;</p><p>  find_code1[ii]='*'; </p><p>  Display_String(find_code1,0x8

106、8);</p><p><b>  ii++;</b></p><p>  } break; </p><p>  case 10://a開鎖確認鍵 { {if((mima[0]==Userpassword[0])&&(mima[1]==Userpassword[1])&&</p&

107、gt;<p>  (mima[2]==Userpassword[2])&&(mima[3]==Userpassword[3])</p><p>  &&(mima[4]==Userpassword[4])&&(mima[5]==Userpassword[5])</p><p>  &&(mima[6]==User

108、password[6])&&(mima[7]==Userpassword[7]))</p><p><b>  fuhe=1;</b></p><p><b>  else</b></p><p><b>  fuhe=0;</b></p><p><b&

109、gt;  }</b></p><p>  if(fuhe==1)</p><p><b>  {</b></p><p><b>  fuhe=0;</b></p><p><b>  ii=0;</b></p><p>  clear_pa

110、ssword(); //清除密碼函數</p><p>  display(3,1," 成功開啟 ");</p><p>  u=1; //開鎖后,可以修改密碼</p><p><b>  j=0; </b></p><p>  display

111、(4,1,"確認A");display(4,6,"修改C");</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {j++;</b></p><p>  clear_pass

112、word();</p><p>  display(3,1," 請重新輸入!");</p><p><b>  u=0;</b></p><p><b>  }</b></p><p><b>  ii=0;</b></p><p>

113、;<b>  break;</b></p><p><b>  } </b></p><p>  case 12://c設置新密碼</p><p>  {if(!u) //沒有開鎖之前不能設置新密碼</p><p><b>  {</b></p&g

114、t;<p><b>  i=0;</b></p><p>  display(3,2,"操作錯誤!");</p><p>  delayms(250);</p><p><b>  }</b></p><p>  else {i=0;</p><

115、p>  display(2,1,"新密碼:");</p><p>  display(3,2," ");</p><p>  display(4,1,"保存D");display(4,6,"重輸E");</p><p>  } break; </p&

116、gt;<p><b>  }</b></p><p>  case 13: //D保存新密碼</p><p>  { if(!u)</p><p><b>  { i=0;</b></p><p><b>  }</b><

117、/p><p><b>  else </b></p><p><b>  { ii=0;</b></p><p><b>  SDA = 1;</b></p><p><b>  SCL = 1;</b></p><p>  fill_

118、byte(0xff);</p><p><b>  lcdset();</b></p><p>  delayms(50);</p><p>  writecommand(0x01);</p><p>  for(i=0;i<=7;i++)</p><p>  { mima[i]=Userp

119、assword[i]; </p><p><b>  } </b></p><p>  for(i=0;i<8;i++)</p><p>  { write_byte(i,mima[i]);} //寫入8位為密碼 </p><p>  w=2; //

溫馨提示

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

評論

0/150

提交評論