




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 . . . 本科畢業設計基于單片機的遙控密碼鎖設計摘 要紅外遙控密碼鎖是一種以高強度密碼序列為基礎,在單片機上實現的密碼開關。它以紅外光作為信息媒體,從而實現了遙遙控。該鎖具有使用方便、操作簡單、價格低廉等特點,給人們的生活帶來了極大方便,特別高輻射區、高傳染區等。本次設計的題目是基于單片機的紅外遙控密碼鎖設計。該設計包括紅外發射模塊、紅外接收模塊和單片機處理模塊。該文詳細的闡述了各模塊的設計與編程,該遙控密碼鎖能實現密碼輸入、密碼修改、上鎖、開鎖以與超次鎖定功能。為了防止遙控器失竊,非法人員多次試探嘗試打開遙控鎖,該系統還增加了錯誤報警功能,輸入密碼錯誤三次以后,蜂鳴器會持續鳴叫進行報警。
2、軟件部分用C語言進行編程,采用模塊化設計思想。發射模塊主要包括矩陣鍵盤、紅外編碼與調制部分。其中紅外發射使用紅外發光二極管,調制部分采用38kHz的脈沖調制,矩陣鍵盤使用4×4矩陣。接受部分通過紅外接收頭接、放大和解調接收到的紅外波,該接受頭部電路包括紅外檢測二極管、放大器、限幅器、帶通濾波器、積分電路和比較器等。使用單片機的部存儲器進行密碼存儲。關鍵詞:單片機 紅外線 遙控 密碼鎖The Device of Infrared Electronic Lock in Code Based on single chip DeviceWu Guanhui(College of Engine
3、ering, South 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 conven
4、ience to people's 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 pr
5、ocessing module. 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
6、the remote control 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 modula
7、tion. Which use 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 inf
8、rared ray detection 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 / 41目 錄1 前言11.1 課題的研究背景11.2 紅外通信基本原理12 系統設計22.1 紅外遙控發射系統組成與工作原理22.2 紅外遙控接收系統組成與工作原理33 方案選擇和論證33.
9、1 紅外發射模塊33.2 紅外接收模塊43.3 單片機最小系統模塊53.4 報警模塊63.5 液晶顯示模塊63.6 鍵盤矩陣模塊74 硬件設計流程74.1 單片機最小系統電路74.2 報警電路84.3 紅外發射電路84.4 紅外接收電路84.5 液晶顯示器95 軟件設計流程95.1 Keil uVision3軟件簡介95.2 紅外發射模塊編碼105.2.1 紅外遙控編碼思想105.2.2 軟件程序資源分配125.3 程序設計子模塊分析125.3.1 鍵盤掃描模塊135.3.2 紅外編碼模塊155.3.3 時間波形設計模塊165.3.4 紅外發射模塊175.3.5 接收解碼模塊186 硬件的實現
10、與測試206.1 硬件制作206.2 硬件測試206.3 硬件調試結果207 結論23參考文獻24附錄A 接收模塊原理圖25附錄B 發送模塊原理圖26附錄C 仿真圖27附錄D 主要代碼28致35華南農業大學本科生畢業設計成績評定表1 前言1.1 課題的研究背景電子技術的飛速發展,給古老的鎖具生產帶來了巨大的變革,現代的電子技術與機械技術相結合,產生了一大批如聲控鎖、磁控鎖、密碼鎖、遙控鎖,指紋鎖等先進的鎖具。本設計是利用紅外傳輸為途徑,方便遠距離開鎖,不用像傳統鎖那樣一定要將鑰匙插進鎖里才能開啟。該設計能實現密碼輸入、密碼修改、上鎖、開鎖以與超次鎖定功能。為了防止遙控器失竊,非法人員多次試探嘗
11、試打開遙控鎖,該系統還增加了錯誤報警功能,輸入密碼錯誤三次以后,蜂鳴器會持續鳴叫進行報警。該設計具有使用方便、操作簡單、價格低廉等特點,特別適用于那些正常人體不宜接近的特殊場所,比如高輻射區、高傳染區等。1.2 紅外通信基本原理紅外遙控是單工的紅外通信方式,本設計的紅外遙控采用以通信方式為基礎的紅外遙控,而且本設計也使用了紅外通信技術,故著重分析紅外通信的基本原理。紅外通信是利用紅外技術實現兩點間的近距離通信和信息轉發。它一般由紅外發射和接收系統兩部分組成。發射系統對一個紅外輻射源進行調制后發射紅外信號,而接收系統用光學裝置和紅外探測器進行接收,就構成紅外通信系統。紅外線是波長在750nm至1
12、mm之間的電磁波,它的頻率高于微波而低于可見光,是一種人的眼睛看不到的光線。紅外通信一般采用紅外波段的近紅外線,波長在0.75um至25um之間。紅外數據協會(IrDA)成立后,為了保證不同廠商的紅外產品能夠獲得最佳的通信效果,紅外通信協議將紅外數據通信所采用的光波波長的圍限定在850至900nm之。紅外通信的基本原理是發送端將基帶二進制信號調制為一系列的脈沖串信號(載波信號),通過紅外發射管發射紅外信號。常用的有通過脈沖寬度來實現信號調制的脈寬調制(PWM)和通過脈沖串之間的時間間隔來實現信號調制的脈時調制(PPM)兩種方法,脈時調制(PPM)是紅外數據協會(IrDA)和國際電子電工委員會(
13、IEEE)都推薦的調制方式,本設計采用脈時調制方法,即用兩個脈沖串之間的時間間隔來表示二進制信息,數據比特的傳送仿照不帶奇偶校驗的RS232通信,首先產生一個同步頭,然后接著8位數據比特,如圖1所示。圖1 PPM調制波形圖載波信號的頻率f=38kHz,載波周期T=26.32s,本設計使用單片機軟件產生載波,脈沖寬度t1=10T=260s,二進制數0的脈沖串周期t2=500s,二進制數1的脈沖串周期t3=1000s。普通的紅外遙控采用面向指令的幀結構,數據幀由同步碼,地址碼和指令碼組成,指令碼長度多為816個比特,傳送多字節遙控協議時效率偏低,而增加指令碼的長度不利于接收器同步,為此本設計選用一
14、種面向字節的幀結構,采用類似于異步串行通信的幀結構,每幀由一個起始位(二進制數0)、8個數據位和2個停止位(二進制數1)構成,如圖2所示。每幀傳送1個字節的數據,幀與幀間隔大于2ms,幀結構不含地址信息,尋址問題由高層協議解決。圖2 數據幀結構示意圖由于紅外光存在反射,在全雙工的方式下發送的信號也可能會被本身接收,因此,紅外通信應采用異步半雙工方式,即通信的某一方發送和接收是交替進行的。2 系統設計2.1 紅外遙控發射系統組成與工作原理紅外發射系統硬件部分由紅外發射電路、鍵盤矩陣電路、復位電路、晶振電路和指示燈電路組成。其結構框圖如圖3所示。4*4鍵盤復位晶振STC89C52電源紅外發射指示燈
15、紅外發射電路圖3 紅外遙控發射框圖該紅外遙控發射系統采用軟件編碼方式,取代傳統的專用芯片編碼。鍵盤輸入信息通過I/O口傳送到單片機系統,單片機部按照NEC編碼協議,將鍵值信息進行編碼,并經38kHz載波調制,將調制之后的信息由紅外發射電路發射出去。2.2 紅外遙控接收系統組成與工作原理紅外發射系統硬件部分由紅外接收電路、復位電路、晶振電路、液晶顯示電路、報警電路和指示燈電路組成。其結構框圖如圖4所示。stc89c52晶振復位紅外接收電源LCD顯示開鎖指示燈報警器圖4 紅外遙控接收框圖通過I/O口接收紅外發射系統發送的信息并傳送到單片機部,單片機部按照NEC編碼協議,將接收到的信息進行解碼,并通
16、過液晶顯示。3 方案選擇和論證3.1 紅外發射模塊方案一:專用芯片解決方案。專用紅外編碼芯片種類很多,如日本三菱公司的M50426APPT2262、BL9148、ZD6631等,此類芯片一般集載波振蕩、編碼、發射于一體,具有很強的抗干擾能力,外圍電路簡單,使用很方便,而且價格很低。通用的遙控器上大多使用此類專用芯片。但是,專用芯片也有致命的弱點:專用芯片的應用靈活性很差,其部編碼已經固定,無法修改部數據,不適用經常需要改動傳送數據的場所;專用芯片幾乎都是面向指令型的編碼遙控方式,傳輸效率較低;大多數的專用芯片的部編碼與技術數據已經公諸于世,會產生安全漏洞。方案二:微處理器單獨解決方案。電路如圖
17、5所示。圖5 軟件編碼發射電路該方案使用微處理器的I/O口直接產生38kHz已調波,驅動紅外發光二極管,發射紅外數據。38kHz方波由CPU的定時器產生或由軟件編程產生。 紅外編碼工作由軟件完成,因此,紅外編碼方案可以任意設計,外部只需配接非常簡單的硬件電路,大大降低了了電路的復雜性,有利于降低成本,減小遙控器的體積。 由于使用軟件編碼方案,占用了CPU的一定的時間,CPU處理速度 受到一定的影響,但是,對于遙控器這一類功能比較單一的系統來說,處理任務比較少,根本影響不了CPU的處理效率,僅僅是增加了軟件編程的負擔。 經比較,方案二既可滿足題目要求,電路又非常簡單,硬件成本又很低,僅僅是增加了
18、軟件的編程負擔,使得紅外編碼非常靈活,所以采用該方案。3.2 紅外接收模塊方案一:分立元件解決方案,電路如圖6所示。圖6 低電壓紅外接收電路圖中RD1為紅外接收管;R3、R4,VT1構成反相放大器;VT2、R5、C2構成濾波器,濾掉38kHz的高頻載波;R6、R7、VT3構成整形電路。將濾波后的波形處理為較好的方波;C1、C3為耦合電容;R2為限流電阻,當接收到較強的信號是保護VT1(汝全,2004)。該方案最大的優點是供電電壓比較低,可用兩節電池3V電壓供電。但是,由于電路使用分立元件構成,其穩定性和抗干擾能力不高,影響紅外數據傳輸的準確性。方案二:集成電路解決方案,電路如圖7所示。該方案使
19、用一體化紅外接收器,集紅外接收和放大于一體,不需任何外接元件,就能完成從紅外接收到輸出與TTL電平兼容的所有工作,而體積和普通的塑封三極管大小一樣。圖7 SM0038接收電路3.3 單片機最小系統模塊方案一:STC89C52是一種低功耗、高性能CMOS8位微控制器,具有8K在系統可編程Flash存儲器。STC89C52使用經典的MCS-51核,但做了很多的改進使得芯片具有傳統51單片機不具備的功能。在單芯片上,擁有靈巧的8位CPU 和在系統可編程Flash,使得STC89C52為眾多嵌入式控制應用系統提供高靈活、超有效的解決方案。 具有以下標準功能:8k字節Flash,512字節RAM,32
20、位I/O口線,看門狗定時器,置4KB EEPROM,MAX810復位電路,3個16 位 定時器/計數器,4個外部中斷,一個7向量4級中斷結構(兼容傳統51的5向量2級中斷結構),全雙工串行口(David Calcutt et al,2004)。另外STC89X52可降至0Hz靜態邏輯操作,支持2種軟件可選擇節電模式。空閑模式下,CPU停止工作,允許RAM、定時器/計數器、串口、中斷繼續工作。掉電保護方式下,RAM容被保存,振蕩器被凍結,單片機一切工作停止,直到下一個中斷或硬件復位為止。最高運作頻率35MHz,6T/12T可選(葉紫等,2004)。方案二:AT89S52是一個低功耗,高性能CMO
21、S 8位單片機,片含8k Bytes ISP(In-system programmable)的可反復擦寫1000次的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術制造,兼容標準MCS-51指令系統與80C51引腳結構,片上Flash允許程序存儲器在系統可編程,亦適于常規編程器。在單芯片上,擁有靈巧的8位CPU和在系統可編程Flash,使得AT89S52在眾多嵌入式控制應用系統中得到廣泛應用。另外,AT89S52支持ISP下載,并且可以通過AT89S52系統板預留ISP下載接口,實現在線燒寫程序。綜合比較上述兩種方案,單片機最小系統模塊應采用STC89C52。3.4
22、報警模塊(1)普通單色發光二極管具有體積小、工作電壓低、工作電流小、發光均勻穩定、響應速度快、壽命長等優點。但是發光二極管發光強度小,難以引起注意,用于報警功能,顯得不適合。(2)蜂鳴器是一種一體化結構的電子訊響器,采用直流電壓供電,應用于電子產品中作發聲器件。采用無源蜂鳴器實現,只要編寫相應的程序即可實現發出不同頻率的聲音。蜂鳴器所使用的報警頻率為單片機部提供,不需外部提供時鐘頻率。因此,減少外圍設備元件。綜合上述比較,我們的設計采用二者的結合,我們采用蜂鳴器做報警器,在三次輸入密碼不正確后,蜂鳴器就會響;而發光二極管,我們則是利用它來進行判斷輸入的密碼是否正確。3.5 液晶顯示模塊方案一:
23、數碼管是利用發光二極管的特性組合而成數字顯示器件,通過控制相應的二極管的狀態顯示相應的數字。使數碼管正常顯示就得有驅動電路驅動相應的段碼,數碼管現實方式可分為靜態顯示和動態顯示,靜態顯示方式只適合顯示單個的數字,因此設計應采用動態顯示方式。由于動態顯示方式利用人眼視覺暫留的特性,掃描的時間應不大于20毫秒,占用系統資源大,而且顯示的個數和字型有限,在本設計中不易采用。方案二:1602液晶也叫1602字符型液晶 它是一種專門用來顯示字母、數字、符號等的點型液晶模塊 它有若干個5×7或者5×11等點陣字符位組成,每個點陣字符位都可以顯示一個字符。每位之間有一個點距的間隔,每行之
24、間也有也有間隔,起到了字符間距和行間距的作用。1602的驅動電路帶有11條指令,可以很方便的控制液晶的現實效果如:清屏、左移右移、光標顯示。而且1602顯示的字符在下一條指令為到來之前不會改變,也就是能夠維持顯示的字符,1602液晶占用的系統資源也少。綜合比較上述兩種方案,應采用1602液晶組成本設計的顯示模塊。3.6 鍵盤矩陣模塊STC89C52單片機P2引腳外接4×4矩陣鍵盤,按鍵有09,還有回格鍵、清屏、設初始密碼、修改密碼等按鍵。開機后液晶屏顯示提示語,按數字鍵即可輸入密碼,按修改密碼鍵,在正確輸入舊密碼的前提下,即可修改密碼。4 硬件設計流程本設計為紅外遙控密碼鎖,硬件部分
25、總共分為以下幾個模塊:4.1 單片機最小系統電路單片機最小系統電路原理圖如圖8所示。圖8 單片機最小系統電路4.2 報警電路報警電路原理圖如圖9所示。圖9 報警模塊電路4.3 紅外發射電路紅外發射電路原理圖如圖10所示。圖10 紅外發送電路4.4 紅外接收電路紅外接收模塊原理圖如圖11所示。圖11 紅外接收電路4.5 液晶顯示器液晶顯示屏的引腳圖如圖12所示。圖12 液晶顯示屏引腳圖5 軟件設計流程系統的軟件設計才用C語言,對單片機進行編程實現各項功能。在軟件設計過程中,采用模塊化設計思想,利用“化整為零”、“化零為整”的方法,分別設計各個子模塊的流程圖,然后按照流程圖去編寫對應程序,并在此過
26、程中,分模塊進行編譯與調試。5.1 Keil uVision3軟件簡介Keil C51是美國Keil Software公司出品的51系列兼容單片機C語言軟件開發系統,與匯編相比,C語言在功能上、結構性、可讀性、可維護性上有明顯的優勢,因而易學易用。用過匯編語言后再使用C來開發,體會更加深刻。Keil C51軟件提供豐富的庫函數和功能強大的集成開發調試工具,全Windows界面。另外重要的一點,只要看一下編譯后生成的匯編代碼,就能體會到Keil C51生成的目標代碼效率非常之高,多數語句生成的匯編代碼很緊湊,容易理解。在開發大型軟件時更能體現高級語言的優勢。C51工具包的整體結構,其中uVisi
27、on與Ishell分別是C51 for Windows和for Dos的集成開發環境(IDE),可以完成編輯、編譯、連接、調試、仿真等整個開發流程。開發人員可用IDE本身或其它編輯器編輯C或匯編源文件。然后分別由C51與A51編譯器編譯生成目標文件(.OBJ)。目標文件可由LIB51創建生成庫文件,也可以與庫文件一起經L51連接定位生成絕對目標文件(.ABS)。ABS文件由OH51轉換成標準的Hex文件,以供調試器dScope51或tScope51使用進行源代碼級調試,也可由仿真器使用直接對目標板進行調試,也可以直接寫入程序存貯器如EPROM中(王為青等,2007)。5.2 紅外發射模塊編碼在
28、發射模塊編碼過程中,一定要嚴格按照NEC協議的標準進行設計。因此,在編碼之前,必須理解并掌握NEC編解碼的定義。5.2.1 紅外遙控編碼思想遙控發射器專用芯片很多,根據編碼格式可以分成兩大類,這里我們以運用比較廣泛,解碼比較容易的一類來加以說明,現以日本NEC的uPD6121G組成發射電路為例說明編碼原理, 我們使用的超薄型紅外線遙控器使用的就是6121 編碼。當發射器按鍵按下后,即有遙控碼發出,所按的鍵不同遙控編碼也不同。這種遙控碼具有以下特征: 采用脈寬調制的串行碼,以脈寬為0.565ms、間隔0.56ms、周期為1.125ms的組合表示二進制的“0”;以脈寬為0.565ms、間隔1.68
29、5ms、周期為2.25ms的組合表示二進制的“1”, 其波形如圖13所示。圖13 數據波形編碼上述“0”和“1”組成的32位二進制碼經38kHz的載頻進行二次調制以提高發射效率,達到降低電源功耗的目的。然后再通過紅外發射二極管產生紅外線向空間發射。UPD6121G產生的遙控編碼是連續的32位二進制碼組,其中前16位為用戶識別碼,能區別不同的電器設備,防止不同機種遙控碼互相干擾,如我們可以同時使用電視機、機頂盒、功放等遙控器,但它們不會產生誤觸發。該芯片的用戶識別碼固定為十六進制01H;后16位為8位操作碼(功能碼)與其反碼。UPD6121G 最多額128種不同組合的編碼。 遙控器在按鍵按下后,
30、周期性地發出同一種32位二進制碼,周期約為108ms。一組碼本身的持續時間隨它包含的二進制“0”和“1”的個數不同而不同,大約在4563ms之間。如下圖14所示。圖14 遙控編碼波形當一個鍵按下超過36ms,振蕩器使芯片激活,將發射一組108ms編碼脈沖,這108ms發射代碼由一個起始碼(9ms),一個結果碼(4.5ms),低8位地址碼(9ms18ms),高8位地址碼(9ms18ms),8位數據碼(9ms18ms)和這8位數據的反碼(9ms18ms)組成。如果鍵按下超過108ms仍未松開,接下來發射的代碼(連發代碼)將僅由起始碼(9ms)和結束碼(2.5ms)組成。代碼格式(以接收代碼為準,接
31、收代碼與發射代碼反向。1、位定義 如圖15所示。圖15 “0”碼編碼波形2、單發代碼格式 如圖16所示。圖1632位碼編碼波形3、連發代碼格式 如圖17所示。圖17重復碼編碼波形由于本設計中,我們需要自己設計并制作紅外遙控系統,并在編碼中使用NEC協議。5.2.2 軟件程序資源分配在程序開始以前,首先要根據電路與設計的需要進行必要的位定義變量、無符號變量、符號變量以與數據表格變量。1、位定義變量本設計中位定義變量共有多個,包括按鍵、紅外發射端口、紅外指示燈的位定義變量以與各種功能標志位。特殊定義函數,如鍵盤掃描函數uchar key(),紅外發射函數void send_hw(uchar c),
32、發射引導碼函數void send_star(),數據編碼函數void send_char(uchar c)等。2、無字符局部變量與全局變量根據在程序中設計到的全局變量,都會在.h頭文件里予以聲明,可以同時賦初值,若沒有賦初值則程序自動賦0。本程序中設計到的全局變量包括時間變量、按鍵標志變量、地址變量、顯示標志變量、紅外收發標志變量等。bit hw; /紅外發射標志位bitkey_bit; /按鍵重復標記sbit led=P37; /這是紅外指示燈的位定義sbit out=P36; /這是紅外數據發射端口的位定義#define port P2 /這是鍵盤按鍵的接口定義5.3 程序設計子模塊分析鍵
33、盤實際上是一組按鍵開關的集合,在鍵的閉合和斷開過程中,會產生抖動,抖動時間長短和開關的機械特性有關。鍵的閉合與斷開,反映在行線輸出電壓上就是呈現高電平或低電平。為準確判定按鍵的位置,我們必須消除抖動期的影響(馬忠梅等,2003)。常用軟件的方法來消除按鍵抖動。其基本思想就是:在第一次檢測到有鍵按下時,該鍵所對應的行線為低電平,執行一段1ms的延時子程序后,確認該行線電平是否仍為低電平,如果仍為低電平,則確認該行確實有按鍵按下。當按鍵松開時,行線的低電平變為高電平,執行一段1ms的延時子程序,檢測該行線為高電平,說明按鍵確實已經松開(明喜,2004)。采取以上方法,即可消除抖動的影響,延時消抖程
34、序如下。void delay() /1ms 誤差 -0.7sunsigned char a,b;for(b=102;b>0;b-)for(a=3;a>0;a-);5.3.1 鍵盤掃描模塊本設計中采用了4×4矩陣鍵盤。其工作原理為:按建設在行、列線交點上。行線經過上拉電阻接到+5V上。無鍵按下時,行線處于高電平狀態;當有按鍵按下時,行線電平狀態將由與此行線相連的列線的電平決定。按鍵的識別方法:1、掃描法第一步,首先要識別有無鍵按下。將所有的列線均置為0電平,然后檢查各行線電平是否都為高電平,如果不全為高電平,則有鍵按下,否則說明無鍵按下。此時也只能判定按鍵的所在行。第二步,
35、識別出按鍵的具體位置用掃描法。在某一時刻,只讓一條列線處于低電平,其余所有列線處于高電平。以此類推,若此過程中,有行線電平由高電平變成低電平,則該時刻的列線即為按鍵所在列。由此,可以判斷出按下的按鍵具體位置。2、線反轉法第一步,讓行線編程為輸入線,列線編程為輸出線,并使輸出線輸出電平全為低電平,則行線中電平由高變低的所在行為按鍵所在行。第二步,再把行線編程列為輸出線,列線編程為輸入線,并使輸出線輸出電平為全低電平,則列線中電平由高變低所在列為按鍵所在列。由此,便可識別出按鍵的具體位置(王建校等,2002)。盡管在實際應用中,兩種方法都可行,但是掃描法要逐列掃描查詢,當被按下的鍵處于最后一列時,
36、則要經過多次掃描才能最后獲得此按鍵所處的行列值。而線反轉法很簡單,無論被按鍵是處于第一列還是最后一列,均只需經過兩步便能獲得此按鍵所在的行列值。故在本次設計中,我采用了線反轉法。鍵盤工作方式有三種,即編程掃描、定時掃描和中斷掃描。1、編程掃描方式:這種方式只有當單片機空閑時,才調用鍵盤掃描子程序,反復掃描鍵盤,等待用戶從鍵盤上輸入命令或數據,來響應鍵盤的輸入請求。2、定時掃描方式:單片機對鍵盤的掃描也可以采用定時掃描方式,即每隔一定的時間對鍵盤進行掃描一次。在這種方式中,通常利用單片機的定時器產生10ms的定時中斷,單片機響應定時器溢出中斷請求,對鍵盤進行掃描。3、中斷掃描方式:為進一步提高單
37、片機掃描鍵盤的工作效率,可采用中斷掃描方式,即只有在鍵盤有鍵按下時,才執行鍵盤掃描程序并執行該按鍵功能程序。鍵盤掃描模塊程序流程圖如下圖18所示。開始判斷是否有鍵按下 鍵鍵按下延時1ms消抖動是逐行列掃描鍵值轉換鍵值判斷是否有鍵按下 鍵鍵按下結束否是是否圖否18鍵盤掃描子程序由此流程圖可以對應編程,采取反轉法進行識別按鍵具體位置。此程序中先將鍵盤口賦值0f,或者f0。當先令port=0x0f ,若有按鍵按下,則可得到此時變化后的port值,并賦值給a;再令port=0xf0,若有按鍵按下,得到此時變化后的port值。將此時的port值與a取或,即可得到該按鍵的鍵值。但此時得到的鍵值都很大,故將
38、a取反使得鍵值更簡單,其鍵盤掃描子模塊編程如下。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 紅外編碼模塊采用脈寬調制的串行碼,設計過程中,按照NEC協議嚴格進行編碼。其流程圖如圖19所示。該編碼嚴格按照NEC協議中的規則,用0.56ms的低電平與0.56ms的高電平組合表示“0”,用0.56ms的低電平和1.68ms的
39、高電平組合表示“1”。當一個鍵按下超過36ms,振蕩器使芯片激活,將發射一組108ms編碼脈沖,這108ms發射代碼由一個起始碼(9ms),一個結果碼(4.5ms),低8 位地址碼(9ms18ms),高8 位地址碼(9ms18ms),8 位數據碼(9ms18ms)和這8 位數據的反碼(9ms18ms)組成。如果鍵按下超過108ms 仍未松開,接下來發射的代碼(連發代碼)將僅由起始碼(9ms)和結束碼(2.5ms)組成。代碼格式(以接收代碼為準,接收代碼與發射代碼反向)(董繼成,2004)。圖19編碼流程圖發射部分與接收的軟件功能幾乎一樣,不同之處就是一個發射一個是接收。發射部分的功能實際就是接
40、收部分的無線鍵盤。5.3.3 時間波形設計模塊在中斷延時程序,由time值的改變來控制不同長度波形的產生和調制。void Timer0Interrupt(void) interrupt 1if(time) time-,over=0;else over=1,hw=0;if(hw) out=out;else out=1;通過time值的改變分別來發射9ms的38kHz方波、4.5ms的高電平, 0.565ms的38kHz方波與1.685ms的高電平或者0.565ms的高電平等。在紅外數據調制過程中,在相應的高電平時間里發送38kHz的方波,在低電平時間不發射調制波,只是延時對應的低電平時間。這樣就
41、達到了調制的目的。在接收解碼時,有脈沖為低電平,無脈沖為高電平,這樣就實現了碼形的恢復。然后根據波形長度的不同,來判斷它是引導碼,還是“0”碼或者“1”碼。5.3.4紅外發射模塊設計中,發射模塊啟用了多種子模塊,發射模塊流程圖如下圖20。是是是否開始從數據緩沖區取一字節數據區提取從高位開始取一位數是“0”碼調數據位1發射模塊調數據位0發射模塊發完8位數修改數據緩沖區指針數據發射完否返回否否發射引導碼碼圖20發射模塊流程圖在該模塊中,由send_star()函數來發射引導碼,由send_char()函數來發射經38kHz載波調制的地址碼和數據碼即鍵值碼。send_star()函數過time值的設
42、定,進入中斷,執行Timer0Interrupt(void) interrupt 1函數借以產生調制鍵值。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位地址碼,用以區分發射紅外遙控編碼的不同設備。紅外接收器接收到紅外發光管的信號后,再單通過單片機的串口通信來實現信號的傳輸。其中比較難設計的是38kHz二次調制后發射數據,數據由高位開始發射。且當該位為“1”碼時調制發射長度為1.685ms的38kHz脈沖
43、;當為“0”碼時,調制發射長度為0.565ms的38kHz脈沖(文崢等,2000)。5.3.5 接收解碼模塊紅外接收解碼的關鍵是如何識別0和1碼,我的做法是根據0和1碼的高電平寬度不一樣的特點來進行識別。進入紅外接收程序后先關閉中斷。接著的工作是避開9ms高電平、4.5ms的低電平的引導碼,并且判斷是否干擾信號或者重復信號。正如前面所說,一體化紅外接收頭的輸出端電平跟遙控發射端電平相反。所以只要遙控有鍵按下單片機就會馬上產生中斷接收數據。跟在引導碼后面的是8位數據碼,也就是我們想要的數據,單片機把它接收并保存。當接收完8位的數據時要更換另外一個數據緩沖區,當8位的鍵碼都接收完的時候就意味這一幀
44、的數據已經接收完畢。然后根據接收到的數據碼和數據反碼是否對應位相反來確定接收的這一幀數據是否正確,最后退出接收解碼程序(邱玉春等,2000)。void Int1(void) interrupt 2 using 1uchar dh;uchar k;TR0=0;dh=TH0;TL0=0;TH0=0;TR0=1;if(dh>25&&dh<100) n=33;else if(dh>2&&dh<5) k=0;else if(dh>6&&dh<12) k=1;else n=0;if(n) dat=dat<<1;
45、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=dat,dat=0;n-;if(!n)if(!(buffer2&buffer3) /數據校驗 js=1; /接收完成 beep=0;elsebuffer0=0;buffer1=0;6 硬件的實現與測試6.1 硬件制作首先,根據電路原理圖購買需要的元器件,如果有些元器件購買不到,則需要選擇型號不同性能相似的元器件;然后按照電路原理圖在萬能板上布局、焊接電路,在焊接過程中要注意的是不要虛
46、焊、短路和區分部分元器件的正負極;最后,初步焊接完成后,檢查有沒有漏焊并把正極線和地線統一。6.2 硬件測試1、用萬用表測試電路有沒有短路;2、在通電的時候,檢查各個芯片有沒有過熱的現象;3、檢查三極管、二極管和蜂鳴器正負極有沒有焊接錯誤;4、繼續檢查其余模塊確保電路沒有問題。6.3 硬件調試結果本設計是紅外遙控密碼鎖,其紅外和報警系統是不可視的,因此調試結果主要通過液晶顯示器和發光二極管來顯示調試結果。情況一:如圖21所示。圖21 密碼鎖上電時如圖22所示,這是接收模塊上電時的提示狀態,提示用戶輸入密碼,用戶只有正確輸入密碼以后才能開鎖。情況二: 如圖22、23所示。圖22密碼輸入正確時鎖開
47、圖23密碼輸入錯誤時提示當用于輸入密碼正確時,液晶顯示器會如圖22所示,當用戶輸入密碼錯誤時,液晶顯示器會如圖23所示,此時用戶還可以繼續輸入兩次,如果三次輸入的密碼都是錯誤時,則蜂鳴器會發出報警的聲音,并且發光二極管會一直閃爍。情況三:如圖24、25所示。圖24修改密碼鍵按下提示輸入新密碼圖25 重新輸入新密碼在正確輸入密碼后,如果按下修改密碼鍵,液晶顯示器會如圖24所示,讓用戶輸入新密碼,第一次輸入后,液晶顯示器會如圖25所示,讓用戶再次輸入新密碼。如果兩次輸入的新密碼不同,則液晶顯示屏會提示錯誤。7 結論本系統以單片機STC89S52芯片為核心部件,利用紅外通信技術,并配合一套獨特的軟件
48、算法實現了紅外信號傳輸、密碼開鎖、密碼修改、密碼輸錯鎖屏報警、LCD顯示、鍵盤掃描等功能,實驗和理論分析結果都表明,紅外遙控電子密碼鎖設計完成了設計的各項任務。參 考 文 獻汝全.電子技術常用器件應用手冊M.:機械工業,2004:45-48.董繼成.一種新型安全的單片碼鎖J.電子技術,2004,(03):22-23.明喜.新型電子密碼鎖的設計J.機電產品開發與創新,2004,(03):40-41.葉紫,胡輝,東輝.MCS-51單片機應用教程M.:清華大學,2004:33-40.馬忠梅,籍順心,凱等.單片機的C語言應用程序設計M.第3版.:航空航天大學,2003:8-12.邱玉春,文俊.單片機系
49、統中的紅外通信接口J.電子產品世界,2000,41-42.王為青,程國鋼.單片機Keil Cx51應用開發技術M.人民郵電,2007:8-12.王建校,維成,建國等.51系列單片機與C51程序設計M.:科學,2002:80-90.葉啟明.單片機制作的新型安全密碼鎖J.家庭電子,2005,(10):30-31.文崢,先亮.IrDA紅外通信在導航儀中的應用J.電子技術應用,2000,(10):45-47.David Calcutt,Frederick Cowan,Hassan Parchizadeh.8051 Microcontrollers:An Applications Based Intro
50、ductionM.Oxford: Newnes,2004:1-3.附錄A 接收模塊原理附錄B 發送模塊原理圖附錄C 仿真圖附錄D 主要代碼發射端源程序主要代碼#include <stc89.h>/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; /按鍵重復標記bit hw;bit over;bit ss;uchar timevoid delay();void InitTimer0(void);void InitUART(void);void send(uc
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 城市濕地公園綜合效益評價研究-以XZ濕地公園為例
- 多囊腎的超聲診斷
- 保育員培訓:衛生與消毒
- 闌尾炎的護理診斷與護理措施
- 項目進度管理課件
- 油田開發項目運營管理方案
- 高效節能電機項目節能評估報告
- 2025年水稻缽苗行栽機合作協議書
- 電網側獨立儲能示范項目投標書(范文模板)
- 西醫外科治療前列腺增生診療規范
- 2025年廣西中考語文試題卷(含答案)
- 《安徽省工傷職工停工留薪期分類目錄》
- 北師大版八年級上冊物理(基礎版)(全冊知識點考點梳理、重點題型分類鞏固練習)(家教、補習、復習用)
- 護士延續注冊體檢表通用
- GB 2762-2022食品安全國家標準食品中污染物限量
- GB/T 31776-2015車用甲醇汽油中甲醇含量檢測方法
- 工程力學基礎(講義)
- 心電圖報告的書寫規范化培訓課件
- 小學數學西南師大四年級下冊八平均數小學數學西師版四年級下冊《平均數》教學設計
- 藥物外滲的嚴重后果及處理課件
- 2021年軟件開發管理流程制度(附全套表格模板及填寫指引)58頁
評論
0/150
提交評論