Micro Control Adores Pic

28
Un microcontrolador, es un circuito integrado programable que contiene los elementos necesarios para controlar un sistema. PIC significa Peripheral Interface Controller, es decir un controlador de periféricos. Cuando hablamos de un circuito integrado programable que controla periféricos, estamos hablando de un sistema que contiene entre otras cosas una unidad arimético-lógica, memorias de datos y programas, puertos de entrada y salida, es decir, estamos hablando de un pequeño ordenador diseñado para INICIACIÓN A LOS MICROCONTROLADORES PIC Un puerto es una interfaz física a través del la cual pasan los datos hacia y desde los periféricos.

Transcript of Micro Control Adores Pic

Page 1: Micro Control Adores Pic

Un microcontrolador, es un circuito integrado programable que contiene los elementos necesarios para controlar un sistema.

PIC significa Peripheral Interface Controller, es decir un controlador de periféricos.

Cuando hablamos de un circuito integrado programable que controla periféricos, estamos hablando de un sistema que contiene entre otras cosas una unidad arimético-lógica, memorias de datos y programas, puertos de entrada y salida, es decir, estamos hablando de un pequeño ordenador diseñado para realizar funciones específicas.

Podemos encontrar microcontroladores en lavadoras, hornos de microondas, teléfonos móviles, etc.

INICIACIÓN A LOS MICROCONTROLADORES PIC

Un puerto es una interfaz física a través del la cual pasan los datos hacia y desde los periféricos.

Page 2: Micro Control Adores Pic

INICIACIÓN A LOS MICROCONTROLADORES PIC

Paquete de plástico de doble línea,PDIP (Plastic Dual In-Line Package)de 40 pines.

MCLR/VppRA0

PUERTO A RA1RA2RA3RA4RA5RE0

PEURTO E RE1RE2

VDDVSS

OSC1OSC2

RC0PUERTO C RC1

RC2RC3

PUERTO D RD0RD1

RB7RB6RB5RB4 PUERTO B RB3RB2RB1RB0VDDVSSRD7RD6 PUERTO DRD5RD4RC7RC6 PUERTO CRC5RC4RD3 PUERTO DRD2

El microcontrolador PIC 16F877A del fabricante Microchip Technology Inc. es un sistema sencillo, barato y potente para muchas aplicaciones electrónicas.

Page 3: Micro Control Adores Pic

Algunas de las características del microcontrolador 16F877A son:

-Memoria de programa Flash: 8K x 14 words. (8K localidades de memoria, cada una con una longitud de 14 bits). Memoria reprogramable, este tipo de memoria se puede borrar electrónicamente). Contiene el programa con las instrucciones que gobiernan al microcontrolador. Es del tipo no volátil.-Memoria RAM de datos: 368 Bytes. Almacena las variables y datos. Son registros de 8 bits. Es volátil.-Memoria EEPROM de datos: 256 Bytes. Memoria de datos de lectura y escritura no volátil que permite garantizar que determinada información estará siempre disponible al reinicializarse el programa.-Frecuencia de operación de hasta 20 Mhz.-Puertos de Entrada/Salida: PORTA, PORTB, PORTC, PORTD, PORTE-Timers: 3-Número de pines: 40

Page 4: Micro Control Adores Pic

Asignación de pines y propósito.

Todo microcontrolador requiere de un circuito que le indique la velocidad de trabajo, llamado oscilador o reloj. Este genera una onda cuadrada de alta frecuencia que se utiliza como señal para sincronizar todas las operaciones delsistema.

Los pines utilizados para este fin son:

OSC1 (13): Entrada del oscilador de cristal de cuarzo. OSC2 (14): Salida del cristal de cuarzo.

RA0/AN02

RA1/AN13

RA2/AN2/VREF-4

RA4/T0CKI6

RA5/AN4/SS7

RE0/AN5/RD8

RE1/AN6/WR9

RE2/AN7/CS10

OSC1/CLKIN13

OSC2/CLKOUT14

RC1/T1OSI/CCP216

RC2/CCP117

RC3/SCK/SCL18

RD0/PSP019

RD1/PSP120

RB7/PGD40

RB6/PGC39

RB538

RB437

RB3/PGM36

RB235

RB134

RB0/INT33

RD7/PSP730

RD6/PSP629

RD5/PSP528

RD4/PSP427

RD3/PSP322

RD2/PSP221

RC7/RX/DT26

RC6/TX/CK25

RC5/SDO24

RC4/SDI/SDA23

RA3/AN3/VREF+5

RC0/T1OSO/T1CKI15

MCLR/Vpp/THV1

U1

PIC16F877

X1

CRYSTAL4MHz

x 8

R1

330

C2

22pF

C1

22pF

R2

10k

5V

R5

330

BAT1

9V

D1

IN4007

C3100nF

C41000uF/25V

VI1

VO3

GND

2

U27805

C5100uF/16V

5V

5V

C6

100nF

RESET

Page 5: Micro Control Adores Pic

El microcontrolador se alimenta con 5 Volts aplicados entre los pines Vdd y Vss, que son respectivamente la alimentación y la tierra del chip.

VSS (12 y 31): Conexión a tierra.

VDD (11 y 32): entrada de alimentación positiva.

MCLR (1): entrada de RESET.

El reset provoca la reinicialización del funciona-miento del microcontrolador. El pin del reset en los microcontroladores se denomina Master Clear (MCLR) y produce un reset cuando se le aplica un nivel lógico bajo (0 volts).

RA0/AN02

RA1/AN13

RA2/AN2/VREF-4

RA4/T0CKI6

RA5/AN4/SS7

RE0/AN5/RD8

RE1/AN6/WR9

RE2/AN7/CS10

OSC1/CLKIN13

OSC2/CLKOUT14

RC1/T1OSI/CCP216

RC2/CCP117

RC3/SCK/SCL18

RD0/PSP019

RD1/PSP120

RB7/PGD40

RB6/PGC39

RB538

RB437

RB3/PGM36

RB235

RB134

RB0/INT33

RD7/PSP730

RD6/PSP629

RD5/PSP528

RD4/PSP427

RD3/PSP322

RD2/PSP221

RC7/RX/DT26

RC6/TX/CK25

RC5/SDO24

RC4/SDI/SDA23

RA3/AN3/VREF+5

RC0/T1OSO/T1CKI15

MCLR/Vpp/THV1

U1

PIC16F877

X1

CRYSTAL4MHz

x 8

R1

330

C2

22pF

C1

22pF

R2

10k

5V

R5

330

BAT1

9V

D1

IN4007

C3100nF

C41000uF/25V

VI1

VO3

GND

2

U27805

C5100uF/16V

5V

5V

C6

100nF

RESET

Page 6: Micro Control Adores Pic

Pines de entradas/salidas digitales, trabajan con niveles de 0 y 5 volts.

PORTA: 6 pines (2 a 7). RA0 a RA5.PORTB: 8 pines (33 a 40). RB0 a RB7.PORTC: 8 pines (15 a 18 y 23 a 26). RC0 a RC7.PORTD: 8 pines (19 a 22 y 27 a 30). RD0 a RD7.PORTE: 3 pines. (8 a 10). RE0 a RE2.

En resumen tenemos 33 patillas deentrada y salida. Cada una de ellas puede ser configurada como entrada para recibir datos o como salidas para gobernar dispositivos externos.

RA0/AN02

RA1/AN13

RA2/AN2/VREF-4

RA4/T0CKI6

RA5/AN4/SS7

RE0/AN5/RD8

RE1/AN6/WR9

RE2/AN7/CS10

OSC1/CLKIN13

OSC2/CLKOUT14

RC1/T1OSI/CCP216

RC2/CCP117

RC3/SCK/SCL18

RD0/PSP019

RD1/PSP120

RB7/PGD40

RB6/PGC39

RB538

RB437

RB3/PGM36

RB235

RB134

RB0/INT33

RD7/PSP730

RD6/PSP629

RD5/PSP528

RD4/PSP427

RD3/PSP322

RD2/PSP221

RC7/RX/DT26

RC6/TX/CK25

RC5/SDO24

RC4/SDI/SDA23

RA3/AN3/VREF+5

RC0/T1OSO/T1CKI15

MCLR/Vpp/THV1

U1

PIC16F877

X1

CRYSTAL4MHz

x 8

R1

330

C2

22pF

C1

22pF

R2

10k

5V

R5

330

BAT1

9V

D1

IN4007

C3100nF

C41000uF/25V

VI1

VO3

GND

2

U27805

C5100uF/16V

5V

5V

C6

100nF

RESET

Page 7: Micro Control Adores Pic

D6

R6

330

D5 R7

330

5V

Nivel lógico bajo, 0 v

Nivel lógico alto, 5 v

MICROCONTROLADOR

El diodo LED es un dispositivo que permite comprobar el funcionamiento de los circuitos mediante la emisión de luz.

El PIC puede gobernar diodos leds, conectando el cátodo del diodo a la salida del microcontrolador y el ánodo al positivo de la alimentación a través de una resistencia limitadora de corriente. En este caso el LED se ilumina con un nivel lógico bajo (0 V).

Otra forma de encender el LED es conectando el ánodo del diodo a la salida del microcontrolador a través de una resistencia, y el cátodo a tierra, el LED se ilumina con un nivel alto de salida (5 V).

Page 8: Micro Control Adores Pic

La memoria RAM de datos del microcontrolador está particionada en múltiples bancos, los cuales contienen los Registros de Funciones Especiales.Para tener claro como debemos empezar a programar se debe conocer la tabla de registros. Esta tabla está dividida en 4 bancos.

Page 9: Micro Control Adores Pic

PUERTOS DE ENTRADA/SALIDA (I/O PORTS)

Los puertos del microcontrolador son puertos bidireccionales, es decir, pueden ser configurados como puertos de entrada o de salida digital, capaz de sensar o producir señales binarias 1 ó 0 (5V ó 0V respectivamente). El puerto A tiene un ancho de 6 bits (6 pines).

La asignación de pines como entradas o salidas digitales del puerto A, se hace programando el registro llamado TRISA. En este registro se almacenan los bits que asignan los pines del puerto A como entradas o salidas.

Si se asigna un 0 a un pin este será configurado como salida (Output), mientras que si se asigna un 1 a un pin este será configurado como entrada (Input).

Page 10: Micro Control Adores Pic

PUERTOS DE ENTRADA SALIDA (I/O PORTS)

Así mismo, los registros TRISB, TRISC, TRISD y TRISE se utilizan para configurar los puertos B (de 8 bits), C (de 8 bits), D (de 8 bits) y E (de 3 bits) respectivamente.

Ejemplo:

TRISB = 0b00000000; // se configura el puerto B // como salida para poder // encender los LEDs.

Los registros PORTA, PORTB, PORTC, PORTD y PORTE, contienen el estado de los pines de entrada/salida correspondiente.

Ejemplo:

PORTB = 0b00001111; // Los pines RB0 a RB3 tienen 5 V y los pines RB4 a RB7 // tienen 0 V. Sólo se encienden 4 LEDs.

RA0/AN02

RA1/AN13

RA2/AN2/VREF-4

RA4/T0CKI6

RA5/AN4/SS7

RE0/AN5/RD8

RE1/AN6/WR9

RE2/AN7/CS10

OSC1/CLKIN13

OSC2/CLKOUT14

RC1/T1OSI/CCP216

RC2/CCP117

RC3/SCK/SCL18

RD0/PSP019

RD1/PSP120

RB7/PGD40

RB6/PGC39

RB538

RB437

RB3/PGM36

RB235

RB134

RB0/INT33

RD7/PSP730

RD6/PSP629

RD5/PSP528

RD4/PSP427

RD3/PSP322

RD2/PSP221

RC7/RX/DT26

RC6/TX/CK25

RC5/SDO24

RC4/SDI/SDA23

RA3/AN3/VREF+5

RC0/T1OSO/T1CKI15

MCLR/Vpp/THV1

U1

PIC16F877

X1

CRYSTAL4MHz

x 8

R1

330

C2

22pF

C1

22pF

R2

10k

5V

R5

330

BAT1

9V

D1

IN4007

C3100nF

C41000uF/25V

VI1

VO3

GND

2

U27805

C5100uF/16V

5V

5V

C6

100nF

RESET

Page 11: Micro Control Adores Pic

PUERTOS DE ENTRADA SALIDA (I/O PORTS)

Existen varios formatos para asignarle un valor constante a un registro:

Definición del valor constante

Formato Ejemplo

Decimal ## TRISB=73;

Hexadecimal 0x## TRISB=0x49;

Binario 0b######## TRISB=0b01001001;

Page 12: Micro Control Adores Pic

PUERTOS DE ENTRADA SALIDA (I/O PORTS)

En ocasiones sólo es necesario configurar sólo algunos pines de un puerto y no todo el puerto. Para esto los bits de los registros TRIS se pueden referenciar como TRIS&#, donde & representa el puerto y # el pin de ese puerto.

Por ejemplo: TRISB4 = 0 ; // configura el pin 4 del puerto B como salida. TRISC5 = 0; // configura el pin 5 del puerto C como salida.

Para leer (sensar) o escribir (enviar) señales sólo en algunos pines de entrada/salida , estos se pueden referenciar usando el formato R&# , donde & representa el puerto y # representa el pin del puerto.

Por ejemplo: RB4=0; // envía 0V por el pin 4 del puerto B, se enciende el LED. RC5=1; // envía 5V por el pin 5 del puerto C, se enciende el LED.

D6

R6

330

D5 R7

330

5V

Nivel lógico bajo, 0 v

Nivel lógico alto, 5 v

MICROCONTROLADOR

RB4

RC5

Page 13: Micro Control Adores Pic

// Ejemplo1#include<htc.h>#include"delay.h"#include <pic.h> __CONFIG(0b11111100110001);

void main(){unsigned int tiempo=250;TRISB=0; // Puerto B como salida

while(1==1){ PORTB=0b00000010;DelayMs(tiempo);//PORTB=0b00000010;PORTB=0x02;DelayMs(tiempo);//PORTB=0b00000100; PORTB=0x04;DelayMs(tiempo);PORTB=0b00001000; DelayMs(tiempo);PORTB=0b00010000; DelayMs(tiempo);PORTB=0b00100000; DelayMs(tiempo);PORTB=0b01000000; DelayMs(tiempo);PORTB=0b10000000; DelayMs(tiempo);}}

RA0/AN02

RA1/AN13

RA2/AN2/VREF-4

RA4/T0CKI6

RA5/AN4/SS7

RE0/AN5/RD8

RE1/AN6/WR9

RE2/AN7/CS10

OSC1/CLKIN13

OSC2/CLKOUT14

RC1/T1OSI/CCP216

RC2/CCP117

RC3/SCK/SCL18

RD0/PSP019

RD1/PSP120

RB7/PGD40

RB6/PGC39

RB538

RB437

RB3/PGM36

RB235

RB134

RB0/INT33

RD7/PSP730

RD6/PSP629

RD5/PSP528

RD4/PSP427

RD3/PSP322

RD2/PSP221

RC7/RX/DT26

RC6/TX/CK25

RC5/SDO24

RC4/SDI/SDA23

RA3/AN3/VREF+5

RC0/T1OSO/T1CKI15

MCLR/Vpp/THV1

U1

PIC16F877

X1

CRYSTAL4MHz

x 8

R1

330

C2

22pF

C1

22pF

R2

10k

5V

R5

330

BAT1

9V

D1

IN4007

C3100nF

C41000uF/25V

VI1

VO3

GND

2

U27805

C5100uF/16V

5V

5V

C6

100nF

RESET

Page 14: Micro Control Adores Pic

PUERTOS DE ENTRADA SALIDA (I/O PORTS)

Resumen de registros asociados con los puertos del microcontrolador.

PUERTOAregistros

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

PORTA -- -- RA5 RA4 RA3 RA2 RA1 RA0

TRISA -- -- TRISA5 TRISA4 TRISA3 TRISA2 TRISA1 TRISA0

PUERTOBregistros

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

PORTB RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0

TRISB TRISB7 TRISB6 TRISB5 TRISB4 TRISB3 TRISB2 TRISB1 TRISB0

PUERTOCRegistros

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

PORTC RC7 RC6 RC5 RC4 RC3 RC2 RC1 RC0

TRISC TRISC7 TRISC6 TRISC5 TRISC4 TRISC3 TRISC2 TRISC1 TRISC0

Page 15: Micro Control Adores Pic

PUERTOS DE ENTRADA SALIDA (I/O PORTS)

Resumen de registros asociados con los puertos del microcontrolador.

PUERTODRegistros

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

PORTD RD7 RD6 RD5 RD4 RD3 RD2 RD1 RD0

TRISD TRISD7 TRISD6 TRISD5 TRISD4 TRISD3 TRISD2 TRISD1 TRISD0

PUERTOERegistros

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

PORTE -- -- -- -- -- RE2 RE1 RE0

TRISE -- -- -- -- -- TRISE2 TRISE1 TRISE0

Page 16: Micro Control Adores Pic

Palabra de configuración. Puede ser programada para seleccionar varias opciones del dispositivo.

Bit 13

Bit 12

Bit 11 Bit 10

Bit 9 Bit 8 Bit 7 Bit 6 Bit 5

Bit 4

Bit 3 Bit 2 Bit 1 Bit 0

CP -- DEBUG WRT1 WRT0 CDP LVP BOREN -- -- PWRTEN WDTEN Fosc1 Fosc2

1 1 1 1 1 1 0 0 1 1 0 0 0 1

3 F 3 1

Palabra de configuración// Fosc0-Fosc1: Oscilador de cristal// WDTEN: Watchdog timer. (0) deshabilitado// PWRTEN: Timer de encendido. (0) habilitado// BORDEN: Reset por bajo voltaje. (0) deshabilitado// LVP: Programacion en bajo voltaje. (0) deshabilitado// CDP: Protección de código en memoria EEPROM. (1) deshabilitado// WRT0- WRT1: Protección contra escritura. (1 1) deshabilitado.// DEBUG: depuración de código con el uC conectado al resto del circuito. (1) deshabilitado// CP: Protección de código en la memoria Flash. (1) deshabilitado.

Page 17: Micro Control Adores Pic

Para editar el programa se hace uso de MPLAB, software proporcionado por Microchip, si se edita el programa en lenguaje C, el archivo que se genera tiene extensión .c .

Iniciar el asistente de proyecto.

Page 18: Micro Control Adores Pic

Clic en siguiente. Seleccionar el PIC 16F877A

Page 19: Micro Control Adores Pic

Seleccionar el compilador HI-TECH C Compiler

Crear nuevo proyecto. Clic en Browse. Escribir nombre del proyecto (ejemplo1.mcp) y clic en Guardar.

Page 20: Micro Control Adores Pic

Clic en siguiente. Se ha creado el proyecto, clic en finalizar.

Page 21: Micro Control Adores Pic

Crear un nuevo archivo.

Capturar el programa. Guardar el programa como ejemplo1.c y activar la casilla Add file to project.

Page 22: Micro Control Adores Pic

Agregar la librería htc.h. Clic derecho en Header Files de la ventana de proyecto. Seleccionar la librería de D:\Archivos de programa\HI-TECH Software\PICC\9.71a\include

Copiar los archivos delay.c y delay.h de la carpeta C:\Program files\HITECH Software \ PICC \ lite \ 9.71a \ samples \ LCDemo en la carpeta del código fuente y agregarlos al proyecto.

Page 23: Micro Control Adores Pic

Compilar el proyecto. Clic en el botón Build project.

Page 24: Micro Control Adores Pic

Grabación de PICs con PIC-600 y USBURN. Grabar el programa del ejemplo al PIC16F877A.

Conectar el grabador PIC600 a la computadora.Insertar el microcontrolador en el zócalo ZIF (zero insertion force). Verificar la orientación del microcontrolador.Ejecutar el programa USBURN.En la seccion IC-Socket / ICSP, seleccionar la opción 28/40 Pins.

Page 25: Micro Control Adores Pic

Clic en Identify PIC in Programmer. Clic en Select HEX File as source.

Clic en write FEX-File into PIC.

Page 26: Micro Control Adores Pic

RA0/AN02

RA1/AN13

RA2/AN2/VREF-4

RA4/T0CKI6

RA5/AN4/SS7

RE0/AN5/RD8

RE1/AN6/WR9

RE2/AN7/CS10

OSC1/CLKIN13

OSC2/CLKOUT14

RC1/T1OSI/CCP216

RC2/CCP117

RC3/SCK/SCL18

RD0/PSP019

RD1/PSP120

RB7/PGD40

RB6/PGC39

RB538

RB437

RB3/PGM36

RB235

RB134

RB0/INT33

RD7/PSP730

RD6/PSP629

RD5/PSP528

RD4/PSP427

RD3/PSP322

RD2/PSP221

RC7/RX/DT26

RC6/TX/CK25

RC5/SDO24

RC4/SDI/SDA23

RA3/AN3/VREF+5

RC0/T1OSO/T1CKI15

MCLR/Vpp/THV1

U1

PIC16F877

X1

CRYSTAL

4MHz

x 8

R1

330

C2

22pF

C1

22pF

R2

10k

5V

R5

330

BAT1

9V

D1

IN4007

C3100nF

C41000uF/25V

VI1

VO3

GND

2

U27805

C5100uF/16V

5V

5VC6

100nF

RESET

1

2

34

56

7

8

16

15

1413

1211

10

9

SW1

SW-DIP8

R?

10k

5V

///////// EJEMPLO 2#include<htc.h>#include"delay.h"#include <pic.h> __CONFIG(0x3F31);

void main(){int tiempo=250;TRISC=0xFF; // Puerto C como

//entradaTRISB=0; // Puerto B como salida

while(1==1){

if(RC1==0){PORTB=0b00000001; DelayMs(tiempo);PORTB=0b00000010;DelayMs(tiempo);PORTB=0b00000100; DelayMs(tiempo);PORTB=0b00001000; DelayMs(tiempo);PORTB=0b00010000; DelayMs(tiempo);PORTB=0b00100000; DelayMs(tiempo);PORTB=0b01000000; DelayMs(tiempo);PORTB=0b10000000; DelayMs(tiempo); }else if(RC1==1){PORTB=0b10000000; DelayMs(tiempo);PORTB=0b01000000;DelayMs(tiempo);PORTB=0b00100000; DelayMs(tiempo);PORTB=0b00010000; DelayMs(tiempo);PORTB=0b00001000; DelayMs(tiempo);PORTB=0b00000100; DelayMs(tiempo);PORTB=0b00000010; DelayMs(tiempo);PORTB=0b00000001; DelayMs(tiempo); }} }

Page 27: Micro Control Adores Pic

RA0/AN02

RA1/AN13

RA2/AN2/VREF-4

RA4/T0CKI6

RA5/AN4/SS7

RE0/AN5/RD8

RE1/AN6/WR9

RE2/AN7/CS10

OSC1/CLKIN13

OSC2/CLKOUT14

RC1/T1OSI/CCP216

RC2/CCP117

RC3/SCK/SCL18

RD0/PSP019

RD1/PSP120

RB7/PGD40

RB6/PGC39

RB538

RB437

RB3/PGM36

RB235

RB134

RB0/INT33

RD7/PSP730

RD6/PSP629

RD5/PSP528

RD4/PSP427

RD3/PSP322

RD2/PSP221

RC7/RX/DT26

RC6/TX/CK25

RC5/SDO24

RC4/SDI/SDA23

RA3/AN3/VREF+5

RC0/T1OSO/T1CKI15

MCLR/Vpp/THV1

U1

PIC16F877

X1

CRYSTAL

4MHz

x 8

R1

330

C2

22pF

C1

22pF

R2

10k

5V

R5

330

BAT1

9V

D1

IN4007

C3100nF

C41000uF/25V

VI1

VO3

GND

2

U27805

C5100uF/16V

5V

5VC6

100nF

RESET

1

2

34

56

7

8

16

15

1413

1211

10

9

SW1

SW-DIP8

R?

10k

5V

///////// EJEMPLO 2#include<htc.h>#include"delay.h"#include <pic.h> __CONFIG(0x3F31);

void main(){int tiempo=250;TRISC=0b11111111; // Puerto C como

//entradaTRISB=0; // Puerto B como salida

while(1==1){

if(RC1==0){PORTB=0b00000001; DelayMs(tiempo);PORTB=0b00000010;DelayMs(tiempo);PORTB=0b00000100; DelayMs(tiempo);PORTB=0b00001000; DelayMs(tiempo);PORTB=0b00010000; DelayMs(tiempo);PORTB=0b00100000; DelayMs(tiempo);PORTB=0b01000000; DelayMs(tiempo);PORTB=0b10000000; DelayMs(tiempo); }else if(RC1==1){PORTB=0b10000000; DelayMs(tiempo);PORTB=0b01000000;DelayMs(tiempo);PORTB=0b00100000; DelayMs(tiempo);PORTB=0b00010000; DelayMs(tiempo);PORTB=0b00001000; DelayMs(tiempo);PORTB=0b00000100; DelayMs(tiempo);PORTB=0b00000010; DelayMs(tiempo);PORTB=0b00000001; DelayMs(tiempo); }} }

Page 28: Micro Control Adores Pic

// los segmentos se encienden con 0 logico dado por el pic// se muestran los digitos 0 al 3 en el display

#include<htc.h>#include<pic.h>#include"delay.h"__CONFIG(0x3F31);

void main(){

const int numeros7seg[]={0b11000000, 0b11111001,0b10100100,0b10110000};int tiempo=250;int c=0;

TRISC=0; // puerto C como salidas

while(1==1){ c=0; while(c<=3){ PORTC=numeros7seg[c]; DelayMs(tiempo);DelayMs(tiempo); c=c+1; }

}