用PIC芯片,怎么来写红外遥控接收程序
有原代码吗 问题点数:100、回复次数:1Top
1 楼842(不是偶)回复于 2003-11-01 01:50:55 得分 100
flash equ 17h
;table
flash_dot equ 0
;.0=1 半秒闪烁
keylianxu equ 1
refok equ 2 ;参考电阻转换完毕
remok equ 3 ;有正确的信号
lowpls equ 4 ;检测到有遥控信号
; equ 5 ;
remolead equ 6 ;检测到引导码
rtstart equ 7
remodata1 equ 30h
;-
remodata2 equ 31h
;-
remodata3 equ 32h
;-
remodata4 equ 33h
;-
remodata5 equ 34hremodata_sub
bsf ramset,pa0
movlw 0ch
subwf remodata1,0
skpz
goto remodata_ret
bcf ramset,pa0
bcf pageset,pa1
call buz_sub3
bsf pageset,pa1
bsf ramset,pa0
movf remodata5,0
movwf geram1
clrf powermode
movlw 7
andwf geram1,0
iorwf powermode,1 ;设置模式
btfsc geram1,3
bsf powermode,power ;设置开关机标志位
movf remodata4,0
movwf settemp
swapf remodata3,0
movwf geram1
movlw 30h
andwf geram1,0
iorwf powermode,1 ;设置风速
btfsc geram1,7
bsf powermode,swing
movlw 0f8h
andwf time_mode,1
movlw 3
andwf geram1,0
iorwf time_mode,1
swapf remodata2,0
bcf ramset,pa0
movwf timenum
btfss timenum,4
goto remodata_ret
movlw .6
subwf timenum,1
remodata_ret
bcf ramset,pa0
retlw 0
;-------------------------
numr2_numr1
movf geram2,0
subwf geram3,0
movwf geram1
skpnc
goto rev_1
movlw .194
movwf geram1
movf geram2,0
subwf geram1,0
addwf geram3,0
movwf geram1
rev_1
retlw 0
;-------------------------
page2_start
;=====================
;遥控接收检测
;=====================
remosub
bsf remo_io,remo
btfss remo_io,remo
goto remohave
btfss flash,lowpls
goto rev_sub
bcf flash,lowpls
goto rev_ret
rev_sub
btfss flash,remok
goto rev_ret
movf rtcc,0
movwf geram3
movf numrtcc1,0
movwf geram2
call numr2_numr1
movlw .100
subwf geram1,0
skpc
goto rev_ret
movlw .40
subwf datanum,0
skpz
goto rev_errsub
call remodata_sub
goto rev_errsub
remohave
btfsc flash,lowpls
goto rev_ret
bsf flash,lowpls
btfsc flash,rtstart
goto remohave_1
bsf flash,rtstart
bsf flash,remolead
movf rtcc,0
movwf numrtcc1
goto rev_ret
remohave_1
movf rtcc,0
movwf geram3
movf numrtcc1,0
movwf geram2
call numr2_numr1
movf geram3,0
movwf numrtcc1
btfsc flash,remolead
goto cheklead
movlw .15
subwf geram1,0
skpnc
goto rev_errsub
movlw .7
subwf geram1,0
bsf ramset,pa0
rrf remodata1,1
rrf remodata2,1
rrf remodata3,1
rrf remodata4,1
rrf remodata5,1
bcf ramset,pa0
incf datanum,1
bsf flash,remok
bcf flash,refok
goto rev_ret
cheklead
bcf flash,remolead
movlw .60
subwf geram1,0
skpnc
goto rev_errsub
movlw .40
subwf geram1,0
skpc
goto rev_errsub
bsf flash,remok
goto rev_ret
rev_errsub
clrf datanum
bcf flash,remok
bcf flash,rtstart
rev_retTop




