lunes, 11 de junio de 2007

CONCLUSIONES(final)

Bueno este curso o materia de compiladores fue de gran ayuda para la realizacion de proyectos que ya tengan una mejor proyeccion para nosotros, el aprender a quemar un pic, el poderse documentar en un proyecto de investigacion, de los programas los materiales necesarios, de la configuracion de puertos para la quemada han sido de verdad un reto y es asi como se debe de buscar un proyecto de tesis posiblemente para redes inalabricas que tenemos pensado y que lo de los pic nos van ha ser de gran utilidad agradecemos este curso profe, porque ya le hallamos nuestra aplicacion, sentimos las dificultades y los atrasos para este proyecto ya que no contabamos con nuestros trabajos que realizamos el de Diego y el mio en CEDELCA que justo estaba en periodo de prueba y fue bastante duro, por la disponibilidad de tiempo y que tambien son necesarios para nuestra formacion.

DESCRIPCION DE ELEMENTOS (final)

El compilador EPIWIN es nuestro lenguaje de programación que hace mas fácil y rápido programar el controlador Pic 18f452 para compilar el codigo fuente de la calculadora se corre con el mplab c18, y el hardware o parte fisica se utilizo una protoboard, dos capacitores de 10 pf y uno de 1 uf, para el cristal de 1Mhz. cinco resistencias de 10K en los pines R1= para el pin 19, R2= para el pin 20 , R3= para el pin 21, R4= para el pin 22 y R5= para el pin 1 y cuatro diodos rectificadores para los pines 33, 34, 35, 36 que son las salidas A, B, C, D del teclado de la calculadora, una fuente de 5 volt. Otros elementos como el display 1 por 16 para visualizar los datos y el teclado por supuesto.

REDACCION DE ASPECTOS TEORICOS YCONCEPTUALES (final)

Los programas mas comunes para hacer funcionar los microPic involucran asegurarse que los pocos componentes externos sean de valor apropiado y están conectados adecuadamente. Las siguientes son algunos problemas y soluciones para hacer funcionar el proyecto.
Asegúrarse que el chip está bien conectado a 5 volt a través de algún tipo de circuito protector o simplemente en serie. Si deja el pin sin conectar su nivel flota y algunas veces el microPic puede dañarse. El microchip tiene un circuito interno de power-on-reset (puesta a cero al encender) y en general solo es necesario un resistor interno de pull-up adecuado. En algunos casos el microchip o micropic puede no arrancar apropiadamente y se necesita un circuito interno. En los manuales se encuentra algunas instruciones como de información.
se debe de asegurar que el cristal o el oscilador este en buen estado con capacitores de valor adecuados conectados a él . Los valores de los capacitores pueden ser difíciles de leer. Si los valores son muy diferentes el oscilador no arrancará ni trabajará en forma apropiada. Un cristal de 1 Mhz que es el nuestro, con 2 capacitores cerámicos de de 10pf es un buen comienzo para la mayoría de los microPic.
Tener en cuenta que la fuente de alimentación sea apropiada para el proyecto. Aunque el microPic consume muy poca potencia la fuente debe estar muy bien filtrada. Si el microPic está controlando dispositivos que consumen bastante corriente de su fuente cuando ellos se encienden o apagan pueden causar un glitch (ruido ó interferencia) en las líneas de alimentación causando que el microPic deje de funcionar apropiadamente de hecho quemamos o dañamos un pic en arquitectura de computadores que fue otro proyecto que tambien trabajamos o que trabajo Arley con otros compañeros de noveno. Aun un visor LED puede crear un drenaje instantáneo en una pequeña fuente de alimentación (como una batería de 9 volt) y causar el microPic falle.
Chequear las conexiones de datos o salidas del microPic. Algunos dispositivos tienen opciones que pueden interferir con algunas operaciones. Los PIC16C62X (16C620, 621 y 622) son un buen ejemplo. Estos microPic tienen comparadores analógicos en PORTA. Cuando estos micros arrancan, PORTA se coloca en modo analógico. Esto hace que la función en PORTA trabaje de una manera no esperada. Para cambiar el pin a digital, simplemente agregue la línea.
CMCON = 7 al codigo.
Al principio de nuestro proyecto cualquier micro ÏC con entradas analógicas como la serie16C7xx arrancará en modo analógico se deberán colocar en modo digital si se intenta usarlos en ese modo puede quemarse propiamente dicho.
Otras observaciones aparte del montaje en la QT o protoboard es que se debe realizar el programa paso a paso, es decir cortos para probar opciones de las que no se está seguro ó con las que puede tener problemas .Una vez que estas funcionen . puede seguir adelante
Trate de hacer las cosas de otra manera . Algunas veces , aquello que trata de hacer debería funcionar , pero no lo hace . Normalmente hay mas de una forma de confeccionar un programa . Usar comentarios como en todo programa para el desarrollo claro de lo que se esta haciendo. Aunque sea ha veces las cosas sean obvias para nosotros, no lo seran para los demas.
Aunque los comentarios se usan en mathlab o mplab en el archivo fuente de EPIWIN no lo hace para luego ser insertado en el microchip .

DESCRIPCION DEL TRABAJO (final)

En mplab c18 se desarrolla el código que puede ser compilado para una variedad de micro controladores PIC que tengan de 8 a 68 pins el nuestro es de 40 pines que en el se pueden programar varios proyectos incluyendo convertidores A/D, temporizadores y puertos seriales.
Hay algunos micros PIC que no trabajaran con el mplab c18, por ejemplo las series PIC 16C5X incluyendo el PIC 16C54 Y PIC 15C58. Estos micro PIC están basados en el viejo núcleo de 12 bit en lugar del núcleo más corriente de 14 bit.
Inicialmente se propuso desarrollar el proyecto con el pic 16f873 que su codigo ejecutable en lenguaje de maquina se generaba a partir de C , pero este no se encontraba en el mercado, tampoco un quemador para este propósito.
El quemador de microcontrolador tambien es compatible para memorias (EEPROM) que permite rápido borrado y reprogramación para acelerar la depuración de programas.
Con el clic de un mouse en el software, el PIC18F452 puede ser quemado instantáneamente y luego ser reprogramado en los otros espacios o registros libres una y otra vez hasta agotar los espacios disponibles que da el fabricante. Otros micros PIC de las series 12C67X, 16C55X, 16C6X, 16C7X y 16C9X son programables una vez (OTP) o tienen una ventana de cuarzo en su parte superior (JW) para permitir el borrado exponiéndolo a una luz ultravioleta durante varios minutos.
El PIC18F452 contiene 64 bytes de memoria de datos no volátil que puede ser usada para archivar el datos de programa y otros parámetros, aun cuando no haya energía. A ésta área de datos, se puede acceder simplemente usando las órdenes “Read” y “Write” de mplab. (El código programa es permanentemente guardado en el espacio de código del micro PIC, tanto si hay o no energía.)
El proceso de depuración puede ser más rápido. Una vez que las rutinas principales de un programa estén operando satisfactoriamente, se puede utilizar un micro PIC con mayor capacidad o las opciones expandidas del compilador.
Muchas de las opciones del micro PIC serán discutidas en el manual didactico en medio magnetico que ofrece el fabricante del quemador de pic que se recibe en la compra.

El manual abarca la instalación del epiwin (quemador del codigo .hex) para el lenguaje de maquina y mplab para compilar el programa en lenguaje de alto nivel que es el primer paso en los programas. Siguiendo estos pasos hay que configurar el quemador de pic fisicamente es decir quitar todos los jumpers para chips de 40 pines y cuatro switches que el fabricante dispone al usuario para configurar cuando es de lectura y luego de escritura del programa.

Después se debe construir el circuito en la base o protoboard, con los elementos referenciados en la lista de materiales para este proyecto.
El resto del manual, provee información de paginas web para programadores avanzados - todo el trabajo interno que el compilador dado hace.

INSTALACIÓN DEL SOFTWARE MPLAB C18 El software debe ser copiado a su disco duro antes de usarlo. Cree un subdirectorio en su disco llamado mplab c18 u otro nombre a su elección, copiar todos los archivos desde el cd adjunto, La opción asegurará que todos los subdirectorios necesarios serán creados dentro del subdirectorio mplab c18.
Si el archivo es comprimido (.ZIP) o ejecutable (.EXE), usted necesita descomprimirlo (unzip).

mplab tiene un editor ó procesador de texto para crear el programa fuente , algún tipo de programador de micros PIC como el EPIC Plus o el nuestro EPIWIN asi el maplab podra generar el .HEX para el siguiente programa.
La secuencia de eventos es la siguiente :
Primero se crea el archivo fuente para el programa , usando el editor o procesador de texto. Si se quiere el EDIT ( incluído en DOS) ó NOTEPAD (incluído en WINDOWS) , pueden ser utilizados.El nombre del archivo fuente debe terminar con la extensión .BAS (pero no es excluyente), recomiendo el UltraEdit
El archivo de texto creado debe ser texto ASCII puro .No debe contener códigos especiales insertados por procesadores de texto para sus propósitos específicos .Normalmente se tiene la opción de grabar el archivo como texto ASCII puro en la mayoría de los procesadores de texto.
El programa provee un buen testeo del programa para ver si corre sin errores para que asi se pueda generar el codigo con la extencion .HEX para el microchip real .

Ejemplo de programa para hacer parpadear un LED conectado al puerto PORTB.0 , aproximadamente una vez por segundo ´
loop: high PORTB.0 ´ enciende el LED
pause 500 ´ demora de .5 segundos
low PORTB.0 ´ apaga el LED
pause 500 ´ demora de .5 segundos
goto loop ´ vuelve a loop y hace parpadear el LED indefinidamente
end
Una vez que Ud. esté convencido que el programa que ha escrito funcionará sin errores puede compilarlo ingresando el nombre de su archivo de texto en el prompt de DOS .Por ejemplo , si el archivo de texto que Ud. creo se llama calculadora.BAS.
El compilador mostrará un mensaje de inicialización y procesará su archivo .Si lo acepta , creará un archivo de código fuente ensamblado ( en este caso calculadora.ASM) y automáticamente invocará al ensamblador para completar la tarea .Si todo funciona bien , se crea un archivo de código microPIC (en este caso calculadora.HEX). Si existen errores , se emitirá un listado de los mismos , que deberán ser corregidos en su archivo fuente EPIWIN antes de ser compilados nuevamente.

jueves, 26 de abril de 2007

AVANCES DEL ANTEPROYECTO (Diagrama del Pic 16F84)

*Oscilador de cristal o resonador de alta velocidad "HS"(High Speed Crytal/Resonator):Es un oscilador una frecuencia comprendida entre 4MHz y 20MHz.


* Oscilador o resonador cerámico "XT" (Crystal/Resonator): Se trata de un oscilador estándar que permite una frecuencia de reloj comprendidas entre 100KHz y 4 MHz.


* Oscilador de cristal de cuarzo o resonador cerámico de baja potencia "LP" (Low Power Crystal): Se trata de un oscilador de bajo consumo con un cristal o resonador diseñado para trabajar con frecuencias comprendidas entre 32KHz y 200KHz.


El circuito para cualquiera de las configuraciones anteriores se representa en la siguiente figura y depende de los valores de C1, C2 y del cristal para el buen funcionamiento del mismo. Se recomienda ver la tabla de datos del fabricante


AVANCES DEL ANTEPROYECTO (Interfaz delPic 16F84)

El sotfware que nos permite grabar el Pic es llamado winPic800 se realiza de la siguiete forma:


Ejecutar el EXE con doble click y establecer la configuración del hardware










Seleccionar el dispositivo a programar, elegimos Pic F, luego el PIC 16F84 por ejemplo.- En el Programador seleccionar Pic, con el Sw 1.- Abrir el archivo que contiene los datos a programar en el Pic. El programa trabaja con ficheros .HEX. En el menú Archivo seleccionamos Abrir archivo, en el cuadro de diálogo que nos aparece seleccionamos el fichero que deseamos grabar en el Pic.Pulsamos el botón Config. para ajustar el tipo de oscilador y los bits de configuración.- Para programar el dispositivo seleccionamos Programar todo del menú Dispositivo. Con ello comenzará la grabación.


AVANCES DEL ANTEPROYECTO (Modelo del Pic)

En la Figura siguiente se representa el diagrama de bloques del PIC 16C84 del que podemos resaltar las siguientes características:
Memoria de programa EEPROM de 1Kx14 bits
Memoria de datos dividida en 2 áreas:
Área RAM formada por 22 registros de propósito específico (sfr) y 36 de propósito general (GPR).
Área EEPROM formada por 64 bytes.
ALU de 8 bits y registro de trabajo W del que normalmente recibe un operando que puede ser cualquier registro, memoria, puerto de Entrada/Salida o el propio código de instrucción.
Recursos conectados al bus de datos: PortA de 5 bits , PortB de 8 bits , Temporizador con Preescaler TMR0, etc.

Contador de Programa de 13 bit (lo que en teoría permitiría direccionar 4 KB de memoria, aunque el 16C84 solo dispone de 1KB de memoria implementada).

Pila de 8 niveles.




AVANCES DEL ANTEPROYECTO (Introduccion)



De acuerdo a las actividades programadas para este proyecto, es necesario hacer enfasis en los temas del proceso logico del funcionamiento de los microcontroladores y los circuitos integrados programables de la siguiente manera, para nuestro desarrollo hemos definido el PIC 16C84 al igual que los demás miembros de su familia, serviran para nuestra aplicacion por que :


Todas las instrucciones tienen la misma longitud (14 bits)
La arquitectura está basada en banco de registros.

¿Pero que significa todo esto? . Pues vamos a intentar aclarar estos conceptos:
la técnica de segmentación que permite al procesador realizar simultáneamente la ejecución de una instrucción y la búsqueda de código de la siguiente. De esta manera, se puede ejecutar una instrucción en un ciclo. (Cada ciclo de instrucción son cuatro ciclos de reloj).

En los PIC el manejo del banco de registros, que participan activamente en la ejecución de las instrucciones, es muy interesante al ser ortogonales. En la figura siguiente se muestra como la ALU (Unidad Aritmético-Lógica) efectúa sus operaciones con dos operandos, uno que proviene del registro W (Work), que en otras CPUs recibe el nombre de Acumulador, y el otro que se encuentra en cualquier otro registro o del propio código de instrucción.








INTRODUCCION (AVANCES)

INTRODUCCION
En este avance del proyecto que se está llevando a cabo, sobre APLICACIÓNES CON CIRCUITOS INTEGRADOS PROGRAMABLES (PLC), mencionaremos las características y estructuras de programación en estos autómatas que son de gran relevancia, en cuanto al funcionamiento y comportamiento interno. Con esto nos referimos a las dos formas más usuales de editar programas en PLC y lo mismo para los PICs.

La primera es el DIAGRAMA DE CONTACTOS, que representa las entradas y salidas usando símbolos eléctricos que son estándar: (Contacto normalmente abierto, contacto normalmente cerrado, Bobinas de Rele, etc.) La representación de contactos se asemeja a laestructura de directorios de un disco duro pero invertido.

LA SEGUNDA ES EL MODO TEXTO
Nos muestra el modo en que se programa el PIC-PLC, consta de una serie de líneas de texto, cada línea describe una instrucción, el orden es muy importante ya que cambia el resultado final en la salida.

domingo, 18 de marzo de 2007

  • 9. RESULTADOS ESPERADOS


    Almacenamiento de datos en el Microchip de forma definitiva.
    Entender el código de maquina para aplicaciones futuras.
    Lograr realizar operaciones básicas de una calculadora.
    Termino del proyecto en su totalidad y con las especificaciones definidas anteriormente.



8. CRONOGRAMA DE ACTIVIDADES
7. PRESUPUESTO Y FINANCIACIÓN



  • 6. METODOLOGÍA

    La metodología que se pretende implementar esta dada en los siguientes aspectos:

    · Se estudiar e investigar sobre el funcionamiento especifico del dispositivo electrónico (chip):
    o Arquitectura.
    o capacidad de almacenamiento
    o líneas de entrada y salida
    o capacidad de memoria de datos
    o formato de instrucciones
    o manejo de interrupciones
    o uso de librerías entre otras.
    · Realizar un algoritmo que identifique cada uno de los pasos lógicos que requieren para ejecutar las instrucciones.

    · Conocer el funcionamiento del socket o placa base donde reside temporalmente el microchip tales como:

    o los circuitos integrados programables que soporta.
    o Fuente de alimentación.
    o Configuración de pines.
    o Lectura de los indicadores de luz.
5. EQUIPO DE TRABAJO:

La ejecución o búsqueda del desarrollo del proyecto se cuenta con la participación de 3 estudiantes pertenecientes al programa de ingeniería de sistemas, noveno semestre de la corporación universitaria autónoma del cauca.

Nombres y apellidos
Rol
Correo electrónico
Diego Fernando Vargas
Estudiante(analista)
dfvargas@gmail.com
Arley Otero Chacon
Estudiante(programador)
arleyuno@hotmail.com

  • 4. REFERENTES TEÓRICOS

    Este proyecto utilizara los siguientes componentes:

    · Software:
    - Lenguaje de programación (assembler)

    · Hardware:
    - Chip o circuito integrado de la familia de los microprocesadores programables (PIC).
    - Dispositivo electrónico o socket que es el que nos permite grabar o quemar la informacion.
    - Cable de conexión de impresora (com1) que permite la transferencia de los datos del ordenador al circuito integrado y viceversa.
    - Computador: dispositivo dentro del cual nos permite el ingreso de los datos, visualizar las instrucciones en lenguaje maquina y realizar las pruebas necesarias antes de dejar de forma definitiva los datos en chip.

    Requisitos mínimos del computador: soporte sistema operativo win 98/win xp en adelante.
    - Memoria 128 MB
    - Disco duro de 20 G
    - Procesador 700 MHZ
    - Dispositivos de E/S




  1. 3 OBJETIVOS



    3.1 OBJETIVO GENERAL:


    · poner en practica la teoría que se plantea durante el proceso de aprendizaje y darnos cuenta físicamente como estos dispositivos, permiten recibir instrucciones o codificación a bajo nivel o de maquina para posteriormente ser interpretados.

    3.2 OBJETIVOS ESPECÍFICOS:


    identificar porque es importante la eficiencia de los algoritmos en código de maquina.
    Realizar los ensayos preliminares con las entradas, procesos y salidas en el desarrollo de operaciones básicas de una calculadora antes de guardar los datos definitivos en el chip.
    Conocer las características que componen el dispositivo (chip) a utilizar para la aplicación.
    Identificar los errores que se cometen en el proceso de ejecución del código.
    Conocer el código de maquina que permite realizar las operaciones básicas.
    Clarificar los conceptos de la materia de compiladores con este proyecto.

JUSTIFICACION

2. JUSTIFICACIÓN

La razón principal por el cual se hace esta trabajo, es colocar en practica toda la teoría que se plantea durante el proceso del curso y darnos cuenta de una forma física o entrar en contacto con los dispositivos, que inicialmente permiten recibir código a bajo nivel o de maquina, que son los que le dan la utilidad al controlador.

Planteamiento del Problema




    • 1. PLANTEAMIENTO DEL PROBLEMA
      Los microcontroladores y los microprocesadores están ocupando un espacio muy importante en el campo tecnológico a nivel mundial, como nos podemos dar cuenta están presentes en el trabajo, en la casa, en las universidades y en muchos establecimientos en general.

      Se pueden encontrar controlando por ejemplo el funcionamiento de los ratones y teclados de los computadores, en los teléfonos, en los hornos microondas, los televisores y demás electrodomésticos.

      La idea de este proyecto es conocer, explorar el funcionamiento lógico programable de los dispositivos, que ejecutan unas instrucciones que han sido programadas para cumplir una determinada función; como es el caso de los circuitos integrados programables (PIC).

      Aprovechando la utilidad de esta herramienta podemos profundizar más en el contenido programático de la materia de Compiladores, ya que es un dispositivo digital que nos permite manipular su codificación a bajo nivel con el fin de obtener un mayor aprendizaje.

PORTADA

APLICACIONES CON CIRCUITOS INTEGRADOS PROGRAMABLES (PIC)
(COMPILADORES)










DIEGO FERNANDO VARGAS
ARLEY OTERO CHACON

















CORPORACIÓN UNIVERSITARIA AUTÓNOMA DEL CAUCA
INGENIERÍA DE SISTEMAS IX
COMPILADORES NOCTURNO
POPAYÁN - CAUCA