El documento describe los diferentes tipos y niveles de lenguajes de programación utilizados para programar microcontroladores, incluyendo lenguajes de bajo nivel como el lenguaje de máquina y el ensamblador, y lenguajes de alto nivel. Explica que el ensamblador MPAS se utilizará para traducir el código fuente en lenguaje ensamblador al código de máquina que puede ejecutar el microcontrolador PIC16F84A, el cual será simulado en Proteus.
2. Lenguajes de Programación Medio necesarios para la comunicación entre el usuario y la maquina Clasificación de los Lenguajes de Programación: Los lenguajes de programación pueden ser de dos tipos, visuales y escritos, Los visuales admiten estructurar el programa por medio de símbolos gráficos, , planos esquemáticos y diagramas de bloques. Los escritos son listados de sentencias que describen las funciones a ejecutar. Niveles de los Lenguajes Los lenguajes de programación de sistemas basados en microprocesadores, como es el caso de los PLC, se clasifican en niveles; al microprocesador le corresponde el nivel más bajo, y al usuario el más alto.
3. Lenguajes de Bajo Nivel: Lenguaje de Máquina: Código binario encargado de la ejecución del programa directamente en el procesador. El lenguaje maquina es difícil de utilizar por el hombre ya que se aleja de su forma natural de expresarse, por esto utiliza el lenguaje ensamblador, que es la forma de expresar las Instrucciones de una forma mas natural al hombre y que, sin embargo, es muy cercana al microcontrolador porque cada una de sus instrucciones se corresponde con otra en código maquina que el microcontrolador es capaz de interpretar. Lenguajes de Alto Nivel: Se basan en la construcción de sentencias orientadas a la estructura lógica de lo deseado; una sentencia de lenguaje de alto nivel representa varias de bajo nivel; cabe la posibilidad que las sentencias de un lenguaje de alto nivel no cubran todas las instrucciones del lenguaje de bajo nivel, lo que limita el control sobre la máquina. Para que un lenguaje de alto nivel sea legible por el sistema, debe traducirse a lenguaje ensamblador y posteriormente a lenguaje de máquina.
4. Lenguaje Ensamblador: Lenguaje sintético de sentencias que representan cada una de las instrucciones que puede ejecutar el microcontrolador. Una vez diseñado un programa en lenguaje ensamblador es necesario, para cargarlo en el sistema, convertirlo o compilarlo a lenguaje de máquina. Los programadores de lenguajes de bajo nivel deben estar especializados en microprocesadores y demás circuitos que conforman el sistema El lenguaje ensamblador utiliza mnemónico que es una palabra que sustituye a un código de operación (Lenguaje de maquina), con lo cual resulta más fácil la programación Así. por ejemplo: para ordenar al microcontrolador PIC16F84: "sume 58 al Registro w y guarda el resultado en el mismo registro W", en lenguaje ensamblador sería "addlw d''58" que es mucho mas simple que "1111100011l010“ del lenguaje de maquina.
5. Lenguaje a utilizar: ASEMBLER. Ensamblador: MPAS Programa de simulación: Proteus El programa ensamblador( MPAS) es un software que se encarga de traducir los neumónicos y símbolos alfanuméricos del programa escrito en ensamblador por el usuario a código de máquina, para que pueda ser interpretado y ejecutado por el microcontrolador. Microcontrolador: 16F84A El programa escrito en lenguaje ensamblador recibe la denominación de código fuente, archivo fuente o fichero fuente. Suele tener la extensión *.asm. El archivo debe ser traducido a código maquina, de lo cual se encarga el programa ensamblador. La mayoría de los ensambladores proporcionan a su salida un fichero que suele tener la extensión *.hex. Este fichero puede ser grabado en la memoria de programa mediante la utilización de un grabador de microcontroladores. Proteus:es un programa para simular circuitos electrónicos complejos integrando, inclusive desarrollos realizados con microcontroladores de varios tipos. Presenta una filosofía de trabajo semejante al SPICE
6.
7. Tras el ensamblado del fichero fuente (ASM) se genera una serie de ficheros de los cuales los mas importante son: Fichero ejecutable o hexadecimal: tiene extensión . Hex y contiene el Programa que será grabado al microcontrolador en código maquina. Fichero de errores: tiene extensión . Err contiene los errores producidos Durante el proceso de ensamblado. Fichero listable: posee extencion .lst que contiene toda la información del Programa, código fuente, codigo maquina, direccion de cada instrucción, Errores producidos, ETC…
10. TAB ORG 00 Directiva del lenguaje ORDEN ORIGEN INICIO GOTO INICIO ORG 05 ;Programa para activar leds Los comentarios se realizan después de punto y coma BSF ESTADO,05H Etiqueta Máx. 32 caracteres Código ( mnemonico) Operando Registro en la posición 03H ;Cambio a banco 1 Comentario END TAB Indica el final del programa ESTADO EQU 03H LAS variable se definen antes del origen 00 Y permiten hacer la equivalencia de una Posición con un nombre. Destino 1ª 2ª 3ª 4ª columna List P=PIC16F84A Microcontrolador utilizado CONSTANTE EQU b’00001111’
11. Para poder programar debes tener claro como funciona lo que vas a controlar Con uno enciende el Led Y con cero se apaga. 5V 160
12. inicio Conf de variables Y constantes Conf de puertos Apaga todos los LEDS Tecla presionada ? No si Desplaza led a la derecha Tecla presionada ? No si Desplaza led a la izquierda Tecla presionada ? No si Enciende led Desde el centro Tecla presionada ? No si Desplaza led a la izquierda Tecla presionada ? No si Desplaza led apagado A la derecha Tecla presionada ? No si
13. Mueva el numero b 00010000 al puerto B Realice retardo Tecla presionada ? Mueva el numero b 00001000 al puerto B Realice retardo si no Tecla presionada ? si no Cambia rutina Cambia rutina Mueva el numero b 00000100 al puerto B Realice retardo Tecla presionada ? Mueva el numero b 00000010 al puerto B Realice retardo si no Tecla presionada ? si no Cambia rutina Cambia rutina Mueva el numero b 00000001 al puerto B Realice retardo Tecla presionada ? si no Cambia rutina 10h 8h 4h 2h 1h
14.
15. Un 0 cero corresponde a configurar el pin como salida en tanto que un 1 uno corresponde a configurarlo como entrada,.