EVOLUPIC b Manual Del Usuario página 25

Tabla de contenido

Publicidad

inicio:
mloop:
jloop:
kloop:
La directiva include <p16F88.inc> contiene equivalencias entre los nombres y las direcciones de los registros y los
bits usados por el 16F88.
Observe la línea en donde se encuentra la instrucción de carga al registro W que se encuentra con comentarios en letra
inclinada. Con el objeto de escalar la velocidad de simulación, que es muy lenta en comparación al tiempo real, modifique el valor
"200" y ponga un "4". Ahora, elija la opción "project" y después "quickbuild". Esta opción realiza el ensamblado del programa y
produce como salidas, entre otros, el archivo demof88TINY.hex..El archivo .HEX, contiene solamente el código ejecutable que habrá
de almacenarse en el 16F88.
FORMATO DEL ARCHIVO DEMOF88TINY.HEX:
:020000040000FA
:040000008A01042845
:08000800831203139813831601
:10001000031307309C009D019B018501860183121B
:10002000031386018501013086000310860DCA3056
:0E003000A000A100A10B1A28A00B1928162869
:00000001FF
Es importante, antes de pasar a explicar el formato del archivo, aclarar que la longitud de palabra de las instrucciones
en el 16F88 es de 14 bits, es decir, que cada localidad de memoria ocupa 2 bytes de almacenamiento en un archivo. Originalmente, el
formato .HEX fue diseñado para computadoras con localidades de memoria de 8 bits de longitud, de tal forma que el número total de
bytes en el archivo .HEX es el doble para el 16F88 que para otros microcontroladores de 8 bits.
El primer byte de cada línea, es un valor que corresponde al número de bytes (en hexadecimal) de información
existentes en dicha línea. Por ejemplo, en la primera línea, hay un 02, lo cual significa que habrá 2 bytes de información. En la
segunda línea hay un 04, lo que significa que habrá 4 bytes de información. En la cuarta un 10, ó 16 bytes de información en esa
línea.
En seguida sigue la dirección de memoria inicial del bloque en donde habrán de almacenarse dichos bytes. En este
ejemplo, vemos un 0000 en la primera línea, y un 0008 en la tercera que corresponde a la dirección número 4 del sistema 16F88 por
lo que se explicó en el primer párrafo.
El siguiente byte es un 00 en todas las líneas, pero sin información útil. Los siguientes bytes en cada línea corresponden
a la información que habrá de almacenarse en la memoria FLASH. Al final de cada línea está un byte check sum que sirve para
bcf
RCSTA,SPEN
;DESHABILITA UART
BANCO1
movlw 7
movwf CMCON
clrf
CVRCON
clrf
ANSEL
;DESHABILITA CONVERTIDORES A/D
clrf
TRISA
clrf
TRISB
BANCO0
clrf
PORTB
clrf
PORTA
movlw B'00000001'
movwf PORTB
; port B =1
bcf
STATUS,C
;carry=0
rlf
PORTB,f
;rotate left PORT B (incluye carry)
movlw D'200'
;retraso antes de seguir rotación
movwf J
; J := w
movwf K
; K := w
decfsz K,f
; K = K-1, skip next if zero
goto
kloop
decfsz J,f
; J = J-1, skip next if zero
goto
jloop
goto
mloop
end
EVOLUPIC Bootloader 16F88 Punto Flotante, S.A. 2011
25

Publicidad

Tabla de contenido
loading

Tabla de contenido