# Configurar puertos pic 18f4550



## richardgame (Mar 8, 2011)

Hola  espero puedan ayudarme  tengo un problema con el pic18f4550   estoy configurando  el puerto a  como salida pero cuando  mando  datos por este puerto  en  ra4  no me saca nada  paresiera que no funciona  y en  los demas si obtengo lo que quiero  esto es un pequeño ejemplo (en el  puerto d  meto  puro 1  y quiero  sacar los mismos datos por el puerto a  pero en ra4  no  pasa nada )

list p=18f4550
	#include<p18f4550.inc>

	org	00h

	movlw	b'11111111' ;declaro  entradas del  puerto b 
	movwf	trisb
	clrf trisa ; declaro puerto a como salida 

	movlw	0eh
	movwf	adcon1

    movf portb,0  ; mueve lo que tiene el puerto b al acomulador 
   movwf pora ;mueve lo que tiene el acomulador al puerto a
end



espero me puedan ayudar


----------



## pablokpo87 (Oct 26, 2011)

Hola Richardgame

Mira lo que veo en tu programa es que no configuras los fuces... tampoco configuras los comparadores ni el conversor analógico digital ni el bus USB...

Yo tengo el mismo problema que vos, pero yo trabajo en MiKroc, con el mismo programa ya configure los fuces para que tenga oscilación interna y desabilite  el MCLR...

Te paso mi programa, para que veas como configuro los registros del Osilador interno, Comparador, Conversor y bus USB....

De todas formas tampoco tengo la solucion.! ya que este programa hace titilar diodos leds en la salida de los puertos A, B y C   PERO EL RA4 NO FUNCIONA...

Bueno... si llegas a encontrar la solucion comenta como lo hiciste... Saludoss.!! 


Programa:

void main() {

  OSCCON      = 0b01110111;    // Osilador Interno 8 MHz
  CCP1CON     = 0b00000000;    // Capure/Compare/PWM Apagado
  ADCON1       = 0X07;             // Puerto A Como i/o Digital
  CMCON        = 0X07;             // Desabilito Comparador Purto A i/o Digital
  T0CON         = 0X00;            // Desabilito los timers
  UCON          = 0X00;             // Desabilito USB
  ADCON0.F0  = 0 ;                 // Desabilito el Modulo ADC


  TRISA = 0x00;          // set direction to be output
  LATA  = 0X00;
  TRISB = 0x00;          // set direction to be output
  TRISC = 0x00;          // set direction to be output

  while(1) {

    PORTA = 0x00;        // Turn OFF LEDs on PORTA
    PORTB = 0x00;        // Turn OFF LEDs on PORTB
    PORTC = 0x00;        // Turn OFF LEDs on PORTC

    Delay_ms(1000);      // 1 second delay

    PORTA = 0xFF;        // Turn ON LEDs on PORTA
    PORTB = 0xFF;        // Turn ON LEDs on PORTB
    PORTC = 0xFF;        // Turn ON LEDs on PORTC

    Delay_ms(1000);      // 1 second delay

  }

}


----------

