Вы находитесь на странице: 1из 13

Diseo con microcontroladores PIC en lenguaje Ensamblador

Docente: Ing. Roger Guachalla Narvez


xoroger@yahoo.es

PRACTICA 03: Entorno de Desarrollo Integrado IDE MikroBasic Pro for PIC
1.

Objetivos
Conocer los 3 requisitos para que un proyecto con microcontrolador funcione correctamente
Conocer la Configuracin del microcontrolador PIC16F877A
Realizar la creacin de proyectos usando los entornos de Desarrollo Integrado (IDE) MikroBasic Pro for PIC
Entender el contenido de los archivos .hex y .cof
Realizar la depuracin de los programas dentro usando el Debugger incorporado en este IDE

2.

Requisitos para que un proyecto con microcontrolador funcione correctamente


Se deben cumplir 3 requisitos para que un proyecto con microcontrolador funcione adecuadamente:
a) El HARDWARE debe estar armado correctamente.
Tomar en cuenta que los paquetes de diseo de Diagramas Esquemticos como el Proteus, generalmente no
muestran los pines de conexin a alimentacin: VCC, Gnd o VDD y VSS. Un error comn es omitir estas
conexiones en el protoboard.
Si leemos un pin al aire en tecnologas como TTL, esto equivale a un 1 lgico. Sin embargo los
microcontroladores usan tecnologas CMOS donde un pin al aire se puede leer como 1 o 0, es decir no est
definido. Para asegurar lecturas correctas de valores lgicos, se debe asegurar valores lgicos 1 o 0 a travs de
resistencias conectadas a VCC y Gnd.
Siempre colocar los capacitores de 15 a 33 pF entre los terminales del cristal y tierra para asegurar una buena
oscilacin del reloj.
Para la conexin en protoboard, no utilizar cables excesivamente cortos (formando ngulos de 90 o en los
extremos) porque arriesgamos una rajadura del cable que provocar conexiones intermitentes en el circuito.
Tampoco usar cables excesivamente largos porque provocan ruido y desorden. Usar una longitud de cable
intermedia que permita un leve arco entre puntos de conexin.
Procurar no tener cables pelados o terminales de componentes (R, C, etc.) muy largos para minimizar riesgos
de un corto circuito.
El uso de cables de color Rojo para conexiones a VCC y cables de color negro para conexiones a Gnd.
En la visualizacin en protoboard, respetar el orden del peso posicional de los bits (b7, b6, b5, b4, b3, b2, b1,
b0) de izquierda a derecha para la conexin fsica de leds y micro interruptores (switches).
Antes de encender la fuente, revisar mediante continuidad, si no existe un corto circuito en el protoboard.
Ser pulcro y ordenado en el armado del circuito en el protoboard.
b) El SOFTWARE debe estar escrito correctamente.
Siempre crear un nuevo folder (o carpeta) independiente para cada nuevo proyecto (o una variacin de este)
que se realice. Un error comn es utilizar un mismo folder para varios proyectos o variaciones de estos. El
software MikroBasic y Proteus se confundir entre los distintos archivos generados.

El nombre del folder del proyecto debe incluir toda la informacin necesaria para su posterior uso:
Breve y resumida descripcin del proyecto
Lenguaje usado para la creacin del proyecto
Microcontrolador usado
Fecha de creacin
Como ejemplo, para un proyecto de un Contador de Leds en Binario, realizado en MikroBasicPro for PIC usado
el microcontrolador PIC16F877A en fecha 10 de Marzo de 2015, un nombre completo sera:
LedBinCont MkBasPPIC P16F877A 10 Mar 2015
Al manejar el Wizard para nuevos proyectos, utilizar nombres significativos para el Nombre de Proyecto.
Preferiblemente usar el mismo nombre descriptivo del folder del proyecto. Para el ejemplo del punto anterior,
el nombre del proyector sera: LedBinCont
Si se desea aadir separacin entre palabras, no usar el Espacio, sino el carcter de subrayado. Es decir:
Contador_de_Leds_en_Binario
NO usar nombres genricos como x que no indican nada. Tambin evitar el uso de vocales acentuadas (, ,
etc.), las letras o , o caracteres fuera de los primeros 127 cdigos ASCII estndar.
Usar nombres de variables significativos (Ej. Velocidad, Sensor, etc.) y no nombres genricos que adems de
no indicar nada, pueden ser usados como registros internos del microcontrolador (Ej. La variable S se reserva
para la bandera de Signo del microcontrolador)
El compilador MikroBasic detecta automticamente los Errores de Sintaxis, es decir aquellos que tienen que
ver con faltas a las reglas del lenguaje. Por ejemplo, si queremos hallar la multiplicacin de dos variables y
almacenarla en una tercera, el siguiente cdigo genera un error de sintaxis:
Salida = * Var1 Var2 lo correcto sera Salida=Var1*Var2
Sin embargo los Errores de Semntica, es decir aquellos que tienen que ver con fallas del significado o
concepto, no son detectados. Por ejemplo, si queremos hallar el promedio de dos variables y almacenarlo en
una tercera, el siguiente cdigo NO genera un error a pesar de contener un error de semntica:
Promedio=Var1+Var2/2 lo correcto sera Promedio=(Var1+Var2)/2
Cuando se tienen dudas del uso acerca de una funcin o palabra reservada del lenguaje MikroBasic, lo ms
sencillo y rpido es utilizar es sistema de Ayuda que proveen dichos lenguajes. Basta con posicionar el cursor
dentro de la palabra o funcin que se quiere conocer y presionar la tecla F1.
Grabar el circuito esquemtico de Proteus en el mismo folder de proyecto donde se encuentran el cdigo
fuente y los dems archivos generados por MikroBasic.
Para realizar una depuracin de errores de programacin en Proteus, utilizar el archivo .COF que permite
correr un programa paso a paso con la posibilidad de observar y cambiar los valores de los registros y variables
del programa
Tomar en cuenta que el software Proteus ISIS realiza la simulacin sin tomar en cuenta la Palabra de
Configuracin del microcontrolador. As mismo, aunque no se conecte el reloj de cristal, el circuito Reset y
otros dispositivos que son obligatoriamente necesarios en hardware, Proteus realizar la simulacin de todas
maneras. Por ser Proteus una herramienta 100% software, sujeta a errores de programacin, existen varios
eventos que no son simulados o peor an que se simulan mal. Por esta razn, la Simulacin en Proteus es un
paso Necesario ms NO Suficiente para asegurar el funcionamiento real en hardware.

c) La Palabra de Configuracin del microcontrolador debe estar configurada correctamente.


Es obligatorio que:

No se omita este paso, pues aunque los incisos a) y b) estn correctos, una mala configuracin no permitir el
correcto funcionamiento del proyecto en hardware.
El software de simulacin PROTEUS, no toma en cuenta la configuracin del microcontrolador y por ende
muchas veces los proyectos funcionarn en este software.

3.

Palabra de Configuracin del microcontrolador PIC16F877A

bit 13

CP (Code Protect) Bit de proteccin de la memoria FLASH de Programa


1 = Cdigo NO protegido
0 = Toda la memoria de programa protegida

bit 11

DEBUG Bit de Modo de In-Circuit Debugger ICD (Depuracin En Circuito)


1 = In-Circuit Debugger deshabilitada, RB6 y RB7 son pines de I/O de propsito general
0 = In-Circuit Debugger habilitado, RB6 y RB7 son usados por el depurador ICD (emulador)

bit 10-9

WRT1:WRT0 Bits de habilitacin de escritura de la memoria de Programa FLASH


00
01
10
11

bit 8

=
=
=
=

Direcciones 0000h a 0FFFh protegidas


Direcciones 0000h a 07FFh protegidas
Direcciones 0000h a 00FFh protegidas
Proteccin de Escritura deshabilitada, toda la memoria de programa puede ser escrita

CPD (Code Protect Data) Bit de proteccin de la memoria EEPROM de Datos


1 = Memoria EEPROM de Datos NO protegida
0 = Memoria EEPROM de Datos Protegida

bit 7

LVP (Low Voltage Programming) Bit de habilitacin de ICSP(In-Circuit Serial Programming)


mediante Bajo Voltaje (VDD=+5V) El valor de fbrica por defecto es LVP=1
1 = LVP habilitado (RB3/PGM tiene la funcin PGM)
0 = LVP deshabilitado (RB3 se puede usar como I/O digital), HV (High voltage = +12 Volt)
debe ser usado en MCLR

bit 6

BOREN (Brown-out Reset Enable) Bit de habilitacin del Reset por cada de voltaje
(Voltaje de Alimentacin VDD < 4.35 Volt)
1 = BOR Habilitado
0 = BOR Deshabilitado

bit 3

PWRTEN (Power-up Timer Enable) Bit de habilitacin del Temporizador al Encendido (72ms)
1 = PWRT Deshabilitado
0 = PWRT Habilitado

bit 2

WDTEN (Watchdog Timer Enable) Bit de habilitacin del Temporizador Perro Guardin
1 = WDT Habilitado
0 = WDT Deshabilitado

bit 1-0

FOSC1:FOSC0 Bits de Seleccin de tipo de Oscilador


00
01
10
11

=
=
=
=

Oscilador
Oscilador
Oscilador
Oscilador

LP
XT
HS
RC

(Low Power Crystal) Cristal de Baja Potencia (f<=200KHz)


(Crystal) Cristal/Resonador (200KHz>f>=4MHz)
(High Speed) Cristal/Resonador de Alta Velocidad (4MHz>f>=20MHz)
(Resistencia, Capacitor)

Palabra de Configuracin del PIC16F877A en MikroBasic


Se accede a la Palabra de Configuracin del PIC16F877A en MikroBasic a travs del men Project Edit Project

Valores de la Palabra de Configuracin del PIC16F877A para las prcticas de laboratorio

4.

Compiladores Mikroelektronika

Mikroelektronika es una empresa europea que desarrolla compiladores en lenguajes C, Basic y Pascal para los
procesadores PIC, dsPIC, PIC32, ARM, FT90XI, AVR y 8051.

En esta asignatura, se utilizar el compilador MikroBasic PRO for PIC


Este IDE cuenta con diversas herramientas de desarrollo y un sistema de ayuda muy extenso.

5.

Creacin de un PROYECTO en el IDE MikroBasic Pro for PIC


Iniciar el IDE

Cerrar cualquier proyecto previo: Project Close Project


Crear un nuevo Proyecto: Project New Project y seguir las instrucciones del Wizard:

Paso 1: Configuracin del Proyecto:


Escribir el Nombre del proyecto, el folder del proyecto, el microcontrolador PIC a utilizar y la frecuencia de reloj

Paso 2: Seleccin de archivos que se aadirn al proyecto:


Si se disponen de libreras o mdulos adicionales se pueden agregar en este punto. Las prcticas de laboratorio no incluyen
dichos elementos por lo que se prosigue con el siguiente paso.

Paso 3: Seleccin del estado inicial para el administrador de libreras


Se usar la opcin por omisin Include All (Default) en las prcticas de laboratorio

Paso 4: Proyecto creado exitosamente. Hacer click en Finish para terminar el wizard
Seleccionar Open Edit Project window to set Configuration bits para Configurar el microcontrolador

Paso 5: Editar Palabra de Configuracin del PIC16F877A


Una vez seleccionados los valores de configuracin como se indica en el punto C. Valores de la Palabra de Configuracin del
PIC16F877A para las prcticas de laboratorio, grabar dicha configuracin cmo un Esquema (Scheme) presionando el botn
Save Scheme. De esta manera al iniciar un nuevo proyecto bastar con cargar el esquema de configuracin presionando
Load Scheme.

Paso 6: Cdigo auto generado por el compilador MikroBasic

6.

Archivos .hex
Intel HEX es un formato de archivo para la programacin de microcontroladores, EPROMs y otros circuitos integrados. Datando de los
aos 70, est entre los formatos ms antiguos con esta finalidad.
Consiste en un archivo de texto cuyas lneas contienen valores hexadecimales que codifican los datos y sus direcciones de memoria.
Cada lnea consta de los siguientes elementos:
1.
2.
3.
4.

Cdigo de inicio, un smbolo ':'


Longitud del registro, dos dgitos hexadecimales con la cantidad de bytes del campo de datos. Usualmente son 16 o 32 bytes
Direccin, cuatro dgitos hexadecimales, con la direccin de inicio de los datos.
Tipo de registro, dos dgitos hexadecimales, de 00 a 05, definen el tipo del campo de datos
Hay seis tipos de registros:
00, Datos, contiene una direccin de 16 bits y los datos correspondientes
01, Fin de archivo, no contiene datos y debe estar al final del archivo.
02, Direccin Extendida de Segmento, direccin base del segmento, para acceder a direcciones con ms de 16 bits.
Este valor se desplaza 4 bits a la izquierda (= multiplicar con 16) y se suma a la direccin proporcionada por los
registros de datos. Su campo de longitud debe valer 02 y el de direccin 0000.
03, Direccin de Comienzo de Segmento, especifica los valores iniciales de los registros CS:IP, para procesadores
80x86. El campo de direccin es 0000, longitud 04 y los datos contienen dos bytes para el segmento de cdigo y
otros dos para el instruction pointer
04, Direccin Lineal Extendida, permite dirigirse a 32 bits de memoria al contener los 16 bits superiores de la
direccin. Su campo de direccin vale 0000 y el de longitud 02.
05, Comienzo de Direccin Lineal. Contiene 4 bytes que se cargan en el registro EIP de los procesadores 80386 y
superiores. Su campo de direccin vale 0000 y el de longitud 04.

5.
6.

Datos, duplas de dgitos hexadecimales que contienen los datos


Checksum, dos dgitos hexadecimales con el complemento a dos de la suma de todos los campos anteriores, salvo el ':'

Ejemplo

:10010000214601360121470136007EFE09D2190140
:100110002146017EB7C20001FF5F16002148011988
:10012000194E79234623965778239EDA3F01B2CAA7
:100130003F0156702B5E712B722B732146013421C7
:00000001FF
Cdigo de inicio

Longitud

Direccin

Tipo de registro

Datos

Checksum

MikroBasicPro for PIC genera automticamente el archivo .hex cuando se compila exitosamente un programa.

7.

Archivos .cof
El Common Object File Format (formato de archivo de objeto comn) (COFF) es una especificacin de un formato de archivo
ejecutable del cdigo objeto y de libreras utilizado inicialmente en sistemas Unix.
La informacin de depuracin simblica COFF consta de nombres simblicos para las funciones del programa y variables, y la
informacin del nmero de lnea, que se utiliza para establecer puntos de interrupcin y el rastreo de la ejecucin.
MikroBasicPro for PIC NO genera automticamente el archivo .cof cuando se compila exitosamente un programa.

Procedimiento para habilitar generacin de archivos .cof en MikroBasic


a) En MikroBasic seleccionar el men Tools Options o presionar la tecla de funcin F12

b) En la ventana emergente, seleccionar la pestaa Output, hacer click en Output Settings y seleccionar la casilla Generate COFF
file. Finalmente presionar el botn Apply y Ok

c) Al compilar el programa, en la ventana inferior de mensajes del entorno MikroBasic, se indica la generacin del archivo .cof

8.

Depuracin con la herramienta Debugger en MikroBasic


Enunciado
Comparar el dato del puerto de entrada PORTA con el NUMERO 13
Existen tres posibilidades:
Si (PORTA)=NUMERO se encienden todos los LEDs de salida en PORTB
Si (PORTA)>NUMERO se activan los LEDs pares de salida en PORTB
Si (PORTA)<NUMERO se encienden los LEDs del nibble alto y se apagan los del bajo
Diagrama en Bloques
RA

RB

5 switch

8 leds

Cdigo Ensamblador para PIC16F

Nmero de Entrada

Salida de leds

Crear el proyecto SaltosASM en MikroBasic


Escribir el cdigo y Compilar asegurando NO tener errores reportados por el compilador

Uso del Depurador integrado


a.

Del men Run seleccionar Start Debugger o presionar la tecla F9

b.

Se muestran dos nuevas ventanas de Vistas de Valores (Watch Values) y Reloj (Clock Values)

c.

En la ventana Watch Values seleccionar Select variable from list:, en la lista emergente ubicar el registro TRISB y hacer
click en el botn + Add

d.

De igual manera aadir el registro TRISA y los puertos PORTA y PORTB

e.
f.

Para ejecutar el programa paso a paso hacer click en el cono

g.

Para cambiar la base numrica en que se muestran los valores presionar en Value y hacer click en el cono

o presionar la tecla F8

La depuracin paso a paso es una herramienta muy til pues nos permite corregir errores al observar los valores
resultantes de los registros y variables de un programa.

9. Procedimiento Experimental en Laboratorio


I.

Primera Firma:
Realizar y Defender un programa que calcule el Volumen de un cilindro:

II.

a)
b)

Dimetro se ingresa por 4 switch conectados al nibble inferior del puerto RB (RB0RB3)
Altura se ingresa por 4 switch conectados al nibble inferior del puerto RC (RC0RC3)

c)
d)
e)

El valor de
se aproximar con el valor de 3
El Volumen se muestra en 8 leds conectados al puerto RD
Se regresa al inciso a)

Segunda Firma:
Tomar el Nmero de C.I. del ltimo Integrante de Grupo escrito en la Cartula.
Obtener el Valor = Antepenltimo dgito del C.I.
ESCRIBIR C.I. y EL VALOR EN LA CARTULA
Ejemplo:
C.I. = 2711073
Valor=0

Si

Valor est entre 0 al 3 entonces:


Realizar y Defender un programa que calcule el rea de un cubo:
a)
b)
c)

Si

Lado se ingresa por 4 switch conectados al nibble inferior del puerto RB (RB0RB3)
El rea se muestra en 6 leds conectados al puerto RA
Se regresa al inciso a)

Valor est entre 4 al 6 entonces:


Realizar y Defender un programa que calcule el rea de un crculo:

Si

a)

El valor del Radio se obtiene de los tres bits inferiores del puerto RD (RD.0, RD.1 y RD.2)

b)
c)
d)

El valor de
se aproximar con el valor de 3
El rea se muestra en 6 leds conectados al puerto RA
Se regresa al inciso a)

Valor est entre 7 al 9 entonces:


Realizar y Defender un programa que calcule el Volumen de un prisma recto:
f)
g)
h)
i)
j)

Lado1 se ingresa por 4 switch conectados al nibble inferior del puerto RB (RB0RB3)
Lado2 se ingresa por 4 switch conectados al nibble inferior del puerto RC (RC0RC3)
Lado3 se ingresa por 4 switch conectados al nibble inferior del puerto RD (RD0RD3)
El Volumen se muestra en 6 leds conectados al puerto RA
Se regresa al inciso a)

10. Informe escrito


i.
ii.

iii.

iv.

Firmas en la Cartula (0, 1 o 2) que avalen los incisos realizados en Laboratorio


Para los programas resueltos de la 1ra y 2da firma, imprimir la siguiente informacin:
Enunciado
Flujograma del funcionamiento del Programa
Cdigo Fuente Ensamblador TOTALMENTE comentado
TRABAJO DE INVESTIGACIN:
Rutinas de Multiplicacin 8x8 en lenguaje ensamblador PIC16F
Algoritmo
Diagrama de Flujo
Codigo totalmente comentado
El trabajo de investigacin debe incluir:
Fuentes de Informacin (direcciones web, bibliografa)
Las primeras 2 pginas del Material Impreso usado para el resumen
Resumen escrito a mano (de un mnimo de 4 pginas)
Conclusiones

Вам также может понравиться