Este documento describe las características y funcionalidades del microcontrolador PIC16F877, incluyendo su arquitectura, memoria, puertos de entrada y salida, periféricos, tipos de datos soportados y más. Explica cómo configurar los puertos como entrada o salida y cómo acceder a bits individuales. También presenta ejemplos de código para encender LEDs y enviar secuencias de datos a puertos.
10. PUERTOS Puerto # funciones Funciones PORTA 3 Entradas digital Salidas digital Entradas analógicas PORTB 2 Entradas digital Salidas digital PORTC 3 Entradas digital Salidas digital Medios de comunicación PORTD 3 Entradas digital Salidas digital Puerto paralelo esclavo PORTE 4 Entradas digital Salidas digital Entradas analógicas Control del puerto paralelo esclavo
11. FUNCIONES PORTA Terminal Funciones RA0 Ent. Digital Sal. Digital Ent. Analógica RA1 Ent. Digital Sal. Digital Ent. Analógica RA2 Ent. Digital Sal. Digital Ent. Analógica V REF - RA3 Ent. Digital Sal. Digital Ent. Analógica V REF + RA4 Ent. Digital Sal. Digital Ent. contador 1 RA5 Ent. Digital Sal. Digital Ent. Analógica
12. FUNCIONES PORTB Terminal Funciones RB0 Ent. Digital Sal. Digital Ent. Interrupción 0 RB1 Ent. Digital Sal. Digital RB2 Ent. Digital Sal. Digital RB3 Ent. Digital Sal. Digital PGM ( función LVP ) RB4 Ent. Digital Sal. Digital RB5 Ent. Digital Sal. Digital RB6 Ent. Digital Sal. Digital PGC ( función LVP ) RB7 Ent. Digital Sal. Digital PGD ( función LVP )
13. FUNCION PORTC Terminal Funciones RC0 Ent. Digital Sal. Digital Sal. Osc timer 1 Ent. Contador 1 RC1 Ent. Digital Sal. Digital Ent. Osc Timer 1 Captura/Comp/PWM 1 RC2 Ent. Digital Sal. Digital Captura/Comp/PWM 2 RC3 Ent. Digital Sal. Digital Reloj sincrono SPI Reloj síncrono I2C RC4 Ent. Digital Sal. Digital Datos entrada SPI Datos I2C RC5 Ent. Digital Sal. Digital Datos salida SPI RC6 Ent. Digital Sal. Digital Transmisión USART RC7 Ent. Digital Sal. Digital Recepción USART
14. FUNCIONES PORTD Terminal Funciones RD0 Ent. Digital Sal. Digital Bit 0 puerto paralelo esclavo RD1 Ent. Digital Sal. Digital Bit 1 puerto paralelo esclavo RD2 Ent. Digital Sal. Digital Bit 2 puerto paralelo esclavo RD3 Ent. Digital Sal. Digital Bit 3 puerto paralelo esclavo RD4 Ent. Digital Sal. Digital Bit 4 puerto paralelo esclavo RD5 Ent. Digital Sal. Digital Bit 5 puerto paralelo esclavo RD6 Ent. Digital Sal. Digital Bit 6 puerto paralelo esclavo RD7 Ent. Digital Sal. Digital Bit 7 puerto paralelo esclavo
15. FUNCIONES PORTE Terminal Funciones RE0 Ent. Digital Sal. Digital Ent. Analógica Lectura PSP RE1 Ent. Digital Sal. Digital Ent. Analógica Escritura PSP RE2 Ent. Digital Sal. Digital Ent. Analógica Habilitación PSP
49. Luces con arreglo ( diagrama de flujo ) Luces Configura puerto como salida Limpia apuntador Envía dato apuntado Incrementa apuntador apuntador ≥ 8 Limpia apuntador si no
50.
51.
52. Operadores a nivel de bits Operador operacion & AND; compara pares de bits y regresa 1 si ambos son 1’s, de otra manera regresa 0. | OR (inclusive); compara pares de bits y regresa 1 si uno o ambos son 1’s, de otra manera regresa 0. ^ OR (exclusiva); compara pares de bits y regresa 1 si los bits son complementarios, de otra manera regresa 0. ~ Complemento (unitario); invierte cada bit << Corrimiento hacia la izquierda; mueve los bits hacia la izquierda, descartando el bit mas a la izquierda y asignando ceros al bit a la derecha. >> Corrimiento hacia la derecha; mueve los bits hacia la derecha, descartando el bit mas a la derecha y asignando ceros al bit a la izquierda.
53.
54.
55.
56. Luces con desplazamiento ( diagrama de flujo ) Luces Configura puerto como salida Inicializa variable Envía variable al puerto Modifica variable variable = 0 Inicializa variable si no
57.
58. Operaciones aritméticas Operador Operación + Suma - Resta * Multiplicación / División % Resto, regresa el residuo de la división entera (no puede ser usado con variables flotantes ++ Como prefijo Incrementa en uno el valor de la variable antes de evaluar la expresión. Como Postfijo suma en uno la variable después de ser evaluado la expresión. -- Como prefijo decrementa en uno el valor de la variable antes de evaluar la expresión. Como Postfijo resta en uno la variable después de ser evaluado la expresión.
59.
60.
61.
62.
63.
64. Secuencias condicionadas ( diagrama de flujo ) Luces Configura puertos RD salida, RA entrada Limpia contador Envía secuencia_izquierda Incrementa contador Contador = 10 Limpia contador si no RA0 = 0 Envía Secuencia_derecha si no
86. Display de 7 segmentos ( diagrama de flujo ) Configura puertos Inicia variables Display Envía decena Envía unidad Incrementa unidad Unidades>’9’ Limpia unidades Incrementa decenas Decenas>’9’ Limpia decenas si si no no
102. Comandos predefinidos Comando Función LCD_FIRST_ROW Mueve el cursor a la 1a. fila. LCD_SECOND_ROW Mueve el cursor a la 2a. fila. LCD_THIRD_ROW Mueve el cursor a la 3a. fila. LCD_FOURTH_ROW Mueve el cursor a la 4a. fila. LCD_CLEAR Limpia el display. LCD_RETURN_HOME Regresa el cursor a la posición 1,1. Los datos de la RAM no son afectados. LCD_CURSOR_OFF Apaga el cursor. LCD_UNDERLINE_ON Coloca el caracter subrayado. LCD_BLINK_CURSOR_ON Parpadeo del cursor. LCD_MOVE_CURSOR_LEFT Mueve el cursor hacia la izquierda sin cambiar la RAM LCD_MOVE_CURSOR_RIGHT Mueve el cursor hacia la derecha sin cambiar el contenido de la RAM LCD_TURN_ON Enciende el display LCD_TURN_OFF Apaga el display LCD_SHIFT_LEFT Mueve el display hacia la izquierda sin cambiar el contenido de la RAM LCD_SHIFT_RIGHT Mueve el display hacia la derecha sin cambiar el contenido de la RAM
103.
104.
105. LCD 8 BITS ( diagrama de flujo ) Inicializa puertos de datos y control Envía mensaje Envía comando de Corrimiento a la izq. LCD 8 bits
145. Ejercicio propuesto 8 . . . Serie de numeros Serie de numeros 1 Serie de numeros 1 2 Serie de numeros 1 2 4 Serie de numeros 8 Serie de numeros 8 16 Serie de numeros 8 16 32 Serie de numeros 8192 16384 32768
146.
147. Ejercicio propuesto 9 . . . Contador 00-99 cada 500 mseg 00 Contador 00-99 cada 500 mseg 01 Contador 00-99 cada 500 mseg 02 Contador 00-99 cada 500 mseg 03 Contador 00-99 cada 500 mseg 04 Contador 00-99 cada 500 mseg 05 Contador 00-99 cada 500 mseg 06 Contador 00-99 cada 500 mseg 99
160. Ejercicio propuesto 9 Cual es el numero de 3 cifras: Cual es el numero de 3 cifras: 025 Cual es el numero de 3 cifras: 025 El producto por 2 es: 050 Cual es el numero de 3 cifras: 025 El producto por 2 es: 050 La división entre 2 es: 012