Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I CURSO BÁSICO DE PIC 16F887 INTERFASES PERIFÉRICAS Y PROGRAMABLES I PRIMER PARCIAL PROFESOR: Valdés Martínez Ramón EQUIPO7 Chávez Cantoriano Jorge Luis Esquivel González César Antar Lara Tufiño Erandi Aleli GRUPO: 7RM1 FECHA DE ENTREGA: 10 - Septiembre – 2018 INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I GENERALIDADES 1. Desarrollo tecnológico e importancia de los microcontroladores. Hasta antes de la aparición de los microprocesadores en 1971, las aplicaciones digitales electrónicas se basaban en la lógica cableada, el problema era analizado y sintetizado en una función en base a la lógica de Boole siendo esta la solución a lo que se necesitaba. Cuando aparecieron los microprocesadores cambió el esquema de diseño, ahora las aplicaciones eran descompuestas en tareas más simples, el microprocesador se encargaba de llevar a cabo una serie de instrucciones para poder ejecutar cada una de las tareas, con este avance había veces en las que no era necesario rearmar el circuito para obtener otra aplicación, sino que era suficiente con modificar el programa y así obtener una nueva aplicación. El microprocesador es como un cerebro que se encarga de ejecutar operaciones aritméticas-lógicas, por tanto, no contaba con periféricos y tampoco tenía un lugar para almacenar un programa y los datos que se necesitaban para dicho programa. Es por eso por lo que se le tenían que añadir circuitos para darle soporte al procesador, y a ese conjunto de circuitos se le llamo <sistema mínimo>. El sistema mínimo se fue convirtiendo en un estándar, en 1976 la escala de integración mejoró y posibilitó sintetizar en un solo chip un sistema mínimo y se le llamo sistema A siendo este el primer microcontrolador. INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I Un microcontrolador se define como un procesador con un sistema mínimo en un mismo chip, que incluye: Memoria para programa (RAM) y datos. Periféricos de entrada/salida. Conversores de AD y DA. Módulos especializados en la transmisión y recepción de datos. Cabe señalar que el aumento progresivo de la escala de integración y las técnicas de fabricación hacen que cada vez aparezcan microcontroladores más poderosos y rápidos. A continuación, se enlistan las principales características de los microcontroladores y de los microprocesadores en un cuadro comparativo para comprender las diferencias entre cada uno de ellos: MICROCONTROLADORES MICROPROCESADORES Arquitectura cerrada: Anteriormente no se le permitía añadir ningún tipo de hardware, pero hoy en día únicamente se le puede agregar una memoria de usuario. Set de instrucciones reducido (RISC) Arquitectura Harvard: Arquitectura de computadora con pistas de almacenamiento y de señal físicamente separadas para las instrucciones y para los datos. Se especializan en aplicaciones industriales: Se encuentran en teclados, mouse, electrodomésticos, en la industria automotriz, en procesamiento de imagen y video. Arquitectura abierta: Se pueden sumar nuevos dispositivos en hardware en función a las necesidades. Tienen mayor cantidad de instrucciones Arquitectura Von Neuman: El CPU está conectada a una memoria principal única (casi siempre sólo RAM) donde se guardan las instrucciones y los datos. INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I CONCEPTOS CLAVE: Lógica cableada: Solución a una aplicación que se basaba en la lógica de Boole. Microprocesadores: Es como el cerebro que se encarga de la ejecución de operaciones aritméticas lógicas. Se encarga de llevar a cabo una serie de instrucciones para ejecutar tareas. Sistema Mínimo: Conjunto de circuitos que le dan soporte al microprocesador (memorias, periféricos, entre otros). Microcontroladores: Se define como un procesador con un sistema mínimo integrado en un mismo chip que incluye: memoria para programa y datos, periféricos de E/S, conversores de señal y módulos de transmisión y recepción de datos. 2. METODOLOGÍA DE ESTUDIO ᴥ Entender cómo funciona la arquitectura, es importante conocer como están conectados los elementos internamente para un mejor entendimiento de su funcionamiento. ᴥ Aplicar y entender la sintaxis y las instrucciones que tiene el dispositivo. ᴥ Plantear algoritmos y soluciones a las aplicaciones. ᴥ Aprender a usar las herramientas de programación y depuración. ᴥ Detectar y corregir los errores sintácticos y lógicos. ᴥ Optimizar el programa final. INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I Proceso de Diseño: En el desarrollo de texto implementaremos circuitos simples pero demostrativos de las bondades y posibilidades de los microcontroladores. El proceso de diseño puede ser expresado a través del siguiente diagrama de flujo: Como podemos apreciar todo principia en una idea la cual se ha de plasmar en diagramas de flujo o autómatas o alguna otra metodología que ayude al modelamiento, una vez superado este punto procedemos a usar un editor de texto para codificar el diagrama de flujo a través de las instrucciones con que cuenta el microcontrolador. INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I A continuación, presentamos ese archivo a un programa ensamblador (si es que usamos el lenguaje ensamblador) o un compilador (si usamos otro lenguaje como el C o Basic) aquí se depuran los errores sintácticos que son errores en la estructura del lenguaje de programación. Una vez que superamos esa etapa procedemos a usar un software, para simular el programa verificando que la solución es válida. En caso de que la simulación indique errores procedemos a replantear la solución retomando el punto inicial. Si la solución es la que deseamos procedemos a grabar el programa (debidamente compilado) en el microcontrolador haciendo uso de una herramienta (grabador de microcontroladores). En este punto es posible aplicar un emulador o un ICD a fin de verificar que los resultados elaborados por el simulador son apropiados, el emulador o ICD a diferencia del simulador trabaja sobre hardware real. En caso de que falle en este punto retomamos el diseño original. Superada ambas fases procedemos a colocarlo sobre el hardware final que ha de operar. INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I 3. MICROCONTROLADOR MICROCHIP 16F887: Las principales características con las que cuenta el PIC 16F887 son las siguientes: Arquitectura RISC: o El microcontrolador cuenta con solo 35 instrucciones diferentes. o Todas las instrucciones son uniciclo excepto por las de ramificación que se realizan en dos ciclos máquina. Frecuencia de operación 0-20MHZ Oscilador interno de alta precisión: o Calibrado de fábrica. o Rango de frecuencia de 8MHz a 31KHz seleccionado por Software. Voltaje de la fuente de alimentación de 2 V a 5.5V. Ahorro de energía en el modo de reposo. Brown-out Reset (BOR) con opción para controlar por software. 35 pines de entrada/salida o Alta corriente de fuente y de drenador para manejo de LED. o Resistencias pull-up programables individualmente por software. o Interrupciónal cambiar el estado del pin. Memoria ROM de 8K con tecnología FLASH: o El chip se puede reprogramar hasta 100.000 veces. Opción de programación serial en el circuito. o El chip se puede programar incluso incorporado en el dispositivo destino. Pila con 8 niveles. 256 bytes de memoria EEPROM o Los datos se pueden grabar más de 1.000.000 veces. 368 bytes de memoria RAM Convertidor A/D: o 14 canales o Resolución de 10 bits 3 temporizadores/contadores independientes Temporizador perro guardián (WDT) Módulo de comparación analógico con: o Dos comparadores analógicos. o Referencia de voltaje fija (0.6V) o Referencia de voltaje programable en el chip. Módulo PWM incorporado Módulo USART mejorado o Soporta las comunicaciones seriales RS-485, RS-232 y LIN2.0 o Autodetección de baudios. INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I Puerto Serie Síncrono Maestro (MSSP) o Soporta los modos SPI e I2C. A continuación, se muestra el siguiente diagrama del PIC16F887 para poder identificar los pines con los que cuenta: Para dar un mejor entendimiento mostraremos una tabla donde se indica para que sirve cada uno de los pines: INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I 4.ARQUITECTURA 16F887 Los PIC16F887 de Microchip pertenecen al tipo de procesador RICS que es un procesador de instrucciones reducidas, se caracteriza porque el número de instrucciones es pequeño (en este caso 35) y además casi todas se realizan en un ciclo máquina, que equivale a 4 ciclos de reloj, con excepción de las de bifurcación o de salto que se realizan en dos ciclos máquina. Este tipo de procesador emplea una arquitectura Harvard lo cual se refiere a que trabaja las zonas de memoria y de instrucciones de forma separada, lo cual hace que sea 2 veces más rápida a comparación de la arquitectura Von Neuman, que por el contrario trabaja los datos e instrucciones en conjunto. INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I En ambas arquitecturas observamos bloques de memoria (uno de instrucciones y otro de datos), cada bloque tiene posiciones y cada posición un valor y existen dos buses: Bus de direcciones: Permite conocer el lugar o las coordenadas donde se encuentra la información. Bus de datos: Bus donde estamos transmitiendo la información, y es bidireccional ya que lee y escribe los datos. En el caso de la arquitectura Von Neuman podemos apreciar que existe un único bus de direcciones y de datos. Podemos también observar como cada posición de memoria tiene una dirección, a su vez la memoria se divide en memoria de programa (ROM) y memoria de datos (RAM). En el caso de la arquitectura Harvard existen dos bloques de memoria separados. Un bloque para instrucciones y otro para datos. Note como hay dos buses independientes de direcciones y el bus de instrucciones solo tiene una dirección, a diferencia del bus de datos que es de naturaleza bidireccional. La arquitectura Harvard mejora el ancho de banda por que el bus de datos es de 14 bits frente a los de 8 de un bus tradicional Von Neumann por tanto en una sola lectura puede llevar mayor cantidad de datos. 5. ARQUITECTURA INTERNA PIC16F887 Hemos señalado que el microcontrolador posee varios elementos en forma interna: el procesador, memoria de programa, memoria de datos, periféricos, contadores. Para comprender mejor como se conforma internamente presentaremos el siguiente diagrama de bloques: INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I De forma más simplificada tenemos que: Nos pareció necesario presentar la imagen anterior ya que en ella se pueden apreciar de mejor manera como está constituido internamente este dispositivo electrónico a grandes rasgos y de forma entendible. 6. CICLO DE INSTRUCCIÓN Observemos el siguiente diagrama de tiempos: INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I El oscilador o cristal genera pulsos, a cada uno de estos pulsos se le conoce como cuadratura Q1, Q2, Q3, Q4. Toda instrucción tienes asociada dos procesos, cada uno ocupa un ciclo de instrucción: o Proceso1: Búsqueda, descarga los valores. o Proceso2: Ejecución, realiza la operación y despliega el resultado. Primero se lleva a cabo la búsqueda, internamente el contador se incrementa en Q1. La búsqueda de la siguiente instrucción se lleva a cabo en Q4. Los procedimientos de búsqueda y ejecución de una misma instrucción son secuenciales más son paralelos para diferentes instrucciones. 7. ORGANIZACIÓN DE LA MEMORIA La memoria se divide en memoria de datos y programa. La de datos a su vez se divide en: SFR (Special Function Register) Registros de propósito especial, son registros que ayudan a configurar el hardware interno, así como sirven para escribir o leer valores de los diferentes componentes que constituyen el microcontrolador. Por ejemplo, el registro “trisa” que nos permite configurar el modo de trabajo de las líneas del puerto A GFR (General Function register) Registros de propósito general, son posiciones de memoria que podemos usar para almacenar valores que emplean nuestros programas tenemos una memoria EEPROM, con 256 posiciones, para acceder a la memoria no podemos leer o escribir directamente es decir colocar la dirección y obtener o dejar el valor. Para trabajarla debemos apoyarnos en registros adicionales de tal forma que la usamos indirectamente. Los bancos de memoria del PIC16F887 se encuentran de la siguiente manera: INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I 8. HERRAMIENTAS Para programar es necesario contar con herramientas en hardware y software, en el mercado existen muchas herramientas que van de ensambladores a simuladores, emuladores o debuger físicos. MPLAB El MPLAB es un entorno de desarrollo que incluye varias herramientas: Contiene un editor de textos que nos permite ingresar el programa expresado en códigos nemónico (o simplemente llamado ensamblador), normalmente este se guarda en un archivo con extensión ASM. Cada nuevo proyecto puede contener a su vez varios archivos ASM que se relacionen a través de llamadas a rutinas, adicionalmente el proyecto tiene un grupo de variables que debemos configurar como es el tipo de microcontrolador que vamos a usar ya que el MPLAB soporta todas las familias de microcontroladores Microchip (MPLAB es producido por Microchip). Cuando procedemos a llamar al programa ensamblador que lleva el MPLAB este es capaz de transformar el código nemónico (instrucciones) a los correspondientes valores binarios (lenguaje máquina) que a su vez grabaremos en el microcontrolador. El ensamblador (MPASMWIN) también genera otros archivos de salida que ayudan en el diseño de aplicaciones. Dentro del MPLAB encontramos también al MPSIM que es un potente simulador que nos permitirá observarel comportamiento del programa antes de proceder grabar el programa. El archivo con extensión “.HEX” es el que contiene los códigos binarios (lenguaje máquina) a grabar en el microcontrolador. ICD El ICD (In circuit debugger) es una herramienta que tiene componentes en hardware y en software. El ICD es una herramienta potente en el sentido que permite corregir rápidamente los errores lógicos que siempre se presentan en la programación. El software viene incluido en el MPLAB es de fácil uso y configuración. Se habilita mediante un bit al momento de grabar el microcontrolador de tal forma que el microcontrolador ejecuta el programa hasta una determinada instrucción, en ese momento el microcontrolador se detiene y procese a transmitir vía puerta serial todos los datos que tiene en los bancos de memoria (SFR y los GFR). De esta forma INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I podemos ver en la pantalla del ordenador lo que pasa internamente en el microcontrolador cuando ejecutamos un programa. El hardware es otro componente del ICD consiste en una serie de circuitos que ejecutan la grabación (transistores que trabajan como interruptores en corte y saturación) así como un microcontrolador (PIC16F876) que recibe los datos y los transmite a la computadora. Finalmente, el ICD se conecta a una tarjeta básica pero efectiva llamada DEMOBOARD. GRABADORES Los grabadores de microcontroladores, toman como entrada un archivo HEX para grabarlo en un microcontrolador. Generalmente los grabadores son herramientas que trabaja con un circuito conectado al puerto paralelo, la idea es tomar el contenido del archivo HEX y depositarlo en la memoria de programa del PIC. Uno de los más populares es el NOPPP, en internet está disponible el programa ejecutable, el programa fuente y el circuito. Es un excelente punto de partida para entender cómo se lleva a cabo el proceso de grabación de un PIC. Las herramientas descritas anteriormente trabajan íntimamente, si graficamos la forma como se relacionan podríamos expresar la idea a través del siguiente diagrama: 1. Una vez identificado el problema planteamos la solución a través de un algoritmo de allí en un diagrama de flujo, el diagrama de flujo se puede codificar en cualquier lenguaje de programación de allí que presentamos dos caminos o en ensamblador o en C, si elegimos el C es necesario compilar el código para obtener el equivalente en ASM. 2. Una vez en ASM procedemos a ensamblar y simular. 3. Si toda está sin problemas procedemos a grabar el programa. El MPLAB genera un archivo HEX que puede ser leído por el NOPPP o el ICD que es el que a su vez graba el programa dentro del microcontrolador. Con el ICD verificamos el correcto funcionamiento del programa si encontramos algún problema procedemos a depurar el error. INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I CURSO BÁSICO DE PIC 16F887 INTERFASES PERIFÉRICAS Y PROGRAMABLES I SEGUNDO PARCIAL PROFESOR: Valdés Martínez Ramón EQUIPO7 Chávez Cantoriano Jorge Luis Esquivel González César Antar Lara Tufiño Erandi Aleli GRUPO: 7RM1 FECHA DE ENTREGA: 17 - Octubre – 2018 INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I Cómo hacer y simular un programa en MPLAB 1.- Abrimos MPLAB y damos clic en Project y posteriormente New: 2.- Le asignamos un nombre al proyecto y seleccionamos la carpeta en donde se va a guardar: 3.- Ahora seleccionamos en la barra principal la opción que dice File y después New: INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I 4.- En la ventana que se abre escribimos nuestro código: 5.- Posteriormente debemos de simularlo, así que en la barra principal seleccionamos DebuggerSelect Tool MPLABSIM: 6.- Luego en Debugger nuevamente seleccionamos STIMULUS, en la ventana que aparece seleccionamos los puertos que utilizamos, y en Action nos aparecen las siguientes opciones: Set High: Establecer alto Set Low: Establecer bajo Toggle: Intercambia en cada pulso, primero uno alto y después uno bajo Pulse High: Pulso alto Pulse Low: Pulso bajo INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I En nuestra práctica seleccionaremos Toggle debido a su característica, entonces la ventana nos queda de esta forma: 7.- Después damos clic en View Watch, en la ventana que aparece seleccionamos PORTB en la parte superior y lo agregamos, podemos observar cómo se encuentra en hexadecimal y binario: 8.- Habiendo ya configurando lo anterior corremos nuestra simulación dando clic en el símbolo de “play” que se encuentra en la barra de herramientas, damos estímulos y finalmente verificamos el circuito con las combinaciones de las entradas: INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I Módulo 1: Manejo de Puertos Digitales 1. Registros para el manejo de puertos digitales El PIC16F887 contiene 5 puertos que pueden ser configurados como entradas o salidas digitales: Puerto A: Contiene 8 bits RA0- RA7 Puerto B: Contiene 8 bits RB0- RB7 Puerto C: Contiene 8 bits RC0- RC7 Puerto D: Contiene 8 bits RD0- RD7 Puerto E: Contiene 3 bits RE0- RE2 La operación de configuración de los puertos en general implica la siguiente secuencia: 1. Ingresar al banco 1. 2. Configurar los puertos (registros TRISA, TRISB, TRISC, TRISD y TRISE) 3. Regresar al banco 0. 4. Escribir o leer los datos desde los puertos (registros PORTA, PORTB, PORTC, PORTD, PORTE). Cada una de las líneas de los puertos puede ser configurado como entrada o como salida. En el registro TRIS determinamos la configuración de los puertos. A través de los valores que escribamos en los registros TRIS determinamos el comportamiento de los puertos. La escritura y lectura de valores desde los puertos se hace a través de los registros PORT que se encuentran en el Banco 0 (y banco 2 para el puerto B). Desde luego si configuramos un puerto como entrada (lectura) los valores que escribamos en el no tendrán efecto porque fue configurado como entrada y no como salida. A través de las instrucciones MOV podemos leer o escribir valores. 2. Descripción general de las instrucciones. Los programas están compuestos por instrucciones. El PIC16F887 cuenta con 35 instrucciones que iremos desarrollando conforme avancemos en el curso. Cada instrucción está representada por 14 bits. Los 14 bits a su vez se dividen en: •• Código de operación (OPCODE), que especifica cual es la instrucción a la que hacemos referencia, por ende, cada instrucción tiene un código en particular. •• Operadores, cada instrucción es aplicada sobre determinados operadores, parte de los 14 bits están destinados a especificar quienes son los registros o valores que se verán afectados como resultado de la aplicación de la instrucción. Las instrucciones están divididas en tres clases: INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I ᴥ Orientadas a byte : Las instrucciones orientadas a byte reservan los 7 bits de menor peso para indicar la dirección del registro que será operado. Una vez que se lleva a efecto la operación usamosel bit d para indicar donde será almacenado el resultado. Si d es 0 el resultado se almacena en el registro de trabajo W, si d es 1 el resultado será guardado en el mismo registro (o file) que se operó. ᴥ Orientadas a bit: Las operaciones orientas a bit buscan escribir o leer una posición (bit) dentro de un file o registro. Una vez más los 7 bits inferiores son destinados para indicar la dirección de registro o file que vamos a trabajar y los siguientes tres bit especifican el bit dentro del registro. ᴥ Literales o de control: Las instrucciones de control son las que ayudan a formar bucles dentro de los programas, así como sirven para llamar a rutinas o procedimientos (instrucciones CALL o GOTO). En este caso en particular se emplea los 11 bits inferiores para enviar la dirección a la cual el contador de programa (PC) saltará. Los bits superiores de la instrucción sirven para identificar a la instrucción. En ocasiones es necesario cargar constantes a los registros del microcontrolador, las instrucciones literales nos sirven para mover las constantes a un registro en particular, en este caso empleamos los 8 bits inferiores para definir la constante que deseamos almacenar, en tanto que los bits restantes sirven para identificar la instrucción. CLASIFICACIÓN DE LAS INSTRUCCIONES EN BASE A LAS 3 CATEGORÍAS: INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I 3. Lectura y escritura en puertos: Ejercicio 1: Enunciado de la aplicación: Configurar el puerto A para entradas y el puerto B para salidas digitales, de esta forma cuando se detecte una señal de entrada en algún bit del puerto A esta se verá reflejada encendiendo un led en el mismo bit del puerto B. ALGORITMO 1.- Configurar puertos de entrada y salida, al igual que las entradas analógicas o digitales. 2.- Limpiar los puertos 3.- Mover de puerto “A” a nuestro registro de trabajo(W). 4.- Mover W al puerto “B”. 5.- Regresar al punto 3. INSTRUCCIONES POR UTILIZAR ᴥ BANKSEL Nos posiciona en el banco correspondiente a la instrucción que coloquemos enseguida de BANKSEL. ᴥ CLEAR PORTX Limpia todos los bits del puerto que seleccionemos. ᴥ TRISX Define como entradas o salidas digitales el puerto que seleccionemos. ᴥ MOVF PORTX,W Mueve lo que tengamos en el registro del puerto “X” al registro de trabajo. ᴥ MOVWF X INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I Mueve lo que tengamos en el registro de trabajo al registro que seleccionemos. DIAGRAMA DE FLUJO INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I CÓDIGO EN MPLAB INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I SIMULACIÓN EN PROTEUS 7. Principales registros del PIC16F877 (STATUS): Hemos indicado que la memoria del datos del microcontrolador se divide en bancos de memoria, las posiciones inferiores estan destinadas a los registros especiales de función (SPECIAL FUNCTION REGISTER). En esta sección profundizaremos un poco mas acerca de los principales registros y observaremos el uso que se les puede dar en el desarrollo del programa. El registro de Estado (STATUS) El STATUS es un archivo o registro que ocupa la posición la posición 0x03 de los bancos de memoria: El STATUS es un registro del microcontrolador que almacena información relacionada con: •• La última operación aritmética lógica realizada en la ALU. •• El estado de reset del microcontrolador. •• El banco de memoria que actualmente se tiene en uso. El STATUS contiene los siguientes bits: INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I Bit 7: IRP Register Bank Select Bit (es un bit que se usa para las operaciones de direccionamiento indirecto). 0 = Si se trabaja sobre el banco 0 ó 1 ( posiciones de memoria que van desde 00h hasta FFh). 1 = Si trabajamos con el banco 2 ó 3 (posiciones de memoria que van desde 100h hasta 1FFh). Bit 6-5: RP1, RP0 Register Bank Select (bits usando en el direccionamiento directo) 00 = Banco 0 , (posiciones de memoria 00-7Fh) 01 = Banco 1, (posiciones de memoria 80-FFh) 10 = Banco 2, (posiciones de memoria 100-17Fh) 11 = Banco 3, (posiciones de memoria 180-1FFh) Bit 4: -T0 Time out bit. 1 =Asumeel valor de 1 después de encenderse el PIC o por la aplicación de la instrucción CLRWDT o por la aplicación de la instrucción SLEEP. 0 = Cuando se ha vencido el periodo programado en el Watchdog. Bit 3 : -PD Power down bit 1 = Después de encender el microcontrolador o por la aplicación de una instrucción CLRWDT. 0 = Cuando se ejecuta la instrucción SLEEP. Bit 2: Z Zero Bit 1 = Cuando el resultado de una instrucción aritmética lógica da por resultado 0. 0 = Si el resultado de la operación aritmética o lógica da por resultado un valor distinto de cero Bit1:DCDigitcarry/borrowbit Usado como acarreo en las instrucciones de suma (ej:ADDWFyADDWL) en caso se lleve a cabo una operación de resta se procede a tomarlo como bit de préstamo). Este bit trabaja con los 4 bits inferiores o nible bajo. 1 = Si se ha producido el acarreo en el nible bajo. 0 = No se ha producido acarreo en el nible bajo. INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I 8. Ejercicio 2: Enunciado de la aplicación: Suponga una lampara que debe ser prendida o apagada desde tres puntos. Diseñe un programa que la encienda si y solo si hay dos interruptores activados. Supongamos que tenemos los tres interruptores dispuestos en el PORTB (RB0, RB1 y RB2) y definimos la línea RB3 como salida tendríamos la siguiente tabla de operación: OUT IN RB3 RB2 RB1 RB0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 1 1 1 0 0 1 1 1 DESARROLLO PARA PIC EN MPLAB ALGORITMO 1.- Configurar puertos de entrada y salida, al igual que las entradas analógicas o digitales. 2.- Limpiar los puertos 3.- Definir o crear una variable 4.- Mover de puerto B a nuestro registro de trabajo(W). 5.- Mover W a “variable”. INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I 6.- Poner el bit 3 en 0. 7.- Realizar las comparaciones con las combinaciones verdaderas. Si M-PORTB-3==0 RB3=1 Si M-PORTB-5==0 RB3=1 Si M-PORTB-6==0 RB3=1 Para cualquier otra combinación RB3=0 8.- Regresar al punto 4. INSTRUCCIONES NUEVAS POR UTILIZAR ᴥ BTFSS f, b (Bit Test File Skip if Set) Prueba el bit b del registro f, si es 1 se brinca una instrucción y si es 0 ejecuta la siguiente instrucción. ᴥ BTFSC f, b (Bit Test File Skip if Clear) Prueba el bit b del registro f, si es 0 se brinca una instrucción y si es 1 ejecuta la siguiente instrucción. ᴥ SUBWF f, d (Substrae W de f) A el registro f se le resta lo del registro de trabajo, si d=0 se almacena en W y si d=0 se almacena en f. ᴥ EQU Se utiliza para crear una variable, se coloca el nombre de la variable EQU y posteriormente la localidad del registro de propósito general donde se va a guardar la variable. ᴥ BCF f, b BSF f, b Coloca a 0 el bit b del registro f. Coloca a 1 el bit b del registro f. DIAGRAMA DE FLUJO INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I CÓDIGO EN MPLAB INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I SIMULACIÓN EN PROTEUSEjercicio 3: ENUNCIADO DE LA APLICACIÓN: Realizar una aplicación para un PIC16F887 con las siguientes características: Se cuenta con 4 entradas PORT B0-B3 y una salida digital PORT B4 La salida se enciende con [1, 3, 7, 10, 15] OUT IN RB4 RB3 RB2 RB1 RB0 1 0 0 0 1 1 0 0 1 1 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1 INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I DESARROLLO PARA PIC EN MPLAB ALGORITMO: 1.- Configurar puertos de entrada y salida, al igual que las entradas analógicas o digitales. 2.- Limpiar los puertos. 3.- Definir o crear una variable. 4.- Mover de puerto B a nuestro registro de trabajo (W). 5.- Mover de W a “variable” 6.- Poner el bit 4 en 0. 7.- Realizar las comparaciones con las combinaciones verdaderas: Si M-PORTB-1==0 RB4=1 Si M-PORTB-3==0 RB4=1 Si M-PORTB-7==0 RB4=1 Si M-PORTB-A==0 RB4=1 Si M-PORTB-F==0 RB4=1 Para cualquier otra combinación RB4=0 8.- Regresar al paso 4. INSTRUCCIONES IMPORTANTES POR UTILIZAR ᴥ BTFSS f, b (Bit Test File Skip if Set) Prueba el bit b del registro f, si es 1 se brinca una instrucción y si es 0 ejecuta la siguiente instrucción. ᴥ BTFSC f, b (Bit Test File Skip if Clear) Prueba el bit b del registro f, si es 0 se brinca una instrucción y si es 1 ejecuta la siguiente instrucción. ᴥ SUBWF f, d (Substrae W de f) A el registro f se le resta lo del registro de trabajo, si d=0 se almacena en W y si d=1 se almacena en f. ᴥ EQU Se utiliza para crear una variable, se coloca el nombre de la variable EQU y posteriormente la localidad del registro de propósito general donde se va a guardar la variable. ᴥ BCF f, b BSF f, b Coloca a 0 el bit b del registro f. Coloca a 1 el bit b del registro f. INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I DIAGRAMA DE FLUJO: INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I CÓDIGO EN MPLAB INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I SIMULACIÓN EN PROTEUS Ejercicio 4: ENUNCIADO DE LA APLICACIÓN: Realizar una aplicación para un PIC16F887 con las siguientes características: Se cuenta con 4 entradas PORT C0-C3 y una salida digital PORT C4 La salida se enciende con [0, 5, 9, 11, 14] OUT IN RC4 RC3 RC2 RC1 RC0 1 0 0 0 0 1 0 1 0 1 1 1 0 0 1 1 1 0 1 1 1 1 1 1 0 INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I DESARROLLO PARA PIC EN MPLAB ALGORITMO 1.- Configurar puertos de entrada y salida, al igual que las entradas analógicas o digitales. 2.- Limpiar los puertos. 3.- Definir o crear una variable. 4.- Mover de puerto B a nuestro registro de trabajo (W). 5.- Mover de W a “variable” 6.- Poner el bit 4 en 0. 7.- Realizar las comparaciones con las combinaciones verdaderas: Si M-PORTB-0==0 RB4=1 Si M-PORTB-5==0 RB4=1 Si M-PORTB-9==0 RB4=1 Si M-PORTB-B==0 RB4=1 Si M-PORTB-E==0 RB4=1 Para cualquier otra combinación RB4=0 8.- Regresar al paso 4. INSTRUCCIONES IMPORTANTES POR UTILIZAR ᴥ BTFSS f, b (Bit Test File Skip if Set) Prueba el bit b del registro f, si es 1 se brinca una instrucción y si es 0 ejecuta la siguiente instrucción. ᴥ BTFSC f, b (Bit Test File Skip if Clear) Prueba el bit b del registro f, si es 0 se brinca una instrucción y si es 1 ejecuta la siguiente instrucción. ᴥ SUBWF f, d (Substrae W de f) A el registro f se le resta lo del registro de trabajo, si d=0 se almacena en W y si d=1 se almacena en f. ᴥ EQU Se utiliza para crear una variable, se coloca el nombre de la variable EQU y posteriormente la localidad del registro de propósito general donde se va a guardar la variable. ᴥ BCF f, b BSF f, b Coloca a 0 el bit b del registro f. Coloca a 1 el bit b del registro f. INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I DIAGRAMA DE FLUJO INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I CÓDIGO INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I SIMULACIÓN EN PROTEUS Ejercicio 5: ENUNCIADO DE LA APLICACIÓN: Diseñar una aplicación que simule a un comparador de 4 líneas. Considerando las líneas de entrada: Dato B Dato A RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 B3 B2 B1 B0 A3 A2 A1 A0 Y las líneas de salida: Condición RA2 RA1 RA0 A<B 0 0 1 A=B 0 1 0 A>B 1 0 0 INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I DESARROLLO PARA PIC EN MPLAB ALGORITMO 1.- Limpiar cada uno de los puertos. 2.- Configurar entradas y salidas y declarar que sean digitales. 3.- Declarar las nuevas variables a utilizar. 4.- Guardar lo del registro B en W y posteriormente lo de W a nuestras variables creadas. 5.- Invertir los nibles. 6.- Realizar la operación lógica AND para separar los valores. 7.- Guardar dato A en W. 8.- Restar al dato B lo de W con la instrucción SUBWF. 9.- Evaluar el bit C del registro Status 10.- Crear bucles de instrucciones para cada una de las comparaciones con ayuda de la instrucción BTFSC. 11.- Regresar al paso 4. INSTRUCCIONES SUBWF f, d: Substrae W de f, si d es 0 el resultado es almacenado en W y si d es 1 el resultado es almacenado devuelta en el registro f. Los bits afectados en el STATUS son: C, DC, Z. SWAPF f,d: Intercambia los nibles de f. El nible superior e inferior del registro f son intercambiados. Si d es 0 el resultado es almacenado en el registro W y si d es 1 el resultado es almacenado en el registro f. Los bits afectados en el STATUS: Ninguno INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I DIAGRAMA DE FLUJO INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I CÓDIGO INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I SIMULACIÓN EN PROTEUS INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I ARMADO EN PROTOBOARD Ejercicio 6-A: ENUNCIADO DE LA APLICACIÓN: Diseñar una aplicación que simule a un sumador de 2 datos. Considerando las líneas de entrada: Dato A Dato B RB4 RB3 RB2 RB1 RB0 RC3 RC2 RC1 RC0 A4 A3 A2 A1 A0 B3 B2 B1 B0 DESARROLLO PARA PIC EN MPLAB ALGORITMO 1.- Limpiar cada uno de los puertos. 2.- Configurar entradas y salidas y declarar que sean digitales. 3.- Declarar las nuevas variables a utilizar. 4.- Leer y guardar lo del registro B en W y posteriormente lo de W a nuestra primera variable creada. 5.- Leer y guardar lo del registro C en W y posteriormente lo de W a nuestra segunda variable creada. INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I 6.- Usar la operación lógica en ambas variables para cerciorarnos que no haya alguna interferencia. 7.- Sumar ambas variables mediante la instrucción ADDWF recordando que debemos utilizar como intermediario el registro de trabajo. 8.- Asignarle al puertoD el resultado de la suma de ambas variables. 9.- Regresar al paso 4. INSTRUCCIONES ADDWF f, d: Suma lo de W y f, si d es 0 el resultado es almacenado en W y si d es 1 el resultado es almacenado devuelta en el registro f. Los bits afectados en el STATUS son: C, DC, Z. INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I DIAGRAMA DE FLUJO INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I CÓDIGO SIMULACIÓN EN PROTEUS INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I ARMADO EN PROTOBOARD INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I Ejercicio 6-B: ENUNCIADO DE LA APLICACIÓN: Diseñar una aplicación que sume dos números uno de 5 bits y otro de 4 bits y que muestre el resultado en base decimal en dos displays. Considerando las líneas de entrada: Dato B Dato A RB4 RB3 RB2 RB1 RB0 RA3 RA2 RA1 RA0 B4 B3 B2 B1 B0 A3 A2 A1 A0 Y considerar para las salidas el puerto C y el puerto D respectivamente para cada uno de los displays. ALGORITMO 1.- Cargar la librería del PIC16F887 2.- Limpiar cada uno de los puertos. 3.- Configurar cada uno de los puertos, cuales son entrada y cuales son salida. 4.- Declarar e indicar la dirección de las variables que vamos a crear. 5.- Leer el puerto A y guardarlo en el registro de trabajo W. 6.- Aplicar la operación lógica AND para invertir los bits. 7.- Leer el puerto B y guardarlo en el registro de trabajo W. 8.- Aplicar la operación lógica AND para invertir los bits. 9.- Utilizar la instrucción suma y sumar Dato A y dato B. 10.- Llamar a la subrutina “display “(donde se encuentra la configuración de ellos). 11.- Mover lo del registro de trabajo a nuestra variable UNID. 12.- Llamar a la subrutina tabla donde se encuentran las configuraciones para cada uno de los números que se mostrarán en el display. 13.- Mover lo del registro de trabajo a nuestra variable DEC. 14.- Llamar nuevamente a la subrutina tabla. INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I 15.- Mover lo del registro de trabajo al puerto D. 16.- Regresar al paso 5. INSTRUCCIONES NUEVAS POR UTILIZAR ADDWF f, d: Esta instrucción suma el contenido el registro W y del registro f. CALL: Llama a la subrutina “K”. INCF f, d: Incrementa a f en 1. RETLW k: Retorno con K en W. DIAGRAMA DE FLUJO INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I CÓDIGO INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I SIMULACIÓN EN PROTEUS INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I Ejercicio 7: ENUNCIADO DE LA APLICACIÓN: Diseñar un circuito de control y potencia para arranque y paro de un motor de CD. ALGORITMO 1.- Cargar librería del PIC16F887 2.- Limpiar cada uno de los puertos. 3.- Configurar los puertos, seleccionando que bits serán entradas y cuales salidas. (B0=arranque, B1=paro, B2= salida). 4.- Declarar variable (Flag1) así como la dirección en la que se va a guardar. 5.- Leer el bit B1; si B1=1 Flag1=0 6.- Leer el bit B0; si B0=1 Flag1=1 7.- Si Flag1=0 regresar a 5. 8.- Si Flag1=1 B2=1 y regresar al paso 5. INSTRUCCIONES *INCF f,d: Incrementa el registro f El resultado de esta operación lo coloca en el destino d. Si d=0 el resultado lo coloca en el acumulador Si d=1 el resultado se coloca en el mismo registro f Si el contenido del registro se encuentra en 0xFF y se ejecuta un Incremento el resultado es 0x00 INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I DIAGRAMA DE FLUJO CÓDIGO INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I SIMULACIÓN EN PROTEUS INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I Ejercicio 8: ENUNCIADO DE LA APLICACIÓN: Diseñar una aplicación que por medio de sensores y un motor de CD, muevan una plataforma entre ellos y realice una secuencia de movimiento. Considerando las líneas de entrada: SENSORES BOTONES RB5 RB4 RB3 RB2 RB1 RB0 S4 S3 S2 S1 BP BA Y las líneas de salida: MOVIMIENTO RD0 RD1 Motor gira a la derecha 1 0 Motor gira a la izqueirda 0 1 ALGORITMO 1. Seleccionar el Banco 0 2. Limpiar los puertos. 3. Limpiar la información de ANSEL y ANSELH 4. Seleccionar el banco 1 5. Configurar entradas y salidas TRISB y TRISD. 6. Regresar al Banco 0. 7. Definir variables: FLAG. 8. Preguntar por el botón de paro. Si el botón esta apretado ir a BP. 9. Preguntar si S1=1. Si el sensor está activado regresar al paso 8. 10. Preguntar por el botón de arranque. Si está activado ir BA, si no regresar al paso 8. INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I 11. Al oprimir el botón de arranque o paro se regresará a la etiqueta ‘PRINCIPAL’ donde se correrá la secuencia. 12. Al activarse ‘PRINCIPAL’ se pregunta por FLAG y se comienza a correr la SECUENCIA 1. 13. En la secuencia 1 se gira el motor hacia la derecha y se pregunta por el sensor 3 (PORTB 4). 14. Si se detecta el sensor 3 la secuencia se dirige hacia APAGADO_1 donde se activa la segunda secuencia. Si el sensor no es detectado, se pregunta por el botón de paro. Si esta oprimido se dirige a REACOMODO_1 de lo contrario, se regresa al paso 13. 15. En REACOMODO_1 se pregunta por el sensor 1 y en caso de estar oprimido se dirige a PARO_E en donde se limpia el bit 1 del PORTD y se regresa al paso 8. 16. Si se continúa a la secuencia 2, se gira el motor hacia la izquierda y se pregunta por el sensor 2 (PORTB 3). 17. Si se detecta el sensor 2 la secuencia se dirige hacia APAGADO_2 donde se activa la tercera secuencia. Si el sensor no es detectado, se pregunta por el botón de paro. Si esta oprimido se dirige al paso 15. 18. Si se continúa a la secuencia 3, se gira el motor hacia la derecha y se pregunta por el sensor 4 (PORTB 5). 19. Si se detecta el sensor 4 la secuencia se dirige hacia APAGADO_3 donde se activa la cuarta secuencia. Si el sensor no es detectado, se pregunta por el botón de paro. Si esta oprimido se dirige a paso 15. 20. Si se continúa a la secuencia 4, se gira el motor hacia la izquierda y se pregunta por el sensor 1 (PORTB 2). 21. Si se detecta el sensor 1 la secuencia se dirige hacia APAGADO_4 donde se activa la quinta secuencia. Si el sensor no es detectado, se pregunta por el botón de paro. Si esta oprimido se dirige a paso 15. 22. Si se continúa a la secuencia 5, se gira el motor hacia la derecha y se pregunta por el sensor 4 (PORTB 3). 23. Si se detecta el sensor 4 la secuencia se dirige hacia APAGADO_5 donde se activa la sexta secuencia. Si el sensor no es detectado, se pregunta por el botón de paro. Si esta oprimido se dirige a paso 15. INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I 24. Si se continúa a la secuencia6, se gira el motor hacia la derecha y se pregunta por el sensor 1 (PORTB 2). 25. Si se detecta el sensor 4 la secuencia se dirige hacia APAGADO_6 donde se regresa al paso 12. Si el sensor no es detectado, se pregunta por el botón de paro. Si esta oprimido se dirige a paso 15. INSTRUCCIONES BTFSC Verifica que el bit tenga un 0 lógico, y de igualmanera, si es cierto, se salta la instrucción siguiente, y si es falsa entonces hace la siguiente. BTFSS Verifica que el bit del puerto o variable especificado se encuentre en 1 lógico, si la respuesta es cierta entonces se salta la siguiente instrucción, mientras que si no lo es, realiza la sig instrucción. BCF Pone en cero un bit en específico de un registro. BSF Pone en uno un bit en específico de un registro. INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I DIAGRAMA DE FLUJO INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I CÓDIGO INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I SIMULACIÓN EN PROTEUS INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I Ejercicio 9: ENUNCIADO DE LA APLICACIÓN: Diseñar una aplicación en la que se muestre un texto diseñado previamente en una LCD. DESARROLLO PARA PIC EN MPLAB ALGORITMO 1.- Seleccionar el microcontrolador. 2.- Cargamos librería. 3.- Declaramos variables. 4.- Limpiamos puertos y el registro de banco ansel. 5.- Declaramos puertos de entrada y salida. 6.- Creamos un retardo. 7.- Creamos una subrutina para escribir los comandos en la LCD y llamamos al retardo. 8.- Creamos una subrutina para mostrar los datos en la LCD y llamamos al retardo. 9.- Configuramos el texto a mostrar en la LCD. INSTRUCCIONES Call Sirve para hacer llamadas a funciones en ensamblador. BCFN Sirve para poner en cero un bit en específico de un registro. BSF Sirve para poner en 1 un bit en específico de un registro. DECFSZ Sirve para decrementar cierta cantidad a una variable y guardarle en ella misma INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I DIAGRAMA DE FLUJO INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I CÓDIGO INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I SIMULACIÓN EN PROTEUS
Compartir