Programmation UART pour pic 16f84A probleme aidez moi
cs_looloo78
Messages postés15Date d'inscriptionvendredi 18 février 2005StatutMembreDernière intervention26 novembre 2010
-
6 déc. 2008 à 11:27
cs_looloo78
Messages postés15Date d'inscriptionvendredi 18 février 2005StatutMembreDernière intervention26 novembre 2010
-
11 janv. 2009 à 10:25
bonjour,
j'ai créer ce programme en m'inspirant d'autre programme, le but étant de lire les 8 bits des portB0-7 et de les envoyer par le portA1 suivant le protocole 9600bds, pas de bit de parité 1 bit d'arret .
soit 1 bit tous les 104µs.
j'utilise un quartz 4Mhz soit 1cycle/1µs.
j'envoi un signal sur le portA,0 pour demander le traitement.
je vous présente mon prog, il ya surement un erreur.( je sais beaucoup de nop mais bon...)
************************************************
; 9600 bauds/s 8 bits de données Pas de bit de parité
; 1 bit de STOP Pas de contrôle de flux
List p=16F84A ; processeur utilisé
#include
__config _CP_OFF & _WDT_OFF & _PWRTE_ON & _HS_OSC
;bits de configuration :
;code protect OFF
;watchdog timer OFF
;power up timer ON
;oscillateur HS (quartz 4 MHz)
;xxxxxx
; macro
;xxxxxx
bank1 macro ; passage en banque 1
bsf STATUS,RP0
endm
bank0 macro ; passage en banque 0
bcf STATUS,RP0
endm
;xxxxxxxxxxxxxxxxxxxxxxxxx
; déclaration de variables
;xxxxxxxxxxxxxxxxxxxxxxxxx
CBLOCK 0x000C ; début de la zone des registres d'usage général du 16F84A
compteur_tempo104 : 1
ENDC
;xxxxxxxxxxxxxxxxxxxx
; démarrage sur reset
;xxxxxxxxxxxxxxxxxxxx
bank0
clrf PORTA ; mise à 0 des sorties du port A
clrf PORTB ; mise à 0 des sorties du port B
bank1
movlw B'00000001'
movwf TRISA
; bit 0 du port A (RA0) = 1 : configuration en entrée (RX)
; bits 1 à 4 du port A (RA1 à RA4) = 1 : configuration en sortie
movlw B'11111111'
movwf TRISB
; bit 0 du port B (RB0) = 0 : configuration en entrée
; bit 1 du port B (RB1) = 0 : configuration en entrée
; bit 2 du port B (RB2) = 0 : configuration en entrée
; bit 3 du port B (RB3) = 0 : configuration en entrée
; bit 4 du port B (RB4) = 0 : configuration en entrée
; bit 5 du port B (RB5) = 0 : configuration en entrée
; bit 6 du port B (RB6) = 0 : configuration en entrée
; bit 7 du port B (RB7) = 0 : configuration en entrée
cs_looloo78
Messages postés15Date d'inscriptionvendredi 18 février 2005StatutMembreDernière intervention26 novembre 2010 11 janv. 2009 à 10:25
c'est pour pouvoir avec exactement 104µs pour chaque bit.
9600bauds.
voila, effectivement j'aurais pu faire unhe tempo pile poil mais c'est pas facile ( pour moi) alors j'ai fais une tempo grossiere et je l'ajuste avec des nops