天堂草原最受欢迎的角色,天堂动漫,天堂在线,色天堂下载,天堂中文在线资源,亚洲男人天堂

技術熱線: 4007-888-234
設計開發

專注差異化嵌入式產品解決方案 給智能產品定制注入靈魂給予生命

開發工具

提供開發工具、應用測試 完善的開發代碼案例庫分享

技術支持

從全面的產品導入到強大技術支援服務 全程貼心伴隨服務,創造無限潛能!

新品推廣

提供新的芯片及解決方案,提升客戶產品競爭力

新聞中心

提供最新的單片機資訊,行業消息以及公司新聞動態

一個遙控器程序

更新時間: 2019-03-26
閱讀量:2123

include    

 

COUNT  EQU 20H
COUNT1  EQU 21H
COUNT2  EQU 22H
ADDRES  EQU 23H
SENDBUF  EQU 24H  ;存鍵值
TXBUF  EQU 25H
MM  EQU 26H  ;10MS DELAY
NN  EQU 27H
AA  EQU 28H  ; DELAY1
BB  EQU 29H
TVDATA  EQU 2AH
;=============================
  ORG 10H
START  
BSF STATUS,RP0
MOVLW B’11111111’ ;RA4頻道下翻
        MOVWF TRISA
        MOVLW   B’00000001’
        MOVWF TRISB          ;RB0頻道上翻 RB1 LED
        MOVLW   B’11111110’
        MOVWF TRISC  ;RC0 紅外輸出
BCF STATUS,RP0 

 BCF     PORTC,0        ;紅外輸出口
BSF PORTB,1        ;復位時RB1 LED閃二下,表示工作正常。
CALL DELAY1
BCF PORTB,1
CALL DELAY1
BSF PORTB,1
CALL DELAY1
BCF PORTB,1
CALL DELAY1
;================鍵掃描=================
MAIN   
BTFSS   PORTB,0  ;RB0頻道上翻
        GOTO    SCHUP  ;PORTB常態是高電平,低電平有鍵按下。
BTFSS   PORTA,4  ;RA4頻道下翻
        GOTO    SCHDOWN
        GOTO    MAIN 

;==========頻道上翻=============
SCHUP   CALL DELAY  ;鍵去抖
BTFSC   PORTB,0 
        GOTO    MAIN
BTFSS   PORTB,0  ;鍵釋放?
GOTO $-1
BSF PORTB,1
;
MOVLW B’00110100’  ;TV ADRESS(寫入自己的彩電地址碼)
MOVWF ADDRES
MOVLW B’00000001’  ;TV DATA
MOVWF TVDATA
CALL SEND  ;發送一次紅外信號
MOVLW B’00110100’  ;TV ADRESS
MOVWF ADDRES
MOVLW B’00000001’  ;TV DATA
MOVWF TVDATA
CALL SEND  ;發送一次紅外信號
GOTO MAIN
;==========頻道下翻=============
SCHDOWN  CALL DELAY  ;鍵去抖
BTFSC   PORTA,4 
        GOTO    MAIN
BTFSS   PORTA,4  ;鍵釋放?

GOTO $-1
BSF PORTA,4
;
MOVLW B’00110100’  ;TV ADRESS
MOVWF ADDRES
MOVLW B’00000010’  ;TV DATA
MOVWF TVDATA
CALL SEND  ;發送一次紅外信號
MOVLW B’00110100’  ;TV ADRESS
MOVWF ADDRES
MOVLW B’00000010’  ;TV DATA
MOVWF TVDATA
CALL SEND  ;發送一次紅外信號
GOTO MAIN
;=======發送8.07mS+4.0MS組成的頭碼===========  (一般是9MS+4.5MS)
SEND    MOVLW   0XFF
CALL POUSE       
        MOVLW   0X34         
CALL POUSE 
;4.0MS      

  MOVLW   0XC8         
CALL DELAY2 
;=========發送地址===========
        MOVF ADDRES,0      
CALL TVADDRESS
;========中間插一斷560uS+4MS低===============
        MOVLW   0X14         
CALL POUSE         
        MOVLW   0XC8         
CALL DELAY2
;=========發送數據===========
        MOVF    TVDATA,0      
CALL TVADDRESS
;===結尾560US POUSE+22.7MS低電平======
        MOVLW   0X13        
CALL POUSE
        BCF     PORTC,0
CALL DELAY  ;3MS
CALL DELAY  ;3MS
CALL DELAY  ;3MS
CALL DELAY  ;3MS
CALL DELAY  ;3MS
CALL DELAY  ;3MS
CALL DELAY  ;3MS
RETURN
    
;===========560uS 高38K頻===============
POUSE   MOVWF   COUNT        ;560uS=0X14
K38 BSF PORTC,0 ;(0XFF+ 0X34)*26.9=8.07mS
        NOP       ;(0XFF+ 0X4E)*26.9=9mS
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        BCF     PORTC,0        
        NOP             
        NOP                    
        NOP
        NOP

  NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP                    
        DECFSZ  COUNT,1
        GOTO    K38
RETURN
;===============發送TV地址和數據碼==================
TVADDRESS  MOVWF   TXBUF  ;注意PC示波器先收到的是低位!!!
        MOVLW   0X08
        MOVWF   COUNT1
TLP     BTFSC   TXBUF,0         ;地址碼為0就發0,為1就發1。
        GOTO    IDONE

 

;==========TV 發送0子程序============
        MOVLW   0X14
        MOVWF   COUNT       ; 560uS
TVZERO   BSF     PORTC,0 
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP 
        BCF      PORTC,0                              
        NOP                    
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP

  NOP
        NOP
        NOP                
        DECFSZ  COUNT,1
        GOTO    TVZERO  
;     
        BCF      PORTC,0 
        MOVLW   0X7D
        MOVWF   COUNT2          ;480uS
L0TLP   NOP
        DECFSZ  COUNT2,1
        GOTO    L0TLP
;---------------
        GOTO    GUR
IDONE    
;==========TV 發送1子程序============
;560uS+1.43mS
        MOVLW   0X14
        MOVWF   COUNT        ;560uS
TVONE   BSF     PORTC,0      ;紅外輸出口
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        BCF     PORTC,0        
        NOP             
        NOP                    
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP                    
        DECFSZ  COUNT,1
        GOTO    TVONE         

;-------   
        BCF      PORTC,0  
        MOVLW   0X7D
        MOVWF   COUNT2         ;1.48mS
L1TLP   NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        DECFSZ  COUNT2,1
        GOTO    L1TLP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
;-----------------
GUR     RRF     TXBUF,1       
        DECFSZ  COUNT1,1          ;共8次。
        GOTO    TLP 
RETURN
;
;=========== 3ms鍵去抖 =============
DELAY MOVLW 0X04
MOVWF MM
DY1 MOVLW 0XFF
MOVWF NN
DY2 DECFSZ NN
GOTO DY2
DECFSZ MM
GOTO DY1
        RETURN
;=========== LED閃延時 =============
DELAY1 MOVLW 0XFF
MOVWF AA
DYA1 MOVLW 0XFF
MOVWF BB
DYA2 DECFSZ BB
GOTO DYA2

DECFSZ AA
GOTO DYA1
        RETURN

 

;============ 20us*X ================
DELAY2  MOVWF   COUNT2    ;0XC8=20us*200=4.0ms  
TOPL    NOP     ;0XE1=20us*225=4.5ms
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        DECFSZ  COUNT2,1
        GOTO    TOPL
RETURN

 

;=============================
END



联系我们: 巴塘县| 黄陵县| 江山市| 阳山县| 抚宁县| 乐亭县| 论坛| 逊克县| 望都县| 吉安市| 莱阳市| 普陀区| 河东区| 广丰县| 徐闻县| 共和县| 西昌市| 舟曲县| 平南县| 潼关县| 蒙自县| 朝阳区| 玉门市| 双柏县| 普宁市| 萨迦县| 鹰潭市| 海丰县| 太和县| 灵宝市| 宽城| 京山县| 彩票| 柳河县| 佛学| 普兰店市| 清原| 潢川县| 沈丘县| 临夏市| 崇明县|