TODOPIC
Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: txasis en 10 de Mayo de 2004, 12:24:00
-
Hola a todo el mundo.
En la universidad me han mandado hacer un trabajo sobre la USART de la familia de los 16f87x, que posteriormente he de exponer ante mis compañeros.
Tengo toda la información buscada y el trabajo hecho, sin embargo, me falta un programa a modo de ejemplo del funcionamiento de la USART SÍNCRONA. He estado buscando por todos los sitios pero no encuentro nada...si alguien me podría mandar por privado una sencilla(lo más basico posible) aplicación o programa en el que se vea el funcionamiento me haría un gran favor.
Muchas gracias
Asier
P.D.-Puse este mismo post en otra sala pero creo que en esta está mejor. Pueden borrar el otro los moderadores si lo creen oportuno.
Gracias de nuevo
-
Ya te respondí en el siguiente post....
http://miarroba.com/foros/ver.php?temaid=1921640&foroid=6510
Aqui tienes ejemplos de mis experiencias, pegandome con la usart...
http://miarroba.com/foros/ver.php?temaid=1673107&foroid=8826
Suerte con tu proyecto....
Aqui me tienes para cualquier consulta que se adapte a mis conocimientos...
-
Escrito originalmente por txasis
Hola a todo el mundo.
En la universidad me han mandado hacer un trabajo sobre la USART de la familia de los 16f87x, que posteriormente he de exponer ante mis compañeros.
Tengo toda la información buscada y el trabajo hecho, sin embargo, me falta un programa a modo de ejemplo del funcionamiento de la USART SÍNCRONA. He estado buscando por todos los sitios pero no encuentro nada...si alguien me podría mandar por privado una sencilla(lo más basico posible) aplicación o programa en el que se vea el funcionamiento me haría un gran favor.
Muchas gracias
Asier
P.D.-Puse este mismo post en otra sala pero creo que en esta está mejor. Pueden borrar el otro los moderadores si lo creen oportuno.
Gracias de nuevo
Hola Abago, gracias por tratar de ayudarme.
Ya he mirado el hilo que al que me has enlazado, algo he entendido pero es más nivel del que andaba buscando;
Al final lo que he hecho es lo siguiente, coger un sencillo ejercicio de la USART ASÍNCRONA y modificarlo para que use la USART SÍNCRONA, no sé si está bien o no...yo creo que sí... lo adjunto por si alguien se lo quiere mirar.
P.D.-Si le véis algún fallo comentarlo por favor...y a ser posible antes de este viernes.
-
Olvidé subir el fichero y al editar no me deja, a ver ahora.
Edito para decir que soy inútil y no sé adjuntar cosas en el foro...pongo el código:
●Programa de ejemplo
Se produce una interrupción cada vez que se recibe un carácter a traves de la usart en modo síncrono maestro (8bits).El caracter recibido se retransmite hacia el terminal a modo de eco. Fosc=4MHZ. Comunicación=9600 baudios.
LIST P=16F873
INCLUDE “P16F873.INC”
ORG 0
GO TO INICIO
ORG 4
GOTO INTER
ORG 5
INICIO: BSF STATUS, RP0
MOVLW B’10111111’
MOVWF TRIS C
MOVLW B’10110000’
MOVWF TXSTA // csrc(maestro), txen(transmission on),sync(síncrono) a 1 MOVLW .103
MOVWF SPBRG //Comunicación a 9600 baudiosBRG=Fosc/(4*(X+1))X=103
BSF PIE1, RCIE
BCF STATUS, RP0
MOVLW B’1001000’
MOVWF RCSTA //Recepción continua y activamos el módulo SCI(spen=1)
MOVLW B’11000000’
MOVWF INTCON //Habilitamos la interrupción
BUCLE: CLRWDT
GOTO BUCLE //El programa se queda en el bucle hasta que se da 1 interrupción
INTER: BCF PIR1, RCIF
MOVF RCREG, W
BCF PIR1, TXIF
MOVWF TXREG//Cargamos el dato recibido en RCREG en TXREG para volver a transmitirlo
BSF STATUS,RP0
TX-WAIT: BTFSS TXSTA, TRMT//Miramos si ha finalizado la transmisión
GOTO TX_WAIT
BCF STATUS,RP0
RETFIE
END