Guia pic kit 3
El contador de programa
Este tiene 21 bits de anchura y se divide en tres de 8 bits, PCL, PCH, PCU siendo PCH Y
PCU los registros a los que no se puede escribir directamente ni tampoco son visibles a no ser que
se realice mediante alguna instrucción de lectura o escritura sobre el registro PCL. De esta forma se actualiza los registros superiores del PC. También es modificable si una instrucción de salto o de
subrutina se ejecuta, permitiéndose la escritura directamente por dichas instrucciones pero el dato
no será transferido desde el PCH y PCU al contador de registro.
Ante un reset, el PC se carga con el valor 0, por lo que este apunta a la dirección 0 de la memoria de programa, y según la instrucción escrita (normalmente un "goto") así actuará.
Hay que decir que las instrucciones no se pueden ejecutar en bytes impares, ya que el
PC
solo va saltando de dos en dos ya que su bit de menos peso, tiene siempre puesto a 0 por lo que solo
son pares las lineas a las que salta.
PROGRAMANDO CON C
El compilador C para pic de MPLAB implementa la siguiente regla:
1.Las instrucciones se almacenan en la sección denominada “code.”
2. Los datos son almacenados en “romdata” conjuntamente con “ROM”
MPLAB C COMPILER puede generar dos modelos de memoria, corto y largo. En el
modelo corto se usa un puntero de 16 bits, mientras que el modelo largo se usa uno de 24 bits (PC).
MEMORIA
DE DATOS
La memoria de datos es llamada “file register” o memoria de registros. Una vez que
encendemos el pic, los datos contenidos en dichos registros, son aleatorios. Los registros se agrupan
en orden de 256 bytes los cuales pueden ser seleccionados en bancos accesibles por los 4 bits de
mayor peso del registro de direcciones BSR ( Bank Select Register ). Las áreas especiales en el banco 0 y en el 15 son directamente accesibles y son denominadas ACCESS RAM y es aquí donde
están los registros especiales (FSR) como son por ejemplo, los registros para programar un puerto
de I/O, bits de algún registro de estado....
#pragma varlocate le dice al compilador dónde se almacenan las variables.
Las variables no inicializadas son almacenadas en memoria mediante “udata”, y el compilador
realizará lo necesario para almacenar y distribuir los datos correctos, así como su tipo para
optimizar la memoria al máximo, una vez que lo inicialice el compilador pasará los datos de la
memoria de programa a la de datos para comprobar su correcta ortografía y tipos de datos para
luego optimizar el programa.
REGISTROS ESPECIALES SFR
Estos registros especiales son ( PC, status, pila, EEDATA,,,,) sirven para programar los
periféricos y los demás registros como STATUS o PC y el compilador de C puede acceder a ello
por su nombre y puede modificarlos y leerlos como si fuesen variables. Se localizan el el Banco 15
de la memoria de datos.
EJERCICIOS PRACTICOS SOBRE C
EJERCICIO 1
Conectar el PICKIT3 al puerto usb del pc y después conectarnos la placa al conector ICSP.Vamos a crear un proyecto de compilación en C con el compilador C de MPLAB.
El proyecto consiste en encender un led indefinidamente conectado a una puerta, y veremos
como se realizan todos los pasos para su compilación. Para crear un proyecto vamos a realizarlo
mediante el asistente, por lo que accedemos a Project>Project Wizard... y nos sale una ventana de
bienvenida, por lo que pulsamos NEXT.
1.Seleccionamos un componente que en este caso será PIC18F45K20 y pulamos en Next.
2. Seleccionamos el lenguaje de programación “Microchip C18 Toolsuite” y pulsamos Next.
3. Crear un nuevo proyecto. Busca C.\Lessosn\PICKIT 3 Debug Express Lessons\01 Hello
LED y nombra el proyecto Lessson1 LED y lo guardamos con SAVE entonces le damos a ...
Regístrate para leer el documento completo.