![Page 1: ENTRADA / SALIDA DIGITAL CON CCS Programación en C para electrónica](https://reader037.vdocuments.co/reader037/viewer/2022102722/54d9077f497959ad3a8b4608/html5/thumbnails/1.jpg)
ENTRADA / SALIDA DIGITAL CON CCS
Programación en C para electrónica
![Page 2: ENTRADA / SALIDA DIGITAL CON CCS Programación en C para electrónica](https://reader037.vdocuments.co/reader037/viewer/2022102722/54d9077f497959ad3a8b4608/html5/thumbnails/2.jpg)
Programación con CCS-Programación en C para electrónica
2
Indice
Microcontrolador PIC16F876 Entrada/Salida digital. Ejemplos.
![Page 3: ENTRADA / SALIDA DIGITAL CON CCS Programación en C para electrónica](https://reader037.vdocuments.co/reader037/viewer/2022102722/54d9077f497959ad3a8b4608/html5/thumbnails/3.jpg)
3
Programación con CCS-Programación en C para electrónica
Programación en C para Electrónica.
Microcontrolador PIC16F876.
![Page 4: ENTRADA / SALIDA DIGITAL CON CCS Programación en C para electrónica](https://reader037.vdocuments.co/reader037/viewer/2022102722/54d9077f497959ad3a8b4608/html5/thumbnails/4.jpg)
Características
μC RISC. Reloj de hasta
20Mhz.(CM=1/4fosc)
35 instrucciones de 14 bit.
Instrucciones de 1 CM (excepto saltos)
Power On Reset (POR)
8Kx14 bits en memoria flash.
368 bytes de RAM. 256 bytes de
EEPROM. 22 E/S digital. 14 interrupciones. Programación
serie LVP.
4
Programación con CCS-Programación en C para electrónica
![Page 5: ENTRADA / SALIDA DIGITAL CON CCS Programación en C para electrónica](https://reader037.vdocuments.co/reader037/viewer/2022102722/54d9077f497959ad3a8b4608/html5/thumbnails/5.jpg)
Características5
Programación con CCS-Programación en C para electrónica
![Page 6: ENTRADA / SALIDA DIGITAL CON CCS Programación en C para electrónica](https://reader037.vdocuments.co/reader037/viewer/2022102722/54d9077f497959ad3a8b4608/html5/thumbnails/6.jpg)
Periféricos.
3 temporizador /contador
T0 = 8bits T1 y T2 = 16
bits 2 módulos de
comparación y captura / PWM.
Puerto serie síncrono (SSP) con SPI y I2C.
USART / SCI. 5 entradas A/D
de 10 bits. Hasta 22 E/S
digital. Comparador
analógico. Perro guardian
(WDT)
6
Programación con CCS-Programación en C para electrónica
![Page 7: ENTRADA / SALIDA DIGITAL CON CCS Programación en C para electrónica](https://reader037.vdocuments.co/reader037/viewer/2022102722/54d9077f497959ad3a8b4608/html5/thumbnails/7.jpg)
Encapsulado.7
Programación con CCS-Programación en C para electrónica
![Page 8: ENTRADA / SALIDA DIGITAL CON CCS Programación en C para electrónica](https://reader037.vdocuments.co/reader037/viewer/2022102722/54d9077f497959ad3a8b4608/html5/thumbnails/8.jpg)
Diagrama de bloques:8
Programación con CCS-Programación en C para electrónica
![Page 9: ENTRADA / SALIDA DIGITAL CON CCS Programación en C para electrónica](https://reader037.vdocuments.co/reader037/viewer/2022102722/54d9077f497959ad3a8b4608/html5/thumbnails/9.jpg)
Características de los puertos Son bidireccionales. Acceso como byte o bit. Lectura del valor del pin. Corriente máxima del pin 25mA. Corriente máxima del puerto 200mA. Después de un reset todas son entradas.
Programación con CCS-Programación en C para electrónica
9
![Page 10: ENTRADA / SALIDA DIGITAL CON CCS Programación en C para electrónica](https://reader037.vdocuments.co/reader037/viewer/2022102722/54d9077f497959ad3a8b4608/html5/thumbnails/10.jpg)
Organización de la memoria10
Programación con CCS-Programación en C para electrónica
![Page 11: ENTRADA / SALIDA DIGITAL CON CCS Programación en C para electrónica](https://reader037.vdocuments.co/reader037/viewer/2022102722/54d9077f497959ad3a8b4608/html5/thumbnails/11.jpg)
11
Programación con CCS-Programación en C para electrónica
Programación en C para Electrónica.
Entrada/Salida digital.
![Page 12: ENTRADA / SALIDA DIGITAL CON CCS Programación en C para electrónica](https://reader037.vdocuments.co/reader037/viewer/2022102722/54d9077f497959ad3a8b4608/html5/thumbnails/12.jpg)
Entrada salida digital
El PIC 16F876A dispone de 22 lineas de E/S digital configurables repartidas en 3 puertos.
Puerto A = 6 lineas (RA0..RA5) Puerto B = 8 lineas (RB0..RB7) Puerto C = 8 lineas (RC0..RC7)
Los puertos son independientes y se puede programar cada terminal para que se comporte como entrada o como salida.
12
Programación con CCS-Programación en C para electrónica
![Page 13: ENTRADA / SALIDA DIGITAL CON CCS Programación en C para electrónica](https://reader037.vdocuments.co/reader037/viewer/2022102722/54d9077f497959ad3a8b4608/html5/thumbnails/13.jpg)
Entrada salida digital
La configuración como entrada o salida se hace a través del registro TRISx correspondiente del banco 1 de la memoria.
TRISA=85h (Puerto A) TRISB=86h (Puerto B) TRISC=87h (Puerto C)
Un valor 0 en los bits de estos registros configuran el pin correspondiente del puerto como salida y un 1 como entrada.
13
Programación con CCS-Programación en C para electrónica
![Page 14: ENTRADA / SALIDA DIGITAL CON CCS Programación en C para electrónica](https://reader037.vdocuments.co/reader037/viewer/2022102722/54d9077f497959ad3a8b4608/html5/thumbnails/14.jpg)
Entrada salida digital
Para configurar los puertos se utiliza la función
set_tris_X(valor) Se puede leer la
configuración de los puertos con la función
get_tris_X(valor)
Ejemplos:set_tris_A (0x3F)/* Puerto A como entradas.*/
set_tris_B (0x00)/* Puerto B como salidas.*/
set_tris_C (0b00001111)
/*Pines RB0..RB3 salidas y RB4..RB7 entradas*/
14
Programación con CCS-Programación en C para electrónica
![Page 15: ENTRADA / SALIDA DIGITAL CON CCS Programación en C para electrónica](https://reader037.vdocuments.co/reader037/viewer/2022102722/54d9077f497959ad3a8b4608/html5/thumbnails/15.jpg)
Entrada salida digital
La lectura o escritura de datos en los puertos se hace mediante la lectura o escritura en el registro del banco 0 asociado a cada puerto.
PORTA=05h (Puerto A) PORTB=06h (Puerto B) PORTC=07h (Puerto C)
La lectura y/o escritura se realiza directamente sobre los pines del puerto.
15
Programación con CCS-Programación en C para electrónica
![Page 16: ENTRADA / SALIDA DIGITAL CON CCS Programación en C para electrónica](https://reader037.vdocuments.co/reader037/viewer/2022102722/54d9077f497959ad3a8b4608/html5/thumbnails/16.jpg)
Entrada salida digital
CCS tiene funciones predefinidas para el uso de los puertos de E/S digital.
Las funciones pueden tratar el puerto completo o un bit del mismo.
Los parámetros de estas funciones están definidos en un fichero include (p.ej:16F876A.h) con un formato PIN_Xn donde X es el puerto y n el bit.
16
Programación con CCS-Programación en C para electrónica
![Page 17: ENTRADA / SALIDA DIGITAL CON CCS Programación en C para electrónica](https://reader037.vdocuments.co/reader037/viewer/2022102722/54d9077f497959ad3a8b4608/html5/thumbnails/17.jpg)
Funciones de Salida (bit)
output_low(PIN_Xn) //pone a 0. output_high(PIN_Xn) //pone a 1. output_bit(PIN_Xn,valor) //pone el pin Xn a valor (0 ó 1). output_toggle (PIN_Xn) //complementa el valor del pin output_float (PIN_Xn) //Pin como entrada (simula d. ab.)
17
Programación con CCS-Programación en C para electrónica
![Page 18: ENTRADA / SALIDA DIGITAL CON CCS Programación en C para electrónica](https://reader037.vdocuments.co/reader037/viewer/2022102722/54d9077f497959ad3a8b4608/html5/thumbnails/18.jpg)
Funciones de Entrada (bit)
input_state(PIN_Xn) //Lee el valor del pin sin cambiar //el sentido del terminal.
input(PIN_Xn) //Lee el valor del pin.
18
Programación con CCS-Programación en C para electrónica
![Page 19: ENTRADA / SALIDA DIGITAL CON CCS Programación en C para electrónica](https://reader037.vdocuments.co/reader037/viewer/2022102722/54d9077f497959ad3a8b4608/html5/thumbnails/19.jpg)
Funciones de E/S (bit)
Ejemplos:output_low(PIN_A0);output_high(PIN_B1);output_bit(PIN_B3,0);output_toggle (PIN_C6);output_float (PIN_A2);valor=input_state (PIN_B7);valor=input(PIN_C3);
19
Programación con CCS-Programación en C para electrónica
![Page 20: ENTRADA / SALIDA DIGITAL CON CCS Programación en C para electrónica](https://reader037.vdocuments.co/reader037/viewer/2022102722/54d9077f497959ad3a8b4608/html5/thumbnails/20.jpg)
Funciones de E/S (byte)
output_X(valor): X= puerto (A,B o
C) Valor= byte a
escribir en el puerto.
Escribe valor en X.
Ejemplo:output_B(0xA5);//PORTB=10100101
input_X(): X= puerto (A,B o C) Lee el valor del
puerto X.
Ejemplo:valor=input_B();/*guarda en valor el contenido del puerto B*/
20
Programación con CCS-Programación en C para electrónica
![Page 21: ENTRADA / SALIDA DIGITAL CON CCS Programación en C para electrónica](https://reader037.vdocuments.co/reader037/viewer/2022102722/54d9077f497959ad3a8b4608/html5/thumbnails/21.jpg)
Entrada salida digital
CCS provee directivas y funciones predefinidas para el uso de los puertos de E/S digital.
Las funciones output_X() e input_X() dependen de la directiva de configuración que usemos.
Directivas: #use fast_io (puerto) #use standar_io (puerto) #use fixed_io (puerto)
21
Programación con CCS-Programación en C para electrónica
![Page 22: ENTRADA / SALIDA DIGITAL CON CCS Programación en C para electrónica](https://reader037.vdocuments.co/reader037/viewer/2022102722/54d9077f497959ad3a8b4608/html5/thumbnails/22.jpg)
Directivas del preprocesador
22
Programación con CCS-Programación en C para electrónica
![Page 23: ENTRADA / SALIDA DIGITAL CON CCS Programación en C para electrónica](https://reader037.vdocuments.co/reader037/viewer/2022102722/54d9077f497959ad3a8b4608/html5/thumbnails/23.jpg)
Programación con CCS-Programación en C para electrónica
23
Directivas de gestión de puertos
#use fast_io (puerto) No modifica el registro TRIS en lecturas y
escrituras. Hay que asegurarse de que los pines está
configurados correctamente. #use standar_io (puerto)
Modifica el registro TRIS correspondiente en lecturas y escrituras. (Modo por defecto)
#use fixed_io (puerto) Configura el puerto y no modifica el registro
TRIS en lecturas y escrituras.
![Page 24: ENTRADA / SALIDA DIGITAL CON CCS Programación en C para electrónica](https://reader037.vdocuments.co/reader037/viewer/2022102722/54d9077f497959ad3a8b4608/html5/thumbnails/24.jpg)
24
Programación con CCS-Programación en C para electrónica
Programación en C para Electrónica.
Ejemplos
![Page 25: ENTRADA / SALIDA DIGITAL CON CCS Programación en C para electrónica](https://reader037.vdocuments.co/reader037/viewer/2022102722/54d9077f497959ad3a8b4608/html5/thumbnails/25.jpg)
Programación con CCS-Programación en C para electrónica
25
Led intermitente
![Page 26: ENTRADA / SALIDA DIGITAL CON CCS Programación en C para electrónica](https://reader037.vdocuments.co/reader037/viewer/2022102722/54d9077f497959ad3a8b4608/html5/thumbnails/26.jpg)
Programación con CCS-Programación en C para electrónica
26
Led intermitente
![Page 27: ENTRADA / SALIDA DIGITAL CON CCS Programación en C para electrónica](https://reader037.vdocuments.co/reader037/viewer/2022102722/54d9077f497959ad3a8b4608/html5/thumbnails/27.jpg)
Programación con CCS-Programación en C para electrónica
27
Led intermitente (con funciones)
![Page 28: ENTRADA / SALIDA DIGITAL CON CCS Programación en C para electrónica](https://reader037.vdocuments.co/reader037/viewer/2022102722/54d9077f497959ad3a8b4608/html5/thumbnails/28.jpg)
Programación con CCS-Programación en C para electrónica
28
Pulsador
![Page 29: ENTRADA / SALIDA DIGITAL CON CCS Programación en C para electrónica](https://reader037.vdocuments.co/reader037/viewer/2022102722/54d9077f497959ad3a8b4608/html5/thumbnails/29.jpg)
Programación con CCS-Programación en C para electrónica
29
Pulsador (con funciones)
![Page 30: ENTRADA / SALIDA DIGITAL CON CCS Programación en C para electrónica](https://reader037.vdocuments.co/reader037/viewer/2022102722/54d9077f497959ad3a8b4608/html5/thumbnails/30.jpg)
Programación con CCS-Programación en C para electrónica
30
Cruce semáforos
![Page 31: ENTRADA / SALIDA DIGITAL CON CCS Programación en C para electrónica](https://reader037.vdocuments.co/reader037/viewer/2022102722/54d9077f497959ad3a8b4608/html5/thumbnails/31.jpg)
31
Programación con CCS-Programación en C para electrónica
Cruce semáforos