El documento describe el módulo transmisor USART (Universal Synchronous Asynchronous Receiver Transmitter) que se encuentra en los microcontroladores PIC16F87X. El USART puede configurarse en modo asíncrono o síncrono para comunicarse con dispositivos periféricos. Incluye generador de baudios, circuitos de transmisión y recepción, y registros para configurar el modo, velocidad y flujo de datos.
El documento describe el módulo de comunicaciones serie síncrona (MSSP) de un microcontrolador PIC, el cual permite la comunicación con periféricos externos a través de los protocolos SPI e I2C. El MSSP puede operar como maestro o esclavo y transferir datos de 8 bits de forma síncrona. Se explican los registros de configuración y estado asociados al módulo, así como los modos de operación maestro y esclavo.
El documento describe el módulo TIMER2 del PIC16F87X. El TIMER2 es un temporizador-contador ascendente de 8 bits que puede usarse como base de tiempo para otros módulos. Tiene un registro de periodo PR2 que, cuando coincide con el valor del contador TMR2, genera una interrupción. El preescaler y postescaler permiten dividir la señal de reloj y la interrupción respectivamente.
Este documento describe el módulo TIMER0 del PIC16F87X. El TIMER0 es un temporizador/contador de 8 bits con interrupción por desbordamiento. Tiene un preescaler programable de 8 bits y puede trabajar con el reloj interno o externo. Se proporciona un ejemplo de programa que muestra números de 0 a 9 en un display cada segundo usando la interrupción del TIMER0.
Este documento describe el módulo CCP (Captura/Comparación/PWM) de los microcontroladores PIC16F87X. El módulo CCP contiene dos registros de 16 bits que pueden funcionar como registros de captura, comparación o PWM. El módulo CCP1 y CCP2 son idénticos excepto por el modo de disparo especial de CCP2. El documento explica en detalle los modos de funcionamiento de captura, comparación y PWM, así como la configuración y uso de los registros asociados.
El documento describe los registros PCL y PCLATH que almacenan la dirección del programa counter (PC). También describe la pila de 8 niveles que almacena el valor de PC para las instrucciones CALL y las interrupciones. Finalmente, explica cómo la memoria de programa de 8Kb está paginada en bloques de 2Kb a través de los bits PCLATH<4:3>.
El documento describe un circuito y programa bootloader que permiten programar PIC16F87X de forma más rápida. El circuito incluye un PIC16F876, cristal, MAX232 y conector DB-9 para conectar al PC. El programa bootloader carga el código hexadecimal del programa de usuario a través de la USART, reduciendo el tiempo de programación. Al pulsar el reset, el bootloader recibe el código; de lo contrario ejecuta el programa de usuario.
El documento describe el bus I2C, incluyendo sus características, formatos de transferencia de datos y dispositivos compatibles. Explica que el bus I2C es un bus serie de dos líneas (SDA y SCL) más la línea de masa que permite conectar múltiples dispositivos. También describe el funcionamiento del periférico PCF8574A, un dispositivo de entrada/salida digital que se puede conectar al bus I2C para ampliar los puertos de un microcontrolador.
El documento describe el funcionamiento del puerto MSSP en modo I2C. El puerto MSSP puede funcionar como maestro o esclavo en el bus I2C, utilizando direcciones de 7 u 10 bits. En modo esclavo, recibe datos y direcciones del maestro y genera señales de acknowledgment, mientras que en modo maestro controla las líneas de datos y clock para comunicarse con los esclavos. El puerto utiliza varios registros para controlar la comunicación y almacenar datos de entrada y salida.
El documento describe el módulo de comunicaciones serie síncrona (MSSP) de un microcontrolador PIC, el cual permite la comunicación con periféricos externos a través de los protocolos SPI e I2C. El MSSP puede operar como maestro o esclavo y transferir datos de 8 bits de forma síncrona. Se explican los registros de configuración y estado asociados al módulo, así como los modos de operación maestro y esclavo.
El documento describe el módulo TIMER2 del PIC16F87X. El TIMER2 es un temporizador-contador ascendente de 8 bits que puede usarse como base de tiempo para otros módulos. Tiene un registro de periodo PR2 que, cuando coincide con el valor del contador TMR2, genera una interrupción. El preescaler y postescaler permiten dividir la señal de reloj y la interrupción respectivamente.
Este documento describe el módulo TIMER0 del PIC16F87X. El TIMER0 es un temporizador/contador de 8 bits con interrupción por desbordamiento. Tiene un preescaler programable de 8 bits y puede trabajar con el reloj interno o externo. Se proporciona un ejemplo de programa que muestra números de 0 a 9 en un display cada segundo usando la interrupción del TIMER0.
Este documento describe el módulo CCP (Captura/Comparación/PWM) de los microcontroladores PIC16F87X. El módulo CCP contiene dos registros de 16 bits que pueden funcionar como registros de captura, comparación o PWM. El módulo CCP1 y CCP2 son idénticos excepto por el modo de disparo especial de CCP2. El documento explica en detalle los modos de funcionamiento de captura, comparación y PWM, así como la configuración y uso de los registros asociados.
El documento describe los registros PCL y PCLATH que almacenan la dirección del programa counter (PC). También describe la pila de 8 niveles que almacena el valor de PC para las instrucciones CALL y las interrupciones. Finalmente, explica cómo la memoria de programa de 8Kb está paginada en bloques de 2Kb a través de los bits PCLATH<4:3>.
El documento describe un circuito y programa bootloader que permiten programar PIC16F87X de forma más rápida. El circuito incluye un PIC16F876, cristal, MAX232 y conector DB-9 para conectar al PC. El programa bootloader carga el código hexadecimal del programa de usuario a través de la USART, reduciendo el tiempo de programación. Al pulsar el reset, el bootloader recibe el código; de lo contrario ejecuta el programa de usuario.
El documento describe el bus I2C, incluyendo sus características, formatos de transferencia de datos y dispositivos compatibles. Explica que el bus I2C es un bus serie de dos líneas (SDA y SCL) más la línea de masa que permite conectar múltiples dispositivos. También describe el funcionamiento del periférico PCF8574A, un dispositivo de entrada/salida digital que se puede conectar al bus I2C para ampliar los puertos de un microcontrolador.
El documento describe el funcionamiento del puerto MSSP en modo I2C. El puerto MSSP puede funcionar como maestro o esclavo en el bus I2C, utilizando direcciones de 7 u 10 bits. En modo esclavo, recibe datos y direcciones del maestro y genera señales de acknowledgment, mientras que en modo maestro controla las líneas de datos y clock para comunicarse con los esclavos. El puerto utiliza varios registros para controlar la comunicación y almacenar datos de entrada y salida.
Este documento presenta un curso sobre los microcontroladores PIC16F87X. Explica que el curso se basa en cuatro microcontroladores de la familia PIC16F87X con diferentes números de pines y capacidades de memoria. También proporciona detalles sobre las características principales y periféricos de los PIC16F87X y concluye con un ejercicio práctico para configurar las entradas y salidas digitales.
El documento describe la organización de la memoria en los microcontroladores PIC16F87X. Estos dispositivos tienen tres bloques de memoria: memoria de programa, memoria RAM y memoria EEPROM. La memoria RAM se divide en cuatro bancos que contienen registros de propósito general y registros de funciones especiales. Los bits del registro STATUS seleccionan qué banco está activo.
El documento describe el módulo convertidor analógico/digital (A/D) de los microcontroladores PIC16F87X. Incluye cinco o ocho entradas analógicas dependiendo del dispositivo. La señal analógica se aplica a un condensador de muestreo y luego al convertidor A/D de aproximaciones sucesivas que produce una palabra de 10 bits. El convertidor A/D puede seleccionar la tensión de referencia interna o externa y tiene cuatro registros asociados: ADRESH, ADRESL, ADCON0 y AD
El documento describe la práctica realizada para la primera evaluación de la asignatura de microprocesadores. Se configuraron y utilizaron periféricos como el TMR0, ADC y USART de un PIC16F887. Se implementó un programa para digitalizar dos canales analógicos y enviarlos a una PC a una velocidad de 500 muestras por segundo usando la transmisión serial USART.
El documento describe la comunicación serial asíncrona mediante el módulo USART en los microcontroladores. El USART permite la transmisión y recepción de datos de forma asíncrona utilizando el protocolo RS-232 de 8 o 9 bits. El USART incluye un generador de baudios cuya frecuencia depende del registro SPBRG y el bit BRGH. Para la transmisión, los datos se cargan en el registro TXREG y se envían de forma secuencial utilizando el registro de desplazamiento TSR. Para la recepción, los datos se introducen en
Este documento describe la comunicación serial asíncrona mediante el módulo USART de los microcontroladores. Explica el protocolo RS-232, el funcionamiento del módulo USART incluyendo el generador de baudios, y los detalles de la transmisión y recepción asíncrona serial a través de los registros y bits de control asociados como TXREG, RXREG, SPBRG y TXSTA.
Este documento describe cómo configurar y usar la transmisión y recepción serial en un PIC16F877. Explica cómo configurar la velocidad a 9600 bps, habilitar la transmisión y recepción, y transmitir y recibir datos individuales.
El documento describe las herramientas de programación para microcontroladores. Explica instrucciones para manipular bits, explorar y probar bits, y el estado del registro. También cubre temas como seleccionar bancos de registros, configurar puertos como entrada o salida, leer y escribir valores en puertos, y tomar decisiones basadas en condiciones internas o externas.
Este documento describe varios proyectos prácticos con el microcontrolador PIC16F84, incluyendo la conexión de LED y dipswitch, el manejo de un display de siete segmentos para hacer un contador decimal, y la técnica de multiplexaje para leer teclados y mostrar datos en displays utilizando menos líneas de E/S. También se incluyen diagramas esquemáticos, diagramas de flujo y código de programa para cada proyecto.
Este documento proporciona información técnica detallada sobre el microcontrolador PIC16F84A, incluyendo sus características de CPU y periféricos, diagrama de bloques, pines de entrada/salida, organización de memoria de programa y datos, y descripción de los registros de propósito especial.
Este documento presenta una guía de tres pasos para resolver problemas de programación: 1) Enunciado y delimitación del hardware, 2) Diagrama de flujo, 3) Elaboración del lenguaje ensamblador. Explica cada paso en detalle y proporciona ejemplos de código ensamblador para tres ejercicios de programación de microcontroladores.
El documento contiene varios temas relacionados con el uso de microcontroladores, incluyendo rutinas temporizadas, enmascaramiento de datos, uso de llamadas a subrutinas, tablas y multiplexación de displays. Explica conceptos como el almacenamiento del contador de programa en la pila al llamar a una subrutina y cómo generar retardos por software sin usar el temporizador interno.
Este documento describe el módulo CCP (Captura/Comparación/PWM) de los microcontroladores. Explica los modos de captura, comparación y PWM, mostrando flujogramas y ejemplos. El modo captura almacena valores de temporizadores, el modo comparación genera eventos al coincidir valores y el modo PWM genera señales de anchura variable.
1) El documento describe las características y funcionamiento del módulo CCP y los timers TMR1 y TMR2 de los microcontroladores PIC16F84.
2) Incluye ejemplos de configuración de los timers para diferentes usos como temporización, conteo de eventos y generación de señales PWM.
3) Explica los registros asociados a cada elemento y cómo funcionan los modos de captura, comparación y PWM del módulo CCP.
El documento describe el uso de timers en PIC18, incluyendo timers 0-3. Explica cómo funcionan como contadores o temporizadores, y proporciona un ejemplo de código que configura el timer0 para generar interrupciones cada 5 milisegundos usando un prescaler de 16, generando un parpadeo en un LED.
El documento describe el conversor analógico-digital (A/D) de 10 bits y 14 canales del microcontrolador PIC16F88X. Explica que el conversor A/D convierte señales analógicas en valores digitales mediante aproximaciones sucesivas y describe los registros y pasos involucrados en el proceso de conversión A/D.
Este documento describe el manejo de un teclado matricial 4x4 con un PIC16F84A. Las filas del teclado se conectan a las líneas RB0-RB3 del PIC y se configuran como salidas, mientras que las columnas se conectan a las líneas RB4-RB7 y se configuran como entradas. Se realiza un barrido de las filas para detectar qué tecla fue pulsada basándose en los niveles de voltaje de las columnas. La librería incluida proporciona subrutinas para inicializar el
programacion con microcontrolador pic 16f84guestf09168b
Este documento introduce la programación del microcontrolador PIC 16F84. Explica las características básicas del PIC 16F84 como su memoria, puertos de entrada y salida, y frecuencia de trabajo. También presenta instrucciones básicas de programación en ensamblador como cargar valores, sumar y restar registros. Finalmente, incluye ejemplos de código para sumar números en diferentes sistemas de numeración.
Este documento proporciona una descripción detallada del PIC16F87, incluyendo:
1) Una explicación de los puertos de entrada/salida y su configuración.
2) Ejemplos de código para configurar los puertos y controlar LEDs y botones.
3) Una discusión sobre el efecto rebote de los botones y cómo eliminarlo en el código.
4) Diferentes implementaciones de una subrutina para pausas de 20 milisegundos.
Este documento describe el puerto serial USART (Universal Synchronous Asynchronous Receiver Transmitter) en los microcontroladores. El puerto USART permite la comunicación bidireccional asincrónica simultánea a través de los registros TXREG y RCREG. Puede operar en modo asincrónico o sincrónico. En modo asincrónico es más común y permite comunicaciones a mayor distancia, aunque más lentas. Se requiere un circuito MAX232 para adaptar los niveles lógicos RS-232 del PC a los niveles TTL del microcontrolador.
Este documento describe cómo configurar y usar el módulo EUSART en el microcontrolador PIC16F887 para comunicaciones serie asíncronas. Explica que el EUSART puede configurarse para comunicaciones asíncronas bidireccionales usando dos líneas TX y RX, y describe los pasos para configurar la transmisión y recepción asíncrona, incluyendo la configuración de registros como TXSTA, RCSTA y BAUDCTL para establecer la velocidad de baudios.
El documento describe el módulo USART (Universal Synchronous/Asynchronous Receiver/Transmitter) que permite la comunicación serie asíncrona y síncrona en los microcontroladores PIC. El módulo USART incluye registros para la transmisión y recepción de datos así como para la configuración de parámetros como la velocidad de transmisión. Se explican los protocolos asíncronos con bits de inicio y parada y la posibilidad de usar 9 bits de dirección. También se incluyen ejemplos de código para la transmisión y recepción
Este documento presenta un curso sobre los microcontroladores PIC16F87X. Explica que el curso se basa en cuatro microcontroladores de la familia PIC16F87X con diferentes números de pines y capacidades de memoria. También proporciona detalles sobre las características principales y periféricos de los PIC16F87X y concluye con un ejercicio práctico para configurar las entradas y salidas digitales.
El documento describe la organización de la memoria en los microcontroladores PIC16F87X. Estos dispositivos tienen tres bloques de memoria: memoria de programa, memoria RAM y memoria EEPROM. La memoria RAM se divide en cuatro bancos que contienen registros de propósito general y registros de funciones especiales. Los bits del registro STATUS seleccionan qué banco está activo.
El documento describe el módulo convertidor analógico/digital (A/D) de los microcontroladores PIC16F87X. Incluye cinco o ocho entradas analógicas dependiendo del dispositivo. La señal analógica se aplica a un condensador de muestreo y luego al convertidor A/D de aproximaciones sucesivas que produce una palabra de 10 bits. El convertidor A/D puede seleccionar la tensión de referencia interna o externa y tiene cuatro registros asociados: ADRESH, ADRESL, ADCON0 y AD
El documento describe la práctica realizada para la primera evaluación de la asignatura de microprocesadores. Se configuraron y utilizaron periféricos como el TMR0, ADC y USART de un PIC16F887. Se implementó un programa para digitalizar dos canales analógicos y enviarlos a una PC a una velocidad de 500 muestras por segundo usando la transmisión serial USART.
El documento describe la comunicación serial asíncrona mediante el módulo USART en los microcontroladores. El USART permite la transmisión y recepción de datos de forma asíncrona utilizando el protocolo RS-232 de 8 o 9 bits. El USART incluye un generador de baudios cuya frecuencia depende del registro SPBRG y el bit BRGH. Para la transmisión, los datos se cargan en el registro TXREG y se envían de forma secuencial utilizando el registro de desplazamiento TSR. Para la recepción, los datos se introducen en
Este documento describe la comunicación serial asíncrona mediante el módulo USART de los microcontroladores. Explica el protocolo RS-232, el funcionamiento del módulo USART incluyendo el generador de baudios, y los detalles de la transmisión y recepción asíncrona serial a través de los registros y bits de control asociados como TXREG, RXREG, SPBRG y TXSTA.
Este documento describe cómo configurar y usar la transmisión y recepción serial en un PIC16F877. Explica cómo configurar la velocidad a 9600 bps, habilitar la transmisión y recepción, y transmitir y recibir datos individuales.
El documento describe las herramientas de programación para microcontroladores. Explica instrucciones para manipular bits, explorar y probar bits, y el estado del registro. También cubre temas como seleccionar bancos de registros, configurar puertos como entrada o salida, leer y escribir valores en puertos, y tomar decisiones basadas en condiciones internas o externas.
Este documento describe varios proyectos prácticos con el microcontrolador PIC16F84, incluyendo la conexión de LED y dipswitch, el manejo de un display de siete segmentos para hacer un contador decimal, y la técnica de multiplexaje para leer teclados y mostrar datos en displays utilizando menos líneas de E/S. También se incluyen diagramas esquemáticos, diagramas de flujo y código de programa para cada proyecto.
Este documento proporciona información técnica detallada sobre el microcontrolador PIC16F84A, incluyendo sus características de CPU y periféricos, diagrama de bloques, pines de entrada/salida, organización de memoria de programa y datos, y descripción de los registros de propósito especial.
Este documento presenta una guía de tres pasos para resolver problemas de programación: 1) Enunciado y delimitación del hardware, 2) Diagrama de flujo, 3) Elaboración del lenguaje ensamblador. Explica cada paso en detalle y proporciona ejemplos de código ensamblador para tres ejercicios de programación de microcontroladores.
El documento contiene varios temas relacionados con el uso de microcontroladores, incluyendo rutinas temporizadas, enmascaramiento de datos, uso de llamadas a subrutinas, tablas y multiplexación de displays. Explica conceptos como el almacenamiento del contador de programa en la pila al llamar a una subrutina y cómo generar retardos por software sin usar el temporizador interno.
Este documento describe el módulo CCP (Captura/Comparación/PWM) de los microcontroladores. Explica los modos de captura, comparación y PWM, mostrando flujogramas y ejemplos. El modo captura almacena valores de temporizadores, el modo comparación genera eventos al coincidir valores y el modo PWM genera señales de anchura variable.
1) El documento describe las características y funcionamiento del módulo CCP y los timers TMR1 y TMR2 de los microcontroladores PIC16F84.
2) Incluye ejemplos de configuración de los timers para diferentes usos como temporización, conteo de eventos y generación de señales PWM.
3) Explica los registros asociados a cada elemento y cómo funcionan los modos de captura, comparación y PWM del módulo CCP.
El documento describe el uso de timers en PIC18, incluyendo timers 0-3. Explica cómo funcionan como contadores o temporizadores, y proporciona un ejemplo de código que configura el timer0 para generar interrupciones cada 5 milisegundos usando un prescaler de 16, generando un parpadeo en un LED.
El documento describe el conversor analógico-digital (A/D) de 10 bits y 14 canales del microcontrolador PIC16F88X. Explica que el conversor A/D convierte señales analógicas en valores digitales mediante aproximaciones sucesivas y describe los registros y pasos involucrados en el proceso de conversión A/D.
Este documento describe el manejo de un teclado matricial 4x4 con un PIC16F84A. Las filas del teclado se conectan a las líneas RB0-RB3 del PIC y se configuran como salidas, mientras que las columnas se conectan a las líneas RB4-RB7 y se configuran como entradas. Se realiza un barrido de las filas para detectar qué tecla fue pulsada basándose en los niveles de voltaje de las columnas. La librería incluida proporciona subrutinas para inicializar el
programacion con microcontrolador pic 16f84guestf09168b
Este documento introduce la programación del microcontrolador PIC 16F84. Explica las características básicas del PIC 16F84 como su memoria, puertos de entrada y salida, y frecuencia de trabajo. También presenta instrucciones básicas de programación en ensamblador como cargar valores, sumar y restar registros. Finalmente, incluye ejemplos de código para sumar números en diferentes sistemas de numeración.
Este documento proporciona una descripción detallada del PIC16F87, incluyendo:
1) Una explicación de los puertos de entrada/salida y su configuración.
2) Ejemplos de código para configurar los puertos y controlar LEDs y botones.
3) Una discusión sobre el efecto rebote de los botones y cómo eliminarlo en el código.
4) Diferentes implementaciones de una subrutina para pausas de 20 milisegundos.
Este documento describe el puerto serial USART (Universal Synchronous Asynchronous Receiver Transmitter) en los microcontroladores. El puerto USART permite la comunicación bidireccional asincrónica simultánea a través de los registros TXREG y RCREG. Puede operar en modo asincrónico o sincrónico. En modo asincrónico es más común y permite comunicaciones a mayor distancia, aunque más lentas. Se requiere un circuito MAX232 para adaptar los niveles lógicos RS-232 del PC a los niveles TTL del microcontrolador.
Este documento describe cómo configurar y usar el módulo EUSART en el microcontrolador PIC16F887 para comunicaciones serie asíncronas. Explica que el EUSART puede configurarse para comunicaciones asíncronas bidireccionales usando dos líneas TX y RX, y describe los pasos para configurar la transmisión y recepción asíncrona, incluyendo la configuración de registros como TXSTA, RCSTA y BAUDCTL para establecer la velocidad de baudios.
El documento describe el módulo USART (Universal Synchronous/Asynchronous Receiver/Transmitter) que permite la comunicación serie asíncrona y síncrona en los microcontroladores PIC. El módulo USART incluye registros para la transmisión y recepción de datos así como para la configuración de parámetros como la velocidad de transmisión. Se explican los protocolos asíncronos con bits de inicio y parada y la posibilidad de usar 9 bits de dirección. También se incluyen ejemplos de código para la transmisión y recepción
Este documento trata sobre el módulo USART y la comunicación serial asíncrona. Introduce el protocolo RS-232, explica cómo funcionan el transmisor y receptor asíncronos a nivel de hardware, y describe la configuración y uso del módulo USART en el lenguaje C, incluyendo funciones para la transmisión y recepción de datos.
La USART permite la comunicación síncrona o asíncrona, transmisión y recepción de datos en modo full duplex. Está compuesta por un generador de baudios, circuito de muestreo y transmisor/receptor asíncrono. Existen registros de control como SPBRG, TXSTA y RCSTA para configurar la velocidad, modo y habilitar la transmisión y recepción. El dato recibido se almacena en RCREG y el transmitido en TXREG.
El documento describe los recursos de comunicación serial incluidos en los microcontroladores ATMega8 y ATMega16, como USART, SPI e I2C. Explica el funcionamiento de la interfaz USART, incluyendo la transmisión y recepción de datos asíncrona y síncrona, y los registros relacionados como UBRR, UCSRA, UCSRB y UCSRC. También cubre temas como la configuración del baud rate, detección y manejo de errores, y comunicación multiprocesador.
Este documento presenta un examen final sobre microcontroladores de 60 puntos con 20 preguntas de opción múltiple. Se da una hora y 20 minutos para completar la prueba. Cada pregunta vale 3 puntos y se debe marcar la respuesta correcta en una tabla de respuestas provista al final. El examen cubre temas como el convertidor ADC, comunicación serial USART, interrupciones y modos de funcionamiento del PIC16F877.
Este documento presenta un examen final sobre microcontroladores de 60 puntos con 20 preguntas de opción múltiple. Se da una hora y 20 minutos para completar la prueba. Cada pregunta vale 3 puntos y se debe marcar la respuesta correcta en una tabla de respuestas provista al final. El examen cubre temas como el convertidor ADC, comunicación serial USART, interrupciones y modos de funcionamiento del PIC16F877.
Este documento presenta un examen final sobre microcontroladores para estudiantes. Consiste en 20 preguntas de opción múltiple sobre temas como convertidores ADC, memoria FLASH, comunicación serial USART y módulos de temporización y PWM en el microcontrolador PIC16F877. Los estudiantes deben marcar la respuesta correcta para cada pregunta en una tabla de respuestas.
Este documento presenta un examen final sobre microcontroladores PIC16F877 de 60 puntos. Consiste en 20 preguntas de opción múltiple sobre temas como conversión ADC, memoria FLASH, comunicación serial USART, interrupciones y módulos PWM. El estudiante debe marcar la respuesta correcta para cada pregunta en una tabla de respuestas provista al final.
Este documento presenta un examen final sobre microcontroladores de 60 puntos. Consiste en 20 preguntas de opción múltiple sobre temas como convertidores ADC, comunicación serial, USART, interrupciones y PWM en PIC16F877. Incluye tablas para llenar con las respuestas y fórmulas de ayuda.
Este documento describe el funcionamiento del USART (Universal Synchronous Asynchronous Receiver Transmitter) en modo asíncrono serie para realizar comunicaciones seriales entre un microcontrolador PIC16F87X y un computador. Explica los registros TXSTA y RCSTA para la configuración del transmisor y receptor, respectivamente, y cómo generar la frecuencia de baudios mediante el registro SPBRG. Además, detalla los pasos para implementar la transmisión y recepción de datos de forma asíncrona. Finalmente, comenta cómo simular esta comunicación serial en Proteus
Este documento presenta un examen final de 60 puntos sobre microcontroladores. Contiene 20 preguntas de opción múltiple sobre temas como conversión ADC, comunicación serial, USART, interrupciones y PWM en PIC16F877. El estudiante debe marcar la respuesta correcta para cada pregunta en una tabla de respuestas.
El documento describe el estándar RS-232C para comunicaciones en serie entre periféricos y computadoras. Explica que los puertos serie se usan para conectar dispositivos como módems, también describe las características del estándar RS-232 como las señales, conectores, velocidades de transmisión y cómo funciona la comunicación en serie en los microcontroladores. Finalmente muestra ejemplos de código para enviar y recibir datos a través del puerto serie.
El documento describe el microcontrolador PIC16F877. Tiene memoria FLASH que permite reprogramación sin borrado, bajo consumo de potencia y es estático. Tiene 5 puertos de E/S y puede configurarse cada pin como entrada o salida. Incluye convertidor análogo a digital y puede usarse con oscilador de cristal o RC para fijar la frecuencia de operación.
El documento describe el estándar RS-232 para la comunicación serial entre dispositivos de terminal de datos y equipos de comunicaciones de datos. Define los niveles de voltaje, pines, formato de bits y otros parámetros para la transmisión asincrónica de datos entre dos dispositivos a través de un puerto serial RS-232. También cubre el control de flujo, representación de caracteres, conectores y otros aspectos de la interfaz RS-232.
Microcontroladores: Fundamentos de microprocesadores y microcontroladoresSANTIAGO PABLO ALBERTO
Este documento describe una práctica de laboratorio para conectar una pantalla LCD, un teclado matricial y un puerto serial a un microprocesador. Incluye código en ensamblador para inicializar la LCD, leer el teclado matricial, mostrar datos en la LCD y enviarlos por el puerto serial. Explica cómo funcionan los dispositivos y el flujo de datos entre ellos.
Este documento proporciona una descripción general del microcontrolador PIC16F877. Pertenece a la familia de microcontroladores PIC de 8 bits de Microchip y tiene características como arquitectura Harvard, tecnología RISC y CMOS. El PIC16F877 incluye hasta 8K bytes de memoria flash, 368 bytes de RAM y 256 bytes de EEPROM, así como periféricos como timers, ADC, USART y puertos I/O. El documento explica la arquitectura interna del PIC16F877, incluyendo su CPU, c
El documento describe el puerto serie del computador, incluyendo que es una interfaz de comunicaciones que transmite datos bit a bit, y que utiliza el estándar RS-232. También explica cómo funciona el chip UART para controlar la transmisión de datos a través del puerto serie, y los pasos necesarios para configurar el puerto serie en un microcontrolador PIC para comunicarse con un computador.
Similar a Curso de microcontroladores capitulo 12 (20)
El documento presenta una guía para instalar y configurar Ubuntu de forma amena y divertida. Explica brevemente qué es Ubuntu, su popularidad como sistema operativo libre, e incluye un resumen del contenido del libro que contiene 7 capítulos sobre introducción a Linux, instalación, primeras sesiones, aplicaciones de uso cotidiano, comunicación, personalización y uso de la consola, además de un apéndice sobre otras distribuciones LiveCD.
Compilador CCS y simulador proteus para microcontroladores PICHamiltonn Casallas
El documento habla sobre la importancia de resumir textos de forma concisa para captar la idea principal. Explica que un buen resumen debe identificar la idea central y los detalles más relevantes del documento original en una o dos oraciones como máximo.
Este documento presenta una unidad didáctica sobre electricidad básica y sus aplicaciones. Explica conceptos clave como la generación, transmisión y distribución de la electricidad, así como los componentes de los circuitos eléctricos generales y de viviendas. El objetivo es que los estudiantes aprendan a diseñar, analizar y construir circuitos eléctricos y comprendan cómo funcionan dispositivos comunes. Incluye contenidos, objetivos, índice, preguntas iniciales y actividades prácticas sobre electricidad estática.
El documento describe el funcionamiento de un receptor de radio AM/FM que utiliza un circuito integrado LA1828. El LA1828 contiene todos los componentes necesarios para un receptor superheterodino, incluyendo amplificadores de RF, mezcladores, osciladores, amplificadores de FI, detectores, y un decodificador estéreo. Solo se requiere agregar un amplificador de audio para completar el receptor. El documento explica las funciones de cada sección del LA1828 para AM y FM.
1) El documento describe cómo generar tonos de audio usando el programa Audacity para probar un amplificador. También explica cómo medir correctamente la potencia de salida de un amplificador de audio usando una carga resistiva, un generador de tonos y un medidor.
2) Se explican los pasos para probar individualmente placas amplificadoras antes de conectarlas en un puente doble para probar el sistema completo.
3) Finalmente, se describen pruebas adicionales como medir la respuesta en baja frecuencia y cómo ajustar los capacitores para
1) El documento proporciona instrucciones para diseñar e implementar circuitos impresos para amplificadores de audio, incluyendo cómo dibujar el circuito en Live Wire y transferirlo a PCB Wizard, colocar componentes, trazar pistas y medidas de la placa.
2) Se explican detalles como el uso de disipadores para los transistores y la fabricación de las placas de circuito impreso a partir de los diseños provistos.
3) El objetivo es producir placas de circuito impreso personalizadas para amplificadores de diferentes potencias (2W,
El documento describe un amplificador en puente para automóviles que ofrece mayor potencia que un amplificador convencional. Explica cómo dos amplificadores conectados en puente permiten doblar la tensión de salida aplicada al parlante. También aborda mejoras como el uso de transistores Darlington para mejorar la excitación de la etapa de salida y así maximizar la potencia obtenida. Finalmente, incluye un circuito con un inversor y control de volumen para la señal de entrada.
El documento explica la importancia de medir los parámetros térmicos de los componentes electrónicos, como la temperatura del chip de los transistores de salida, ya que las altas temperaturas pueden dañarlos. También describe cómo se pueden realizar cálculos para determinar la resistencia térmica requerida para un disipador y así mantener seguras las temperaturas del chip. Finalmente, ofrece ejemplos del cálculo de temperaturas usando la ley de Ohm térmica.
Este documento proporciona instrucciones para medir la potencia de salida de un amplificador de audio utilizando componentes básicos en lugar de equipos de prueba caros. Describe cómo construir una carga resistiva estéreo de 8 ohmios y 200W usando alambre de cobre esmaltado, y cómo usar un centro musical o DVD como generador de señales de audio junto con un divisor de voltaje para controlar el nivel de entrada. También explica cómo medir la tensión de recorte del amplificador usando un diodo y capacitor en lugar de un oscil
Este documento describe un amplificador de audio push-pull básico con dos transistores. Explica que la distorsión por cruce se produce cuando ningún transistor conduce cerca de 0V, y que esto se corrige agregando una batería o transistor entre las bases. También describe cómo el capacitor de bootstrap permite que la tensión de salida alcance los valores máximos de la fuente de alimentación saturando completamente los transistores de salida.
Este documento describe los componentes básicos de un parlante y cómo funciona, incluyendo la interacción entre el campo magnético de la bobina móvil y el circuito magnético fijo. También explica cómo calcular la potencia máxima que puede entregar un amplificador en función de su tensión de fuente y la impedancia del parlante, y describe una etapa de excitación básica de un parlante usando un potenciómetro y una fuente de tensión continua.
El documento describe cómo construir bobinas ajustables, las cuales son importantes para reparaciones cuando los componentes originales no están disponibles. Explica cómo desarmar una bobina existente para reutilizar sus materiales en la construcción de nuevas bobinas. Proporciona detalles sobre el cálculo del número de espiras requeridas y los pasos para bobinar y probar las nuevas bobinas.
El documento describe el diseño de un circuito de radio AM con un solo transistor. Explica el teorema de la máxima transferencia de energía y cómo diseñar una antena y un circuito resonante para maximizar la transferencia de energía entre la antena y la base del transistor. También cubre conceptos como el factor de mérito Q, la resistencia equivalente y las derivaciones de bobinas para cumplir con el teorema de la máxima transferencia.
El documento describe el diseño de un amplificador de radiofrecuencia (RF) utilizando un transistor bipolar. Explica cómo polarizar el transistor NPN en una configuración de emisor común para funcionar como un amplificador de tensión. Luego, mide las características del amplificador, como su ganancia de 10 veces a 1 kHz y su ancho de banda de hasta 40 MHz, lo que es suficiente para amplificar señales de menos de 2 MHz necesarias para una radio.
El documento explica el funcionamiento de los transformadores eléctricos. 1) Los transformadores usan la inducción electromagnética para aumentar o disminuir voltajes mediante la variación del número de espiras en los bobinados primario y secundario. 2) La relación de transformación depende directamente de la proporción entre el número de espiras de cada bobinado. 3) Los transformadores se usan comúnmente para adaptar altos voltajes de la red eléctrica a los bajos voltajes requeridos por dispositivos electrónicos.
La radio comenzó de forma industrial y comercial con la primera transmisión comercial y el receptor de radio del siglo pasado. Las primeras transmisiones de radio fueron telegráficas usando código Morse, transmitiendo señales digitales. Más tarde se desarrolló la modulación de amplitud (AM) para transmitir audio modulando la amplitud de la onda portadora de radiofrecuencia, permitiendo que el oído humano escuche la información.
Este documento describe los diferentes tipos de diodos y sus aplicaciones. Explica que el diodo es el componente activo más elemental y describe su comportamiento a través de curvas características. También analiza circuitos rectificadores de corriente alterna a corriente continua usando diodos y capacitores electrolíticos, y menciona otros tipos especiales de diodos como los diodos rápidos y Schottky.
El documento explica el principio de resonancia en un circuito RLC serie y cómo se deduce la fórmula de resonancia de Thomson. Luego, detalla los pasos para construir un generador de RF utilizando un circuito RLC resonante excitado por un generador de ondas cuadradas. Incluye cálculos para determinar los valores requeridos de la bobina inductora para lograr la frecuencia deseada basándose en los valores del capacitor del tande disponible. Finalmente, muestra simulaciones del circuito RLC resonante en diferentes configuraciones.
El documento explica los conceptos de corriente continua (CC), corriente alterna (CA), resistencia, reactancia capacitiva y reactancia inductiva. Describe cómo los capacitores y inductores se comportan de manera diferente cuando se conectan a fuentes de CA versus CC, presentando una reactancia en lugar de una resistencia con CA. También introduce diferentes formas de onda como senoidal, cuadrada y triangular que pueden generarse usando un generador de funciones.
En la ciudad de Pasto, estamos revolucionando el acceso a microcréditos y la formalización de microempresarios informales con nuestra aplicación CrediAvanza. Nuestro objetivo es empoderar a los emprendedores locales proporcionándoles una plataforma integral que facilite el acceso a servicios financieros y asesoría profesional.
Ofrecemos herramientas y metodologías para que las personas con ideas de negocio desarrollen un prototipo que pueda ser probado en un entorno real.
Cada miembro puede crear su perfil de acuerdo a sus intereses, habilidades y así montar sus proyectos de ideas de negocio, para recibir mentorías .
José Luis Jiménez Rodríguez
Junio 2024.
“La pedagogía es la metodología de la educación. Constituye una problemática de medios y fines, y en esa problemática estudia las situaciones educativas, las selecciona y luego organiza y asegura su explotación situacional”. Louis Not. 1993.
1. UNIVERSAL
SYNCHRONOUS
ASYNCHRONOUS
RECEIVER TRANSMITTER
(USART)
El módulo transmisor (USART)
es otro de los dos puertos serie de los
que dispone esta familia de micro-
controladores. Los módulos de I/O.
(USART también se conocen como
Serial Communications o Interface o
SCI). El USART puede configurarse
como asíncrono full dúplex que pue-
de comunicar con los dispositivos pe-
riféricos como el terminales de CRT
y los ordenadores personales, o pue-
de configurarse como un sistema sín-
crono half duplex que puede comu-
nicar con otros microcontroladores,
con dispositivos periféricos como
A/D o D/A circuitos integrados, EE-
PROMs serie etc.
El USART puede configurarse en
los modos siguientes:
q Asíncrono( Full duplex )
q Síncrono-Master (half duplex)
q Síncrono-Slave (half duplex)
Poniendo a "1" el bit SPEN (RCS-
TA <7>), y los bitsTRISC <7:6> (RC7
se configura como entrada y RC6 co-
mosalida), seconfigura RC6/TX/CKy
RC7 /RX/DT como USART. En modo
síncrono se utilizan formatos estándar:
un bit de Start y ocho bits o nueve bits
de datos y un bit de Stop,siendo el más
común el de ocho bits de datos.
CURSO DE
MICROCONTROLADORES
PIC16F87X (...y XII)
CURSO DE
MICROCONTROLADORES
PIC16F87X (...y XII)
Fernando Remiro Domínguez
Profesor de Sistemas Electrónicos
IES. Juan de la Cierva
www.terra.es/personal/fremiro
MICROCONTROLADORES
60RESISTOR
56-70 MICROCONTROLADORES2 17/6/04 13:16 Página 60
2. GENERADOR DE BAUDIOS
DEL USART (BRG).
En el protocolo asíncrono RS-232
la frecuencia en baudios a la que se
realiza la transferencia se debe
efectuar a un valor normalizado: 330,
600,1.200, 2400, 4800, 9600, 19.200,
38.400, etc. Para generar esta
frecuencia, el USART dispone de un
generador de frecuencia en Baudios,
BRG, cuyo valor se controla por el
contenido del registro SPBRG.
Además del valor X cargado en el
registro SPBRG. La
frecuencia en baudios del
generador depende del bit
BRGH (TXSTA<1>). Si
BRGH=0 se trabaja a baja
velocidad y si BRGH=1 se
trabaja a alta velocidad.
Según este bit se obtendrá el valor de
una constante K necesaria para
determinar la frecuencia de
funcionamiento.
Este generador sirve tanto para el
modo síncrono como el asíncrono y
consiste de un contador/divisor de
frecuencia de 8 bits controlado por el
registro SPBRG (99H). De tal
manera que la frecuencia de
transmisión se calcula de acuerdo a la
siguiente tabla:
Registro de Estado
y Transmisión TXTA (dirección 98h)
R/W-0 R/W-0 R/W-0 R/W-0 U-0 R/W-0 R/W-0 R/W-0
CSRC TX9 TXEN SYNC ---- BRGH TRMT TX9D
Bit 7 Bit 0
bit 7: CSRC: Bit de selección de fuente del reloj
Modo Asíncrono
Sin importancia
Modo Síncrono
1 = Modo master (reloj generado internamente para BRG
(Generador de Baudios))
0 = Modo esclavo (fuente de reloj externa)
bit 6: TX9: Habilita transmisión de 9-8 bits
1 = Selecciona la transmisión de 9 bits
0 = Selecciona la transmisión de 8 bits
bit 5: TXEN: Bit de habilitación del transmisor
1 = Habilita transmisión
0 = Deshabilita transmisión
Nota: SREN/CREN anula TXEN en modo SYNC.
bit 4: SYNC: Bit de selección del modo USART
1 = Modo Síncrono
0 = Modo Asíncrono
bit 3: Sin implementar: En lectura es'0'
bit 2: BRGH: Bit de selección del rango de baudios alto
Modo Asíncrono
1 = Alta velocidad
0 = Baja velocidad
Modo Síncrono
No se usa este modo
bit 1: TRMT: Bit de estado del registro de desplazamiento del
transmisor (TSR)
1 = TSR vacío
0 = TSR lleno
bit 0: TX9D: Noveno bit de datos de transmisión. Se puede
emplear como bit de paridad.
Registro de Estado y Control de recepción
RCSTA (Dirección 18h)
R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
SPEN RX9 SREN CREN ADDEN FERR OERR RX9D
Bit 7 Bit 0
bit 7: SPEN: Bit de habilitación del puerto serie
1 = Habilita puerto serie (configura patillas RC7/RX/DT y
RC6/TX/CK para el puerto serie)
0 = Deshabilita puerto serie
bit 6: RX9: Habilita recepción de 9-8 bits
1 = Selecciona 9 bits de recepción
0 = Selecciona 8 bits de recepción
bit 5: SREN: Bit de habilitación de recepción única
Modo asíncrono
Este modo no se usa
Modo Síncrono master
1 = Habilita una recepción única
0 = Deshabilita una recepción única
Este bit se borra después de completar la recepción
Modo Síncrono esclavo
En este modo no se usa
bit 4: CREN: Bit de habilitación de recepción continua
Modo Asíncrono
1 = Habilita recepción continua
0 = Deshabilita recepción continua
Modo Síncrono
1 = Habilita recepción continua hasta que el bit CREN sea
borrado (CREN anula SREN)
0 = Deshabilita la recepción continua
bit 3:ADDEN: Bit de dirección
Modo Asíncrono con 9 bits (RX9=1)
1= Activa la detección de dirección, activa la interrupción y des-
carga el buffer de recepción al activarse RSR<8>
0= Desactiva la detección de dirección, todos los bits son recibidos
y el noveno bit puede utilizarse como bit de paridad.
bit 2: FERR: Bit de error de empaquetamiento
1 = Error de empaquetamiento (Puede actualizarse al leer el
registro RCREG y recibir el siguiente byte)
0 = No hay error
bit 1: OERR: Bit de error de desbordamiento
1 = Error de desbordamiento (puede ser borrado al borrar CREN)
0 = No hay desbordamiento
bit 0: RX9D: Noveno bit de datos de recepción. Se puede emplear
como bit de paridad
0 (Modo asíncrono) Baud rate = FOSC/(64(X+1)) Baud rate = FOSC/16(X+1))
1 (Modo Síncrono) Baud rate = FOSC/(4(X+1)) --
X = Valor en SPBRG (0 a 255)
SYNC BRGH=0(baja velocidad) BRGH=1 (Alta Velocidad)
56-70 MICROCONTROLADORES2 17/6/04 13:16 Página 61
3. MICROCONTROLADORES
62RESISTOR
Debido a que el divisor es de 8
bits, no se puede tener cualquier
velocidad de transmisión deseada, ya
que X se deberá redondear al entero
más cercano. En las dos tablas
anteriores se muestran algunos
valores de velocidad de transmisión
(baud) estándar, el divisor necesario
(X=SPBRG) bajo diferentes
frecuencias Fosc y el error producido
en porcentaje. Como puede
apreciarse, el error no tiene ninguna
importancia para la mayoría de
las aplicaciones, no obstante, se
puede realizar los cálculos
empleando el índice (BRGH=1)
y sustituyendo la constante 64
por 16 (ver la tabla) y comprobar
si el error se reduce.
Los datos que llegan a la
patilla RC7/RX/DT se muestrean
en tres instantes para detectar y
determinar mejor si el nivel
presente en la patilla RX está a
nivel alto o bajo. Si el bit BRGH
(TXSTA<2>) está a cero, el
muestreo se realiza en el séptimo,
octavo, y noveno flanco de
bajada de x16 de reloj.
Si por el contrario, el bit
BRGH está a uno, el muestreo tiene
lugar en el tercer flanco de reloj
precedido de la segunda subida de
reloj y de la primera bajada de x4 de
reloj.
BAUD FOSC = 20MHz FOSC = 16MHz FOSC = 10MHz
RATES KBAUD % SPBRG KBAUD % SPBRG KBAUD % SPBRG
(K) ERROR Valordecimal ERROR Valor decimal ERROR Valor
decimal
0.3 - - - - - - - - -
1.2 1.221 1.75 255 1.202 0.17 207 1.202 0.17 129
2.4 2.404 0.17 129 2.404 0.17 103 2.404 0.17 64
9.6 9.766 1.73 31 9.615 0.16 25 9.766 1.73 15
19.2 19.531 1.72 15 19.231 0.16 12 19.531 1.72 7
28.8 31.250 8.51 9 27.778 3.55 8 31.350 8.51 4
33.6 34.722 3.34 8 35.714 6.29 6 31.250 6.99 4
57.6 62.500 8.51 4 62.500 8.51 3 52.083 9.58 2
HIG 1.221 - 255 0.977 - 255 0.610 - 255
LOW 312.500 - 0 250.000 - 0 156.250 - 0
BAUD RATES en Modo Asíncrono (BRGH=0)
BAUD FOSC = 20MHz FOSC = 16MHz FOSC = 10MHz
RATES KBAUD % SPBRG KBAUD % SPBRG KBAUD % SPBRG
(K) ERROR Valordecimal ERROR Valor decimal ERROR Valor
decimal
0.3 - - - - - - - - -
1.2 - - - - - - - - -
2.4 - - - - - - 2441 1.71 255
9.6 9.615 0.16 129 9.615 0.16 103 9.615 0.16 64
19.2 19.231 0.16 64 19.231 0.16 51 19.531 1.72 31
28.8 29.070 0.94 42 29.412 2.13 33 28.409 1.36 21
33.6 33.784 0.55 36 33.333 0.79 29 32.895 2.10 18
57.6 59.524 3.34 20 58.825 2.13 16 56.818 1.36 10
HIG 4.883 - 255 3.906 - 255 2.441 - 255
LOW 1250.000 - 0 1000.000 - 0 625.000 - 0
BAUD RATES en Modo Asíncrono (BRGH=1)
BAUD FOSC = 4MHz FOSC = 3.6864MHz
RATES KBAUD % PBRG KBAUD % SPBRG
(K) ERROR Valor ERROR Valor decimal
decimal
0.3 0.300 0 207 0.3 0 191
1.2 1.202 0.17 51 1.2 0 47
2.4 2.404 0.17 25 2.4 0 23
9.6 8.929 6.99 5 9.6 0 5
19.2 20.833 8.51 2 19.3 0 2
28.8 31.250 8.51 1 28.8 0 1
33.6 - - - - 0 -
57.6 62.500 8.51 0 57.6 0 0
HIG 0.244 - 255 0.225 0 255
LOW 62.500 - 0 57.6 0 0
56-70 MICROCONTROLADORES2 17/6/04 13:16 Página 62
4. 63RESISTOR
BAUD FOSC = 4MHz FOSC = 3.6864MHz
RATES KBAUD % PBRG KBAUD % SPBRG
(K) ERROR Valor ERROR Valor decimal
decimal
0.3 - - - - - -
1.2 1.202 0.17 207 1.2 0 191
2.4 2.404 0.17 103 2.4 0 95
9.6 9.615 0.16 25 9.6 0 23
19.2 19.231 0.16 12 19.2 0 11
28.8 27.798 3.55 8 28.8 0 7
33.6 35.714 6.29 6 32.9 2.04 6
57.6 62.500 8.51 3 57.6 0 3
HIG 0.977 - 255 0.9 0 255
LOW 250.000 - 0 230.4 0 0
EL USART EN MODO
ASÍNCRONO
Como ya se ha dicho, en este
modo de comunicaciones se emplea
una configuración estándar de un bit
de Start, ocho o nueve bits de datos, y
un bit de Stop. Este modo de trabajo
se detiene durante la función Sleep.
Aunque el USART tiene
funciones independientes para la
transmisión y recepción, los formatos
de datos y de velocidad de
transmisión es igual para los dos
casos. El generador de baudios
produce siempre las señales de reloj
x16 ó x64 dependiendo de BRGH
(TXSTA<2>) para el desplazamiento
de los bits. El bit de paridad no está
soportado por el hardware, pero se
puede implementar por software
empleando para ello el noveno bit de
datos.
La selección del modo asíncrono
se realiza poniendo a cero el bit
SYNC (TXSTA<4>).
El modulo asíncrono del USART
se consigue con la combinación de
importantes elementos:
q El generador de baudios
q El circuito de muestreo
q Transmisor asíncrono
q Receptor asíncrono
EL USART TRANSMISIÓN
ASINCRONA
Para realizar una transmisión de
datos, el registro de desplazamiento
TSR obtiene los datos del registro
(buffer) de lectura/escritura TXREG.
El registro de desplazamiento TSR no
carga el bit de Stop hasta que se hayan
transmitido los datos cargados. Una
vez que se haya enviado este bit, el
registro será cargado con los nuevos
datos (si están disponibles), en este
caso el bit TXIF (PIR1 <4>) se pone a
uno, y se genera una interrupción si
está habilitada (PIE1 <4>).
Los pasos necesarios para
realizar una transmisión asíncrona son
los siguientes:
qInicializar el registro SPBRG con el
valor apropiado según los cálculos
realizados. Si se desea el
margen alto se pondrá a uno el bit
BRGH.
qHabilitar el puerto asíncrono bo-
rrando el bit SYN y poniendo a uno
el SPEN.
qHabilitar la interrupción (si se de-
sea) poniendo a uno el bit TXIE.
qPoner a cero o a uno el bit TX9 (8 ó
9 bits).
qHabilitar la transmisión poniendo a
uno el bit TXEN, el cual pondrá a
uno el bit TXIF.
qSi se han seleccionado 9 bits se
deben poner el noveno en el bit
TX9D.
qCargar el dato en el registro TXREG
(comenzar la transmisión).
Ejemplo:
Cálculo de la proporción del error de velocidad de
transmisión para las siguientes condiciones:
FOSC = 16 MHZ
Velocidad de transmisión deseada = 9600 baudios
BRGH = 0
SYNC = 0
Velocidad de transmisión =
9600 =
X = (25,042) = 25
= 9615
= 0,16%
FOSC
(64* (X + 1))
error =
9615 - 9600
9600
Velocidad de transmisión =
16000000
(64* (X + 1))
16.000.000
(64* (X + 1))
bit
START
1º
bit
8º
bit
bit
Stop
Dato
Figura 1.- La palabra de transmisión va precedida de un bit de Start y
termina con un bit de Stop
Registros asociados al Generador de Baud Rate
Dirección Nombre Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Valor en POR,BOR Valor en el resto de Reset
98h TXSTA CSRC TX9 TXEN SYNC --- BRGH TRMT TX9D 0000 –010 0000 –010
18h RCSTA SPEN RX9 SREN CREN ADDEN FERR OERR RX9D 0000 000X 0000 000X
99h SPGBRG Registro generador de Baud Rate
Leyenda x = desconocido u= sin cambios - = Sin implementar, se lee "0"
56-70 MICROCONTROLADORES2 17/6/04 13:16 Página 63
5. EL USART EN MODO
RECEPCIÓN ASÍNCRONA`
En el modo de recepción, los datos
son recibidos por la patilla RC7/RX/DT
y se introducen en serie en el registro
RSR; después de recibir el bit de Stop
los datos acumulados en este registro se
cargan en el de datos RCREG (si está
vacío). Cuando la transferencia se ha
completado, el bit RCIF (PIR1 <5>)
pone a uno. La interrupción puede
habilitarse o deshabilitarse colocando a
uno o a cero, respectivamente, el bit
RCIE (PIE1 <5>). El bit RCIF se borra
cuando el registro RCREG se ha leído
(se "vacía" el registro). Para configurar
el puerto como receptor hay que seguir
los siguientes pasos:
qInicializar el registro SPBRG con el
valor apropiado según los cálculos re-
alizados. Si se desea el margen alto se
pondrá a uno el bit BRGH.
qHabilitar el puerto asíncrono borran-
do el bit SYN y poniendo a uno el
SPEN.
qHabilitar la interrupción (si se desea)
poniendo a uno el bit RCIE.
qPoner a uno el bit RX9 para habilitar
9 bits de recepción.
qHabilitar la recepción poniendo a uno
el bit CREN.
qEl flag RCIF subirá a uno cuando
se complete la recepción.
qSe ocasionará una interrupción si es-
tá habilitado el bit RCIE.
qLeer el registro RCSTA, cargar el no-
veno bit (si está habilitado) y com-
probar si ha ocurrido un error duran-
te la recepción.
qLeer el octavo bit recibido y dar lec-
tura al registro RCREG para conocer
si el dispositivo se ha direccionado.
qSi ha ocurrido un error borrarlo po-
niendo a cero el bit CREN.
Si el dispositivo ha sido
direccionado, borrar el bit ADDEN
para permitir que los datos puedan
leerse del buffer receptor
MODO SÍNCRONO
Este modo de trabajo tiene dos
posibles formas de configuración, como
master y como esclavo. En el modo
master la transmisión y recepción no
MICROCONTROLADORES
64RESISTOR
TXIE
TXIF
Interrupción
TXEN
CLK
Rango de Baudios
Generador de Baudios
MSB LSB
Bus de Datos
Registro TXREG
Pin del Buffer
y Control
RC6/TX/CX pin
TRMT SPEN
SPBRG
Registro TSR
(8) (0)
TX9
TX9D
8
Figura 2.- Diagrama de bloques del
módulo USART configurado como
transmisor
Escritura en TXREG
Palabra 1
Salida BRG
(Reloj desplaz.)
Pin RC6/TX/CX
Bit TXIF
(Flag de Buffer vacio)
Bit TRMT
(Flag reg. desplazamiento
vacío)
Palabra 1
Transmite Reg. de desplazamiento
Bit de Start Bit 0 Bit 1 Bit 7/8 Bit Stop
PALABRA 1
Escritura en TXREG
Palabra1 Palabra2Salida BRG
(Reloj desplazamiento)
Pin RC6/TX/CK
Bit TXIF
(flag reg.Interrupción)
bit TRMT
(flag regi.desplazamiento)
PALABRA1
Transmite Reg. desplazamiento
Nota.- Este diagrama muestra dos transmisiones consecutivas
PALABRA1
Bit Start Bit 0 Bit 1 Bit 7/8 Bit Stop Bit Start Bit 0
PALABRA 2
PALABRA2
Transmite Reg. desplazamiento
TRANSMISIÓN ASÍNCRONA
Figura 3
Figura 4
TRANSMISIÓN ASINCRONA CONTINUA
56-70 MICROCONTROLADORES2 17/6/04 13:16 Página 64
6. 65RESISTOR
REGISTROS ASOCIADOS A LA TRANSMISIÓN ASINCRONA
Dirección Nombre Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Valor en POR,BOR Valor en el resto de Reset
0Bh, 8Bh
10Bh,18Bh INTCON GIE PEIE T0IE INTE RBIE T0IF INTF RBIF 0000 000x 0000 000u
0Ch PIR1 PSPIF(1) ADIF RCIF TXIF SSPIF CCP1IF TMREIF TMR1IF 0000 0000 0000 0000
18h RCSTA SPEN RX9 SREN CREN -- FERR OERR RX9D 0000 -00X 0000 000X
19h TXREG Registro Transmisor USAR 0000 0000 0000 0000
8Ch PIE1 PSPIE ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE 0000 0000 0000 0000
98h TXSTA CSRC TX9 TXEN SYNC --- BRGH TRMT TX9D 0000 –010 0000 –010
99h SPGBRG Registro generador de Baud Rate
tienen lugar al mismo tiempo, cuando se
transmite un dato, la recepción es
inhibida y viceversa. En la transmisión el
registro de desplazamiento, TSR
(Transmit Shift Register), obtiene los
datos del registro de lectura/escritura
TXREG, pero éste no se carga hasta que
el último bit de la anterior carga no haya
sido transmitido; cuando esto suceda el
TSR se vuelve a cargar con el nuevo dato
del registro TXREG (si está disponible)
éste se vacía y se genera una interrupción
(si está habilitada por el bit TXIE,
PIE1<4>. La transmisión se habilita por
el bit TXEN del registro TXSTA<5>, si
se borra durante una transmisión, ésta
será abortada y reseteado el transmisor.
Para iniciar una transmisión es
necesario seguir los siguientes pasos:
qInicializar el registro SPBRG con el
valor apropiado calculado.
qHabilitar el puerto master asíncrono
colocando a uno los bits SYN, SPEN
y CSRC.
qSi se desea emplear la interrupción,
habilitarla poniendo a uno el bitTXIE.
q Si se desea una transmisión de nueve
bits, el noveno se cargar en el bitTX9.
qHabilitar la transmisión poniendo a
uno el bit TXEN.
qSi se ha habilitado la transmisión de
9 bits, el noveno se cargar en el regis-
tro TX9D.
qLa transmisión se iniciar al
cargar los datos en el registro
TXREG.
EL USART EN MODO MASTER
SÍNCRONO
Para seleccionar el modo receptor
master hay que poner a uno el bit
SREN (RCSTA<5> o habilitar el
REGISTROS ASOCIADOS A LA RECEPCIÓN ASINCRONA
Dirección Nombre Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Valor en POR,BOR Valor en el resto de Reset
0Bh, 8Bh
10Bh,18Bh INTCON GIE PEIE T0IE INTE RBIE T0IF INTF RBIF 0000 000x 0000 000u
0Ch PIR1 PSPIF(1) ADIF RCIF TXIF SSPIF CCP1IF TMREIF TMR1IF 0000 0000 0000 0000
18h RCSTA SPEN RX9 SREN CREN ADDEN FERR OERR RX9D 0000 -00X 0000 000X
1Ah RCREG Registro Receptor USAR 0000 0000 0000 0000
8Ch PIE1 PSPIE ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE 0000 0000 0000 0000
98h TXSTA CSRC TX9 TXEN SYNC --- BRGH TRMT TX9D 0000 –010 0000 –010
99h SPGBRG Registro generador de Baud Rate
SPBRG
RC7/RX/DT
SPEN
Patilla del buffer
de control
Recuperación
de datos
Stop (8) 7 å åå 1 0 Start
Registro RSRMsb LSb
Rx9
8
CREN
OERR FERR
8
RX9D Registro RCREG
RX9
ADDEN
RX9
ADDEN
RSR<8>
Habilita
carga del
buffer
receptor
Interrupción
8
Bus de datos
FIFO
RCIF
RCIE
P64
P16
o
Figura 5.- Diagrama de Bloques del
Módulo USART configurado en modo
Receptor
56-70 MICROCONTROLADORES2 17/6/04 13:16 Página 65
7. 66RESISTOR
CREN (RCSTA<4>). El dato es
tomado de la patilla RC7/WDT por
cada flanco de caída del reloj , si el bit
SREN está a uno, sólo se recibir una
palabra, pero si se borra el bit CREN la
recepción ser continua. Después del
último impulso de reloj, el dato
recibido en el registro de
desplazamiento RSR será transferido
al RCREG (si está vacío). Una vez
haya terminado la recepción se originar
una interrupción si ésta está habilitada,
RCIE (PIE1 <5>).
Los pasos a seguir para iniciar la
recepción en modo master son las
siguientes:
qInicializar el registro SPBRG con el
valor apropiado de baudios.
qHabilitar el puerto master asíncrono
colocando a uno los bits SYN, SPEN
y CSRC.
qAsegurarse de que los bits CREN y
SREN están borrados.
qSi se desea emplear la interrupción
habilitarla poniendo a uno el bit RCIE.
qSi se desean nueve bits poner a uno
el bit RX9.
qSi sólo se desea una recepción única,
poner a uno el bit SREN; para recep-
ción continua poner a uno el bit
CREN.
qEl flag de interrupción RCIF se pone
a uno cuando la recepción haya fina-
lizado si está habilitada por el bit
RCIE.
qLeer el registro RCSTA y cargar el
noveno bit (si está habilitado) y com-
probar si ha ocurrido un error duran-
te la recepción.
qLeer el octavo bit recibido y dar lec-
tura al registro RCREG.
qSi ha ocurrido un error borrarlo po-
niendo a cero el bit CREN.
MODO ESCLAVO SÍNCRONO
Este modo de trabajo difiere del
modo master, pues la señal de reloj de
desplazamientos es proporcionada
RC7/RX/DT (pin)
Carga RSR
Lectura
RCIF
bit
Start bit 0 bit 1 bit 8 bit 0 bit 8 bit
Stop
bit
Stop
bit
Start
Bit8=0, Byte de datos Bit8=1, Byte de dirección PALABRA1
RCREG
Nota.- Este diagrama de tiempos muestra un byte de datosseguido de un byte de dirección. El byte de datos no se lee en el RCREG (buffer de rección)
porque ADDEN = 1
RC7/RX/DT (pin)
Carga RSR
Lectura
RCIF
bit
Start bit 0 bit 1 bit 8 bit 0 bit 8 bit
Stop
bit
Stop
bit
Start
Bit 8 = 1. Byte de Dirección Bit8 = 0, Byte de Datos PALABRA1
RCREG
Figura 6.-Recepción Asíncrona con Dirección y Primer Byte
Figura 7
RECEPCIÓN ASÍNCRONA CON DETECCIÓN DE DIRECCIÓN
RECEPCIÓN ASÍNCRONA CON DIRECCIÓN Y PRIMER BYTE
Registros de Sincronización en modo master en transmisión
Dirección Nombre Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Valor en POR,BOR Valor en el resto de Reset
0Bh, 8Bh,
108Bh,18Bh INTCON GIE PEIE T0IE INTE RBIE T0IF INTF RBIF 0000 000x 0000 000u
0Ch PIR1 PSPIF(1 ADIF RCIF TXIF SSPIF CCP1IF TMREIF TMR1IF 0000 0000 0000 0000
18h RCSTA SPEN RX9 SREN CREN ADDEN FERR OERR RX9D 0000 000X 0000 000X
1Ah TXREG Registro Receptor USAR 0000 0000 0000 0000
8Ch PIE1 PSPIE ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE 0000 0000 0000 0000
98h TXSTA CSRC TX9 TXEN SYNC --- BRGH TRMT TX9D 0000 –010 0000 –010
99h SPGBRG Registro generador de Baud Rate
Leyenda x = desconocido u= sin cambios - = Sin implementar, se lee "0"
Nota.- Este diagrama muestra un byte dirección seguido por un byte de datos. El byte de datos no se lee eb RCREC (Buffer recptor)
porque ADEN no se ha actualizado y todabía = 0
56-70 MICROCONTROLADORES2 17/6/04 13:16 Página 66
8. 67RESISTOR
Q1 Q1 Q1 Q1 Q1 Q1 Q1 Q1 Q1 Q1Q2Q2Q2 Q2Q2Q2Q2Q2Q2Q2Q2Q3 Q3 Q3 Q3 Q3 Q3 Q3Q3 Q3 Q3 Q3 Q3Q4Q4Q4 Q1Q4Q4Q4Q4Q4Q4Q4Q4Q4
Bit0 Bit 1 Bit 2 Bit0 Bit 1Bit 7 Bit 7
Palabra 1 Palabra 2
RC7/RX/DT pin
TC6/TX/CK pin
Escritura en
Reg. TXREG
bit TXIF
(Flag de Interrupción)
bit TRMT
bit TXEN
"1" "1"
Nota.- Modo master Sincrono; SPBRG="0". Transmisión Continua de 2 palagras de 8 bits
Figura 8
externamente por la patilla
RC6/TX/CK en lugar de ser generada
internamente, esto permite que se
puedan transferir o recibir datos cuando
el dispositivo está en el modo Sleep.
Las operaciones de transmisión son
idénticas al modo Master, excepto en el
caso del modo Sleep.
Si se escriben dos palabras en el
registro TXREG y después se ejecuta la
instrucción Sleep, ocurrirá lo siguiente:
qLa primera palabra será inmediata-
mente transferida al registro TSR y
transmitida.
qLa segunda palabra permanece en el
registro TXREG.
qEl bit TXIF no se pondrá a uno.
qCuando la primera palabra haya sali-
do del registro TSR, la segunda pala-
bra, que permanece en el registroTX-
REG, se envía al TSR y el flag TXIF
se pone a uno.
qSi está habilitado el bit TXIF la inte-
rrupción despierta al microcontrolador
de modo Sleep y el programa saltar a
la dirección del vector de interrupcio-
nes (0004 hex.).
EJEMPLOS DE CONTROL DEL
USAR CONECTADO AL
PUERTO SERIE DEL
ORDENADOR
Para poder conectar las líneas del
PIC16F87X que entrega niveles TTL
con el puerto serie RS-232 que son
compatibles, es necesario utilizar un
circuito interface que traduzca los datos
del microcontrolador al puerto serie del
ordenador y viceversa, nosotros
hemos utilizado un MAX232, te-
niendo mucho cuidado para no
equivocarnos con la polaridad de
los condensadores. El circuito uti-
lizado es el que se muestra en la
Figura 10. Los lectores que lo de-
seen pueden ponerse en contacto
con el autor de este curso en fre-
miro@teleline.es para solicitar las
placas del entrenador de micro-
controladores PIC de bajo costo
que se ha diseñado para el
aprendizaje de estos microcon-
troladores.
Además del circuito, necesi-
taremos para comprobar el funciona-
miento los estos ejemplos de comuni-
caciones, necesitamos un programa de
comunicaciones como el HiperTerminal
de Windows y un cable serie en cone-
xión de MODEM nulo, que deberá de
conectarse tal y como se muestra en la
Figura 11.
EL HyperTerminal es un programa
general de comunicaciones de Win-
dows, que resulta válido para conectar-
se con otros ordenadores o dispositi-
vos. Hay programas de comunicacio-
nes mucho más potentes que éste. Sin
embargo, HyperTerminal se caracteriza
por su facilidad de uso y su fácil ad-
quisición ya que viene integrado dentro
deWindows. Puede ocurrir que el pro-
grama HyperTerminal no esté cargado,
TRANSMISIÓN SINCRONA
pin RC7/RX/DT bit 0 bit 1 bit 2 bit 6 bit 7
Pin RC6/TX/CK
Escritura en
el reg. TXREG
bit TXIF
bit TRMT
bit TXEN
TRANSMISIÓN ASINCRONA ( a traves del TXEN)
Registros de Sincronización en modo master en recepción
Dirección Nombre Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Valor en POR,BOR Valor en el resto de Reset
0Ch PIR1 PSPIF(1) ADIF RCIF TXIF SSPIF CCP1IF TMREIF TMR1IF 0000 0000 0000 0000
18h RCSTA SPEN RX9 SREN CREN ADDEN FERR OERR RX9D 0000 000X 0000 000X
1Ah RCGEG Registro Receptor USAR 0000 0000 0000 0000
8Ch PIE1 PSPIE ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE 0000 0000 0000 0000
98h TXSTA CSRC TX9 TXEN SYNC --- BRGH TRMT TX9D 0000 –010 0000 –010
99h SPGBRG Registro generador de Baud Rate
Leyenda x = desconocido u= sin cambios - = Sin implementar, se lee "0"
Figura 9
56-70 MICROCONTROLADORES2 17/6/04 13:16 Página 67
9. MICROCONTROLADORES
68RESISTOR
para ello hay que seguir el mismo pro-
cedimiento que para cualquier otro pro-
grama de Windows, ejecutando en el
siguiente orden: Panel de Control >
Agregar o Quitar programas > Insta-
lación deWindows > Comunicaciones
y activar la casilla correspondiente a
HyperTerminal.
Para ejecutar HyperTerminal hay
que seguir los siguientes pasos:
1.Activar Inicio > Programas >Acce-
sorios > Comunicaciones y selec-
VCC
C4
1µF
C5
1µF U1
TXPC
RC7
RC6
C3
10nF
MAX232
14
13
12
11
9
10
15
16
RXPC
TXPC
C6
1µF
C7
1µF
1
2
3
6
4
5
8
7
C1+
V+
C1-
V-
C2+
C2-
T1OUT
R1IN
R10UT
T1IN
9
10
8
7 GND
VCC
1
DB9
5
9
4
8
3
7
2
6
VCC
RXPC
Vcc= 5V
MCLR
RA0
RA1
RA2
RA3
RA4
RA5
Vss
OSC1
OSC2/CKOUT
RC0
RC1
RC2
RC3
RB7
RB6
RB5
RB4
RB3
RB2
RB1
RB0
VDD
VSS
RC7
RC6
RC5
RC4
Reset
R1
10KΩ
R2 100Ω
R9 300Ω
R8 300Ω
R7 300Ω
R6 300Ω
R5 300Ω
R4 300Ω
RB0
RB1
RB2
RB3
RB4
RB5
RB6
R3 300Ω
Vcc=5V
C1 27 pF
C2 27 pF
XT 4Mhz
R10 300Ω RB7
PIC16F876
Figura 10.- Circuito de aplicación para
comprobar el funcionamiento del USART
del PIC16F876 y el puerto serie del
ordenador.
Figura 11.- Conexión del cable serie como MODEM nulo
Figura 14 HyperTerminal.Figura 12.-Hipertermina
Figura 13.- Conectar con...
56-70 MICROCONTROLADORES2 17/6/04 13:16 Página 68
10. MICROCONTROLADORES
69RESISTOR
cionar HyperTerminal. Se advierte
que no se trata de un programa, si-
no de una carpeta cuyo contenido es
un único programa denominada Hy-
pertrm. Cada vez que se ejecuta el
programa Hypertrm se le pide al
usuario la información suficiente pa-
ra crear en la carpeta HyperTermi-
nal una nueva conexión, es decir, un
lugar de destino con el que conec-
tarse.
2. Ejecutar el programa Hypertrm para
crear una nueva conexión, se le pre-
gunta el nombre que asignará a la co-
nexión, teclear por ejemplo
"PIC16F876" y elegir un icono con
el que se quiera representar la cone-
xión, figura 12.
3.En la siguiente pantalla Conecta con
elegirlaopción Conectarusando: Di-
recto a Com2, figura 13. Se va a utili-
zar el puerto serie Com2 para comu-
nicar el ordenador y el microcontro-
lador. También se puede elegir el
COM1.
4.Aparece una pantalla con las
Propiedades de COM. Seleccionar las
apropiadasparaelsistemautilizado.Para
nuestros ejemplos utilizamos las
opcionesquesemuestranenlafigura14.
5.A continuación aparece la pantalla de
trabajo tal como la mostrada en la
figura 15.
Para conectar el ordenador y el
microcontrolador a través del puerto
serie COM 2, basta con activar la opción
"Llama" (o icono de teléfono colgado) y
para desconectar hay que activar opción
"Desconecta" (o icono de teléfono
descolgado. Una vez configurada una
conexión, para comenzar la
comunicación simplemente ha de
ejecutar el icono de la conexión
previamente configurada tal como se
muestra en la figura 16.
El programa monitor232.asm
configura el USART para trabajar a
9.600 baudios, con un bit de Stop y sin
bit de paridad, seguidamente se queda a
la espera de recibir un dato por el puerto
serie y cuando lo hace lo muestra en el
PORTB.
Por su parte el programa
Transmite232.asm configura el USART
para trabajar a 9.600 baudios, con un bit
de Stop y sin bit de paridad,
seguidamente transmite cada segundo la
cadena de caracteres "HOLA" cada
segundo que se reflejan en el
HiperTerminal.
Figura 15 .-Hyperterminal. Pantalla de trabajo
Figura 16.- Hyperterminal. Ejemplos de conexiones
configuradas
; ;*********************************************************************************
; PROGRAMA : monitor232.asm
; Este programa escucha el puerto serie rs232 sin usar las interrupciones y cuando recibe un byte lo muestra
;en PortB hasta que otro lo sobrescriba.Configuración del puerto serie: 9600 baudios,8 bits,paridad = none
;
; Revisión : 1.0 Programa para : PIC16F876
; CPU Clock : 4 MHz Reloj instrucción : 1 MHz = 1 _s
; WDT : Deshabilitado Tipo de reloj : XT
; Protección de Código : OFF
;**********************************************************************************
LIST P=16F876 ;Se indica el modo de procesador
INCLUDE <P16f876.inc> ;se incluye la definicion de los
CBLOCK 0x20
Buffer ;Buffer entrante
ENDC
;*****************************VECTOR DE RESET *************************************
; ORG 0x00 ;Inicio en elVector de Reset
; goto INICIO ;Va a la primera instrucción del
;programa
ORG 0x05 ;Inicio en elVector de Reset
;*****************************INICIO PROGRAMA PRINCIPAL *****************************
INICIO clrf PORTB ;Limpia salidas
56-70 MICROCONTROLADORES2 17/6/04 13:16 Página 69
11. clrf PORTC ;del PORTB y del PORTC
bsf STATUS,RP0 ;Selecciona el Banco1
clrf TRISB ;Puerta B como salida
movlw b'10011111' ;RC7/Rx entrada,
movwf TRISC ;RC6/Tx salida y RC5 Salida.
movlw b'00000100' ;Configuracion USART
movwf TXSTA ;y activacion de transmision
movlw .25 ;9600 baudios
movwf SPBRG
bcf STATUS,RP0 ;Selecciona el Banco 0
bsf RCSTA,SPEN ;se activa la USART
movlw b'10010000' ;Configuracion de la usart
movwf RCSTA ;para recepcion continua
;------Bucle de comprobacion si llega dato mayor de 0 por puerto serie------
BUCLE movf RCREG,W ;Lectura dato recibido
movwf Buffer ;Visualiza dato recibido
movlw .0 ;comprueba que se reciba algo que
subwf Buffer,W ;no sea cero...
btfsc STATUS,C
goto Mayordecero ;dato valido.
goto BUCLE ;dato no valido.. es cero..vuelve.
Mayordecero movf Buffer,W ;muestra el dato en portb
movwf PORTB ;y lo deja ayi hasta que llegue otro
goto BUCLE ;retorna a esperar otro dato valido
;*****************************************************************************
ORG 0x1F00
bcf PCLATH,4
bcf PCLATH,3 ;Selecciona la página 0
goto INICIO ;Salto a la dirección de INICIO del programa
;*****************************************************************************
END
;***********************************************************************
; PROGRAMA :Trans232.asm
;Este programa transmite los bytesASCII "HOLA "por el puerte serie del microcontrolador
; a intervalos de 1 segundo.
; Configuración del piuerto serie COM: 9600 baudios,8 bits,paridad = none
;
; Revision : 1.0 Programa para : PIC16F876
; CPU Clock : 4 MHz Reloj instruccion : 1 MHz = 1 us
; WDT : Deshabilitado Tipo de reloj : XT
; Protección de Código : OFF
;************************************************************************
LIST P=16F876 ;Se indica el modo de procesador
INCLUDE<P16f876.inc> ;se incluye la definicion de los
CBLOCK 0x20
ContadorA
ContadorB
ContadorC
ENDC
;************************************VECTOR DE RESET *********************
; ORG 0x00
; goto INICIO ;Va a la primera instruccion del programa
ORG 0x05
;*******************************INICIO PROGRAMA PRINCIPAL ****************
INICIO clrf PORTB ;Limpia PORTB y PORTC
clrf PORTC
bsf STATUS,RP0 ;Selecciona el Banco 1
clrf TRISB ;Puerta B como salida
movlw b'10111111' ;RC7/Rx entrada,
movwf TRISC ;RC6/Tx salida.
movlw b'00100100' ;Configuración USART
movwf TXSTA ;y activación de transmisión
movlw .25 ;9600 baudios
movwf SPBRG
bcf STATUS,RP0 ;Selecciona el Banco 0
bsf RCSTA,SPEN ;se activa la USART
bsf STATUS,RP0 ;Selecciona el Banco 1
bsf TXSTA,TXEN ;Habilita la transmisión
bcf STATUS,RP0 ;Selecciona el Banco 0
Bucle call Delay
movlw 'H' ;CarácterASCII
movwf TXREG ;
bsf STATUS,RP0 ;Selecciona el Banco 1
COMP_TX btfss TXSTA,TRMT ;comprueba si acabo de Tx.
goto COMP_TX
bcf STATUS,RP0 ;Selecciona el Banco 0
movlw 'O' ;carácterASCII
movwf TXREG
bsf STATUS,RP0 ;Selecciona el Banco 1
COMP_TX_2 btfss TXSTA,TRMT ;comprueba si acabo de Tx.
goto COMP_TX_2
bcf STATUS,RP0 ;Selecciona el Banco 0
movlw 'L' ;carácterASCII
movwf TXREG
bsf STATUS,RP0 ;Selecciona el Banco 1
COMP_TX_3 btfss TXSTA,TRMT ;comprueba si acabo de Tx.
goto COMP_TX_3
bcf STATUS,RP0 ;Selecciona el Banco 0
movlw 'A' ;carácterASCII
movwf TXREG
bsf STATUS,RP0 ;Selecciona el Banco 1
COMP_TX_4 btfss TXSTA,TRMT ;comprueba si acabo de Tx.
goto COMP_TX_4
bcf STATUS,RP0 ;Selecciona el Banco 0
movlw '-' ;carácterASCII en decimal
movwf TXREG
goto Bucle
;**************************SUBRUTINAS *********************
;Delay = 1,0000020 s with Osc = 4 MHz
Delay movlw D'6'
movwf ContadorC
movlw D'24'
movwf ContadorB
movlw D'168'
movwf ContadorA
loop decfsz ContadorA,F
goto loop
decfsz ContadorB,F
goto loop
decfsz ContadorC,F
goto loop
return
;***********************************************************
ORG 0x1F00
bcf PCLATH,4
bcf PCLATH,3 ;Selecciona la página 0
goto INICIO ;Salto a la dirección de
INICIO del programa
;**********************************************************
END
56-70 MICROCONTROLADORES2 17/6/04 13:16 Página 70