Está en la página 1de 16

Cap tulo 1 Pr actica: Proteus, MPLab y Hitec PICC

Aquel que hace una pregunta puede ser un tonto por cinco minutos, pero aquel que nunca hace una pregunta permanece tonto por siempre Tom J. Connelly

1.1. Objetivo
de un sencillo programa en ensamblador y/o lenguaje C para Se propone la realizacion el microcontrolador PIC16F88 que es el objetivo de estudio de este curso. Se busca aprender a manejar las herramientas software y de desarrollo Proteus ISIS, MPLAB y Hitec PICC, as como completo, que va desde la especicacion del problema hasta poner en pr actica el ciclo de diseno del prototipo. la puesta en marcha y optimizacion
1

1.2. Software
MPLAB MPLAB es la herramienta que proporciona de manera gratuita el fabricante de los microcontroladores que estudiamos y se puede descargar de su p agina web 2 . Esta herramienta permite ensamblar y compilar nuestros programas as como depurar su funcionamiento. Permite el uso de compiladores de otros fabricantes e incluso permite una integra con el software que vamos a utilizar: Proteus. cion Proteus ISIS asistido por ordenador que permite dibujar el esquema Proteus es un programa de diseno y simularlos (tipo SPICE). La ventaja es que permite una simulahardware de nuestros disenos h cion brida digital/analogica que permite simular tambi en algunos microcontroladores (los m as frecuentemente utilizados) y lo que es m as importante depurar el funcionamiento de nuestras aplicaciones. En esta pr actica pretendemos hacer uso de esta herramienta que se puede adquirir a trav es profesional para principiantes permite de la p agina web del Labcenter Microelectronics3 . La version simular el microcontrolador 16F877 adem as del 16F84A y del 18F452 por unas 150 libras esterlinas (20 % de descuento si el uso es educacional).
1 2

de 7 de marzo de 2007 Version http://www.microchip.com 3 http://www.labcenter.co.uk

Especicaciones de la pr actica

shareware4 (gratuita) que permite simular solamente el microcontrolador Existe una version PIC16F84A. Hitec PICC Si deseamos escribir nuestros programas utilizando un lenguaje de alto nivel como puede ser C podemos acudir a los multiples fabricantes de software. Se recomienda un compilador de C de la casa HI-TECH5 ). una version de evaluacion (con presLa p agina WEB del HITECH pone a nuestra disposicion 6 taciones y duracion temporal limitadas) y versiones gratuitas .

1.3. Especicaciones de la pr actica


El primer programa propuesto consiste en introducir un valor en binario por el PORTA del microcontrolador (5 bits) y sacar por el PORTB (8 bits) el valor le do incrementado en dos unidades. Se aconseja conectar los pines de entrada a los conmutadores del entrenador y las patillas de salida a los LED o al display de 7 segmentos del entrenador. Vamos a emplear el PIC16F88 en vez del PIC16F84A estudiado en clase. l deberemos saber que: Para poder trabajar con e El primer registro de proposito general utilizable es el : 0x20 (32d) y no el 0x0C (12d) como en el PIC16F84A El PORTA al arrancar se congura como de entradas analogicas. Para su uso digital hay que denirlo como sigue:
1 2 3 4 5

bsf STATUS,RP0 bcf STATUS,RP1 clrf ANSEL bcf STATUS,RP0

; ; ; ; ;

Banco 1 de registros En el 16F88 hay que cambiar tambien RP1 ANSEL = 0, todo patillas digitales ... Modifica TRISA para el sentido Banco 0 de registros

proporcionamos el listado en lenguaje ensamblador: En esta ocasion


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21

LIST p=16F88 INCLUDE "P16F88.INC" RADIX DEC ERRORLEVEL -302 ORG 0 bsf bcf movlw movwf movlw movwf clrf bcf movfw andlw addlw movwf goto END STATUS,RP0 STATUS,RP1 11111111b TRISA 00000000b TRISB ANSEL STATUS,RP0 PORTA 00011111b 2 PORTB Bucle ; Selecciona Banco 1 ; ; ; ; ; ; ; ; ; ; ; W = 0FFh (Todo entradas) Configuro PORTA W = 00h (Todo salidas) Configuro PORTB ANSEL=0, PORTA digital Selecciono Banco 0 Leo W = PORTA Me quedo con los 5 bits del PORTA W = W + 2 PORTB = W Repito indefinidamente

Bucle

4 5

http://www.proteuslite.com http://www.htsoft.com/products/picccompiler.php 6 http://www.htsoft.com/downloads/demos.php

Cap tulo 1. Pr actica: Proteus, MPLab y Hitec PICC El esquema hardware ser a:

7SEG-BCD LOGICSTATE R1
10k

X1
16 15 4MHz 4

U1
RA7/OSC1/CLKIN RA0/AN0 RA6/OSC2/CLKOUT RA1/AN1 RA2/AN2/CVREF/VREFRA5/MCLR RA3/AN3/C1OUT/VREF+ RA4/AN4/T0CKI/C2OUT RB0/INT/CCP1 RB1/SDI/SDA RB2/SDO/RX/DT RB3/CCP1 RB4/SCK/SCL RB5/SS/TX/CK RB6/AN5/T1OSO/T1CKI RB7/AN6/T1OSI PIC16F88 17 18 1 2 3 6 7 8 9 10 11 12 13

0 0 0 0 0

C1
33pF

C2
33pF

Para sacar nota de la entrada sacando el complemento del valor Prueba a cambiar el valor de salida en funcion O exclusiva? de entrada. Sabr as codicar el valor mediante una operacion El juego de instrucciones en ensamblador del microcontrolador es el siguiente:
TABLE 13-2:
Mnemonic, Operands

PIC16CXXX INSTRUCTION SET


Description Cycles 14-Bit Opcode MSb BYTE-ORIENTED FILE REGISTER OPERATIONS Add W and f AND W with f Clear f Clear W Complement f Decrement f Decrement f, Skip if 0 Increment f Increment f, Skip if 0 Inclusive OR W with f Move f Move W to f No Operation Rotate Left f through Carry Rotate Right f through Carry Subtract W from f Swap nibbles in f Exclusive OR W with f Bit Clear f Bit Set f Bit Test f, Skip if Clear Bit Test f, Skip if Set Add literal and W AND literal with W Call subroutine Clear Watchdog Timer Go to address Inclusive OR literal with W Move literal to W Return from interrupt Return with literal in W Return from Subroutine Go into standby mode Subtract W from literal Exclusive OR literal with W 1 1 1 1 1 1 1(2) 1 1(2) 1 1 1 1 1 1 1 1 1 1 1 1 (2) 1 (2) 1 1 2 1 2 1 1 2 2 2 1 1 1 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0111 0101 0001 0001 1001 0011 1011 1010 1111 0100 1000 0000 0000 1101 1100 0010 1110 0110 dfff dfff lfff 0xxx dfff dfff dfff dfff dfff dfff dfff lfff 0xx0 dfff dfff dfff dfff dfff LSb ffff ffff ffff xxxx ffff ffff ffff ffff ffff ffff ffff ffff 0000 ffff ffff ffff ffff ffff Status Affected

ADDWF ANDWF CLRF CLRW COMF DECF DECFSZ INCF INCFSZ IORWF MOVF MOVWF NOP RLF RRF SUBWF SWAPF XORWF BCF BSF BTFSC BTFSS ADDLW ANDLW CALL CLRWDT GOTO IORLW MOVLW RETFIE RETLW RETURN SLEEP SUBLW XORLW

f, d f, d f f, d f, d f, d f, d f, d f, d f, d f f, d f, d f, d f, d f, d f, b f, b f, b f, b k k k k k k k k k

C,DC,Z Z Z Z Z Z Z Z Z

C C C,DC,Z Z

BIT-ORIENTED FILE REGISTER OPERATIONS 01 01 01 01 00bb 01bb 10bb 11bb bfff bfff bfff bfff ffff ffff ffff ffff C,DC,Z Z TO,PD Z

LITERAL AND CONTROL OPERATIONS 11 11 10 00 10 11 11 00 11 00 00 11 11 111x 1001 0kkk 0000 1kkk 1000 00xx 0000 01xx 0000 0000 110x 1010 kkkk kkkk kkkk 0110 kkkk kkkk kkkk 0000 kkkk 0000 0110 kkkk kkkk kkkk kkkk kkkk 0100 kkkk kkkk kkkk 1001 kkkk 1000 0011 kkkk kkkk

TO,PD C,DC,Z Z

Primeros pasos con Proteus

1.4. Primeros pasos con Proteus


Para comenzar el tutorial lo primero es arrancar el programa, que tiene una pantalla inicial, Hay que indicar que el sistema Proteus despu es del logotipo como la que aparece a continuacion. consta de dos modulos o programas diferenciados: ISIS que es el modulo que permite hacer la captura esquem atica y las simulaciones -y que es objeto de este tutorial- y ARES que es el modulo de placas de circuito impreso (PCBs). dedicado al diseno

Inicialmente debemos crear un proyecto vac o (FileNew) o abrir uno ya existente (FileOpen). y que Si partimos de un nuevo proyecto distinguimos varias partes en la ventana de la aplicacion una barra de estado son: la barra de herramientas en la parte superior, debajo de los menus, que en realidad nos permitir a modicar geom etricamente los componentes, y que adem as per pararla, ejecutar un paso, etc. mitir a mediante cuatro sencillos botones arrancar la simulacion, Adem as tenemos otra barra de herramientas en formato vertical que va acompanada de una lista de dispositivos. Por ultimo tenemos la hoja donde vamos a colocar los distintos componentes. vamos a situar el montaje b En un primer diseno asico de un microcontrolador: el PIC16F88 (en las guras aparece el PIC16F877, pero el desarrollo es similar). Para ello es necesario seleccionarlo. Con el atajo de teclado P lograremos situar cualquier componente como se ve en la siguiente gura:

Cap tulo 1. Pr actica: Proteus, MPLab y Hitec PICC

Simplemente debemos teclear el nombre o parte del nombre del dispositivo buscado y nos de uno de ellos el esquema gr aparecer a una lista de posibles candidatos y con la seleccion aco que lo dene. y pulsar Una vez aceptado el componente solo tendremos que seleccionar un lugar con el raton izquierdo para situarlo en la hoja de diseno: el boton

Haremos lo mismo con otros componentes necesarios como el cristal de cuarzo (CRYSTAL).

Primeros pasos con Proteus

Para trazar un cable entre dos elementos simplemente aproximaremos el cursor hasta la patilla izquierdo del raton para trazar autom correspondiente y pulsaremos el boton aticamente el cable. Si queremos que el cable recorra una gura determinada, simplemente pulsaremos a lo largo del camino a recorrer y terminaremos con el segundo elemento.

Despu es de haber colocado y conectado otros elementos como los condensadores (CAP), necesitaremos poner algunas tierras (GROUND) y alimentaciones (POWER). Estas se encuentran pulsando en la barra de herramientas vertical el icono relacionado con los terminales.

Cap tulo 1. Pr actica: Proteus, MPLab y Hitec PICC

de estos elementos se hace de la misma manera. Si necesitamos ver ampliada La conexion se puede hacer a trav de la barra de herramientas horizontal o la hoja de diseno es del menu, utilizando los atajos de teclado (teclas F5,F6,F7,F8). Una vez colocados los componentes querremos modicar su valor. Para ello seleccionamos l con el boton derecho del raton, y a continuacion con el componente concreto pulsando sobre e izquierdo. Cuidado por que si pulsamos dos veces con el boton derecho eliminaremos el boton el el componente. El atajo de teclado U nos ayudar a a recuperar (deshacer la ultima operacion) componente borrado por error.

Despu es de haber modicado los valores como los que aparecen en la gura (resistencias: RES), deberemos indicarle al microcontrolador con qu e frecuencia va a ser simulado.

Primeros pasos con Proteus

Seleccionamos el micro y editamos sus propiedades

Colocaremos la frecuencia de reloj coincidente con la del cristal de cuarzo del esquema. Ahora ha llegado el momento de anadir codigo al microcontrolador.

Cap tulo 1. Pr actica: Proteus, MPLab y Hitec PICC

SourceAdd/Remove Source Files .. seleccionaremos el listado en Por lo tanto, en el menu ensamblador o C (si se dispone del compilador correspondiente) que queremos colocar en el micro (el programa principal; los dem as cheros estar an incluidos de alguna manera en el chero principal).

Si el chero no existe no importar a ya que ser a creado al editarlo

10

Primeros pasos con Proteus

en este caso seleccionareAl mismo tiempo seleccionaremos la herramienta de compilacion, mos MPASMWIN.

Source aparecer se arrancar Dentro del menu a el chero relacionado. Pulsando esa opcion a un editor para modicar/crear el programa.

SourceBuild All. Editaremos el codigo deseado Y lo compilaremos mediante la opcion

Cap tulo 1. Pr actica: Proteus, MPLab y Hitec PICC

11

error de sintaxis aparecer Si todo fue bien y no cometimos ningun a la siguiente ventana indic andonos que todo fue bien. El ensamblador/compilador utilizado es externo al entorno, luego se pueden anadir herramientas de este tipo para programar el microcontrolador en el lenguaje que deseemos.

Finalmente deberemos incluir el codigo compilado en el microcontrolador. Seleccionamos el micro y editamos sus propiedades. En este caso rellenaremos el campo Program File con el chero .HEX generado que tendr a extension

12

Primeros pasos con Proteus

Seleccionamos el chero:

Ahora podemos proceder a simular el circuito dando a la tecla PLAY de la barra de estado. Se generar a una lista de nodos, se compilar a todo lo necesario, y se comenzar a la simulacion

Cap tulo 1. Pr actica: Proteus, MPLab y Hitec PICC

13

Nos faltar a anadir algunos elementos m as para ver el funcionamiento de forma m as correcta (LOGICSTATE).

Para depurar el programa no tenemos m as que pulsar la tecla PAUSE de la barra de estado y podremos ejecutar paso a paso las instrucciones, examinar la memoria, los registros, nuestras Debug. variables, etc. Todo esto se selecciona en el menu

14

Conguraci on de Proteustm para usar el compilador PICC

Al tiempo que se ejecutan paso a paso las instrucciones, el esquema se actualizar a encendiendo y apagando los LEDs conectados, funcionando los instrumentos virtuales colocados, los displays, etc.

1.5. Conguracion de Proteustm para usar el compilador PICC


Source Define Para poder utilizarlo con Proteustm se debe hacer lo siguiente en el Menu: Code Generation Tools. Se crea una nueva entrada (PICC) que se rellena como sigue:

Cap tulo 1. Pr actica: Proteus, MPLab y Hitec PICC

15

8.02PL1) est Entre las opciones marcadas para el compilador (Version an


-ASMLIST. Genera un chero de listado en ensamblador (.LST). y depuracion compatible con MPLAB. Genera los cheros *.cof que vamos a emplear. -MPLAB. Compilacion con mensajes. -V. Compilacion -16F88. Decidimos para que microcontrolador queremos que se compile. Esto habr a que modicarlo en cada proyecto ya que no se guarda con el esquem atico. optimizada y optimizacion global. Si no depura bien se puede probar a eliminar esta -O -Zg9. Compilacion opcion. -O %2. Especicamos el chero de salida. -Eerror.txt. Especicamos el chero (error.txt) donde se escribir an los mensajes de error. Este chero lo deberemos visualizar para comprobar los errores. del depurador en circuito de Microchip que -ICD. Le decimos al compilador que queremos usar la prestacion reserva 256 posiciones den la parte alta de la memoria de programa y algunas en la RAM. Con esto permitimos el uso de un programa bootloader que permitir a grabar el circuito sin necesidad de extraerlo y usar el grabador.

el listado: Crearemos un nuevo chero fuente segun


1 2 3 4 5 6 7 8 9 10 11 12

#include <pic.h> void main() { TRISA=0xFF; // PORTA TRISB=0x00; // PORTB ANSEL=0X00; // PORTA while(1) // Bucle { PORTB = (PORTA&0x1F) }; }

todo entradas todo salidas digital infinito + 2; // Saco lo que entra + 2

y le asignaremos como compilador el que acabamos de denir. Para compilar lo haremos de la forma habitual. Si da un error gen erico y no aparece en el directorio de trabajo el chero error.txt el problema es que ha habido un error al ejecutar el comando y por tanto habr a que revisar la linea introducida en el campo Command Line:. %1 -ASMLIST -MPLAB -V -16F88 -O -Zg9 -O %2 -Eerror.txt -ICD

16

Conguraci on de Proteustm para usar el compilador PICC

El chero a incluir en el microcontrolador ser a, si se desea, el *.hex que ser a el empleado des en lenguaje C se deber de el programa grabador (ICProg), pero si se requiere la depuracion a emplear el chero *.cof. Con esto estaremos preparados para depurar nuestras aplicaciones escritas en C con Proteustm . Si se incluye en el microcontrolador el chero *.cod se ver a a la vez el codigo C y el ensam se har blador generado aunque la depuracion a a nivel ensamblador.

También podría gustarte