防盜報(bào)警功能的電子密碼控制系統(tǒng)畢業(yè)論文_第1頁
防盜報(bào)警功能的電子密碼控制系統(tǒng)畢業(yè)論文_第2頁
防盜報(bào)警功能的電子密碼控制系統(tǒng)畢業(yè)論文_第3頁
防盜報(bào)警功能的電子密碼控制系統(tǒng)畢業(yè)論文_第4頁
防盜報(bào)警功能的電子密碼控制系統(tǒng)畢業(yè)論文_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、目錄1.1引 言11.1.1 選題背景11.1.2 電子密碼控制簡(jiǎn)介11.1.3 電子密碼控制的發(fā)展趨勢(shì)11.1.4 本設(shè)計(jì)所要實(shí)現(xiàn)的目標(biāo)21.2 操作說明書2第二章 硬件電路設(shè)計(jì)42.1 控制電路方案選擇42.2 顯示電路的選擇52.3 按鍵電路控制方式52.4 主要器件介紹52.4.1 單片機(jī)的產(chǎn)生與發(fā)展52.4.2 stc89c52引腳說明62.4.3 i2c總線密碼存儲(chǔ)芯片at24c02介紹82.4.4 液晶顯示器1602介紹10第三章 電路原理圖143.1 總體電路原理圖143.2 各模塊電路設(shè)計(jì)153.2.1電源電路153.2.2 輸入部分電路(矩陣鍵盤)153.2.3 報(bào)警電路1

2、63.2.4 開鎖電路163.2.5 密碼儲(chǔ)存電路173.2.6 顯示電路173.2.7 程序加載電路183.2.8 單片機(jī)最小系統(tǒng)18第四章 軟件設(shè)計(jì)194.1 軟件設(shè)計(jì)流程圖19參考文獻(xiàn)20附錄一:pcb圖21附錄二:密碼鎖程序22第一章 概述1.1引 言1.1.1 選題背景 在安全技術(shù)防范領(lǐng)域,具有防盜報(bào)警功能的電子密碼控制系統(tǒng)逐漸代替?zhèn)鹘y(tǒng)的機(jī)械式密碼控制系統(tǒng),克服了機(jī)械式密碼控制的密碼量少、安全性能差的缺點(diǎn),使電子密碼控制系統(tǒng)無論在技術(shù)上還是在性能上都大大提高了一步。隨著大規(guī)模集成電路技術(shù)的發(fā)展,特別是單片機(jī)的問世,出現(xiàn)了帶微處理器的智能密碼控制系統(tǒng),它除具有傳統(tǒng)電子密碼控制系統(tǒng)的功能

3、外,還引入了智能化管理、專業(yè)分析系統(tǒng)等功能,從而使密碼控制系統(tǒng)具有很高的安全性、可靠性,應(yīng)用日益廣泛。1.1.2 電子密碼控制簡(jiǎn)介 電子密碼控制是一種通過密碼輸入來控制電路或是芯片工作,從而控制機(jī)械開關(guān)的閉合,完成開鎖、閉鎖任務(wù)的電子產(chǎn)品。電子密碼控制不論性能還是安全性都已大大超過了機(jī)械類。其特點(diǎn)如下:(1) 保密性好,編碼量多,遠(yuǎn)遠(yuǎn)大于機(jī)械控制。隨機(jī)開鎖成功率幾乎為零。(2) 密碼可變,用戶可以隨時(shí)更改密碼,防止密碼被盜,同時(shí)也可以避免因人員的更替而使控制的保密性下降。(3) 誤碼輸入保護(hù),當(dāng)輸入密碼多次錯(cuò)誤時(shí),報(bào)警系統(tǒng)自動(dòng)啟動(dòng)。(4) 無活動(dòng)零件,不會(huì)磨損,壽命長(zhǎng)。(5) 使用靈活性好,不

4、像機(jī)械鎖必須佩帶鑰匙才能開鎖。(6) 電子密碼控制系統(tǒng)具有操作簡(jiǎn)單易行,一學(xué)即會(huì)的特點(diǎn)。1.1.3 電子密碼控制的發(fā)展趨勢(shì) 由于電子器件所限制,以前開發(fā)的電子密碼控制系統(tǒng),其種類不多,保密性差,最基本的就是只依靠最簡(jiǎn)單的模擬電子開關(guān)來實(shí)現(xiàn)的,制作簡(jiǎn)單但很不安全,后來便是基于eda來實(shí)現(xiàn)的,其電路結(jié)構(gòu)復(fù)雜,電子元件繁多,也有使用早先的20引腳的2051系列單片機(jī)來實(shí)現(xiàn)的,但密碼簡(jiǎn)單,易破解。隨著電子元件的進(jìn)一步發(fā)展,電子密碼控制系統(tǒng)也出現(xiàn)了很多的種類,功能日益強(qiáng)大,使用更加方便,安全保密性更強(qiáng),由以前的單密碼輸入發(fā)展到現(xiàn)在的,密碼加感應(yīng)元件,實(shí)現(xiàn)了更為真正的電子加密,用戶只有密碼或電子鑰匙中的一

5、樣,是打不開鎖的,隨著電子元件的發(fā)展及人們對(duì)保密性需求的提高出現(xiàn)了越來越多的電子密碼控制系統(tǒng) 。由于數(shù)字、字符、圖形圖像、人體生物特征和時(shí)間等要素均可成為電子信息,組合使用這些信息能夠使電子防盜密碼控制獲得更高的保密性,如防范森嚴(yán)的金庫,需要使用復(fù)合信息密碼的電子防盜密碼控制系統(tǒng)。組合使用信息也能夠使電子防盜密碼控制系統(tǒng)獲得無窮擴(kuò)展的可能??梢钥闯鼋M合使用電子信息是電子密碼控制系統(tǒng)今后發(fā)展的趨勢(shì) 。1.1.4 本設(shè)計(jì)所要實(shí)現(xiàn)的目標(biāo)本設(shè)計(jì)采用單片機(jī)為主控芯片,結(jié)合外圍電路,組成電子密碼控制系統(tǒng),用戶想要打開鎖,必先通過提供的鍵盤輸入正確的密碼才可以,密碼輸入錯(cuò)誤有提示,為了提高安全性,當(dāng)密碼輸入

6、錯(cuò)誤三次將報(bào)警。密碼可以由用戶自己修改設(shè)定,輸入舊密碼正確后才能修改密碼。修改密碼之前必須再次輸入密碼,在輸入新密碼時(shí)候需要二次確認(rèn),并且兩次輸入的密碼必須一致才能成功修改,以防止誤操作。1.2 操作說明書該產(chǎn)品開機(jī)顯示提示語“happy every day!”此時(shí)只有input鍵和setting鍵有效,其它任意鍵無效。按下輸入鍵(input)后將提示“please input your password”可輸入密碼,所輸入的密碼在液晶顯示屏上顯示為“*”,密碼輸入完成后按“enter”鍵確認(rèn),若密碼正確繼電器將吸合,綠色led燈被點(diǎn)亮,同時(shí)提示“opening!come in please”

7、;若密碼錯(cuò)誤,將提示“sorry your password is error”同時(shí)蜂鳴器和紅色led燈產(chǎn)生報(bào)警信號(hào)(報(bào)警信號(hào)次數(shù)為5次)之后提示“please input your password again”如果再次錯(cuò)誤將重復(fù)報(bào)警并提示再次輸入密碼,如果密碼還是錯(cuò)誤的將產(chǎn)生10次報(bào)警信號(hào),之后提示“operation is limited!”同時(shí)鎖定鍵盤1分30秒,在鎖定期間按下鍵盤上任意按鍵都無效,鎖定時(shí)間結(jié)束后按下“unlock”鍵除鎖定回到開機(jī)時(shí)的狀態(tài),其它鍵無效。按下“setting”鍵可修改密碼,此時(shí)紅色指示燈被點(diǎn)亮。如果此時(shí)按下“input”鍵則將進(jìn)行恢復(fù)初始密碼操作,紅色指

8、示燈將閃爍5次,如果不想恢復(fù)按下“back”鍵可退出恢復(fù)初始密碼設(shè)置回到開機(jī)時(shí)的狀態(tài)。若想恢復(fù)按下“enter”鍵繼續(xù)操作并提示“you will recover initial password ”, 此時(shí)輸入8位恢復(fù)密碼“72958166”每輸入一位密碼指示燈閃爍一次。輸入的恢復(fù)密碼正確則恢復(fù)成功,初始密碼為“325892”并提示“recover success!”,若輸入的恢復(fù)密碼有錯(cuò)則無法恢復(fù)初始密碼并提示“recover fail! ” 大約10秒后回到開機(jī)時(shí)的狀態(tài)。如果只是想進(jìn)行恢復(fù)初始密碼操作,按下(setting)設(shè)置鍵后,按下除input鍵以外的任意鍵將進(jìn)入修改密碼操作,同時(shí)

9、提示“please input the old password”輸入舊密碼,舊密碼正確才可繼續(xù)修改密碼。若舊密碼錯(cuò)誤將提示“sorry your password is error”同時(shí)蜂鳴器和紅色led燈產(chǎn)生報(bào)警信號(hào)(報(bào)警信號(hào)次數(shù)為5次),大約10秒鐘后提示“please input your password again”若再次錯(cuò)誤輸入密碼則提示“setting is failed!”并回到開機(jī)時(shí)的狀態(tài)。輸入的舊密碼正確將提示“please input the new password”輸入新密碼,密碼位數(shù)為4-6位,按“enter”鍵確認(rèn),此時(shí)將提示“please input your

10、 password again”再次輸入新密碼,若兩次輸入的新密碼一致則修改成功并提示“setting is successful!”若兩次輸入的密碼不一致則提示“the two password not match!” 5秒鐘后重新提示“please input your password again”再次輸入新密碼,若與第一次輸入的一致則修改成功提示“setting is successful!”否則修改失敗提示“setting is failed!”之后回到開機(jī)時(shí)的狀態(tài)。按鍵分布如表1-1:123setting456back789cleaninput0unlockenter表1-1 密碼

11、鎖按鍵分布注:在輸入密碼的過程中(未按下enter鍵)如有錯(cuò)誤輸入,可按下back鍵清除光標(biāo)前的一位,按下clean鍵全部清除。第二章 硬件電路設(shè)計(jì)2.1 控制電路方案選擇方案一:采用數(shù)字電路控制 用以74ls112雙jk觸發(fā)器構(gòu)成的數(shù)字邏輯電路作為密碼控制系統(tǒng)的核心控制,共設(shè)了9個(gè)用戶輸入鍵,其中只有4個(gè)是有效的密碼按鍵,其它的都是干擾按鍵,若按下干擾鍵,鍵盤輸入電路自動(dòng)清零,原先輸入的密碼無效,需要重新輸入;如果用戶輸入密碼的時(shí)間超過10秒(一般情況下,用戶不會(huì)超過10秒,若用戶覺得不便,還可以修改)電路將報(bào)警20秒,若電路連續(xù)報(bào)警三次,電路將鎖定鍵盤2分鐘,防止他人的非法操作 。采用數(shù)字

12、電路設(shè)計(jì)方案時(shí)設(shè)計(jì)雖然簡(jiǎn)單,但控制的準(zhǔn)確性和靈活性差。故不采用。方案二:采用以單片機(jī)為核心的控制方案 由于單片機(jī)種類繁多,各種型號(hào)都有其一定的應(yīng)用環(huán)境,因此在選用時(shí)要多加比較,合理選擇,以期獲得最佳的性價(jià)比。一般來說在選取單片機(jī)時(shí)從下面幾個(gè)方面考慮:性能、存儲(chǔ)器、運(yùn)行速度、i/o口、定時(shí)/計(jì)數(shù)器、串行接口、模擬電路功能、工作電壓、功耗、封裝形式、抗干擾性、保密性,除了以上的一些還有一些最基本的,比如:中斷源的數(shù)量和優(yōu)先級(jí)、工作溫度范圍、有沒有低電壓檢測(cè)功能、單片機(jī)內(nèi)有無時(shí)鐘振蕩器、有無上電復(fù)位功能等。在開發(fā)過程中單片機(jī)還受到:開發(fā)工具、編程器、開發(fā)成本、開發(fā)人員的適應(yīng)性、技術(shù)支持和服務(wù)等等因素

13、 。基于以上因素本設(shè)計(jì)選用單片機(jī)stc89c52作為本設(shè)計(jì)的核心元件,利用單片機(jī)靈活的編程設(shè)計(jì)和豐富的i/o端口,及其控制的準(zhǔn)確性,實(shí)現(xiàn)基本的密碼控制功能。在單片機(jī)的外圍電路外接輸入鍵盤用于密碼的輸入和一些功能的控制,外接lcd1602顯示器用于顯示作用。當(dāng)用戶需要開鎖時(shí),先按鍵盤輸入鍵之后按鍵盤的數(shù)字鍵09輸入密碼,密碼輸完后按下確認(rèn)鍵,如果密碼輸入正確則開鎖,如果輸入不正確,顯示密碼錯(cuò)誤并提示重新輸入密碼,當(dāng)密碼錯(cuò)誤次數(shù)到達(dá)三次是就會(huì)發(fā)出報(bào)警,并將鍵盤鎖定兩分鐘,在兩分鐘內(nèi)任意按鍵輸入密碼無效,兩分鐘過后按下解鎖鍵(unlock)可解除鍵盤鎖定。當(dāng)用戶需要修改密碼時(shí),先按下鍵盤設(shè)置鍵提示輸

14、入密碼后輸入原來的密碼,只有輸入的原密碼正確才能設(shè)置新密碼。新密碼輸入無誤后按確認(rèn)鍵,新密碼將存儲(chǔ)到at24c02存儲(chǔ)芯片中,密碼修改成功??梢钥闯龇桨付目刂旗`活,準(zhǔn)確性好,且保密性強(qiáng)還具有擴(kuò)展功能,根據(jù)現(xiàn)實(shí)生活的需要此次設(shè)計(jì)采用此方案。2.2 顯示電路的選擇方案一:采用數(shù)碼管采用數(shù)碼管作為顯示器件。使用數(shù)碼管顯示的優(yōu)點(diǎn)是:數(shù)碼管價(jià)格低廉,可降低設(shè)計(jì)成本。同時(shí),也存在的缺點(diǎn)是:數(shù)碼管顯示提示語的代碼相當(dāng)繁雜,編碼工作量大,并且顯示控制程序難以編寫,顯示時(shí)有余輝干擾難以消除。方案二:采用液晶顯示屏lcd1602采用液晶顯示屏lcd1602作為顯示器件。液晶顯示器1602顯示控制簡(jiǎn)單,器件本身自

15、帶顯示代碼無需自行編寫,并且可以根據(jù)用戶需要編寫特殊顯示字符,性價(jià)比優(yōu)越。2.3 按鍵電路控制方式方案一:使用獨(dú)立式按鍵,不采用單片機(jī)中斷方式,編寫按鍵掃描程序,進(jìn)行重復(fù)掃面,缺點(diǎn)是:占用過多的單片機(jī)i/o口資源,增加了程序編寫量,控制方法繁瑣,沒有充分利用單片機(jī)的中斷資源。方案二:使用矩陣式鍵盤分布,采用單片機(jī)中斷方式控制按鍵掃描,使用單片機(jī)的外部中斷0接口。優(yōu)點(diǎn)是:按鍵反應(yīng)靈敏,響應(yīng)時(shí)間快,充分利用了單片機(jī)的中斷資源。2.4 主要器件介紹2.4.1 單片機(jī)的產(chǎn)生與發(fā)展計(jì)算機(jī)的發(fā)展主要朝著兩個(gè)方向,一方面,計(jì)算機(jī)向著高速、智能化的巨型超級(jí)機(jī)方向發(fā)展,運(yùn)算速度已達(dá)每秒數(shù)十萬億次;另一方面,計(jì)算

16、機(jī)則向著微型化的方向發(fā)展,一個(gè)純單片的微型計(jì)算機(jī)的體積比人的指甲還小。一個(gè)典型的數(shù)字計(jì)算機(jī)系統(tǒng),應(yīng)包括運(yùn)算器,控制器,數(shù)據(jù)與程序存儲(chǔ)器,輸入輸出接口四大部分。如果將它們集成在一小塊硅片上,就構(gòu)成了微型單片計(jì)算機(jī),簡(jiǎn)稱單片機(jī)。什么是單片機(jī)?所謂單片機(jī)就是將微處理器(cpu)、隨機(jī)讀寫存儲(chǔ)器(ram)、只讀存儲(chǔ)器(rom或eprom、eeprom)、特殊功能寄存器(sfr)、定時(shí)器/計(jì)數(shù)器和各種輸入/輸出接口電路(i/o),以及相互連接的總線(bus)等集成在一塊芯片上,形成芯片級(jí)的計(jì)算機(jī),又稱為單片微型計(jì)算機(jī)。通常單片機(jī)基本結(jié)構(gòu)如圖2-1所示。圖2-1 單片機(jī)基本結(jié)構(gòu)2.4.2 stc89c52

17、引腳說明主要特性: 4k字節(jié)可編程flash存儲(chǔ)器 全靜態(tài)工作:0hz-24khz 三級(jí)程序存儲(chǔ)器保密鎖定 128*8位內(nèi)部ram 32條可編程i/o線 兩個(gè)16位定時(shí)器/計(jì)數(shù)器6個(gè)中斷源 可編程串行通道 低功耗的閑置和掉電模式 片內(nèi)振蕩器和時(shí)鐘電路 圖2-2 stc89c52引腳 管腳說明:vcc:供電電壓。gnd:接地。 p0口:p0口是一個(gè)具有高電平、低電平和高阻態(tài)3種狀態(tài)的端口,既可以作為通用i/o口使用,也可以作為地址/數(shù)據(jù)復(fù)用線接口使用。當(dāng)p0口作為通用i/o口使用時(shí),由于內(nèi)部電路是漏極開路輸出狀態(tài),因此每個(gè)引腳都必須外接上拉電阻。 p1口:p1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向i

18、/o口,p1口緩沖器能接收輸出4ttl門電流。p1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,p1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在flash編程和校驗(yàn)時(shí),p1口作為第八位地址接收。 p2口:p2口為一個(gè)內(nèi)部上拉電阻的8位雙向i/o口,p2口緩沖器可接收,輸出4個(gè)ttl門電流,當(dāng)p2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),p2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。p2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),p2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)

19、行讀寫時(shí),p2口輸出其特殊功能寄存器的內(nèi)容。p2口在flash編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。 p3口:p3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向i/o口,可接收輸出4個(gè)ttl門電流。當(dāng)p3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,p3口將輸出電流(ill)這是由于上拉的緣故。p3口也可作為at89c51的一些特殊功能口,如下所示:管腳備選功能:p3.0 rxd(串行輸入口)p3.1 txd(串行輸出口)p3.2 /int0(外部中斷0)p3.3 /int1(外部中斷1)p3.4 t0(記時(shí)器0外部輸入)p3.5 t1(記時(shí)器1外部輸入)p3.6

20、/wr(外部數(shù)據(jù)存儲(chǔ)器寫選通)p3.7 /rd(外部數(shù)據(jù)存儲(chǔ)器讀選通)p3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。 rst:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持rst腳兩個(gè)機(jī)器周期的高電平時(shí)間。 ale/prog:當(dāng)訪問外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在flash編程期間,此引腳用于輸入編程脈沖。在平時(shí),ale端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過一個(gè)ale脈沖。如想禁止ale的輸出可在sfr8eh地址上置0。此時(shí), ale只有在執(zhí)行movx,mo

21、vc指令是ale才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ale禁止,置位無效。 /psen:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/psen有效。但在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/psen信號(hào)將不出現(xiàn)。 /ea/vpp:當(dāng)/ea保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000h-ffffh),不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),/ea將內(nèi)部鎖定為reset;當(dāng)/ea端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在flash編程期間,此引腳也用于施加12v編程電源(vpp)。 xtal1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。 xt

22、al2:來自反向振蕩器的輸出。2.4.3 i2c總線密碼存儲(chǔ)芯片at24c02介紹 圖2-3 at24c02引腳圖(1)引腳功能介紹及相關(guān)知識(shí)wp:寫保護(hù)引腳,將該引腳接vcc,e2prom就實(shí)現(xiàn)寫保護(hù)(只讀)。引腳接地或懸空,可以對(duì)器件進(jìn)行讀寫操作。scl:串行時(shí)鐘引腳,串行輸入輸出時(shí)該引腳用于輸入時(shí)鐘。sda:串行數(shù)據(jù)輸入輸出引腳,用來輸入輸出數(shù)據(jù),該引腳為射極開路輸出,需接上拉電阻。(2)i2c總線協(xié)議只有總線非忙時(shí)才被允許進(jìn)行數(shù)據(jù)傳送,在傳送時(shí),當(dāng)時(shí)鐘線為高電平,數(shù)據(jù)線必須為固定狀態(tài),不允許有跳變。時(shí)鐘線為高電平時(shí)數(shù)據(jù)線的任何電平變化將被當(dāng)作總線的啟動(dòng)或停止條件。(3)起始條件起始調(diào)教

23、必須在所有操作命令之前發(fā)送。時(shí)鐘線保持高電平期間,數(shù)據(jù)線電平從高到低跳變作為i2c總線的啟動(dòng)信號(hào)。cat24cxxx一直監(jiān)視sda和scl電平信號(hào),直到條件滿足時(shí)才響應(yīng)。(4)停止條件時(shí)鐘線保持高電平期間,數(shù)據(jù)線電平從低到高跳變作為i2c總線的停止信號(hào)。(5)器件地址的約定主器件在發(fā)送啟動(dòng)命令后開始傳送數(shù)據(jù),主器件發(fā)送相應(yīng)的從器件地址,8位從器件地址的高四位固定為1010,接下來的3位用來定義存儲(chǔ)器的地址,對(duì)于cat24c021/022,這三位無意義,對(duì)于cat24c41/042,接下來的2位無意義,第三位是地址高位,cat24c081/082中,第一位無意義,后兩位表示地址高位。最后一位為讀

24、寫控制位,“1”表示對(duì)從器件進(jìn)行讀寫操作,“0”表示寫操作。在主器件發(fā)送啟動(dòng)命令和一字節(jié)從器件地址后,如果與從器件地址吻合,cat24c02將發(fā)送一個(gè)應(yīng)答信號(hào),然后再根據(jù)讀/寫控制為進(jìn)行讀或?qū)懖僮鳌#?)應(yīng)答信號(hào)每次數(shù)據(jù)傳送成功后,接收器件將發(fā)送一個(gè)應(yīng)答信號(hào)。當(dāng)?shù)诰艂€(gè)時(shí)鐘信號(hào)產(chǎn)生時(shí),產(chǎn)生應(yīng)答型號(hào)的器件將sda下拉為低,通知已經(jīng)接受到8位數(shù)據(jù),接收到起始條件和從器件地址后,cat24c02發(fā)送一個(gè)應(yīng)答信號(hào),如果為寫操作,每接收到一個(gè)字節(jié)數(shù)據(jù),cat24c02發(fā)送一個(gè)應(yīng)答信號(hào)。如果為讀操作,cat24c02發(fā)送一個(gè)字節(jié)數(shù)據(jù)后釋放總線等待應(yīng)答信號(hào),一旦接收到應(yīng)答信號(hào),它將繼續(xù)發(fā)發(fā)送數(shù)據(jù),如果接收到主

25、器件發(fā)送非應(yīng)答信號(hào),將結(jié)束數(shù)據(jù)傳送等待停止條件。(7)寫操作在寫字節(jié)模式下,助器件發(fā)送起始命令和從器件地址信息給從器件,在從器件響應(yīng)應(yīng)答信號(hào)后,主器件將要寫入的數(shù)據(jù)地址發(fā)送到cat24c02的地址指針,主器件收到從器件的應(yīng)答信號(hào)后再送數(shù)據(jù)到相應(yīng)的數(shù)據(jù)存儲(chǔ)區(qū)地址,cat24c02再響應(yīng)一個(gè)應(yīng)答信號(hào),主器件產(chǎn)生一個(gè)停止信號(hào),然后cat24c02啟動(dòng)內(nèi)部寫周期,在內(nèi)部寫周期期間,cat24c02不再響應(yīng)主器件任何請(qǐng)求。寫操作時(shí)序讀如圖2-4所示:圖2-4 寫時(shí)序圖(8)讀操作cat24c02讀操作的初始化方式和寫操作一樣,僅把r/w位置1,讀操作有三種方式:立即地址讀、選擇地址讀、連續(xù)讀。選擇地址讀

26、操作時(shí)序圖如圖2-5所示:圖2-5 讀時(shí)序圖2.4.4 液晶顯示器1602介紹(1)1602lcd主要技術(shù)參數(shù)顯示容量:162個(gè)字符芯片工作電壓:4.55.5v工作電流:2.0ma(5.0v)模塊最佳工作電壓:5.0v字符尺寸:2.954.35(wh)mm(2)引腳功能說明1602lcd采用標(biāo)準(zhǔn)的14腳(無背光)或16腳(帶背光)接口,各引腳接口說明如表2-1所示:編號(hào)符號(hào)引腳說明編號(hào)符號(hào) 引腳說明1vss電源地9d2 數(shù)據(jù)2vdd電源正極10d3 數(shù)據(jù)3vl液晶顯示偏壓11d4 數(shù)據(jù)4rs數(shù)據(jù)/命令選擇12d5 數(shù)據(jù)5r/w讀/寫選擇13d6 數(shù)據(jù)6e使能信號(hào)14d7 數(shù)據(jù)7d0數(shù)據(jù)15bl

27、a 背光源正極8d1數(shù)據(jù)16blk 背光源負(fù)極表2-1:引腳接口說明表第1腳:vss為地電源。第2腳:vdd接5v正電源。第3腳:vl為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地時(shí)對(duì)比度最高,對(duì)比度過高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過一個(gè)10k的電位器調(diào)整對(duì)比度。第4腳:rs為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器。第5腳:r/w為讀寫信號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫操作。當(dāng)rs和r/w共同為低電平時(shí)可以寫入指令或者顯示地址,當(dāng)rs為低電平r/w為高電平時(shí)可以讀忙信號(hào),當(dāng)rs為高電平r/w為低電平時(shí)可以寫入數(shù)據(jù)。第6腳:e端為使能端,當(dāng)e端由高電平跳變成低

28、電平時(shí),液晶模塊執(zhí)行命令。第714腳:d0d7為8位雙向數(shù)據(jù)線。第15腳:背光源正極。第16腳:背光源負(fù)極。(3)1602lcd的指令說明及時(shí)序1602液晶模塊內(nèi)部的控制器共有11條控制指令,如表2-2所示:序號(hào)指令rsr/wd7d6d5d4d3d2d1d01清顯示00000000012光標(biāo)返回000000001*3置輸入模式00000001i/ds4顯示開/關(guān)控制0000001dcb5光標(biāo)或字符移位000001s/cr/l*6置功能00001dlnf*7置字符發(fā)生存貯器地址0001字符發(fā)生存貯器地址8置數(shù)據(jù)存貯器地址001顯示數(shù)據(jù)存貯器地址9讀忙標(biāo)志或地址01bf計(jì)數(shù)器地址10寫數(shù)到cgra

29、m或ddram)10要寫的數(shù)據(jù)內(nèi)容11從cgram或ddram讀數(shù)11讀出的數(shù)據(jù)內(nèi)容表2-2:控制命令表1602液晶模塊的讀寫操作、屏幕和光標(biāo)的操作都是通過指令編程來實(shí)現(xiàn)的。(說明:1為高電平、0為低電平)指令1:清顯示,指令碼01h,光標(biāo)復(fù)位到地址00h位置。指令2:光標(biāo)復(fù)位,光標(biāo)返回到地址00h。指令3:光標(biāo)和顯示模式設(shè)置 i/d:光標(biāo)移動(dòng)方向,高電平右移,低電平左移。 s:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無效。指令4:顯示開關(guān)控制。 d:控制整體顯示的開與關(guān),高電平表示開顯示,低電平表示關(guān)顯示 。c:控制光標(biāo)的開與關(guān),高電平表示有光標(biāo),低電平表示無光標(biāo) b:控制光

30、標(biāo)是否閃爍,高電平閃爍,低電平不閃爍。指令5:光標(biāo)或顯示移位 s/c:高電平時(shí)移動(dòng)顯示的文字,低電平時(shí)移動(dòng)光標(biāo)。指令6:功能設(shè)置命令 dl:高電平時(shí)為4位總線,低電平時(shí)為8位總線 。n:低電平時(shí)為單行顯示,高電平時(shí)雙行顯示 f: 低電平時(shí)顯示5x7的點(diǎn)陣字符,高電平時(shí)顯示5x10的點(diǎn)陣字符。指令7:字符發(fā)生器ram地址設(shè)置。指令8:ddram地址設(shè)置。指令9:讀忙信號(hào)和光標(biāo)地址 bf:為忙標(biāo)志位,高電平表示忙,此時(shí)模塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙。指令10:寫數(shù)據(jù)。指令11:讀數(shù)據(jù)。與hd44780相兼容的芯片時(shí)序表如下:讀狀態(tài)輸入rs=l,r/w=h,e=h輸出d0d7=狀態(tài)字

31、寫指令輸入rs=l,r/w=l,d0d7=指令碼,e=高脈沖輸出無讀數(shù)據(jù)輸入rs=h,r/w=h,e=h輸出d0d7=數(shù)據(jù)寫數(shù)據(jù)輸入rs=h,r/w=l,d0d7=數(shù)據(jù),e=高脈沖輸出無表2-3:基本操作時(shí)序表讀寫操作時(shí)序如圖2-6和2-7所示:圖2-6 讀操作時(shí)序圖2-7 寫操作時(shí)序第三章 電路原理圖3.1 總體電路原理圖3.2 各模塊電路設(shè)計(jì)3.2.1電源電路電源供電采用電腦usb接口的5v電源供電并設(shè)有備用電源接口j01,sy為電源開關(guān),d4為電源指示燈,c4、c5的作用是去除交流電流。電路圖如下:圖3-1電源電路3.2.2 輸入部分電路(矩陣鍵盤)采用4x4的矩陣按鍵作為輸入模塊,行線

32、經(jīng)四輸入與門74ls21接入單片機(jī)外部中斷0接口,用軟件先將p1口置數(shù)為0xf0,當(dāng)有任意按鍵按下時(shí),74ls21與門輸出為0,提供低電平給外部中斷0接口從而產(chǎn)生中斷信號(hào)。圖3-2矩陣鍵3.2.3 報(bào)警電路報(bào)警電路有聲音報(bào)警和燈光報(bào)警兩部分,當(dāng)p2.0和p2.1輸出低電平時(shí)三極管導(dǎo)通從而驅(qū)動(dòng)蜂鳴器發(fā)出聲音報(bào)警,同時(shí)d3點(diǎn)亮報(bào)警。圖3-3 報(bào)警電路3.2.4 開鎖電路開鎖電路采用繼電器模擬,當(dāng)p2.2輸出低電平時(shí)三極管導(dǎo)通驅(qū)動(dòng)繼電器吸合,從而綠燈d2點(diǎn)亮,用來模擬大門被打開。圖3-4 開鎖電路3.2.5 密碼儲(chǔ)存電路 密碼儲(chǔ)存電路采用i2c總線at24c02存儲(chǔ)芯片存放密碼,可實(shí)現(xiàn)斷電密碼不消失

33、,at24c02存儲(chǔ)芯片可長(zhǎng)期存儲(chǔ)信息,可上百萬次以上重新擦寫。圖3-5 密碼儲(chǔ)存電路3.2.6 顯示電路顯示部分使用lcd1602作為顯示器,用單片機(jī)p0口作為控制端口,由于單片機(jī)p0口沒有上拉電阻,所以需外接10k的上拉電阻,rp0為對(duì)比度調(diào)節(jié)電阻。圖3-6 顯示電路3.2.7 程序加載電路由于程序的編寫需要多次調(diào)試,所以在密碼鎖電路設(shè)計(jì)中增加了串行口程序加載電路,避免反復(fù)取下主控芯片stc89c52而引起芯片引腳被損壞。圖3-7 程序加載電路3.2.8 單片機(jī)最小系統(tǒng)圖3-8單片機(jī)最小系統(tǒng)第四章 軟件設(shè)計(jì)4.1 軟件設(shè)計(jì)流程圖開 始正確否?開 鎖y按輸入鍵輸入密碼按設(shè)置鍵設(shè)置密碼恢復(fù)初始

34、密碼正確否?ny輸入新密碼輸入舊密碼再次輸入舊密碼正確否?ny再次輸入新密碼再次輸入密碼報(bào)警正確否?ny再次輸入密碼正確否?y報(bào)警n報(bào)警鎖定鍵盤30s按unlock鍵解除鎖定延時(shí)30s上 鎖報(bào)警兩次密碼一致否?nny修改成功報(bào)警再次輸入新密碼兩次密碼一致否?ny參考文獻(xiàn)1單片機(jī)原理與應(yīng)用高等教育出版社 李精華 主編 2010-052c語言程序設(shè)計(jì)實(shí)用教程機(jī)械工業(yè)出版社 李燕 魏海新 盤莉莉 主編2007-083protel99se原理圖與pcb設(shè)計(jì)教程電子工業(yè)出版社 及力 主編 2009-064模擬電子技術(shù)高等教育出版社 胡宴如 主編 2004-02 5數(shù)字電路設(shè)計(jì)華南理工大學(xué)出版社 葛仁華

35、盧勇威 主編 2007-086789 10 附錄一:pcb圖附錄二:密碼鎖程序#include#include#define uint unsigned int#define uchar unsigned charuchar i,r,k,b,l,tt,key,an,aa,cc,dd,flag,sure,date;uchar code tips=happy every day!;uchar code input=please input the password;uchar code old=please input the old password;uchar code match=the t

36、wo password not match!;uchar code again=please input your password again;uchar code new=please input the new password;uchar code fail=setting is fail;uchar code good=setting is successful!;uchar code error=sorry your password is error;uchar code hide=*;uchar code pass=opening,come in please!;uchar c

37、ode limit=operation is limit!;uchar code recover=you will recover frist password;uchar code recss=recover success!;uchar code recff=recover faill!;uchar code frist=3,2,5,8,9,2;uchar code huifu=7,2,9,5,8,1,6,6;char cun8;char password6;char deposit6;char newword6;sbit yy=p23;sbit rs=p25;sbit rw=p26;sb

38、it en=p27;sbit led=p20;sbit fm=p21;sbit jd=p22;sbit int_0=p32;sbit sda=p34;sbit scl=p35;void dingshi(uint ds)uint f,m;for(f=ds;f0;f-)for(m=0;m0;x-)for(y=0;y100;y+);void nopp(uchar s)uchar n;for(n=0;ns;n+)_nop_();void baojing()led=0;fm=0;delay(800);led=1;fm=1;delay(800);void lcd_write_command(uchar c

39、ommand)en=0;rs=0;rw=0;delay(5);p0=command;delay(5);en=1;delay(5);en=0;void lcd_write_data(uchar dat)en=0;rs=1;rw=0;p0=dat;delay(5);en=1;delay(5);en=0;void lcd_show_address(uchar address)lcd_write_command(address|0x80);void judgement()an=p1;an=an&0xf0;if(an!=0xf0)delay(15);an=p1;an=an&0xf0;if(an!=0xf

40、0)flag=1;void lcd_initialization()lcd_write_command(0x01);lcd_write_command(0x38);lcd_write_command(0x0f);lcd_write_command(0x06);void show_init()aa=0;lcd_initialization();void display(uchar content) if(content!=0)lcd_write_data(content);aa+;if(aa=16)lcd_show_address(0x40);void start() /開始信號(hào)sda=1;no

41、pp(5);scl=1;nopp(5);sda=0;nopp(5);void stop() /停止信號(hào)sda=0;nopp(5);scl=1;nopp(5);sda=1;nopp(5);void response() /應(yīng)答信號(hào)uchar i;scl=1;nopp(5);while(sda=1)&(i255)i+;scl=0;nopp(5);void write_byte(uchar date) /寫一個(gè)字節(jié)uchar i,temp;temp=date;for(i=0;i8;i+)scl=0;nopp(5);temp=1;sda=cy;nopp(5);scl=1;nopp(5);scl=0;n

42、opp(5);sda=1;nopp(5);uchar read_byte() /讀一個(gè)字節(jié)uint i,j;scl=0;nopp(5);sda=1;nopp(5);for(i=0;i8;i+) /循環(huán)8次讀出一個(gè)字節(jié)數(shù)據(jù)scl=1;nopp(5);j=(j1)|sda;scl=0;nopp(5);return j;void at24_write(uchar address,uchar date) start(); /初始信號(hào)write_byte(0xa0); /寫入芯片地址0xa0response(); /應(yīng)答信號(hào)write_byte(address); /寫入芯片內(nèi)部寄存器地址address

43、response(); /應(yīng)答信號(hào)write_byte(date); / 寫入數(shù)據(jù)response(); /應(yīng)答信號(hào)stop(); / 停止信號(hào)uchar at24_read(uchar address)uchar date;start(); / 初始信號(hào)write_byte(0xa0); / 寫入芯片地址0xa0response(); / 應(yīng)答信號(hào)write_byte(address); / 寫入芯片內(nèi)部寄存器地址addressresponse(); / 應(yīng)答信號(hào)start(); / 初始信號(hào)write_byte(0xa1); / 初始信號(hào)response(); / 寫入芯片地址0xa1(讀

44、)date=read_byte(); / 讀出數(shù)據(jù)stop(); / 停止信號(hào)return date; / 返回讀出值void input_password()i=0;while(flag=1&i10)while(1)/輸入的不是數(shù)字鍵或刪除鍵,在此等待if(key0&key=13)/即按下back鍵 - 后退,取消之前輸入的那一位數(shù)i-;aa-;if(i=0)lcd_show_address(i);lcd_write_data( );lcd_show_address(i);if(key=14)/清除鍵cleanshow_init();i=0;if(key10&i6)depositi=key;

45、display(hide0);i+;flag=0;while(flag=0);if(3i7&key=15)flag=0;k=i;/確定密碼的位數(shù)show_init();uchar compare()for(cc=0;cctt;cc+)if(k!=tt)sure=0; break;if(depositcc=passwordcc)sure=1;else sure=0;break;return sure;void keyscan() interrupt 0fm=0;ea=0;judgement();if(flag=1&int_0=0)p1=0xfe;delay(5);an=p1;if(int_0=0

46、)switch(an)case 0xee:key=1;break;case 0xde:key=4;break;case 0xbe:key=7;break;case 0x7e:key=10;break;/key=10表示 input 鍵 p1=0xfd;delay(5);an=p1;if(int_0=0)switch(an)case 0xed:key=2;break;case 0xdd:key=5;break;case 0xbd:key=8;break;case 0x7d:key=0;break;p1=0xfb;delay(5);an=p1;if(int_0=0)switch(an)case 0xeb:key=3;break;case 0xdb:key=6;break;case 0xbb:key=9;break;case 0x7b:key=11;break;/key=11表示 unlock 鍵p1=0xf7;delay(5);an=p1;if(int_0=0)switch(an)case 0xe7:key=12;break;/key=12表示 setting 鍵case 0xd7:key=13;break;/key=13表示 back 鍵c

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論