?? tx.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 + -