Proteus

  • May 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Proteus as PDF for free.

More details

  • Words: 3,451
  • Pages: 20
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 1

´ 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 especificacion ´ del problema, su poner en pr´actica el ciclo de diseno ˜ simulacion, ´ hasta la puesta en marcha y depuracion ´ del sistema. diseno,

1.2. Software MPLAB ´ 8.20) es la herramienta que proporciona de manera gratuita MPLAB (actualmente la version el fabricante de los microcontroladores que estudiamos y se puede descargar de su p´agina web 2 . Esta herramienta permite ensamblar, compilar, depurar, depurar en circuito y grabar nuestros programas en el microcontrolador. Permite el uso de compiladores de otros fabricantes e incluso ´ con el software que vamos a utilizar: Proteus, Hitec PICC. permite una integracion Proteus ISIS ˜ (actualmente la version ´ 7.5) asistido por ordenador que Proteus es un programa de diseno ˜ y simularlos (tipo SPICE). La ventaja permite dibujar el esquema hardware de nuestros disenos ´ h´ıbrida digital/analogica ´ es que permite una simulacion 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 perde la p´agina web del Labcenter Microelectronics3 . La version mite simular el microcontrolador 16F877 adem´as del 16F84A y del 18F452 por unas 150 libras 1

´ de 2 de marzo de 2009 Version http://www.microchip.com 3 http://www.labcenter.co.uk 2

1

2

Software

esterlinas (20 % de descuento si el uso es educacional). Permite simular pr´acticamente todos los microcontroladores de estas familias de Microchip por un precio algo m´as elevado. ´ shareware4 (version ´ 6.9 shareware por 30 libras) que permite simular solaExiste una version mente el microcontrolador 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 5 la casa HI-TECH ). ´ una version ´ de evaluacion ´ (con presLa p´agina WEB del HITECH pone a nuestra disposicion 6 ´ temporal limitadas) . Tambi´en disponemos de una version ´ freeware7 . taciones y duracion

4

http://www.proteuslite.com http://www.htsoft.com/products/picccompiler.php 6 http://www.htsoft.com/downloads/demos.php 7 http://www.htsoft.com/microchip/products/compilers/piccpro-modes.php con algunas fun´ cionalidades menos (codigo generado menos eficientemente, etc.) 5

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

3

1.3. Especificaciones 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 microcontrolador PIC16F88. Para poder trabajar con e´ l deberemos saber que: ´ 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 configura como de entradas analogicas. Para su uso digital hay que definirlo como sigue: bsf STATUS,RP0 bcf STATUS,RP1 clrf ANSEL

1 2 3 4

bcf STATUS,RP0

5

; ; ; ; ;

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 LIST p=16F88 INCLUDE "P16F88.INC" RADIX DEC ERRORLEVEL -302

1 2 3 4 5

ORG 0

6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21

Bucle

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

4

Especificaciones de la pr´actica El esquema hardware ser´a:

0

PUNTO

0 0 0 0

B0

R8 10k

X1

U1 16 15

4MHz

4

C1

C2

33pF

33pF

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

17 18 1 2 3

R1

6 7 8 9 10 11 12 13

B1 B2 B3

330

Al punto decimal

PIC16F88

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 codificar el valor mediante una operacion El juego de instrucciones en ensamblador del microcontrolador es el siguiente: TABLE 13-2:

PIC16CXXX INSTRUCTION SET

Mnemonic, Operands

Description

Cycles

14-Bit Opcode MSb

LSb

Status Affected

BYTE-ORIENTED FILE REGISTER OPERATIONS ADDWF ANDWF CLRF CLRW COMF DECF DECFSZ INCF INCFSZ IORWF MOVF MOVWF NOP RLF RRF SUBWF SWAPF XORWF

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

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

1 1 1 1 1 1 1(2) 1 1(2) 1 1 1 1 1 1 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

ffff ffff ffff xxxx ffff ffff ffff ffff ffff ffff ffff ffff 0000 ffff ffff ffff ffff ffff

00bb 01bb 10bb 11bb

bfff bfff bfff bfff

ffff ffff ffff ffff

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

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

C C C,DC,Z Z

BIT-ORIENTED FILE REGISTER OPERATIONS BCF BSF BTFSC BTFSS

f, b f, b f, b f, b

Bit Clear f Bit Set f Bit Test f, Skip if Clear Bit Test f, Skip if Set

ADDLW ANDLW CALL CLRWDT GOTO IORLW MOVLW RETFIE RETLW RETURN SLEEP SUBLW XORLW

k k k k k k k k k

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 (2) 1 (2)

01 01 01 01

LITERAL AND CONTROL OPERATIONS 1 1 2 1 2 1 1 2 2 2 1 1 1

11 11 10 00 10 11 11 00 11 00 00 11 11

C,DC,Z Z TO,PD Z

TO,PD C,DC,Z Z

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

5

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 ´ ˜ de placas de circuito impreso (PCBs). ARES que es el modulo dedicado al diseno

Inicialmente debemos crear un proyecto vac´ıo (File⇒New) o abrir uno ya existente (File⇒Open). ´ y que son: Se distinguen varias partes en la ventana de la aplicacion ´ la barra de herramientas en la parte superior, debajo de los menus, una barra de estado que en realidad nos permitir´a modificar geom´etricamente los compo´ nentes, y que adem´as permitir´a mediante cuatro sencillos botones arrancar la simulacion, pararla, ejecutar un paso, etc. ˜ 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´asico de un microcontrolador: el PIC16F88. En un primer diseno Para ello es necesario seleccionarlo. Con el atajo de teclado P lograremos situar cualquier componente como se ve en la siguiente figura:

6

Primeros pasos con Proteus

Simplemente debemos teclear el nombre o parte del nombre del dispositivo buscado y nos ´ de uno de ellos el esquema gr´afico aparecer´a una lista de posibles candidatos y con la seleccion que lo define. ´ 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).

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

7

Para trazar un cable entre dos elementos simplemente aproximaremos el cursor hasta la patilla ´ izquierdo del raton ´ para trazar autom´aticamente el cable. correspondiente y pulsaremos el boton Si queremos que el cable recorra una figura 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.

8

Primeros pasos con Proteus

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

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

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

9

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.

10

Primeros pasos con Proteus

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

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

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

11

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

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

´ ´ Source⇒Build All. Editaremos el codigo deseado Y lo compilaremos mediante la opcion

12

Primeros pasos con Proteus

´ error de sintaxis aparecer´a la siguiente ventana inSi todo fue bien y no cometimos ningun dic´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 fichero ´ .HEX generado que tendr´a extension 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 variables, etc. Todo esto se selecciona en el menu´ Debug.

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.

Configuraci´on de Proteustm para usar el compilador PICC

14

1.5. Configuracion ´ 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:

´ 9.60) est´an Entre las opciones marcadas para el compilador (Version -ASMLIST. Genera un fichero de listado en ensamblador (.LST). ´ optimizada y optimizacion ´ global. –OPT=all. Compilacion -O %2. Especificamos el fichero de salida. -E %1.error. Especificamos el fichero ( %1.error) donde se escribir´an los mensajes de error. Este fichero lo deberemos visualizar para comprobar los errores. ´ para la depuracion. ´ -G. Le indicamos que queremos informacion

˜ Al crear o anadir el fichero fuente en C, hay que indicar en el campo Flags con el valor ´ --chip=16F88 que depender´a del microcontrolador para el que se compile el codigo.

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

15

´ el listado: Crearemos un nuevo fichero fuente segun 1

#include

2 3 4 5 6 7 8 9 10 11 12

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 definir. Para compilar lo haremos de la forma habitual. Si da un error gen´erico y no aparece en el directorio de trabajo el fichero p0.c.error 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 -O %2 -E %1.error -G --ASMLIST --DEBUGGER=pickit2 --OPT=all El fichero a incluir en el microcontrolador ser´a, si se desea, el *.hex que ser´a el empleado des´ en lenguaje C se deber´a emde el programa grabador (ICProg), pero si se requiere la depuracion plear el fichero *.cof. Con esto estaremos preparados para depurar nuestras aplicaciones escritas en C con Proteustm . ´ Si se incluye en el microcontrolador el fichero *.cod se ver´a a la vez el codigo C y el ensam´ se har´a a nivel ensamblador. blador generado aunque la depuracion

16

Configuraci´on de Proteustm para usar el compilador PICC

Cap´ıtulo 2 Pr´actica: Programador para los Microcontroladores PIC Si supiese que es lo que estoy haciendo, no lo llamar´ıa investigaci´on, ¿verdad? ∼ Albert Einstein ∼

2.1. Objetivo 1

Para poder trabajar con el microcontrolador PIC16F84A/PIC16F88 y con los procesadores de ˜ digitales dsPIC (segunda parte de la asignatura) necesitamos construirnos un programador. senal ´ se realiza en formato serie a trav´es de cinco l´ıneas: VCC, /MEl mecanismo de programacion ˜ de datos RB7 y la senal ˜ de reloj RB6. El micro permite la programacion ´ CLR(VPP), tierra, la senal 2 en circuito (ICSP: In Circuit Serial Programming ).

2.2. Esquema b´asico Listado de componentes 1 2

Bill Of Materials =================

3 4 5 6 7 8 9 10 11 12 13 14 15

QTY PART-REFS --- --------Resistors (1/4 W) --------2 R1,R2 4 R3,R7,R8,R13 1 R4 1 R5 2 R6,R15 3 R9,R11,R14 1 R10 1 R12

VALUE -----

PACKAGE -------

10k 4.7k 2.2k 680R 330R 1k 12k 100R

RES40 RES40 RES40 RES40 RES40 RES40 RES40 RES40

100pF 330nF /25V 100nF

CAP20 CAP20 CAP20

16 17 18 19 20 21

Capacitors ---------1 C1 1 C2 2 C3,C4

22 23 24

Integrated Circuits ------------------1 2

´ de 2 de marzo de 2009 Version Ver documento: In-Circuit Serial Programming for PIC16F8X FLASH MCUs

17

18 25 26

1 1

Esquema b´asico U1 U2

7805 74HC14

TO-220 DIL14

Transistors ----------4 Q1-Q3,Q5 1 Q4

BC547 BD136

TO92-100 TO126

Diodes -----1 D1 1 D2 1 D3

1N4007 OA91 LED Rojo

DO41 DO7 LED 5mm

Connectors ---------1 J1 1 J3 2 J4,J5

Conector DB25 Macho para PCB D-25-M-R Borna 2 vias atornillable para PCB 5 mm p` ıtch RJ45 hembra para PCB acodado RJ45-90

Miscelaneous -----------1 1 1 1

Latiguillo RJ45-RJ45 1m largo (cable de red) Z´ ocalo 14 pines DIP14 Z´ ocalo 18 pines DIP18 Tira de pines macho (100th pitch)

27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44

47 48 49 50

Esquema el´ectrico El esquema del programador a realizar emplea tan solo unos pocos componentes. Este programador es conocido como SETI-Prog y su esquema de conexionado se muestra en la figura: J3

D1 1 2

R5

1N4007

R1

TBLOCK-I2

680R

10k

Q4

Q1

BD136

BC547

J5

C P S

R6

C P S

D3

Q3

R3

330R

Vpp

V+5

R9

BC547 4.7k

COAX_POWER

Q2

U1 VI

C2 330nF

1k

C1

R10

R15

100pF

7805 1

VO

330R

12k

3

GND

46

2

45

C3

R4

100nF

2.2k

BC547

R2

D2

10k

Q5

R7

BC547

R8 4.7k

4.7k

D3 LED

D0

R11

U2:A 1

D2 2

1k

OA91

74HC14

J1 1 14 2 15 3 16 4 17 5 18 6 19 7 20 8 21 9 22 10 23 11 24 12 25 13 CONN-D25M

D0

ACK

R12

4 74HC14

D2

D4

DAT

3

100R

D1

D3

R13 4.7k

U2:B

D1

R14

6

CLK

74HC14

D6

BUSY

Vpp V+5 DAT CLK

1 2 3 4 5 6 7 8 RJ45

1k

D5

ACK

1 2 3 4 5 CONN-SIL5

U2:C 5

J4

J2

C4 100nF

Cap´ıtulo 2. Pr´actica: Programador para los Microcontroladores PIC Montaje La placa de circuito impreso queda como sigue: Cara de soldadura

Cara de componentes

Despu´es de un proceso de engrosado de pistas obtenemos la siguiente cara de soldadura: Cara de soldadura engrosada para su uso con la m´aquina fresadora CNC

19

20

Software

2.3. Software Para utilizar y verificar el programador necesitaremos el programa WinPIC800 (v3.61)3 o´ el programa WinPIC4 ´ del ProPIC2 como SETI-Prog y se modificar´a como En WinPIC800 salvaremos la configuracion sigue:

´ ser´a la siguiente: DataIn=!bsy VppOnOff=!D3 Con el software WinPIC la configuracion VddOnOff=D2 ClockOut=!D1 DataOut=!D0.

2.3.1. Nota ˜ ´ de la palabra de Al comienzo del programa ensamblador ser´a necesario anadir la definicion ´ del microcontrolador para evitarnos tener que definirlo con el software que vamos configuracion a emplear: ; Para el PIC16F84A __CONFIG _CP_OFF & _WDT_OFF & _XT_OSC & _PWRTE_ON

1 2

;Para el PIC16F88 ;Program Configuration Register 1 (Ojo: todo escrito en la misma linea!) __CONFIG _CONFIG1, _CP_OFF & _CCP1_RB0 & _DEBUG_OFF & _WRT_PROTECT_OFF & _CPD_OFF & _LVP_OFF & _BODEN_OFF & _MCLR_ON & _PWRTE_OFF & _WDT_OFF & _XT_OSC

1 2 3 4 5 6

;Program Configuration Register 2 __CONFIG _CONFIG2, _IESO_OFF & _FCMEN_OFF

7 8

Que nos indicara que no est´a protegido, que el perro guardi´an est´a desactivado, que seleccionamos el modo XT para el oscilador, y que el temporizador de arranque est´a desactivado (activo en baja)5 . Si el programa est´a escrito en lenguaje C, entonces: __CONFIG(WDTDIS & XT & UNPROTECT & PWRTDIS); // PIC16F84A

1

__CONFIG(WDTDIS & XT & UNPROTECT & PWRTDIS & CCPRB0 & DEBUGDIS & LVPDIS & BORDIS & MCLREN & FCMDIS & IESODIS); // PIC16F88

1 2 3

En algunos casos Proteus no har´a caso de esto y ser´a necesario comprobar mediante el Simulation ´ es la correcta. log que la palabra de configuracion 3

http://www.winpic800.com http://freenet-homepage.de/dl4yhf/winpicpr.html 5 Para el PIC16F88 indica algunas cosas m´as. 4

Related Documents

Proteus
May 2020 5
Proteus
May 2020 12
Proteus
June 2020 9
Proteus
May 2020 10
Proteus Vulgaris
June 2020 4
Manual Proteus
October 2019 10