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

📄 tx.asm

📁 本代码 只要配上射频发射和接收模块既可使用
💻 ASM
字号:
;--------------------------------
;TMRO  EQU  1
;-------------------------------------------
;发射电路主程序区
;------------------------------------------
      ORG    0
      MOVLW  0xAA  ;设码1
      MOVWF  30
      MOVLW  0xAA   ;设码2
      MOVWF  29
      MOVLW  0x00  ;输出同步码0  732us
      MOVWF  6
TCK   MOVLW  0xCD ;设定狗
      OPTION
      MOVLW  0xF3  ;设I\O口
      TRIS    6
      MOVF   30,0  ;F30到F27
      MOVWF  27
      MOVF   29,0  ;F29到F26
      MOVWF  11
      MOVLW  0x8  ;设码1 次数
      MOVWF  28
      MOVLW  0x8   ;设码2 次数
      MOVWF  25
      MOVLW   0x04 ;输出同步码1   1ms
      MOVWF   6
      CLRWDT       ;狗清0
      MOVLW  0xCD ;设定狗
      OPTION
      NOP
      NOP
      MOVLW  0x00  ;输出同步码0   1Ms
      MOVWF  6
      CLRWDT       ;狗清0
      MOVLW  0xCD ;设定狗
      OPTION
      NOP
      NOP
      MOVLW   0x04 ;输出同步码1   1ms
      MOVWF   6
      CLRWDT       ;狗清0
      MOVLW  0xCD ;设定狗
      OPTION
      NOP
      NOP
      MOVLW  0x00  ;输出同步码0  1000us
      MOVWF  6
      CLRWDT       ;狗清0
      MOVLW  0xCD ;设定狗
      OPTION
      NOP
      NOP
      NOP
LA2   MOVLW  0x00  ;输出同步码0  1000us
      MOVWF  6
      CLRWDT       ;狗清0
      MOVLW  0xCD ;设定狗
      OPTION
      NOP
      NOP
      NOP
      MOVLW   0x04 ;输出同步码1   5ms
      MOVWF   6
      MOVLW  0xE
      MOVWF  12
LA3   DECFSZ 12,1  ;减1等于零就跳
      GOTO    LA3
      MOVLW  0x00  ;输出同步码0  500us
      MOVWF  6
      BTFSC 27,0   ;DO 既F27第一位=0 就跳
      GOTO  LKB
      NOP
      CALL  ABL    ;调用输出0
      GOTO  LKA    ;
LKB   CALL  ABH    ;调用输出1
      NOP
      NOP
LKA   RRF   27,1   ;右移
      DECFSZ 28,1  ;减1等于零就跳
      GOTO   LA2
      NOP
LC2   MOVLW  0x00  ;输出同步码0  1000us
      MOVWF  6
      CLRWDT       ;狗清0
      MOVLW  0xCD ;设定狗
      OPTION
      NOP
      NOP
      NOP
      NOP
      MOVLW   0x04 ;输出同步码1   5ms
      MOVWF   6
      MOVLW  0xE
      MOVWF  12
LC3   DECFSZ 12,1  ;减1等于零就跳
      GOTO    LC3
      MOVLW  0x00  ;输出同步码0  500us
      MOVWF  6
LKD   BTFSC  11,0  ;F26 D9 等于0就跳
      GOTO  LBK
      NOP
      CALL  ABL    ;调用输出0 2074us
      GOTO  KK1
LBK   CALL  ABH    ;调用输出1 2074us
      NOP
      NOP
KK1   RRF    11,1  ;右移动
      DECFSZ  25,1 ;减1为0就跳
      GOTO   LC2   ;末结束
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      MOVLW  0x00  ;输出码0
      MOVWF  6
      CALL   LD3   ;定时800ms
      MOVLW  0xF3  ;设I\O口
      TRIS    6
      GOTO   TCK   ;已结束

;---------------------------
;子程序区
;-----------------------------
ABH   MOVLW  0x04  ;输出1
      MOVWF    6
      MOVLW  0xD  ;输出1 5ms
      MOVWF    20
LB1   DECFSZ  20,1 ;减1为0就跳
      GOTO    LB1
      CLRWDT       ;狗清0
      MOVLW  0xCD ;设定狗
      OPTION
      MOVLW  0x00  ;输出0
      MOVWF    6
      RETLW  0x00

ABL   MOVLW  0x04  ;输出1
      MOVWF    6
      MOVLW  0x5  ;输出0  2.5ms
      MOVWF    19
LB2   DECFSZ  19,1 ;减1为0就跳
      GOTO    LB2
      MOVLW  0x00  ;输出0
      MOVWF    6
      MOVLW  0x5  ;输出0  2.5ms
      MOVWF    19
LB3   DECFSZ  19,1 ;减1为0就跳
      GOTO    LB3
      CLRWDT       ;狗清0
      MOVLW  0xCD ;设定狗
      OPTION
      RETLW  0x00
;------------------------------
;定时程序
;------------------------------


LD3   CLRF    1     ;定时器清零
      MOVLW  0x87  ;设狗  1:256
      OPTION
LS3   MOVLW   0xF0  ;定时时 800ms
      CLRWDT       ;狗清0
      SUBWF  1,0    ;F减W
      BTFSS  3,2    ;Z=1 既结果相等 就跳
      BTFSC  3,0    ;C=0 即结果为负 就跳
      RETLW  0x00   ;时间到
      GOTO   LS3    ;时间末到
      END

⌨️ 快捷键说明

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