LIST P=16F628A INCLUDE <P16F628A.INC> ORG 0X00 GOTO INICIO ORG 0X05 INICIO bsf STATUS,RP0 ;banco1 movlw b'00000000' ; configuro puertos movwf TRISB bcf STATUS,RP0 ; banco 0 movlw b'01010101' movwf PORTB END
ahora veremos el funcionamiento
del codigo
LIST P=16F628A
Define el microcontrolador que se
va a utilizar
INCLUDE <P16F628A.INC>
aqui definimos las etiquetas del
PIC
__CONFIG
_CP_OFF&_MCLRE_OFF&_WDT_OFF&_INTRC_OSC_NOCLKOUT
definimos la configuracion del
microcontrolador , configuracion para el grabador
- utilizaremos oscilador interno
del pic
- descartivaremos el watchdog
constante equ b’10101010′
aqui declaramos una constante
la sintaxis para declarar
constantes es la siguinte <nombre de la constante> equ <valor> lo
que hace el codigo es que cada vez que llamemos a la constante tome el valor
de constante
ejemplo:
constante equ b’10101010′ — cada vez que llamemos a constante este
tomara el valor de 10101010 en binario
tambien podemos escribirlo en
octal hexagecimal binario decimal , siendo el primero el menos usado
binario = 11111111
decimal = 255
hex = 0xFF
org 0×00
el programa comienza en la direccion 0 de la memoria del
programa. Es muy importante comenzar el programa con el nemonico org en la direccion 0×00 ya que este nemonico
define la dirección en la que se comenzará a escribir el código. Al momento de
encender el microcontrolador , un reset lo primero que el microcontrolador hace
es leer la dirección 0×00, si no hay nada en esa dirección lo más probable es
que el microcontrolador se cicle. Otra cosa importante que debemos tomar en
cuenta es que la memoria de programa del PIC 16F628A comienza en la dirección
0×05<ver data sheet del micontrolador> ,
es por eso que se pone org 0×05
goto inicio
lo que hace goto es hacer un salto como su nombre lo indica , a inicio
org 0×05
hacemos que incio este en la
direccion 5 de la memoria del programa
inicio bsf STATUS,RP0
bsf se utiliza para cambiar el
estado lógico de un bit de un registro a un nivel alto , la sintáxis es bsf f,b donde f es el registro
y b el bit que se quiere cambiar (bsf STATUS,RP0)
“Pone un 1 al bit 5 del STATUS .
Acceso al banco 1″
clrf TRISB
Una vez en el banco 1
configuramos el puerto B como salida, de eso se encarga clrf, este
nemonico borra el contenido de un
registro, al estar en el banco 1 clrf TRISB hace que todos los bits del
registro TRISB se pongan en un nivel bajo, configurando así el puerto B como
salida
“Se configura puerto B como
salida”
bcf STATUS,RP0
Después regresamos de nuevo al
banco 0 con bcf STATUS,RP0. bcf realiza la acción contraria de bsf, pone a 0 un
bit del registro específicado. Con eso termina la configuración del puerto B.
movlw constante
carga el registro de trabajo
W con la constante
bucle
movwf PORTB
en contenido de W se deposita en
el Puerto B (salida)
goto bucle
creamos un bucle infinito…
end
Publicar un comentario