TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado 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
-
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.
-
ok, voy a probar a ver como me va.
muchas gracias!
-
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.
-
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