畢業(yè)設(shè)計(jì)基于單片機(jī)的電子密碼鎖的設(shè)計(jì)——紅外模塊設(shè)計(jì)_第1頁(yè)
畢業(yè)設(shè)計(jì)基于單片機(jī)的電子密碼鎖的設(shè)計(jì)——紅外模塊設(shè)計(jì)_第2頁(yè)
畢業(yè)設(shè)計(jì)基于單片機(jī)的電子密碼鎖的設(shè)計(jì)——紅外模塊設(shè)計(jì)_第3頁(yè)
畢業(yè)設(shè)計(jì)基于單片機(jī)的電子密碼鎖的設(shè)計(jì)——紅外模塊設(shè)計(jì)_第4頁(yè)
畢業(yè)設(shè)計(jì)基于單片機(jī)的電子密碼鎖的設(shè)計(jì)——紅外模塊設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩37頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、畢業(yè)設(shè)計(jì)(論文)設(shè)計(jì)(論文)題目基于單片機(jī)的電子密碼鎖的設(shè)計(jì)紅外模塊設(shè)計(jì)姓 名:劉寧學(xué) 號(hào):20078001091學(xué) 院:機(jī)電與信息工程學(xué)院專(zhuān) 業(yè):自動(dòng)化年 級(jí)2007級(jí)指導(dǎo)教師:洪曉英目 錄摘 要iabstracti一、 引 言- 1 -(一)課題背景- 1 -(二)設(shè)計(jì)目標(biāo)與意義- 1 -二、 系統(tǒng)總體方案設(shè)計(jì)- 2 -三、 紅外遙控簡(jiǎn)介- 2 -(一)紅外遙控發(fā)展簡(jiǎn)介- 2 -(二)紅外遙控編碼- 2 -四、 遙控模塊硬件設(shè)計(jì)- 4 -(一)遙控系統(tǒng)的構(gòu)成- 4 -(二)選用芯片介紹- 4 -1. 遙控編碼芯片lc7461- 4 -2.一體化紅外接收頭- 4 -(三)遙控模塊硬件設(shè)計(jì)-

2、5 -五、 紅外模塊軟件設(shè)計(jì)- 5 -(一)hs0038的解調(diào)- 5 -(二)解碼- 6 -(三)紅外解碼流程圖- 7 -六、 密碼鎖系統(tǒng)硬件設(shè)計(jì)- 8 -(一)電源輸入模塊- 8 -(二)振蕩電路- 8 -(三)復(fù)位電路- 8 -(四)密碼掉電存儲(chǔ)模塊- 9 -(五)鍵盤(pán)- 9 -(六)液晶顯示模塊- 10 -(七)聲光報(bào)警電路- 10 -(八)開(kāi)鎖電路- 10 -七、 系統(tǒng)軟件設(shè)計(jì)部分流程圖- 12 -(一)主程序流程圖- 12 -(二)密碼接收子程序流程圖- 13 -(三)開(kāi)鎖判斷子程序流程圖- 14 -(四)更改密碼判定子程序流程圖- 15 -八、 總結(jié)- 15 -參考文獻(xiàn)- 16 -

3、附錄一 總電路原理圖- 17 -附錄二 實(shí)物圖- 18 -附錄三 程序清單- 19 -謝 辭- 32 -摘 要隨著人們生活水平的提高,防盜意識(shí)也隨之增強(qiáng)。由于集成電路的發(fā)展,電子密碼鎖以其方便、安全系數(shù)高、密碼可變更性等優(yōu)點(diǎn),在我們的生活中得到越來(lái)越廣泛的應(yīng)用。本課題以單片機(jī)為主控單元,結(jié)合鍵盤(pán)、lcd顯示、at24c02存儲(chǔ)、遙控等外圍電路,使密碼鎖能夠在接受用戶(hù)設(shè)定的正確密碼時(shí)開(kāi)鎖,反之報(bào)警提示。用戶(hù)可隨時(shí)更改開(kāi)鎖密碼以提高安全性。設(shè)計(jì)中遙控功能更是應(yīng)用廣泛的人性化設(shè)計(jì)。電子密碼鎖簡(jiǎn)單實(shí)用,安全系數(shù)高,成本越來(lái)越低,具有很大市場(chǎng)前景。關(guān) 鍵 詞:?jiǎn)纹瑱C(jī) 密碼鎖 遙控abstractwith

4、 the development of our living standard, the sense of security is becoming stronger and stronger. as the development of ic, electronic combination lock is widely used in our life, because of its advantages such as convenience, high safety factor, the changeability of the passwords.in this design, si

5、ngle chip microcomputer (scm) is used as the main control unit. the design can unlock the door or make a warning, combined with the peripheral circuit, such as keyboard, lcd display, at24c02 (password memory), remote control module. in addition, users can change the password to improve the security

6、standard of the lock. whats more, the remote control is a design based on practicality and humanity.electronic combination lock has a bright market prospect, as its simplity, practicality and high security. keywords:scm combination lock remote control- 37 -一、 引 言(一)課題背景隨著科學(xué)技術(shù)發(fā)展與生活水平提高,人們的安全意識(shí)也越來(lái)越強(qiáng)。傳

7、統(tǒng)的機(jī)械鎖,人們?nèi)栽诖罅渴褂?,但是在安全性能要求較高的場(chǎng)合,傳統(tǒng)的機(jī)械鎖由于其成本高、制造難度大、安全系數(shù)低等缺點(diǎn),早已經(jīng)不能滿足需求。而傳統(tǒng)鎖,再牢固,也只是機(jī)械裝置,總有辦法將其破壞,還要面臨攜帶鑰匙的麻煩。在鑰匙丟失的情況下,則會(huì)出現(xiàn)安全漏洞。為了填補(bǔ)此漏洞,有時(shí)候甚至需要更換鎖頭,造成不便的同時(shí),還增加成本。由于電子技術(shù)與集成電路的迅速發(fā)展,各種新型電子產(chǎn)品誕生,而電子鎖則是產(chǎn)物之一。電子鎖有很多種類(lèi),目前比較實(shí)用的是按鍵式電子密碼鎖。其他電子鎖有指紋鎖,生物鎖,磁卡鎖,數(shù)碼鎖, ic卡鎖等。電子密碼鎖是由輸入密碼來(lái)控制電路或芯片工作,繼而控制機(jī)械開(kāi)關(guān)的閉合,完成開(kāi)鎖、閉鎖任務(wù)的電子產(chǎn)

8、品。它有很多的種類(lèi),有簡(jiǎn)易的邏輯電路產(chǎn)品,也有性?xún)r(jià)比較高的基于芯片的產(chǎn)品。后者是通過(guò)編程實(shí)現(xiàn)控制的,應(yīng)用較為廣泛,與機(jī)械鎖相比,性能與安全性都有了大幅提高。最近二三十年來(lái),紅外遙控技術(shù)在各個(gè)領(lǐng)域已得到廣泛的應(yīng)用,將其應(yīng)用到電子鎖領(lǐng)域,則形成了紅外控制開(kāi)啟的電子鎖。(二)設(shè)計(jì)目標(biāo)與意義本課題以at89s52單片機(jī)作為主控芯片,并設(shè)計(jì)合理的外圍電路,從而構(gòu)成電子密碼鎖系統(tǒng),并對(duì)主控芯片編程實(shí)現(xiàn)以下功能:1. 輸入正確密碼后開(kāi)鎖。用戶(hù)按開(kāi)鎖鍵進(jìn)入開(kāi)鎖模式,正確鍵入6位密碼,實(shí)現(xiàn)開(kāi)鎖。 2.用戶(hù)可隨時(shí)更改開(kāi)鎖密碼。用戶(hù)按set鍵,進(jìn)入密碼設(shè)置模式,可設(shè)置6位新密碼。但要求先正確輸入當(dāng)前密碼,然后輸入新

9、密碼,以防用戶(hù)誤操作,需再次輸入新密碼進(jìn)行確定。3.提示輸入密碼位數(shù)。本設(shè)計(jì)有l(wèi)cd顯示電路,當(dāng)用戶(hù)通過(guò)鍵盤(pán)或是遙控器輸入密碼時(shí),不顯示輸入具體數(shù)值,而是顯示“*”,如此即方便了用戶(hù)輸入,同時(shí)增加了保密性。4.防盜報(bào)警。當(dāng)用戶(hù)輸入錯(cuò)誤密碼時(shí),會(huì)提示輸入錯(cuò)誤。當(dāng)用戶(hù)連續(xù)3次輸入密碼錯(cuò)誤時(shí),會(huì)自動(dòng)聲光報(bào)警,以增加防盜安全系數(shù)。5.遙控功能。本功能實(shí)現(xiàn)一定距離的遙控操作開(kāi)鎖,在車(chē)庫(kù)倉(cāng)庫(kù)等應(yīng)用廣泛,用戶(hù)不需要下車(chē),只需遙控操作,鍵入正確密碼開(kāi)鎖。因此本功能是很人性化的擴(kuò)展功能。通過(guò)對(duì)電子密碼鎖構(gòu)成與系統(tǒng)組成的研究,學(xué)會(huì)控制系統(tǒng)的組成與單片機(jī)實(shí)際應(yīng)用。在方案選取中,體會(huì)生產(chǎn)中的成本控制。在本設(shè)計(jì)完成過(guò)程

10、中,還需要對(duì)紅外技術(shù)的進(jìn)行實(shí)際應(yīng)用。在整個(gè)設(shè)計(jì)完成中提高自己發(fā)現(xiàn)問(wèn)題、分析問(wèn)題、解決問(wèn)題的能力。二、 系統(tǒng)總體方案設(shè)計(jì)根據(jù)系統(tǒng)設(shè)計(jì)目標(biāo)要求,其系統(tǒng)框圖如圖2.1所示。紅外接收開(kāi)鎖電路報(bào)警電路lcd顯示at24c02密碼存儲(chǔ)鍵盤(pán)at89s52電源輸入復(fù)位電路振蕩電路圖2.1 密碼鎖系統(tǒng)框圖本人主要設(shè)計(jì)遙控模塊。三、 紅外遙控簡(jiǎn)介(一)紅外遙控發(fā)展簡(jiǎn)介1 紅外光又稱(chēng)紅外輻射或紅外線,是一種人眼不可見(jiàn)的光波,是由物質(zhì)內(nèi)部的分子、原子的運(yùn)動(dòng)所產(chǎn)生的電磁輻射,是電磁頻譜的一部分, 其波段介于可見(jiàn)光和微波波段之間(0.761000 微米)。一般按波長(zhǎng)把紅外光譜分成4個(gè)波段:近紅外(0.763 微米)、中紅

11、外(36 微米)、中遠(yuǎn)紅外(620 微米)和遠(yuǎn)紅外(201000 微米)。目前大量使用的遙控器波段在800940nm范圍。60 年代初,一些發(fā)達(dá)國(guó)家開(kāi)始研究民用產(chǎn)品的遙控技術(shù),但由于受當(dāng)時(shí)技術(shù)條件的限制,遙控技術(shù)發(fā)展很緩慢。70年代末,隨著大規(guī)模集成電路和計(jì)算機(jī)技術(shù)的發(fā)展,遙控技術(shù)才得到快速發(fā)展。在遙控方式上大體經(jīng)歷了從有線到無(wú)線的超聲波、從振動(dòng)子到紅外線、再到使用總線的微機(jī)紅外遙控這樣幾個(gè)階段。最初的無(wú)線遙控裝置采用的是電磁波傳輸信號(hào),由于電磁波容易產(chǎn)生干擾,也易受干擾,因此逐漸采用超聲波和紅外線媒介來(lái)傳輸信號(hào)。與紅外線相比,超聲傳感器頻帶窄,所能攜帶的信息量少,易受干擾而引起誤動(dòng)作。較為理

12、想的是光控方式,采用紅外線的遙控方式逐漸取代了超聲波遙控方式,出現(xiàn)了紅外線多功能遙控器,并且成為當(dāng)今時(shí)代的主流。紅外遙控技術(shù)是紅外技術(shù)、紅外通訊技術(shù)、遙控技術(shù)的結(jié)合。紅外線在頻譜上位于可見(jiàn)光之外,抗干擾性強(qiáng),具有光波的直線傳播特性,不易產(chǎn)生相互間的干擾,是很好的信息傳輸媒體。紅外遙控技術(shù)十年來(lái)得到了迅猛發(fā)展,在家電和其他電子領(lǐng)域都得到了廣泛應(yīng)用。(二)紅外遙控編碼2紅外發(fā)射電路的主要元件為紅外發(fā)光二極管。它實(shí)際上是一只特殊的發(fā)光二極管;由于其內(nèi)部材料不同于普通發(fā)光二極管,因而在其兩端施加一定電壓時(shí),它便發(fā)出的是紅外線而不是可見(jiàn)光。目前大量的使用的紅外發(fā)光二極管發(fā)出的紅外線波長(zhǎng)為940mm左右,

13、外形與普通5發(fā)光二極管相同。通常的紅外遙控器是將遙控信號(hào)(二進(jìn)制脈沖碼)調(diào)制在38khz的載波上,經(jīng)緩沖放大后送至紅外發(fā)光二極管,轉(zhuǎn)化為紅外信號(hào)發(fā)射出去的。二進(jìn)制脈沖碼的形式有多種,其中最為常用的是pwm碼(脈沖寬度調(diào)制碼)和ppm碼(脈沖位置調(diào)制碼,脈沖串之間的時(shí)間間隔來(lái)實(shí)現(xiàn)信號(hào)調(diào)制)。遙控編碼脈沖信號(hào)通常包括三大部分,即引導(dǎo)碼(起始碼)、系統(tǒng)碼(即識(shí)別碼,用戶(hù)碼或設(shè)備碼)和功能碼(鍵位數(shù)據(jù)碼)。各組成部分與結(jié)構(gòu)情況簡(jiǎn)介如下。1.引導(dǎo)碼,也稱(chēng)引導(dǎo)脈沖,一般由高電平1和低電平0的脈沖組成,二者的寬度之比可為1:1,占9ms時(shí)間,也可為2:1,占13.5ms(寬度為9ms的高電平和寬度為4.5m

14、s的低電平組成),也可能有其他組成情況。引導(dǎo)碼的主要作用類(lèi)似于穿行通信中的同步脈沖,用來(lái)標(biāo)志遙控編碼脈沖信號(hào)的開(kāi)始,使遙控接收器能由此判斷出所接收的信號(hào)是干擾還是系統(tǒng)的遙控代碼。2.系統(tǒng)碼,也稱(chēng)用戶(hù)碼、識(shí)別碼、設(shè)備碼,通常由8位原碼和8位反碼組成。它用來(lái)指示遙控系統(tǒng)的種類(lèi),以區(qū)別其它遙控系統(tǒng),防止各遙控系統(tǒng)的誤動(dòng)作。這種碼是由生產(chǎn)廠商自行規(guī)定的,各廠均有不同,出廠時(shí)已經(jīng)設(shè)置好,用戶(hù)難以更改。這是不同遙控器不能通用的主要原因。3. 功能碼,也稱(chēng)鍵位數(shù)據(jù)碼。它與鍵盤(pán)的鍵位相對(duì)應(yīng),由它傳送所需要的遙控信息。功能碼通常也是由8位原碼和8位反碼組成。反碼的加入是為了能在接收端校對(duì)傳輸過(guò)程中是否產(chǎn)生差錯(cuò)。

15、下面以lc7461編碼芯片為例介紹一下紅外遙控的編碼方式lc7461是采用pwm調(diào)制的串行二進(jìn)制碼,所發(fā)送的一幀數(shù)據(jù)中含42位碼,包含一引導(dǎo)碼、13位用戶(hù)碼和 8位數(shù)據(jù)碼以及它們的反碼。這樣很大程度上減少了誤碼率。發(fā)射碼的格式如圖3.1所示:圖3.1 lc7461編碼格式圖3.2“1”和“0”的區(qū)分取決與脈沖之間的時(shí)間:以脈寬為0.565ms、間隔0.56ms、周期為1.125ms的組合表示二進(jìn)制的“0”;以脈寬為0.565ms、間隔1.685ms、周期為2.25ms的組合表示二進(jìn)制的“1”。如下圖所示(圖中tm=0.56ms)圖3.3 四、 遙控模塊硬件設(shè)計(jì)(一)遙控系統(tǒng)的構(gòu)成遙控系統(tǒng)主要由

16、紅外遙控發(fā)射裝置、接收裝置、微處理機(jī)等組成,見(jiàn)圖4.1.圖4.1 遙控系統(tǒng)框圖(二)選用芯片介紹1. 遙控編碼芯片lc74613lc7461是由sanyo公司生產(chǎn)能的遙控專(zhuān)用編碼芯片。osco和oscl之間接諧振器。由ko0ko7,ki0ki3構(gòu)成鍵盤(pán)的行與列。out引腳輸出紅外發(fā)射管控制信號(hào)。圖4.2當(dāng)發(fā)射機(jī)沒(méi)有按鍵按下時(shí),7461不工作,其out輸出腳為低電平;當(dāng)有按按下時(shí),7461得電工作,其out輸出腳輸出經(jīng)調(diào)制38khz的串行數(shù)據(jù)信號(hào),并通過(guò)發(fā)射電路送出紅外信號(hào) 。7461產(chǎn)生的遙控編碼是連續(xù)的42位二進(jìn)制碼組,其中前26位為用戶(hù)識(shí)別利,能區(qū)別不同的紅外遙控設(shè)備,防止不同機(jī)種遙控碼互

17、相干擾。后16位為8位的操作碼和8位的操作反碼用于核對(duì)數(shù)據(jù)是否接收準(zhǔn)確。當(dāng)遙控器上任意一個(gè)按鍵按下超過(guò)36ms時(shí),lc7461芯片的振蕩器使芯片激活,將發(fā)射一個(gè)特定的同步碼,對(duì)于接收端而言就是一個(gè)9ms的低電平和一個(gè)45ms的高電平,使程序知道從這個(gè)同步碼之后可以開(kāi)始接收數(shù)據(jù)。2.一體化紅外接收頭hs0038接收紅外信號(hào)頻率為38 khz,周期約26 s,同時(shí)將遙控信號(hào)的接收、放大、檢波、整形集于一身,是紅外接收電路一體化的紅外接收裝置。并能與ttl、coms 電路兼容,大大簡(jiǎn)化了接收電路的復(fù)雜程度和電路的設(shè)計(jì)工作。圖4.3hs0038 為黑色環(huán)氧樹(shù)脂封裝,不受日光、熒光燈等光源干擾,內(nèi)附磁屏

18、蔽,功耗低,靈敏度高。在用小功率發(fā)射管發(fā)射信號(hào)情況下,其接收距離可達(dá)35m。hs0038 為直立側(cè)面收光型,三個(gè)管腳分別是地、5 v 電源、解調(diào)信號(hào)輸出端。(三)遙控模塊硬件設(shè)計(jì)1. 遙控器硬件電路圖4.4 遙控器電路圖當(dāng)鍵盤(pán)有鍵按下時(shí),編碼芯片激活,發(fā)送相應(yīng)紅外編碼信號(hào)。2.接收電路圖4.5 紅外接收電路圖由遙控器發(fā)送的紅外信號(hào),經(jīng)過(guò)紅外一體化接收頭接收、放大、解調(diào)之后,將信號(hào)送到單片機(jī)p3.2引腳。五、 紅外模塊軟件設(shè)計(jì)(一)hs0038的解調(diào)紅外一體化接收頭hs0038將接收到的紅外信號(hào)放大、解調(diào)才送給單片機(jī)的。接收頭接收到的是38khz的串行脈沖信號(hào),經(jīng)過(guò)解調(diào)之后轉(zhuǎn)換成ttl電平。接收

19、頭的解調(diào)可簡(jiǎn)單理解為:在輸入脈沖串時(shí)輸出低電平,否則輸出高電平。一體化紅外接收頭解調(diào)前后的信號(hào)對(duì)比見(jiàn)下圖5.1. 可見(jiàn)解調(diào)后信號(hào)與編碼信號(hào)反相。表示“1”表示“0”紅外接收頭解調(diào)后的波形紅外接收頭接收到的波形圖5.1可知當(dāng)按鍵按下后,經(jīng)過(guò)hs0038解調(diào)輸出的一幀信號(hào)則如下圖5.2所示8位鍵數(shù)據(jù)碼反碼13.5ms引導(dǎo)碼9ms4.5ms13位用戶(hù)碼8位鍵數(shù)據(jù)碼13位用戶(hù)碼反碼圖5.2(二)解碼7461產(chǎn)生的遙控編碼是連續(xù)的42位二進(jìn)制碼組,其中前26位為用戶(hù)識(shí)別碼,能區(qū)別不同的紅外遙控設(shè)備,防止不同機(jī)種遙控碼互相干擾。后16位為8位的操作碼和8位的操作反碼用于核對(duì)數(shù)據(jù)是否接收準(zhǔn)確。單片機(jī)解碼是根

20、據(jù)一體化紅外接收頭的解調(diào)信號(hào)進(jìn)行的,從上面的分析可知:任意按鍵按下后,都有9ms的低電平起始碼和4.5ms的高電平結(jié)果碼作為引導(dǎo)信號(hào),因此應(yīng)該在引導(dǎo)碼之后才能進(jìn)行解碼。如何識(shí)別“0”和“1” 是解碼的關(guān)鍵。根據(jù)位定義:“0”、“1”均以0.56ms的低電平作為起始,兩者區(qū)別在于高電平的寬度不同,即“0”高電平為0.56ms,“1”高電平為1.68ms,因此解碼時(shí)須根據(jù)高電平的寬度來(lái)區(qū)別“0”和“1”。若從0.56ms低電平過(guò)后,開(kāi)始延時(shí),0.56ms之后,檢測(cè)到的為低電平,則該位為“0”,反之則為“1”。為了保證解碼的可靠性,高電平檢測(cè)延時(shí)應(yīng)該在0.56ms 1.12ms之間,否則如果該位為“

21、0”,讀到的已是下一位的高電平,因此?。?.12ms+0.56ms)/2=0.84ms最為可靠,一般取0.84ms左右即可。(三)紅外解碼流程圖int010次882us檢測(cè)有無(wú)高電平跳動(dòng)?等待4.5ms高電平y(tǒng)n延時(shí)4.74ms避開(kāi)4.5ms結(jié)果碼避開(kāi)前26位系統(tǒng)識(shí)別碼暫存8位操作碼暫存8位操作反碼操作碼與操作反碼互為反碼?n解碼成功操作碼賦予變量yreti圖5.3 紅外解碼流程圖六、 密碼鎖系統(tǒng)硬件設(shè)計(jì)圖6.1 電源電路(一)電源輸入模塊該電路將220v、50hz交流電轉(zhuǎn)換得到5v直流電,為整個(gè)密碼鎖系統(tǒng)提供電源。如上圖所示,220v交流電經(jīng)過(guò)變壓器后得到12v交流電,再經(jīng)過(guò)橋式整流電路,得

22、到直流電。但此時(shí)直流量含有較大交流分量,再經(jīng)過(guò)低通濾波電路,使電壓平滑。最后經(jīng)過(guò)7805穩(wěn)壓芯片,輸出供電,且輸出直流電壓不受電網(wǎng)電壓波動(dòng)與負(fù)載變化影響,有足夠穩(wěn)定性。(二)振蕩電路圖6.2 振蕩電路c51系列單片機(jī)工作頻率不大于30mhz,c1、c2起穩(wěn)定振蕩頻率、快速起振的作用,一般取值為1030pf。此處由22pf電容c1、c2與振蕩頻率為12mhz晶振構(gòu)成晶振電路,為單片機(jī)提供振蕩時(shí)鐘脈沖。(三)復(fù)位電路圖6.3 復(fù)位電路此復(fù)位電路采用手動(dòng)按鍵式復(fù)位。能夠上電自動(dòng)復(fù)位。當(dāng)程序出錯(cuò)或系統(tǒng)處于死循環(huán)時(shí),也可以通過(guò)按鍵手動(dòng)復(fù)位。當(dāng)按鍵按下時(shí),rst輸出高電平,供單片機(jī)復(fù)位,當(dāng)按鍵松開(kāi)時(shí),rs

23、t為低電平。r1用于限制按鍵按下瞬間c3放電電流,避免火花。為完成復(fù)位操作,應(yīng)使復(fù)位高電平大于2個(gè)機(jī)器周期。(四)密碼掉電存儲(chǔ)模塊圖6.4 密碼存儲(chǔ)at24c02是美國(guó)atmel公司的低功耗cmos型e2prom,內(nèi)含2568位存儲(chǔ)空間。該芯片采用了i2c總線式進(jìn)行數(shù)據(jù)讀寫(xiě)的串行器件,占用很少的資源和io線,并且支持在線編程,進(jìn)行數(shù)據(jù)實(shí)時(shí)的存取十分方便。串行時(shí)鐘由單片機(jī)p3.6引腳提供,通過(guò)p3.7引腳對(duì)at24c02進(jìn)行在線讀寫(xiě)。由于該芯片數(shù)據(jù)掉電不丟失,故用于存放開(kāi)鎖密碼。當(dāng)需要開(kāi)鎖和設(shè)置新密碼時(shí),均需讀取at24c02中的密碼;設(shè)置新密碼后,在線寫(xiě)at24c02,覆蓋原密碼。(五)鍵盤(pán)圖

24、6.5 鍵盤(pán)本設(shè)計(jì)采用44矩陣式鍵盤(pán),將鍵盤(pán)接單片機(jī)p1口。當(dāng)按鍵較多時(shí),與獨(dú)立式鍵盤(pán)相比,矩陣式鍵盤(pán)可節(jié)約i/o口。16個(gè)按鍵,包含09的數(shù)字鍵之外,還有比如del、重置、取消等功能鍵。按鍵值的獲得,是采用行掃描法。鍵盤(pán)掃描時(shí),首先由p1口低四位輸出高低電平,高四位輸出高電平,假若有鍵按下,那么在p1口低高位即可讀出低電平,接著延時(shí)消抖,再逐行送低電平,判斷是何鍵按下,從而獲得鍵值。(六)液晶顯示模塊圖6.6 液晶顯示本系統(tǒng)采用lcd1602液晶顯示,可顯示162個(gè)字符。液晶顯示控制端口分別是rs接p2.0,rw接p2.1,e接p2.2。數(shù)據(jù)口d0d7接p0口(p0口作i/o口需接上拉電阻)

25、,采用8位數(shù)據(jù)線方式。當(dāng)無(wú)操作時(shí)候,顯示“*welcome*”字樣;當(dāng)選擇開(kāi)鎖模式時(shí),會(huì)顯示“unlock operation”,并提示輸入密碼,每輸入以為密碼則顯示一個(gè)“*”;當(dāng)選擇更改密碼模式時(shí),會(huì)顯示“set code mode”,也會(huì)提示輸入舊密碼與新密碼;密碼正確會(huì)顯示“right”;密碼錯(cuò)誤則會(huì)顯示“wrong”。(七)聲光報(bào)警電路圖6.7聲光報(bào)警聲光報(bào)警有紅色發(fā)光二極管d1與蜂鳴器組成,分別由p2.3與p2.6引腳控制,低電平有效。當(dāng)輸入密碼錯(cuò)誤時(shí),在lcd顯示“wrong”的同時(shí),紅色發(fā)光二極管閃爍兩次,同時(shí)伴隨滴滴的提示音。(八)開(kāi)鎖電路圖6.8 開(kāi)鎖電路開(kāi)鎖電路由三極管、繼

26、電器、綠色發(fā)光二極管(代替鎖頭)組成,由p2.7引腳控制,低電平有效。按下鍵盤(pán)開(kāi)鎖鍵進(jìn)入開(kāi)鎖模式,正確輸入6位密碼,按下ok鍵之后,單片機(jī)對(duì)輸入密碼與設(shè)定密碼進(jìn)行對(duì)比,對(duì)比正確,則p27發(fā)出低電平,使三極管q3 導(dǎo)通,從而使得繼電器rl吸合,并由繼電器控制使得門(mén)禁得電打開(kāi)。此設(shè)計(jì)為了便于觀察結(jié)果,用綠色led代替鎖頭,若是有開(kāi)鎖動(dòng)作,則綠色led燈亮。七、 系統(tǒng)軟件設(shè)計(jì)部分流程圖(一)主程序流程圖主程序初始化開(kāi)鎖模式有鍵按下?開(kāi)鎖鍵?set鍵?修改密碼模式顯示歡迎信息nynyyn圖7.1 主程序流程圖(二)密碼接收子程序流程圖 在輸入密碼過(guò)程中,可以重置、刪除、取消。當(dāng)完成輸入時(shí),按下ok鍵退

27、出該程序。若正確接收6位密碼,則輸入密碼存于數(shù)組中,且返回值為1。若取消操作,返回值為0。密碼接收子程序密碼位數(shù)計(jì)數(shù)器i置零獲取鍵值delete鍵?reset鍵?cancel鍵?按鍵為09&i6?計(jì)數(shù)器加1 存儲(chǔ)鍵值i=6&ok鍵?return 1return 0計(jì)數(shù)器減1 圖7.2密碼接收子程序流程圖nyynynnyyn(三)開(kāi)鎖判斷子程序流程圖 該程序?qū)⑤斎朊艽a進(jìn)行對(duì)比。若密碼正確,則返回值為1,表明應(yīng)該進(jìn)行開(kāi)鎖動(dòng)作。密碼錯(cuò)誤,返回值為0,不進(jìn)行開(kāi)鎖。有取消動(dòng)作,則返回3,不進(jìn)行密碼對(duì)比。開(kāi)鎖判定子程序密碼接收子程序函數(shù)值為0?密碼正確?對(duì)6位密碼對(duì)比連續(xù)錯(cuò)誤3次?return 3報(bào)警re

28、turn 1return 0nyynyn圖7.3 開(kāi)鎖判定子程序流程圖(四)更改密碼判定子程序流程圖 改程序要求先輸入當(dāng)前密碼,當(dāng)前密碼正確后,連續(xù)兩次輸入新密碼,兩次輸入相同時(shí),返回1,表明應(yīng)該寫(xiě)at24c02。否則返回0,表明修改密碼失敗,不對(duì)at24c02。即是否擦寫(xiě)at24c02要根據(jù)此程序返回值而定。更改密碼判定輸入當(dāng)前密碼密碼正確?輸入新密碼再輸入新密碼兩次輸入相同?return 1return 0nyyn連續(xù)3次錯(cuò)?報(bào)警圖7.4更改密碼判定子程序流程圖ny八、 總結(jié) 本設(shè)計(jì)采用at89s52單片機(jī)作為主控芯片,結(jié)合相應(yīng)的外圍電路,構(gòu)成電子密碼鎖系統(tǒng)。該電子密碼鎖,開(kāi)發(fā)簡(jiǎn)單、安全性

29、高、成本低,適合辦公室、住宅小區(qū)、實(shí)驗(yàn)室、檔案室等場(chǎng)所,其遙控功能更適合應(yīng)用在車(chē)庫(kù)倉(cāng)庫(kù)的安全防盜。在設(shè)計(jì)完成過(guò)程中,先進(jìn)行proteus軟件仿真,最后進(jìn)行實(shí)物調(diào)試,最終達(dá)到了預(yù)期的設(shè)計(jì)目標(biāo),但ups供電還有待解決。電子密碼鎖安全性能較高,具有較好的市場(chǎng)前景。參考文獻(xiàn)1吳媛媛,葉茂森. 紅外遙控技術(shù)淺析j. 廣西輕工業(yè),2009,(01):72-732郭凱杰.智能家居人性化設(shè)計(jì)d.同濟(jì)大學(xué)電子與信息工程學(xué)院,20083 李偉,閆君杰.紅外遙控器系統(tǒng)的設(shè)計(jì)研究j.河南機(jī)電高等專(zhuān)科學(xué)校學(xué)報(bào),2009,1:11-134曹立軍.單片機(jī)原理及其應(yīng)用m.西安:西安電子科技大學(xué)出版社,20095紀(jì)宗南.紅外遙

30、控發(fā)射的原理及其應(yīng)用j.國(guó)外電子元件,1999,106李明喜.新型電子密碼鎖的設(shè)計(jì)j.機(jī)電產(chǎn)品開(kāi)發(fā)與創(chuàng)新,2004,(8):77-797陳春燕.單片機(jī)紅外遙控密碼鎖j.電子制作,2002,12:27-308董繼成.一種新型安全的單片機(jī)密碼鎖j.電子技術(shù),2004,(3):55-609何麗輝,戴峻峰.紅外遙控智能密碼鎖設(shè)計(jì)j.世界電子元器件, 2002,08:3710金月,陳安民,胡志杰.國(guó)產(chǎn)彩電遙控器系統(tǒng)電路、元器件、維修m.北京:科學(xué)普及出版社,199211趙春紅,楊勇.基于單片機(jī)和無(wú)線電技術(shù)的密碼鎖設(shè)計(jì)j.西北工業(yè)大學(xué)學(xué)報(bào),2005,9:9-1212 葉啟明.單片機(jī)制作的新型安全密碼鎖j.

31、家庭電子,2000,(6):24-27附錄一總電路原理圖附錄二 實(shí)物圖附錄三 程序清單/* * * 對(duì)24c02的讀、寫(xiě)* * at24c02drvier.c* */#include #definewritedeviceaddress 0xa0#definereaddviceaddress 0xa1 extern void delayms(int);sbitscl=p36;sbitsda=p37;void start() sda=1;scl=1;sda=0;scl=0;void stop() scl=0;sda=0;scl=1;sda=1;void ack() sda=0;scl=1;scl=

32、0;sda=1;void noack() sda=1;scl=1;scl=0;bit testack() bit errorbit;sda=1;scl=1;errorbit=sda;scl=0;return(errorbit);void write8bit( char input) unsigned char temp;for(temp=8;temp!=0;temp-) sda=(bit)(input&0x80);scl=1;scl=0;input=input1;extern void write24c02( char *wdata,unsigned char romaddress,unsig

33、ned char number) start();write8bit(writedeviceaddress);testack();write8bit(romaddress);testack();for(;number!=0;number-) write8bit(*wdata);testack();wdata+;stop();delayms(1);unsigned char read8bit() unsigned char temp,rbyte=0;for(temp=8;temp!=0;temp-) scl=1;rbyte=rbyte1;rbyte=rbyte|(unsigned char)(s

34、da);scl=0;return(rbyte);extern void read24c02( char *ramaddress,unsigned char romaddress,unsigned char bytes) start();write8bit(writedeviceaddress);testack();write8bit(romaddress);testack();start();write8bit(readdviceaddress);testack();while(bytes!=1) *ramaddress=read8bit();ack();ramaddress+;bytes-;

35、*ramaddress=read8bit();noack();stop();/* * lcd1602驅(qū)動(dòng) *lcddriver.c */#include #include #include #include #define uchar unsigned char#define uint unsigned int#define busy 0x80 /lcd忙檢測(cè)標(biāo)志#define dataport p0 /定義p0口為lcd通訊端口sbit light=p13;sbit lcm_rs=p20; /數(shù)據(jù)/命令端sbit lcm_rw=p21; /讀/寫(xiě)選擇端sbit lcm_en=p22;void

36、 delay_lcm(uint); /lcd延時(shí)子程序void lcd_wait(void); /lcd檢測(cè)忙子程序void writecommandlcm(uchar wclcm,uchar busyc); /寫(xiě)指令到icm子函數(shù)void writedatalcm(uchar wdlcm); /寫(xiě)數(shù)據(jù)到lcm子函數(shù)void displayonechar(uchar x,uchar y,uchar ddata); /顯示指定坐標(biāo)的一個(gè)字符子函數(shù)void initlcm( void); /lcd初始化子程序void displaylistchar(uchar x,uchar y, unsigne

37、d char *ddata); /顯示指定坐標(biāo)的一串字符子函數(shù)/*延時(shí)k*1ms,12.000mhz*/void delay_lcm(uint k) uint i,j; for(i=0;ik;i+) for(j=0;j0)mx+=0x40; /若y為1(顯示第二行),地址碼+0x40 mx+=0x80; /指令碼為地址碼+0x80 writecommandlcm(mx,0); writedatalcm(ddata);/*顯示指定坐標(biāo)的一串字符子函數(shù)*/void displaylistchar(uchar x,uchar y, unsigned char *ddata) uchar i=0,n;

38、 y&=0x01; x&=0x0f;n=strlen(ddata); while(in) displayonechar(x,y,ddatai); i+; x+; /* * * * 主程序 * * * */#include #include stdio.h#include stdlib.h#include string.h#include /循環(huán)右移的函數(shù)頭文件#define uchar unsigned char#define uint unsigned intsbit buzzer=p26;/p2_6蜂鳴器,低電平有效sbit lock=p27;/p2_7開(kāi)鎖,低電平有效sbit warni

39、ng=p23; /p2_3報(bào)警,低電平有效sbit red=p32; /紅外接收管的數(shù)據(jù)輸出端接單片機(jī)的p3.2,低電平有效static char wrong_count=0; /wrong輸入密碼次數(shù)計(jì)數(shù)器 extern void initlcm( void); /lcd初始化子程序extern void displaylistchar(uchar x,uchar y, unsigned char *ddata); /顯示指定坐標(biāo)的一串字符子函數(shù)extern void read24c02(unsigned char *ramaddress,unsigned char romaddress,u

40、nsigned char bytes); /at24c02驅(qū)動(dòng)extern void write24c02(unsigned char *ramaddress,unsigned char romaddress,unsigned char bytes);unsigned char _cror_( /字節(jié)的多次循環(huán)右移unsigned char ,/需要循環(huán)右移的變量unsigned char ); /移動(dòng)位數(shù) uchar key_val;/*延時(shí)ms函數(shù)*/externvoid delayms( int k) unsigned int i,j ; for(i=1000;i0;i-) for(j=

41、k;j0;j-) ;/*紅外中斷解碼程序*/voiddelay(intn)/(16*n+24)us inti; for(i=0;in;i+); getredcode()interrupt 0 bitbitstate;/紅外接收管高低電平狀態(tài) 暫存 uchar s; uchar code=0;/操作碼 uchar _code=0;/操作反碼 ex0=0;/暫時(shí)關(guān)中斷 for(s=0;s10;s+)/重復(fù)10次,檢測(cè)8.882ms內(nèi)如果出現(xiàn)高電平則退出解碼,因?yàn)橛锌赡懿恍⌒陌聪铝税存I或者由外部干擾。 delay(54);/延時(shí)882us if(red=1)/只要出現(xiàn)高電平就退出解碼 ex0=1;

42、return; while(red=0);/等待高電平,避開(kāi)9ms低電平的引導(dǎo)脈沖 delay(295);/延時(shí)4.74ms避開(kāi)4.5ms的引導(dǎo)高電平 for(s=0;s16;s+)/忽略前26位的系統(tǒng)識(shí)別碼 while(red=0);/等待地址碼第一位的高電平 delay(54);/高電平開(kāi)始后用882us的時(shí)間尺去判斷信號(hào)此時(shí)的高低電平 if(red) 如果為高電平 delay(61); /檢測(cè)到高電平,延時(shí)1ms等待脈沖高電平結(jié)束 for(s=0;s16;s+) while(red=0);/等待地址碼第一位的高電平 delay(54);/高電平開(kāi)始后用882微秒的時(shí)間尺去判斷信號(hào)的高低狀

43、態(tài) bitstate=red; if(red) delay(61);/檢測(cè)到高電平,延時(shí)1ms等待脈沖高電平結(jié)束 if(s8)/得到操作碼 code=code|bitstate; code=_cror_(code,1); else/得到反操作碼 _code=_code|bitstate; _code=_cror_(_code,1); if(code=(_code)/比對(duì)操作碼和反操作碼,檢測(cè)數(shù)據(jù)傳輸中是否出錯(cuò)key_val= code; /數(shù)據(jù)傳輸無(wú)錯(cuò)誤,返回得到的信息ex0=1;/*鍵盤(pán)掃描程序獲得鍵值*/uchar key_scan() key_val=0xff; p1=0xf0;低四位送低電平,高四位送高電平 while(key_val=0xff&p1_4&p1_5&p1_6&p1_7) p1=0xf0; if( key_val!=0xff) return key_val; p1=0xfe; if(!p1_4)key_val= 0x00; if(!p1_5)key_val= 0x01; if(!p1_6)key_val= 0x02; if(!p1_7)key_val= 0x03; p1=0xfd; if(!p

溫馨提示

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

評(píng)論

0/150

提交評(píng)論