Autor Tema: No puedo comunicar PIC con PC  (Leído 1925 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado MarioA

  • PIC10
  • *
  • Mensajes: 9
No puedo comunicar PIC con PC
« en: 20 de Noviembre de 2013, 19:36:33 »
Hola amigos, tengo un problema, quisiera comunicar un pic16f873a con una pc imprimiendo lo que capture en el portb luego lo paso al txreg para enviarlo seguido de un par de letras,pero solo se mandan las letras más no lo del portb. Aqui les dejo mi código talvez ustedes puedan ver cual es el error:

LIST      P=PIC16F873A
   INCLUDE   <P16F873A.INC>
   __CONFIG   3F3A

   RADIX         HEX
;------------------------------------------------------------
;                  Declaración de Registros
;------------------------------------------------------------


 
#DEFINE      BANK0      BCF   STATUS,RP0
#DEFINE      BANK1      BSF   STATUS,RP0
PDel0          EQU      22
PDel1         EQU      23
VAR            EQU      24

;------------------------------------------------------------
;                  Declaración de Bits
;------------------------------------------------------------

RESET         ORG         0
GOTO         INICIO   

            ORG         5
;--------------------------------------------------------------------------------------------------------------------
;--------------------------------------INICIO DE PROGRAMA-----------------------------------------------
;--------------------------------------------------------------------------------------------------------------------


INICIO   
                  BANK1                         ;BANCO 1
                  MOVLW      b'11111111'
                  MOVWF      TRISB
                  MOVLW      b'10000000'
                  MOVWF      TRISC
                  MOVLW      0x06   
                  MOVWF      ADCON1
                  MOVLW      b'11111111'
                  MOVWF      TRISA

;--------------------------------------------------------------------------------------------------------------------
;CONFIGURA RS232
;--------------------------------------------------------------------------------------------------------------------   
                  MOVLW      b'00100000'      ;Configuracion USART (8 Bits de transmision)
                  MOVWF      TXSTA
                  MOVLW      .129            ;19600 baudios (.64) A 20MHz de frecuencia del pic
                  MOVWF      SPBRG         ;habilita la transmision y tbm el modo asincrono high speed (20MHz)
                  BANK0                        ;BANCO 0
                  BSF          RCSTA,SPEN       ;Serial   Activado   
               
                  BANK1                  ;BANCO 1
                  BSF         TXSTA,TXEN      ;Habilita la transmision

                  BANK0                  ;BANCO 0
                  BSF         RCSTA,SPEN      ;Volvemos a activar la transmision
                  BSF         RCSTA,CREN      ;Configuramos la recepcion continua
                  movlw         b'10010000'            ;Configuracion de la usart
                           movwf         RCSTA
                  CLRF         PORTB         ;Limpiamos puertoB
                  CLRF         PORTC         ;Limpiamos puertoC
                  CLRF         PORTA         ;Limpiamos puertoA


;-----------------------------------------------------------
;      Inicio de programa
;-----------------------------------------------------------
PRO_PRINCIPAL

         BSF         RCSTA,SPEN      ;Volvemos a activar la transmision
         CALL         COD_DIGITAL
         MOVF      PORTB,W
         CALL         ENVIA_TX

         CALL         COD_ANALOGIC
         CALL         COD_ANALOGIC1
   
         CLRW

      ;   MOVWF      PORTC
      ;   MOVF      PORTC,W

         GOTO      PRO_PRINCIPAL


COD_DIGITAL
               
         MOVLW      'N'
         CALL         ENVIA_TX
         MOVLW      'D'
         CALL         ENVIA_TX
         NOP
         RETURN

COD_ANALOGIC
         MOVLW      'N'
         CALL         ENVIA_TX
         MOVLW      'A'
         CALL         ENVIA_TX
         NOP
         RETURN         
COD_ANALOGIC1
         MOVLW      'N'
         CALL         ENVIA_TX
         MOVLW      'a'
         CALL         ENVIA_TX
         NOP
         RETURN   

ENVIA_TX      
         BCF         PIR1,TXIF
         MOVWF      TXREG            ;Cargamos a TXREG con el valor de W
         BANK1                     ;Cambiamos al banco1
COMP_ENVIA
         BTFSS         TXSTA,TRMT      ;Preguntamos si termino la transmision
         GOTO         COMP_ENVIA      ;Volvemos a preguntar
         BANK0                     ;Regresamos al banco0
         RETURN                     ;Retornamos



            END

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: No puedo comunicar PIC con PC
« Respuesta #1 en: 20 de Noviembre de 2013, 19:41:08 »
Hola Mario,

No quiero descartar que el problema sea otro, pero estás teniendo en cuenta que el valor del PORTB puede no ser visible como caracter gráfico? No sé con qué soft estás monitoreando la trama recibida, pero hay muchos valores que el PORTB puede adquirir, y sin embargo al no tener caracter imprimible en pantalla, no se muestra en absoluto y puede llegar a hacerte creer que no se ha enviado, pese a que sí lo ha hecho.
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.


 

anything