TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: Gerardo_s en 03 de Mayo de 2010, 16:09:20

Título: Ayuda con pic 12f508
Publicado por: Gerardo_s en 03 de Mayo de 2010, 16:09:20
Hola, necesito ayuda para poder configurar el puerto de este pic en assembler.
Estuve mirando la hoja de datos pero no entiendo como se hace.

Se como hacerlo en un 16f628 pero no en un 12f508, creo que es algo relacionado con la instruccion TRIS pero mi nivel de ingles no me permite entender como hacerlo bien.

Si alguien me puede ayudar se lo agradeceré mucho.

Desde ya muchas gracias!!

Gerardo
Título: Re: Ayuda con pic 12f508
Publicado por: sander en 03 de Mayo de 2010, 22:22:19
Si no me equivoco debes cargar el valor para configurar el registro TRIS en W y despues tienes que hacer tris  GPIO para escribir en el registro.

Saludos.
Título: Re: Ayuda con pic 12f508
Publicado por: Gerardo_s en 10 de Mayo de 2010, 16:56:56
ok, voy a probar a ver como me va.
muchas gracias!
Título: Re: Ayuda con pic 12f508
Publicado por: alekspm en 15 de Mayo de 2010, 21:46:50
Hola, te envio el siguiente code, es para 12F508A o 12F509A, funciona bien.

   LIST P=12F508, r=hex   ;originalmente es PIC12C508 yo lo cambie porque uso el 12F508
   INCLUDE "P12F508.INC"   ;Incluimos la libreria que originalmente era PIC12C508

   __CONFIG _MCLRE_OFF & _CP_OFF & _WDT_OFF & _IntRC_OSC ;Aquí se configuran los fusibles

; Variables
W   EQU 0
F   EQU 1

OUT1   EQU   0   ;GP0
OUT2   EQU   1   ;GP1
OUT3   EQU   2   ;GP2   ; no se usa GP3 por ser exclusivamente entrada
OUT4   EQU   4   ;GP4
OUT5   EQU   5   ;GP5
AUX1   EQU   0x0C   ;variable auxiliar
AUX2   EQU   0x0D   ;variable auxiliar

   ORG 0x000

   clrwdt

   movlw b'11000000'
   option

   movlw b'00001000'   ; Configura GP0-GP2 y GP4-GP5 como salida. GP3 solo es entrada
   tris GPIO

   bcf GPIO,OUT1   ;Borra todas las salidas
   bcf GPIO,OUT2
   bcf GPIO,OUT3
   bcf GPIO,OUT4
   bcf GPIO,OUT5

start   
   bsf  GPIO,OUT1   ;Enciende el primer LED
   call retardo   ;Espera un tiempo
   bcf  GPIO,OUT1   ;Apaga el primer LED
   call retardo   ;Espera un tiempo

   bsf  GPIO,OUT2   ;Enciende el segundo LED
   call retardo    ;Espera un tiempo
   bcf  GPIO,OUT2   ;Apaga el segundo LED
   call retardo   ;Espera un tiempo

   bsf  GPIO,OUT3   ;Enciende el tercer LED
   call retardo   ;Espera un tiempo
   bcf  GPIO,OUT3   ;Apaga el tercer LED
   call retardo   ;Espera un tiempo   

   bsf  GPIO,OUT4   ;Enciende el cuarto LED
   call retardo   ;Espera un tiempo
   bcf  GPIO,OUT4   ;Apaga el cuarto LED
   call retardo   ;Espera un tiempo

   bsf  GPIO,OUT5   ;Enciende el quinto LED
   call retardo   ;Espera un tiempo
   bcf  GPIO,OUT5   ;Apaga el quinto LED
   call retardo   ;Espera un tiempo
   
   goto  start   ;Reinicia el ciclo

;Esta es la rutina de retardo
retardo
   movlw    0xFF      
   movwf   AUX1
   movwf   AUX2
   
Dec_1
   decfsz   AUX1, F
   goto   Dec_1
   decfsz   AUX2, F
   goto   Dec_1
   retlw   0
   end

Quedo a tus órdenes. Alekspm.
Título: Re: Ayuda con pic 12f508
Publicado por: Quino29 en 08 de Diciembre de 2010, 10:48:22
Hola, por lo que estoy viendo el 12F508 es similar al 10F200 y me gustaría saber si alguien tiene código de este último ya que estoy empezando en la programación en ensamblador con este PIC 10F200 y necesito realizar un receptor de infrarrojos usando el protocolo RC5 de Phiips. Si alguien me puedo ayudar a empezar o mandar código de este pic  o similar me sería de gran ayuda.

Un saludo y gracias,

Joaquín