本帖最后由 新鄉(xiāng)家電維修 于 2019-5-29 21:48 編輯
最近研究315M解碼最下面增加了發(fā)送遙控碼功能,記憶功能
超外差模塊驅(qū)動能力很強,可以直接聯(lián)接單片機I口,
集成晶振模塊驅(qū)動能力有限,無法驅(qū)動單片機IO口,需要加驅(qū)動三極管組成射集跟隨器驅(qū)動
同步頭是一個高電平脈沖和一個長的低電平組成,圖片是9.3ms左右的同步頭,要連續(xù)檢測到
兩個同步頭(繞開中間24個脈沖)相同才能確認是正確的信號。解碼成功后,蜂鳴器響一聲
第一排顯示同步頭時間:XX.Xms
第二排顯示密碼和數(shù)據(jù):F1000010 1001
常見密碼大家都熟悉:00=0、01=F、11=1,還有遙控有10,開始以為我解碼錯誤
后來電腦分析波形才知道,特增加了10=D,擴大解碼范圍,這種波形出現(xiàn)在電動車遙控比較多。
電腦采集信號分析如圖所示:
如果多人跟帖,有興趣,我會繼續(xù)更新貼新加入了發(fā)射接收到的315M遙控信號功能,并保存到24C02中
下次開機直接讀取24C02數(shù)據(jù)作為比較信號和接收的信號比較,控制SSR輸出
按下K1發(fā)射存儲在24C02中的信號(最少發(fā)送5遍信號)
按下S1手動控制SSR輸出
按下S0記憶當前接收到的信號到24C02中
下圖是新程序,增加的功能顯示
SPK EQU P3.7 ;蜂鳴器
RS bit P2.7 ;引腳定義
RW bit P2.6
E bit P2.5
LCD EQU P0
IRIN BIT P3.2 ;315M信號輸入端
FAST BIT P3.5 ;315M信號發(fā)射端
K1 BIT P1.0 ;開關控制發(fā)射
S0 BIT P1.1 ;學習按鍵(解碼正確后,按鍵按下就學習成功)
S1 BIT P3.3 ;手動開關,控制輸出
sda BIT p3.4 ;5腳
scl BIT p3.3 ;6腳
address equ 40h ;256字節(jié)地址數(shù)
cdate equ 2Ah ;數(shù)據(jù)暫時存放單元
SSR BIT P3.0 ;輸出端
ORG 00H
LJMP MAIN
ORG 03H ;外部中斷INT0入口地址
LJMP INT_0
ORG 40H
;====================================主程序==================================
MAIN:
CLR FAST
SETB IRIN
LCALL COPY ;讀取24C02中的數(shù)據(jù)作為遙控開關比較數(shù)據(jù)
MOV 3AH,#20 ;控制蜂鳴器時間
LCALL FS_SPK ;蜂鳴器響一聲(沒有檢測到24C02,蜂鳴器開機不響)
WU2402:
MOV LCD,#00000001B ;清屏并復位光標
LCALL WR_COMM ;調(diào)用寫指令子程序
LCALL INIT_LCD ;調(diào)用初始化子程序
MOV SP,#60H
LCALL DISP ;顯示
SETB EA ;打開CPU總中斷請求
MOV TMOD,#00010001B ;模式1定時模式
MOV TH0,#00H
MOV TL0,#00H
SETB IT0 ;設定INT0的觸發(fā)方式為脈沖負邊沿觸發(fā)
SETB EX0
UUUU:
JNB S1,A2
JB K1,UUUU ;有按鍵就發(fā)送遙控碼
CLR EA ;關閉中斷,讓遙控碼發(fā)送完成不受干擾
MOV A,2CH
CPL A
MOV 2CH,A
LCALL TTTT
SETB EA
JMP UUUU
;============================按鍵程序====================================
A2: LCALL DELAY_10MS
JB S1,A2_EN
CPL SSR ;開關動作一次
A2_EN:
RET
DELAY_10MS:
MOV R6,#25
XX0: MOV R7,#20
XX1: DJNZ R7,$
DJNZ R6,XX0
RET
;=========================讀出24C02數(shù)據(jù)==================
copy:
mov r0,#2Ah ;r0作為間接尋址
mov address,#00h;地址清零
; mov 2Ah,#0 ;清零準備裝入上次24C02存儲的數(shù)據(jù)
; mov 2Bh,#0 ;讀出的數(shù)據(jù)放在2AH/2BH/2CH中
; mov 2Ch,#0
; mov 2Dh,#0
mov r5,#4
s: mov r2,#10100000b ;寫存儲器1010(為24c系列統(tǒng)一識別碼)001(為芯片地址碼A2/A1/A0)最后一位是讀寫位
mov r4,#10100001b ;讀存儲器
MOV R3,#50
Lcall read ;調(diào)用讀存儲器程序
inc address ;地址加1
inc r0
djnz r5,s ;減1后不為0繼續(xù)返回S
ret
;----------------------------------
read: lcall start ;啟動總線
mov a,r2
lcall send
lcall ack
jc read ;
mov a,address
lcall send
lcall ack
read_a:
lcall start
mov a,r4
lcall send
lcall ack
jc read_a
rece:
lcall receive
mov @r0,a ;讀到數(shù)據(jù)存儲到@R0指定地址
lcall ack
lcall stop
ret
部分程序
下面的燒寫文件,晶振選4M,單片機STC89C52RC接線按照主程序上面的引腳定義接線就行,保證成功
為了防止不法人員利用程序偷盜別人遙控器碼,程序我做了修改,只能解碼一次就需要從新啟動
發(fā)送數(shù)據(jù)也是發(fā)送一次就不能再發(fā)送信號了,需要重啟,
2262解碼測試51記憶2402.zip
(1.29 KB, 下載次數(shù): 108)
2019-5-29 21:39 上傳
點擊文件名下載附件
閱讀權限: 1
|