版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、本科畢業(yè)設(shè)計基于單片機的遙控密碼鎖設(shè)計摘 要紅外遙控密碼鎖是一種以高強度密碼序列為基礎(chǔ),在單片機上實現(xiàn)的密碼開關(guān)。它以紅外光作為信息媒體,從而實現(xiàn)了遙遙控。該鎖具有使用方便、操作簡單、價格低廉等特點,給人們的生活帶來了極大方便,特別高輻射區(qū)、高傳染區(qū)等。本次設(shè)計的題目是基于單片機的紅外遙控密碼鎖設(shè)計。該設(shè)計包括紅外發(fā)射模塊、紅外接收模塊和單片機處理模塊。該文詳細(xì)的闡述了各模塊的設(shè)計與編程,該遙控密碼鎖能實現(xiàn)密碼輸入、密碼修改、上鎖、開鎖以及超次鎖定功能。為了防止遙控器失竊,非法人員多次試探嘗試打開遙控鎖,該系統(tǒng)還增加了錯誤報警功能,輸入密碼錯誤三次以后,蜂鳴器會持續(xù)鳴叫進行報警。軟件部分用c語
2、言進行編程,采用模塊化設(shè)計思想。發(fā)射模塊主要包括矩陣鍵盤、紅外編碼與調(diào)制部分。其中紅外發(fā)射使用紅外發(fā)光二極管,調(diào)制部分采用38khz的脈沖調(diào)制,矩陣鍵盤使用44矩陣。接受部分通過紅外接收頭接、放大和解調(diào)接收到的紅外波,該接受頭內(nèi)部電路包括紅外檢測二極管、放大器、限幅器、帶通濾波器、積分電路和比較器等。使用單片機的內(nèi)部存儲器進行密碼存儲。關(guān)鍵詞:單片機 紅外線 遙控 密碼鎖the device of infrared electronic lock in code based on single chip devicewu guanhui(college of engineering, sout
3、h china agricultural university guangzhou 510640, china)abstract:infrared remote control coded lock is a high-intensity password sequence based on single chip microcomputer implementation code switch. the lock is easy to use, simple operation, low cost and so on.it has brought great convenience to p
4、eoples life, especially high radiative zone and high transmission area.the topic of this design is based on single chip microcomputer infrared remote control coded lock design. the design includes infrared emission module, the infrared receiving module and single-chip microcomputer processing module
5、. this paper detailed expounds the module design and programming, the remote control can realize combination lock password, password modification, lock, unlock and super lock function. in order to prevent the remote control theft, illegal personnel many times testing attempts to open the remote cont
6、rol lock, the system also increases the error alarm function, input wrong password 3 times, buzzer will continue to call for the police. software part in c language programming, using modular design thought. launch module mainly includes matrix keyboard, the infrared coding and modulation. which use
7、 infrared light-emitting diodes, infrared launch modulation part on 38 khz pulse modulation, using a 4x4 matrix keyboard matrix. acceptance part through the infrared sensor, amplification and demodulating the received infrared wave, the accept header internal circuit including the infrared ray detec
8、tion diode, limiter, band pass filter, amplifier, comparator and integral circuit. it uses scms internal storage for password.key words:single chip infrared ray remote control coded lock 目 錄1 前言11.1 課題的研究背景11.2 紅外通信基本原理12 系統(tǒng)設(shè)計22.1 紅外遙控發(fā)射系統(tǒng)組成及工作原理22.2 紅外遙控接收系統(tǒng)組成及工作原理33 方案選擇和論證33.1 紅外發(fā)射模塊33.2 紅外接收模塊43
9、.3 單片機最小系統(tǒng)模塊53.4 報警模塊63.5 液晶顯示模塊63.6 鍵盤矩陣模塊74 硬件設(shè)計流程74.1 單片機最小系統(tǒng)電路74.2 報警電路84.3 紅外發(fā)射電路84.4 紅外接收電路84.5 液晶顯示器95 軟件設(shè)計流程95.1 keil uvision3軟件簡介95.2 紅外發(fā)射模塊編碼105.2.1 紅外遙控編碼思想105.2.2 軟件程序資源分配125.3 程序設(shè)計子模塊分析125.3.1 鍵盤掃描模塊135.3.2 紅外編碼模塊155.3.3 時間波形設(shè)計模塊165.3.4 紅外發(fā)射模塊175.3.5 接收解碼模塊186 硬件的實現(xiàn)與測試206.1 硬件制作206.2 硬件
10、測試206.3 硬件調(diào)試結(jié)果207 結(jié)論23參考文獻24附錄a 接收模塊原理圖25附錄b 發(fā)送模塊原理圖26附錄c 仿真圖27附錄d 主要代碼28致謝35華南農(nóng)業(yè)大學(xué)本科生畢業(yè)設(shè)計成績評定表1 前言1.1 課題的研究背景電子技術(shù)的飛速發(fā)展,給古老的鎖具生產(chǎn)帶來了巨大的變革,現(xiàn)代的電子技術(shù)與機械技術(shù)相結(jié)合,產(chǎn)生了一大批如聲控鎖、磁控鎖、密碼鎖、遙控鎖,指紋鎖等先進的鎖具。本設(shè)計是利用紅外傳輸為途徑,方便遠(yuǎn)距離開鎖,不用像傳統(tǒng)鎖那樣一定要將鑰匙插進鎖里才能開啟。該設(shè)計能實現(xiàn)密碼輸入、密碼修改、上鎖、開鎖以及超次鎖定功能。為了防止遙控器失竊,非法人員多次試探嘗試打開遙控鎖,該系統(tǒng)還增加了錯誤報警功能
11、,輸入密碼錯誤三次以后,蜂鳴器會持續(xù)鳴叫進行報警。該設(shè)計具有使用方便、操作簡單、價格低廉等特點,特別適用于那些正常人體不宜接近的特殊場所,比如高輻射區(qū)、高傳染區(qū)等。1.2 紅外通信基本原理紅外遙控是單工的紅外通信方式,本設(shè)計的紅外遙控采用以通信方式為基礎(chǔ)的紅外遙控,而且本設(shè)計也使用了紅外通信技術(shù),故著重分析紅外通信的基本原理。紅外通信是利用紅外技術(shù)實現(xiàn)兩點間的近距離保密通信和信息轉(zhuǎn)發(fā)。它一般由紅外發(fā)射和接收系統(tǒng)兩部分組成。發(fā)射系統(tǒng)對一個紅外輻射源進行調(diào)制后發(fā)射紅外信號,而接收系統(tǒng)用光學(xué)裝置和紅外探測器進行接收,就構(gòu)成紅外通信系統(tǒng)。紅外線是波長在750nm至1mm之間的電磁波,它的頻率高于微波而
12、低于可見光,是一種人的眼睛看不到的光線。紅外通信一般采用紅外波段內(nèi)的近紅外線,波長在0.75um至25um之間。紅外數(shù)據(jù)協(xié)會(irda)成立后,為了保證不同廠商的紅外產(chǎn)品能夠獲得最佳的通信效果,紅外通信協(xié)議將紅外數(shù)據(jù)通信所采用的光波波長的范圍限定在850至900nm之內(nèi)。紅外通信的基本原理是發(fā)送端將基帶二進制信號調(diào)制為一系列的脈沖串信號(載波信號),通過紅外發(fā)射管發(fā)射紅外信號。常用的有通過脈沖寬度來實現(xiàn)信號調(diào)制的脈寬調(diào)制(pwm)和通過脈沖串之間的時間間隔來實現(xiàn)信號調(diào)制的脈時調(diào)制(ppm)兩種方法,脈時調(diào)制(ppm)是紅外數(shù)據(jù)協(xié)會(irda)和國際電子電工委員會(ieee)都推薦的調(diào)制方式,本
13、設(shè)計采用脈時調(diào)制方法,即用兩個脈沖串之間的時間間隔來表示二進制信息,數(shù)據(jù)比特的傳送仿照不帶奇偶校驗的rs232通信,首先產(chǎn)生一個同步頭,然后接著8位數(shù)據(jù)比特,如圖1所示。圖1 ppm調(diào)制波形圖載波信號的頻率f=38khz,載波周期t=26.32s,本設(shè)計使用單片機軟件產(chǎn)生載波,脈沖寬度t1=10t=260s,二進制數(shù)0的脈沖串周期t2=500s,二進制數(shù)1的脈沖串周期t3=1000s。普通的紅外遙控采用面向指令的幀結(jié)構(gòu),數(shù)據(jù)幀由同步碼,地址碼和指令碼組成,指令碼長度多為816個比特,傳送多字節(jié)遙控協(xié)議時效率偏低,而增加指令碼的長度不利于接收器同步,為此本設(shè)計選用一種面向字節(jié)的幀結(jié)構(gòu),采用類似于
14、異步串行通信的幀結(jié)構(gòu),每幀由一個起始位(二進制數(shù)0)、8個數(shù)據(jù)位和2個停止位(二進制數(shù)1)構(gòu)成,如圖2所示。每幀傳送1個字節(jié)的數(shù)據(jù),幀與幀間隔大于2ms,幀結(jié)構(gòu)不含地址信息,尋址問題由高層協(xié)議解決。圖2 數(shù)據(jù)幀結(jié)構(gòu)示意圖由于紅外光存在反射,在全雙工的方式下發(fā)送的信號也可能會被本身接收,因此,紅外通信應(yīng)采用異步半雙工方式,即通信的某一方發(fā)送和接收是交替進行的。2 系統(tǒng)設(shè)計2.1 紅外遙控發(fā)射系統(tǒng)組成及工作原理紅外發(fā)射系統(tǒng)硬件部分由紅外發(fā)射電路、鍵盤矩陣電路、復(fù)位電路、晶振電路和指示燈電路組成。其結(jié)構(gòu)框圖如圖3所示。4*4鍵盤復(fù)位晶振stc89c52電源紅外發(fā)射指示燈紅外發(fā)射電路圖3 紅外遙控發(fā)射
15、框圖該紅外遙控發(fā)射系統(tǒng)采用軟件編碼方式,取代傳統(tǒng)的專用芯片編碼。鍵盤輸入信息通過i/o口傳送到單片機系統(tǒng),單片機內(nèi)部按照nec編碼協(xié)議,將鍵值信息進行編碼,并經(jīng)38khz載波調(diào)制,將調(diào)制之后的信息由紅外發(fā)射電路發(fā)射出去。2.2 紅外遙控接收系統(tǒng)組成及工作原理紅外發(fā)射系統(tǒng)硬件部分由紅外接收電路、復(fù)位電路、晶振電路、液晶顯示電路、報警電路和指示燈電路組成。其結(jié)構(gòu)框圖如圖4所示。stc89c52晶振復(fù)位紅外接收電源lcd顯示開鎖指示燈報警器圖4 紅外遙控接收框圖通過i/o口接收紅外發(fā)射系統(tǒng)發(fā)送的信息并傳送到單片機內(nèi)部,單片機內(nèi)部按照nec編碼協(xié)議,將接收到的信息進行解碼,并通過液晶顯示。3 方案選擇
16、和論證3.1 紅外發(fā)射模塊方案一:專用芯片解決方案。專用紅外編碼芯片種類很多,如日本三菱公司的m50426appt2262、bl9148、zd6631等,此類芯片一般集載波振蕩、編碼、發(fā)射于一體,具有很強的抗干擾能力,外圍電路簡單,使用很方便,而且價格很低。通用的遙控器上大多使用此類專用芯片。但是,專用芯片也有致命的弱點:專用芯片的應(yīng)用靈活性很差,其內(nèi)部編碼已經(jīng)固定,無法修改內(nèi)部數(shù)據(jù),不適用經(jīng)常需要改動傳送數(shù)據(jù)的場所;專用芯片幾乎都是面向指令型的編碼遙控方式,傳輸效率較低;大多數(shù)的專用芯片的內(nèi)部編碼及技術(shù)數(shù)據(jù)已經(jīng)公諸于世,會產(chǎn)生安全漏洞。方案二:微處理器單獨解決方案。電路如圖5所示。圖5 軟件
17、編碼發(fā)射電路該方案使用微處理器的i/o口直接產(chǎn)生38khz已調(diào)波,驅(qū)動紅外發(fā)光二極管,發(fā)射紅外數(shù)據(jù)。38khz方波由cpu的定時器產(chǎn)生或由軟件編程產(chǎn)生。 紅外編碼工作由軟件完成,因此,紅外編碼方案可以任意設(shè)計,外部只需配接非常簡單的硬件電路,大大降低了了電路的復(fù)雜性,有利于降低成本,減小遙控器的體積。 由于使用軟件編碼方案,占用了cpu的一定的時間,cpu處理速度 受到一定的影響,但是,對于遙控器這一類功能比較單一的系統(tǒng)來說,處理任務(wù)比較少,根本影響不了cpu的處理效率,僅僅是增加了軟件編程的負(fù)擔(dān)。 經(jīng)比較,方案二既可滿足題目要求,電路又非常簡單,硬件成本又很低,僅僅是增加了軟件的編程負(fù)擔(dān),使
18、得紅外編碼非常靈活,所以采用該方案。3.2 紅外接收模塊方案一:分立元件解決方案,電路如圖6所示。圖6 低電壓紅外接收電路圖中rd1為紅外接收管;r3、r4,vt1構(gòu)成反相放大器;vt2、r5、c2構(gòu)成濾波器,濾掉38khz的高頻載波;r6、r7、vt3構(gòu)成整形電路。將濾波后的波形處理為較好的方波;c1、c3為耦合電容;r2為限流電阻,當(dāng)接收到較強的信號是保護vt1(陳汝全,2004)。該方案最大的優(yōu)點是供電電壓比較低,可用兩節(jié)電池3v電壓供電。 但是,由于電路使用分立元件構(gòu)成,其穩(wěn)定性和抗干擾能力不高,影響紅外數(shù)據(jù)傳輸?shù)臏?zhǔn)確性。 方案二:集成電路解決方案,電路如圖7所示。 該方案使用一體化紅
19、外接收器,集紅外接收和放大于一體,不需任何外接元件,就能完成從紅外接收到輸出與ttl電平兼容的所有工作,而體積和普通的塑封三極管大小一樣。圖7 sm0038接收電路3.3 單片機最小系統(tǒng)模塊方案一:stc89c52是一種低功耗、高性能cmos8位微控制器,具有8k在系統(tǒng)可編程flash存儲器。stc89c52使用經(jīng)典的mcs-51內(nèi)核,但做了很多的改進使得芯片具有傳統(tǒng)51單片機不具備的功能。在單芯片上,擁有靈巧的8位cpu 和在系統(tǒng)可編程flash,使得stc89c52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。 具有以下標(biāo)準(zhǔn)功能:8k字節(jié)flash,512字節(jié)ram,32 位i/o
20、口線,看門狗定時器,內(nèi)置4kb eeprom,max810復(fù)位電路,3個16 位 定時器/計數(shù)器,4個外部中斷,一個7向量4級中斷結(jié)構(gòu)(兼容傳統(tǒng)51的5向量2級中斷結(jié)構(gòu)),全雙工串行口(david calcutt et al,2004)。另外stc89x52可降至0hz靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,cpu停止工作,允許ram、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護方式下,ram內(nèi)容被保存,振蕩器被凍結(jié),單片機一切工作停止,直到下一個中斷或硬件復(fù)位為止。最高運作頻率35mhz,6t/12t可選(李葉紫等,2004)。方案二:at89s52是一個低功耗,高性能cmos
21、 8位單片機,片內(nèi)含8k bytes isp(in-system programmable)的可反復(fù)擦寫1000次的flash只讀程序存儲器,器件采用atmel公司的高密度、非易失性存儲技術(shù)制造,兼容標(biāo)準(zhǔn)mcs-51指令系統(tǒng)及80c51引腳結(jié)構(gòu),片上flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8位cpu和在系統(tǒng)可編程flash,使得at89s52在眾多嵌入式控制應(yīng)用系統(tǒng)中得到廣泛應(yīng)用。另外,at89s52支持isp下載,并且可以通過at89s52系統(tǒng)板預(yù)留isp下載接口,實現(xiàn)在線燒寫程序。綜合比較上述兩種方案,單片機最小系統(tǒng)模塊應(yīng)采用stc89c52。3.4
22、報警模塊(1)普通單色發(fā)光二極管具有體積小、工作電壓低、工作電流小、發(fā)光均勻穩(wěn)定、響應(yīng)速度快、壽命長等優(yōu)點。但是發(fā)光二極管發(fā)光強度小,難以引起注意,用于報警功能,顯得不適合。(2)蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,采用直流電壓供電,應(yīng)用于電子產(chǎn)品中作發(fā)聲器件。采用無源蜂鳴器實現(xiàn),只要編寫相應(yīng)的程序即可實現(xiàn)發(fā)出不同頻率的聲音。蜂鳴器所使用的報警頻率為單片機內(nèi)部提供,不需外部提供時鐘頻率。因此,減少外圍設(shè)備元件。綜合上述比較,我們的設(shè)計采用二者的結(jié)合,我們采用蜂鳴器做報警器,在三次輸入密碼不正確后,蜂鳴器就會響;而發(fā)光二極管,我們則是利用它來進行判斷輸入的密碼是否正確。3.5 液晶顯示模塊方案一
23、:數(shù)碼管是利用發(fā)光二極管的特性組合而成數(shù)字顯示器件,通過控制相應(yīng)的二極管的狀態(tài)顯示相應(yīng)的數(shù)字。使數(shù)碼管正常顯示就得有驅(qū)動電路驅(qū)動相應(yīng)的段碼,數(shù)碼管現(xiàn)實方式可分為靜態(tài)顯示和動態(tài)顯示,靜態(tài)顯示方式只適合顯示單個的數(shù)字,因此設(shè)計應(yīng)采用動態(tài)顯示方式。由于動態(tài)顯示方式利用人眼視覺暫留的特性,掃描的時間應(yīng)不大于20毫秒,占用系統(tǒng)資源大,而且顯示的個數(shù)和字型有限,在本設(shè)計中不易采用。方案二:1602液晶也叫1602字符型液晶 它是一種專門用來顯示字母、數(shù)字、符號等的點型液晶模塊 它有若干個57或者511等點陣字符位組成,每個點陣字符位都可以顯示一個字符。每位之間有一個點距的間隔,每行之間也有也有間隔,起到了
24、字符間距和行間距的作用。1602的驅(qū)動電路帶有11條指令,可以很方便的控制液晶的現(xiàn)實效果如:清屏、左移右移、光標(biāo)顯示。而且1602顯示的字符在下一條指令為到來之前不會改變,也就是能夠維持顯示的字符,1602液晶占用的系統(tǒng)資源也少。綜合比較上述兩種方案,應(yīng)采用1602液晶組成本設(shè)計的顯示模塊。3.6 鍵盤矩陣模塊stc89c52單片機p2引腳外接44矩陣鍵盤,按鍵有09,還有回格鍵、清屏、設(shè)初始密碼、修改密碼等按鍵。開機后液晶屏顯示提示語,按數(shù)字鍵即可輸入密碼,按修改密碼鍵,在正確輸入舊密碼的前提下,即可修改密碼。4 硬件設(shè)計流程本設(shè)計為紅外遙控密碼鎖,硬件部分總共分為以下幾個模塊:4.1 單片
25、機最小系統(tǒng)電路單片機最小系統(tǒng)電路原理圖如圖8所示。圖8 單片機最小系統(tǒng)電路4.2 報警電路報警電路原理圖如圖9所示。圖9 報警模塊電路4.3 紅外發(fā)射電路紅外發(fā)射電路原理圖如圖10所示。圖10 紅外發(fā)送電路4.4 紅外接收電路紅外接收模塊原理圖如圖11所示。圖11 紅外接收電路4.5 液晶顯示器液晶顯示屏的引腳圖如圖12所示。圖12 液晶顯示屏引腳圖5 軟件設(shè)計流程系統(tǒng)的軟件設(shè)計才用c語言,對單片機進行編程實現(xiàn)各項功能。在軟件設(shè)計過程中,采用模塊化設(shè)計思想,利用“化整為零”、“化零為整”的方法,分別設(shè)計各個子模塊的流程圖,然后按照流程圖去編寫對應(yīng)程序,并在此過程中,分模塊進行編譯與調(diào)試。5.1
26、 keil uvision3軟件簡介keil c51是美國keil software公司出品的51系列兼容單片機c語言軟件開發(fā)系統(tǒng),與匯編相比,c語言在功能上、結(jié)構(gòu)性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學(xué)易用。用過匯編語言后再使用c來開發(fā),體會更加深刻。keil c51軟件提供豐富的庫函數(shù)和功能強大的集成開發(fā)調(diào)試工具,全windows界面。另外重要的一點,只要看一下編譯后生成的匯編代碼,就能體會到keil c51生成的目標(biāo)代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。c51工具包的整體結(jié)構(gòu),其中uvision與ishell分別是c51 f
27、or windows和for dos的集成開發(fā)環(huán)境(ide),可以完成編輯、編譯、連接、調(diào)試、仿真等整個開發(fā)流程。開發(fā)人員可用ide本身或其它編輯器編輯c或匯編源文件。然后分別由c51及a51編譯器編譯生成目標(biāo)文件(.obj)。目標(biāo)文件可由lib51創(chuàng)建生成庫文件,也可以與庫文件一起經(jīng)l51連接定位生成絕對目標(biāo)文件(.abs)。abs文件由oh51轉(zhuǎn)換成標(biāo)準(zhǔn)的hex文件,以供調(diào)試器dscope51或tscope51使用進行源代碼級調(diào)試,也可由仿真器使用直接對目標(biāo)板進行調(diào)試,也可以直接寫入程序存貯器如eprom中(王為青等,2007)。5.2 紅外發(fā)射模塊編碼在發(fā)射模塊編碼過程中,一定要嚴(yán)格按照
28、nec協(xié)議的標(biāo)準(zhǔn)進行設(shè)計。因此,在編碼之前,必須理解并掌握nec編解碼的定義。5.2.1 紅外遙控編碼思想遙控發(fā)射器專用芯片很多,根據(jù)編碼格式可以分成兩大類,這里我們以運用比較廣泛,解碼比較容易的一類來加以說明,現(xiàn)以日本nec的upd6121g組成發(fā)射電路為例說明編碼原理, 我們使用的超薄型紅外線遙控器使用的就是6121 編碼。當(dāng)發(fā)射器按鍵按下后,即有遙控碼發(fā)出,所按的鍵不同遙控編碼也不同。這種遙控碼具有以下特征: 采用脈寬調(diào)制的串行碼,以脈寬為0.565ms、間隔0.56ms、周期為1.125ms的組合表示二進制的“0”;以脈寬為0.565ms、間隔1.685ms、周期為2.25ms的組合表
29、示二進制的“1”, 其波形如圖13所示。圖13 數(shù)據(jù)波形編碼上述“0”和“1”組成的32位二進制碼經(jīng)38khz的載頻進行二次調(diào)制以提高發(fā)射效率,達到降低電源功耗的目的。然后再通過紅外發(fā)射二極管產(chǎn)生紅外線向空間發(fā)射。upd6121g產(chǎn)生的遙控編碼是連續(xù)的32位二進制碼組,其中前16位為用戶識別碼,能區(qū)別不同的電器設(shè)備,防止不同機種遙控碼互相干擾,如我們可以同時使用電視機、機頂盒、功放等遙控器,但它們不會產(chǎn)生誤觸發(fā)。該芯片的用戶識別碼固定為十六進制01h;后16位為8位操作碼(功能碼)及其反碼。upd6121g 最多額128種不同組合的編碼。 遙控器在按鍵按下后,周期性地發(fā)出同一種32位二進制碼,
30、周期約為108ms。一組碼本身的持續(xù)時間隨它包含的二進制“0”和“1”的個數(shù)不同而不同,大約在4563ms之間。如下圖14所示。圖14 遙控編碼波形當(dāng)一個鍵按下超過36ms,振蕩器使芯片激活,將發(fā)射一組108ms編碼脈沖,這108ms發(fā)射代碼由一個起始碼(9ms),一個結(jié)果碼(4.5ms),低8位地址碼(9ms18ms),高8位地址碼(9ms18ms),8位數(shù)據(jù)碼(9ms18ms)和這8位數(shù)據(jù)的反碼(9ms18ms)組成。如果鍵按下超過108ms仍未松開,接下來發(fā)射的代碼(連發(fā)代碼)將僅由起始碼(9ms)和結(jié)束碼(2.5ms)組成。代碼格式(以接收代碼為準(zhǔn),接收代碼與發(fā)射代碼反向。1、位定義
31、如圖15所示。圖15 “0”碼編碼波形2、單發(fā)代碼格式 如圖16所示。圖16 32位碼編碼波形3、連發(fā)代碼格式 如圖17所示。圖17 重復(fù)碼編碼波形由于本設(shè)計中,我們需要自己設(shè)計并制作紅外遙控系統(tǒng),并在編碼中使用nec協(xié)議。5.2.2 軟件程序資源分配在程序開始以前,首先要根據(jù)電路及設(shè)計的需要進行必要的位定義變量、無符號變量、符號變量以及數(shù)據(jù)表格變量。1、位定義變量本設(shè)計中位定義變量共有多個,包括按鍵、紅外發(fā)射端口、紅外指示燈的位定義變量以及各種功能標(biāo)志位。特殊定義函數(shù),如鍵盤掃描函數(shù)uchar key(),紅外發(fā)射函數(shù)void send_hw(uchar c),發(fā)射引導(dǎo)碼函數(shù)void sen
32、d_star(),數(shù)據(jù)編碼函數(shù)void send_char(uchar c)等。2、無字符局部變量及全局變量根據(jù)在程序中設(shè)計到的全局變量,都會在.h頭文件里予以聲明,可以同時賦初值,若沒有賦初值則程序自動賦0。本程序中設(shè)計到的全局變量包括時間變量、按鍵標(biāo)志變量、地址變量、顯示標(biāo)志變量、紅外收發(fā)標(biāo)志變量等。bit hw; /紅外發(fā)射標(biāo)志位bit key_bit; /按鍵重復(fù)標(biāo)記sbit led=p37; /這是紅外指示燈的位定義sbit out=p36; /這是紅外數(shù)據(jù)發(fā)射端口的位定義#define port p2 /這是鍵盤按鍵的接口定義5.3 程序設(shè)計子模塊分析鍵盤實際上是一組按鍵開關(guān)的集合
33、,在鍵的閉合和斷開過程中,會產(chǎn)生抖動,抖動時間長短和開關(guān)的機械特性有關(guān)。鍵的閉合與斷開,反映在行線輸出電壓上就是呈現(xiàn)高電平或低電平。為準(zhǔn)確判定按鍵的位置,我們必須消除抖動期的影響(馬忠梅等,2003)。常用軟件的方法來消除按鍵抖動。其基本思想就是:在第一次檢測到有鍵按下時,該鍵所對應(yīng)的行線為低電平,執(zhí)行一段1ms的延時子程序后,確認(rèn)該行線電平是否仍為低電平,如果仍為低電平,則確認(rèn)該行確實有按鍵按下。當(dāng)按鍵松開時,行線的低電平變?yōu)楦唠娖?,?zhí)行一段1ms的延時子程序,檢測該行線為高電平,說明按鍵確實已經(jīng)松開(李明喜,2004)。采取以上方法,即可消除抖動的影響,延時消抖程序如下。void dela
34、y() /1ms 誤差 -0.651041666667sunsigned char a,b;for(b=102;b0;b-)for(a=3;a0;a-);5.3.1 鍵盤掃描模塊本設(shè)計中采用了44矩陣鍵盤。其工作原理為:按建設(shè)在行、列線交點上。行線經(jīng)過上拉電阻接到+5v上。無鍵按下時,行線處于高電平狀態(tài);當(dāng)有按鍵按下時,行線電平狀態(tài)將由與此行線相連的列線的電平?jīng)Q定。按鍵的識別方法:1、掃描法第一步,首先要識別有無鍵按下。將所有的列線均置為0電平,然后檢查各行線電平是否都為高電平,如果不全為高電平,則有鍵按下,否則說明無鍵按下。此時也只能判定按鍵的所在行。第二步,識別出按鍵的具體位置用掃描法。在
35、某一時刻,只讓一條列線處于低電平,其余所有列線處于高電平。以此類推,若此過程中,有行線電平由高電平變成低電平,則該時刻的列線即為按鍵所在列。由此,可以判斷出按下的按鍵具體位置。2、線反轉(zhuǎn)法第一步,讓行線編程為輸入線,列線編程為輸出線,并使輸出線輸出電平全為低電平,則行線中電平由高變低的所在行為按鍵所在行。第二步,再把行線編程列為輸出線,列線編程為輸入線,并使輸出線輸出電平為全低電平,則列線中電平由高變低所在列為按鍵所在列。由此,便可識別出按鍵的具體位置(王建校等,2002)。盡管在實際應(yīng)用中,兩種方法都可行,但是掃描法要逐列掃描查詢,當(dāng)被按下的鍵處于最后一列時,則要經(jīng)過多次掃描才能最后獲得此按
36、鍵所處的行列值。而線反轉(zhuǎn)法很簡單,無論被按鍵是處于第一列還是最后一列,均只需經(jīng)過兩步便能獲得此按鍵所在的行列值。故在本次設(shè)計中,我采用了線反轉(zhuǎn)法。鍵盤工作方式有三種,即編程掃描、定時掃描和中斷掃描。1、編程掃描方式:這種方式只有當(dāng)單片機空閑時,才調(diào)用鍵盤掃描子程序,反復(fù)掃描鍵盤,等待用戶從鍵盤上輸入命令或數(shù)據(jù),來響應(yīng)鍵盤的輸入請求。2、定時掃描方式:單片機對鍵盤的掃描也可以采用定時掃描方式,即每隔一定的時間對鍵盤進行掃描一次。在這種方式中,通常利用單片機內(nèi)的定時器產(chǎn)生10ms的定時中斷,單片機響應(yīng)定時器溢出中斷請求,對鍵盤進行掃描。3、中斷掃描方式:為進一步提高單片機掃描鍵盤的工作效率,可采用
37、中斷掃描方式,即只有在鍵盤有鍵按下時,才執(zhí)行鍵盤掃描程序并執(zhí)行該按鍵功能程序。鍵盤掃描模塊程序流程圖如下圖18所示。開始判斷是否有鍵按下 鍵鍵按下延時1ms消抖動是逐行列掃描鍵值轉(zhuǎn)換鍵值判斷是否有鍵按下 鍵鍵按下結(jié)束否是是否圖否18 鍵盤掃描子程序由此流程圖可以對應(yīng)編程,采取反轉(zhuǎn)法進行識別按鍵具體位置。此程序中先將鍵盤口賦值0f,或者f0。當(dāng)先令port=0x0f ,若有按鍵按下,則可得到此時變化后的port值,并賦值給a;再令port=0xf0,若有按鍵按下,得到此時變化后的port值。將此時的port值與a取或,即可得到該按鍵的鍵值。但此時得到的鍵值都很大,故將a取反使得鍵值更簡單,其鍵盤
38、掃描子模塊編程如下。uchar key()uchar a;a=0;port=0x0f;a=port;if(a=0x0f) key_bit=1; delay();return 0;if(!key_bit) return 0;delay();if(port=a) port=0xf0;a|=port;a=a;else return 0;5.3.2 紅外編碼模塊采用脈寬調(diào)制的串行碼,設(shè)計過程中,按照nec協(xié)議嚴(yán)格進行編碼。其流程圖如圖19所示。該編碼嚴(yán)格按照nec協(xié)議中的規(guī)則,用0.56ms的低電平與0.56ms的高電平組合表示“0”,用0.56ms的低電平和1.68ms的高電平組合表示“1”。當(dāng)一個
39、鍵按下超過36ms,振蕩器使芯片激活,將發(fā)射一組108ms編碼脈沖,這108ms發(fā)射代碼由一個起始碼(9ms),一個結(jié)果碼(4.5ms),低8 位地址碼(9ms18ms),高8 位地址碼(9ms18ms),8 位數(shù)據(jù)碼(9ms18ms)和這8 位數(shù)據(jù)的反碼(9ms18ms)組成。如果鍵按下超過108ms 仍未松開,接下來發(fā)射的代碼(連發(fā)代碼)將僅由起始碼(9ms)和結(jié)束碼(2.5ms)組成。代碼格式(以接收代碼為準(zhǔn),接收代碼與發(fā)射代碼反向)(董繼成,2004)。圖19 編碼流程圖發(fā)射部分與接收的軟件功能幾乎相同,不同之處就是一個發(fā)射一個是接收。發(fā)射部分的功能實際就是接收部分的無線鍵盤。5.3.
40、3 時間波形設(shè)計模塊在中斷延時程序,由time值的改變來控制不同長度波形的產(chǎn)生和調(diào)制。void timer0interrupt(void) interrupt 1if(time) time-,over=0;else over=1,hw=0;if(hw) out=out;else out=1;通過time值的改變分別來發(fā)射9ms的38khz方波、4.5ms的高電平, 0.565ms的38khz方波與1.685ms的高電平或者0.565ms的高電平等。在紅外數(shù)據(jù)調(diào)制過程中,在相應(yīng)的高電平時間里發(fā)送38khz的方波,在低電平時間不發(fā)射調(diào)制波,只是延時對應(yīng)的低電平時間。這樣就達到了調(diào)制的目的。在接收解
41、碼時,有脈沖為低電平,無脈沖為高電平,這樣就實現(xiàn)了碼形的恢復(fù)。然后根據(jù)波形長度的不同,來判斷它是引導(dǎo)碼,還是“0”碼或者“1”碼。5.3.4 紅外發(fā)射模塊設(shè)計中,發(fā)射模塊啟用了多種子模塊,發(fā)射模塊流程圖如下圖20。是是是否開始從數(shù)據(jù)緩沖區(qū)取一字節(jié)數(shù)據(jù)區(qū)提取從高位開始取一位數(shù)是“0”碼調(diào)數(shù)據(jù)位1發(fā)射模塊調(diào)數(shù)據(jù)位0發(fā)射模塊發(fā)完8位數(shù)修改數(shù)據(jù)緩沖區(qū)指針數(shù)據(jù)發(fā)射完否返回否否發(fā)射引導(dǎo)碼碼圖20 發(fā)射模塊流程圖在該模塊中,由send_star()函數(shù)來發(fā)射引導(dǎo)碼,由send_char()函數(shù)來發(fā)射經(jīng)38khz載波調(diào)制的地址碼和數(shù)據(jù)碼即鍵值碼。send_star()函數(shù)中通過time值的設(shè)定,進入中斷,執(zhí)行
42、timer0interrupt(void) interrupt 1函數(shù)借以產(chǎn)生調(diào)制鍵值。void send_hw(uchar c)key_bit=0;send_star();send_char(addr0);send_char(addr1);send_char(c);send_char(c);其中addr0、addr1是16位地址碼,用以區(qū)分發(fā)射紅外遙控編碼的不同設(shè)備。紅外接收器接收到紅外發(fā)光管的信號后,再單通過單片機的串口通信來實現(xiàn)信號的傳輸。其中比較難設(shè)計的是38khz二次調(diào)制后發(fā)射數(shù)據(jù),數(shù)據(jù)由高位開始發(fā)射。且當(dāng)該位為“1”碼時調(diào)制發(fā)射長度為1.685ms的38khz脈沖;當(dāng)為“0”碼時,
43、調(diào)制發(fā)射長度為0.565ms的38khz脈沖(張文崢等,2000)。5.3.5 接收解碼模塊紅外接收解碼的關(guān)鍵是如何識別0和1碼,我的做法是根據(jù)0和1碼的高電平寬度不一樣的特點來進行識別。進入紅外接收程序后先關(guān)閉中斷。接著的工作是避開9ms高電平、4.5ms的低電平的引導(dǎo)碼,并且判斷是否干擾信號或者重復(fù)信號。正如前面所說,一體化紅外接收頭的輸出端電平跟遙控發(fā)射端電平相反。所以只要遙控有鍵按下單片機就會馬上產(chǎn)生中斷接收數(shù)據(jù)。跟在引導(dǎo)碼后面的是8位數(shù)據(jù)碼,也就是我們想要的數(shù)據(jù),單片機把它接收并保存。當(dāng)接收完8位的數(shù)據(jù)時要更換另外一個數(shù)據(jù)緩沖區(qū),當(dāng)8位的鍵碼都接收完的時候就意味這一幀的數(shù)據(jù)已經(jīng)接收完
44、畢。然后根據(jù)接收到的數(shù)據(jù)碼和數(shù)據(jù)反碼是否對應(yīng)位相反來確定接收的這一幀數(shù)據(jù)是否正確,最后退出接收解碼程序(邱玉春等,2000)。void int1(void) interrupt 2 using 1uchar dh;uchar k;tr0=0;dh=th0;tl0=0;th0=0;tr0=1;if(dh25&dh2&dh6&dh12) k=1;else n=0;if(n) dat=dat1;dat+=k;if(n=25) buffer0=dat,dat=0;if(n=17) buffer1=dat,dat=0;if(n=9) buffer2=dat,dat=0;if(n=1) buffer3=d
45、at,dat=0;n-;if(!n)if(!(buffer2&buffer3) /數(shù)據(jù)校驗 js=1; /接收完成 beep=0;elsebuffer0=0;buffer1=0;6 硬件的實現(xiàn)與測試6.1 硬件制作首先,根據(jù)電路原理圖購買需要的元器件,如果有些元器件購買不到,則需要選擇型號不同性能相似的元器件;然后按照電路原理圖在萬能板上布局、焊接電路,在焊接過程中要注意的是不要虛焊、短路和區(qū)分部分元器件的正負(fù)極;最后,初步焊接完成后,檢查有沒有漏焊并把正極線和地線統(tǒng)一。6.2 硬件測試1、用萬用表測試電路有沒有短路;2、在通電的時候,檢查各個芯片有沒有過熱的現(xiàn)象;3、檢查三極管、二極管和蜂鳴
46、器正負(fù)極有沒有焊接錯誤;4、繼續(xù)檢查其余模塊確保電路沒有問題。6.3 硬件調(diào)試結(jié)果本設(shè)計是紅外遙控密碼鎖,其紅外和報警系統(tǒng)是不可視的,因此調(diào)試結(jié)果主要通過液晶顯示器和發(fā)光二極管來顯示調(diào)試結(jié)果。情況一:如圖21所示。圖21 密碼鎖上電時如圖22所示,這是接收模塊上電時的提示狀態(tài),提示用戶輸入密碼,用戶只有正確輸入密碼以后才能開鎖。情況二: 如圖22、23所示。圖22 密碼輸入正確時鎖開圖23 密碼輸入錯誤時提示當(dāng)用于輸入密碼正確時,液晶顯示器會如圖22所示,當(dāng)用戶輸入密碼錯誤時,液晶顯示器會如圖23所示,此時用戶還可以繼續(xù)輸入兩次,如果三次輸入的密碼都是錯誤時,則蜂鳴器會發(fā)出報警的聲音,并且發(fā)光
47、二極管會一直閃爍。情況三:如圖24、25所示。圖24 修改密碼鍵按下提示輸入新密碼 圖25 重新輸入新密碼 在正確輸入密碼后,如果按下修改密碼鍵,液晶顯示器會如圖24所示,讓用戶輸入新密碼,第一次輸入后,液晶顯示器會如圖25所示,讓用戶再次輸入新密碼。如果兩次輸入的新密碼不同,則液晶顯示屏?xí)崾惧e誤。7 結(jié)論本系統(tǒng)以單片機stc89s52芯片為核心部件,利用紅外通信技術(shù),并配合一套獨特的軟件算法實現(xiàn)了紅外信號傳輸、密碼開鎖、密碼修改、密碼輸錯鎖屏報警、lcd顯示、鍵盤掃描等功能,實驗和理論分析結(jié)果都表明,紅外遙控電子密碼鎖設(shè)計完成了設(shè)計的各項任務(wù)。參 考 文 獻陳汝全.電子技術(shù)常用器件應(yīng)用手冊
48、m.北京:機械工業(yè)出版社,2004:45-48.董繼成.一種新型安全的單片機密碼鎖j.電子技術(shù),2004,(03):22-23.李明喜.新型電子密碼鎖的設(shè)計j.機電產(chǎn)品開發(fā)與創(chuàng)新,2004,(03):40-41.李葉紫,胡輝,孫東輝.mcs-51單片機應(yīng)用教程m.北京:清華大學(xué)出版社,2004:33-40.馬忠梅,籍順心,張凱等.單片機的c語言應(yīng)用程序設(shè)計m.第3版.北京:北京航空航天大學(xué)出版社,2003:8-12.邱玉春,李文俊.單片機系統(tǒng)中的紅外通信接口j.電子產(chǎn)品世界,2000,41-42.王為青,程國鋼.單片機keil cx51應(yīng)用開發(fā)技術(shù)m.北京.人民郵電出版社,2007:8-12.
49、王建校,謝維成,楊建國等.51系列單片機及c51程序設(shè)計m.北京:科學(xué)出版社,2002:80-90.葉啟明.單片機制作的新型安全密碼鎖j.家庭電子,2005,(10):30-31.張文崢,李先亮.irda紅外通信在導(dǎo)航儀中的應(yīng)用j.電子技術(shù)應(yīng)用,2000,(10):45-47.david calcutt,frederick cowan,hassan parchizadeh.8051 microcontrollers:an applications based introductionm.oxford: newnes,2004:1-3. 附錄a 接收模塊原理附錄b 發(fā)送模塊原理圖附錄c 仿真圖附錄d 主要代碼發(fā)射端源程序主要代碼#include /13.37589#define uchar unsigned char#define uint unsigned intsbit led=p37;sbit out=p36;#define port p2/定義地址碼#define addr0 0x01#define addr1 0x02bit key_bit; /按鍵重復(fù)標(biāo)記bit hw;bit over;bit ss;uchar timevoid delay();void inittimer0(void);void inituart(void);void send
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《現(xiàn)代社區(qū)會所的人性化設(shè)計研究》
- 2024版智能家居定制開發(fā)全面合同2篇
- 《O-型模李超代數(shù)的濾過》
- 2025年度綠色有機西瓜產(chǎn)銷一體化合同范本3篇
- 《我國民事非法證據(jù)排除規(guī)則研究》
- 《小薊化學(xué)成分研究》
- 中國介電陶瓷材料行業(yè)市場前景預(yù)測及投資價值評估分析報告
- 二零二五年度能源產(chǎn)業(yè)合作協(xié)議書
- 《保鮮濕面品質(zhì)的研究》
- 《呼倫貝爾市飼草產(chǎn)業(yè)發(fā)展問題研究》
- 最新VTE指南解讀(靜脈血栓栓塞癥的臨床護理指南解讀)
- 生產(chǎn)計劃控制程序文件
- 山東省濟南市2022年中考英語情景運用拔高練習(xí)(Word版含答案)
- 護理查房-糖尿病足 PPT課件
- 強力夯實加固地基質(zhì)量通病防治
- (高清正版)T-CAGHP 015—2018地質(zhì)災(zāi)害治理工程監(jiān)理預(yù)算標(biāo)準(zhǔn)(試行)
- Q∕GDW 12083-2021 輸變電設(shè)備物聯(lián)網(wǎng)無線節(jié)點設(shè)備技術(shù)規(guī)范
- 公司物流倉儲規(guī)劃方案及建議書
- 智能掃地機器人畢業(yè)設(shè)計
- 佳能EOS7D數(shù)碼單反相機說明書
- 大型焰火燃放活動方案審批表
評論
0/150
提交評論