Manual Proteus

Embed Size (px)

Citation preview

  • Curso de Robtica y aplicaciones a el Aula de Tecnologa

    IES Joan Mir Pgina 1

    Curso de Robtica y otras aplicaciones en el Aula de

    Tecnologa

    Pedro Alonso Sanz

    IES Joan Mir

    Enero 2009

  • Curso de Robtica y otras aplicaciones en el Aula de Tecnologa

    IES Joan Mir Pgina 2

    1.- MANEJO DEL LABORATORIO ELECTRNICO VIRTUAL PROTEUS. ............................ 4

    1.1.- ISIS (CAPTURA Y SIMULACIN DE CIRCUITOS ELECTRNICOS). ............................................. 4 1.1.1.- Introduccin. ............................................................................................................................. 4

    1.1.2.- Captura Electrnica: Entorno Grfico (ISIS) .............................................................................. 5

    1.1.3.- Depuracin de programas. ....................................................................................................... 9 1.2.- ARES (DISEO DE PLACAS). .............................................................................................. 17

    1.2.1.- Diseo de un esquema con ISIS. .............................................................................................. 17

    1.2.2.- Generacin del listado de conexiones Netlis to Ares. .......................................................... 21 1.2.2.1.- Entorno de Trabajo .......................................................................................................................... 22

    1.2.3.- Creacin del tamao de la placa de PCB. ............................................................................... 22

    1.2.4.- Posicionamiento de los componentes dentro de la placa. ...................................................... 25 1.2.4.1.- Posicionamiento Automtico. ......................................................................................................... 25 1.2.4.2.- Posicionamiento Manual. ................................................................................................................ 26

    1.2.5.- Rutado de la pistas. ................................................................................................................ 27 1.2.5.1.- Rutado Automtico. ........................................................................................................................ 28 1.2.5.2.- Rutado manual. ............................................................................................................................... 29

    1.3.- CREACIN DE SMBOLOS EN ISIS Y ENCAPSULADOS EN ARES. .......................................... 34 1.3.1.- Creacin de una biblioteca de encapsulados en ARES. ........................................................... 34

    1.3.2.- Creacin de un encapsulado en ARES. ................................................................................... 36

    1.3.3.- Creacin de una biblioteca de smbolos en ISIS. ..................................................................... 39

    1.3.4.- Creacin de un smbolo en ISIS. ............................................................................................. 41

    2.- PRINCIPIOS DE FUNCIONAMIENTO DE UN MICROCONTROLADOR PIC. ...................... 47

    2.1.- DIAGRAMA EN BLOQUES. ................................................................................................... 49 2.2.- MAPA DE MEMORIA. ........................................................................................................... 50

    2.2.1.- Memoria de Programa. .......................................................................................................... 50

    2.2.2.- Memoria de Datos. ................................................................................................................. 50

    3.- INICIACIN A LA PROGRAMACIN EN C EN UC PIC. ........................................................ 51

    3.1.- COMPILADOR CCS. ............................................................................................................... 51 3.1.1.- Introduccin. ........................................................................................................................... 51

    3.1.2.- Estructura de un programa. ................................................................................................... 51

    3.1.3.- Constantes. ............................................................................................................................. 53

    3.1.4.- Tipo de variables. .................................................................................................................... 54

    3.1.5.- Operadores. ............................................................................................................................ 55 a) Asignacin. ................................................................................................................................................ 55 b) Aritmticos. ............................................................................................................................................... 55 c) Relacionales. .............................................................................................................................................. 55 d) Lgicos. ...................................................................................................................................................... 55 e) De Bits. ...................................................................................................................................................... 56 f) Punteros. .................................................................................................................................................... 56

    3.1.6.- Funciones. ............................................................................................................................... 56 3.2.- MANEJO DE LAS DECLARACIONES DE CONTROL. ................................................................ 59

    3.2.1.- If-Else. .................................................................................................................................. 60

    3.2.2.- Switch-Case. ....................................................................................................................... 63

    3.2.3.- For. ........................................................................................................................................ 66

    3.2.4.- While. .................................................................................................................................... 70

    3.2.5.- Do-While. ............................................................................................................................. 72 3.3.- CREACIN DE FUNCIONES. ................................................................................................ 74 3.4.- MANEJO Y CREACIN DE DRIVER O LIBRERAS. .................................................................... 80

  • Curso de Robtica y otras aplicaciones en el Aula de Tecnologa

    IES Joan Mir Pgina 3

    4.- EJEMPLOS PRCTICOS. ......................................................................................................... 82

    4.1.- INTERFACE OPTOACOPLADA ENTRE DISPOSITIVOS DIGITALES Y ANALGICOS ...................... 82 4.1.1.- Control con Rels. ................................................................................................................... 82

    4.1.2.- Control con Optotransistores. ................................................................................................. 84

    4.1.3.- Control con Optotriac. ............................................................................................................ 86 4.2.- CONTROL DE UNA PANTALLA LCD. .................................................................................... 88

    4.2.1.- LCD_ejemplo1.c ...................................................................................................................... 91

    4.2.2.- LCD_ejemplo2.c ...................................................................................................................... 92

    4.2.3.- LCD_ejemplo3.c ...................................................................................................................... 93

    4.2.4.- LCD_ejemplo4.c ...................................................................................................................... 94

    4.2.5.- LCD_ejemplo5.c ...................................................................................................................... 95

    4.2.6.- LCD_ejemplo6.c ...................................................................................................................... 96

    4.2.7.- LCD_ejemplo7.c ...................................................................................................................... 97

    4.3.- DIGITALIZACIN DE UNA SEAL ANALGICA CON EL SISTEMA DE ADQUISICIN DE DATOS...... 99 4.3.1.- Conversin_A/D_D/A.c ......................................................................................................... 101

    4.3.2.- Conversin_A-D1.c ................................................................................................................ 104

    4.3.3.- Conversin_A-D2.c ............................................................................................................... 106

    4.3.4.- Conversin_A-D3.c ................................................................................................................ 107 4.4.- CONTROL DE VELOCIDAD Y SENTIDO DE GIRO DE MOTORES DE CORRIENTE CONTINUA. ...... 109

    4.4.1.- PWM1.c ................................................................................................................................ 110

    4.4.2.- PWM2.c ................................................................................................................................ 111

    4.4.3.- PWM3.c ................................................................................................................................ 115 4.5.- CONTROL DE UN SERVO DE POSICIN. ............................................................................. 117

    4.5.1.- Control_2_Servos_Posicin.c ................................................................................................ 118 4.6.- DISEO DE MANDOS TRANSMISORES Y RECEPTORES DE RADIO FRECUENCIA. ................... 123

    4.6.1.- Introduccin. ......................................................................................................................... 123 4.6.1.1.- Transmisin serie asncrona. ......................................................................................................... 123 4.6.1.2.- Modulacin en AM. ....................................................................................................................... 124 4.6.1.3.- Protocolo de Comunicaciones entre el Mando y el Receptor. ...................................................... 124

    4.6.2.- Ejemplo 1 (Transmisin Simple). ........................................................................................... 126

    4.6.3.- Ejemplo2 (Transmisin Compleja). ....................................................................................... 131

    4.6.4.- Apertura de una puerta. ....................................................................................................... 140

    4.7.- DISEO Y CREACIN DE UN ROBOT RASTREADOR Y COCHE TELEDIRIGIDO. ....................... 146

  • Curso de Robtica y otras aplicaciones en el Aula de Tecnologa

    IES Joan Mir Pgina 4

    Fabricacin de la Placa Creacin del

    Prototipo

    Desarrollo del software

    Pruebas del

    Prototipo Diseo esquemtico

    del prototipo

    Diseo de la

    Placa

    En caso de error en el prototipo se

    tiene que repetir el proceso

    En caso de error se depura hasta

    obtener los resultados adecuados

    Fabricacin de la Placa

    Desarrollo del software

    Fabricacin del

    Prototipo Diseo esquemtico

    del prototipo

    Diseo de

    la Placa Simulacin del

    Circuito

    1.- Manejo del laboratorio electrnico virtual Proteus.

    1.1.- ISIS (Captura y Simulacin de circuitos electrnicos).

    1.1.1.- Introduccin.

    El laboratorio virtual electrnico PROTEUS VSM de LABCENTER ELECTRONICS, nos

    permite simular circuitos electrnicos analgicos/ digitales y microprocesados. Es capaz de

    realizar simultneamente una simulacin hardware y software (Lenguaje de bajo y alto nivel

    Ensamblador y C respectivamente) en un mismo entorno grfico. Tambin enlaza con una

    herramienta que nos permite desarrollar las placas para realizar los prototipos.

    Para ello suministra tres potentes herramientas:

    ISIS (Diseo Grfico)

    VSM(Virtual System Modelling) Simulacin de Componentes.

    ARES (Diseo de Placas).

    Las herramientas tradicionales de diseo seguan el siguiente proceso:

    Con las herramientas de diseo tradicionales, el desarrollo del software y la comprobacin del

    prototipo, no puede realizarse hasta que este no se desarrolla. Esto puede suponer semanas

    de retraso. Si se localiza un error hardware, la totalidad del proceso se debe repetir.

    Usando Proteus VSM, el desarrollo del software puede comenzar tan pronto como el diseo

    esquemtico este acabado y la combinacin del hardware y el software nos permite testear el

    prototipo y ver si funciona.

  • Curso de Robtica y otras aplicaciones en el Aula de Tecnologa

    IES Joan Mir Pgina 5

    1.1.2.- Captura Electrnica: Entorno Grfico (ISIS)

    Isis es un programa de diseo electrnico que permite realizar esquemas que pueden

    simularse en el entorno VMS y/o pasarlos a un circuito impreso a travs del entorno de ARES.

    Posee una coleccin de bibliotecas de componentes. Permite crear nuevos componentes y su

    modelizacin para la simulacin.

    Sin entrar profundamente en este entorno (Requerira un libro solo para el entorno de ISIS), se

    va a explicar cmo dibujar cualquier circuito electrnico. El programa de ISIS posee un

    entorno de trabajo formado por una ventana de trabajo y barras de herramientas.

    Para dibujar el circuito electrnico se deben primero seleccionar el modo componentes

    Component. y seleccionar el botn P de bsqueda de componentes Pick Devices en las

    bibliotecas.

    Comandos de

    Fichero e

    Impresin

    Comandos de

    Visualizacin

    Barra de

    Mens

    Comandos

    de Edicin

    Ventana de Edicin

    Herramientas

    de Diseo

    Ventana de componentes y

    Biblioteca

    Modos de Trabajo

    Herramientas de

    Diseo Electrnico

    Comandos de dibujo

    Comandos de rotacin

    y reflexin

    Barra de simulacin

    Barra de estado

    Ventana de

    Trabajo

    Component.

    Pick Devices

  • Curso de Robtica y otras aplicaciones en el Aula de Tecnologa

    IES Joan Mir Pgina 6

    Ventana de Edicin

    Se abre un men asociado a la bsqueda de componentes. Se busca el componente de dos

    maneras diferentes por categoras o poniendo el nombre o palabra clave en la ventana

    Keywords (Ejemplo: DAC0808_JOAN)

    Al localizar el componente adecuado se realiza una doble pulsacin y

    aparecer en la columna de dispositivos DEVICE. Se puede realizar esta

    accin tantas veces como componentes se quiera incorporar al esquema. Una

    vez finalizado el proceso se cierra la ventana de

    bsqueda de componentes.

    Antes de situar los componentes en la Ventana de trabajo se pude

    comprobar la orientacin en la Ventana de Edicin y rotarlos con los

    Comandos de Edicin.

    Una vez seleccionado el componente en

    la Columna de Dispositivos se pincha sobre la

    Ventana de Trabajo y este se posiciona. Si pulsamos ms veces sobre dicha ventana se

    insertaran componentes con una referencia automtica. (Tiene que

    estar activa para ello seleccionar TOOLS Real Time Anotation).

    Si pasamos el ratn por encima del componente, aparece una

    X en la patilla del componente, esto nos indica que podemos tirar hilo

    hasta la siguiente pata de otro o el mismo componente.

    Permite localiza los

    componentes por nombre

    Muestra el resultado de la bsqueda de los

    componentes a que bibliotecas pertenecen y

    una descripcin breve de cada uno de ellos

    Permite localiza los

    componentes por categora,

    clase y fabricante

    Represente el smbolo del

    Componente en ISIS y si

    est simulado

    Represente el encapsulado

    del Componente en ARES

    es decir su encapsulado

    Comandos de Edicin

    Columna de Dispositivos

    DEVICE

    Recorrido del Ratn

  • Curso de Robtica y otras aplicaciones en el Aula de Tecnologa

    IES Joan Mir Pgina 7

    Una vez situado los componentes en la Ventana de Trabajo se pueden mover, rotar,

    copiar, borrar. Para ello se seleccionan con el botn derecho del ratn (Se ponen en rojo) y se

    seleccionan los Comandos de Edicin en Herramientas de Grupo Comandos de

    rotacin y reflexin para un solo elemento.

    Cada componente electrnico se puede editar, se selecciona con el botn derecho del ratn

    (Se pone en rojo) y con el botn izquierdo se abre.

    Rotar un conjunto de componentes

    Se puede cambiar su referencia y valor Se puede ocultar referencias,

    Valores, etc.

    Se puede cambiar de encapsulado

    Se puede excluir de la simulacin Se puede excluir del diseo de la placa

    Rotar un solo componente

  • Curso de Robtica y otras aplicaciones en el Aula de Tecnologa

    IES Joan Mir Pgina 8

    Para la unin de diferentes componentes Sin Cables se pueden utilizar el Icono Inter-sheet-

    Terminal de la caja de Herramientas de Diseo. Este abrir una ventana donde

    aparecen los diferentes terminales.

    Si queremos unir cables en forma de bus se utiliza el Icono de la caja de Herramientas de

    Diseo y etiquetarlos con el icono del Modo de Trabajo .

    Terminal Bidireccional

    Terminal por defecto

    Terminal de masa

    Terminal de salida

    Terminal de Alimentacin

    Terminal de entrada

    Terminal bus

    Etiquetado de Cable Etiquetado de bus

    Terminal de Alimentacin

    Terminal de masa Terminal de salida

    Terminal de entrada

  • Curso de Robtica y otras aplicaciones en el Aula de Tecnologa

    IES Joan Mir Pgina 9

    Se pueden introducir Generadores de seal, Voltmetros, Osciloscopios, etc. Utilizando los

    iconos de las Herramientas de Diseo.

    1.1.3.- Depuracin de programas.

    Una de las caractersticas importantes del PROTEUS

    VSM es la capacidad de depurar programas fuentes de

    distintos lenguajes de programacin (Lenguajes

    ensamblador, C , Basic, etc). La herramienta que se

    utiliza est en la barra de tareas llamada Source

    Inter-sheet-Terminal (Terminales)

    Device Pin (Patillas de Componentes)

    Simulation Graph (Simulacin Grfica) Tape Recorder (Grabadora)

    Generator (Generador) Voltaje Probe (Sondas de Tensin)

    Current Probe (Sondas de Corriente) Virtual Instruments (Instrumentos Virtuales)

    Osciloscopio

    Voltmetro (CA) Generador de Tensin Sinusoidal

  • Curso de Robtica y otras aplicaciones en el Aula de Tecnologa

    IES Joan Mir Pgina 10

    Con la opcin aadir o remover ficheros fuentes Add/Remove Source files introducimos los

    fichero fuentes que queremos aadir a nuestro hardware y elegimos la herramienta de

    compilacin (Programa que traduce un lenguaje de programacin a cdigo Binario)

    Con la opcin Define Code Generation Tools podemos introducir nuevos compiladores y

    depuradores de programas.

    Herramienta de Compilacin

    Ficheros Fuente

    Cambiar el Fichero Fuente

    Nuevos Ficheros Fuente Quitar Ficheros Fuente

    Se introduce el Compilador C de

    CCSC para uC PIC dentro del

    Proteus

    Generador de Ficheros

    Se introduce el Depurador de

    Programas en el Proteus

  • Curso de Robtica y otras aplicaciones en el Aula de Tecnologa

    IES Joan Mir Pgina 11

    Con la opcin Setup External Text Editor podemos elegir el Editor de Texto.

    La opcin Build All compila el programa fuente ejecuta el programa que traduce un lenguaje

    de programacin a cdigo Binario.

    Si hemos utilizado el editor de texto del Compilador CCSC este nos permite depurar el

    programa y ver los errores. Abrimos el Fichero Dec_Hex_Bin.c y ejecutamos el Icono

    Compile

    Al compilar se genera varios ficheros (ERR, HEX, SYM, LST, COF, PJT, TREE, STA) . El fichero con

    Dec_Hex_Bin.COF, nos permite depurar el Programa en el Proteus y el fichero

    Dec_Hex_Bin.HEX es el cdigo binario que se introduce de forma real al uC PIC.

    Editor de texto del Compilador CCSC Editor de texto del Proteus

    Compila un fichero no un proyecto

  • Curso de Robtica y otras aplicaciones en el Aula de Tecnologa

    IES Joan Mir Pgina 12

    La forma de introducir el fichero Dec_Hex_Bin.COF en un microcontrolador uC PIC

    es seleccionar lo con el botn derecho del ratn (El uC PIC se pondr en color rojo) y pulsar el

    botn izquierdo. Se abrir una ventana contextual e introduciremos el fichero.COF.

    Una vez cargado del microcontrolador con el programa fuente Dec_Hex_Bin.COF , se puede

    proceder a la simulacin del circuito empleando la Barra de Simulacin.

    Pulsar con el botn derecho del ratn y

    despus con el botn izquierdo

    Pulsar con el botn Izquierdo

    del ratn y buscar el

    fichero.COF deseado

    La frecuencia del reloj se fija

    aqu independientemente

    del hardware que se utilice

    externamente (Cristal de

    Cuarzo)

    Marcha Paso a Paso Pausa Stop

  • Curso de Robtica y otras aplicaciones en el Aula de Tecnologa

    IES Joan Mir Pgina 13

    Con la opcin Marcha la simulacin se inicia (el botn se vuelve verde) y funciona en modo

    continuo. La simulacin no es en tiempo real.

    Con la opcin Stop la simulacin se para.

    Con la opcin Paso a Paso permite trabajar en tramos de tiempo predefinidos, permitiendo

    utilizar herramientas de depuracin. Esta opcin est asociada a la configuracin de

    Animacin, que est en la Barra de Mens en SYSTEM Set Animation Options.

    La opcin SPICE Options define las caractersticas de simulacin del

    sistema. Son parmetros que podemos manipular para obtener ms

    precisin en la simulacin (No se aconseja tocar si se desconocen)

    Si disminuimos los parmetros RELTOL, GMIN y PIVTOL el sistema

    converge antes, pero es menos preciso.

    Aqu , ya se puede simular (Animar) un sistema con microcontroladores .Lo ms interesante de una simulacin es la utilizacin de las herramientas de depuracin que contiene este sistema de desarrollo.

    A estas herramientas se accede pulsando primero Pausa de la Barra de Tareas y despus Debug de la Barra de Mens.

    Nmero de veces que la pantalla

    de ISIS se refresca en 1 Segundo

    Tiempo de simulacin por cada uno

    de los Frames (Suele ser el valor

    inverso a Frames per Second)

    Incremento de tiempo que se

    desea cada vez que se pulsa la

    tecla Paso a Paso

    Si los valores en la simulacin son inferiores a

    estos valores, no se visualizan los efectos de

    Animation Options

    Se muestra las corrientes y

    tensiones de las puntas de

    prueba que tengamos en el

    circuito

    Se muestra en las patillas de

    circuitos de Lgica Digital

    unos cuadrito de color

    rojo 1 o azul 0

    Los cables de los

    esquemas toman

    diferentes colores

    en funcin de la

    intensidad que

    pasen por ellos.

    Se muestran en los cables de los

    esquemas el sentido de las Intensidades.

  • Curso de Robtica y otras aplicaciones en el Aula de Tecnologa

    IES Joan Mir Pgina 14

    La ventana Watch Window es la ms

    verstil se pueden aadir variables propias y

    del uC y visualizarlas en plena simulacin.

    Barra de Simulacin

    Ejecucin de un programa sin puntos de ruptura.

    Ejecucin de un programa hasta un tiempo determinado

    Herramientas de Ejecucin de

    un programa Paso a Paso

    Visualizacin de las variables creadas por el usuario y las

    propias del microcontrolador, con la simulacin en marcha.

    Visualizacin de los registros del uC utilizando las

    herramientas de ejecucin paso a paso.

    Visualizacin de las variables del sistema mientras se estn

    utilizando las herramientas de ejecucin paso a paso.

    Visualizacin del programa fuente para poder utilizar las

    herramientas de ejecucin paso a paso.

    Visualizacin de la memoria de datos del uC utilizando las

    herramientas de ejecucin paso a paso.

    Visualizacin de la memoria

    EPROM del uC utilizando las

    herramientas de ejecucin

    paso a paso.

    Visualizacin de la memoria de

    Programa del uC utilizando las

    herramientas de ejecucin paso

    a paso.

    Visualizacin de la memoria

    Pila del uC utilizando las

    herramientas de ejecucin

    paso a paso.

  • Curso de Robtica y otras aplicaciones en el Aula de Tecnologa

    IES Joan Mir Pgina 15

    Si se pincha con el botn derecho del ratn sobre la ventana Watch Window aparece un

    men contextual siguiente:

    Permite aadir variables del uC PIC

    Permite aadir variables propias

    Permite poner puntos de ruptura al programa

    en funcin de determinadas variables

    Permite seleccionar todas las variables

    Buscar variables

    Indica el Tipo de variables (Tiene que estar

    seleccionada la variable)

    Muestra el formato de la variables

    Binario, Decimal, Hexadecimal, etc.

    (Tiene que estar seleccionada la

    variable)

  • Curso de Robtica y otras aplicaciones en el Aula de Tecnologa

    IES Joan Mir Pgina 16

    Si queremos ejecutar un programa en modo depuracin, tenemos que realizar los siguientes

    pasos:

    1.- Crear una carpeta para contener el hardware y el software Representacin en

    Binario, BCD, Hexadecimal

    2.- Crear un Sistema Microprocesado con PIC en la ventana de trabajo de ISIS

    3.- Generamos un programa en C Dec_Hex_Bin.c desde Source ADD/Remove

    Source filesNew.

    4.- Compilamos el Programa desde CCSC. (Se genera el fichero. COF

    Dec_Hex_Bin.COF)

    5.- Introducimos el fichero.COF Dec_Hex_Bin.COF dentro del uC PIC.

    6.- Ejecutamos Paso a Paso Pause de la Barra de Simulacin.

    7.- Pinchamos Debug y abrimos las ventanas siguientes:

    Watch Windows

    PIC CPU Source Code - U1

    PIC CPU Variables - U1

    PIC CPU Registers - U1

    8.- Ejecutamos paso a paso el programa desde PIC CPU Source Code - U1 utilizando las

    Herramientas de Ejecucin y visualizamos como

    varan las variables y el hardware. Es conveniente

    poner puntos de ruptura y ejecutar de golpe el programa hasta dicho punto.

    El triangulo indica la instruccin que se va a ejecutar

  • Curso de Robtica y otras aplicaciones en el Aula de Tecnologa

    IES Joan Mir Pgina 17

    1.2.- Ares (Diseo de Placas).

    En este manual de ARES se mostrar los pasos bsicos para realizar el rutado de una

    placa PCB, no se pretende ensear de forma precisa el manejo del programa pero s las

    funciones principales del mismo. Pasos a seguir:

    1.2.1.- Diseo de un esquema con ISIS. Buscar componentes que tengan el encapsulado o huella (PCB)

    Simulacin en modo continuo, no

    permite ver las ventanas de depuracin

    a excepcin de Watch Window

    Ejecuta una instruccin,

    subrutina funcin de

    golpe

    Permite ejecutar una instruccin. Si es

    una subrutina o una funcin entra

    dentro de ella.

    Trabaja de modo continuo hasta que

    encuentra un retorno de cualquier

    subrutina o funcin y sale de ella.

    Trabaja de modo continuo

    hasta que encuentra un

    punto de ruptura.

    Habilita o deshabilita

    los punto de ruptura.

    Encapsulado(PCB)

    Componente a buscar

  • Curso de Robtica y otras aplicaciones en el Aula de Tecnologa

    IES Joan Mir Pgina 18

    Dibujamos el esquema.

    Antes de realizar la placa comprobar si algn componente tiene pines o patillas ocultas. Los

    Circuitos Integrados ocultan los pines de masa GND, VSS y alimentacin VCC , VDD.

    Editamos el Componente

    Si est la pestaa Hidden Pins

    indica que existen patillas

    ocultas

  • Curso de Robtica y otras aplicaciones en el Aula de Tecnologa

    IES Joan Mir Pgina 19

    Vemos que patillas estn ocultas pinchando

    sobre las pestana Hidden Pin

    Para que estas patillas GND VCC se conecten en un circuito real, se tienen que

    etiquetar los cables donde queremos unir. Seleccionamos de la barra Modos de Trabajo el

    icono etiquetado de cable Wire Label

    Buscamos una Masa Tierra GROUND. Seleccionamos el cable que est unido a ella con el

    botn derecho del ratn (Se pone rojo) y pulsamos el botn izquierdo. Se abre un men

    contextual y escribimos GND.

    E

    Patillas ocultas

    Modos de Trabajo

    Etiquetado de Cable

    Wire Label

    Buscamos una masa GND y seleccionamos el cable con el botn derecho del ratn.

    Se abre el men contextual y

    escribimos GND.

  • Curso de Robtica y otras aplicaciones en el Aula de Tecnologa

    IES Joan Mir Pgina 20

    Buscamos el positivo de la Pila de 5V. Seleccionamos el cable que est unido a ella con el

    botn derecho del ratn (Se pone rojo) y pulsamos el botn izquierdo. Se abre un men

    contextual y escribimos VCC.

    El resultado es el siguiente:

    Buscamos el positivo de la pila de 5V y seleccionamos el cable con el botn derecho

    del ratn.

    Se abre el men contextual y

    escribimos VCC.

    Nota: Cuando etiquetamos con VCC el cable la simulacin no funciona

    Todos los componentes tienen que

    tener nombre (Ejemplo: R1, E2, etc ),

    si no lo tuvieran no apareceran en el

    diseo de la placa.

  • Curso de Robtica y otras aplicaciones en el Aula de Tecnologa

    IES Joan Mir Pgina 21

    1.2.2.- Generacin del listado de conexiones Netlis to Ares. Pulsamos el icono de Herramientas de Diseo ARES

    Si algn componente no tuviera mscara te pedira que la insertaras, aparece un men

    contextual:

    Despus de asignar las mscaras a los componentes que no las tenan aparece la Aplicacin

    ARES

    Herramientas de Diseo

    Herramienta de diseo de placas PCB

    ARES

    Seleccionamos el Encapsulado Dentro de una Biblioteca de

    componentes

    Pulsamos con el botn izquierdo del

    ratn y aparecer aqu

    Componente sin encapsulado

    Aparecen todos los componentes

    que tienen encapsulado para el

    diseo de placas

  • Curso de Robtica y otras aplicaciones en el Aula de Tecnologa

    IES Joan Mir Pgina 22

    1.2.2.1.- Entorno de Trabajo

    1.2.3.- Creacin del tamao de la placa de PCB. Una vez situados los componentes en el Selector de objetos Object Selector con las

    Herramientas de diseo grfico 2D Graphics seleccionamos la cuadrado 2D Graphics box

    Barra de Mens

    Comandos de archivos y

    de Impresin

    File/Print Commands Comandos de Visualizacin

    Display Commands

    Comandos de Edicin

    Editing Commands Herramientas de Diseo

    Layout Tools

    Herramientas de Posicionamiento y Rutado

    Placing & Routing

    Herramientas de emplazamientos de PAD

    Pad Placement

    Herramientas de diseo grfico

    2D Graphics

    Herramientas de Rotacin y Reflexin

    Rotation & Reflection

    Barra de Estado Test de errores

    Selector de Caras

    Layer Selector

    Ventana de Edicin

    Selector de Objetos

    Object Selector

    Ventana de

    Trabajo

    Herramientas de diseo grfico

    2D Graphics

    Cuadrado

    2D Graphics box

  • Curso de Robtica y otras aplicaciones en el Aula de Tecnologa

    IES Joan Mir Pgina 23

    Con el Selector de Caras Layer Selector seleccionamos borde de placa Board Edge

    Con el ratn nos situamos en la Ventana de Trabajo y dibujamos el tamao de la placa.

    Ponemos las cotas y los agujeros para sujetar la placa a un soporte.

    Para poner los agujeros para sujetar la placa a un soporte buscamos en Herramientas de

    diseo grfico 2D Graphics seleccionamos el circulo 2D Graphics circle

    Con el Selector de Caras Layer Selector seleccionamos borde de placa Board Edge

    Con el ratn nos situamos en la Ventana de Trabajo y dibujamos el circulo.

    Selector de Caras

    Layer Selector

    Borde de placa

    Board Edge

    Borde de placa

    Board Edge

    Agujeros para

    sujetar la placa

    a un soporte

    Cotas

    Herramientas de diseo grfico

    2D Graphics

    Cuadrado

    2D Graphics circle

    Selector de Caras

    Layer Selector

    Borde de placa

    Board Edge

  • Curso de Robtica y otras aplicaciones en el Aula de Tecnologa

    IES Joan Mir Pgina 24

    Para poner las Cotas, elegiremos si queremos trabajar en pulgadas o en milmetros. Si

    queremos milmetros vamos a los Comandos de Visualizacin y pinchamos sobre el icono

    Select Metric/ Imperial Coordinates

    Se visualiza en la parte baja derecha de la Ventana de trabajo.

    Estas coordenadas X/Y son con respecto a el punto de origen que est en

    el centro de la Ventana de trabajo

    Si queremos resolucin a la hora de dibujar

    (Pistas, Cotas, Tamaos de Placa, etc.), tenemos que

    cambiarla, para ello vamos a la Barra de Mens y

    seleccionamos VIEW y cambiamos dicha resolucin.

    Una vez realizado los ajustes adecuados, procedemos a poner las cotas. Para ello,

    buscamos en Herramientas de diseo grfico 2D Graphics y seleccionamos Cotas

    Dimension object placement

    Con el Selector de Caras Layer Selector seleccionamos borde de placa Board Edge

    Con el ratn nos situamos en la Ventana de Trabajo y dibujamos las Cotas.

    Selector de Caras

    Layer Selector

    Borde de placa

    Board Edge

    Herramientas de diseo grfico

    2D Graphics Cotas

    Dinension object placement

    Comandos de Visualizacin

    Display Commands

    Milmetros/Pulgadas

    Select Metric/ Imperial Coordinates

    Coordenadas X/Y en mm

  • Curso de Robtica y otras aplicaciones en el Aula de Tecnologa

    IES Joan Mir Pgina 25

    1.2.4.- Posicionamiento de los componentes dentro de la placa.

    Existen dos posibilidades a la hora de situar los componentes.

    1.2.4.1.- Posicionamiento Automtico. Seleccionar en las Herramientas de Diseo Layout Tools el icono Posicionamiento

    Automtico dentro de la Placa Autoplace the components onto the board.

    Se abre este men contextual marcamos las reglas de diseo y seleccionamos los

    componentes que queremos posicionar de forma automtica.

    No obstante se puede posicionar determinados componentes de forma manual y el resto de

    forma automtica.

    Herramientas de Diseo

    Layout Tools

    Posicionamiento Automtico dentro de la Placa

    Autoplace the components onto the board

    Marcamos que componentes queremos

    posicionar de forma automtica

    Reglas de Diseo y Peso

    Restaurar valores

  • Curso de Robtica y otras aplicaciones en el Aula de Tecnologa

    IES Joan Mir Pgina 26

    1.2.4.2.- Posicionamiento Manual. Seleccionamos el icono de Edicin y situacin de componentes Component

    placement and editing de Herramientas de Posicionamiento y Rutado Placing & Routing y

    aparecen los componentes de diseo de la placa en ISIS.

    Situamos los componentes en la placa, para ello posicionamos el ratn sobre la placa y

    pulsamos el botn izquierdo del ratn y el componente que este marcado en azul en el

    Selector de Objetos Object Selector se insertara en la placa.

    Componentes de diseo

    de la placa en ISIS

    Herramientas de Posicionamiento y Rutado

    Placing & Routing

    Edicin y situacin de componentes

    Component placement and editing

    Selector de Objetos

    Object Selector

    Uniones entre componentes

    Netlis

  • Curso de Robtica y otras aplicaciones en el Aula de Tecnologa

    IES Joan Mir Pgina 27

    Los componentes puestos en la placa se pueden mover, cortar, copiar, etc con los

    Comandos de Edicin (Conjunto de componentes) y las Herramientas de Rotacin y Reflexin

    (Un solo componente). Se seleccionan el los componentes con el botn derecho del ratn

    (Se ponen en rojo) y despus se selecciona la herramienta que queremos utilizar (Rotar,

    mover, etc).

    1.2.5.- Rutado de la pistas. Existen dos posibilidades a la hora de realizar el ruteado. Pero antes de rutar, podemos marcar

    las estrategias de diseo. Para realizarlo nos vamos a la Barra de Men y seleccionamos

    System Set_Strategies

    Marcamos las estrategias para pistas de potencia y para pistas de seal.

    Comandos de Edicin

    Editing Commands

    Herramientas de Rotacin y Reflexin

    Rotation & Reflection

    Rotacin a Derecha de un componente (90)

    Rotacin a Izquierda de un componente (-90)

    Reflexin a Derechas de un componente

    Reflexin a Izquierda de un componente

    Rotacin de un conjunto de componente Mover un conjunto de componente

    Copiar un conjunto de componente Borrar un conjunto de componente

    Deshacer o rehacer operaciones realizadas

    Pistas de Potencia

    Optimizar las

    esquinas

    Tcticas de rutado

    Tipo de Vas

    Normales

    Ciegas Superiores

    Ciegas Inferiores

    Ocultas

    Reglas de diseo

    Distancia mnima entre PADs .

    Distancia mnima entre PAD y Pista .

    Distancia mnima entre Pista .

    Distancia mnima a Grficos.

    Distancia mnima al Borde de la Placa o

    Ranuras.

    Tamao de

    las Pistas

    Tamao de

    las Vas

    Tipo de

    prioridad

    Tamao de

    las Vas

    Tipo cuello

    Pistas

    Horizontales

    y Verticales.

    Se trazan

    por las

    Capas

    Superiores

  • Curso de Robtica y otras aplicaciones en el Aula de Tecnologa

    IES Joan Mir Pgina 28

    1.2.5.1.- Rutado Automtico. Seleccionar en las Herramientas de Diseo Layout Tools el icono Diseo automtico de

    pistas Autorouter the conections specified by de ratsnest.

    Se abre este men contextual marcamos las reglas de diseo y seleccionamos los

    componentes que queremos posicionar de forma automtica.

    Pistas de Seal

    Pistas

    Horizontales

    y Verticales.

    Se trazan

    por las

    Capas

    Inferiores

    Herramientas de Diseo

    Layout Tools

    Diseo automtico de pistas especificadas por las conexiones

    Autorouter the conections specified by de ratsnest

    Opciones de Rutado

    Permiso de rutado

    Permiso de Ordenamiento

    Proteccin manual de las pistas

    trazadas manualmente

    Son las estrategias de la Barra de

    Men seleccionando System y

    Set_Strategies

  • Curso de Robtica y otras aplicaciones en el Aula de Tecnologa

    IES Joan Mir Pgina 29

    El diseo quedara:

    1.2.5.2.- Rutado manual. Para el rutado manual tenemos las Herramientas de Posicionamiento y Rutado Placing &

    Routing

    Edicin y situacin de componentes

    Component placement and editing

    (Componentes del Diseo)

    Edicin y situacin de las mascaras

    Package placement and editing

    (Nos permite editar los encapsulados y

    aadir otros tipos de encapsulados

    que no son del proyecto).

    (Abre el director de Biblioteca de

    encapsulados)

    Selecciona el Tipo de Pistas

    Track placement and editing

    Selecciona el Tipo de Vas

    Via placement and editing

    Planos de Masa o Alimentacin

    Zone placement and editing

    Herramientas de Posicionamiento Placing & Routing

  • Curso de Robtica y otras aplicaciones en el Aula de Tecnologa

    IES Joan Mir Pgina 30

    Si queremos tirar pistas por la cara de abajo de la placa procedemos de la siguiente manera:

    Seleccionamos el Tipo de Pistas Track placement and editing

    Con el Selector de Caras Layer Selector seleccionamos pistas de tipo Bottom Cooper

    Con el ratn nos situamos en la Ventana de Trabajo y dibujamos la pista de una patilla a otra

    siguiendo las uniones entre componentes Netlis.

    Selector de Caras

    Layer Selector

    Tipo de Pista

    Botton Cooper

    Selecciona el Tipo de Pistas

    Track placement and editing

    Herramientas de Posicionamiento Placing & Routing

  • Curso de Robtica y otras aplicaciones en el Aula de Tecnologa

    IES Joan Mir Pgina 31

    Si queremos tirar pistas por la cara de abajo, pasar por una va y tirar pistas por la capa de

    arriba procedemos de la siguiente manera:

    Seleccionamos el Tipo de Pistas Track placement and editing

    Con el Selector de Caras Layer Selector seleccionamos pistas de tipo Bottom Cooper

    Con el ratn nos situamos en la Ventana de Trabajo y dibujamos la pista Bottom Cooper de

    una patilla a otra siguiendo las uniones entre componentes Netlis, pulsas dos veces con el

    botn izquierdo del ratn segn estas trazando la pista, sale una VA y las pistas pasan a ser

    Top Cooper, seguimos trazando la pista y si pulsas otras dos veces con el botn izquierdo del

    ratn sale una VA y las pistas pasan a ser Bottom Cooper.

    Otra forma ms fcil es poner VA y trazar las pistas con Bottom Top

    Cooper .

    Selector de Caras

    Layer Selector

    Tipo de Pista

    Bottom

    Cooper

    Selecciona el Tipo de Pistas

    Track placement and editing

    Pista Bottom Cooper

    Pista Bottom Cooper

    VIA

    Selecciona el Tipo de Vias

    Via placement and editing

    Tamao de la VIA

    Herramientas de Posicionamiento Placing & Routing

  • Curso de Robtica y otras aplicaciones en el Aula de Tecnologa

    IES Joan Mir Pgina 32

    Si queremos que una determinada zona de una cara sea un plano de masa o alimentacin

    podemos utilizar Zone placement and editing de las Herramientas de Posicionamiento y

    Rutado Placing & Routing

    Con el Selector de Caras Layer Selector seleccionamos pistas de tipo Bottom Cooper

    Con el ratn nos situamos en la Ventana de Trabajo y dibujamos la Zona que queremos de

    cobre. Aparece un men contextual donde decimos tamao de la zona de cobre, Zonas de

    clareo, etc.

    La placa queda:

    Planos de Masa o Alimentacin

    Zone placement and editing

    Herramientas de Posicionamiento Placing & Routing

    Tipo de Zona

    Top Cooper

    Selector de Caras

    Layer Selector

    Clareo

    Tamao de las Zona

    de Cobre

  • Curso de Robtica y otras aplicaciones en el Aula de Tecnologa

    IES Joan Mir Pgina 33

    Si queremos cambiar el tamao o la forma de los PAD de un determinado componente

    utilizar herramientas de emplazamientos de PAD Pad Placement

    Seleccionamos el tipo de PAD.

    Pinchamos el PAD de un componente de nuestro circuito y este se sustituye.

    PAD Redondo

    Herramientas de emplazamientos de PAD

    Pad Placement

    PAD Cuadrado

    PAD tipo DIL

    Tamao del PAP

    Tipo de PAP

    Tamao del PAP S50-25

    Tamao del PAP S90-50

  • Curso de Robtica y otras aplicaciones en el Aula de Tecnologa

    IES Joan Mir Pgina 34

    Utilizando las herramientas de diseo de placas que nos proporciona ARES tenemos como

    resultado el siguiente circuito:

    1.3.- Creacin de smbolos en ISIS y encapsulados en ARES.

    1.3.1.- Creacin de una biblioteca de encapsulados en ARES.

    Para crear una Biblioteca propia en ARES, se deben primero seleccionar el modo de edicin y

    situacin de componentes Package placement and editing. y seleccionar el botn L

    de manejo de Bibliotecas Manage Libraries.

    Se abre un men contextual, donde podemos crearnos nuestra propia Biblioteca, aadir

    encapsulados de otra Biblioteca, borrar encapsulados, etc.

    Herramientas de Posicionamiento y Rutado

    Placing & Routing

    Edicin y situacin de los Encapsulados

    Package placement and editing

    Manejo de Bibliotecas

    Manage Libraries

  • Curso de Robtica y otras aplicaciones en el Aula de Tecnologa

    IES Joan Mir Pgina 35

    Cuando pulsamos Create Library tenemos que dar un nombre a la biblioteca

    Robtica_ARES y donde queremos crear la biblioteca C:\Archivos de Programa\Labcenter

    Electronic\Proteus 6 Professional\Library.

    Pulsamos OK y la biblioteca se crea. En la biblioteca nueva Robtica_ARES, podemos

    copiar componentes CONN-DIL8 de otras bibliotecas CONNECTORS. Seleccionamos el

    encapsulado y damos al icono de copiar Copy Items

    Creacin de una Biblioteca

    Nos pedir un nmero

    mximo de Encapsulados.

    Mximo 4000

  • Curso de Robtica y otras aplicaciones en el Aula de Tecnologa

    IES Joan Mir Pgina 36

    1.3.2.- Creacin de un encapsulado en ARES.

    a) Dibujamos el componente sin PAD.

    Abrimos el ARES y seleccionamos Herramientas de diseo grfico 2D Graphics.

    Con el Selector de Caras Layer Selector seleccionamos borde de encapsulado Top Silk y

    dibujamos el encapsulado.

    Biblioteca

    Robtica_ARES

    Confirmacin

    de copia

    Herramientas de diseo grfico

    2D Graphics

    Selector de Caras

    Layer Selector

    Borde de Encapsulado

    Top Silk

  • Curso de Robtica y otras aplicaciones en el Aula de Tecnologa

    IES Joan Mir Pgina 37

    b) Le aadimos los PAD.

    Seleccionamos PAD Redondo de las Herramientas de emplazamiento de PAD

    Pad Placement los insertamos en el encapsulado dibujado.

    c) Editamos el PAD (Poner un nmero)

    Seleccionamos el PAD con el botn derecho del ratn del ratn El PAD se pone blanco y

    pulsamos el izquierdo. Numeramos el PAP U con 1.

    d) Hacer el encapsulado y almacenarlo.

    Seleccionamos el encapsulado con el botn derecho del ratn (se pone en blanco), pinchamos

    sobre el icono de realizar un encapsulado Make Package de los Comandos de edicin

    Herramientas de emplazamientos de PAD

    Pad Placement

    PAD Redondo

    Tamao del PAP

    Numeramos el PAP

    Comandos de Edicin

    Editing Commands

    Hacer el encapsulado

    Make Package

  • Curso de Robtica y otras aplicaciones en el Aula de Tecnologa

    IES Joan Mir Pgina 38

    Aparece un men contextual y escribimos el nombre de la huella MOTOR-TRI_ROBOTICA su

    categora Connectors, tipo de agujero de PAD agujero pasante Through Hole y la

    biblioteca donde se almacena Robtica_ARES

    e) Deshacer el encapsulado y almacenarlo.

    Seleccionamos el encapsulado con el botn derecho del ratn (se pone en blanco), pinchamos

    sobre el icono de deshacer encapsulados. Decompose de los Comandos de edicin

    Variamos el encapsulado, lo seleccionamos con el botn derecho del ratn y volvemos

    almacenarlo pulsando Make Package

    Nombre del

    Encapsulado

    Tipo de agujero del

    PAD

    Biblioteca donde se

    almacena

    Categora

    Comandos de Edicin

    Editing Commands

    Deshacer el Encapsulado

    Decompose

  • Curso de Robtica y otras aplicaciones en el Aula de Tecnologa

    IES Joan Mir Pgina 39

    1.3.3.- Creacin de una biblioteca de smbolos en ISIS.

    Para crear una biblioteca propia en ISIS, se deben primero seleccionar el modo

    componentes Component. y seleccionar el botn L de manejo de

    bibliotecas Manage Device Libraries.

    Se abre un men contextual ,

    donde podemos crearnos nuestra

    propia biblioteca, aadir smbolos

    de otra biblioteca, borrar

    smbolos, etc.

    Cuando pulsamos Create Library tenemos que dar un nombre a la biblioteca Robtica_ISIS

    y donde queremos crear la biblioteca C:\Archivos de Programa\Labcenter Electronic\Proteus

    6 Professional\Library.

    Component.

    Manage Device Libraries

    Creacin de una Biblioteca

    Nos pedir un nmero

    mximo de simbolos.

    Mximo 4000

  • Curso de Robtica y otras aplicaciones en el Aula de Tecnologa

    IES Joan Mir Pgina 40

    Pulsamos OK y la biblioteca se crea. En la biblioteca nueva Robtica_ISIS, podemos copiar

    componentes 2N2907 de otras bibliotecas Bipolar. Seleccionamos el encapsulado y

    damos al icono de copiar Copy Items

    Biblioteca

    Robtica_ISIS

    Confirmacin

    de copia

  • Curso de Robtica y otras aplicaciones en el Aula de Tecnologa

    IES Joan Mir Pgina 41

    1.3.4.- Creacin de un smbolo en ISIS.

    a) Dibujamos el componente sin patillas.

    Abrimos el ISIS y seleccionamos Comandos de Dibujo

    b) Le aadimos pines patillas.

    Seleccionamos Patillas de Componentes Device Pin de las Herramientas de Diseo

    Ponemos los pines en el dibujo realizado, teniendo en cuenta lo siguiente:

    Que los caracteres no estn excesivamente prximos al pin (El pin no conectar con el hilo si esto ocurre y habra que descomponer el componente y modificarlo).

    Que el tipo de de rejilla sea mayor de Snap 50th (Ver View de la Barra de Mens), para poder insertar el hilo de forma ms cmoda.

    c) Editamos el pin (Poner el nombre y nmero)

    Seleccionamos el pin con el botn derecho del ratn del ratn El pin se pone rojo y

    pulsamos el izquierdo. Nombramos al Pin U y lo numeramos 1.

    Comandos de Dibujo

    Herramientas de Diseo

    Patillas de Componentes

    Device Pin

    Tipo de Pin

  • Curso de Robtica y otras aplicaciones en el Aula de Tecnologa

    IES Joan Mir Pgina 42

    d) Hacer el smbolo y almacenarlo.

    Seleccionamos el smbolo con el botn derecho del ratn (se pone en rojo), pinchamos sobre

    el icono de realizar un dispositivo Make device de los Comandos de edicin

    Aparece un men contextual y escribimos el nombre del componente MOTOR-TRI_ROBOTICA

    y un parmetro de referencia M.

    Nombre

    Nmero

    Comandos de

    Edicin

    Make device

  • Curso de Robtica y otras aplicaciones en el Aula de Tecnologa

    IES Joan Mir Pgina 43

    Pulsamos Next aparece otra ventana donde podemos asignarle el encapsulado fsico (Si esta

    creado lo asignamos, se puede no asignar y pasar a la siguiente ventana contextual). Pulsamos

    aadir encapsulado Add/Edit .

    Aparece un men contextual donde pulsamos aadir el encapsulado

    Aadir Encapsulado

    Aadir Encapsulado

  • Curso de Robtica y otras aplicaciones en el Aula de Tecnologa

    IES Joan Mir Pgina 44

    Aparece otro men contextual que abre el ARES y elegimos el encapsulado adecuado.

    Aparece otro men contextual en el que podemos aadir pines y poner este encapsulado

    como principal.

    Elegimos el encapsulado adecuado

    MOTOR-TRI_ROBOTICA

    Ponemos la palabra

    clave MOTOR y aparecen

    diferentes motores

    Vista del encapsulado

    Aadir Pines

    Encapsulado por defecto

    Usar Bibliotecas de

    ARES

  • Curso de Robtica y otras aplicaciones en el Aula de Tecnologa

    IES Joan Mir Pgina 45

    Si pulsamos asignacin de huella Assign Package(s) esta queda asignada al smbolo de ISIS

    Se abre otro men contextual donde se puede introducir el modelo de componte simulado

  • Curso de Robtica y otras aplicaciones en el Aula de Tecnologa

    IES Joan Mir Pgina 46

    Se abre otro men contextual donde se puede introducir un documento donde se especifique

    sus caractersticas Data Sheet

    Se abre otro men contextual donde se le asigna categora, Biblioteca.

    Introduccin del

    Documento

    Categora

    Biblioteca

  • Curso de Robtica y otras aplicaciones en el Aula de Tecnologa

    IES Joan Mir Pgina 47

    e) Deshacer el smbolo y almacenarlo.

    Seleccionamos el smbolo con el botn derecho del ratn (se pone en rojo), pinchamos sobre

    el icono de deshacer un dispositivo Decompose de los Comandos de edicin

    Variamos el simbolo, lo seleccionamos con el botn

    derecho del ratn y la volvemos almacenarlo pulsando

    Make Device

    2.- Principios de funcionamiento de un Microcontrolador PIC.

    Antes de definir un sistema digital basado en microcontroladores habra que definir un

    sistema basado en microprocesadores.

    Un microprocesador es bsicamente un chip que contiene la CPU (Central Proccesing

    Unit) que se encarga de controlar todo un sistema. Un sistema digital basado en un

    microcontrolador es un sistema abierto ya que su configuracin difiere segn a la aplicacin a

    la que se destine. Se pueden acoplar los mdulos necesarios para configurarlo con las

    caractersticas que se desee. Para ello se saca al exterior las lneas de sus buses de datos,

    direcciones y control de modo que permita su conexin con la memoria y los mdulos de

    entrada/ salida. Finalmente resulta un sistema implementado por varios circuitos integrados

    dentro de una misma placa de un circuito impreso.

    Comandos de

    Edicin

    Deshacer el smbolo

    Decompose

  • Curso de Robtica y otras aplicaciones en el Aula de Tecnologa

    IES Joan Mir Pgina 48

    Un microcontrolador es un sistema cerrado, lo que quiere decir que en un solo

    circuito integrado, se disea un sistema digital programable completo. Este dispositivo, se

    destina a gobernar una sola tarea que no se puede modificar. Disponen de los bloques

    esenciales como CPU, memorias de datos y de programa, reloj, perifricos de entrada/salida,

    etc.

    Existen multitud de fabricantes de microcontroladores Intel, Motorola, Microchip, etc.

    Los microcontroladores PIC de la casa Microchip se caracterizan por ser baratos, por

    proporcionar un entorno de desarrollo integrado gratuito MPLAB . Este entorno permite editar

    un el archivo fuente del proyecto, ensamblarlo, simularlo en un Ordenador Personal y

    comprobar la evolucin de las variables en la memoria RAM, registros, etc.

    Los microcontroladores PIC se caracterizan por lo siguiente:

    Tienen una arquitectura Hardvard utiliza dos tipos de memorias (Datos y Programa) con buses independientes.

    Utilizan un procesamiento segmentado o Pipeline que permiten realizar dos procesos simultneamente a la vez (lectura y ejecucin de instrucciones).

    Tiene un reducido grupo de instrucciones (RISC Reduced Instruction Set Computer). Son instrucciones simples que se ejecutan en un solo ciclo mquina (4 ciclos de reloj). El microcontrolador PIC16F876A tiene 35 instrucciones.

    Tiene una estructura Ortogonal es decir que una instruccin puede utilizar cualquier elemento de la arquitectura como fuente o destino de datos.

    PROGRAMA

    1. BSF STATUS,RP0

    2. CLRF TRISB

    3. MOVLW 0XFF

    4. MOVWF TRISA

    1 Ciclo 2 Ciclo 3 Ciclo 4 Ciclo 5 Ciclo

    Bsqueda 1 Ejecuta 1

    Bsqueda 2 Ejecuta 2

    Bsqueda 3 Ejecuta 3

    Bsqueda 4 Ejecuta 4

    Buses

    CPU

    Memoria

    de Datos

    (RAM)

    Memoria

    de

    Programa

    (EEPROM)

    Arquitectura Hardvard

    CPU

    Memoria

    de

    Programa y

    de Datos

    Arquitectura Von Neumann

    Buses Buses

  • Curso de Robtica y otras aplicaciones en el Aula de Tecnologa

    IES Joan Mir Pgina 49

    El microcontrolador PIC 16F876A es un CHIP de 28 patillas, que se caracteriza por lo siguiente:

    Tiene 35 Instrucciones

    Tiene una Memoria de Programa de 8192 palabras FLASH

    368 byte de Memoria de Datos RAM 256 byte de EEPROM

    22 Patillas de entradas/salidas.

    Sistema de Adquisicin de datos (5 Entradas Analgicas)

    2 mdulos de CCP y PWM. (Comparacin y captura de datos y generadores de seal por Modulacin de Anchura de Pulsos).

    Un mdulo de comunicacin serie SPI (Serial Peripheral Interface) I2C (Inter-Integrated Circuit).

    Un transmisor-receptor asncrono serie universal USART.

    3 Timer (Temporizadores/Contadores).

    2 Comparadores de seales analgicas.

    2.1.- Diagrama en bloques.

  • Curso de Robtica y otras aplicaciones en el Aula de Tecnologa

    IES Joan Mir Pgina 50

    2.2.- Mapa de memoria.

    2.2.1.- Memoria de Programa.

    Es una memoria tipo FLASH, los programas son almacenados en este tipo de memoria, cuando se desconecta la alimentacin la informacin almacenada no se pierde.(La memoria flash es una forma desarrollada de la memoria EEPROM que permite que mltiples posiciones de memoria sean escritas o borradas en una misma operacin de programacin mediante impulsos elctricos, frente a las anteriores que slo permite escribir o borrar una nica celda cada vez. Por ello, flash permite funcionar a velocidades muy superiores cuando los sistemas emplean lectura y escritura en diferentes puntos de esta

    memoria al mismo tiempo.), est compuesta por:

    8192 palabras de 14bit. (Cada instruccin ocupa solo una palabra).

    Una pila de 8 niveles.

    Un solo vector de Interrupcin.

    Vector de Reset (Direccin 0000h)

    4 zonas de memoria.

    2.2.2.- Memoria de Datos.

    Es una memoria de tipo RAM (Memoria

    de Acceso Aleatorio), se pierde la

    informacin cuando se desconecta la

    alimentacin

    Est compuesta por 4 bancos de

    trabajo. Contiene registros (Tipo Byte)

    de 2 tipos:

    Registros de funciones especiales SFR que sirven para comunicarnos con el hardware interno del PIC.

    Registro de Propsito General que nos sirven para almacenar nuestras variables de nuestro programas.

  • Curso de Robtica y otras aplicaciones en el Aula de Tecnologa

    IES Joan Mir Pgina 51

    3.- Iniciacin a la programacin en C en uC PIC.

    3.1.- Compilador CCS.

    3.1.1.- Introduccin.

    Un compilador convierte el lenguaje de alto nivel a instrucciones en cdigo mquina. El

    compilador CCS C es un compilador cruzado cross-compiler realizado para un determinado

    grupo de microcontroladores PIC (Se desarrolla un lenguaje de alto nivel C partiendo de

    instrucciones de bajo nivel Ensamblador de los microcontroladores PIC).

    El Compilador C de CCS ha sido desarrollado especficamente para PIC. Dispone de una

    amplia librera de funciones predefinidas, comandos de preprocesado y ejemplos. Adems,

    suministra los controladores (driver) para diversos dispositivos como LCD, convertidores AD,

    relojes de tiempo real, EEPROM serie, etc. Las caractersticas generales de este compilador se

    pueden encontrar en la direccin www.ccsinfo.com.

    Los programas son editados y compilados a instrucciones mquina en el entorno de

    trabajo del PC. Estos programas pueden ser depurados con diferentes sistemas de desarrollo

    MPLAB , Proteus, etc.

    El cdigo mquina puede ser cargado desde el PC al microcontrolador PIC mediante

    cualquier programador (ICD2, Bootloader, etc.).

    El Lenguaje C de CCS C es estndar que incluye las directivas (#include, etc.),

    suministra unas directivas especificas para PIC (#DEVICE,ETC.); adems incluye funciones

    especficas (bit-self(), etc.) . (Mirar el manual de CCS C).

    Se suministra con editor que permite controlar la sintaxis del programa.

    3.1.2.- Estructura de un programa.

    Para escribir un programa en C con el CCS C se deben tener en cuenta los elementos bsicos

    de su estructura.

    Directivas de Preprocesado: Controlan la conversin del programa al cdigo mquina por parte del compilador.

    Declaracin de las Funciones: Indicamos que tipo de funcin es.

    Programas o Funciones: Conjunto de Instrucciones. Pueden existir varios. Tiene que

    existir uno como principal llamado void main().

    Instruciones: Indican cmo debe comportarse el uC PIC.

    Comentarios: Permiten describir lo que significa cada lnea del programa

  • Curso de Robtica y otras aplicaciones en el Aula de Tecnologa

    IES Joan Mir Pgina 52

    /* El Puerto C puede tomar valores comprendidos entre 0 y 255

    Si el Puerto C es 0 realizar la funcin de mostrar por el Display de 7 segmentos los nmeros del 0 al 9

    con una cadencia de 1 segundo. Despus de este proceso apagar el Display.

    Si el Puerto C es 1 realizar la funcin de simulacin de las luces del coche fantstico.

    despus de este proceso apagar los Led.

    Si el Puerto C es distinto de 0 y 1 realizar una funcin de la raz cuadrada del dato ledo

    y devolverlo en una variable llamada resultado y mostrarlo en el Puerto B */

    /* ***************************** Directivas de Preprocesado************************************************* */

    // (Controlan la conversin del programa a cdigo maquina por parte del compilador)

    #include // Incluye el fichero 16F877A al programa tiene que estar en la misma

    // carpeta del programa. Define funciones, patillas y registros.

    #fuses XT,NOWDT // Define la palabra de configuracin del microcontrolador PIC

    // Trabaja con un reloj tipo XT y no utiliza perro guardin Wathdog

    #use delay( clock = 4000000 ) // Define la frecuencia del reloj de 4 MHz

    #include // Libreras de funciones matemticas.

    #include // Libreras de simulacin Luces del Coche Fantstico.

    #include // Libreras de simulacin representacin de los nmeros en el Display 7Seg.

    #BYTE TRISC = 0x87 // TRISC en 87h.

    #BYTE portC = 0x07 // PORTC en 07h.

    #BYTE TRISB = 0x86 // TRISB en 86h.

    #BYTE portB = 0x06 // PORTB en 06h.

    #BYTE TRISD= 0x85 // TRISA en 85h.

    #BYTE portD = 0x05 // PORTA en 05h.

    #BIT rc0 = 0x07.0 // RC0 en 0x07 patilla 0.

    #BIT rc1 = 0x07.1 // RC1 en 0x07 patilla 1.

    /* ************************************** Declaracin de funciones ****************************************** */

    void VariasCosas (int8); // Generacin de la seal cuadrada.

    int8 Raiz (int8); // Realiza la raz cuadrada.

    // ***************************** Funcin principal o programa principal *******************************************

    void main()

    {

    int8 muestra1; // Variable muestra1 definida como un entero de 8 bit

    TRISB = 0B00000000; // Defines Puerto B como SALIDA de datos.

    TRISC= 0B11111111; // Defines Puerto C como ENTRADA de datos.

    TRISD = 0B00000000; // Defines Puerto D como SALIDA de datos.

    portB = 0B00000000; // Reseteamos el Puerto B.

    portD = 0B00000000; // Reseteamos el Puerto D.

    while (1) // Ejecuta indefinidamente lo que est entre corchetes.

    {

    muestra1 = portC; // Leemos el Puerto C.

    VariasCosas(muestra1); // Ejecuta la funcin VariasCosas definida por la variable muestra1.

    }

    }

    Nombre del Programa

    Directivas de Preprocesado

    Declaracin de Funciones

    Programa Principal

    Indica programa principal

  • Curso de Robtica y otras aplicaciones en el Aula de Tecnologa

    IES Joan Mir Pgina 53

    3.1.3.- Constantes.

    Son nmeros, caracteres, etc

    Las constantes se pueden especificar en decimal, octal, hexadecimal o en binario, etc

    123 Decimal

    0123 Octal

    0b01011011 Binario

    X Caracter

    //******************************** Funcin VariasCosas ******************************************************

    void VariasCosas (int8 muestra2)

    {

    switch (muestra2) // Preguntamos por la variable muestra2 si es 0 ejecuta el case 0, si es 3 el case 3,

    // si es distinto de 0 y 3 ejecuta Raz

    {

    case 0:

    LucesFantastico(); // Llamamos a la funcin LucesFantastico

    break;

    case 1:

    NumerosDisplay(); // Llamamos a la funcin NumerosDisplay

    break;

    default:

    {

    portB = Raiz(muestra2); // Ejecuta la funcin Raz definida por la variable muestra2.

    delay_ms(50); // Temporizamos 50 mS.

    }

    }

    }

    //******************************* Funcin Raz ***************************************************************

    int8 Raiz (int8 muestra3)

    {

    int8 resultado;

    resultado = SQRT (muestra3);

    return(resultado);

    }

    Funcin VariasCosas

    Funcin Raz

  • Curso de Robtica y otras aplicaciones en el Aula de Tecnologa

    IES Joan Mir Pgina 54

    3.1.4.- Tipo de variables.

    Los programas tienen variables y se ubican en la memoria RAM. Se deben declarar

    obligatoriamente antes de usarlas. Para ello se debe de indicar el nombre y el tipo de dato que

    manejar. Se define de la siguiente forma:

    Tipo Nombre de la Variable = Valor Inicial

    Tipo de datos:

    Tipo Tamao Rango Descripcin

    Int1

    Short

    1 bit 0 a 1 Entero de 1 bit

    Int

    Int8

    8 bit 0 a 255 Entero de 8 bit

    Int16

    Long

    16 bit 0 a 65535 Entero de 16 bit

    Int32 32 bit 0 a 4.294.967.295 Entero de 32 bit

    Float 32 bit 3,4E 38 (7 dgitos) Coma flotante

    Char 8 bit 0 a 255 Carcter

    Signed Int8 8 bit -128 a 127 Entero con signo

    Signed Int16 16 bit -32.768 a 32.767 Entero largo con signo

    Signed Int32 32 bit -231 a +(231-1) Entero de 32 bit con signo

    Ejemplo:

    Int8 dato=34; // Es una variable de tipo entero de 8 bit (Valores comprendidos entre 0y 255)

    que se la inicializa con 34.

    Las variables pueden ser locales es decir solo son validas dentro de la funcin o globales que

    son validas para todo el programa.

  • Curso de Robtica y otras aplicaciones en el Aula de Tecnologa

    IES Joan Mir Pgina 55

    3.1.5.- Operadores.

    a) Asignacin.

    Transfieren datos de una expresin, una constante o una variable, a una variable.

    b) Aritmticos.

    Sirven para operar con datos numricos.

    Operador Significado

    + Suma

    - Resta

    * Multiplicacin

    / Divisin

    % Mdulo, resto de una divisin entera

    -- Incremento

    ++ Decremento

    sizeof Determina el tamao en byte, de un operando

    c) Relacionales.

    Sirven para comparar nmeros o caracteres.

    d) Lgicos.

    Permiten crear expresiones lgicas, es decir, basadas en el lgebra de Boole. Una expresin lgica es aquella que da como resultado cierto o falso.

    Operador Ejemplo Significado

    = a=c Asignacin simple. El contenido de c se introduce en a

    += c + = 4 Incrementa c en 4 unidades.

    -= c = 4 Decrementa c en 4 unidades.

    *= c * = 4 Modifica c multiplicndolo por 4.

    /= c / = 4 Ahora c contendr el cociente de dividir c entre 4.

    %= c % = 4 Ahora c contendr el resto de dividir c entre 4.

    = 4 Ahora c contendr el resultado de desplazar 4 bits a la derecha a la propia variable c.

    &= c & = 4 Se hace la operacin AND entre los bits de c y los del valor 4. El resultado se almacena en c.

    |= c | = 4 Se hace la operacin OR entre los bits de c y los del valor 4. El resultado se almacena en c.

    ^ = c ^ = 4 Se hace la operacin XOR entre los bits de c y los del valor 4. El resultado se almacena en c.

    Operador Significado

    < Menor que

    > Mayor que

    >= Mayor o igual que

  • Curso de Robtica y otras aplicaciones en el Aula de Tecnologa

    IES Joan Mir Pgina 56

    Por ejemplo:

    numero < 5 es una expresin lgica, pues puede ser cierto o falso, dependiendo del valor que tenga la variable numero en el momento de evaluar esa expresin. Los operadores lgicos sirven para concatenar dos o ms expresiones lgicas. El resultado final de evaluar el conjunto de esas expresiones tambin ser verdadero o falso; por lo tanto, esas expresiones juntas tambin formarn una expresin lgica.

    Ejemplo: (numero < 5) && (nivel >= 2) Tenemos dos expresiones lgicas unidas por un operador lgico, lo que forma otra expresin lgica ms compleja. Si cumple la expresin ser cierta

    Operador Significado

    ! Negacin (No)

    && Conjuncin (Y)

    || Disyuncin (O)

    e) De Bits.

    Realiza operaciones lgicas a nivel de bits independientes, son vlidos con datos de los tipos

    char, int, long.

    f) Punteros.

    Permiten conocer la direccin de memoria en la que est almacenada una variable o una funcin. Tambin sirven para conocer el valor del dato almacenado en una direccin dada.

    3.1.6.- Funciones.

    Son bloques de sentencias.

    Al igual que las variables, las funciones deben definirse y declararse antes de utilizarlas.

    Una funcin puede ser llamada desde una sentencia de otra funcin.

    Una funcin puede devolver un valor a la sentencia que la ha llamado.

    Una funcin puede recibir parmetros o argumentos.

    Operador Significado

    ~ Negacin de bits (No)

    & Conjuncin de bits (Y)

    ^ Disyuncin de bits (O)

    | O exclusiva (XOR)

    >> Desplazamiento de bits a la izquierda

    Puntero a estructura

  • Curso de Robtica y otras aplicaciones en el Aula de Tecnologa

    IES Joan Mir Pgina 57

    /* El Puerto C puede tomar valores comprendidos entre 0 y 255

    Si el Puerto C es 0 realizar la funcin de mostrar por el Display de 7 segmentos los nmeros del 0 al 9

    con una cadencia de 1 segundo. Despus de este proceso apagar el Display.

    Si el Puerto C es 1 realizar la funcin de simulacin de las luces del coche fantstico.

    despus de este proceso apagar los Led.

    Si el Puerto C si es distinto de 0 y 1 realizar una funcin de la raz cuadrada del dato ledo

    y devolverlo en una variable llamada resultado y mostrarlo en el Puerto B */

    /* ***************************** Directivas de Preprocesado************************************************* */

    // (Controlan la conversin del programa a cdigo maquina por parte del compilador)

    #include // Incluye el fichero 16F877A al programa tiene que estar en la misma

    // carpeta del programa. Define funciones, patillas y registros.

    #fuses XT,NOWDT // Define la palabra de configuracin del microcontrolador PIC

    // Trabaja con un reloj tipo XT y no utiliza perro guardin Wathdog

    #use delay( clock = 4000000 ) // Define la frecuencia del reloj de 4 MHz

    #include // Libreras de funciones matemticas.

    #include // Libreras de simulacin Luces del Coche Fantstico.

    #include // Libreras de simulacin representacin de los nmeros en el Display 7Seg.

    #BYTE TRISC = 0x87 // TRISC en 87h.

    #BYTE portC = 0x07 // PORTC en 07h.

    #BYTE TRISB = 0x86 // TRISB en 86h.

    #BYTE portB = 0x06 // PORTB en 06h.

    #BYTE TRISD = 0x88 // TRISA en 88h.

    #BYTE portD = 0x08 // PORTA en 08h.

    #BIT rc0 = 0x07.0 // RC0 en 0x07 patilla 0.

    /* ************************************** Declaracin de funciones ****************************************** */

    void VariasCosas (int8); // Generacin de la seal cuadrada.

    int8 Raiz (int8); // Realiza la raz cuadrada.

    // ***************************** Funcin principal o programa principal *******************************************

    void main()

    {

    int8 muestra1; // Variable muestra1 definida como un entero de 8 bit

    TRISB = 0B00000000; // Defines Puerto B como SALIDA de datos.

    TRISC = 0B11111111; // Defines Puerto C como ENTRADA de datos.

    TRISD = 0B00000000; // Defines Puerto D como SALIDA de datos.

    portB = 0B00000000; // Reseteamos el Puerto B.

    portD = 0B00000000; // Reseteamos el Puerto D.

    while (1) // Ejecuta indefinidamente lo que est entre corchetes.

    {

    muestra1 = portC; // Leemos el Puerto C.

    VariasCosas(muestra1); // Ejecuta la funcin VariasCosas definida por la variable muestra1.

    }

    }

    LLamada de la Funcin VariasCosas lleva implcita la variable muestra1

    Declaracin de Funciones

    Funcin Principal

    Definicin de la Funcin VariasCosas

    Recibe una variable entera de 8 bit int8

    Definicin de la Funcin Raiz

    Devuelve un valor entero de 8 bit int8

  • Curso de Robtica y otras aplicaciones en el Aula de Tecnologa

    IES Joan Mir Pgina 58

    //******************************** Funcion VariasCosas ******************************************************

    void VariasCosas (int8 muestra2)

    {

    switch (muestra2) // Preguntamos por la variable muestra2 si es 0 ejecuta el case 0, si es 3 el case 3,

    // si es distinto de 0 y 3 ejecuta Raz

    {

    case 0:

    LucesFantastico(); // Llamamos a la funcin LucesFantastico

    break;

    case 1:

    NumerosDisplay(); // Llamamos a la funcin NumerosDisplay

    break;

    default:

    {

    portB = Raiz(muestra2); // Ejecuta la funcin Raz definida por la variable muestra.

    delay_ms(50); // Temporizamos 50 mS.

    }

    }

    }

    //******************************* Funcion Raiz ***************************************************************

    int8 Raiz (int8 muestra3)

    {

    int8 resultado;

    resultado = SQRT (muestra3);

    return(resultado);

    }

    Funcin Raiz lleva implcita la variable muestra3

    Muestra3 muestra2

    Funcin Raiz devuelve el valor de la variable resultado Llamada de una sentencia

    a otra funcin

    Llamada a la Funcin SQRT y lleva implcita la

    variable muestra3devuelve un valor de 8bit a

    resultado

    Llamada a la Funcin Raiz y lleva

    implcita la variable muestra2

    devuelve un valor de 8bit

    portB resultado

    LLamada de la Funcin delay_ms lleva implcita el parametro 50

    Llamada de una sentencia

    a otra funcin

    Llamada a la Funcin NumerosDisplay

    Llamada a la Funcin Luces Fantastico

    Funcin VariasCosas lleva implcita la variable muestra2

    muestra2 muestra1

  • Curso de Robtica y otras aplicaciones en el Aula de Tecnologa

    IES Joan Mir Pgina 59

    3.2.- Manejo de las Declaraciones de Control.

    Son sentencias lneas de cdigo usadas para controlar el proceso de ejecucin del

    programa. Antes de ver las sentencias bsicas de un programa vamos a explicar que se

    entiende por flujo de programa.

    Se entiende por flujo de un programa el modo en que se avanza de una instruccin a la siguiente dentro de ese programa. Tambin podramos decir que es la forma en que fluyen las instrucciones por el microcontrolador. Existen tres estructuras de control del flujo:

    Estructura secuencial: la siguiente instruccin que se ejecuta es la que est justo a continuacin en el listado del cdigo fuente del programa, y que estar en la siguiente posicin de memoria cuando se compile

    Estructura de seleccin: dependiendo del resultado de la evaluacin de una

    condicin, seguidamente se ejecutar una instruccin u otra. De este modo el flujo de instrucciones se divide en dos o ms caminos, aunque si la condicin decide avanzar por un camino se abandonarn los otros (no se puede avanzar por ms de un camino a la vez).

    Estructura de iteracin o repeticin: la siguiente instruccin que se ejecuta se encuentra antes que la que se acaba de ejecutar, pues ya se ha pasado por ella anteriormente. Diremos que se ha formado un lazo o bucle en el flujo del programa. Normalmente hay que evitar los bucles infinitos, dando la posibilidad de que en algn momento (mediante una condicin) se dejen de repetir las mismas instrucciones.

    Instruccin 1

    Instruccin 4

    Instruccin 2

    Instruccin 3

    Estructura Secuencial Estructura de seleccin

    Estructura de repeticin

    si

    no

    Instruccin 1

    Condicin

    Opcin 1

    Opcin 2

    no

    si

    Instruccin 1

    Condicin

    Instruccin 2

    Instruccin 3

    Instruccin 4

  • Curso de Robtica y otras aplicaciones en el Aula de Tecnologa

    IES Joan Mir Pgina 60

    Para entender mejor las declaraciones de control, los ejemplos se van a desarrollar en un

    entrenador realizado en ISIS.

    3.2.1.- If-Else.

    La sentencia if-else nos ayuda a tomar decisiones.

    Se define de la siguiente manera:

    if (expresin) {

    Instruccin_1;

    Instruccin_n;

    }

    else {

    Instruccin_a;

    Incinstruc_z;

    }

    Instruccin_1

    Instruccin _n;

    Condicin

    Instruccin _a

    Instruccin _z;

    si no

  • Curso de Robtica y otras aplicaciones en el Aula de Tecnologa

    IES Joan Mir Pgina 61

    Programa_1: Leer la Patilla RC0 = 1 (RB0=0 y RB1=1), RC0 = 0 (RB0=1 y RB1=0)

    Diagrama de Flujo:

    rc0=1?

    si no

    RC0 = 1 (RB0=0 y RB1=1)

    RC0 = 0 (RB0=1 y RB1=0)

    // Configuracin

    TRISB 0B00000000 // Defines Puerto B como SALIDA de datos.

    TRISC 0B11111111 // Defines Puerto C como ENTRADA de datos.

    rb0 0 // Apagar D9

    rb1 1 // Encender D10

    // Reseteamos el Puerto B.

    portB 0B00000000

    rb0 1 // Encender D9

    rb1 0 // Apagar D10

  • Curso de Robtica y otras aplicaciones en el Aula de Tecnologa

    IES Joan Mir Pgina 62

    Programa_1.c: ( Mirar el punto 1.1.3.- Depuracin de programas.)

    /* Leer la Patilla RC0 si es 1 (RB0=0 y RB1=1) y si es 0 (RB0=1 y RB1=0)(Utilizando directamente la RAM) */

    // ********************************* Directivas de Preprocesado************************************

    // (Controlan la conversin del programa a cdigo mquina por parte del compilador)

    #include // Incluye el fichero 16F877 al programa tiene que estar en la misma

    // carpeta del programa define funciones, patillas y registros.

    #fuses XT,NOWDT // Define la palabra de configuracin del microcontrolador PIC

    // Trabaja con un reloj tipo XT y no utiliza perro guardin Wathdog

    #use delay( clock = 4000000 ) // Define la frecuencia del reloj de 4 MHz y el tipo de reloj que vamos a

    // utilizar en las funciones de retardo delay

    #BYTE TRISB = 0x86 // TRISB en 86h.

    #BYTE portB = 0x06 // PORTB en 06h.

    #BYTE TRISC = 0x87 // TRISC en 87h.

    #BYTE portC = 0x07 // PORTC en 07h.

    #BIT rb0 = 0x06.0 // RB0 en 0x06 patilla 0.

    #BIT rb1 = 0x06.1 // RB1 en 0x06 patilla 1.

    #BIT rc0 = 0x07.0 // RC0 en 0x07 patilla 0.

    // **************************** Funcin principal o programa principal *******************************

    // Se define con un void main,

    void main()

    {

    TRISB = 0B00000000; // Defines Puerto B como SALIDA de datos.

    TRISC = 0B11111111; // Defines Puerto C como ENTRADA de datos.

    portB = 0B00000000; // Reseteamos el Puerto B.

    while (1) // Ejecuta indefinidamente lo que est entre corchetes.

    {

    if (rc0 == 1 ) // Preguntamos si RC0=1

    // Si RC0=1 ejecuta lo que viene a continuacin.

    {

    rb0 = 0; // Apagar D9

    rb1 = 1; // Encender D10

    }

    else // Si RC0=0 ejecuta lo que viene a continuacin.

    {

    rb0 = 1; // Encender D9

    rb1 = 0; // Apagar D10

    }

    }

    }

  • Curso de Robtica y otras aplicaciones en el Aula de Tecnologa

    IES Joan Mir Pgina 63

    3.2.2.- Switch-Case.

    La sentencia switch-case nos ayuda a tomar decisiones mltiples.

    Se define de la siguiente manera:

    switch (expresin) {

    case constante1

    Instruccin_1;

    Instruccin_n;

    break;

    case constante2

    Instruccin_1;

    Instruccin_n;

    break;

    case constanteN

    Instruccin_1;

    Instruccin_n;

    break;

    default: Instruccin_1;

    Instruccin_n;

    }

    Programa_2: Leer el Puerto C

    Si PC7..PC2= 0, PC1= 0 y PC0= 0 cargar en el Puerto B= 0b00000011, esperar 1sg, Puerto B= 0b00000000, esperar 1sg.

    Si PC7..PC2= 0, PC1= 0 y PC0= 1 cargar en el Puerto B= 0b00001100, esperar 1sg, Puerto B= 0b00000000, esperar 1sg.

    Si PC7..PC2= 0, PC1= 1 y PC0= 0 cargar en el Puerto B= 0b00110000, esperar 1sg, Puerto B= 0b00000000, esperar 1sg.

    Instruccin_1

    Instruccin _n

    break? si

    no

    break?

    si

    no

    si Instruccin_1

    Instruccin _n

    Expresin=

    Constante2?

    no

    Expresin=

    constante1?

    si

    no

    Instruccin_1

    Instruccin _n;

    no no

    Instruccin_1

    Instruccin _n

    si Expresin=

    ConstanteN?

    break?

    si

  • Curso de Robtica y otras aplicaciones en el Aula de Tecnologa

    IES Joan Mir Pgina 64

    Si PC7..PC2= 0, PC1= 1 y PC0= 1 cargar en el Puerto B= 0b11000000, esperar 1sg, Puerto B= 0b00000000, esperar 1sg.

    Si PC7..PC2 distinto de 0, PC1 = x y PC0 = x cargar en el Puerto B= 0b00000000.

    Repetir el proceso cclicamente.

    Diagrama de Flujo:

    Programa_2.c

    Ejemplo de Switch-Case

    // Configuracin

    TRISB 0B00000000 // Defines Puerto B como SALIDA de datos.

    TRISC 0B11111111; // Defines Puerto C como ENTRADA de datos.

    // Reseteamos el Puerto B.

    portB 0B00000000

    no

    portC= 1?

    si

    portC= 0?

    si

    no

    si

    no

    portC= 2?

    si

    portC=3?

    no

    portB0B00000000

    Retardo_1Seg

    Retardo_1Seg

    portB 0B00000011

    portB 0B00000000

    Retardo_1Seg

    Retardo_1Seg

    portB 0B00001100

    portB 0B00000000

    Retardo_1Seg

    Retardo_1Seg

    portB 0B00110000

    portB 0B00000000

    Retardo_1Seg

    Retardo_1Seg

    portB 0B00110000

    portB 0B00000000

  • Curso de Robtica y otras aplicaciones en el Aula de Tecnologa

    IES Joan Mir Pgina 65

    Programa_2.c:

    // Leer el Puerto C

    // Si PC7..PC2= 0, PC1= 0 y PC0= 0 cargar en el Puerto B= 0b00000011, esperar 1sg, Puerto B= 0b00000000, esperar 1sg.

    // Si PC7..PC2= 0, PC1= 0 y PC0= 1 cargar en el Puerto B= 0b00001100, esperar 1sg, Puerto B= 0b00000000, esperar 1sg.

    // Si PC7..PC2= 0, PC1= 1 y PC0= 0 cargar en el Puerto B= 0b00110000, esperar 1sg, Puerto B= 0b00000000, esperar 1sg.

    // Si PC7..PC2= 0, PC1= 1 y PC0= 1 cargar en el Puerto B= 0b11000000, esperar 1sg, Puerto B= 0b00000000, esperar 1sg.

    // Si PC7..PC2 distinto de 0, PC1 = x y PC0 = x cargar en el Puerto B= 0b00000000.

    // Repetir el proceso cclicamente.

    // ************************************ Directivas de Preprocesado *********************************

    // (Controlan la conversin del programa a cdigo mquina por parte del compilador)

    #include // Incluye el filchero 16F877 al programa tiene que estar en la misma

    // carpeta del programa define funciones, patillas y registros.

    #fuses XT,NOWDT // Define la palabra de configuarcin del microcontrolador PIC

    // Trabaja con un reloj tipo XT y no utiliza perro guardian Wathdog#use

    delay( clock = 4000000 ) // Define la frecuencia del reloj de 4 MHz

    #BYTE TRISC = 0x87 // TRISC en 87h.

    #BYTE PORTC = 0x07 // PORTC en 07h.

    #BYTE TRISB = 0x86 // TRISB en 86h.

    #BYTE PORTB = 0x06 // PORTB en 06h.

    // **************************** Funcin principal o programa principal *******************************

    void main()

    {

    TRISB = 0B00000000; // Defines Puerto B como SALIDA de datos.

    TRISC = 0B11111111; // Defines Puerto C como ENTRADA de datos.

    PORTB = 0B00000000; // Reseteamos el Puerto B.

    while (1) // E