Connexion
Menu Principal
Recherche
Message du rapport :*
Code de Confirmation*
2 + 5 = ?  
Entrez le résultat de l'expression
Maximum de tentatives que vous pouvez essayer : 10
 

Re: y a quoi dans une alarme chinoise ?

Objet : Re: y a quoi dans une alarme chinoise ?
par swakk sur 22/10/2010 19:13:27

;PT2240 DECODE PROGRAM

;*****************************??????
ROLL
RLF W_ADD3,1
RLF W_ADD2,1
RLF W_ADD1,1
RETLW 00H
;**************************???????30us
BOUNCE1
MOVLW D'08'
MOVWF R4
ABCD
DECFSZ R4,1
GOTO ABCD
RETLW 00H
;**************************


;*********************************
; CATCH CODE
;*********************************
CATCH_CODE
CLRF TMR0
MOVLW B'00000111'
OPTION
RESTART_0
CLRWDT
MOVLW D'100'
SUBWF TMR0,0
BTFSC STATUS,C
GOTO CODE_FAIL
JACK_1
MOVLW D'60'
MOVWF R1 ;1 ;80d->4.62ms
RESTART_1
CALL BOUNCE1 ;?????????????????????30us???
BTFSC PORTC,0
GOTO RESTART_0 ;6.8ms?????????2.2???????????????????????????????
DECFSZ R1 ;1 ?0????????2.2ms???????,??????
GOTO RESTART_1 ;2
;*******************************
RESTART_1_1 ;HAVE BOUNCE
CLRWDT
CALL BOUNCE1 ;???????????30us*256?????????????????????
INCFSZ R1 ;??????????????????25.3ms??????
GOTO RESTART_1_2 ;2 ;?????????????
GOTO RESTART_0 ;2
RESTART_1_2
BTFSS PORTC,0 ;
GOTO RESTART_1_1 ;2
;*******************************
CLRF R1 ????????????????
CLRF W_ADD1 ?????
CLRF W_ADD2
CLRF W_ADD3
; CLRF DATA_0 ;????
MOVLW D'24'
MOVWF COMMAND ;??????20???+4????
;*******************************
;////////////////////////////////
;*******************************
;////////////////////////////////
RESTART_2 ;"1" JUMP
CALL BOUNCE1
INCFSZ R1 ;??????????30*256us,??????????????
GOTO RESTART_2_1??????25.3ms??????
GOTO RESTART_0
RESTART_2_1
BTFSC PORTC,0 ;????????R1*30us,???????
GOTO RESTART_2 ;
;*******************************

;;;;;
MOVLW D'30' ;???????????????????0??1?30*R1?
SUBWF R1,W ;30*30=900us???????????????????????????
BTFSC 3,0
GOTO RESTART_0
;;;;;


CLRF R1
RESTART_3 ;"0" JUMP "1"=30US ;???????????
; INCF R1 ;1
BTFSC PORTC,0 ;1
GOTO RE_JUMPOUT ;2
CALL BOUNCE1 ;30
INCFSZ R1 ;1
GOTO RESTART_3 ;2
GOTO RESTART_0
;**********************************
RE_JUMPOUT
MOVLW D'3' ;????????????????3*30us=90us??????????????????
SUBWF R1,W
BTFSC 3,0
GOTO RTC_1
GOTO RESTART_0
;**********************************
RTC_1
MOVLW D'30' ;????????????????30*30us=900us??????????????????
SUBWF R1,W
BTFSC 3,0
GOTO RESTART_0
;****************************
; senser is "1" change"c"
;****************************
CHECK_C
MOVLW D'9' ;?????????0??1?
SUBWF R1,0 ;PT2240B"1"???????200us???"0"?????800us???????30*13=390us
BTFSS 3,0 ;??390us????????1
GOTO SET_1
CLRC
GOTO CHECK_C_END
SET_1
SETC
CHECK_C_END
;****************************
CALL ROLL ;??????
CLRF R1

CLRWDT

DECFSZ COMMAND,1 ;??????24??,?????????
GOTO RESTART_2
;******************************
P_END ;????????????PT2240B????????????
movlw d'30'
movwf r1 ;?992a?????????????????????????????????

pp0 ;????????
call bounce1
decfsz r1
goto pp0

MOVLW D'60' ;
MOVWF R1 ;1
pp1
CALL BOUNCE1 ;2+90
BTFSC PORTC,0 ;1
GOTO RESTART_0 ;2
DECFSZ R1 ;1
GOTO pp1


MOVF W_ADD3,0 ;????????????????????????????w_add1~3??
MOVWF DATA_0 ;?????w_add3??????????data_0???????data_0??
MOVLW B'11110000' ; ?????????
ANDWF W_ADD3,1
MOVLW B'00001111'
ANDWF DATA_0,1
...............
CODE_FAIL ;????
CLRF DATA_0
INCF FAILTIME,1
MOVLW D'6' ;d'4'
SUBWF FAILTIME,0
BTFSS STATUS,C
GOTO RX_END
CLRF FAILTIME
BCF W_TEST,0
CLRF KEYTIME
RX_END

GOTO CHECK_KEY_END


en traduit google

================

; PT2240 PROGRAMME DECODE

Ajoutez le code reçu ;*****************************
ROLL
RLF W_ADD3, 1
RLF W_ADD2, 1
RLF W_ADD1, 1
RETLW 00H
;************************** Procédures Delay, environ 30US
BOUNCE1
D'MOVLW 08 '
MOVWF R4
ABCD
DECFSZ R4, 1
GOTO ABCD
RETLW 00H
;**************************


;*********************************
; CATCH CODE
;*********************************
CATCH_CODE
CLRF TMR0
MOVLW B'00000111 '
OPTION
RESTART_0
CLRWDT
MOVLW D'100 '
SUBWF TMR0, 0
STATUT BTFSC, C
GOTO CODE_FAIL
JACK_1
D'MOVLW 60 '
MOVWF R1; 1; 4.62ms-80d>
RESTART_1
APPEL BOUNCE1; Il s'agit d'un processus de temporisation, y compris la mise en œuvre de la directive, le temps passé à un total de 30US
PORTC BTFSC, 0
GOTO RESTART_0; 6.8ms faible long, où la valeur de 2,2 est juste un test, si plus de la, vous pouvez à la mise en œuvre de, ou autrement signal invalide.
DECFSZ R1; 1 à 0, qui a été une longue attente pour les signaux de faible niveau 2.2ms, vous pouvez effectuer à
GOTO RESTART_1 2;
;*******************************
RESTART_1_1; ONT BOUNCE
CLRWDT
APPEL BOUNCE1; attendre semble élevé, et si oui 30US * 256 temps, il n'est pas élevé pour elle, avant de faire
INCFSZ R1, ou pas, recommencer, mais cette fois le temps d'attente est toujours 25.3ms
GOTO RESTART_1_2; 2; se produire dans le délai prévu à haute
GOTO RESTART_0 2;
RESTART_1_2
PORTC BTFSS, 0;
GOTO RESTART_1_1 2;
;*******************************
CLRF R1; d'attendre jusqu'à ce que le secondaire, de pré-code prêt pour la collecte.
CLRF W_ADD1; bits d'adresse clair
CLRF W_ADD2
CLRF W_ADD3
; CLRF DATA_0; clair bits de données
D'MOVLW 24 '
MOVWF COMMAND; numéro de code reçus: 20 bits de données d'adresse 4
;*******************************
;////////////////////////////////
;*******************************
;////////////////////////////////
RESTART_2; "1" JUMP
APPEL BOUNCE1
INCFSZ R1; Si un site étendu à plus de 30 ° * 256us, alors ce code n'est pas un code valide, recommencer,
GOTO RESTART_2_1; temps ou temps d'attente dans 25.3ms
GOTO RESTART_0
RESTART_2_1
BTFSC PORTC, 0; comptage du temps de haute R1 30US *, si l'arrivée de faible
GOTO RESTART_2;
;*******************************

;;;;;
MOVLW D'30 '; attendre faible, faible pour aller à différencier le code est 0 ou 1,30 * R1,
SUBWF R1, W; 30 * 30 = 900us est la limite supérieure, si le haut est supérieure à cette valeur, a été le signal invalide, recommencer
BTFSC 3,0
GOTO RESTART_0
;;;;;


CLRF R1
RESTART_3; "0" JUMP "1" = 30US, ou dans le faible niveau d'attente.
; INCF R1, 1
PORTC BTFSC, 0, 1
RE_JUMPOUT GOTO, 2
APPEL BOUNCE1, 30
INCFSZ R1, 1
GOTO RESTART_3 2;
GOTO RESTART_0
;**********************************
RE_JUMPOUT
D'MOVLW 3 '; fixer des limites, si le haut est égale ou inférieure à 3 * 30US = 90us, puis le code n'est pas un code valide, recommencer
SUBWF R1, W
BTFSC 3,0
GOTO RTC_1
GOTO RESTART_0
;**********************************
RTC_1
MOVLW D'30 '; fixer la limite supérieure, si le niveau élevé égale ou supérieure à 30 * 30US = 900us, puis le code n'est pas un code valide, recommencer
SUBWF R1, W
BTFSC 3,0
GOTO RESTART_0
;****************************
; Senser est "1" le changement "c"
;****************************
CHECK_C
D'MOVLW 9 '; ont un code valide, la distinction entre un 0 ou 1,
SUBWF R1, 0; PT2240B "1" de haut niveau est généralement autour de 200 US, «0» où la distinction entre valeur élevée pour le * 30 13 = 800us 390us
BTFSS 3,0; le signal haute ne dépasse pas 1 390us
GOTO SET_1
CRCL
GOTO CHECK_C_END
SET_1
SETC
CHECK_C_END
;****************************
Appel; enregistrer le code reçu
CLRF R1

CLRWDT

DECFSZ COMMAND, 1; voir s'il ya fermeture de plus de 24 mètres, sinon, le code de nouveaux revenus
GOTO RESTART_2
;******************************
P_END; Voici la phase finale de vérification pour voir les informations PT2240B, la seconde moitié d'un code donné
movlw d'30 '
movwf r1; est 992a de la dépression. Lors de la vérification, si le faible est trop court, puis le code est reçu dans ce groupe d'abandonner,

pp0; alors à tout recommencer
appel bounce1
decfsz r1
goto pp0

MOVLW D'60 ';
MOVWF R1, 1
pp1
APPEL BOUNCE1, 2 90
PORTC BTFSC, 0, 1
GOTO RESTART_0 2;
DECFSZ R1, 1
GOTO pp1


MOVF W_ADD3, 0; dans le code de collecte, et ne traitait pas de code séparé et bits de données, puis toutes les commandes passées w_add1 ~ 3 ans,
MOVWF DATA_0, ici, dans la seconde moitié de la valeur de la déplacer dans w_add3 data_0, alors maintenant où data_0
MOVLW B'11110000 '; valeur est le bit d'information.
ANDWF W_ADD3, 1
MOVLW B'00001111 '
ANDWF DATA_0, 1
...............
CODE_FAIL; reçu code d'échec
CLRF DATA_0
FAILTIME INCF, 1
D'MOVLW 6 '; d'4'
FAILTIME SUBWF, 0
STATUT BTFSS, C
GOTO RX_END
CLRF FAILTIME
W_TEST BCF, 0
CLRF KeyTime
RX_END

GOTO CHECK_KEY_END
Site archivé nous le gardons en ligne pour références techniques https://www.boostycom.fr/