Post on 19-Oct-2015
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