基于51單片機的紅外密碼鎖(設計及測試報告)_第1頁
基于51單片機的紅外密碼鎖(設計及測試報告)_第2頁
基于51單片機的紅外密碼鎖(設計及測試報告)_第3頁
基于51單片機的紅外密碼鎖(設計及測試報告)_第4頁
基于51單片機的紅外密碼鎖(設計及測試報告)_第5頁
已閱讀5頁,還剩52頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、1基于基于 5151 單片機的紅外密碼鎖單片機的紅外密碼鎖(設計及測試報告)(設計及測試報告)2目錄目錄:第一章第一章 緒論緒論 .31.1 課題背景及目的.31.2 國內外研究現狀.41.3 課題研究方法.4第二章第二章 紅外遙控系統(tǒng)介紹紅外遙控系統(tǒng)介紹 .52.1 紅外通訊原理.52.2.2發(fā)射系統(tǒng).72.3 紅外編碼格式紅外編碼格式.10第第 3 3 章章 硬件電路設計硬件電路設計 .123.1 整系統(tǒng)框圖整系統(tǒng)框圖.123.23.2 紅外發(fā)送紅外發(fā)送/ /接收接收.123.2.13.2.1 紅外遙控器紅外遙控器.123.2.2紅外接收頭.143.3 單片機單片機 at89c51 簡介簡

2、介.163.3.1主要特性主要特性.163.3.2 管腳說明管腳說明.173.3.3 震蕩特性震蕩特性.183.3.4 芯片擦除芯片擦除.183.4 44 矩陣鍵盤矩陣鍵盤.193.5 復位電路復位電路.193.63.6 振蕩電路振蕩電路.193.7 1602 液晶顯示液晶顯示 .203.8 發(fā)光二極管發(fā)光二極管 led .243.9 繼電器繼電器.243.10 24c02.253.11 元器件列表元器件列表.32第四章第四章系統(tǒng)的軟件設計系統(tǒng)的軟件設計.335.1 紅外發(fā)射編碼部分紅外發(fā)射編碼部分.345.2 紅外接收解碼部分紅外接收解碼部分.341 單片機解碼過程單片機解碼過程.342.紅

3、外解碼程序代碼紅外解碼程序代碼.345.3 單片機接收終端部分單片機接收終端部分.391.密碼的輸入與確認密碼的輸入與確認.392.密碼的修改密碼的修改.393.矩陣鍵盤的掃描矩陣鍵盤的掃描.394.iic.395.1602液晶顯示液晶顯示.406.終端程序部分終端程序部分.40第五章第五章 設計調試與方案選擇設計調試與方案選擇 .5435.1 編碼的方案選擇編碼的方案選擇.545.2 解碼的方案選擇解碼的方案選擇.555.3 紅外接收部分調試紅外接收部分調試.5554 總結總結.56參考文獻參考文獻.57第一章第一章 緒論緒論 1.1課題背景及目的在日常的生活和工作中, 住宅與部門的安全防范

4、、單位的文件檔案、財務報表以及一些個人資料的保存多以加鎖的辦法來解決。若使用傳統(tǒng)的機械式鑰匙開鎖,人們常需攜帶多把鑰匙, 使用極不方便, 且鑰匙丟失后安全性即大打折扣。隨著科學技術的不斷發(fā)展,人們對日常生活中的安全保險器件的要求越來越高。為滿足人們對鎖的使用要求,增加其安全性,用密碼代替鑰匙的密碼鎖應運而生。密碼鎖具有安全性高、成本低、功耗低、易操作等優(yōu)點。在安全技術防范領域,具有防盜報警功能的電子密碼鎖逐漸代替?zhèn)鹘y(tǒng)的機械式密碼鎖,克服了機械式密碼鎖密碼量少、安全性能差的缺點,使密碼鎖無論在技術上還是在性能上都大大提高一步。隨著大規(guī)模集成電路技術的發(fā)展,特別是單片機的問世,出現了帶微處理器的智

5、能密碼鎖,它除具有電子密碼鎖的功能外,還引入了智能化管理、專家分析系統(tǒng)等功能,從而使密碼鎖具有很高的安全性、可靠性,應用日益廣泛。隨著人們對安全的重視和科技的發(fā)展,許多電子智能鎖(指紋識別、ic 卡辨認)已在國內外相繼面世。但是這些產品的特點是針對特定的指紋和有效卡,只能適用于保密要求的箱、柜、門等。而且指紋識識別器若在公共場所使用存在容易機械損壞,ic 卡還存在容易丟失、損壞等特點。加上其成本較高,一定程度上限制了這類產品的普及和推廣。鑒于目前的技術水平與市場的接收程度,電子密碼鎖是這類電子防盜產品的主流。但是接觸式密碼鎖系統(tǒng)都相應的存在著不同的缺點。例如:接觸式密碼鎖系統(tǒng)成本較低,體積小,

6、卡片本身無須電源,但使用不太方便,而且有接觸磨損。相比之下,紅外遙控密碼鎖系統(tǒng)的成本與接觸式密碼鎖系統(tǒng)相當,而且可4以進行近距離遙控,使用十分方便。而且它已經與 pc 機的數據庫相結合,可以組成一套酒店房間的門禁管理系統(tǒng)。 由于紅外遙控具有許多優(yōu)點, 例如紅外線發(fā)射裝置采用紅外發(fā)光二極管遙控發(fā)射器易于小型化且價格低廉; 采用數字信號編碼和二次調制方式,不僅可以實現多路信息的控制,增加遙控功能,提高信號傳輸的抗干擾性,減少誤動作,而且功率消耗低;紅外線不會向室外泄露,不會產生信號串擾;反應速度快、傳輸效率高、工作穩(wěn)定可靠等。工業(yè)設備中,在高壓、輻射、有毒氣體、粉塵等環(huán)境下,采用紅外線遙控不僅完全

7、可靠而且能有效地隔離電氣干擾。所以紅外線遙控是目前使用最廣泛的一種通信和遙控手段。 在本設計中,紅外遙控密碼鎖和 pc 機、數據庫相結合,能夠實現適時的、強大的管理,使得整個紅外遙控系統(tǒng)得到更好的完善。 1.2 國內外研究現狀目前大部分的鎖采用的都是機械式的,其最大的缺點是利用簡單工具就能很容易地把鎖打開。針對這種情況,我們設計了一種紅外遙控密碼鎖,而一般設備都采用專用的遙控編碼及解碼集成電路,其制作簡單、容易,但由于特定功能的限制,只適用于專用的電器產品,其應用范圍受到限制。而設計的紅外遙控密碼鎖系統(tǒng)能提高門禁系統(tǒng)的可靠性和安全性,適應市場需要。該系統(tǒng)具有普通電子密碼鎖功能的同時,還增加了遙

8、控功能。該系統(tǒng)具有較強的實際應用價值,所涉及的技術包括:紅外載波數據傳輸技術、單片機控制技術、紅外遙控系統(tǒng)編碼及譯碼技術、電路設計與演示板制作技術等。1.3 課題研究方法主要的設計實施過程:首先,選用 atmel 公司的單片機 at89c51,以及選購其他電子元器件。第二步,使用 protel99 完成原理圖,并設計 pcb 圖完成人工布線(后因 pcb 板損壞決定采用萬能板焊接的方法) 。第三步,使用 keil uvision3 軟件編寫單片機的 c 語言程序、仿真、軟件調試。第四部,使用proteus 軟件進行模擬軟、硬件調試。最后,聯合軟、硬件調試電路板,完成本次設計。5第二章第二章 紅

9、外遙控系統(tǒng)介紹紅外遙控系統(tǒng)介紹2.1 紅外通訊原理紅外遙控是單工的紅外通信方式,本設計的紅外遙控采用以通信方式為基礎的紅外遙控,而且本設計也使用了紅外通信技術,故著重分析紅外通信的基本原理。紅外通信是利用紅外技術實現兩點間的近距離保密通信和信息轉發(fā)。它一般由紅外發(fā)射和接收系統(tǒng)兩部分組成。發(fā)射系統(tǒng)對一個紅外輻射源進行調制后發(fā)射紅外信號,而接收系統(tǒng)用光學裝置和紅外探測器進行接收,就構成紅外通信系統(tǒng)。紅外線是波長在 750nm 至 1mm 之間的電磁波,它的頻率高于微波而低于可見光,是一種人的眼睛看不到的光線。紅外通信一般采用紅外波段內的近紅外線,波長在 0.75um 至 25um 之間。紅外數據協(xié)

10、會(irda)成立后,為了保證不同廠商的紅外產品能夠獲得最佳的通信效果,紅外通信協(xié)議將紅外數據通信所采用的光波波長的范圍限定在 850 至 900nm 之內。紅外通信的基本原理是發(fā)送端將基帶二進制信號調制為一系列的脈沖串信號(載波信號) ,通過紅外發(fā)射管發(fā)射紅外信號。常用的有通過脈沖寬度來實現信號調制的脈寬調制(pwm)和通過脈沖串之間的時間間隔來實現信號調制的脈時調制(ppm)兩種方法。脈時調制(ppm)是紅外數據協(xié)會(irda)和國際電子電工委員會(ieee)都推薦的調制方式,本設計采用 ppm 調制方法,即用兩個脈沖串之間的時間間隔來表示二進制信息,數據比特的傳送仿照不帶奇偶校驗的 rs

11、232 通信,首先產生一個同步頭,然后接著 8 位數據比特。如圖 2.1 所示。6圖 2.1 ppm 調制波形圖普通的紅外遙控采用面向指令的幀結構,數據幀由同步碼,地址碼和指令碼組成,指令碼長度多為 816 個比特,傳送多字節(jié)遙控協(xié)議時效率偏低,而增加指令碼的長度不利于接收器同步,為此本設計選用一種面向字節(jié)的幀結構,采用類似于異步串行通信的幀結構,每幀由一個起始位(二進制數 0) 、8 個數據位和 2 個停止位(二進制數 1)構成,如圖 2.2 所示。每幀傳送 1 個字節(jié)的數據,幀與幀間隔大于 2ms,幀結構不含地址信息,尋址問題由高層協(xié)議解決8。圖 2.2 數據幀結構示意圖由于紅外光存在反射

12、,在全雙工的方式下發(fā)送的信號也可能會被本身接收,因此,紅外通信應采用異步半雙工方式,即通信的某一方發(fā)送和接收是交替進行的。2.22.2 紅外遙控系統(tǒng)結構紅外遙控系統(tǒng)結構紅外遙控系統(tǒng)主要分為調制、發(fā)射和接收三部分,如圖 2.3 所示:7圖 2.32.2.1 調制紅外遙控發(fā)射數據時采用調制的方式,即把數據和一定頻率的載波進行“與”操作,這樣可以提高發(fā)射效率和降低電源功耗。調制載波頻率一般在 30khz 到 60khz 之間,大多數使用的是 38khz,占空比1/3 的方波,如圖 2.4 所示,這是由發(fā)射端所使用的455khz 晶振決定的。在發(fā)射端要對晶振進行整數分頻,分頻系數一般取 12,所以 4

13、55khz1237.9 khz38khz。圖 2.4 載波波形 2.2.2 發(fā)射系統(tǒng)目前有很多種芯片可以實現紅外發(fā)射,可以根據選擇發(fā)出不同種類的編碼。由于發(fā)射系統(tǒng)一般用電池供電,這就要求芯片的功耗要很低,芯片大多都設計成可以處于休眠狀態(tài),當有按鍵按下時才工作,這樣可以降低功耗芯片所用的晶振應該有足夠的耐物理撞擊能力,不能選用普通的石英晶體,一般是選用陶瓷共鳴器,陶瓷共鳴器準確性沒有石英晶體高,但通常一點誤差可以忽略不計。8紅外線通過紅外發(fā)光二極管(led)發(fā)射出去,紅外發(fā)光二極管內部材料和普通發(fā)光二極管不同,在其兩端施加一定電壓時,它發(fā)出的是紅外線而不是可見光。圖 2.5a 簡單驅動電路 圖

14、2.5b 射擊輸出驅動電路如圖 2.5a 和圖 2.5b 是 led 的驅動電路,圖 3a 是最簡單電路, 選用元件時要注意三極管的開關速度要快,還要考慮到 led 的正向電流和反向漏電流,一般流過 led 的最大正向電流為 100ma,電流越大,其發(fā)射的波形強度越大。圖 2.5a 電路有一點缺陷,當電池電壓下降時,流過 led 的電流會降低,發(fā)射波形強度降低,遙控距離就會變小。圖 2.5b 所示的射極輸出電路可以解決這個問題,兩個二極管把三級管基極電壓鉗位在 1.2v左右,因此三級管發(fā)射極電壓固定在 0.6v 左右,發(fā)射極電流 ie 基本不變,根據 ieic,所以流過 led 的電流也基本不

15、變,這樣保證了當電池電壓降低時還可以保證一定的遙控距離。2.2.3 一體化紅外接收頭紅外接收電路通常被廠家集成在一個元件中,成為一體化紅外接收頭。內部電路包括紅外監(jiān)測二極管,放大器,限副器,帶通濾波器,積分電路,比較器等。紅外監(jiān)測二極管監(jiān)測到紅外信號,9然后把信號送到放大器和限幅器,限幅器把脈沖幅度控制在一定的水平,而不論紅外發(fā)射器和接收器的距離遠近。交流信號進入帶通濾波器,帶通濾波器可以通過 30khz 到 60khz 的負載波,通過解調電路和積分電路進入比較器,比較器輸出高低電平,還原出發(fā)射端的信號波形。注意輸出的高低電平和發(fā)射端是反相的,這樣的目的是為了提高接收的靈敏度。一體化紅外接收頭

16、,如圖 2.6 所示: 圖 2.6 紅外接收頭 紅外接收頭的種類很多,引腳定義也不相同,一般都有三個引腳,包括供電腳,接地和信號輸出腳。根據發(fā)射端調制載波的不同應選用相應解調頻率的接收頭。本設計選擇 hx1383,因為其性價比較高,且易于購得,如圖 2.7:圖 2.7 紅外接收頭內部放大器的增益很大,很容易引起干擾,因此在接收頭的供10電腳上須加上濾波電容,一般在 22uf 以上。有的廠家建議在供電腳和電源之間接入 330 歐電阻,進一步降低電源干擾。2.3 紅外編碼格式紅外編碼格式遙控發(fā)射器專用芯片很多,紅外遙控的編碼目前廣泛使用的是:nec protocol 的 pwm(脈沖寬度調制)和

17、philips rc-5 protocol 的 ppm,本設計基于 nec 協(xié)議。其編碼特征如下:1、8 位地址和 8 位指令長度; 2、地址和命令 2 次傳輸(確??煽啃裕?3、pwm 脈沖位置調制,以發(fā)射紅外載波的占空比代表“0”和“1” ; 4、載波頻率為 38khz; 5、位時間為 1.125ms 或 2.25ms; nec 碼的位定義:一個脈沖對應 560us 的連續(xù)載波,一個邏輯 1 傳輸需要 2.25ms(560us 脈沖+1680us 低電平) ,占空比 1/4;一個邏輯 0 的傳輸需要 1.125ms(560us 脈沖+560us 低電平),占空比 1/2。而遙控接收頭在收到

18、脈沖的時候為低電平,在沒有脈沖的時候為高電平,這樣,我們在接收頭端收到的信號為:邏輯 1 應該是 560us 低+1680us 高,邏輯 0 應該是 560us 低+560us 高。 如圖 2.8 圖 2.8nec 遙控指令的數據格式為:同步碼頭、地址碼、地址反碼、控制碼、控制反碼。同步碼由一個 9ms 的低電平和一個 4.5ms 的高電平組成,地址碼、地址反碼、控制碼、控制反11碼均是 8 位數據格式。按照低位在前,高位在后的順序發(fā)送。采用反碼是為了增加傳輸的可靠性(可用于校驗) 。如圖 2.9 圖 2.9重復碼:一個命令只發(fā)送一次,即使遙控器上的按鍵一直按著。但是會每 110ms 發(fā)送一次

19、代碼,直到遙控器按鍵釋放。如圖 2.10 圖 2.10重復碼比較簡單:一個 9ms 的 agc 脈沖、2.25ms 間隔、560us 脈沖。如圖 2.11圖 2.11本設計采用網上購買的 lc7641 芯片為內核的小型遙控器作為發(fā)送端,其編碼基于 nec 協(xié)議。接收端為 hx1383,數據流入 51 單片機解碼。12第第 3 3 章章 硬件電路設計硬件電路設計3.13.1 整系統(tǒng)框圖整系統(tǒng)框圖 at89c51lcd繼電器led44 鍵盤復位電路接收部分系統(tǒng)主要由 at89c51(51 系列)、lcd、繼電器、led、44 矩陣鍵盤、復位電路等組成。由紅外接收頭 hx1383 接收信號,數據流入

20、 51 單片機解碼。發(fā)送部分本設計采用網上購買的 lc7641 芯片為內核的小型遙控器作為發(fā)送端,其編碼基于 nec 協(xié)議。3.23.2 紅外發(fā)送紅外發(fā)送/ /接收接收3.2.13.2.1 紅外遙控器紅外遙控器發(fā)送部分本設計采用網上購買的 lc7641 芯片為內核的小型遙控器作為發(fā)送端,其編碼基于 nec 協(xié)議。圖 3-1131.外型尺寸:1.1 鍵數: 1-18 鍵1.2 主尺寸:86mm長38mm寬6mm厚2.材質:2.1 面貼:0.125mmpet 光面面料2.2 外殼:abs 料黑色2.3 電池:cr20253v2.4 按鍵彈力:180-230 克力 3.控制角度:3.1 有效發(fā)射角度

21、:30 度4.控制距離:4.1 有效距離8m5.按鍵壽命測試:5.1 3 萬次以上遙控器技術參數及標準 項目單位測試條件最小值標準值最大值靜態(tài)電流ua無鍵按下 5 10動態(tài)電流ma鍵按下時612沿光軸方向8發(fā)射距離m30 度自選范圍6工作電壓v2.233.5振蕩頻率khz可定制455 栽波頻率khz可定制38khz紅外波長nm940功能鍵數 18適用環(huán)境溫度-102540相對溫度rh4090143.2.2紅外接收頭圖 32規(guī)格:規(guī)格:hx1838(hx1838(鐵殼鐵殼) )寬電壓適應、低功耗、高靈敏度、優(yōu)良的抗干擾特性;應用廣泛:家用電器、空調、玩具等紅外遙控接收;極限參數:極限參數: 電源

22、電壓vcc (v) 6.0工作溫度topr () -25 +85功 耗pd(mw)35儲存溫度tstg () -40 +125光電參數:光電參數: (t=25 vcc=5v f0=38khz) 參參 數數符號符號測試條件測試條件mintypemax單單 位位15 工作電壓 vcc 2.7 5.5 v 接收距離 ll5ir5 if =300ma(測試信號) 10 17 m 載波頻率 f0 38k hz 接收角度 1/2 距離衰減 1/2 +/-45 deg bmp 寬度 fbw -3db bandwidth 2 3.3 5khz 靜態(tài)電流 icc 無信號輸入時 - 0.8 1.5 ma 低電平輸

23、出 vol vin=0v vcc=5v 0.2 0.4 v高電平輸出 vohvcc=5v 4.5 vcc v tpwl vin=500vp-p 500 600 700 s輸出脈沖 寬 度 tpwh vin=50mvp-p 500 600 700 s:光軸上測試,以寬度為 600/900s 為發(fā)射脈沖,在 5cm 之接收范圍內,取 50 次接收脈沖之平均值(參見測試波形) 。測試波形:測試波形:圖 33電原理框圖:電原理框圖:16 圖 3-53.3 單片機單片機 at89c51 簡介簡介at89c51 是美國 atmel 公司生產的低電壓,高性能 cmos8 位單片機,片內含 4k bytes

24、的可反復擦寫的只讀程序存儲器(eprom)和 128bytes 的隨機存取數據序存器(ram) ,器件采用 atmel 公司的高密度/非易失性存儲技術生產,兼容標準 mcs-51 指令系統(tǒng),片內置通用 8 位中央處理器(cpu)和flash 存儲單元,at89c51 單片機為許多嵌入式控制系統(tǒng)提供了一種靈活行高且價廉的方案。3.3.1 主要特性主要特性 8031 cpu 與 mcs-51 兼容 4k 字節(jié)可編程 flash 存儲器(壽命:1000 寫/擦循環(huán)) 全靜態(tài)工作:0hz-24khz 三級程序存儲器保密鎖定 128*8 位內部 ram 32 條可編程 i/o 線 兩個 16 位定時器/

25、計數器 6 個中斷源 圖 36 可編程串行通道 低功耗的閑置和掉電模式 17 片內振蕩器和時鐘電路 3.3.2 管腳說明管腳說明vcc:供電電壓。 gnd:接地。 p0 口:p0 口為一個 8 位漏級開路雙向 i/o 口,每腳可吸收 8ttl 門電流。當p1 口的管腳第一次寫 1 時,被定義為高阻輸入。p0 能夠用于外部程序數據存儲器,它可以被定義為數據/地址的第八位。在 fiash 編程時,p0 口作為原碼輸入口,當 fiash 進行校驗時,p0 輸出原碼,此時 p0 外部必須被拉高。 p1 口:p1 口是一個內部提供上拉電阻的 8 位雙向 i/o 口,p1 口緩沖器能接收輸出 4ttl 門

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

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

28、0 外部輸入)p3.5 t1(記時器 1 外部輸入)p3.6 /wr(外部數據存儲器寫選通)p3.7 /rd(外部數據存儲器讀選通)18p3 口同時為閃爍編程和編程校驗接收一些控制信號。 rst:復位輸入。當振蕩器復位器件時,要保持 rst 腳兩個機器周期的高電平時間。ale/prog:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在 flash 編程期間,此引腳用于輸入編程脈沖。在平時,ale 端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的 1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數據存儲器時,將跳過一個 ale 脈沖。如想

29、禁止 ale 的輸出可在 sfr8eh 地址上置0。此時, ale 只有在執(zhí)行 movx,movc 指令是 ale 才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài) ale 禁止,置位無效。 /psen:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/psen 有效。但在訪問外部數據存儲器時,這兩次有效的/psen信號將不出現。 /ea/vpp:當/ea 保持低電平時,則在此期間外部程序存儲器(0000h-ffffh),不管是否有內部程序存儲器。注意加密方式 1 時,/ea 將內部鎖定為 reset;當/ea 端保持高電平時,此間內部程序存儲器。在 flas

30、h 編程期間,此引腳也用于施加 12v 編程電源(vpp)。 xtal1:反向振蕩放大器的輸入及內部時鐘工作電路的輸入。 xtal2:來自反向振蕩器的輸出。3.3.3 震蕩特性震蕩特性xtal1 和 xtal2 分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時鐘源驅動器件,xtal2 應不接。有余輸入至內部時鐘信號要通過一個二分頻觸發(fā)器,因此對外部時鐘信號的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。3.3.4 芯片擦除芯片擦除整個 perom 陣列和三個鎖定位的電擦除可通過正確的控制信號組合,并保持 ale 管腳處于低電平 10

31、ms 來完成。在芯片擦操作中,代碼陣列全被寫“1”且在任何非空存儲字節(jié)被重復編程以前,該操作必須被執(zhí)行。 此外,at89c51 設有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,cpu 停止工作。但 ram,定時器,計數器,串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存 ram 的內容并且凍結振蕩器,禁止所用其他芯片功能,直到下一個硬件復位為止。193.4 44 矩陣鍵盤矩陣鍵盤如圖所示,本系統(tǒng)采用 44 矩陣鍵盤,16 個按鍵分為輸入數字鍵: 0、 1、2、3、4、5、6、7、8、9;功能鍵 lock、modify、cel、enter。矩陣鍵盤。圖 373

32、.5 復位電路復位電路圖 38時鐘電路工作后,在 rest 管腳上加兩個機器周期的高電平,芯片內部開始進行初始復位(如圖 38) 。3.63.6 振蕩電路振蕩電路20圖 39本設計晶振選擇頻率為 12mhz,電容選擇 30pf 如圖(39)。經計算得單片機工作機器周期為:12(112m)=1us。3.7 1602 液晶顯示液晶顯示圖 3-10lcd1602 可顯示兩行英文字符,并且內帶 ascii 字符庫。lcd1602 模塊內部可以完成顯示掃描,單片機只要向 lcd1602 發(fā)送命令和顯示內容的 ascii 碼。表表 3-1 引腳功能說明引腳功能說明引引腳腳符號符號功能說明功能說明211vs

33、s一般接地2vdd接電源(+5v)3v0液晶顯示器對比度調整端,接正電源時對比度最弱,接地電源時對比度最高(對比度過高時會產生“鬼影”,可以通過一個 10k 的電位器調整對比度) 。4rsrs 為寄存器選擇,高電平時選擇數據寄存器、低電平時選擇指令寄存器。5r/wr/w 為讀寫信號線,高電平(1)時進行讀操作,低電平(0)時進行寫操作。6ee(或 en)端為使能(enable)端,下降沿使能。7db0底 4 位三態(tài)、 雙向數據總線 0 位(最低位)8db1底 4 位三態(tài)、 雙向數據總線 1 位9db2底 4 位三態(tài)、 雙向數據總線 2 位10db3底 4 位三態(tài)、 雙向數據總線 3 位11db

34、4高 4 位三態(tài)、 雙向數據總線 4 位12db5高 4 位三態(tài)、 雙向數據總線 5 位13db6高 4 位三態(tài)、 雙向數據總線 6 位14db7高 4 位三態(tài)、 雙向數據總線 7 位(最高位) (也是 busy flag)15bla背光電源正極16blk背光 電源負極圖 3.11 lcd1602 引腳圖表表 3-2 寄存器選擇控制表寄存器選擇控制表rsr/w操作說明操作說明00寫入指令寄存器(清除屏等)01讀 busy flag(db7) ,以及讀取位址計數器(db0db6)值10寫入數據寄存器(顯示各字型等)11從數據寄存器讀取數據221602 液晶模塊內部的字符發(fā)生存儲器(cgrom)已

35、經存儲了 160 個不同的點陣字符圖形,這些字符有:阿拉伯數字、英文字母的大小寫、常用的符號、和日文假名等,每一個字符都有一個固定的代碼,比如大寫的英文字母“a”的代碼是 01000001b(41h) ,顯示時模塊把地址 41h 中的點陣字符圖形顯示出來,我們就能看到字母“a”。因為 1602 識別的是 ascii 碼,試驗可以用 ascii 碼直接賦值,在單片機編程中還可以用字符型常量或變量賦值,如a。圖 3.9 是 1602 的 16 進制 ascii 碼值:讀的時候,先讀上面那列,再讀左邊那行,如:感嘆號!的 ascii 為0 x21,字母 b 的 ascii 為 0 x42(前面加 0

36、 x 表示十六進制) 。圖 3.12 1602 的 16 進制 ascii 碼值表表 3-3 顯示地址顯示地址1234567891011121314151600h01h02h03h04h05h06h07h08h09h0ah0bh0ch0dh0eh0fh40h41h42h43h44h45h46h47h48h49h4ah4bh4ch4dh4eh4fh23指令集1602 通過 d0d7 的 8 位數據端傳輸數據和指令。顯示模式設置: (初始化)0011 0000 0 x38 設置 162 顯示,57 點陣,8 位數據接口;顯示開關及光標設置: (初始化)0000 1dcb d 顯示(1 有效)、c

37、光標顯示(1 有效)、b 光標閃爍(1 有效)0000 01ns n=1(讀或寫一個字符后地址指針加 1 &光標加 1),n=0(讀或寫一個字符后地址指針減 1 &光標減 1),s=1 且 n=1 (當寫一個字符后,整屏顯示左移)s=0 當寫一個字符后,整屏顯示不移動數據指針設置:數據首地址為 80h,所以數據地址為 80h+地址碼(0-27h,40-67h)其他設置:01h(顯示清屏,數據指針=0,所有顯示=0);02h(顯示回車,數據指針=0)。通常推薦的初始化過程:延時 15ms寫指令 38h延時 5ms寫指令 38h延時 5ms寫指令 38h延時 5ms(以上都不檢測忙信號)(以下都要

38、檢測忙信號)寫指令 38h寫指令 08h 關閉顯示寫指令 01h 顯示清屏寫指令 06h 光標移動設置寫指令 0ch 顯示開及光標設置243.8 發(fā)光二極管發(fā)光二極管 led圖 313由于 led 使用的是高亮的 led 所以加了一個三極管驅動如圖 313。3.9 繼電器繼電器25 圖 314在繼電器的使用中要注意的就是電流的驅動還有由于繼電器內部是電感所以應加一個二極管泄流如圖 314。3.10 24c02圖 315 由于只有一個 24c02 所以只需把 a0,a1,a2 接地,按照 i2c 協(xié)議,scl,sda需接 10k 上拉電阻26at24c02at24c02at24c02 是美國 a

39、tmel 公司的低功耗 cmos 串行 eeprom,它是內含 2568 位存儲空間,具有工作電壓寬(2.55.5v) 、擦寫次數多(大于 10000 次) 、寫入速度快(小于 10ms)等特點。1、特性與400khz i2c 總線兼容2.5 到5.5 伏工作電壓范圍低功耗cmos 技術寫保護功能當wp 為高電平時進入寫保護狀態(tài)頁寫緩沖器自定時擦寫周期1,000 編程/擦除周期可保存數據100 年8 腳dip soic 或tssop 封裝溫度范圍商業(yè)級工業(yè)級和汽車級2、概述at24c02 是一個 2k 位串行 cmos e2prom ,部含有 256 個 8 位字節(jié),atalyst 公司的先進

40、 cmos 技術實質上減少了器件的功耗,cat24wc01 有一個 8 字節(jié)頁寫緩沖器 cat24wc02/04/08/16 有一個 16 字節(jié)頁寫緩沖器,器件通過 i2c 總線接口進行操作,一個專門的寫保護功能。3、管腳配置圖 3-16 at24c02 管腳配置274、管腳描述5、極限參數工作溫度:工業(yè)級:-55c- +125c 商業(yè)級:0c- +75c儲存溫度:-65c- +150c各管腳承受電壓:-2.0v- +2.0vvcc 管腳承受電壓:-2.0v- +7.0v封裝功率損耗:(ta=25c):1.0w焊接溫度(10 秒):300c輸出短路電流:100ma6、可靠性參數7、功能描述at

41、24c01/02/04/08/16 支持 i2c 總線數據傳送協(xié)議,i2c 總線協(xié)議規(guī)定,任何將數據傳送到總線的器件作為發(fā)送器。任何從總線接收數據的器件為接收器。數據傳送是由產生串行時鐘和所有起始停止信號的主器件控制的。主器件和從器件都可以作為發(fā)送器或接收器,但由主器件控制傳送數據發(fā)送或接收的模式,通過器件地址輸入端 a0 a1 和 a2 可以實現將最多 8 個 24wc01 和24wc02 器件 4 個 242c04 器件,2 個 24wc08 器件和 1 個 24wc16 器件連接到總線上。8、管腳描述28scl:串行時鐘cat24wc01/02/04/08/16 串行時鐘輸入管腳用于產生

42、器件所有數據發(fā)送或接收的時鐘,是一個輸入管腳。sda:串行數據/地址cat24wc01/02/04/08/16 雙向串行數據/地址管腳用于器件所有數據的發(fā)送或接收,sda 是一個開漏輸出管腳。a0 a1 a2:器件地址輸入端這些輸入腳用于多個器件級聯時設置器件地址,當這些腳懸空時默認值為0 24wc01 除外。當使用 24wc01 或 24wc02 時最大可級聯 8 個器件,如果只有一個 24wc02 被總線尋址,這三個地址輸入腳 a0 a1 a2 可懸空或連接到 vss, 如果只有一個 24wc01 被總線尋址,這三個地址輸入腳 a0 a1 a2 必須連接到vss。當使用 24wc04 時,

43、最多可連接 4 個器件該器件,僅使用 a1 a2 地址管腳,a0 管腳未用可以連接到 vss 或懸空,如果只有一個 24wc04 被總線尋址,a1 和 a2 地址管腳可懸空或連接到 vss。wp:寫保護如果 wp 管腳連接到 vcc, 所有的內容都被寫保護只能讀,當 wp 管腳連接到 vss 或懸空,允許器件進行正常的讀/寫操作。9、i2c 總線協(xié)議i2c 總線協(xié)議定義如下只有在總線空閑時才允許啟動數據傳送。在數據傳送過程中,當時鐘線為高電平時,數據線必須保持穩(wěn)定狀態(tài)不允許有跳變,時鐘線為高電平時,數據線的任何電平變化將被看作總線的起始或停止信號。起始信號:時鐘線保持高電平期間數據線電平從高到

44、低的跳變作為i2c 總線的起始信號。停止信號:時鐘線保持高電平期間數據線電平從低到高的跳變作為i2c 總線的停止信號。29圖 3-17 總線時序圖 3-18 寫周期時序圖 3-19 起始/停止時序10、器件尋址 主器件通過發(fā)送一個起始信號啟動發(fā)送過程,然后發(fā)送它所要尋址的從器件的地址,8 位從器件地址的高 4 位固定為 1010,接下來的 3 位 a2 a1 a0 為器件的地址位用來定義哪個器件以及器件的哪個部分被主器件訪問。上述 8 個cat24wc01/02,4 個 cat24wc04,2 個 cat24wc08,1 個 cat24wc16 可單獨被系統(tǒng)尋址。從器件 8 位地址的最低位作為

45、讀寫控制位,1 表示對從器件進行讀操作,0 表示對從器件進行寫操作,在主器件發(fā)送起始信號和從器件地址字節(jié)后,cat24wc01/02/04/08/16 監(jiān)視總線并當其地址與發(fā)送的從地址相符時,響應一個應答信號通過 sda ,cat24wc01/02/04/08/16 再根據讀寫控制位 r/w 的狀態(tài)進行讀或寫操作,應答信號 i2c 總線數據傳送時每成功地傳送一個字節(jié)數據后,30接收器都必須產生一個應答信號應答的器件,在第 9 個時鐘周期時將 sda 線拉低,表示其已收到一個 8 位數據。cat24wc01/02/04/08/16 在接收到起始信號和從器件地址之后響應一個應答信號,如果器件已選擇

46、了寫操作,則在每接收一個 8 位字節(jié)之后響應一個應答信號。當 cat24wc01/02/04/08/16 工作于讀模式時,在發(fā)送一個 8 位數據后釋放 sda 線并監(jiān)視一個應答信號,一旦接收到應答信號 cat24wc01/02/04/08/16 ,繼續(xù)發(fā)送數據,如主器件沒有發(fā)送應答信號,器件停止傳送數據且等待一個停止信號。圖 3-20 應答時序圖 3-21 從器件地址位a0 a1 和 a2 對應器件的管腳 1 、2 和 3a8 a9 和 a10 對應存儲陣列地址字地址11、寫操作31字節(jié)寫:在字節(jié)寫模式下,主器件發(fā)送起始命令和從器件地址信息r/w 位置零給從器件,在從器件產生應答信號后,主器件

47、發(fā)送cat24wc01/02/04/08/16 的字節(jié)地址,主器件在收到從器件的另一個應答信號后再發(fā)送數據到被尋址的存儲單,at24wc01/02/04 /08/16再次應答并在主器件產生停止信號后開始內部數據的擦寫,在內部擦寫過程中ca t24wc0 1/02/04/08/16 不再應答主器件的任何請求。圖3-22 字節(jié)寫時序12、讀操作對cat24wc01/02/04/08/16 讀操作的初始化方式和寫操作時一樣僅把r/w 位置為1 有三種不同的讀操作方式立即地址讀、選擇讀和連續(xù)讀。立即地址讀:cat24wc01/02/04/08/16 的地址計數器內容為最后操作字節(jié)的地址加1,也就是說如

48、果上次讀/寫的操作地址為n,則立即讀的地址從地址n+1開始。如果n=e,這里對24wc01 e=127、對24wc02 e=255、對24wc04 e=511、對24wc08 e=1023、對24wc16 e=2047 則計數器將翻轉到0且繼續(xù)輸出數據。cat24wc01/02/04/08/16 接收到從器件地址信號后r/w 位置1 ,它首先發(fā)送一個應答,信號然后發(fā)送一個8 位字節(jié),數據主器件不需發(fā)送一個應答信號但要產生一個停止信號。 32圖 3-23 立即地址讀時序3.11 元器件列表元器件列表元器件元器件規(guī)格規(guī)格/型號型號數量數量lcd16021繼電器hrs4h-s-dc121三極管sr9

49、0132紅外接收頭18381電阻27k8電阻10k3電阻1k1電解電容0.47uf/50v1瓷片電容30pf2單片機at89c511eeprom24c021usb 接口母口1按鍵x16ledx4 33第四章第四章 系統(tǒng)的軟件設計系統(tǒng)的軟件設計設計綜述設計綜述:此設計能實現通過紅外發(fā)送進行密碼的解鎖,同時在開鎖終端設備上也能進行解鎖的操作,并修改密碼和儲存密碼。所以,軟件設計也根據需求相應分成幾個模塊。下面一一列舉程序流程圖:程序流程圖:34。5.1 紅外發(fā)射編碼部分紅外發(fā)射編碼部分紅外發(fā)射部分使用現成的紅外遙控板發(fā)射,編碼已知,故省略。5.2 紅外接收解碼部分紅外接收解碼部分1 單片機解碼過程

50、單片機解碼過程 單片機外中斷 0 以中斷方式檢測紅外信號的第一個下降沿。 單片機檢測到引導碼后,延時屏蔽引導碼(9ms 低電平和 4.5ms 低電平) 引導碼屏蔽后,等待 16 位系統(tǒng)識別碼的第一位數據,當其上升沿到來時,延時 882us(為了保證數據的準確性,每位數據的時間間隔介于5651125us 之間,這里選擇 882us)后讀取電平狀態(tài):若為低電平,等待下一位數據的上升沿;若為高電平,則延時 1ms 后等待下一位數據的上升沿。依次循環(huán),直到 16 位系統(tǒng)識別碼讀完為止。 16 位系統(tǒng)識別碼檢測結束后,等待 8 位原碼和 8 位反碼的第一位數據,當上升沿到來時,延時 882us 后讀取電

51、平的狀態(tài):若為低電平,保存位數據“0” ,然后等待下一位數據的上升沿;若為高電平,保存位數據“1” ,且延時 1ms 后等待下一位數據的上升沿。依次循環(huán),直到 8 位原碼和 8 位反碼數據讀完,將 8 位原碼數據取反后與原碼數據比較:若相等,則保存原碼數據,完成解碼;若不相等,則退出解碼。2.紅外解碼程序代碼紅外解碼程序代碼/紅外接收程序頭文件#ifndef _remote_h#define _remote_h/-/ 數據類型宏定義/-#define uchar unsigned char#define uint unsigned int/-/ i/o 口定義/-35sbit hongwai

52、= p32; / 紅外接收數據線/-/ 外部變量聲明/-extern uchar ch; / 紅外原碼數據存放單元extern bit intx0f; / 初始為 0;為 1 表示響應外 0 中斷extern bit irvalidf; / 紅外解碼解碼有效標志位,為 1 表示有效/-/ 外部函數聲明/-extern void delay_1ms (unsigned char t); / 時基為 1ms 的延時extern void delay_882us(void); / 時基為 882us 的延時extern void decoder (void); / 遙控解碼extern void i

53、ntx0_isr (void); / 外 0 中斷服務程序,接收到紅外信號(下降沿)響應中斷#endif/紅外接收子程序/說明:單片機使用晶振為 12mhz#include #include #include remote.h/-/ 全局變量:內 ram 存儲單元定義/-uchar ch; / 紅外原碼數據存放單元/-/ 全局變量:內 ram 位定義/-bit intx0f; / 初始為 0;為 1 表示響應外 0 中斷bit irvalidf; / 紅外解碼解碼有效標志位,為 1 表示有效/-/ 功能程序區(qū)/-/-/ void delay_1ms (unsigned char t)/-/ 函

54、數功能: 時基為 1ms 的延時/ 例子提示: 調用 delay_1ms(20),得到 20ms 延時/ 入口參數: 無符號 8bit 整數/ 返回參數: 無/ 全局變量: 無 36/ 調用模塊: 無/ 注意事項: 基于使用外 12mhz 晶振的標準 8051(如 at89s51)單片機/* 令 x=165,y=2,n=1,則延時時間 =3y+(n+2)xy+3*t+5t=(999t+5)t 單位: 1sysclk sysclk=12mhz 誤差delay_1ms(1):延時 1 004 1.004ms 4usdelay_1ms(2):延時 2 003 2.003ms 3usdelay_1ms

55、(3):延時 3 002 3.002ms 2usdelay_1ms(5):延時 5 000 5.000ms 0usdelay_1ms(10):延時 9 995 9.995ms 5usdelay_1ms(20):延時 19 985 19.985ms 15usdelay_1ms(40):延時 39 965 39.965ms 35usdelay_1ms(60):延時 59 945 59.945ms 55usdelay_1ms(100):延時 99 905 99.905ms 95usdelay_1ms(200):延時 199 805 199.805ms 195usdelay_1ms(255):延時 2

56、54 750 254.750ms 250us*/-void delay_1ms (unsigned char t)unsigned char i,j; do j = 2;do i = 165;do _nop_(); while (-i); while (-j); while (-t); /-/ void delay_882us (void)/-/ 函數功能: 時基為 882us 的延時/ 入口參數: 無/ 返回參數: 無/ 全局變量: 無/ 調用模塊: 無 / 注意事項: 延時時間為 881us,誤差為 1us/-37void delay_882us (void) uchar i,j;for

57、(i=20; i0; i-) for(j=20; j0; j-) ; for (i=5; i0; i-) _nop_(); /-/ void decoder (void)/-/ 函數功能: 遙控解碼/ 入口參數: 無/ 返回參數: 無/ 全局變量: irvalidf:紅外解碼有效標志位,為 1 表示有效/ ch:紅外原碼數據存放單元/ 調用模塊: delay_882us();delay_1ms(unsigned char) / 注意事項: /-void decoder (void)uchar i,j;uchar tmp2; / tmp0:暫存原碼數據;tmp1:暫存反碼數據irvalidf =

58、 1; / 先設紅外解碼有效for (i=0; i10; i+)/ 循環(huán) 10 次,檢測在 8.820ms 內信號的電平狀態(tài)delay_882us(); / 延時 882usif (hongwai) / 若信號為高電平,則為干擾信號 irvalidf = 0; / 紅外解碼解碼無效38break;if (irvalidf)while (!hongwai); / 等待引導碼中的 9ms 低電平結束delay_1ms(5); / 延時 5ms,屏蔽引導碼中的 4.5ms高電平for (j=0; j16; j+)/ 檢測 26 位系統(tǒng)識別碼while (!hongwai); / 等待系統(tǒng)識別碼第一位

59、數據的上升沿delay_882us();/ 高電平開始后,用 882us 的時間尺檢測信號的電平狀態(tài)if (hongwai) / 若該信號為高電平,則延時 1ms等待高電平結束delay_1ms(1);/ 延時 1ms for (i=0; i2; i+) / 接收原碼和反碼數據并暫存 for (j=0; j= 1; / 先接收低位數據if (hongwai) / 若該信號為高電平,則延時 1ms 等待高電平結束delay_1ms(1); / 延時 1ms tmpi = tmpi | 0 x80; / 暫存信號此時的電平狀態(tài) if (tmp0 = tmp1) / 將原碼取反后與反碼進行比較,若兩

60、者的值相同則完成解碼ch = tmp0; / 保存原碼數據else 39irvalidf = 0;/ 若原碼和反碼不等,則本次接收的數據無效 /-/ 中斷服務子程序/-/-/ void intx0_isr (void)/-/ 函數功能: 外 0 中斷服務程序,接收到紅外信號(下降沿)響應中斷/ 入口參數: 無/ 出口參數: 無/ 全局變量: intx0f:初始為 0;為 1 表示響應了外 0 中斷/ 調用模塊: 無 / 注意事項: /-void intx0_isr (void) interrupt 0_nop_(); / 目的:跳過尖峰干擾脈沖intx0f = 1;/-/ end of fil

溫馨提示

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

評論

0/150

提交評論