基于-單片機(jī)電子密碼鎖設(shè)計_第1頁
基于-單片機(jī)電子密碼鎖設(shè)計_第2頁
基于-單片機(jī)電子密碼鎖設(shè)計_第3頁
基于-單片機(jī)電子密碼鎖設(shè)計_第4頁
基于-單片機(jī)電子密碼鎖設(shè)計_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、-PAGE . z嵌入式系統(tǒng)工程實踐課程報告題 目基于單片機(jī)的電子密碼鎖設(shè)計團(tuán)隊成員專 業(yè) 網(wǎng)絡(luò)工程 指導(dǎo)教師2021年10月9日目錄 TOC o 1-3 h z u HYPERLINK l _Toc8614 摘要: PAGEREF _Toc8614 3 HYPERLINK l _Toc26982 1 緒論 PAGEREF _Toc26982 4 HYPERLINK l _Toc17021 1.1選題背景 PAGEREF _Toc17021 4 HYPERLINK l _Toc9629 1.2研究意義 PAGEREF _Toc9629 4 HYPERLINK l _Toc29377 1.3容與

2、構(gòu)造 PAGEREF _Toc29377 4 HYPERLINK l _Toc8895 2 系統(tǒng)整體設(shè)計方案 PAGEREF _Toc8895 4 HYPERLINK l _Toc7094 2.1相關(guān)知識介紹 PAGEREF _Toc7094 4 HYPERLINK l _Toc26733 2.1.1 AT89C51引腳功能描述 PAGEREF _Toc26733 4 HYPERLINK l _Toc5943 2.1.2 LCD1602性能描述 PAGEREF _Toc5943 5 HYPERLINK l _Toc4859 2.1.3 24C04性能描述 PAGEREF _Toc4859 6

3、HYPERLINK l _Toc22153 2.2系統(tǒng)總體設(shè)計 PAGEREF _Toc22153 6 HYPERLINK l _Toc10302 3硬件電路 PAGEREF _Toc10302 6 HYPERLINK l _Toc23350 3.1單元電路設(shè)計 PAGEREF _Toc23350 7 HYPERLINK l _Toc4727 3.1.1單片機(jī)最小系統(tǒng) PAGEREF _Toc4727 7 HYPERLINK l _Toc25318 3.1.2 1602LCD數(shù)碼管顯示電路 PAGEREF _Toc25318 7 HYPERLINK l _Toc6898 3.1.3矩陣鍵盤電路

4、 PAGEREF _Toc6898 8 HYPERLINK l _Toc4850 3.2系統(tǒng)總硬件電路圖 PAGEREF _Toc4850 9 HYPERLINK l _Toc13815 4 軟件模塊設(shè)計 PAGEREF _Toc13815 9 HYPERLINK l _Toc10638 4.1系統(tǒng)開發(fā)工具使用 PAGEREF _Toc10638 9 HYPERLINK l _Toc32713 4.2系統(tǒng)開發(fā)流程圖 PAGEREF _Toc32713 12 HYPERLINK l _Toc21829 4.3系統(tǒng)軟件設(shè)計模塊 PAGEREF _Toc21829 12 HYPERLINK l _T

5、oc19131 4.3.1鍵盤掃描軟件設(shè)計 PAGEREF _Toc19131 12 HYPERLINK l _Toc19788 4.3.2 24C04讀寫操作的軟件設(shè)計 PAGEREF _Toc19788 13 HYPERLINK l _Toc3758 4.3.2 24C04讀寫操作的軟件設(shè)計 PAGEREF _Toc3758 13 HYPERLINK l _Toc22904 4.3.4修改密碼軟件設(shè)計 PAGEREF _Toc22904 14 HYPERLINK l _Toc19893 5 結(jié)果分析 PAGEREF _Toc19893 14 HYPERLINK l _Toc11998 5.

6、1電子密碼鎖開鎖和上鎖 PAGEREF _Toc11998 15 HYPERLINK l _Toc24248 5.2修改電子密碼鎖密碼 PAGEREF _Toc24248 15 HYPERLINK l _Toc28252 結(jié)論 PAGEREF _Toc28252 16 HYPERLINK l _Toc22088 參考文獻(xiàn) PAGEREF _Toc22088 17 HYPERLINK l _Toc15528 附錄: PAGEREF _Toc15528 18基于單片機(jī)的電子密碼鎖設(shè)計摘要:隨著信息技術(shù)的不斷開展,信息化時代也逐步進(jìn)入普通家庭,人們對個人的信息平安以及隱私等私密信息的平安要求不斷提高

7、,傳統(tǒng)的機(jī)械鎖已經(jīng)不能滿足要求。針對此現(xiàn)狀設(shè)計一款平安可靠廉價的電子密碼鎖。該設(shè)計以AT89C51為主控芯片,帶有一個密碼輸入鍵盤、外圍時鐘復(fù)位電路、存儲單元24C04、顯示單元1602LCD,通過LED燈的亮與滅表示電子鎖的鎖閉與翻開。利用單片機(jī)靈活的編程設(shè)計和豐富的IO端口,能實現(xiàn)密碼鎖的根本功能。為了提高可讀性采用了1602作為顯示單元,使用戶對密碼鎖的運(yùn)行情況一目了然。該系統(tǒng)經(jīng)軟硬件測試,到達(dá)要求,系統(tǒng)運(yùn)行良好。 關(guān)鍵詞:單片機(jī);AT89C51;1602LCD;24C04;電子密碼鎖1 緒論1.1選題背景在人們的生活中,財產(chǎn)與人身平安是被一直關(guān)注的問題,于是鎖也就與人們的生活密不可分了

8、,無論在何地,我們都能看到鎖的身影,但隨著社會的開展,傳統(tǒng)的機(jī)械鎖越來越不能滿足人們的生活需求了,傳統(tǒng)的機(jī)械鎖由于其構(gòu)造的簡單,被撬的事件屢見不鮮。鎖具開展到現(xiàn)在已有假設(shè)干年的歷史了,人們對它的構(gòu)造、機(jī)理也研究得很透徹,因此,不用鑰匙就能翻開的方法和工具也層出不窮。為了應(yīng)對這種情況,電子密碼鎖也就被創(chuàng)造出來了,相比傳統(tǒng)的機(jī)械鎖,電子密碼鎖具有更高的平安性。1.2研究意義電子鎖可以在日常生活和現(xiàn)代辦公中、住宅與辦公室的平安防、單位的文件檔案、財務(wù)報表以及一些個人資料的保存等多種場合使用,大大提高了主人物資的平安性。此次工程實踐選擇基于單片機(jī)的電子密碼鎖設(shè)計題目,采用存儲單元24C04和顯示單元1

9、602LCD來進(jìn)展設(shè)計。單片機(jī)技術(shù)是智能化檢測與控制領(lǐng)域應(yīng)用非常普及并且具有很大潛力的技術(shù)。論文闡述一個基于單片機(jī)的液晶顯示電子密碼鎖的設(shè)計與實現(xiàn)。系統(tǒng)采用美國Atmel公司的AT89C51單片機(jī)作為系統(tǒng)核心,用串行的24C04作為存儲器,液晶顯示器LCD1602作為輸出設(shè)備顯示系統(tǒng)提示信息,4*4矩陣薄膜鍵盤作為輸入設(shè)備,配合蜂鳴器、繼電器等電路構(gòu)成整個系統(tǒng)硬件;系統(tǒng)軟件采用匯編語言編寫。設(shè)計的系統(tǒng)液晶顯示,密碼修改方便,具有報警、鎖定等功能,使用便捷簡單,符合住宅、辦公用鎖需求,具有一定的實用價值.而且使用AT89C51單片機(jī)價格相對低廉,本錢較低,便于推廣。1.3容與構(gòu)造本系統(tǒng)設(shè)計實現(xiàn)一

10、個基于單片機(jī)控制的電子密碼鎖。該系統(tǒng)能夠?qū)崿F(xiàn)上鎖、開鎖、修改開鎖密碼和報警功能,用串行的24C04作為存儲器,液晶顯示器LCD1602作為輸出設(shè)備顯示系統(tǒng)提示信息。該文檔主要包括五個局部,第一局部緒論,主要包括選題背景、研究意義和容與構(gòu)造;第二局部系統(tǒng)整體設(shè)計方案,主要包括相關(guān)知識介紹和系統(tǒng)總體構(gòu)造設(shè)計;第三局部硬件電路,主要包括單元電路設(shè)計和系統(tǒng)總硬件電路圖,其中單元電路設(shè)計包括單片機(jī)最小系統(tǒng)模塊,24C04存儲電路模塊,1602LCD數(shù)碼管顯示電路和矩陣鍵盤電路設(shè)計模塊;第四局部軟件模塊設(shè)計,主要包括系統(tǒng)開發(fā)工具使用和系統(tǒng)主要開發(fā)流程和各軟件設(shè)計模塊;第五局部結(jié)果分析,主要包括測試過程和測

11、試結(jié)果分析。2 系統(tǒng)整體設(shè)計方案2.1相關(guān)知識介紹2.1.1AT89C51引腳功能描述AT89C51是這幾年我國非常流行的單片機(jī),由美國ATMEL公司生產(chǎn),是低電壓,高性能CMOS8位單片機(jī),片含4kbytes的可反復(fù)擦寫的只讀程序存儲器PEROM和128bytes的隨機(jī)存取數(shù)據(jù)存儲器RAM,器件采用ATMEL公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片置通用8位中央處理器CPU和Flash存儲單元。其中的40個引腳大致可以分為4類:電源、時鐘、控制和I/O引腳。(1)電源:VCC為芯片電源端,一般為+5V,GND為接地端;(2)時鐘:*TAL1為晶體振蕩電路的反相輸入

12、端,*TAL2為晶體振蕩電路的輸出端;(3)控制線:MCS-51單片機(jī)的控制線有4根,其中3根是復(fù)用線,具有兩種功能。ALE/PROG為地址鎖存允許/編程脈沖信號端,PSEN為外部ROM讀選通信號,RST為復(fù)位引腳;EA/VPP為外ROM選擇/EPROM編程電源;(4)I/O引腳:MCS-51單片機(jī)共有4個8位并行I/O端口,共32個可編程I/O引腳。其外形引腳如圖2-1所示:圖2.1 AT89C51實物圖左及其引腳圖右2.1.2 LCD1602性能描述LCD1602是工業(yè)字符型液晶,能夠同時顯示16*02即32個字符,是一種專門用來顯示字母、數(shù)字、符號等的點陣型液晶模塊,字符型LCD通常有1

13、4條引腳線或16條引腳線的LCD,多出來的2條線是背光電源線VCC(15腳)和地線GND(16腳),其控制原理與14腳的LCD完全一樣6。LCD引腳圖如下列圖2.6所示: 圖2.2 LCD1602功能引腳圖2.1.3 24C04性能描述24C04是采用鐵電技術(shù)生產(chǎn)的EEPROM,掉電后數(shù)據(jù)不喪失。相比傳統(tǒng)的EEPROM具有壽命長,讀寫速度快的優(yōu)點,采用I2C總線與外界通訊,容量應(yīng)該是512字節(jié)。主要用于存儲掉電后需要保存的數(shù)據(jù)。24C04存儲電路如圖2.3所示:圖2.3 24C04存儲電路2.2系統(tǒng)總體設(shè)計此設(shè)計的主要容與任務(wù)如下:1設(shè)計一單片機(jī)控制的智能報警系統(tǒng),通過按鍵輸入密碼,并用LCD

14、顯示相關(guān)信息;2密碼可由鍵盤設(shè)置,鍵盤有數(shù)字鍵、還有確認(rèn)按鍵;3密碼可通過按鍵修改;4輸入字符時,LCD上顯示*號,假設(shè)密碼正確,則可以修改密碼;5系統(tǒng)設(shè)置默認(rèn)初始密碼,且可以修改,修改后系統(tǒng)按新密碼進(jìn)展操作。依據(jù)設(shè)計的要求,可以得到系統(tǒng)軟件模塊圖,如圖2.4所示: 基于單片機(jī)的電子密碼器時鐘震蕩電路模塊矩陣鍵盤輸入模塊LCD顯示模塊密碼存儲模塊蜂鳴器報警電路模塊 圖2.4 系統(tǒng)的軟件模塊圖3硬件電路 用單片機(jī)做主機(jī)運(yùn)算器,能進(jìn)展密碼修改和管理員密碼設(shè)置,可復(fù)位,設(shè)置有退出鍵、管理員模式鍵、設(shè)定鍵、刪除鍵和確定鍵。LCD在開鎖前顯示you password,然后根據(jù)密碼正確與否顯示出相應(yīng)的提示

15、。本設(shè)計初始密碼為123456,密碼輸入正確后,可以修改密碼,密碼個數(shù)可以是0-9的數(shù)字。采用24C04存儲密碼,有掉電保護(hù)功能,本設(shè)計采用4*4的矩陣鍵盤作為輸入,AT89C51單片機(jī)作為主機(jī),二極管指示燈和喇叭組成發(fā)聲系統(tǒng)。根據(jù)系統(tǒng)擬到達(dá)的總體功能得到系統(tǒng)整體框圖如圖3.1所示:LCD顯示鍵盤輸入AT89C51蜂鳴器報警與開鎖電路掉電存儲電路圖3.1系統(tǒng)整體框圖3.1單元電路設(shè)計要實現(xiàn)基于單片機(jī)電子密碼鎖的功能。硬件設(shè)計包括單片機(jī)最小系統(tǒng)的設(shè)計,1602LCD數(shù)碼管顯示電路設(shè)計,矩陣鍵盤電路設(shè)計和系統(tǒng)總電路的設(shè)計。3.1.1單片機(jī)最小系統(tǒng) 單片機(jī)最小系統(tǒng)都是由組成單片機(jī)應(yīng)用系統(tǒng)所必需的一些

16、部件和電路構(gòu)成的。無論應(yīng)用系統(tǒng)要完成什么功能,這些部件和電路都是必須的。一個單片機(jī)應(yīng)用系統(tǒng)至少有:單片機(jī)芯片、保證單片機(jī)正常工作必須要有電源、產(chǎn)生時鐘信號的晶體振蕩器,還需要能使單片機(jī)復(fù)位的電路等。單片機(jī)最小系統(tǒng)如圖3.2所示:圖3.2單片機(jī)最小系統(tǒng)3.1.2 1602LCD數(shù)碼管顯示電路1602LCD液晶顯示器是一種字符點陣式LCD顯示器模塊。它不僅能夠顯示阿拉伯?dāng)?shù)字,而且還能夠顯示特殊的符號,以及英文字母即英文語句提示信息,因此其用途比擬靈活,應(yīng)用比擬廣泛,當(dāng)然價格也較高。單片機(jī)AT89C51從接收器得到的數(shù)據(jù)運(yùn)算程序后,結(jié)果傳送給1602LCD數(shù)據(jù)端并在液晶屏上顯示出。顯示電路如圖3.3

17、所示: 圖3.3 1602LCD數(shù)碼管顯示電路3.1.3矩陣鍵盤電路矩陣式鍵盤又叫行列式鍵盤。用I/O接口線組成行、列構(gòu)造,鍵位設(shè)置在行、列的交點上。例如本設(shè)計4*4的行、列構(gòu)造可組成16個鍵盤,比一個鍵位用一根I/O口線的獨立式鍵盤少了一半的I/O接口線。而且鍵位越多,情況越明顯。因此,在按鍵比擬多時,往往采用矩陣式鍵盤。矩陣式鍵盤的按鍵識別方法有行掃描法。行掃描法又稱為逐行或列掃描查詢法,是一種最常用的按鍵識別方法,介紹過程如下。 (1) 判斷鍵盤中有無鍵按下將全部行線Y0-Y3置低電平,然后檢測列線的狀態(tài)。只要有一列的電平為低,則表示鍵盤中有鍵被按下,而且閉合的鍵位于低電平線與4根行線相

18、穿插的4個按鍵之中。假設(shè)所有列線均為高電平,則鍵盤中無鍵按下。 (2)判斷閉合鍵所在的位置在確認(rèn)有鍵按下后,即可進(jìn)入確定具體閉合鍵的過程。其方法是:依次將行線置為低電平,即在置*根行線為低電平時,其它線為高電平。在確定*根行線位置為低電平后,再逐行檢測各列線的電平狀態(tài)。假設(shè)*列為低,則該列線與置為低電平的行線穿插處的按鍵就是閉合的按鍵。 矩陣鍵盤電路如圖3.4所示: 圖3.4 矩陣鍵盤電路圖3.2系統(tǒng)總硬件電路圖各模塊組合之后的總體硬件電路圖如下列圖3.5所示:圖3.5總體硬件電路圖4 軟件模塊設(shè)計4.1系統(tǒng)開發(fā)工具使用本系統(tǒng)使用keil軟件,翻開軟件后的界面,如下列圖4.1所示,圖4.1軟件

19、運(yùn)行界面單擊Project選擇New Project.,彈出Create New Project對話框,圖4.2新建系統(tǒng)工程 選擇工程文件要存放的路徑 ,輸入工程文件名, 最后單擊保存, 圖4.3設(shè)置工程路徑 在彈出的對話框中選擇 CPU 廠商及型號,選擇好 Atmel 公司的 89C51 后 , 單擊確定,圖4.4選擇芯片廠商和型號新建一個 C51 文件 , 點擊file菜單下的NEW,或單擊左上角的 New File快捷鍵如圖4.5,圖4.5新建文件 保存新建的文件,單擊SAVE,在出現(xiàn)的對話框中輸入保存文件名LCD_18b20.c注意后綴名必須為.C,再單擊保存, 保存好后把此文件參加到

20、工程中方法如下 : 用鼠標(biāo)在 Source Group1 上單擊右鍵 , 然后再單擊 Add Files to Group Source Group 1 如圖4.6,圖4.6將文件添加到工程中在編輯框里輸入如下代碼 ,到此我們完成了工程工程的建立以及文件參加工程 , 現(xiàn)在我們開場編譯工程,即單擊快捷鍵或單擊Project/Rebuild all the files, 如果在錯誤與警告處看到 0 Error(s) 表示編譯通過。生成 .he* 燒寫文件,先單擊Options for Target,如圖4.7, 圖4.7生成.he* 在下列圖中,我們單擊 Output, 選中 Create HE*

21、 Fi。再單擊確定,然后我們必須再次編譯才能產(chǎn)生HE*文件 圖4.8對系統(tǒng)進(jìn)展配置4.2系統(tǒng)開發(fā)流程圖程序主要完成的任務(wù),開場時LCD顯示Your Password提示輸入密碼,輸入密碼后按確認(rèn)鍵,系統(tǒng)會將所輸入的密碼與系統(tǒng)密碼進(jìn)展比照,如果輸入正確則顯示Unlock OK開鎖,然后可以選擇上鎖或者修改密碼,如果密碼錯誤則顯示Error,如果連續(xù)輸入三次錯誤密碼系統(tǒng)會發(fā)出報警聲音,程序流程圖如圖4.9所示:圖4.9 系統(tǒng)總體流程圖4.3系統(tǒng)軟件設(shè)計模塊4.3.1鍵盤掃描軟件設(shè)計 在按鍵當(dāng)中,有與輸入、開鎖、去除、設(shè)置、確認(rèn)的程序相對應(yīng)的按鍵,并按順序與輸入的數(shù)相比擬,當(dāng)輸入正確時,進(jìn)入密碼程序

22、,錯誤時進(jìn)展去除,輸入兩次新密碼正確時,可進(jìn)展重新設(shè)置密碼,最后確認(rèn)程序。按鍵的檢測主要是通過查詢的方法來實現(xiàn)的,利用按鍵進(jìn)展密碼的輸入及設(shè)置。圖4.10 鍵盤掃描流程圖4.3.2 24C04讀寫操作的軟件設(shè)計圖4.11 24C04讀寫操作流程圖4.3.2 24C04讀寫操作的軟件設(shè)計圖4.12開鎖流程圖4.3.4修改密碼軟件設(shè)計圖4.13 修改密碼流程圖5 結(jié)果分析程序編寫完之后,單擊Rebuild按鈕,進(jìn)展編輯,單擊build按鈕,進(jìn)展編譯,將.he*文件下載到ATC89C51開發(fā)板中。圖5.1 配置電路圖參數(shù)單擊左下角的中的按鈕進(jìn)展仿真。5.1電子密碼鎖開鎖和上鎖 在矩陣鍵盤上輸入初始密

23、碼123456,并點擊開鎖按鈕,如果輸入密碼錯誤,則LCD顯示ERROR!,無法開鎖;假設(shè)輸入正確,則顯示Unlock OK!,表示開鎖成功,如圖5.2所示: 圖5.2 開鎖后LCD顯示圖 再按下上鎖按鍵后,電子密碼鎖重新上鎖,需要重新輸入開鎖密碼才可開鎖,當(dāng)三次輸入錯誤密碼時,蜂鳴器會發(fā)出響聲報警。5.2修改電子密碼鎖密碼在已經(jīng)開鎖的狀態(tài)下,按下輸入新密碼按鈕,可重新輸入密碼,設(shè)置成你想要改的密碼,再按下保存新密碼按鈕,新密碼就設(shè)置成功了,這時開鎖需要輸入新密碼了,如圖5.3所示 圖5.3電子密碼鎖修改密碼此次工程實踐的基于單片機(jī)電子密碼鎖設(shè)計比擬成功,能實現(xiàn)開鎖上鎖、修改密碼、報警防盜等功

24、能。結(jié)論本次工程實踐過程中,對我所學(xué)的所有的嵌入式知識進(jìn)展一個總結(jié)性的復(fù)習(xí),特別是對AT89C51單片機(jī)方面的知識有了更深的了解。同時也穩(wěn)固了對LCD1602,數(shù)據(jù)存儲等方面的知識,為我以后的學(xué)習(xí)以及工作奠定了一定的專業(yè)根底。在這次設(shè)計中,遇到了一些設(shè)計上的難題,通過查閱相關(guān)圖書資料和詢問同學(xué)幫助解決了難題。參考文獻(xiàn)1祁偉, 亭.單片機(jī)C51程序設(shè)計教程與實驗M. 航空航天大學(xué),2006.2文濤.單片機(jī)語言C51典型應(yīng)用設(shè)計M. 人民郵電,2005.3譚浩強(qiáng).C程序設(shè)計第三版M. 清華大學(xué),2005.4德金.MCS-51系列單片機(jī)接口電路與應(yīng)用程序?qū)嵗齅.航空航天大學(xué), 1990.5賴麒文.

25、8051單片機(jī)C語言徹底應(yīng)用M.科學(xué), 2002.6余永權(quán).單片機(jī)在控制系統(tǒng)中的應(yīng)用M. 電子工業(yè),2003.7艷麗,仁弟.數(shù)字溫濕度傳感器SHT11及其應(yīng)用J.工礦自動化,2007.6第3期.8慶陽.8051單片機(jī)實踐與應(yīng)用M.清華大學(xué)2004 .9高衛(wèi)東.51單片機(jī)原理與實踐C語言版M.航空航天大學(xué),2021.10輝平,周國雄.基于Protues的單片機(jī)系統(tǒng)設(shè)計與仿真實例M. 機(jī)械工業(yè),2021.附錄:程序代碼: *include *include *define uchar unsigned char*define unit unsigned intuchar Pre_KeyNo = 1

26、6, KeyNo = 16;uchar code Title_Te*t = Your Password.;uchar DSY_BUFFER10 = ;uchar UserPassword10 = ;void LCD_Init();void Display_String(uchar * str,uchar LineNo);void IIC_24C04_Init();void Beep();uchar RecString(uchar Slave,uchar Subaddr,uchar *Buffer,uchar N);uchar SendString(uchar Slave,uchar Subad

27、dr,uchar *Buffer,uchar N);uchar Keys_Scan();sbit LED_OPEN = P27;sbit BEEP = P37;void DelayMS(int * ) uchar i; while (*-) for (i = 0;i120;i+);void Beep() uchar i; for (i=0;i100;i+) DelayMS(1);BEEP= BEEP; BEEP=0;void Clear_Password() UserPassword0 = 0; DSY_BUFFER0 = 0;void main() uchar i = 0; uchar II

28、C_Password10; uchar IS_Valid_User = 0; P0 = P1 = P2=0*FF; TMOD = 0*02; TH0 = 175; TL0 = 175; TR0 = 1; DelayMS(10); LCD_Init(); IIC_24C04_Init(); Display_String(Title_Te*t,0*00); RecString(0*a0,0,IIC_Password,6); IIC_Password6 = 0; while(1) P1 = 0*F0; if(P1 !=0*F0) KeyNo =Keys_Scan(); if(Pre_KeyNo !=

29、KeyNo) if(i10) switch (KeyNo) case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: if(i=0) Display_String( ,0*40); UserPasswordi=KeyNo + 0; UserPasswordi+1=0; DSY_BUFFERi = *; DSY_BUFFERi+1=0; Display_String(DSY_BUFFER,0*40); i+; break; case 10: if (strcmp(UserPassword,IIC

30、_Password) = 0) LED_OPEN = 0; Clear_Password(); Display_String(Unlock OK! ,0*40); IS_Valid_User = 1; else LED_OPEN = 1; Clear_Password(); Display_String(ERROR ! ,0*40); IS_Valid_User = 0; i=0; break; case 11: LED_OPEN = 1; Clear_password(); Display_String(Title_Te*t,0*00); Display_String( ,0*40); i=

31、0; IS_Valid_User = 0; break; case 12: if(!IS_Valid_User) Display_String(No rights !,0*40); else i=0; Display_String(New Password: ,0*00); Display_String( ,0*40); break; case 13: if(!IS_Valid_User ) Display_String(No rights !,0*40);else SendString(0*a0,0,UserPassword, 6); RecString(0*a0,0,IIC_Passwor

32、d, 6); IIC_Password6 = 0; i=0; Display_String(Title_Te*t,0*00); Display_String(Password Saved! ,0*40); break; case 14: i=0; Clear_Password(); Display_String( ,0*40); Beep(); Pre_KeyNo = KeyNo; DelayMS(100); *include *include *define uchar unsigned char *define unit unsigned int *define Delay4us(); _

33、nop_();_nop_(); _nop_();_nop_(); sbit SCL = P32; sbit SDA = P33; void Start() SDA = 1;SCL = 1;Delay4us();SDA = 0;Delay4us();SCL = 0; void Stop()SDA =0;SCL =1;Delay4us();SDA = 1;Delay4us();SCL=0; void IIC_24C04_Init() SCL = 0; Stop(); void ACK() SDA =0;SCL =1;Delay4us();SCL = 0;SDA=1; void No_ACK() SDA =1;SCL =1;Delay4us();SCL = 0;SDA=0; uchar RecByte() uchar i,rd; rd = 0*00; SDA = 1; for(i=0;i8;i+) SCL =1 ;rd=1; rd |=SDA;Delay4us();SCL = 0;Delay4us(); SCL=0; Delay4us(); return rd; uchar SendByte(uchar wd) uchar i; bit ack0; for(i=0;i8;i+) SDA=(bit)(wd &

溫馨提示

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

最新文檔

評論

0/150

提交評論