Autor | Mensaje |
---|
| Asunto: Pasar de 16F84A a 16F627 Publicado: 10 Abr, 2009 - 11:47 |
|
Experto

Registrado: 03 Sep, 2008
Mensajes: 125
|
| Hola:
Me gustaría pasar del PIC16F84A al 16F627 (no 16F628A porque no lo tienen en el local).
¿Qué configuraciones debo usar para que me funcione el mismo circuito y con oscilador interno?
Código:
; Repetición del ejercicio Indexado_02.asm sobre la forma de implementar una tabla de
; verdad, pero resuelto con más eficacia.
;
; ZONA DE DATOS **********************************************************************
LIST P=16F84A
INCLUDE <P16F84A.INC>
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
; ZONA DE CÓDIGOS ********************************************************************
ORG 0 ; El programa comienza en la dirección 0.
Inicio
bsf STATUS,RP0 ; Acceso al Banco 1.
clrf TRISB ; Las líneas del Puerto B se configuran como salida.
movlw b'00011111' ; Las 5 líneas del Puerto A se configuran como entrada.
movwf TRISA
bcf STATUS,RP0 ; Acceso al Banco 0.
Principal
bcf STATUS,C ; Lee los sensores y los multiplica por 2
rlf PORTA,W ; añadiendo un "0" y desplazando hacia la izquierda.
andlw b'00001111' ; Se queda con los cuatro bits más bajos
addwf PCL,F ; Salta a la configuración adecuada.
movlw b'01100001' ; Estado "Vacio" (configuración 0).
goto ActivaSalida
movlw b'01100010' ; Estado "Llenándose" (configuración 1).
goto ActivaSalida
movlw b'00010000' ; Estado "Alarma" (configuración 2).
goto ActivaSalida
movlw b'00100100' ; Estado "Lleno" (configuración 3).
goto ActivaSalida
movlw b'00010000' ; Estado "Alarma" (configuración 4).
goto ActivaSalida
movlw b'00010000' ; Estado "Alarma" (configuración 5).
goto ActivaSalida
movlw b'00010000' ; Estado "Alarma" (configuración 6).
goto ActivaSalida
movlw b'00001000' ; Estado "Rebose" (configuración 7).
ActivaSalida
movwf PORTB ; Visualiza por el puerto de salida.
goto Principal
END
Un cordial saludo. |
| |
|
|
|
 |
|
| Asunto: Publicado: 12 Abr, 2009 - 09:43 |
|
Nuevo en el Foro

Registrado: 11 Sep, 2006
Mensajes: 44
|
| Para este programa solamente debes sustituir estas líneas:
LIST P=16F84A
INCLUDE <P16F84A.INC>
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
; ZONA DE CÓDIGOS ********************************************************************
ORG 0 ; El programa comienza en la dirección 0.
Inicio
por estas otras:
LIST P=16F627
INCLUDE <P16F627.INC>
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _INTRC_OSC_NOCLKOUT
; ZONA DE CÓDIGOS ********************************************************************
ORG 0 ; El programa comienza en la dirección 0.
Inicio
movlw .7
movwf CMCON ; CMCON=7 Desactiva módulo comparador. |
Ultima edición por AG-1 el 13 Abr, 2009 - 12:14 , editado 1 vez | |
|
|
|
 |
| Asunto: Publicado: 12 Abr, 2009 - 10:52 |
|
Experto

Registrado: 03 Sep, 2008
Mensajes: 125
|
| Muchas gracias.
Un curiosidad. ¿Cómo sabes exactamente los __CONFIG de se pic16f627a?
Saludo. |
| |
|
|
|
 |
| Asunto: Publicado: 13 Abr, 2009 - 12:28 |
|
Nuevo en el Foro

Registrado: 11 Sep, 2006
Mensajes: 44
|
| Meta escribió: Muchas gracias.
Un curiosidad. ¿Cómo sabes exactamente los __CONFIG de se pic16f627a?
Saludo.
La modificación que te he indicado es para el PIC 16F627 aunque tambien te puede servir para el 16F627A
Puedes encontrar estos parámetros en el archivo "P16F627.INC" o en el archivo "P16F627A.INC"
El único parámetro que he cambiado es _XT_OSC que he sustituido por _INTRC_OSC_NOCLKOUT, ya que como indicas quieres que el circuito funcione con el oscilador interno de 4MHz que possee el 16F627 o el 16F627A.
He modificado el post anterior ya que olvidé poner 2 intrucciones más que son necesarias, dado que es necesario desactivar el comparador analógico que posee el 16F627 en el puerto A, debido a que el programa utiliza las entradas del puerto A como entradas digitales. |
| |
|
|
|
 |
|