




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、畢業(yè)設(shè)計(論文)設(shè)計(論文)題目基于單片機的電子密碼鎖的設(shè)計紅外模塊設(shè)計姓 名:劉寧學(xué) 號:20078001091學(xué) 院:機電與信息工程學(xué)院專 業(yè):自動化年 級2007級指導(dǎo)教師:洪曉英目 錄摘 要iabstracti一、 引 言- 1 -(一)課題背景- 1 -(二)設(shè)計目標與意義- 1 -二、 系統(tǒng)總體方案設(shè)計- 2 -三、 紅外遙控簡介- 2 -(一)紅外遙控發(fā)展簡介- 2 -(二)紅外遙控編碼- 2 -四、 遙控模塊硬件設(shè)計- 4 -(一)遙控系統(tǒng)的構(gòu)成- 4 -(二)選用芯片介紹- 4 -1. 遙控編碼芯片lc7461- 4 -2.一體化紅外接收頭- 4 -(三)遙控模塊硬件設(shè)計-
2、5 -五、 紅外模塊軟件設(shè)計- 5 -(一)hs0038的解調(diào)- 5 -(二)解碼- 6 -(三)紅外解碼流程圖- 7 -六、 密碼鎖系統(tǒng)硬件設(shè)計- 8 -(一)電源輸入模塊- 8 -(二)振蕩電路- 8 -(三)復(fù)位電路- 8 -(四)密碼掉電存儲模塊- 9 -(五)鍵盤- 9 -(六)液晶顯示模塊- 10 -(七)聲光報警電路- 10 -(八)開鎖電路- 10 -七、 系統(tǒng)軟件設(shè)計部分流程圖- 12 -(一)主程序流程圖- 12 -(二)密碼接收子程序流程圖- 13 -(三)開鎖判斷子程序流程圖- 14 -(四)更改密碼判定子程序流程圖- 15 -八、 總結(jié)- 15 -參考文獻- 16 -
3、附錄一 總電路原理圖- 17 -附錄二 實物圖- 18 -附錄三 程序清單- 19 -謝 辭- 32 -摘 要隨著人們生活水平的提高,防盜意識也隨之增強。由于集成電路的發(fā)展,電子密碼鎖以其方便、安全系數(shù)高、密碼可變更性等優(yōu)點,在我們的生活中得到越來越廣泛的應(yīng)用。本課題以單片機為主控單元,結(jié)合鍵盤、lcd顯示、at24c02存儲、遙控等外圍電路,使密碼鎖能夠在接受用戶設(shè)定的正確密碼時開鎖,反之報警提示。用戶可隨時更改開鎖密碼以提高安全性。設(shè)計中遙控功能更是應(yīng)用廣泛的人性化設(shè)計。電子密碼鎖簡單實用,安全系數(shù)高,成本越來越低,具有很大市場前景。關(guān) 鍵 詞:單片機 密碼鎖 遙控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ā)展與生活水平提高,人們的安全意識也越來越強。傳
7、統(tǒng)的機械鎖,人們?nèi)栽诖罅渴褂?,但是在安全性能要求較高的場合,傳統(tǒng)的機械鎖由于其成本高、制造難度大、安全系數(shù)低等缺點,早已經(jīng)不能滿足需求。而傳統(tǒng)鎖,再牢固,也只是機械裝置,總有辦法將其破壞,還要面臨攜帶鑰匙的麻煩。在鑰匙丟失的情況下,則會出現(xiàn)安全漏洞。為了填補此漏洞,有時候甚至需要更換鎖頭,造成不便的同時,還增加成本。由于電子技術(shù)與集成電路的迅速發(fā)展,各種新型電子產(chǎn)品誕生,而電子鎖則是產(chǎn)物之一。電子鎖有很多種類,目前比較實用的是按鍵式電子密碼鎖。其他電子鎖有指紋鎖,生物鎖,磁卡鎖,數(shù)碼鎖, ic卡鎖等。電子密碼鎖是由輸入密碼來控制電路或芯片工作,繼而控制機械開關(guān)的閉合,完成開鎖、閉鎖任務(wù)的電子產(chǎn)
8、品。它有很多的種類,有簡易的邏輯電路產(chǎn)品,也有性價比較高的基于芯片的產(chǎn)品。后者是通過編程實現(xiàn)控制的,應(yīng)用較為廣泛,與機械鎖相比,性能與安全性都有了大幅提高。最近二三十年來,紅外遙控技術(shù)在各個領(lǐng)域已得到廣泛的應(yīng)用,將其應(yīng)用到電子鎖領(lǐng)域,則形成了紅外控制開啟的電子鎖。(二)設(shè)計目標與意義本課題以at89s52單片機作為主控芯片,并設(shè)計合理的外圍電路,從而構(gòu)成電子密碼鎖系統(tǒng),并對主控芯片編程實現(xiàn)以下功能:1. 輸入正確密碼后開鎖。用戶按開鎖鍵進入開鎖模式,正確鍵入6位密碼,實現(xiàn)開鎖。 2.用戶可隨時更改開鎖密碼。用戶按set鍵,進入密碼設(shè)置模式,可設(shè)置6位新密碼。但要求先正確輸入當(dāng)前密碼,然后輸入新
9、密碼,以防用戶誤操作,需再次輸入新密碼進行確定。3.提示輸入密碼位數(shù)。本設(shè)計有l(wèi)cd顯示電路,當(dāng)用戶通過鍵盤或是遙控器輸入密碼時,不顯示輸入具體數(shù)值,而是顯示“*”,如此即方便了用戶輸入,同時增加了保密性。4.防盜報警。當(dāng)用戶輸入錯誤密碼時,會提示輸入錯誤。當(dāng)用戶連續(xù)3次輸入密碼錯誤時,會自動聲光報警,以增加防盜安全系數(shù)。5.遙控功能。本功能實現(xiàn)一定距離的遙控操作開鎖,在車庫倉庫等應(yīng)用廣泛,用戶不需要下車,只需遙控操作,鍵入正確密碼開鎖。因此本功能是很人性化的擴展功能。通過對電子密碼鎖構(gòu)成與系統(tǒng)組成的研究,學(xué)會控制系統(tǒng)的組成與單片機實際應(yīng)用。在方案選取中,體會生產(chǎn)中的成本控制。在本設(shè)計完成過程
10、中,還需要對紅外技術(shù)的進行實際應(yīng)用。在整個設(shè)計完成中提高自己發(fā)現(xiàn)問題、分析問題、解決問題的能力。二、 系統(tǒng)總體方案設(shè)計根據(jù)系統(tǒng)設(shè)計目標要求,其系統(tǒng)框圖如圖2.1所示。紅外接收開鎖電路報警電路lcd顯示at24c02密碼存儲鍵盤at89s52電源輸入復(fù)位電路振蕩電路圖2.1 密碼鎖系統(tǒng)框圖本人主要設(shè)計遙控模塊。三、 紅外遙控簡介(一)紅外遙控發(fā)展簡介1 紅外光又稱紅外輻射或紅外線,是一種人眼不可見的光波,是由物質(zhì)內(nèi)部的分子、原子的運動所產(chǎn)生的電磁輻射,是電磁頻譜的一部分, 其波段介于可見光和微波波段之間(0.761000 微米)。一般按波長把紅外光譜分成4個波段:近紅外(0.763 微米)、中紅
11、外(36 微米)、中遠紅外(620 微米)和遠紅外(201000 微米)。目前大量使用的遙控器波段在800940nm范圍。60 年代初,一些發(fā)達國家開始研究民用產(chǎn)品的遙控技術(shù),但由于受當(dāng)時技術(shù)條件的限制,遙控技術(shù)發(fā)展很緩慢。70年代末,隨著大規(guī)模集成電路和計算機技術(shù)的發(fā)展,遙控技術(shù)才得到快速發(fā)展。在遙控方式上大體經(jīng)歷了從有線到無線的超聲波、從振動子到紅外線、再到使用總線的微機紅外遙控這樣幾個階段。最初的無線遙控裝置采用的是電磁波傳輸信號,由于電磁波容易產(chǎn)生干擾,也易受干擾,因此逐漸采用超聲波和紅外線媒介來傳輸信號。與紅外線相比,超聲傳感器頻帶窄,所能攜帶的信息量少,易受干擾而引起誤動作。較為理
12、想的是光控方式,采用紅外線的遙控方式逐漸取代了超聲波遙控方式,出現(xiàn)了紅外線多功能遙控器,并且成為當(dāng)今時代的主流。紅外遙控技術(shù)是紅外技術(shù)、紅外通訊技術(shù)、遙控技術(shù)的結(jié)合。紅外線在頻譜上位于可見光之外,抗干擾性強,具有光波的直線傳播特性,不易產(chǎn)生相互間的干擾,是很好的信息傳輸媒體。紅外遙控技術(shù)十年來得到了迅猛發(fā)展,在家電和其他電子領(lǐng)域都得到了廣泛應(yīng)用。(二)紅外遙控編碼2紅外發(fā)射電路的主要元件為紅外發(fā)光二極管。它實際上是一只特殊的發(fā)光二極管;由于其內(nèi)部材料不同于普通發(fā)光二極管,因而在其兩端施加一定電壓時,它便發(fā)出的是紅外線而不是可見光。目前大量的使用的紅外發(fā)光二極管發(fā)出的紅外線波長為940mm左右,
13、外形與普通5發(fā)光二極管相同。通常的紅外遙控器是將遙控信號(二進制脈沖碼)調(diào)制在38khz的載波上,經(jīng)緩沖放大后送至紅外發(fā)光二極管,轉(zhuǎn)化為紅外信號發(fā)射出去的。二進制脈沖碼的形式有多種,其中最為常用的是pwm碼(脈沖寬度調(diào)制碼)和ppm碼(脈沖位置調(diào)制碼,脈沖串之間的時間間隔來實現(xiàn)信號調(diào)制)。遙控編碼脈沖信號通常包括三大部分,即引導(dǎo)碼(起始碼)、系統(tǒng)碼(即識別碼,用戶碼或設(shè)備碼)和功能碼(鍵位數(shù)據(jù)碼)。各組成部分與結(jié)構(gòu)情況簡介如下。1.引導(dǎo)碼,也稱引導(dǎo)脈沖,一般由高電平1和低電平0的脈沖組成,二者的寬度之比可為1:1,占9ms時間,也可為2:1,占13.5ms(寬度為9ms的高電平和寬度為4.5m
14、s的低電平組成),也可能有其他組成情況。引導(dǎo)碼的主要作用類似于穿行通信中的同步脈沖,用來標志遙控編碼脈沖信號的開始,使遙控接收器能由此判斷出所接收的信號是干擾還是系統(tǒng)的遙控代碼。2.系統(tǒng)碼,也稱用戶碼、識別碼、設(shè)備碼,通常由8位原碼和8位反碼組成。它用來指示遙控系統(tǒng)的種類,以區(qū)別其它遙控系統(tǒng),防止各遙控系統(tǒng)的誤動作。這種碼是由生產(chǎn)廠商自行規(guī)定的,各廠均有不同,出廠時已經(jīng)設(shè)置好,用戶難以更改。這是不同遙控器不能通用的主要原因。3. 功能碼,也稱鍵位數(shù)據(jù)碼。它與鍵盤的鍵位相對應(yīng),由它傳送所需要的遙控信息。功能碼通常也是由8位原碼和8位反碼組成。反碼的加入是為了能在接收端校對傳輸過程中是否產(chǎn)生差錯。
15、下面以lc7461編碼芯片為例介紹一下紅外遙控的編碼方式lc7461是采用pwm調(diào)制的串行二進制碼,所發(fā)送的一幀數(shù)據(jù)中含42位碼,包含一引導(dǎo)碼、13位用戶碼和 8位數(shù)據(jù)碼以及它們的反碼。這樣很大程度上減少了誤碼率。發(fā)射碼的格式如圖3.1所示:圖3.1 lc7461編碼格式圖3.2“1”和“0”的區(qū)分取決與脈沖之間的時間:以脈寬為0.565ms、間隔0.56ms、周期為1.125ms的組合表示二進制的“0”;以脈寬為0.565ms、間隔1.685ms、周期為2.25ms的組合表示二進制的“1”。如下圖所示(圖中tm=0.56ms)圖3.3 四、 遙控模塊硬件設(shè)計(一)遙控系統(tǒng)的構(gòu)成遙控系統(tǒng)主要由
16、紅外遙控發(fā)射裝置、接收裝置、微處理機等組成,見圖4.1.圖4.1 遙控系統(tǒng)框圖(二)選用芯片介紹1. 遙控編碼芯片lc74613lc7461是由sanyo公司生產(chǎn)能的遙控專用編碼芯片。osco和oscl之間接諧振器。由ko0ko7,ki0ki3構(gòu)成鍵盤的行與列。out引腳輸出紅外發(fā)射管控制信號。圖4.2當(dāng)發(fā)射機沒有按鍵按下時,7461不工作,其out輸出腳為低電平;當(dāng)有按按下時,7461得電工作,其out輸出腳輸出經(jīng)調(diào)制38khz的串行數(shù)據(jù)信號,并通過發(fā)射電路送出紅外信號 。7461產(chǎn)生的遙控編碼是連續(xù)的42位二進制碼組,其中前26位為用戶識別利,能區(qū)別不同的紅外遙控設(shè)備,防止不同機種遙控碼互
17、相干擾。后16位為8位的操作碼和8位的操作反碼用于核對數(shù)據(jù)是否接收準確。當(dāng)遙控器上任意一個按鍵按下超過36ms時,lc7461芯片的振蕩器使芯片激活,將發(fā)射一個特定的同步碼,對于接收端而言就是一個9ms的低電平和一個45ms的高電平,使程序知道從這個同步碼之后可以開始接收數(shù)據(jù)。2.一體化紅外接收頭hs0038接收紅外信號頻率為38 khz,周期約26 s,同時將遙控信號的接收、放大、檢波、整形集于一身,是紅外接收電路一體化的紅外接收裝置。并能與ttl、coms 電路兼容,大大簡化了接收電路的復(fù)雜程度和電路的設(shè)計工作。圖4.3hs0038 為黑色環(huán)氧樹脂封裝,不受日光、熒光燈等光源干擾,內(nèi)附磁屏
18、蔽,功耗低,靈敏度高。在用小功率發(fā)射管發(fā)射信號情況下,其接收距離可達35m。hs0038 為直立側(cè)面收光型,三個管腳分別是地、5 v 電源、解調(diào)信號輸出端。(三)遙控模塊硬件設(shè)計1. 遙控器硬件電路圖4.4 遙控器電路圖當(dāng)鍵盤有鍵按下時,編碼芯片激活,發(fā)送相應(yīng)紅外編碼信號。2.接收電路圖4.5 紅外接收電路圖由遙控器發(fā)送的紅外信號,經(jīng)過紅外一體化接收頭接收、放大、解調(diào)之后,將信號送到單片機p3.2引腳。五、 紅外模塊軟件設(shè)計(一)hs0038的解調(diào)紅外一體化接收頭hs0038將接收到的紅外信號放大、解調(diào)才送給單片機的。接收頭接收到的是38khz的串行脈沖信號,經(jīng)過解調(diào)之后轉(zhuǎn)換成ttl電平。接收
19、頭的解調(diào)可簡單理解為:在輸入脈沖串時輸出低電平,否則輸出高電平。一體化紅外接收頭解調(diào)前后的信號對比見下圖5.1. 可見解調(diào)后信號與編碼信號反相。表示“1”表示“0”紅外接收頭解調(diào)后的波形紅外接收頭接收到的波形圖5.1可知當(dāng)按鍵按下后,經(jīng)過hs0038解調(diào)輸出的一幀信號則如下圖5.2所示8位鍵數(shù)據(jù)碼反碼13.5ms引導(dǎo)碼9ms4.5ms13位用戶碼8位鍵數(shù)據(jù)碼13位用戶碼反碼圖5.2(二)解碼7461產(chǎn)生的遙控編碼是連續(xù)的42位二進制碼組,其中前26位為用戶識別碼,能區(qū)別不同的紅外遙控設(shè)備,防止不同機種遙控碼互相干擾。后16位為8位的操作碼和8位的操作反碼用于核對數(shù)據(jù)是否接收準確。單片機解碼是根
20、據(jù)一體化紅外接收頭的解調(diào)信號進行的,從上面的分析可知:任意按鍵按下后,都有9ms的低電平起始碼和4.5ms的高電平結(jié)果碼作為引導(dǎo)信號,因此應(yīng)該在引導(dǎo)碼之后才能進行解碼。如何識別“0”和“1” 是解碼的關(guān)鍵。根據(jù)位定義:“0”、“1”均以0.56ms的低電平作為起始,兩者區(qū)別在于高電平的寬度不同,即“0”高電平為0.56ms,“1”高電平為1.68ms,因此解碼時須根據(jù)高電平的寬度來區(qū)別“0”和“1”。若從0.56ms低電平過后,開始延時,0.56ms之后,檢測到的為低電平,則該位為“0”,反之則為“1”。為了保證解碼的可靠性,高電平檢測延時應(yīng)該在0.56ms 1.12ms之間,否則如果該位為“
21、0”,讀到的已是下一位的高電平,因此?。?.12ms+0.56ms)/2=0.84ms最為可靠,一般取0.84ms左右即可。(三)紅外解碼流程圖int010次882us檢測有無高電平跳動?等待4.5ms高電平y(tǒng)n延時4.74ms避開4.5ms結(jié)果碼避開前26位系統(tǒng)識別碼暫存8位操作碼暫存8位操作反碼操作碼與操作反碼互為反碼?n解碼成功操作碼賦予變量yreti圖5.3 紅外解碼流程圖六、 密碼鎖系統(tǒng)硬件設(shè)計圖6.1 電源電路(一)電源輸入模塊該電路將220v、50hz交流電轉(zhuǎn)換得到5v直流電,為整個密碼鎖系統(tǒng)提供電源。如上圖所示,220v交流電經(jīng)過變壓器后得到12v交流電,再經(jīng)過橋式整流電路,得
22、到直流電。但此時直流量含有較大交流分量,再經(jīng)過低通濾波電路,使電壓平滑。最后經(jīng)過7805穩(wěn)壓芯片,輸出供電,且輸出直流電壓不受電網(wǎng)電壓波動與負載變化影響,有足夠穩(wěn)定性。(二)振蕩電路圖6.2 振蕩電路c51系列單片機工作頻率不大于30mhz,c1、c2起穩(wěn)定振蕩頻率、快速起振的作用,一般取值為1030pf。此處由22pf電容c1、c2與振蕩頻率為12mhz晶振構(gòu)成晶振電路,為單片機提供振蕩時鐘脈沖。(三)復(fù)位電路圖6.3 復(fù)位電路此復(fù)位電路采用手動按鍵式復(fù)位。能夠上電自動復(fù)位。當(dāng)程序出錯或系統(tǒng)處于死循環(huán)時,也可以通過按鍵手動復(fù)位。當(dāng)按鍵按下時,rst輸出高電平,供單片機復(fù)位,當(dāng)按鍵松開時,rs
23、t為低電平。r1用于限制按鍵按下瞬間c3放電電流,避免火花。為完成復(fù)位操作,應(yīng)使復(fù)位高電平大于2個機器周期。(四)密碼掉電存儲模塊圖6.4 密碼存儲at24c02是美國atmel公司的低功耗cmos型e2prom,內(nèi)含2568位存儲空間。該芯片采用了i2c總線式進行數(shù)據(jù)讀寫的串行器件,占用很少的資源和io線,并且支持在線編程,進行數(shù)據(jù)實時的存取十分方便。串行時鐘由單片機p3.6引腳提供,通過p3.7引腳對at24c02進行在線讀寫。由于該芯片數(shù)據(jù)掉電不丟失,故用于存放開鎖密碼。當(dāng)需要開鎖和設(shè)置新密碼時,均需讀取at24c02中的密碼;設(shè)置新密碼后,在線寫at24c02,覆蓋原密碼。(五)鍵盤圖
24、6.5 鍵盤本設(shè)計采用44矩陣式鍵盤,將鍵盤接單片機p1口。當(dāng)按鍵較多時,與獨立式鍵盤相比,矩陣式鍵盤可節(jié)約i/o口。16個按鍵,包含09的數(shù)字鍵之外,還有比如del、重置、取消等功能鍵。按鍵值的獲得,是采用行掃描法。鍵盤掃描時,首先由p1口低四位輸出高低電平,高四位輸出高電平,假若有鍵按下,那么在p1口低高位即可讀出低電平,接著延時消抖,再逐行送低電平,判斷是何鍵按下,從而獲得鍵值。(六)液晶顯示模塊圖6.6 液晶顯示本系統(tǒng)采用lcd1602液晶顯示,可顯示162個字符。液晶顯示控制端口分別是rs接p2.0,rw接p2.1,e接p2.2。數(shù)據(jù)口d0d7接p0口(p0口作i/o口需接上拉電阻)
25、,采用8位數(shù)據(jù)線方式。當(dāng)無操作時候,顯示“*welcome*”字樣;當(dāng)選擇開鎖模式時,會顯示“unlock operation”,并提示輸入密碼,每輸入以為密碼則顯示一個“*”;當(dāng)選擇更改密碼模式時,會顯示“set code mode”,也會提示輸入舊密碼與新密碼;密碼正確會顯示“right”;密碼錯誤則會顯示“wrong”。(七)聲光報警電路圖6.7聲光報警聲光報警有紅色發(fā)光二極管d1與蜂鳴器組成,分別由p2.3與p2.6引腳控制,低電平有效。當(dāng)輸入密碼錯誤時,在lcd顯示“wrong”的同時,紅色發(fā)光二極管閃爍兩次,同時伴隨滴滴的提示音。(八)開鎖電路圖6.8 開鎖電路開鎖電路由三極管、繼
26、電器、綠色發(fā)光二極管(代替鎖頭)組成,由p2.7引腳控制,低電平有效。按下鍵盤開鎖鍵進入開鎖模式,正確輸入6位密碼,按下ok鍵之后,單片機對輸入密碼與設(shè)定密碼進行對比,對比正確,則p27發(fā)出低電平,使三極管q3 導(dǎo)通,從而使得繼電器rl吸合,并由繼電器控制使得門禁得電打開。此設(shè)計為了便于觀察結(jié)果,用綠色led代替鎖頭,若是有開鎖動作,則綠色led燈亮。七、 系統(tǒng)軟件設(shè)計部分流程圖(一)主程序流程圖主程序初始化開鎖模式有鍵按下?開鎖鍵?set鍵?修改密碼模式顯示歡迎信息nynyyn圖7.1 主程序流程圖(二)密碼接收子程序流程圖 在輸入密碼過程中,可以重置、刪除、取消。當(dāng)完成輸入時,按下ok鍵退
27、出該程序。若正確接收6位密碼,則輸入密碼存于數(shù)組中,且返回值為1。若取消操作,返回值為0。密碼接收子程序密碼位數(shù)計數(shù)器i置零獲取鍵值delete鍵?reset鍵?cancel鍵?按鍵為09&i6?計數(shù)器加1 存儲鍵值i=6&ok鍵?return 1return 0計數(shù)器減1 圖7.2密碼接收子程序流程圖nyynynnyyn(三)開鎖判斷子程序流程圖 該程序?qū)⑤斎朊艽a進行對比。若密碼正確,則返回值為1,表明應(yīng)該進行開鎖動作。密碼錯誤,返回值為0,不進行開鎖。有取消動作,則返回3,不進行密碼對比。開鎖判定子程序密碼接收子程序函數(shù)值為0?密碼正確?對6位密碼對比連續(xù)錯誤3次?return 3報警re
28、turn 1return 0nyynyn圖7.3 開鎖判定子程序流程圖(四)更改密碼判定子程序流程圖 改程序要求先輸入當(dāng)前密碼,當(dāng)前密碼正確后,連續(xù)兩次輸入新密碼,兩次輸入相同時,返回1,表明應(yīng)該寫at24c02。否則返回0,表明修改密碼失敗,不對at24c02。即是否擦寫at24c02要根據(jù)此程序返回值而定。更改密碼判定輸入當(dāng)前密碼密碼正確?輸入新密碼再輸入新密碼兩次輸入相同?return 1return 0nyyn連續(xù)3次錯?報警圖7.4更改密碼判定子程序流程圖ny八、 總結(jié) 本設(shè)計采用at89s52單片機作為主控芯片,結(jié)合相應(yīng)的外圍電路,構(gòu)成電子密碼鎖系統(tǒng)。該電子密碼鎖,開發(fā)簡單、安全性
29、高、成本低,適合辦公室、住宅小區(qū)、實驗室、檔案室等場所,其遙控功能更適合應(yīng)用在車庫倉庫的安全防盜。在設(shè)計完成過程中,先進行proteus軟件仿真,最后進行實物調(diào)試,最終達到了預(yù)期的設(shè)計目標,但ups供電還有待解決。電子密碼鎖安全性能較高,具有較好的市場前景。參考文獻1吳媛媛,葉茂森. 紅外遙控技術(shù)淺析j. 廣西輕工業(yè),2009,(01):72-732郭凱杰.智能家居人性化設(shè)計d.同濟大學(xué)電子與信息工程學(xué)院,20083 李偉,閆君杰.紅外遙控器系統(tǒng)的設(shè)計研究j.河南機電高等??茖W(xué)校學(xué)報,2009,1:11-134曹立軍.單片機原理及其應(yīng)用m.西安:西安電子科技大學(xué)出版社,20095紀宗南.紅外遙
30、控發(fā)射的原理及其應(yīng)用j.國外電子元件,1999,106李明喜.新型電子密碼鎖的設(shè)計j.機電產(chǎn)品開發(fā)與創(chuàng)新,2004,(8):77-797陳春燕.單片機紅外遙控密碼鎖j.電子制作,2002,12:27-308董繼成.一種新型安全的單片機密碼鎖j.電子技術(shù),2004,(3):55-609何麗輝,戴峻峰.紅外遙控智能密碼鎖設(shè)計j.世界電子元器件, 2002,08:3710金月,陳安民,胡志杰.國產(chǎn)彩電遙控器系統(tǒng)電路、元器件、維修m.北京:科學(xué)普及出版社,199211趙春紅,楊勇.基于單片機和無線電技術(shù)的密碼鎖設(shè)計j.西北工業(yè)大學(xué)學(xué)報,2005,9:9-1212 葉啟明.單片機制作的新型安全密碼鎖j.
31、家庭電子,2000,(6):24-27附錄一總電路原理圖附錄二 實物圖附錄三 程序清單/* * * 對24c02的讀、寫* * 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ū)動 *lcddriver.c */#include #include #include #include #define uchar unsigned char#define uint unsigned int#define busy 0x80 /lcd忙檢測標志#define dataport p0 /定義p0口為lcd通訊端口sbit light=p13;sbit lcm_rs=p20; /數(shù)據(jù)/命令端sbit lcm_rw=p21; /讀/寫選擇端sbit lcm_en=p22;void
36、 delay_lcm(uint); /lcd延時子程序void lcd_wait(void); /lcd檢測忙子程序void writecommandlcm(uchar wclcm,uchar busyc); /寫指令到icm子函數(shù)void writedatalcm(uchar wdlcm); /寫數(shù)據(jù)到lcm子函數(shù)void displayonechar(uchar x,uchar y,uchar ddata); /顯示指定坐標的一個字符子函數(shù)void initlcm( void); /lcd初始化子程序void displaylistchar(uchar x,uchar y, unsigne
37、d char *ddata); /顯示指定坐標的一串字符子函數(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);/*顯示指定坐標的一串字符子函數(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開鎖,低電平有效sbit warni
39、ng=p23; /p2_3報警,低電平有效sbit red=p32; /紅外接收管的數(shù)據(jù)輸出端接單片機的p3.2,低電平有效static char wrong_count=0; /wrong輸入密碼次數(shù)計數(shù)器 extern void initlcm( void); /lcd初始化子程序extern void displaylistchar(uchar x,uchar y, unsigned char *ddata); /顯示指定坐標的一串字符子函數(shù)extern void read24c02(unsigned char *ramaddress,unsigned char romaddress,u
40、nsigned char bytes); /at24c02驅(qū)動extern void write24c02(unsigned char *ramaddress,unsigned char romaddress,unsigned char bytes);unsigned char _cror_( /字節(jié)的多次循環(huán)右移unsigned char ,/需要循環(huán)右移的變量unsigned char ); /移動位數(shù) uchar key_val;/*延時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;/暫時關(guān)中斷 for(s=0;s10;s+)/重復(fù)10次,檢測8.882ms內(nèi)如果出現(xiàn)高電平則退出解碼,因為有可能不小心按下了按鍵或者由外部干擾。 delay(54);/延時882us if(red=1)/只要出現(xiàn)高電平就退出解碼 ex0=1;
42、return; while(red=0);/等待高電平,避開9ms低電平的引導(dǎo)脈沖 delay(295);/延時4.74ms避開4.5ms的引導(dǎo)高電平 for(s=0;s16;s+)/忽略前26位的系統(tǒng)識別碼 while(red=0);/等待地址碼第一位的高電平 delay(54);/高電平開始后用882us的時間尺去判斷信號此時的高低電平 if(red) 如果為高電平 delay(61); /檢測到高電平,延時1ms等待脈沖高電平結(jié)束 for(s=0;s16;s+) while(red=0);/等待地址碼第一位的高電平 delay(54);/高電平開始后用882微秒的時間尺去判斷信號的高低狀
43、態(tài) bitstate=red; if(red) delay(61);/檢測到高電平,延時1ms等待脈沖高電平結(jié)束 if(s8)/得到操作碼 code=code|bitstate; code=_cror_(code,1); else/得到反操作碼 _code=_code|bitstate; _code=_cror_(_code,1); if(code=(_code)/比對操作碼和反操作碼,檢測數(shù)據(jù)傳輸中是否出錯key_val= code; /數(shù)據(jù)傳輸無錯誤,返回得到的信息ex0=1;/*鍵盤掃描程序獲得鍵值*/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. 本站所有資源如無特殊說明,都需要本地電腦安裝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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 專業(yè)婦產(chǎn)科知識培訓(xùn)課件
- 鋼筋接頭面積百分率混凝土結(jié)構(gòu)識圖專題呂文曉課件
- 重慶醫(yī)科大學(xué)《結(jié)構(gòu)力學(xué)2》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025第一師農(nóng)業(yè)生產(chǎn)資料有限公司招聘(2人)筆試參考題庫附帶答案詳解
- 達爾罕茂明安聯(lián)合旗2025屆四年級數(shù)學(xué)第二學(xué)期期末教學(xué)質(zhì)量檢測試題含解析
- 高分子材料中脫模技術(shù)的應(yīng)用及發(fā)展
- 水果限價銷售合同范本
- 杭州萬向職業(yè)技術(shù)學(xué)院《初級財務(wù)決策模擬》2023-2024學(xué)年第二學(xué)期期末試卷
- 湖南省永州市祁陽縣2025屆三年級數(shù)學(xué)第二學(xué)期期末質(zhì)量跟蹤監(jiān)視模擬試題含解析
- 2024-2025學(xué)年宜昌市虎亭區(qū)數(shù)學(xué)四下期末教學(xué)質(zhì)量檢測試題含解析
- 2025上海市嘉定工業(yè)區(qū)農(nóng)村青年干部招聘22人歷年高頻重點提升(共500題)附帶答案詳解
- 2025采購部年度工作計劃
- 2024年度個人珠寶首飾分期購買合同范本3篇
- 食為天:2024中國食品飲料行業(yè)白皮書
- 醫(yī)學(xué)倫理與醫(yī)患溝通技巧
- 2025年牛津譯林版英語七年級下冊全冊單元重點知識點與語法匯編
- 痔瘡中醫(yī)治療課件
- 污水處理設(shè)備的故障處理指南考核試卷
- 華東師范大學(xué)《社會研究方法》2023-2024學(xué)年第一學(xué)期期末試卷
- ps 課件教學(xué)課件
- 數(shù)控車編程實訓(xùn)教案
評論
0/150
提交評論