紅外接收目前用的比較多的有三種方法.
1,查詢法,既軟件不停地查詢是否為低(遙控信號)然后通過精確延時讀頭碼.和 數(shù)據(jù)0或1碼. 2,讀到有信號輸入時開打開定時計數(shù)器,然后通過讀定時器的中斷次數(shù),來判定頭碼和0,1的. 3 RB0或RB4-RB7加定時器(或軟件延時)利用輸入中斷的好處是可做實時控制.
如下: ;***發(fā)射為6221,把接收到的碼值送到ICD的PORTC口顯示****** ;**************** *************** org 0000h nop goto start org 0004h goto serv ;************************************************** start bsf status,rp0 ;體1 movlw 0000h movwf trisc ;C口輸出 movlw 0ffh ;B口RB0輸入 movwf trisb movlw B''00000100'' ;1:64 movwf option_reg ;TMR0定時器 bcf status,rp0 ;體0 clrf intcon ;10010000 bsf intcon,7 ;開放INT下降沿中斷 bsf intcon,4 bcf intcon,1 clrf portc loop sleep nop goto loop ;*************現(xiàn)場保護******************************** serv movwf w_temp swapf status,0 clrf status movwf status_temp movf pclath,0 |