机电之家资源网
单片机首页|单片机基础|单片机应用|单片机开发|单片机文案|软件资料下载|音响制作|电路图下载 |嵌入式开发
培训信息
赞助商
PIC16F72做的摇控器
PIC16F72做的摇控器
 更新时间:2008-7-27 16:41:36  点击数:3
【字体: 字体颜色

;*APPLICATION NOTE  E6000 ICEXPLORER ***************
;* Title:           FOR 一个遥控器程序             *
;* Version:         00                             *
;* Last Updated:    2006.06.13                     *
;* MCU:             PIC16F72                       *
;* For:             WWW.PICAVR.COM                 *
;***************************************************
;***ROM  PCLATH.D3=0  000H-7FFH                    ;
;  PCLATH.D3=1  800H-FFFH                    ;
;***************************************************
;** RAM    BANK0=20H---7FH STATUS RP0=0,RP1=0 *
;**        BANK1=A0H---FFH STATUS RP0=1,RP1=0 *
;***************************************************
;           ________________
;    MCLR/VPP/TH-| 1        28 |-RB7/PGD
;  RA0/AN0-| 2           27 |-RB6/PGC
;        RA1/AN1-| 3        26 |-RB5
; RA2/AN2/VRref--| 4           25 |-RB4
; RA3/AN3/VRref+-| 5           24 |-RB3/PGM
;      RA4/TOCKI-| 6           23 |-RB2
;     RA5/AN4/SS-| 7           22 |-RB1
;            VSS-| 8           21 |-RB0/INT
;     OSC1/CLKIN-| 9           20 |-VDD
;    OSC2/CLKOUT-| 10        19 |-VSS
; RC0/TISO/TICKI-| 11          18 |-RC7/RX/DT
; RC1/T1OSI/CCP2-| 12          17 |-RC6/TX/CK
;  RC2/CCP1-| 13          16 |-RC5/SDO
;    RC3/SCK/SCL-| 14          15 |-RC4/SDA
;    ________________
;         16F72
;***************************************************
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子程序============
;560uS+480uS
        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

  • 上一篇: 用HT48R06单片机做的水冷扇
  • 下一篇: 16F74做的按键动态显示+SC1621摇控
  • 发表评论   告诉好友   打印此文  收藏此页  关闭窗口  返回顶部
    热点文章
     
    推荐文章
     
    相关文章
    网友评论:(只显示最新5条。)
    关于我们 | 联系我们 | 广告合作 | 付款方式 | 使用帮助 | 机电之家 | 会员助手 | 免费链接

    点击这里给我发消息66821730(技术支持)点击这里给我发消息66821730(广告投放) 点击这里给我发消息41031197(编辑) 点击这里给我发消息58733127(审核)
    本站提供的机电设备,机电供求等信息由机电企业自行提供,该企业负责信息内容的真实性、准确性和合法性。
    机电之家对此不承担任何保证责任,有侵犯您利益的地方请联系机电之家,机电之家将及时作出处理。
    Copyright 2007 机电之家 Inc All Rights Reserved.机电之家-由机电一体化网更名-声明
    电话:0571-87774297 传真:0571-87774298
    杭州滨兴科技有限公司提供技术支持

    主办:杭州市高新区(滨江)机电一体化学会
    中国行业电子商务100强网站

    网站经营许可证:浙B2-20080178-1