TODOPIC
Microcontroladores PIC => Almacén del Assembler => Mensaje iniciado por: jomu en 12 de Abril de 2007, 11:48:03
-
Hola a tod@s!
Cansado de revisar y revisar acudo a ustedes para ver si me pueden ayudar. Estoy programando un PIC16F88 el cual recibe unos datos serie a través de su AUSART (datos proporcionados por otro PIC16F88). El problema lo tengo en el receptor, ya que al parecer no recibe nada. Lo estoy simulando con proteus, el PIC emisor envía bien los datos (tengo un led para comprovarlo) pero parece que el PIC receptor no los recibe. Este tendría que generar una interrupción cuando recibe los datos pero esa interrupción nunca se produce...
Os adjunto el código para que le deis un vistazo. Si alguien ha programado este micro utilitzando la recepción de la AUSART y dispone de un programa funcional , le agradecería que me lo mostrara :)
Código:
_________________________________________________________________________________________________________
list P=16F88
#include P16F88.INC
radix dec
cblock 0x0020
RESUL_H
RESUL_L
comptador1
comptador2
endc
__CONFIG _CONFIG1, _MCLR_ON & _LP_OSC & _BODEN_OFF & _CPD_OFF & _CP_OFF & _WDT_OFF
__CONFIG _CONFIG2, _FCMEN_OFF & _IESO_ON
;Inicio
ORG 0x00
GOTO somhi
ORG 0x04
GOTO INTERRUPCIO
somhi
ORG 0x05
BANKSEL OSCCON
MOVLW b'00000000'
MOVWF OSCCON
BANKSEL PORTB
CLRF PORTB
BANKSEL ANSEL
CLRF ANSEL
BSF TRISB,2
MOVLW b'11011100'
ANDWF TRISB,f
BANKSEL PORTA
CLRF PORTA
BSF PORTB,0
BSF PORTB,1
BANKSEL SPBRG
MOVLW 108
MOVWF SPBRG
MOVLW b'00100100'
MOVWF TXSTA
MOVLW b'11000000'
MOVWF INTCON
BANKSEL PIE1
CLRF PIE1
BSF PIE1,RCIE
BANKSEL RCSTA
MOVLW b'10000000'
MOVWF RCSTA
;================================ Programa =================================
progra
GOTO progra
;================================ INTERRUPCION ==============================
INTERRUPCIO
BANKSEL RCREG
MOVFW RCREG
BANKSEL RESUL_H
MOVWF RESUL_H
BANKSEL RCREG
MOVFW RCREG
BANKSEL RESUL_L
MOVWF RESUL_L
RETFIE
END
_________________________________________________________________________________________________________
Espero que me puedan ayudar porque estoy desesperado! No puedo seguir adelante sin que me funcione esto... Muchas gracias!
-
Revisa de habilitar el bit CREN en RCSTA.
Saludos
-
Hola de nuevo,
Gracias por contestar maunix! Copié mal el código en el post! El bit CREN ya estaba habilitado, al parecer el problema lo tenia en el proteus... el diodo que tenía para comprobar que el PIC transmisor emitiera era el causante que el PIC receptor no recibiera nada... un poco extraño ya que eso se suele hacer para saber cuando un uC envía. Esperaré a poder montar el circuito con chips para saber si realmente ese diodo puede afectar a la transmisión/recepción de la AUSART.
Un saludo al foro!
-
Gracias por contestar maunix! Copié mal el código en el post! El bit CREN ya estaba habilitado, al parecer el problema lo tenia en el proteus...
Jeje, esto explica el porqué en el código posteado estaba el RCSTA<CREN>=RCSTA<4> en 0.
Esperaré a poder montar el circuito con chips para saber si realmente ese diodo puede afectar a la transmisión/recepción de la AUSART.
Bueno, cualquier cosa vuelve a preguntar.
-
hola a todos,ya hacia tiempo que no entraba a este foro,ya que no me entraba la nueva direccion.pero gracias a maunix que me dio la direccion exacta ,estamos aqui de nuevo.
bueno,estoy haciendo un proyecto basado en la tipica alarma por comandos at.para mandar mensages sms.
se que hay varios proyectos hechos,pero no los he visto usando la usart del pic16f876.y queria hacerlo con este.
he hecho un circuito para que mande los numeros del 1 al 0 ,por el puerto serie del ordenador con el hiperterminal,y funciona.
pero cuando conecto la la salida de este circuito a la entrada del pic que tengo montado en el pictrainer,algo estare haciendo mal.
porque de los valores 1 al 0 que deverian salir por PORTB solo veo 0xff o 0xfe.
alguien podria postear algun trozo de codigo para la gestion de la usart del pic? gracias.
-
groundman no entiendo tu problema.
¿Porque hablas del PORTB si la usart está en el PORTC?
-
hola,el PORTB me refiero a la salida de datos, para visualizar el dato recivido por el pin RC7 "rx",en los LEDs del PICTRAINER que tengo.
voy ha mirar los pasos a seguir ,he visto algo que se me paso en el datashet.
y ya te lo especifico mejor,gracias.
-
hola,el PORTB me refiero a la salida de datos, para visualizar el dato recivido por el pin RC7 "rx",en los LEDs del PICTRAINER que tengo.
voy ha mirar los pasos a seguir ,he visto algo que se me paso en el datashet.
y ya te lo especifico mejor,gracias.
Ok, quedaré a la espera entonces.
saludos