⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pic.txt

📁 pic单片机对红外设备控制得一个源程序
💻 TXT
📖 第 1 页 / 共 5 页
字号:
R2_STATE2                    ;else if (com_state == 2)
  MOVFW       COM_STATE
  SUBLW       D'2'
  SKPZ
  GOTO        R2_STATE3
  MOVFW       COM_BYTE       ;  if (com_byte == '_')
  SUBLW       '_'
  SKPZ
  GOTO        R2_STATE2_ELSE
  INCF        COM_STATE,F    ;    com_state ++;
  GOTO        R2_END_NEW
R2_STATE2_ELSE               ;  else
  CLRF        COM_STATE      ;    com_state = 0;
  GOTO        R2_END_NEW
R2_STATE3                    ;else if (com_state == 3)
  MOVFW       COM_STATE
  SUBLW       D'3'
  SKPZ
  GOTO        R2_STATE4
  MOVFW       COM_BYTE       ;  tw_t_house = com_byte
  MOVWF       TW_T_HOUSE
  INCF        COM_STATE,F    ;  com_state ++;
  GOTO        R2_END_NEW
R2_STATE4                    ;else if (com_state == 4)
  MOVFW       COM_STATE
  SUBLW       D'4'
  SKPZ
  GOTO        R2_STATE5
  MOVFW       COM_BYTE       ;  tw_t_key = com_byte
  MOVWF       TW_T_KEY
  INCF        COM_STATE,F    ;  com_state ++;
  GOTO        R2_END_NEW
R2_STATE5                    ;else
  MOVFW       COM_BYTE       ;  if (com_byte == 13)
  SUBLW       D'13'
  SKPZ
  GOTO        R2_ABORT
  CALL        TW_SEND        ;    // send x-10
  CALL        R2_ECHO        ;    // send status
R2_ABORT
  CLRF        COM_STATE      ;  com_state = 0;
R2_END_NEW
  RETURN

;This is called when an X10 command is received.  House code will be
;in tw_house, and key code in tw_key.
TW_NEW
  MOVFW       TW_HOUSE       ;tw_p_house = converted(tw_house);
  CALL        TW_TO_HOUSE
  MOVWF       TW_P_HOUSE
  MOVFW       TW_KEY         ;tw_p_key = converted(tw_key);
  CALL        TW_TO_KEY
  MOVWF       TW_P_KEY
  RETURN

R2_ECHO
  MOVLW       'C'            ;Format of reply:
  CALL        R2_SEND        ;CX_E1<ret>
  MOVLW       'X'            ;^^^^^^
  CALL        R2_SEND        ;||||||
  MOVLW       '_'            ;|||||+- return character (0x13)
  CALL        R2_SEND        ;||||+-- 2nd response character
  MOVFW       TW_P_HOUSE     ;|||+--- 1st response character
  CALL        R2_SEND        ;||+---- underscore
  MOVFW       TW_P_KEY       ;|+----- from X-10 module
  CALL        R2_SEND        ;+------ to Computer
  MOVLW       D'13'
  CALL        R2_SEND

  MOVLW       ' '
  MOVWF       TW_P_HOUSE     ;//erase house and key code
  MOVWF       TW_P_KEY
  RETURN

END
;***************************************
	LIST
; P16CXX.INC  Standard Header File, Version 2.04    Microchip Technology, Inc.
	NOLIST

; This header file defines configurations, registers, and other useful bits of
; information for the 16CXX microcontrollers.  These names are taken to match 
; the data sheets as closely as possible.  The microcontrollers included
; in this file are:

;       16C61
;       16C62
;       16C620
;       16C621
;       16C622
;       16C63
;       16C64
;       16C65
;       16C71
;       16C73
;       16C74
;       16C84


; There is one group of defines that is valid for all microcontrollers.  
; Each microcontroller in this family also has its own section of special 
; defines.  Note that the processor must be selected before this file is 
; included.  The processor may be selected the following ways:

;       1. Command line switch:
;               C:\ MPASM MYFILE.ASM /P16C71
;       2. LIST directive in the source file
;               LIST   P=16C71
;       3. Processor Type entry in the MPASM full-screen interface

;==========================================================================
;
;       Generic Definitions
;
;==========================================================================

   W                            EQU     H'0000'
   F                            EQU     H'0001'

;----- Register Files------------------------------------------------------

   INDF                         EQU     H'0000'
   TMR0                         EQU     H'0001'
   PCL                          EQU     H'0002'
   STATUS                       EQU     H'0003'
   FSR                          EQU     H'0004'
   PORTA                        EQU     H'0005'
   PORTB                        EQU     H'0006'

   PCLATH                       EQU     H'000A'
   INTCON                       EQU     H'000B'

   OPTION_REG                   EQU     H'0081'
   TRISA                        EQU     H'0085'
   TRISB                        EQU     H'0086'

;----- INTCON Bits (except ADC/Periph) ------------------------------------

   GIE                          EQU     H'0007'
   T0IE                         EQU     H'0005'
   INTE                         EQU     H'0004'
   RBIE                         EQU     H'0003'
   T0IF                         EQU     H'0002'
   INTF                         EQU     H'0001'
   RBIF                         EQU     H'0000'

;----- OPTION Bits --------------------------------------------------------

   NOT_RBPU                     EQU     H'0007'
   INTEDG                       EQU     H'0006'
   T0CS                         EQU     H'0005'
   T0SE                         EQU     H'0004'
   PSA                          EQU     H'0003'
   PS2                          EQU     H'0002'
   PS1                          EQU     H'0001'
   PS0                          EQU     H'0000'

;----- STATUS Bits --------------------------------------------------------

   IRP                          EQU     H'0007'
   RP1                          EQU     H'0006'
   RP0                          EQU     H'0005'
   NOT_TO                       EQU     H'0004'
   NOT_PD                       EQU     H'0003'
   Z                            EQU     H'0002'
   DC                           EQU     H'0001'
   C                            EQU     H'0000'

;==========================================================================
;
;       Processor-dependent Definitions
;
;==========================================================================

 IFDEF __16C61
   __MAXRAM H'0AF'
   __BADRAM H'07'-H'09', H'030'-H'07F', H'087'-H'089' 
   #define __CONFIG_0
 ENDIF

 IFDEF __16C62
      PORTC                     EQU     H'0007'
   __MAXRAM H'0BF'
   __BADRAM H'08'-H'09',H'0D',H'018'-H'01F',H'08D',H'08F'-H'091',H'095'-H'09F'
   #define __CONFIG_2
 ENDIF

 IFDEF __16C620
   ;----- Register Files --------------------------------------------------
      PIR1                      EQU     H'000C'
      CMCON                     EQU     H'001F'

      PIE1                      EQU     H'008C'
      PCON                      EQU     H'008E'
      VRCON                     EQU     H'009F'

   __MAXRAM H'09F'
   __BADRAM H'07'-H'09', H'0D'-H'01E', H'070'-H'07F', H'087'-H'089', H'08D', H'08F'-H'09E'
   #define __CONFIG_6
 ENDIF

 IFDEF __16C621
   ;----- Register Files --------------------------------------------------
      PIR1                      EQU     H'000C'
      CMCON                     EQU     H'001F'

      PIE1                      EQU     H'008C'
      PCON                      EQU     H'008E'
      VRCON                     EQU     H'009F'

   __MAXRAM H'09F'
   __BADRAM H'07'-H'09', H'0D'-H'01E', H'70'-H'07F', H'087'-H'089', H'08D', H'08F'-H'09E'
   #define __CONFIG_4
 ENDIF

 IFDEF __16C622
   ;----- Register Files --------------------------------------------------
      PIR1                      EQU     H'000C'
      CMCON                     EQU     H'001F'

      PIE1                      EQU     H'008C'
      PCON                      EQU     H'008E'
      VRCON                     EQU     H'009F'

   __MAXRAM H'0BF'
   __BADRAM H'07'-H'09', H'0D'-H'01E', H'087'-H'089', H'08D', H'08F'-H'09E'
   #define __CONFIG_5
 ENDIF

 IFDEF __16C63
   ;----- Register Files --------------------------------------------------
      PORTC                     EQU     H'0007'
      PIR1                      EQU     H'000C'
      TMR1L                     EQU     H'000E'
      TMR1H                     EQU     H'000F'
      T1CON                     EQU     H'0010'
      TMR2                      EQU     H'0011'
      T2CON                     EQU     H'0012'
      SSPBUF                    EQU     H'0013'
      SSPCON                    EQU     H'0014'
      CCPR1L                    EQU     H'0015'
      CCPR1H                    EQU     H'0016'
      CCP1CON                   EQU     H'0017'

      TRISC                     EQU     H'0087'
      PIE1                      EQU     H'008C'
      PCON                      EQU     H'008E'
      PR2                       EQU     H'0092'
      SSPADD                    EQU     H'0093'
      SSPSTAT                   EQU     H'0094'

   __MAXRAM H'0BF'
   __BADRAM H'08'-H'09', H'0D', H'18'-H'1F', H'88', H'89', H'8D', H'8F'-H'91', H'95'-H'9F'
   #define __CONFIG_5
 ENDIF

 IFDEF __16C64
   ;----- Register Files --------------------------------------------------
      PORTC                     EQU     H'0007'
      PORTD                     EQU     H'0008'
      PORTE                     EQU     H'0009'
      PIR1                      EQU     H'000C'
      TMR1L                     EQU     H'000E'
      TMR1H                     EQU     H'000F'
      T1CON                     EQU     H'0010'
      TMR2                      EQU     H'0011'
      T2CON                     EQU     H'0012'
      SSPBUF                    EQU     H'0013'
      SSPCON                    EQU     H'0014'
      CCPR1L                    EQU     H'0015'
      CCPR1H                    EQU     H'0016'
      CCP1CON                   EQU     H'0017'

      TRISC                     EQU     H'0087'
      TRISD                     EQU     H'0088'
      TRISE                     EQU     H'0089'
      PIE1                      EQU     H'008C'
      PCON                      EQU     H'008E'
      PR2                       EQU     H'0092'
      SSPADD                    EQU     H'0093'
      SSPSTAT                   EQU     H'0094'

   __MAXRAM H'0BF'
   __BADRAM H'0D', H'018'-H'01F', H'08D', H'08F'-H'091', H'095'-H'09F'
   #define __CONFIG_2
 ENDIF

 IFDEF __16C65
   ;----- Register Files --------------------------------------------------
      PORTC                     EQU     H'0007'
      PORTD                     EQU     H'0008'
      PORTE                     EQU     H'0009'
      PIR1                      EQU     H'000C'
      PIR2                      EQU     H'000D'
      TMR1L                     EQU     H'000E'
      TMR1H                     EQU     H'000F'
      T1CON                     EQU     H'0010'
      TMR2                      EQU     H'0011'
      T2CON                     EQU     H'0012'
      SSPBUF                    EQU     H'0013'
      SSPCON                    EQU     H'0014'
      CCPR1L                    EQU     H'0015'
      CCPR1H                    EQU     H'0016'
      CCP1CON                   EQU     H'0017'
      RCSTA                     EQU     H'0018'
      TXREG                     EQU     H'0019'
      RCREG                     EQU     H'001A'
      CCPR2L                    EQU     H'001B'
      CCPR2H                    EQU     H'001C'
      CCP2CON                   EQU     H'001D'

      TRISC                     EQU     H'0087'
      TRISD                     EQU     H'0088'
      TRISE                     EQU     H'0089'
      PIE1                      EQU     H'008C'
      PIE2                      EQU     H'008D'
      PCON                      EQU     H'008E'
      PR2                       EQU     H'0092'
      SSPADD                    EQU     H'0093'
      SSPSTAT                   EQU     H'0094'
      TXSTA                     EQU     H'0098'
      SPBRG                     EQU     H'0099'

   __MAXRAM H'0FF'
   __BADRAM H'1E'-H'1F',H'08F'-H'091', H'095'-H'097', H'09A'-H'09F'
   #define __CONFIG_2
 ENDIF

 IFDEF __16C71
   __MAXRAM H'0AF'
   __BADRAM H'07', H'030'-H'07F', H'087'
   #define __ADC_CONFIG_0
   #define __CONFIG_0
 ENDIF

 IFDEF __16C73
   ;----- Register Files --------------------------------------------------
      PORTC                     EQU     H'0007'
      PIR1                      EQU     H'000C'
      PIR2                      EQU     H'000D'
      TMR1L                     EQU     H'000E'
      TMR1H                     EQU     H'000F'
      T1CON                     EQU     H'0010'
      TMR2                      EQU     H'0011'
      T2CON                     EQU     H'0012'
      SSPBUF                    EQU     H'0013'
      SSPCON                    EQU     H'0014'
      CCPR1L                    EQU     H'0015'

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -