Pasar programa del 16f84 al 12f629

Hola
Quisiera empezar a utilizar el micro 12F629, pero mi experiencia se limita al 16F84, asi que he preparado este pequeño resumen para su utilizacion.

Quisiera que me corrigierais si hay algun error, o bien me falta algo.

;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
;XXXXX PASAR DEL 16f84 al 12f629 XXXXXXXX
;XXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

;*********************** ZONA DE DATOS ***********************

__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
;codigo de proteccion no, perro guardian no, reset inicio si, oscilador cristal

LIST P=16F84A ;Procesador utilizado.
INCLUDE <P16F84A.INC>


__CONFIG _MCLRE_OFF & _CP_OFF & _WDT_OFF &
_INTRC_OSC_NOCLKOUT ; oscilador interno

LIST P=16F629 ;Procesador utilizado.
INCLUDE <P12F629.INC>

;*********************** VARIABLES ***********************

nombre equ 0x0C ; a partir de esta direccion empieza la memoria de datos

nombre equ 0x20 ; a partir de esta direccion empieza la memoria de datos

;*********************** CONFIGURAR PUERTOS ********************

las intrucciones TRISA y TRISB se sustituyen por TRISIO
las instrucciones PORTA y PORTB se sustituyen por GPIO


El terminal GP3 solo puede actuar como entrada de datos

Antes de la programación con los datos de su archivo hexadecimal hacer una nota con el valor de calibración que se está fijado por fábrica de Microchip.
Nota: El valor de calibración se encuentra en la última dirección de memoria 0x3FF

Calibración del oscilador
Cuando se necesite maxima precision con el oscilador interior habra que proceder de la siguiente manera para calibrarlo:
Añadir estas instrucciones antes del final del programa
Org 0x3FF
Retlw 0x20
End
Y en el apartado de configuracion de puertos esta otra.
Bsf status, rp0
Call 0x3ff
Movwf OSCCAL
Bcf status, rp0
 
Temo que existe un error:

Org 0x3FF
Retlw 0x20

Ese par de sentencias indican al MPASM que genere una nueva palabra de calibracion arbitraria, la cual, si todo va mal, deberia terminar sobre-escribiendo la calibracion de fabrica del PIC (usualmente los programadores profesionales ignoran cualquier dato en la localidad 0x3FF que pudiera estar en el .hex a favor de preservar la calibracion de fabrica del PIC, o mejor aun, generan una advertencia de que el .hex contiene una instruccion en esa localidad).

Recomiendo que elimines esas 2 lineas. Lo demas, va bien segun veo.

Saludos.
 
Si te refieres a los pull-up internos, el PIC12F629 cuenta efectivamente con dicha funcionalidad. La activacion de los pull-up es un proceso de 2 pasos:

1- Activar los pullup individuales mediante el registro WPU. Un 1 activa un pull-up, mientras que un 0 lo apaga. En WPU cada bit se corresponde con un bit del puerto GPIO (p. ej. el bit 4 con GP4). Todos los pines excepto GP3 cuentan con pullups.

2- Poner el bit ~GPPU (registro OPTION) a cero. Este bit es una activacion general de los pull-ups (similar a GIE para las interrupciones).

Te recomiendo que consultes la seccion 3.2.1 de la hoja tecnica del PIC12F629 para mas detalles.

Si tienes mas dudas, pregunta, para eso estamos.

Saludos.
 
Atrás
Arriba