Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Manual para Usar Simulador Proteus
Manual para Usar Simulador Proteus
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
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 .
; ; ; ; ;
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
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
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
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
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:
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).
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.
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.
Colocaremos la frecuencia de reloj coincidente con la del cristal de cuarzo del esquema. Ahora ha llegado el momento de anadir codigo al microcontrolador.
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).
10
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.
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
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
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
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.
15
#include <pic.h> void main() { TRISA=0xFF; // PORTA TRISB=0x00; // PORTB ANSEL=0X00; // PORTA while(1) // Bucle { PORTB = (PORTA&0x1F) }; }
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
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.