Comment élaborer des programmes 16f84a RF

Z

zawani

Guest
Je veux dire, comment développer une programmation pour le contrôleur de RF en utilisant 16F84A PIC.JE PRENDS SORCE CODE AT http://www.hobby-elec.org MAIS PAS funtion au circuit.CAN quelque corps Aide-moi à REPARATION DE PROGRAMMATION CI-DESSOUS

;************************************************* *******
;
; Emetteur télécommande
;
; Auteur: zawani
;************************************************* *******

p = liste PIC16F84A
comprennent p16f84a.inc
__CONFIG _HS_OSC & _WDT_OFF & _PWRTE_ON & _CP_OFF
ERRORLEVEL -302; avertissement banque éliminerDéfinition Label ;**************** ********************
cblock h'0c '
tx_status; statut TX enregistrer zone
tx_substatus; sous-état TX enregistrer zone
modèle; Pattern enregistrer zone
ENDC

ptn1 equ b'11110000; 1 Les données Pattern
ptn2 equ b'00001111; 2 Les données de Pattern
RA4 equ d'4 '; position peu RA4

Démarrage du programme ;**************** ***********************
org 0; Vecteur Reset
goto init
org 4; vecteur d'interruption
int goto

;**************** Processus initial *********************
ÉTAT BSF init, RP0; Changer pour Bank1
movlw b'00000011; RA4: OUT RA1, 0: mode IN
movwf TRISA; Set TRISA reg
movlw b'00000101; RBPU tocs / PSA = 0, PS = 101
movwf OPTION_REG; Set OPTION_REG
Bcf STATUS, RP0; Changer pour Bank0

clrf PORTA; émission d'ondes Stop
tx_status clrf; Clear TX statut
tx_substatus clrf; Clear TX sous-état

movlw b'00000001; motif de masque Set
andwf PORTA, W, ramassez RA0
ÉTAT btfsc, Z; RA0 = 1 (SW1 ON)?
Aller in1; nVérifiez l 'entrée suivante
ptn1; Set motif1 données movlw
In0 modèle movwf; Sauvegarder les données modèle
tm goto; Aller à minuterie est réglée
IN1 movlw b'00000010; motif de masque Set
andwf PORTA, W, ramassez RA1
ÉTAT btfsc, Z; RA1 = 1 (SW2)?
init goto; nentrée illégale
ptn2; Set motif2 données movlw
Aller In0; Aller à motif mettre

movlw d'tm 100 '; 256-10000us/64us = 100
TMR0 movwf; 10msec Set pour TMR0
movlw h'a0; GIE = 1, TOIE = 1
movwf INTCON; Interruption permettre

goto $; Attendez interruption

;********* Entamer le processus d'interruption Timer ***********
int
bcf INTCON, T0IF; minuterie int flag Clair

stchk0
tx_status movf, W; Lire TX statut
ÉTAT btfss, Z, état TX = 0?
Aller stchk1; nProchain

;************ Préambule Envoyer des données Processus **************
movlw d'7 '; vérifier les données Set
tx_substatus subwf, W; - vérifier les données de sous-état
ÉTAT btfsc, Z; sous-état = 7?
Aller stinc; Oui.1 sous-état
movlw d'8 '; vérifier les données Set
tx_substatus subwf, W; - vérifier les données de sous-état
ÉTAT btfsc, Z; sous-état = 8?
Aller ST01; Oui.
movlw d'9 '; vérifier les données Set
tx_substatus subwf, W; - vérifier les données de sous-état
ÉTAT btfsc, Z; sous-état = 9?
Aller ST02; Oui.
movlw b'00000001; motif de masque Set
tx_substatus andwf, W, ramassez LSB
ÉTAT btfss, Z; LSB = 0 (Même)?
Aller st00; n(Impair)
bsf PORTA, RA4; émission d'ondes de début
Aller stinc; Aller à sous-état 1
st00 BCF, PORTA RA4; émission d'ondes Stop
Aller stinc; Aller à sous-état 1
ST01 BCF, PORTA RA4; émission d'ondes Stop
Aller stinc; Aller à sous-état 1
ST02 BSF, PORTA RA4; émission d'ondes de début
tx_substatus clrf; Clear TX sous-état
tx_status INCF, f; Set TX statut = 1
int_end goto; Aller à la fin int timer

;************************************************* *******
stchk1
movlw d'1 '; vérifier les données Set
tx_status subwf, TX vérifier l'état - de données; W
ÉTAT btfss, Z, état TX = 1?
Aller stchk2; nProchain

;************ Control Data envoyer processus ***************
tx_substatus movf, W; Lire TX sous-état
ÉTAT btfss, Z; sous-état = 0?
Aller ST11, No.Prochain
movlw b'00000001; motif de masque Set
modèle andwf, W, ramassez des données
ÉTAT btfss, Z; données = 0?
Aller ST10, No.Les données = 1
bcf PORTA, RA4; émission d'ondes Stop
Aller stinc; Aller à sous-état 1
ST10 BSF, PORTA RA4; émission d'ondes de début
Aller stinc; Aller à sous-état 1

ST11 movlw d'1 '; vérifier les données Set
tx_substatus subwf, W; - vérifier les données sous-état
ÉTAT btfss, Z; sous-état = 1?
Aller ST12, No.Prochain
bcf PORTA, RA4; émission d'ondes Stop
Aller stinc; Aller à sous-état 1

ST12 movlw d'2 '; vérifier les données Set
tx_substatus subwf, W; - vérifier les données de sous-état
ÉTAT btfss, Z; sous-état = 2?
Aller ST13, No.Prochain
bsf PORTA, RA4; émission d'ondes de début
Aller stinc; Aller à sous-état 1

ST13 movlw d'3 '; vérifier les données Set
tx_substatus subwf, W; - vérifier les données de sous-état
ÉTAT btfss, Z; sous-état = 3?
Aller ST15, No.Prochain
movlw b'00000010; motif de masque Set
modèle andwf, W, ramassez des données
ÉTAT btfss, Z; données = 0?
Aller ST14, No.Les données = 1
bcf PORTA, RA4; émission d'ondes Stop
Aller stinc; Aller à sous-état 1
ST14 BSF, PORTA RA4; émission d'ondes de début
Aller stinc; Aller à sous-état 1

ST15 movlw d'4 '; vérifier les données Set
tx_substatus subwf, W; - vérifier les données de sous-état
ÉTAT btfss, Z; sous-état = 4?
Aller ST16, No.Prochain
bcf PORTA, RA4; émission d'ondes Stop
Aller stinc; Aller à sous-état 1

ST16 movlw d'5 '; vérifier les données Set
tx_substatus subwf, W; - vérifier les données de sous-état
ÉTAT btfss, Z; sous-état = 5?
Aller ST17, No.Prochain
bsf PORTA, RA4; émission d'ondes de début
Aller stinc; Aller à sous-état 1

ST17 movlw d'6 '; vérifier les données Set
tx_substatus subwf, W; - vérifier les données de sous-état
ÉTAT btfss, Z; sous-état = 6?
Aller ST19, No.Prochain
movlw b'00000100; motif de masque Set
modèle andwf, W, ramassez des données
ÉTAT btfss, Z; données = 0?
Aller ST18; nLes données = 1
bcf PORTA, RA4; émission d'ondes Stop
Aller stinc; Aller à sous-état 1
ST18 BSF, PORTA RA4; émission d'ondes de début
Aller stinc; Aller à sous-état 1

ST19 movlw d'7 '; vérifier les données Set
tx_substatus subwf, W; - vérifier les données de sous-état
ÉTAT btfss, Z; sous-état = 7?
Aller ST20, No.Prochain
bcf PORTA, RA4; émission d'ondes Stop
Aller stinc; Aller à sous-état 1

ST20 movlw d'8 '; vérifier les données Set
tx_substatus subwf, W; - vérifier les données de sous-état
ÉTAT btfss, Z; sous-état = 8?
Aller ST21, No.Prochain
bsf PORTA, RA4; émission d'ondes de début
Aller stinc; Aller à sous-état 1

ST21 movlw d'9 '; vérifier les données Set
tx_substatus subwf, W; - vérifier les données de sous-état
ÉTAT btfss, Z; sous-état = 9?
Aller ST23, No.Prochain
movlw b'00001000; motif de masque Set
modèle andwf, W, ramassez des données
ÉTAT btfss, Z; données = 0?
Aller ST22, No.Les données = 1
bcf PORTA, RA4; émission d'ondes Stop
Aller stinc; Aller à sous-état 1
ST22 BSF, PORTA RA4; émission d'ondes de début
Aller stinc; Aller à sous-état 1

ST23 movlw d'10 '; vérifier les données Set
tx_substatus subwf, W; - vérifier les données de sous-état
ÉTAT btfss, Z; sous-état = 10?
Aller ST24, No.Prochain
bcf PORTA, RA4; émission d'ondes Stop
Aller stinc; Aller à sous-état 1

ST24 movlw d'11 '; vérifier les données Set
tx_substatus subwf, W; - vérifier les données de sous-état
ÉTAT btfss, Z; sous-état = 11?
Aller ST25, No.Prochain
bsf PORTA, RA4; émission d'ondes de début
Aller stinc; Aller à sous-état 1

ST25 movlw d'12 '; vérifier les données Set
tx_substatus subwf, W; - vérifier les données de sous-état
ÉTAT btfss, Z; sous-état = 12?
Aller st27; nProchain
movlw b'00010000; motif de masque Set
modèle andwf, W, ramassez des données
ÉTAT btfss, Z; données = 0?
Aller ST26, No.Les données = 1
bcf PORTA, RA4; émission d'ondes Stop
Aller stinc; Aller à sous-état 1
ST26 BSF, PORTA RA4; émission d'ondes de début
Aller stinc; Aller à sous-état 1

st27 movlw d'13 '; vérifier les données Set
tx_substatus subwf, W; - vérifier les données de sous-état
ÉTAT btfss, Z; sous-état = 13?
Aller st28; nProchain
bcf PORTA, RA4; émission d'ondes Stop
Aller stinc; Aller à sous-état 1

st28 movlw d'14 '; vérifier les données Set
tx_substatus subwf, W; - vérifier les données de sous-état
ÉTAT btfss, Z; sous-état = 14?
Aller st29; nProchain
bsf PORTA, RA4; émission d'ondes de début
Aller stinc; Aller à sous-état 1

st29 movlw d'15 '; vérifier les données Set
tx_substatus subwf, W; - vérifier les données de sous-état
ÉTAT btfss, Z; sous-état = 15?
Aller st31; nProchain
movlw b'00100000; motif de masque Set
modèle andwf, W, ramassez des données
ÉTAT btfss, Z; données = 0?
Aller ST30, No.Les données = 1
bcf PORTA, RA4; émission d'ondes Stop
Aller stinc; Aller à sous-état 1
ST30 BSF, PORTA RA4; émission d'ondes de début
Aller stinc; Aller à sous-état 1

st31 movlw d'16 '; vérifier les données Set
tx_substatus subwf, W; - vérifier les données de sous-état
ÉTAT btfss, Z; sous-état = 16?
Aller ST32, No.Prochain
bcf PORTA, RA4; émission d'ondes Stop
Aller stinc; Aller à sous-état 1

ST32 movlw d'17 '; vérifier les données Set
tx_substatus subwf, W; - vérifier les données de sous-état
ÉTAT btfss, Z; sous-état = 17?
Aller St33; nProchain
bsf PORTA, RA4; émission d'ondes de début
Aller stinc; Aller à sous-état 1

St33 movlw d'18 '; vérifier les données Set
tx_substatus subwf, W; - vérifier les données de sous-état
ÉTAT btfss, Z; sous-état = 18?
Aller St35; nProchain
movlw b'01000000; motif de masque Set
modèle andwf, W, ramassez des données
ÉTAT btfss, Z; données = 0?
Aller st34; nLes données = 1
bcf PORTA, RA4; émission d'ondes Stop
Aller stinc; Aller à sous-état 1
st34 BSF, PORTA RA4; émission d'ondes de début
Aller stinc; Aller à sous-état 1

St35 movlw d'19 '; vérifier les données Set
tx_substatus subwf, W; - vérifier les données de sous-état
ÉTAT btfss, Z; sous-état = 19?
Aller ST36, No.Prochain
bcf PORTA, RA4; émission d'ondes Stop
Aller stinc; Aller à sous-état 1

ST36 movlw d'20 '; vérifier les données Set
tx_substatus subwf, W; - vérifier les données de sous-état
ÉTAT btfss, Z; sous-état = 20?
Aller ST37, No.Prochain
bsf PORTA, RA4; émission d'ondes de début
Aller stinc; Aller à sous-état 1

ST37 movlw d'21 '; vérifier les données Set
tx_substatus subwf, W; - vérifier les données de sous-état
ÉTAT btfss, Z; sous-état = 21?
Aller st39; nProchain
movlw b'10000000; motif de masque Set
modèle andwf, w, ramassez des données
ÉTAT btfss, Z; données = 0?
Aller st38; nLes données = 1
bcf PORTA, RA4; émission d'ondes Stop
Aller stinc; Aller à sous-état 1
st38 BSF, PORTA RA4; émission d'ondes de début
Aller stinc; Aller à sous-état 1

st39 movlw d'22 '; vérifier les données Set
tx_substatus subwf, W; - vérifier les données de sous-état
ÉTAT btfss, Z; sous-état = 22?
Aller ST40, No.Prochain
bcf PORTA, RA4; émission d'ondes Stop
Aller stinc; Aller à sous-état 1

ST40 BSF, PORTA RA4; émission d'ondes de début
tx_substatus clrf; Clear TX sous-état
tx_status INCF, f; Set TX statut = 2
int_end goto; Aller à la fin int timer

;************** Dernier envoi de données Processus *****************
stchk2 movlw d'2 '; vérifier les données Set
tx_substatus subwf, W; - vérifier les données de sous-état
ÉTAT btfss, Z; sous-état = 2?
Aller stinc; No.Jump de sous-état 1
bcf PORTA, RA4; émission d'ondes Stop
tx_substatus clrf; Clear TX sous-état
tx_status clrf; Clear TX statut
int_end goto; Aller à la fin int timer

;*********** Processus de sous-état Increment **************
tx_substatus INCF stinc, f; sous-état 1

;******** Fin du processus Interruption Timer ***********
movlw d'int_end 100 '; 256-10000us/64us = 100
TMR0 movwf; 10msec Set pour TMR0
retfie; Fin d'interruption

;************************************************* *******
, Fin du transmetteur télécommande
;************************************************* *******

fin;************************************************* *******
;
; Récepteur télécommande
;
; Auteur: Ichigo zawani
;************************************************* *******

p = liste PIC16F84A
comprennent p16f84a.inc
__CONFIG _HS_OSC & _WDT_OFF & _PWRTE_ON & _CP_OFF
ERRORLEVEL -302; avertissement banque éliminerDéfinition Label ;**************** ********************
cblock h'0c '
rx_status; statut RX enregistrer zone
rx_substatus; sous-état RX enregistrer zone
rx_edge; vérifier drapeau bord d'entrée
last_look; entrée du pavillon dernier regard
code_ck; indicateur de vérification de code
cont_data; Control Data
relais, relais ON contre
w_save; reg W enregistrer zone
s_save; reg État enregistrer zone

ENDC

ptn1 equ b'11110000; 1 Les données Pattern
ptn2 equ b'00001111; 2 Les données de Pattern
RA1 equ d'1 ', la position peu RA1
RB5 equ d'5 ', la position peu RB5
RB7 equ d'7 '; RB7 position de bit

Démarrage du programme ;**************** ***********************
org 0; Vecteur Reset
goto init
org 4; vecteur d'interruption
int goto

;****************** Processus initial *******************
ÉTAT BSF init, RP0; Changer pour Bank1
movlw b'00011111; RA4-0: En mode
movwf TRISA; Set TRISA reg
movlw b'00000000; RB7-0: mode OUT
movwf TRISB; Set TRISB reg
movlw b'00000101; RBPU tocs / PSA = 0, PS = 101
movwf OPTION_REG; Set OPTION_REG
Bcf STATUS, RP0; Changer pour Bank0

clrf PORTB; RL1, RL2 OFF
rx_status clrf; Clear RX statut
rx_substatus clrf; Clear RX sous-état
rx_edge clrf; Edge indicateur de vérification Clair
last_look INCF, f; Set Rechercher Dernière drapeau sur
code_ck clrf; Effacer l'indicateur de vérification du code
cont_data clrf; Clear Control Data
relais clrf; Clear relais ON contre
movlw d'100 '; 256-10000us/64us = 100
TMR0 movwf; 10msec Set pour TMR0
movlw h'a0; GIE = 1, TOIE = 1
movwf INTCON; Interruption permettre

;*********** Initial processus de vérification d'entrée **************
edge_check
btfss PORTA, RA1, signal d'entrée ON?
Aller Check1; nSignal OFF
last_look btfsc, 0; Rechercher Dernière OFF drapeau?
edge_check goto; nEntrée non changé
bcf INTCON, GIE; désactiver Interruption
code_ck INCF, f; Set indicateur de vérification du code sur
last_look INCF, f; Set Rechercher Dernière drapeau sur
movlw d'178 '; 256-5000us/64us = 178
TMR0 movwf; 5 ms Réglez TMR0
BSF INTCON, GIE; Interruption permettre
attente
btfss rx_edge, 0; vérifier bord d'entrée?
Aller à attendre; nAttendez interruption
rx_edge clrf; Effacer l'indicateur de vérification bord
Aller edge_check; entrée chèque à bord Aller
Check1
last_look clrf; Set Rechercher Dernière OFF drapeau
Aller edge_check; entrée chèque à bord Aller

;************ Processus Interruption Timer **************
w_save movwf int; Sauvegarder W registre
movf ETAT, W; Lire le statut reg
s_save movwf; Sauvegarder ÉTAT reg
Bcf STATUS, RP0; Changer pour Bank0
bcf INTCON, T0IF; minuterie int flag Clair

relais movf, W; Lire relais ON contre
ÉTAT btfsc, Z; Counter = 0?
Aller stchk0; Oui
relais decfsz, f; contre - 1 = 0?
Aller stchk0; n
clrf PORTB; relais OFF

stchk0
code_ck movf, W; code du drapeau à cocher Lecture
ÉTAT btfsc, Z; Drapeau ON?
Aller int_end; nFin de l'interruption
rx_status movf, W; Lire RX statut
ÉTAT btfss, Z; Status = 0?
Aller stchk1; nProchain

;*********** Préambule processus de vérification des données *************
rx_substatus movf, W; Lire RX sous-état
ÉTAT btfss, Z; sous-état = 0?
Aller st00; nProchain
st_on goto; signal d'entrée ON?
st00 movlw d'1 '; vérifier les données Set
rx_substatus subwf, W; - vérifier les données de sous-état
ÉTAT btfss, Z; sous-état = 1?
Aller ST01, No.
ST_OFF goto; OFF du signal d'entrée?
ST01 movlw d'2 '; vérifier les données Set
rx_substatus subwf, W; - vérifier les données de sous-état
ÉTAT btfss, Z; sous-état = 2?
Aller ST02, No.
st_on goto; signal d'entrée ON?
ST02 movlw d'3 '; vérifier les données Set
rx_substatus subwf, W; - vérifier les données de sous-état
ÉTAT btfss, Z; sous-état = 3?
Aller ST03, No.
ST_OFF goto; OFF du signal d'entrée?
ST03 movlw d'4 '; vérifier les données Set
rx_substatus subwf, W; - vérifier les données de sous-état
ÉTAT btfss, Z; sous-état = 4?
Aller ST04, No.
st_on goto; signal d'entrée ON?
ST04 movlw d'5 '; vérifier les données Set
rx_substatus subwf, W; - vérifier les données de sous-état
ÉTAT btfss, Z; sous-état = 5?
Aller ST05, No.
ST_OFF goto; OFF du signal d'entrée?
ST05 movlw d'6 '; vérifier les données Set
rx_substatus subwf, W; - vérifier les données de sous-état
ÉTAT btfss, Z; sous-état = 6?
Aller ST06, No.
st_on goto; signal d'entrée ON?
ST06 movlw d'7 '; vérifier les données Set
rx_substatus subwf, W; - vérifier les données de sous-état
ÉTAT btfss, Z; sous-état = 7?
Aller ST07, No.Sous-état = 8
st_on goto; signal d'entrée ON?
ST07 btfsc PORTA, RA1; OFF du signal d'entrée?
Aller illégale; nAller à la pêche illégale
rx_substatus clrf; sous-état RX = 0
rx_status INCF, f; statut RX = 1
cont_data clrf; données de comptage Clair
Aller int_end; Fin d'interruption

;************************************************* *******
stchk1
movlw d'1 '; vérifier les données Set
rx_status subwf, RX vérifier l'état - de données; W
ÉTAT btfss, Z, état RX = 1?
Aller stchk2; nProchain

;************ Contrôle de données Contrôle du processus **************
rx_substatus movf, W; Lire RX sous-état
ÉTAT btfss, Z; sous-état = 0?
Aller ST10, No.Prochain
st_on goto; signal d'entrée ON?
ST10 movlw d'1 '; vérifier les données Set
rx_substatus subwf, W; - vérifier les données de sous-état
ÉTAT btfss, Z; sous-état = 1?
Aller ST11, No.
btfss PORTA, RA1, B0 = 1?
Aller stinc; Aller à sous-état 1
cont_data BSF, 0; B0 Set = 1
Aller stinc; Aller à sous-état 1
ST11 movlw d'2 '; vérifier les données Set
rx_substatus subwf, W; - vérifier les données de sous-état
ÉTAT btfss, Z; sous-état = 2?
Aller ST12, No.
ST_OFF goto; OFF du signal d'entrée?
ST12 movlw d'3 '; vérifier les données Set
rx_substatus subwf, W; - vérifier les données de sous-état
ÉTAT btfss, Z; sous-état = 3?
Aller ST13, No.
st_on goto; signal d'entrée ON?
ST13 movlw d'4 '; vérifier les données Set
rx_substatus subwf, W; - vérifier les données de sous-état
ÉTAT btfss, Z; sous-état = 4?
Aller ST14, No.
btfss PORTA, RA1, B1 = 1?
Aller stinc; Aller à sous-état 1
cont_data BSF, 1; Set B1 = 1
Aller stinc; Aller à sous-état 1
ST14 movlw d'5 '; vérifier les données Set
rx_substatus subwf, W; - vérifier les données de sous-état
ÉTAT btfss, Z; sous-état = 5?
Aller ST15, No.
ST_OFF goto; OFF du signal d'entrée?
ST15 movlw d'6 '; vérifier les données Set
rx_substatus subwf, W; - vérifier les données de sous-état
ÉTAT btfss, Z; sous-état = 6?
Aller ST16, No.
st_on goto; signal d'entrée ON?
ST16 movlw d'7 '; vérifier les données Set
rx_substatus subwf, W; - vérifier les données de sous-état
ÉTAT btfss, Z; sous-état = 7?
Aller ST17, No.
btfss PORTA, RA1, B2 = 1?
Aller stinc; Aller à sous-état 1
cont_data BSF, 2; B2 Set = 1
Aller stinc; Aller à sous-état 1
ST17 movlw d'8 '; vérifier les données Set
rx_substatus subwf, W; - vérifier les données de sous-état
ÉTAT btfss, Z; sous-état = 8?
Aller ST18; n
ST_OFF goto; OFF du signal d'entrée?
ST18 movlw d'9 '; vérifier les données Set
rx_substatus subwf, W; - vérifier les données de sous-état
ÉTAT btfss, Z; sous-état = 9?
Aller ST19, No.
st_on goto; signal d'entrée ON?
ST19 movlw d'10 '; vérifier les données Set
rx_substatus subwf, W; - vérifier les données de sous-état
ÉTAT btfss, Z; sous-état = 10?
Aller ST20, No.
btfss PORTA, RA1, B3 = 1?
Aller stinc; Aller à sous-état 1
cont_data BSF, 3; B3 Set = 1
Aller stinc; Aller à sous-état 1
ST20 movlw d'11 '; vérifier les données Set
rx_substatus subwf, W; - vérifier les données de sous-état
ÉTAT btfss, Z; sous-état = 11?
Aller ST21, No.
ST_OFF goto; OFF du signal d'entrée?
ST21 movlw d'12 '; vérifier les données Set
rx_substatus subwf, W; - vérifier les données de sous-état
ÉTAT btfss, Z; sous-état = 12?
Aller ST22, No.
st_on goto; signal d'entrée ON?
ST22 movlw d'13 '; vérifier les données Set
rx_substatus subwf, W; - vérifier les données de sous-état
ÉTAT btfss, Z; sous-état = 13?
Aller ST23, No.
btfss PORTA, RA1, B4 = 1?
Aller stinc; Aller à sous-état 1
cont_data BSF, 4; Set B4 = 1
Aller stinc; Aller à sous-état 1
ST23 movlw d'14 '; vérifier les données Set
rx_substatus subwf, W; - vérifier les données de sous-état
ÉTAT btfss, Z; sous-état = 14?
Aller ST24; n
ST_OFF goto; OFF du signal d'entrée?
ST24 movlw d'15 '; vérifier les données Set
rx_substatus subwf, W; - vérifier les données de sous-état
ÉTAT btfss, Z; sous-état = 15?
Aller ST25, No.
st_on goto; signal d'entrée ON?
ST25 movlw d'16 '; vérifier les données Set
rx_substatus subwf, W; - vérifier les données de sous-état
ÉTAT btfss, Z; sous-état = 16?
Aller ST26, No.
btfss PORTA, RA1, B5 = 1?
Aller stinc; Aller à sous-état 1
cont_data BSF, 5; Set B5 = 1
Aller stinc; Aller à sous-état 1
ST26 movlw d'17 '; vérifier les données Set
rx_substatus subwf, W; - vérifier les données de sous-état
ÉTAT btfss, Z; sous-état = 17?
Aller st27; n
ST_OFF goto; OFF du signal d'entrée?
st27 movlw d'18 '; vérifier les données Set
rx_substatus subwf, W; - vérifier les données de sous-état
ÉTAT btfss, Z; sous-état = 18?
Aller st28; n
st_on goto; signal d'entrée ON?
st28 movlw d'19 '; vérifier les données Set
rx_substatus subwf, W; - vérifier les données de sous-état
ÉTAT btfss, Z; sous-état = 19?
Aller st29; n
btfss PORTA, RA1, B6 = 1?
Aller stinc; Aller à sous-état 1
cont_data BSF, 6; Set B6 = 1
Aller stinc; Aller à sous-état 1
st29 movlw d'20 '; vérifier les données Set
rx_substatus subwf, W; - vérifier les données de sous-état
ÉTAT btfss, Z; sous-état = 20?
Aller ST30, No.
ST_OFF goto; OFF du signal d'entrée?
ST30 movlw d'21 '; vérifier les données Set
rx_substatus subwf, W; - vérifier les données de sous-état
ÉTAT btfss, Z; sous-état = 21?
Aller st31; n
st_on goto; signal d'entrée ON?
st31 movlw d'22 '; vérifier les données Set
rx_substatus subwf, W; - vérifier les données de sous-état
ÉTAT btfss, Z; sous-état = 22?
Aller ST32, No.Sous-état = 23
btfss PORTA, RA1, B7 = 1?
Aller stinc; Aller à sous-état 1
cont_data BSF, 7; Set B7 = 1
Aller stinc; Aller à sous-état 1
ST32 btfsc PORTA, RA1; OFF du signal d'entrée?
Aller illégale; nAller à la pêche illégale
rx_substatus clrf; sous-état RX = 0
rx_status INCF, f; statut RX = 2
Aller int_end; Fin d'interruption

st_on
btfss PORTA, RA1, signal d'entrée ON?
Aller illégale; nAller à la pêche illégale
Aller stinc; Aller à sous-état 1
ST_OFF
btfsc PORTA, RA1; OFF du signal d'entrée?
Aller illégale; nAller à la pêche illégale
Aller stinc; Aller à sous-état 1

;************** Vérifier les données sur Terminer le processus ****************
stchk2 btfss PORTA, RA1, signal d'entrée ON?
Aller illégale; nAller à la pêche illégale
movlw d'2 '; vérifier les données Set
rx_substatus subwf, W; - vérifier les données de sous-état
ÉTAT btfss, Z; sous-état = 2?
Aller stinc; Aller à sous-état 1

;**************** Processus de vérification des données ******************
cont_data movf, W, les données de contrôle de lecture
xorlw ptn1; Vérifiez Pattern1
ÉTAT btfss, Z; données = Pattern1?
Aller dtchk0; n
PORTB BCF, RB7; RL2 OFF
PORTB bsf, RB5, RL1 ON
Aller dtchk1; Aller à l'encontre ON ensemble
dtchk0
cont_data movf, W, les données de contrôle de lecture
xorlw ptn2; Vérifiez Pattern2
ÉTAT btfss, Z; données = Pattern2?
Aller illégale; nAller à la pêche illégale
PORTB BCF, RB5, RL1 OFF
PORTB bsf, RB7; RL2 ON
dtchk1 movlw d'50 '; Set relais 500msec ON
relais movwf; Sauvegarder relais ON contre

;***************** Processus illégal ********************
rx_edge INCF illégale, f; indicateur de vérification Edge sur
rx_substatus clrf; sous-état RX = 0
rx_status clrf; statut RX = 0
code_ck clrf; Effacer l'indicateur de vérification du code
Aller int_end; Fin d'interruption

;*********** Processus de sous-état Increment **************
rx_substatus INCF stinc, f; sous-état 1

;******** Fin du processus Interruption Timer ***********
movlw d'int_end 100 '; 256-10000us/64us = 100
TMR0 movwf; 10msec Set pour TMR0
s_save movf, W; Lire sauvé ÉTAT reg
STATUS movwf; Récupérer ÉTAT reg
w_save swapf, f; Lire sauvé W registre
w_save swapf, W; Récupérer W registre
retfie; Fin d'interruption

;************************************************* *******
, Fin du récepteur télécommande
;************************************************* *******

fin
Dernière édition par zawani le 16 mars 2006 08:59, édité 1 fois au total

 
Voulez-vous dire que vous souhaitez programmer le PIC16F84A utilisant RF .????

 
Plz expliquer, ce que tu veux faire avec PIC16F84A et RF

 
madnanelahi a écrit:

Plz expliquer, ce que tu veux faire avec PIC16F84A et RF
 
Cochez cette, c'est pour PIC16F84A.

Je n'ai pas encore essayé.
Désolé, mais vous avez besoin de connexion pour voir cette pièce jointe

 
seadolphine2000 a écrit:

Cochez cette, c'est pour PIC16F84A.Je n'ai pas encore essayé.
 

Welcome to EDABoard.com

Sponsor

Back
Top