Ⅰ 求單片機C51紅外線收發方案(最好有詳細解釋)
紅外線遙控器解碼程序
2007-02-07 18:52 紅外線遙控是目前使用最廣泛的一種通信和遙控手段。由於紅外線遙控裝置具有體積小、功耗低、功能強、成本低等特點,因而,繼彩電、錄像機之後,在錄音機、音響設備、空凋機以及玩具等其它小型電器裝置上也紛紛採用紅外線遙控。現在工業設備中,也已經廣泛在使用。。。。。
1 紅外遙控系統
通用紅外遙控系統由發射和接收兩大部分組成,應用編/解碼專用集成電路晶元來進行控制操作,如圖1所示。發射部分包括鍵盤矩陣、編碼調制、LED紅外發送器;接收部分包括光、電轉換放大器、解調、解碼電路。
2 遙控發射器及其編碼
遙控發射器專用晶元很多,根據編碼格式可以分成脈沖寬度調制和脈沖相位調制兩大類,這里我們以運用比較廣泛,解碼比較容易的脈沖寬度調制來加以說明,現以3310組成發射電路為例說明編碼原理。當發射器按鍵按下後,即有遙控碼發出,所按的鍵不同遙控編碼也不同。這種遙控碼具有以下特徵:
採用脈寬調制的串列碼,以脈寬為0.565ms、間隔0.56ms、周期為1.125ms的組合表示二進制的「0」;以脈寬為0.565ms、間隔1.685ms、周期為2.25ms的組合表示二進制的「1」
上述「0」和「1」組成的42位二進制碼經38kHz的載頻進行二次調制以提高發射效率,達到降低電源功耗的目的。然後再通過紅外發射二極體產生紅外線向空間發射,
3310產生的遙控編碼是連續的42位二進制碼組,其中前26位為用戶識別碼,能區別不同的紅外遙控設備,防止不同機種遙控碼互相干擾。後16位為8位的操作碼和8位的操作反碼用於核對數據是否接收准確。
當遙控器上任意一個按鍵按下超過36ms時,LC7461晶元的振盪器使晶元激活,將發射一個特定的同步碼頭,對於接收端而言就是一個9ms的低電平,和一個4.5ms的高電平,這個同步碼頭可以使程序知道從這個同步碼頭以後可以開始接收數據。
解碼的關鍵是如何識別「0」和「1」,從位的定義我們可以發現「0」、「1」均以0.56ms的低電平開始,不同的是高電平的寬度不同,「0」為0.56ms,「1」為1.68ms,所以必須根據高電平的寬度區別「0」和「1」。如果從0.56ms低電平過後,開始延時,0.56ms以後,若讀到的電平為低,說明該位為「0」,反之則為「1」,為了可靠起見,延時必須比0.56ms長些,但又不能超過1.12ms,否則如果該位為「0」,讀到的已是下一位的高電平,因此取(1.12ms+0.56ms)/2=0.84ms最為可靠,一般取0.84ms左右即可。
根據紅外編碼的格式,程序應該等待9ms的起始碼和4.5ms的結果碼完成後才能讀碼。
接收器及解碼
LT0038是塑封一體化紅外線接收器,它是一種集紅外線接收、放大、整形於一體的集成電路,不需要任何外接元件,就能完成從紅外線接收到輸出與TTL電平信號兼容的所有工作,沒有紅外遙控信號時為高電平,收到紅外信號時為低電平,而體積和普通的塑封三極體大小一樣,它適合於各種紅外線遙控和紅外線數據傳輸。
下面是一個對51ISP編程實驗開發板配套的紅外線遙控器的解碼程序,它可以把紅外遙控器每一個按鍵的鍵值讀出來,並且通過實驗板上P1口的8個LED顯示出來,在解碼成功的同時並且能發出「嘀嘀嘀」的提示音。
ORG 0000H
AJMP MAIN;轉入主程序
ORG 0003H ;外部中斷P3.2腳INT0入口地址
AJMP INT ;轉入外部中斷服務子程序(解碼程序)
;以下為主程序進行CPU中斷方式設置
MAIN:SETB EA ;打開CPU總中斷請求
SETB IT0 ;設定INT0的觸發方式為脈沖負邊沿觸發
SETB EX0 ;打開INT0中斷請求
;以下對單片機的所有引腳進行初始化,全部設置成高電平
MOV P2,#11111111B
AJMP $
;以下為進入P3.2腳外部中斷子程序,也就是解碼程序
INT: CLR EA ;暫時關閉CPU的所有中斷請求
MOV R6,#10
SB: ACALL YS1;調用882微秒延時子程序
JB P3.2,EXIT;延時882微秒後判斷P3.2腳是否出現高電平如果有就退出解碼程序
DJNZ R6, SB;重復10次,目的是檢測在8820微秒內如果出現高電平就退出解碼程序
;以上完成對遙控信號的9000微秒的初始低電平信號的識別。
JNB P3.2, $ ;等待高電平避開9毫秒低電平引導脈沖
ACALL YS2 ;延時4.74毫秒避開4.5毫秒的結果碼
MOV R7,#26;忽略前26位系統識別碼
JJJJA:JNB P3.2,$;等待地址碼第一位的高電平信號
LCALL YS1;高電平開始後用882微秒的時間尺去判斷信號此時的高低電平狀態
MOV C,P3.2;將P3.2引腳此時的電平狀態0或1存入C中
JNC UUUA;如果為0就跳轉到UUUA
LCALL YS3;檢測到高電平1的話延時1毫秒等待脈沖高電平結束
UUUA: DJNZ R7,JJJJA
MOV R1,#1AH ;設定1AH為起始RAM區
MOV R2,#2;接收從1AH到1BH的2個內存,用於存放操作碼和操作反碼
PP: MOV R3,#8;每組數據為8位
JJJJ: JNB P3.2,$;等待地址碼第一位的高電平信號
LCALL YS1;高電平開始後用882微秒的時間尺去判斷信號此時的高低電平狀態
MOV C,P3.2;將P3.2引腳此時的電平狀態0或1存入C中
JNC UUU;如果為0就跳轉到UUU
LCALL YS3;檢測到高電平1的話延時1毫秒等待脈沖高電平結束
UUU: MOV A,@R1;將R1中地址的給A
RRC A;將C中的值0或1移入A中的最低位
MOV @R1,A;將A中的數暫時存放在R1數值的內存中
DJNZ R3,JJJJ;接收滿8位換一個內存
INC R1;對R1中的值加1,換下一個RAM
DJNZ R2,PP ;接收完8位數據碼和8位數據反碼,存放在1AH/1BH中
MOV A,1AH
CPL A;對1AH取反後和1BH比較
CJNE A,1BH,EXIT;如果不等表示接收數據發生錯誤,放棄
MOV P1,1AH;將按鍵的鍵值通過P1口的8個LED顯示出來!
CLR P2.0;蜂鳴器鳴響-嘀嘀嘀-的聲音,表示解碼成功
LCALL YS2
LCALL YS2
LCALL YS2
SETB P2.0;蜂鳴器停止(使用時可以將J2的YINYUE腳用跳線接J4 的XS1腳才可以使用蜂鳴器)可以看原理圖
EXIT: SETB EA ;允許中斷
RETI ;退出解碼子程序
YS1: MOV R4,#20 ;延時子程序1,精確延時882微秒
D1: MOV R5,#20
DJNZ R5,$
DJNZ R4,D1
RET
YS2: MOV R4,#10 ;延時子程序2,精確延時4740微秒
D2: MOV R5,#235
DJNZ R5,$
DJNZ R4,D2
RET
YS3: MOV R4,#2;延時程序3,精確延時1000微秒
D3:MOV R5,#248
DJNZ R5,$
DJNZ R4,D3
RET
END
以上程序緊供參考。
0A 01
11 12 13 14
15 16 17 18
19 10 1A 1B
0E 02 03 1C
06 04 05 0C
0D 08 09 1D
00 1F 1E 0B
07 0F
這是按照紅外遙控器按鍵的實際位置給出的32個按鍵的鍵值(16進制)
Ⅱ 什麼叫RF收發器,單片機方面知識的
RF收發器
RF收發器傳輸廣泛地運用在車輛監控、遙控、遙測、小型無線網路、無線抄表、門禁系統、小區傳呼、工業數據採集系統、無線標簽、身份識別、非接觸RF智能卡、小型無線數據終端、安全防火系統、無線遙控系統、生物信號採集、水文氣象監控、機器人控制、無線232數據通信、無線485/422數據通信、數字音頻、數字圖像傳輸等領域中。
[編輯本段]RF發射模塊技術指標
315/433發射模塊SR9915主要技術指標: 1、通訊方式:調幅AM 2、工作頻率:315MHZ/433MHZ 3、頻率穩定度:±75KHZ 4、發射功率:≤500MW 5、靜態電流:≤0.1UA 6、發射電流:3~50MA 7、工作電壓:DC 3~12V 數據發射模塊的工作頻率為315M,採用聲表諧振器SAW穩頻,頻率穩定度極高,當環境溫度在-25~+85度之間變化時,頻飄僅為3ppm/度。特別適合多發一收無線遙控及數據傳輸系統。聲表諧振器的頻率穩定度僅次於晶體,而一般的LC振盪器頻率穩定度及一致性較差,即使採用高品質微調電容,溫差變化及振動也很難保證已調好的頻點不會發生偏移。 發射模塊未設編碼集成電路,而增加了一隻數據調制三極體Q1,這種結構使得它可以方便地和其它固定編碼電路、滾動碼電路及單片機介面,而不必考慮編碼電路的工作電壓和輸出幅度信號值的大小。比如用PT2262或者SM5262等編碼集成電路配接時,直接將它們的數據輸出端第17腳接至數據模塊的輸入端即可。 數據模塊具有較寬的工作電壓范圍3~12V,當電壓變化時發射頻率基本不變,和發射模塊配套的接收模塊無需任何調整就能穩定地接收。當發射電壓為3V時,空曠地傳輸距離約20~50米,發射功率較小,當電壓5V時約100~200米,當電壓9V時約300~500米,當發射電壓為12V時,為最佳工作電壓,具有較好的發射效果,發射電流約60毫安,空曠地傳輸距離700~800米,發射功率約500毫瓦。當電壓大於l2V時功耗增大,有效發射功率不再明顯提高。這套模塊的特點是發射功率比較大,傳輸距離比較遠,比較適合惡劣條件下進行通訊。天線最好選用25厘米長的導線,遠距離傳輸時最好能夠豎立起來,因為無線電信號傳輸時收很多因素的影響,所以一般實用距離只有標稱距離的一半甚至更少,這點需要開發時注意。 數據模塊採用ASK方式調制,以降低功耗,當數據信號停止時發射電流降為零,數據信號與發射模塊輸入端可以用電阻或者直接連接而不能用電容耦合,否則發射模塊將不能正常工作。數據電平應接近數據模塊的實際工作電壓,以獲得較高的調制效果。 發射發射模塊最好能垂直安裝在主板的邊緣,應離開周圍器件5mm以上,以免受分布參數影晌。模塊的傳輸距離與調制信號頻率及幅度,發射電壓及電池容量,發射天線,接收機的靈敏度,收發環境有關。一般在開闊區最大發射距離約800米,在有障礙的情況下,距離會縮短,由於無線電信號傳輸過程中的折射和反射會形成一些死區及不穩定區域,不同的收發環境會有不同的收發距離。
[編輯本段]RF超再生接收模塊技術指標
315/433超再生接收模塊SR9915超再生接收模塊的體積:30x13x8毫米 主要技術指標: 1、通訊方式:調幅AM 2、工作頻率:315MHZ/433MHZ 3、頻率穩定度:±200KHZ 4、接收靈敏度:-106DBM 5、靜態電流:≤5MA 6、工作電流:≤5MA 7、工作電壓:DC 5V 8、輸出方式:TTL電平 接收模塊的工作電壓為5伏,靜態電流4毫安,它為超再生接收電路,接收靈敏度為-105dbm,接收天線最好為25~30厘米的導線,最好能豎立起來。接收模塊本身不帶解碼集成電路,因此接收電路僅是一種組件,只有應用在具體電路中進行二次開發才能發揮應有的作用,這種設計有很多優點,它可以和各種解碼電路或者單片機配合,設計電路靈活方便。 這種電路的優點在於: 1、天線輸入端有選頻電路,而不依賴1/4波長天線的選頻作用,控制距離較近時可以剪短甚至去掉外接天線 2、輸出端的波形在沒有信號比較干凈,干擾信號為短暫的針狀脈沖,而不象其它超再生接收電路會產生密集的雜訊波形,所以抗干擾能力較強。 3、模塊自身輻射極小,加上電路模塊背面網狀接地銅箔的屏蔽作用,可以減少自身振盪的泄漏和外界干擾信號的侵入。 4、採用帶骨架的銅芯電感將頻率調整到315M後封固,這與採用可調電容調整接收頻率的電路相比,溫度、濕度穩定性及抗機械振動性能都有極大改善。可調電容調整精度較低,只有3/4圈的調整范圍,而可調電感可以做到多圈調整。可調電容調整完畢後無法封固,因為無論導體還是絕緣體,各種介質的靠近或侵入都會使電容的容量發生變化,進而影響接收頻率。另外未經封固的可調電容在受到振動時定片和動片之間發生位移;溫度變化時熱脹冷縮會使定片和動片間距離改變;濕度變化因介質變化改變容量;長期工作在潮濕環境中還會因定片和動片的氧化改變容量,這些都會嚴重影響接收頻率的穩定性,而採用可調電感就可解決這些問題,因為電感可以在調整完畢後進行封固,絕緣體封固劑不會使電感量發生變化。
[編輯本段]RF超外差接收模塊技術指標
315/433超外差接收模塊SR9915超外差接收模塊的體積:35x13x8毫米 主要技術指標: 1、通訊方式:調幅AM 2、工作頻率:316.8MHZ 3、頻率穩定度:±75KHZ 4、接收靈敏度:-102DBM 5、靜態電流:≤5MA 6、工作電流:≤5MA 7、工作電壓:DC 5V 8、輸出方式:TTL電平 這里提供的超外差接收模塊採用進口高性能無線遙控及數傳專用集成電路RX3310A,並且採用316.8M聲表諧振器,所以工作穩定可靠,適合比較惡劣的環境下全天候工作。 RX3310A集成電路介紹: RX3310A是台灣HMARK公司生產的專門用於幅度鍵控ASK調制的無線遙控及數傳信號的接收集成電路,內含低噪音高頻放大、混頻器、本機振盪、中頻放大器、中頻濾波器、比較器等,為一次變頻超外差電路,雙列18腳寬體貼片封裝,主要技術指標如下: 工作頻率:150~450MHZ 工作電壓:2.7~6V 工作電流:2.6毫安(3V電源時) 接收靈敏度:-105DBM(1K數據速率而且天線匹配時) 最高數據速率:9.6KBPS 從外接天線接收的信號經C8耦合到L3、C9組成的選頻網路進行阻抗變換後輸入RX3310的內部高頻放大器輸入端14腳,經晶元內的高頻放大後(增益為15~20DB)的信號再經混頻器與本機振盪信號(316.8M)混頻,產生1.8M的中頻信號,此中頻信號經內部中頻放大後由第3腳輸出,再進入比較器放大整形,最後數據從第8腳輸出。 超外差接收機對天線的阻抗匹配要求較高,要求外接天線的阻抗必須是50歐姆的,否則對接收靈敏度有很大的影響,所以如果用1/4波長的普通導線時應為23厘米最佳,要盡可能減少天線根部到發射模塊天線焊接處的引線長度,如果無法減小,可以用特性阻抗50歐姆的射頻同軸電纜連接(天線焊點右側有一個專門的接地焊點)
[編輯本段]RF超再生和超外差接收機的性能區別
超再生和超外差電路性能各有優缺點,超再生接收機價格低廉,經濟實惠,而且接收靈敏度高,但是缺點也很明顯,那就是頻率受溫度漂移大,抗干擾能力差。超外差式接收機優點是頻率穩定,抗干擾能力好,和單片機配合時性能比較穩定,缺點是靈敏度比超再生低,價格遠高於超再生接收機,而且近距離強信號時可能有阻塞現象。
[編輯本段]RF無線模塊開發注意事項
模塊必須用信號調制才能正常工作,常見的固定碼編碼器件如PT2262/2272,只要直接連接即可,非常簡單,因為是專用編碼晶元,所以效果很好傳輸距離很遠。 模塊還有一種重要的用途就是配合單片機來實現數據通訊,這時有一定的技巧: 1、合理的通訊速率 數據模塊的最大傳輸數據速率為9.6KBs,一般控制在2.5k左右,過高的數據速率會降低接收靈敏度及增大誤碼率甚至根本無法工作。 2、合理的信息碼格式 單片機和模塊工作時,通常自己定義傳輸協議,不論用何種調制方式,所要傳遞的信息碼格式都很重要,它將直接影響到數據的可靠收發。 碼組格式推薦方案 前導碼+同步碼+ 數據幀,前導碼長度應大於是10ms,以避開背景雜訊,因為接收模塊接收到的數據第一位極易被干擾(即零電平干擾)而引起接收到的數據錯誤。所以採用CPU編譯碼可在數據識別位前加一些亂碼以抑制零電平干擾。同步碼主要用於區別於前導碼及數據。有一定的特徵,好讓軟體能夠通過一定的演算法鑒別出同步碼,同時對接收數據做好准備。 數據幀不宜採用非歸零碼,更不能長0和長1。採用曼徹斯特編碼或POCSAG碼等。 3、單片機對接收模塊的干擾 單片機模擬2262時一般都很正常,然而單片機模擬2272解碼時通常會發現遙控距離縮短很多,這是因為單片機的時鍾頻率的倍頻都會對接收模塊產生干擾,51系列的單片機電磁干擾比較大,2051稍微小一些,PIC系列的比較小,我們需要採用一些抗干擾措施來減小干擾。比如單片機和遙控接收電路分別用兩個5伏電源供電,將接收板單獨用一個78L05供電,單片機的時鍾區遠離接收模塊,降低單片機的工作頻率,中間加入屏蔽等。 接收模塊和51系列單片機介面時最好做一個隔離電路,能較好地遏制單片機對接收模塊的電磁干擾。 接收模塊工作時一般輸出的是高電平脈沖,不是直流電平,所以不能用萬用表測試,調試時可用一個發光二極體串接一個3K的電阻來監測模塊的輸出狀態。 無線數據模塊和PT2262/PT2272等專用編解碼晶元使用時,連接很簡單只要直接連接即可,傳輸距離比較理想,一般能達到600米以上,如果和單片機或者微機配合使用時,會受到單片機或者微機的時鍾干擾,造成傳輸距離明顯下降,一般實用距離在200米以內。