Comunication série entre 2PIC
abdellahchakir
Messages postés
16
Statut
Membre
-
abdellahchakir Messages postés 16 Statut Membre -
abdellahchakir Messages postés 16 Statut Membre -
Bonjour,
j'ai un mini projet en info indus qui suppose mettre en place un programme en code assembleur( MP LAB)
qui assure la communication série USART asynchrone entre deux PICs ,le premier PIC envoie un caratere le 2ème recoit ce caractere et le met dans un registre( PORTD) ,le conteu de ce dernier sera affiché par la suite dans 1 afficheur LCD , pour le moment j'ai fait 2 programmes pour le 2 PIC ,mais mon problème ce que j'arrive
a recevoir rien sur le PORTD lors de la simulation sur PROTEUS , j'arrive pas a trouver l'erreur dans le programme ,s'il vous plait aider mois a localiser l'erreur:
PROGRAMME PIC1:EMMISSION
listp=16877A
#include<p16F877A.inc>
cblock 0x20
compteur1
compteur2
endc
org 0x00
goto start
org 0x05
start
banksel TRISC
movlw B'10000000'
movwf TRISC
banksel PORTC
clrf PORTC
;----------------------------------------------------------------- INITIALISATION USART-----------------------------------------------------------------------------------------------
banksel TXSTA
movlw B'00000100' ; mode asynchrone, émission 8 bits haute vitesse
movwf TXSTA ; dans registre TXSTA
banksel SPBRG
movlw 0x19 ; valeur calculée de SPBRG
movwf SPBRG ; dans baud rate generator
banksel RCSTA
movlw B'10000000' ; module en service, réception 9 bits
movwf RCSTA ; dans registre RCSTA
debut
movlw 0xFF
call emission
goto debut
;------------------------------------------------------------------------EMISSION---------------------------------------------------------------------------------------------------------
emission
banksel TXSTA
bsf TXSTA,TXEN
movwf TXREG ; transmission
toto
btfss TXSTA,TRMT ; transmission terminée?
goto toto ; non, attendre
bcf TXSTA,TXEN ; oui, fin de transmission
call tempo
return ; et retour
;--------------------------------------------------------------------------Tempo-----------------------------------------------------------------------------------------------------
tempo
movlw 0x20
movwf compteur2
boucle2
movlw 0xFF
movwf compteur1
boucle1
decfsz compteur1,1
goto boucle1
decfsz compteur2,1
goto boucle2
return
end
PROGRAMME PIC1:RECEPTION
listp= 16F877A
#include <p16F877A.inc>
cblock 0x00
endc
org 0x00
goto start
org 0x05
start
banksel TRISC
movlw B'10000000'
movwf TRISC
banksel PORTC
clrf PORTC
banksel TRISD
clrf TRISD
banksel PORTD
clrf PORTD
;----------------------------------------------------------------- INITIALISATION USART-----------------------------------------------------------------------------------------------
banksel TXSTA
movlw B'00000100' ; mode asynchrone,
movwf TXSTA ; dans registre TXSTA
banksel SPBRG
movlw 0x19 ; valeur calculée de SPBRG
movwf SPBRG ; dans baud rate generator
banksel RCSTA
movlw B'10000000' ; module en service, réception 8 bits
movwf RCSTA ; dans registre RCSTA
boucle
call reception
movwf PORTD
goto boucle
;------------------------------------------------------------------------RECEPTION---------------------------------------------------------------------------------------------------------
reception
banksel RCSTA
bsf RCSTA,SREN
toto
btfsc RCSTA,SREN
goto toto
banksel RCREG
movf RCREG,W
return
end
merci d'avance
j'ai un mini projet en info indus qui suppose mettre en place un programme en code assembleur( MP LAB)
qui assure la communication série USART asynchrone entre deux PICs ,le premier PIC envoie un caratere le 2ème recoit ce caractere et le met dans un registre( PORTD) ,le conteu de ce dernier sera affiché par la suite dans 1 afficheur LCD , pour le moment j'ai fait 2 programmes pour le 2 PIC ,mais mon problème ce que j'arrive
a recevoir rien sur le PORTD lors de la simulation sur PROTEUS , j'arrive pas a trouver l'erreur dans le programme ,s'il vous plait aider mois a localiser l'erreur:
PROGRAMME PIC1:EMMISSION
listp=16877A
#include<p16F877A.inc>
cblock 0x20
compteur1
compteur2
endc
org 0x00
goto start
org 0x05
start
banksel TRISC
movlw B'10000000'
movwf TRISC
banksel PORTC
clrf PORTC
;----------------------------------------------------------------- INITIALISATION USART-----------------------------------------------------------------------------------------------
banksel TXSTA
movlw B'00000100' ; mode asynchrone, émission 8 bits haute vitesse
movwf TXSTA ; dans registre TXSTA
banksel SPBRG
movlw 0x19 ; valeur calculée de SPBRG
movwf SPBRG ; dans baud rate generator
banksel RCSTA
movlw B'10000000' ; module en service, réception 9 bits
movwf RCSTA ; dans registre RCSTA
debut
movlw 0xFF
call emission
goto debut
;------------------------------------------------------------------------EMISSION---------------------------------------------------------------------------------------------------------
emission
banksel TXSTA
bsf TXSTA,TXEN
movwf TXREG ; transmission
toto
btfss TXSTA,TRMT ; transmission terminée?
goto toto ; non, attendre
bcf TXSTA,TXEN ; oui, fin de transmission
call tempo
return ; et retour
;--------------------------------------------------------------------------Tempo-----------------------------------------------------------------------------------------------------
tempo
movlw 0x20
movwf compteur2
boucle2
movlw 0xFF
movwf compteur1
boucle1
decfsz compteur1,1
goto boucle1
decfsz compteur2,1
goto boucle2
return
end
PROGRAMME PIC1:RECEPTION
listp= 16F877A
#include <p16F877A.inc>
cblock 0x00
endc
org 0x00
goto start
org 0x05
start
banksel TRISC
movlw B'10000000'
movwf TRISC
banksel PORTC
clrf PORTC
banksel TRISD
clrf TRISD
banksel PORTD
clrf PORTD
;----------------------------------------------------------------- INITIALISATION USART-----------------------------------------------------------------------------------------------
banksel TXSTA
movlw B'00000100' ; mode asynchrone,
movwf TXSTA ; dans registre TXSTA
banksel SPBRG
movlw 0x19 ; valeur calculée de SPBRG
movwf SPBRG ; dans baud rate generator
banksel RCSTA
movlw B'10000000' ; module en service, réception 8 bits
movwf RCSTA ; dans registre RCSTA
boucle
call reception
movwf PORTD
goto boucle
;------------------------------------------------------------------------RECEPTION---------------------------------------------------------------------------------------------------------
reception
banksel RCSTA
bsf RCSTA,SREN
toto
btfsc RCSTA,SREN
goto toto
banksel RCREG
movf RCREG,W
return
end
merci d'avance
A voir également:
- Comunication série entre 2PIC
- Télécharger idm gratuitement sans numéro de série - Télécharger - Téléchargement & Transfert
- Numéro de série idm ✓ - Forum Logiciels
- Besoin d'un numéro de série pour idm - Forum Téléchargement
- Numéro de serie cmd ✓ - Forum Matériel & Système
- Localiser macbook avec numéro de série - Forum MacOS