單片機密碼鎖設(shè)計說明書_第1頁
單片機密碼鎖設(shè)計說明書_第2頁
單片機密碼鎖設(shè)計說明書_第3頁
單片機密碼鎖設(shè)計說明書_第4頁
單片機密碼鎖設(shè)計說明書_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 題 目: “ 參賽組員姓名: 所 在 學(xué) 院: 專 業(yè): 項目負(fù)責(zé)人: 指 導(dǎo) 老 師: 日期:年 月 日1 西華大學(xué)“華立德”杯電子競賽說明書摘 要:隨著人們生活水平的提高,如何實現(xiàn)家庭防盜這一問題也變的尤其的突出,傳統(tǒng)的機械鎖由于其構(gòu)造的簡單,安全性能低,無法滿足人們的需要。因此通過電子控制的密碼鎖應(yīng)運而生,同時電子產(chǎn)品向智能化和微型化的不斷發(fā)展,單片機成為電子產(chǎn)品研制和開發(fā)中首選的控制器。本文從經(jīng)濟實用的角度出發(fā),采用美國Atmel公司的單片機AT89S52與低功耗CMOS型E2PROM AT24C02作為主控芯片與數(shù)據(jù)存儲器單元,結(jié)合外圍的鍵盤輸入、顯示、報警、開鎖等電路,用C語言編

2、寫主控芯片的控制程序,設(shè)計了一款可以多次更改密碼具有報警功能的電子密碼鎖。經(jīng)實驗證明,該密碼鎖具有設(shè)計方法合理,簡單易行,成本低,安全實用等特點,符合住宅、辦公室用鎖要求,具有推廣價值。關(guān)鍵詞:密碼鎖;單片機;報警 目 錄一、引言31.1 電子密碼鎖簡介31.2、電子密碼鎖的發(fā)展趨勢3二、設(shè)計方案的選擇32.1 方案一:采用數(shù)字電路控制42.2 方案二:采用以單片機為核心的控制方案4三、 系統(tǒng)構(gòu)成53.1 設(shè)計原理53.2 電路總體構(gòu)成53.3 單片機電路部分63.4 鍵盤輸入部分73.5 密碼存儲部分83.7 晶振部分93.8 顯示部分103.9 報警部分113.10 開鎖部分11四、 主要

3、元器件介紹12五、 系統(tǒng)軟件設(shè)計16六、 結(jié)論29七、參考文獻及附錄實物圖29一、引言1.1 電子密碼鎖簡介電子密碼鎖是一種通過密碼輸入來控制電路或是芯片工作,從而控制機械開關(guān)的閉合,完成開鎖、閉鎖任務(wù)的電子產(chǎn)品。它的種類很多,有簡易的電路產(chǎn)品,也有基于芯片的性價比較高的產(chǎn)品?,F(xiàn)在應(yīng)用較廣的電子密碼鎖是以芯片為核心,通過編程來實現(xiàn)的。其性能和安全性已大大超過了機械鎖。其特點如下:1) 保密性好,編碼量多,遠(yuǎn)遠(yuǎn)大于彈子鎖。隨機開鎖成功率幾乎為零。2) 密碼可變,用戶可以隨時更改密碼,防止密碼被盜,同時也可以避免因人員的更替而使鎖的密級下降。3) 誤碼輸入保護,當(dāng)輸入密碼多次錯誤時,報警系統(tǒng)自動啟

4、動。4) 使用靈活性好,不像機械鎖必須佩帶鑰匙才能開鎖。5) 電子密碼鎖操作簡單易行,一學(xué)即會。1.2、電子密碼鎖的發(fā)展趨勢在日常生活和工作中,住宅與部門的安全防范、單位的文件檔案、財務(wù)報表以及一些個人資料的保存多以加鎖的辦法來解決。目前門鎖主要用彈子鎖,其鑰匙容易丟失;保險箱主要用機械密碼鎖,其結(jié)構(gòu)較為復(fù)雜,制造精度要求高,成本高,且易出現(xiàn)故障,人們常需攜帶多把鑰匙,使用極不方便,且鑰匙丟失后安全性即大打折扣。針對這些鎖具給人們帶來的不便若使用機械式鑰匙開鎖,為滿足人們對鎖的使用要求,增加其安全性,用密碼代替鑰匙的密碼鎖應(yīng)運而生。它的出現(xiàn)為人們的生活帶來了很大的方便,有很廣闊的市場前景。由于

5、電子器件所限,以前開發(fā)的電子密碼鎖,其種類不多,保密性差,最基本的就是只依靠最簡單的模擬電子開關(guān)來實現(xiàn)的,制作簡單但很不安全,在后為多是基于EDA來實現(xiàn)的,其電路結(jié)構(gòu)復(fù)雜,電子元件繁多,也有使用早先的20引腳的2051系列單片機來實現(xiàn)的,但密碼簡單,易破解。隨著電子元件的進一步發(fā)展,電子密碼鎖也出現(xiàn)了很多的種類,功能日益強大,使用更加方便,安全保密性更強,由以前的單密碼輸入發(fā)展到現(xiàn)在的,密碼加感應(yīng)元件,實現(xiàn)了真實的電子加密,用戶只有密碼或電子鑰匙中的一樣,是打不開鎖的,隨著電子元件的發(fā)展及人們對保密性需求的提高出現(xiàn)了越來越多的電子密碼鎖。1.3、本設(shè)計所要實現(xiàn)的目標(biāo)本設(shè)計采用單片機為主控芯片,

6、結(jié)合外圍電路,組成電子密碼鎖,用戶想要打開鎖,必先通過提供的鍵盤輸入正確的密碼才能將鎖打開,密碼輸入錯誤有提示,為了提高安全性,當(dāng)密碼輸入錯誤三次將報警。密碼可以由用戶自己修改設(shè)定,鎖打開后才能修改密碼。修改密碼之前必須再次輸入密碼,在輸入新密碼時候需要二次確認(rèn),防止誤操作。二、設(shè)計方案的選擇2.1 方案一:采用數(shù)字電路控制 用以74LS112雙JK觸發(fā)器構(gòu)成的數(shù)字邏輯電路作為密碼鎖的核心控制,共設(shè)了9個用戶輸入鍵,其中只有4個是有效的密碼按鍵,其它的都是干擾按鍵,若按下干擾鍵,鍵盤輸入電路自動清零,原先輸入的密碼無效,需要重新輸入;如果用戶輸入密碼的時間超過10秒(一般情況下,用戶不會超過1

7、0秒,若用戶覺得不便,還可以修改)電路將報警20秒,若電路連續(xù)報警三次,電路將鎖定鍵盤2分鐘,防止他人的非法操作。采用數(shù)字電路設(shè)計的方案好處就是設(shè)計簡單但控制的準(zhǔn)確性和靈活性差。故不采用2.2 方案二:采用以單片機為核心的控制方案 由于單片機種類繁多,各種型號都有其一定的應(yīng)用環(huán)境,因此在選用時要多加比較,合理選擇,以期獲得最佳的性價比。一般來說在選取單片機時從下面幾個方面考慮:性能、存儲器、運行速度、I/O口、定時/計、串行接口、模擬電路功能、工作電壓、功耗、封裝形式、抗干擾性、保密性,除了以上的一些的還有一些最數(shù)器基本的比如:中斷源的數(shù)量和優(yōu)先級、工作溫度范圍、有沒有低電壓檢測功能、單片機內(nèi)

8、有無時鐘振蕩器、有無上電復(fù)位功能等。在開發(fā)過程中單片機還受到:開發(fā)工具、編程器、開發(fā)成本、開發(fā)人員的適應(yīng)性、技術(shù)支持和服務(wù)等等因素。2.3 最終方案 基于以上因素:本設(shè)計選用單片機AT89S52作為本設(shè)計的核心元件,利用單片機靈活的編程設(shè)計和豐富的I/O端口,及其控制的準(zhǔn)確性,實現(xiàn)基本的密碼鎖功能。在單片機的外圍電路:外接輸入鍵盤用于密碼的輸入和一些功能的控制,外接AT24C02芯片用于密碼的存儲,外接LCD1602顯示器用于顯示作用。當(dāng)用戶需要開鎖時,先按鍵盤的數(shù)字鍵09輸入密碼。密碼輸完后按下確認(rèn)鍵,如果密碼輸入正確則開鎖,不正確顯示密碼錯誤重新輸入密碼,當(dāng)三次密碼錯誤則發(fā)出報警;當(dāng)用戶需

9、要修改密碼時,先按下鍵盤設(shè)置鍵后輸入原來的密碼,只有當(dāng)輸入的原密碼正確后才能設(shè)置新密碼。新密碼輸入無誤后按確認(rèn)鍵使新密碼將得到存儲,密碼修改成功。AT89S52程序鍵盤輸入報警模塊繼電器模塊1602顯示24c02模塊方案框架圖:三、 系統(tǒng)構(gòu)成3.1 設(shè)計原理 設(shè)計原理:系統(tǒng)由硬件部分與軟件部分兩部分構(gòu)成。其中硬件部分由單片機、電源輸入部分、鍵盤輸入部分、密碼存儲部分、復(fù)位部分、晶振部分、顯示部分、報警部分、開鎖部分組成,軟件部分對應(yīng)的由主程序、初始化程序、LCD顯示程序、鍵盤掃描程序、啟動程序、關(guān)閉程序、建功能程序、密碼設(shè)置程序、EEPROM讀寫程序和延時程序等組成。其原理框圖如圖4-1所示。

10、AT89S52鍵盤輸入復(fù)位電路密碼存儲電路晶振電路電源輸入顯示電路報警電路開鎖電路圖3-1 電子密碼鎖原理框圖3.2 電路總體構(gòu)成 根據(jù)系統(tǒng)要求畫出的設(shè)計圖總圖-如圖3-2: 圖3-2 整機電路原理圖電路由單片機、矩陣鍵盤、1602液晶顯示和24c02密碼存儲等部分組成。其中矩陣鍵盤用于輸入數(shù)字密碼和進行各種功能的實現(xiàn)。由用戶通過連接單片機的矩陣鍵盤輸入密碼,后經(jīng)過單片機對用戶輸入的密碼與24c02保存的密碼進行對比,從而判斷密碼是否正確,然后控制單片機各引腳的高低電平從而傳到開鎖電路或者報警電路控制開鎖還是報警,實際使用時只要將單片機的負(fù)載由繼電器換成電子密碼鎖的電磁鐵吸合線圈即可,當(dāng)然也可

11、以用繼電器的常開觸點去控制電磁鐵吸合線圈。3.3 單片機電路部分 本次設(shè)計采用AT89S52芯片,AT89S52是一個低電壓,高性能CMOS 8位單片機,通過用keil軟件編寫程序,然后燒到單片機里面去,然后讓它對整個系統(tǒng)進行信息的處理,如可以讓它處理矩陣鍵盤傳過來的信息,并根據(jù)編好的程序來確定哪個按鍵按下,并處理相應(yīng)按鍵對應(yīng)的功能,然后把相應(yīng)的信息反應(yīng)到單片機的各個引腳,來實現(xiàn)按鍵實現(xiàn)的現(xiàn)象,如:顯示是否開啟鎖,報警等。它的電路如圖3-3所示: 圖3-3 單片機電路3.4 鍵盤輸入部分由于本設(shè)計所用到的按鍵數(shù)量較多而不適合用獨立按鍵式鍵盤。采用的是矩陣式按鍵鍵盤,它由行線和列線組成,也稱行列

12、式鍵盤,按鍵位于行列的交叉點上,密碼鎖的密碼由鍵盤輸入完成,與獨立式按鍵鍵盤相比,要節(jié)省很多I/O口。本設(shè)計中使用的這個4*4鍵盤不但能完成密碼的輸入還能作特別功能鍵使用,比如修改密碼功能等。鍵盤的每個按鍵功能在程序設(shè)計中已經(jīng)編寫好。其大體功能(看鍵盤按鍵上的標(biāo)記)及與單片機引腳接法如圖3-4所示:圖3-4 鍵盤輸入原理圖矩陣鍵盤采用“行列”掃描法,行掃描法又稱逐行掃描查詢法,是一種最常用的按鍵掃描方法,如上圖所示,開始時把行線P2.0-P2.3置為低電平,然后掃描列線,如果有一行列線為低電平,則去抖后判斷是否還有一行列線為低電平,如果還有,則這條列線為低電平,同時處在這條行線中的按鍵為低電平

13、,然后判斷是哪個按鍵按下,如果列線全部為高電平,則表示沒有按鍵按下,往復(fù)循環(huán)掃描。3.5 密碼存儲部分 用EPROM芯片AT24C02存儲密碼。AT24C02是美國Atmel公司的低功耗CMOS型E2PROM,內(nèi)含256×8位存儲空間,通過單片機對24c02芯片進行密碼存儲,存儲好密碼后,通過按鍵輸入密碼與存儲芯片里面的數(shù)據(jù)進行對比,根據(jù)數(shù)據(jù)是否一致,來執(zhí)行相應(yīng)的操作,還可以根據(jù)按鍵操作來執(zhí)行是否更換數(shù)據(jù)。電路連接圖如圖3-5所示: 圖3-5 密碼存儲電路原理圖圖中AT24C02的1、2、3腳是三條地址線,用于確定芯片的硬件地址。它們都接地,第5腳SDA為串行數(shù)據(jù)輸入/輸出,數(shù)據(jù)通過

14、這條雙向I2C總線串行傳送,與單片機的P3.3連接。第6腳SCL為串行時鐘輸入線,與單片機的P3.4連接。第7腳需要接地。3.6 復(fù)位部位 單片機復(fù)位是使CPU和系統(tǒng)中的其他功能部件都處在一個確定的初始狀態(tài),并從這個狀態(tài)開始工作,例如復(fù)位后PC0000H,使單片機從第個單元取指令。無論是在單片機剛開始接上電源時,還是斷電后或者發(fā)生故障后都要復(fù)位。在復(fù)位期間(即RST為高電平期間),P0口為高組態(tài),P1P3口輸出高電平;外部程序存儲器讀選通信號PSEN無效。地址鎖存信號ALE也為高電平。根據(jù)實際情況選擇如圖3-6所示的復(fù)位電路。 圖3-6 復(fù)位電路原理圖3.7 晶振部分AT89S52引腳XTAL

15、1和XTAL2與晶體振蕩器及電容C5、C6按圖3-7所示方式連接。晶振、電容C5C6及片內(nèi)與非門(作為反饋、放大元件)構(gòu)成了電容三點式振蕩器,振蕩信號頻率與晶振頻率及電容C5、C6的容量有關(guān),但主要由晶振頻率決定,范圍在033MHz之間,電容C5、C6取值范圍在530pF之間。根據(jù)實際情況,本設(shè)計中采用12MHZ做為系統(tǒng)的外部晶振。電容取值為22pF。如圖3-7所示:3-7 晶振電路3.8 顯示部分為了提高密碼鎖的密碼顯示效果能力。本設(shè)計的顯示部分由液晶顯示器LCD1602取代普通的數(shù)碼管來完成。開始時顯示器將一直處于初始狀態(tài),當(dāng)需要對密碼鎖進行開鎖時,按下數(shù)字鍵09輸入密碼,每按下一個數(shù)字鍵

16、后在顯示器上顯示一個*,最多顯示6位。當(dāng)密碼輸入完成時,如果輸入的密碼正確的話, LCD子顯示“unlock ok”,單片機其中P1.3引角會輸出低電平,使三極管導(dǎo)通,電磁鐵吸合,電子密碼鎖被打開,如果密碼不正確,LCD顯示屏?xí)@示“Error ”,P1.3輸出的是高電平,電子密碼鎖不能被打開。通過LCD顯示屏,可以清楚的判斷出鎖所處的狀態(tài)。其顯示部分引腳接口如圖3-8所示:圖3-8 顯示電路原理圖3.9 報警部分 報警部分由蜂鳴器及外圍電路組成,加電后不發(fā)聲,當(dāng)密碼輸入錯誤三次時,單片機的P1.4引腳為低電平,三極管導(dǎo)通執(zhí)行蜂鳴器警車聲子程序發(fā)出警笛報警。如圖3-9所示:圖3-9 報警電路原

17、理圖3.10 開鎖部分開鎖用戶通過鍵盤任意設(shè)置密碼,并儲存在EEPROM中作為鎖碼指令。開鎖步驟如下:首先按下鍵盤數(shù)字鍵09輸入密碼,最后按下確認(rèn)鍵。當(dāng)用戶輸入一密碼后,單片機自動識碼,如果識碼不符,則提示重新輸入,如果超過三次則報警。如果正確,系統(tǒng)使單片機其中一引腳線發(fā)出信號,經(jīng)三極管放大后,由繼電器驅(qū)動電磁閥動作將鎖打開,實物中用led代替繼電器。 圖3-10 開鎖電路原理圖四、 主要元器件介紹 4.1 主控芯片AT89S524.1.1 AT89S52性能簡介AT89S52為8 位通用微處理器,采用工業(yè)標(biāo)準(zhǔn)的C51內(nèi)核,在內(nèi)部功能及管腳排布上與通用的8xc52 相同,其主要用于會聚調(diào)整時的

18、功能控制。功能包括對會聚主IC 內(nèi)部寄存器、數(shù)據(jù)RAM及外部接口等功能部件的初始化,會聚調(diào)整控制,會聚測試圖控制,紅外遙控信號IR的接收解碼及與主板CPU通信等。主要管腳有:XTAL1(19 腳)和XTAL2(18 腳)為振蕩器輸入輸出端口,外接12MHz 晶振。RST/Vpd(9 腳)為復(fù)位輸入端口,外接電阻電容組成的復(fù)位電路。VCC(40 腳)和VSS(20 腳)為供電端口,分別接+5V電源的正負(fù)端。P0P3 為可編程通用I/O 腳,其功能用途由軟件定義,在本設(shè)計中,P0 端口(3239 腳)被定義為N1 功能控制端口,分別與N1的相應(yīng)功能管腳相連接,13 腳定義為IR輸入端,10 腳和1

19、1腳定義為I2C總線控制端口,分別連接N1的SDAS(18腳)和SCLS(19腳)端口,12 腳、27 腳及28 腳定義為握手信號功能端口,連接主板CPU 的相應(yīng)功能端,用于當(dāng)前制式的檢測及會聚調(diào)整狀態(tài)進入的控制功能。 4-1圖 單片機引腳其主要功能特性:兼容MCS-51指令系統(tǒng);4k可反復(fù)擦寫(>1000次)ISP Flash ;ROM32個雙向I/O口; 4.5-5.5V工作電壓;2個16位可編程定時/計數(shù)器時鐘頻率0-33MHz 全雙工UART串行中斷口線 128x8 bit內(nèi)部RAM 2個外部中斷源 低功耗空閑和省電模式 中斷喚醒省電模式 3級加密位 看門狗(WDT)電路 軟件設(shè)

20、置空閑和省電功能 靈活的ISP字節(jié)和分頁編程 雙數(shù)據(jù)寄存器指針 4.2 存儲芯片AT24C02AT24C02是美國Atmel公司的低功耗CMOS型E2PROM,內(nèi)含256×8位存儲空間,具有工作電壓寬(2.55.5 V)、擦寫次數(shù)多(大于10000次)、寫入速度快(小于10 ms)、抗干擾能力強、數(shù)據(jù)不易丟失、體積小等特點。而且他是采用了I2C總線式進行數(shù)據(jù)讀寫的串行器件,占用很少的資源和IO線,并且支持在線編程,進行數(shù)據(jù)實時的存取十分方便。AT24C02中帶有的片內(nèi)地址寄存器。每寫入或讀出一個數(shù)據(jù)字節(jié)后,該地址寄存器自動加1,以實現(xiàn)對下一個存儲單元的讀寫。所有字節(jié)均以單一操作方式讀

21、取。為降低總的寫入時間,一次操作可寫入多達8個字節(jié)的數(shù)據(jù)。I2C總線是一種用于IC器件之間連接的二線制總線。他通過SDA(串行數(shù)據(jù)線)及SCL(串行時鐘線)兩根線在連到總線上的器件之間傳送信息,并根據(jù)地址識別每個器件。 AT24C02正是運用了I2C規(guī)程,使用主從機雙向通信,主機(通常為單片機)和從機(AT24C02)均可工作于接收器和發(fā)送器狀態(tài)。主機產(chǎn)生串行時鐘信號(通過SCL引腳)并發(fā)出控制字,控制總線的傳送方向,并產(chǎn)生開始和停止的條件。無論是主機還是從機,接收到一個字節(jié)后必須發(fā)出一個確認(rèn)信號ACK。AT24C02的控制字由8位二進制數(shù)構(gòu)成,在開始信號發(fā)出以后,主機便會發(fā)出控制字,以選擇從

22、機并控制總線傳送的方向。 SOIC PDIP 圖4-2 AT24C02的兩種引腳24C02中帶有片內(nèi)地址寄存器。每寫入或讀出一個數(shù)據(jù)字節(jié)后,該地址寄存器自動加1,以實現(xiàn)對下一個存儲單元的讀寫。所有字節(jié)均以單一操作方式讀取。為降低總的寫入時間,一次操作可寫入多達8個字節(jié)的數(shù)據(jù)。4.3 LCD1602顯示器 現(xiàn)在的字符型液晶模塊已經(jīng)是單片機應(yīng)用設(shè)計中最常用的信息顯示器件了。1602型LCD顯示模塊具有體積小,功耗低,顯示內(nèi)容豐富等特點。1602型LCD可以顯示2行16個字符,有8位數(shù)據(jù)總線D0D7和RS,R/W,EN三個控制端口,工作電壓為5V,并且具有字符對比度調(diào)節(jié)和背光功能。4.3.1 接口信

23、號說明1602型LCD的接口信號說明如表4-3所示: 編號符號引腳說明編號符號引腳說明1VSS電源地9D2Data I/O2VDD電源正極10D3Data I/O3V0液晶顯示偏壓信號11D4Data I/O4RS數(shù)據(jù)/命令選擇端(H/L)12D5Data I/O5R/W讀寫選擇端(H/L)13D6Data I/O6E使能信號14D7Data I/O7D0Data I/O15BLA背光源正極8D1Data I/O16BLK背光源負(fù)極 表4-3 1602型LCD的接口信號說明4.3.2 主要技術(shù)參數(shù)1602型LCD的主要技術(shù)參數(shù)如下表所示: 顯示容量16X2個字符芯片工作電壓4.55.5V工作電

24、流2.0mA(5.0V)模塊最佳工作電壓5.0V字符尺寸2.95X4.35(WXH)mm 表4-4 1602型LCD的主要技術(shù)參數(shù) 4.3.3 基本操作程序讀狀態(tài):輸入:RS=L,RW=L, E=H 輸出:D0D7=狀態(tài)字讀數(shù)據(jù):輸入:RS=H,RW=H, E=H 輸出:無寫指令:輸入:RS=L,RW=L, D0D7=指令碼,E=高脈沖 輸出:D0D7=數(shù)據(jù)寫數(shù)據(jù):輸入:RS=H,RW=L, D0D7=數(shù)據(jù), E=高脈沖 輸出:無4.4 晶體振蕩器石英晶體振蕩器是利用石英晶體(二氧化硅的結(jié)晶體)的壓電效應(yīng)制成的一種諧振器件,它的基本構(gòu)成大致是:從一塊石英晶體上按一定方位角切下薄片(簡稱為晶片,

25、它可以是正方形、矩形或圓形等),在它的兩個對應(yīng)面上涂敷銀層作為電極,在每個電極上各焊一根引線接到管腳上,再加上封裝外殼就構(gòu)成了石英晶體諧振器,簡稱為石英晶體或晶體、晶振。其產(chǎn)品一般用金屬外殼封裝,也有用玻璃殼、陶瓷或塑料封裝的。只要在晶體振子板極上施加交變電壓,就會使晶片產(chǎn)生機械變形振動,此現(xiàn)象即所謂逆壓電效應(yīng)。當(dāng)外加電壓頻率等于晶體諧振器的固有頻率時,就會發(fā)生壓電諧振,從而導(dǎo)致機械變形的振幅突然增大。晶體振蕩器,簡稱晶振,其作用在于產(chǎn)生原始的時鐘頻率,這個頻率經(jīng)過頻率發(fā)生器的放大或縮小后就成了電腦中各種不同的總線頻率。以聲卡為例,要實現(xiàn)對模擬信號44.1kHz或48kHz的采樣,頻率發(fā)生器就

26、必須提供一個44.1kHz或48kHz的時鐘頻率。如果需要對這兩種音頻同時支持的話,聲卡就需要有兩顆晶振。但是現(xiàn)在的娛樂級聲卡為了降低成本,通常都采用SCR將輸出的采樣頻率固定在48kHz,但是SRC會對音質(zhì)帶來損害,而且現(xiàn)在的娛樂級聲卡都沒有很好地解決這個問題?,F(xiàn)在應(yīng)用最廣泛的是石英晶體振蕩器。 石英晶體振蕩器是一種高精度和高穩(wěn)定度的振蕩器,石英晶體振蕩器也稱石英晶體諧振器,它用來穩(wěn)定頻率和選擇頻率,是一種可以取代LC諧振回路的晶體諧振元件。石英晶體振蕩器廣泛地應(yīng)用在電視機、影碟機、錄像機、無線通訊設(shè)備、電子鐘表、單片機、數(shù)字儀器儀表等電子設(shè)備中。為數(shù)據(jù)處理設(shè)備產(chǎn)生時鐘信號和為特定系統(tǒng)提供基

27、準(zhǔn)信號。在單片機中為其提供時鐘頻率。五、 系統(tǒng)軟件設(shè)計本系統(tǒng)軟件設(shè)計由主程序、初始化程序、LCD顯示程序程序、鍵盤掃描程序、輸入密碼開鎖程序、密碼修改程序、EEPROM讀寫程序和延時程序等組成。主要程序設(shè)計流程圖如下所示:1、先執(zhí)行初始化程序,然后啟動程序,執(zhí)行鍵盤掃描程序,根據(jù)各個功能鍵執(zhí)行相應(yīng)的功能。開始初始化鍵盤程序啟動程序鍵盤掃描鍵功能程序結(jié)束關(guān)閉程序 圖5-1 主程序流程圖初始化按開鎖鍵輸入密碼確認(rèn)程序所輸入密碼正確?Y開鎖成功開鎖程序輸入次數(shù)加1次數(shù)>3?報警程序返回NYN 圖5-2 輸入密碼開鎖流程圖 修改密碼程序程序初始化按下設(shè)置鍵輸舊密碼確認(rèn)程序所輸入舊密碼正確?輸新密

28、碼確認(rèn)程序設(shè)置成功輸入次數(shù)加1次數(shù)>3?報警程序NYNY鎖定確認(rèn)程序再次輸新密碼兩次新密碼輸入相同?NY 圖5-3 修改密碼流程圖六、 結(jié)論本設(shè)計從經(jīng)濟實用的角度出發(fā),采用美國Atmel公司的單片機AT89S52與低功耗CMOS型E2PROM AT24C02作為主控芯片與數(shù)據(jù)存儲器單元,結(jié)合外圍的鍵盤輸入、顯示、報警、開鎖等電路并用C語言編寫主控芯片的控制程序,研制了一款可以多次更改密碼具有報警功能的電子密碼鎖。設(shè)計完全可行可以達到設(shè)計目地。使用單片機制作的電子密碼鎖具有軟硬件設(shè)計簡單,易于開發(fā),成本較低,安全可靠,操作方便等特點,可應(yīng)用于住宅、辦公室的保險箱及檔案柜等需要防盜的場所,有

29、一定的實用性。該電路設(shè)計還具有按鍵有效提示,輸入錯誤提示,控制開鎖電平,控制報警電路,修改密碼等多種功能??稍谝馔庑姑艿那闆r下隨時修改密碼。保密性強,靈活性高,特別適用于家庭、辦公室、學(xué)生宿舍及賓館等場所。七、參考文獻:1 石文軒,宋薇.基于單片機MCS一1的智能密碼鎖設(shè)計M.武漢工程職業(yè)技術(shù)學(xué)院學(xué)報,2004,(01);2 祖龍起,劉仁杰.,2005,(10);4 郭海英.基于單片機的電子安全密碼鎖的設(shè)計M.現(xiàn)代電子技術(shù),2005,(13);5 李明喜.新型電子密碼鎖的設(shè)計J.機電產(chǎn)品開發(fā)與創(chuàng)新,2004,(03);6 董繼成.一種新型安全的單片機密碼鎖J.電子技術(shù),2004,(03);7

30、祖龍起,劉仁杰,孫乃凌.一種新穎的電一種新型可編程密碼鎖J.大連輕工業(yè)學(xué)院學(xué)報,2002,(01);8 李明喜.新型電子密碼鎖的設(shè)計J.機電產(chǎn)品開發(fā)與創(chuàng)新,2004,(03);9 楊茂濤.一種電子密碼鎖的實現(xiàn)J.福建電腦,2004,(08);10 瞿貴榮.實用電子密碼鎖J.家庭電子,2000,(07);11 ATmega.ATmega8L-8AC,2006,(01);12 Wireless World,1998,vol、84,No、1509,p69;13 王千.實用電子電路大全M,電子工業(yè)出版社,2001,p101;附錄1: 實物圖 附錄2:/1.初始密碼123456,輸入密碼時顯示*,有按鍵

31、音./2 密碼通過鍵盤輸入0-9數(shù)字,當(dāng)輸入第6個密碼,系統(tǒng)自動驗證密碼,若密碼正確,則將鎖打開。/3.密碼錯誤,返回輸入密碼界面,連續(xù)錯誤3次,鍵盤鎖定,蜂鳴器報警。/4.密碼輸入正確后,進入選擇修改密碼畫面./5.新密碼需要輸入兩次密碼,兩次新密碼一致修改成功,否則不能修改。/6.新密碼修改成功后存入存儲器,即使掉電密碼也保存。/開機畫面1/" Welcome ! "/" "/輸入密碼畫面/" Input code "/" * "/輸入密碼正確畫面/" Input code "/"

32、 Unlock OK! "/輸入密碼錯誤畫面/" Input code "/" ERROR ! "/修改密碼選擇畫面/"Change K10"/"Exit K11"/第一次輸入新密碼/" New code 1 "/" * "/第二次輸入新密碼/" New code 2 "/" * "/兩次新密碼一致,修改密碼成功畫面/" OK! "/"Password Saved! "/兩次新密碼不一致

33、,修改密碼失敗畫面/"No rights ! "/" "#include<reg52.h>#include<intrins.h>#include<string.h>#define uint unsigned int#define uchar unsigned char/-sbit BEEP=P35; /蜂鳴器sbit JDQ=P36; /繼電器 模擬開鎖/-/P1.0-1.7-D0.0-D0.7sbit rs = P30; /1602液晶sbit wela = P31; /1602液晶sbit lcden = P32;

34、 /1602液晶/-#define C02_write 0xa0 /寫#define C02_read 0xa1 /讀sbit SCL=P34; /時鐘sbit SDA_EEPROM=P33; /數(shù)據(jù) bit ack;bit dd;/-/4*4 key - P1/-uchar IIC_Password16=""/IIC密碼uchar DSY_BUFFER16="" /顯示緩沖uchar UserPassword16=""/使用者密碼uchar TwoPassword16=""/使用者密碼uchar OnePassw

35、ord16=""/使用者密碼uchar KeyNo =16;/-1602-void delayms(uint z) /延時N msuint x,y;for(x=z;x>0;x-)for(y=120;y>0;y-);void write_com(uchar com) /1602液晶寫指令rs=0;lcden=0;P1=com;delayms(1);lcden=1;delayms(2);lcden=0;void write_date(uchar date) /1602液晶寫數(shù)據(jù) rs=1;lcden=0;P1=date;delayms(1);lcden=1;dela

36、yms(2);lcden=0;void init_lcd(void) /初始化液晶,及畫面初始化/uchar num;wela=0;lcden=0;write_com(0x38); write_com(0x0c);write_com(0x06);write_com(0x01);write_com(0x80);/指定x,y寫入字符串函數(shù) void LCD_Write_String(unsigned char x,unsigned char y,unsigned char *s) if (y = 0)write_com(0x80 + x); /第一行 elsewrite_com(0xC0 + x)

37、; /第二行 while (*s) / write_date( *s); s+; /寫入數(shù)據(jù) /-1602-/蜂鳴器子程序void Beep() uchar i; for(i=0;i<100;i+) delayms(2);BEEP=BEEP; BEEP=1; /關(guān)蜂鳴器/2402/-void delay_ms(uchar i)uchar j;for(;i>0;i-)for(j=124;j>0;j-);void I2C_start(void)SDA_EEPROM=1;SCL=1;_nop_();_nop_();_nop_();_nop_();_nop_();SDA_EEPROM

38、=0;_nop_();_nop_();_nop_();_nop_();_nop_();SCL=0;_nop_();_nop_();void I2C_stop(void)SDA_EEPROM=0;SCL=1;_nop_();_nop_();_nop_();_nop_();_nop_();SDA_EEPROM=1;_nop_();_nop_();_nop_();_nop_();_nop_();SCL=0;_nop_();_nop_();void I2C_ackownledge(void)SDA_EEPROM=0;_nop_();_nop_();SCL=1;_nop_();_nop_();_nop_

39、();_nop_();_nop_();SCL=0;_nop_();_nop_();_nop_();void I2C_no_ackownledge(void)SDA_EEPROM=1;_nop_();_nop_();SCL=1;_nop_();_nop_();_nop_();_nop_();_nop_();SCL=0;_nop_();_nop_();_nop_();void I2C_sendB(uchar byte)uchar counter;for(counter=0;counter<8;counter+)if(byte&0x80)SDA_EEPROM=1;elseSDA_EEP

40、ROM=0;_nop_();SCL=1;_nop_();_nop_();_nop_();_nop_();_nop_();SCL=0;_nop_();_nop_();byte<<=1;_nop_();_nop_();SDA_EEPROM=1;_nop_();_nop_();_nop_();SCL=1;_nop_();_nop_();_nop_();if(SDA_EEPROM=0)ack=1;else ack=0;SCL=0;_nop_();_nop_();uchar I2C_receiveB(void)uchar temp;uchar counter;temp=0;SDA_EEPRO

41、M=1;_nop_();_nop_();for(counter=0;counter<8;counter+) _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); SCL=1; _nop_(); _nop_(); if(SDA_EEPROM=1)temp=(temp<<1)|0x01; elsetemp=temp<<1; _nop_(); _nop_(); SCL=0; _nop_(); _nop_(); _nop_();_nop_();_nop_();return(temp);/*bit I2C_write_byte(uchar

42、 byte,uchar address)I2C_sendB(address);if(ack=0)I2C_stop();return(0);elseI2C_sendB(byte); */存UserPasswordbit I2C_send_string(uchar no,uchar address)uchar counter;for(counter=0;counter<no;counter+)I2C_start();I2C_sendB(C02_write);if(ack=0) return(0);I2C_sendB(address+counter);if(ack=0) return(0);I

43、2C_sendB(UserPasswordcounter);I2C_stop();delay_ms(20);return(1); /讀EEPROMPasswordbit I2C_receive_string(uchar no,uchar address)uchar counter;for(counter=0;counter<no;counter+)I2C_start();I2C_sendB(C02_write);if(ack=0) return(0);I2C_sendB(address+counter);if(ack=0) return(0);I2C_start();I2C_sendB(

44、C02_read);if(ack=0) return(0); IIC_Passwordcounter=I2C_receiveB();I2C_no_ackownledge();I2C_stop();/-/2402/*bit strcmp_key(uchar *string1,uchar *string2)uchar counter;for(counter=0;counter<6;counter+)if(string1counter!=string2counter) return(0);return (1);*/-/uchar Keys_Scan() uchar Tmp,KeyNO=0;P2

45、 = 0x0f;delayms(1);Tmp = P2 0x0f;switch(Tmp) case 1: KeyNO = 0; break;case 2: KeyNO = 1; break;case 4: KeyNO = 2; break;case 8: KeyNO = 3; break;default: KeyNO = 16;P2 = 0xf0;delayms(1);Tmp = P2 >> 4 0x0f;switch(Tmp) case 1: KeyNO += 0; break;case 2: KeyNO += 4; break;case 4: KeyNO += 8; break;case 8: KeyNO += 12;Beep();/按鍵音return KeyNO;/-key-void main() uchar i=0;uchar error5=0; /密碼錯誤5次鎖鍵盤. uchar mode=0; /開機模式選擇BEEP=1; /關(guān)蜂鳴器 JDQ=1; /關(guān)鎖init_lcd(); /初始化1602while(1) if(mode=0) LCD_Write_String(0,0," Welcome ! "); /

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論