Está en la página 1de 31

ENTRADA / SALIDA DIGITAL CON CCS

Programacin en C para electrnica

Indice
2

Microcontrolador PIC16F876 Entrada/Salida digital. Ejemplos.

Programacin con CCS-Programacin en C para electrnica

Microcontrolador PIC16F876.
Programacin en C para Electrnica.

Programacin con CCS-Programacin en C para electrnica

Caractersticas
4

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. Programacin serie LVP.

Programacin con CCS-Programacin en C para electrnica

Caractersticas
5

Programacin con CCS-Programacin en C para electrnica

Perifricos.
6

3 temporizador /contador

T0 = 8bits T1 y T2 = 16 bits

2 mdulos de comparacin y captura / PWM. Puerto serie sncrono (SSP) con SPI y I2C.

USART / SCI. 5 entradas A/D de 10 bits. Hasta 22 E/S digital. Comparador analgico. Perro guardian (WDT)

Programacin con CCS-Programacin en C para electrnica

Encapsulado.
7

Programacin con CCS-Programacin en C para electrnica

Diagrama de bloques:
8

Programacin con CCS-Programacin en C para electrnica

Caractersticas de los puertos


9

Son bidireccionales. Acceso como byte o bit. Lectura del valor del pin. Corriente mxima del pin 25mA. Corriente mxima del puerto 200mA. Despus de un reset todas son entradas.

Programacin con CCS-Programacin en C para electrnica

Organizacin de la memoria
10

Programacin con CCS-Programacin en C para electrnica

11

Entrada/Salida digital.
Programacin en C para Electrnica.

Programacin con CCS-Programacin en C para electrnica

Entrada salida digital


12

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.

Programacin con CCS-Programacin en C para electrnica

Entrada salida digital


13

La configuracin como entrada o salida se hace a travs 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.
Programacin con CCS-Programacin en C para electrnica

Entrada salida digital


14

Para configurar los puertos se utiliza la funcin set_tris_X(valor) Se puede leer la configuracin de los puertos con la funcin 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*/

Programacin con CCS-Programacin en C para electrnica

Entrada salida digital


15

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.

Programacin con CCS-Programacin en C para electrnica

Entrada salida digital


16

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 parmetros de estas funciones estn definidos en un fichero include (p.ej:16F876A.h) con un formato PIN_Xn donde X es el puerto y n el bit.

Programacin con CCS-Programacin en C para electrnica

Funciones de Salida (bit)


17

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.)

Programacin con CCS-Programacin en C para electrnica

Funciones de Entrada (bit)


18

input_state(PIN_Xn) //Lee el valor del pin sin cambiar //el sentido del terminal. input(PIN_Xn) //Lee el valor del pin.

Programacin con CCS-Programacin en C para electrnica

Funciones de E/S (bit)


19

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);

Programacin con CCS-Programacin en C para electrnica

Funciones de E/S (byte)


20

output_X(valor):

input_X():

X= puerto (A,B o C) Valor= byte a escribir en el puerto. Escribe valor en X.

X= puerto (A,B o C) Lee el valor del puerto X.

Ejemplo: output_B(0xA5); //PORTB=10100101

Ejemplo: valor=input_B(); /*guarda en valor el contenido del puerto B*/

Programacin con CCS-Programacin en C para electrnica

Entrada salida digital


21

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 configuracin que usemos. Directivas:

#use fast_io (puerto) #use standar_io (puerto) #use fixed_io (puerto)

Programacin con CCS-Programacin en C para electrnica

Directivas del preprocesador


22

Programacin con CCS-Programacin en C para electrnica

Directivas de gestin de puertos


23

#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) Configura el puerto y no modifica el registro TRIS en lecturas y escrituras.

#use fixed_io (puerto)

Programacin con CCS-Programacin en C para electrnica

24

Ejemplos
Programacin en C para Electrnica.

Programacin con CCS-Programacin en C para electrnica

Led intermitente
25

Programacin con CCS-Programacin en C para electrnica

Led intermitente
26

Programacin con CCS-Programacin en C para electrnica

Led intermitente (con funciones)


27

Programacin con CCS-Programacin en C para electrnica

Pulsador
28

Programacin con CCS-Programacin en C para electrnica

Pulsador (con funciones)


29

Programacin con CCS-Programacin en C para electrnica

Cruce semforos
30

Programacin con CCS-Programacin en C para electrnica

Cruce semforos
31

Programacin con CCS-Programacin en C para electrnica

También podría gustarte