Sie sind auf Seite 1von 87

CURSO PROGRAMACION DE

MICROCONTROLADORES

PIC LENGUAJE C
ING. DANIEL SALGADO QUITO: 2614586 0999942422

MICROCONTROLADOR
ES UN CIRCUITO INTEGRADO EN CUYO INTERIOR POSEE TODA LA ESTRUCTURA DE UN COMPUTADOR.

PROCESADOR MEMORIAS PUERTOS DE ENTRADA Y SALIDA

MICROCONTROLADOR

PIC MICROCHIP SOPORTAN 100.000 CICLOS DE ESCRITURA Y BORRADO EN SU MEMORIA FLASH. 1000.000 EN SU MEMORIA EEPROM TIEMPO DE RETENCION DE 100 AOS

PIC 16F628A

MEMORIA FLASH 2K 18 PINES DOS PUERTOS A,B COMPARADORES ANALOGOS VELOCIDAD DE OPERACIN 20 MHZ OSC INTERNO 4 MHZ COMUNICACIN SERIAL CANALES PWM

PIC 16F628A

PIC 16F870

MEMORIA FLASH 2K 28 PINES TRES PUERTOS A,B,C 5 CONVERSORES A/D VELOCIDAD DE OPERACIN 20 MHZ CANALES PWM COMUNICACIN SERIAL

PIC16F870

PIC16F877A

40 PINES MEMORIA FLASH DE 8K EEPROM 256 BYTES 33 PINES I/O PUERTOS A,B,C,D,E CONVERSOR ANALOGO DIGITAL MULTICANAL DE 10 BIT USART COMUNICACIN SERIAL VELOCIDAD DE OPERACIN HASTA 20MHZ CON OSCILADOR EXTERNO

PIC 16F877A

PIC12F675

8 PINES MEMORIA FLASH 1K MEMORIA EEPROM 128 BYTES 1 PUERTO GPIO 6 PINES I/O 4 CONVERSORES A/D 10 BITS OSCILADOR INTERNO DE 4 MHZ VELOCIDAD DE OPERACIN HASTA 20 MHZ

12F675

CONSIDERACIONES BASICAS

1.- RECUERDE QUE EL PIC ES DE TECNOLOGIA CMOS, QUIERE DECIR QUE CONSUME MUY POCA CORRIENTE PERO AL A VEZ ES SUCEPTIBLE A DAOS POR ESTATICA.
2.-PROCURAR UTILIZAR UN REGULADOR DE 5V 7805CV Y NO UN ADAPTADOR DE PARED 3.- NO SOBREPASE LOS NIVELES DE CORRIENTE MAXIMA DE 25mA POR CADA PIN DEL MICRO YA SEA PARA SALIDA O PARA ENTRADA.

COMPILADOR C

Es una poderosa herramienta de desarrollo para microcontroladores PIC. Proporciona la solucin ms fcil al cliente para las aplicaciones en vas de desarrollo para sistemas embebidos. Adems suministra los controladores (drivers) para diversos dispositivos como LCD, convertidores AD, RTC, EEPROM RS232, I2C, USB, etc.

ESTRUCTURA DE UN PROGRAMA EN C

DIRECTIVAS DE PREPROCESADO: Controlan la conversin del programa a cdigo mquina por parte del compilador. PROGRAMAS O FUNCIONES: Conjunto de instrucciones. Puede haber uno o varios; en cualquier caso siempre debe haber uno definido como principal mediante la inclusin de la llamada main().

ESTRUCTURA DE UN PROGRAMA EN C

INSTRUCCIONES: Indican como se debe comportar el PIC en todo momento. COMENTARIOS: Permiten describir lo que significa cada sentencia del programa.

TIPOS DE DATOS
TIPO Int1 Short Int Int8 Int16 Long Int32 TAMAO 1 bit 8 bits 16 bits 32 bits RANGO 01 0 a 255 0 a 65535 0 a 4294967295 DESCRIPCION Entero de 1 bit Entero Entero de 16 bits Entero de 32 bits

Float Char Void Signed Int8


Signed Int16 Signed Int32

32 bits 8 bit 8 bits


16 bits 32 bits

+-1175x1038 a 3402x10-38 0 a 255 -128 a +128


-32768 a +32768 -231 a +(231-1)

Punto Flotante Caracter Sin valor Entero con signo


Entero largo con signo Entero 32 bit con signo

VARIABLES

Las variables se pueden expresar en decimal, octal, hexadecimal o en binario: 127:Decimal 0127: Octal 0x127: Hexadecimal 0b01111111: Binario a : Caracter

VARIABLES

TIPO NOMBRE_VARIABLE[=VALOR INICIAL]


EJEMPLO: Float tdato=200.2; Int8 val=120; Las variables en un programa pueden ser de tipo LOCAL o GLOBAL. Las variables locales slo se utilizan en la funcin donde se encuentran declaradas; las variables globales se pueden utilizar en todas las funciones del programa.

FUNCIONES

Las funciones son bloques de sentencias; todas las sentencias se deben enmarcar dentro de las funciones. Al igual que las variables, las funciones deben de iniciarse antes de utilizarse. Una funcin puede ser invocada desde una sentencia de otra funcin. Una funcin puede devolver un valor a la sentencia que la ha llamado.

FUNCIONES

El tipo de dato se indica en la definicin de la funcin; en el caso de no indicarse nada se entiende que es un int8 y en el caso de no devolver un valor se debe especificar el valor VOID. Tipo_Dato Nombre_Funcintipo (param1,param2,) { sentencias }

Declaraciones de control

If - else While Do-While For Switch-Case Return Break, Continue y goto

Un led (de la sigla inglesa LED: Light-Emitting Diode: diodo emisor de luz, tambin diodo luminoso) .

PROYECTO1 PARPADEO DE UN LED

PROYECTO1 PARPADEO DE UN LED


CODIGO PIC C #include <16f877a.h> #fuses HS,NOWDT #use delay (clock=8000000) #use fast_io(B)// inicializa el puerto B void main(){ set_tris_B(0);//declaro puerto B como salida Output_B(0);//encero el puerto while(1){ //ciclo de repeticion infita output_high(pin_b0); delay_ms(1000); output_low(pin_b0); delay_ms(1000); } }

PROYECTO 2 SEMAFORO

PROYECTO 2 SEMAFORO
CODIGO PIC C
#include <16f877a.h> #fuses HS,NOWDT #use delay (clock=8000000) #use fast_io(B)// inicializa el puerto B void main(){ set_tris_B(0);//declaro puerto B como salida Output_B(0);//encero el puerto while(1){ //ciclo de repeticion infita output_high(pin_b2); delay_ms(10000); output_low(pin_b2); output_high(pin_b1); delay_ms(4000); output_low(pin_b1); output_high(pin_b0); delay_ms(10000); output_low(pin_b0); delay_ms(10000); } }

PROYECTO 3 SEMAFORO PEATONAL

PROYECTO 3 SEMAFORO PEATONAL


CODIGO PIC C
#include <16f877a.h> #fuses HS,NOWDT #use delay (clock=8000000) #use fast_io(B)// inicializa el puerto B #use fast_io(C) void main(){ set_tris_B(0);//declaro puerto B como salida Output_B(0);//encero el puerto set_tris_C(0);//declaro puerto B como salida Output_C(0);//encero el puerto while(1){ //ciclo de repeticion infita output_B(0b00000100); output_C(0b00000001); delay_ms(10000); output_B(0b00000010); delay_ms(5000); output_B(0b00000001); output_C(0b00000010); delay_ms(10000); } }

PULSADORES

Un botn o pulsador es un dispositivo utilizado para activar alguna funcin. Los botones son de diversa forma y tamao y se encuentran en todo tipo de dispositivos, aunque principalmente en aparatos elctricos o electrnicos.

PROYECTO 4 LECTURA DE UN PULSADOR

PROYECTO 4 LECTURA DE UN PULSADOR


CODIGO PIC C
#include <16f877a.h> #fuses HS,NOWDT #use delay (clock=8000000) #use fast_io(B) #use fast_io(D) void main(){ set_tris_D(255); set_tris_B(0); Output_B(0); while(1){ if (input(PIN_D0)==0){ output_high(Pin_B0); } else{ output_low(Pin_B0); }}}

PROYECTO 5

LECTURA Y ESCRITURA EN PUERTOS

PROYECTO 5
CODIGO PIC C

LECTURA Y ESCRITURA EN PUERTOS


#include <16f877a.h> #fuses HS,NOWDT #use delay (clock=8000000) #use fast_io(B) #use fast_io(D) void main(){ byte numero=0; set_tris_D(255); set_tris_B(0); Output_B(0); while(1){ numero=input_D(); output_B(numero); } }

DISPLAY 7 SEGMENTOS ANODO COMUN

El display de 7 segmentos o visualizador de 7 segmentos es un componente que se utiliza para la representacin de nmeros en muchos dispositivos electrnicos debido en gran medida a su simplicidad

PROYECTO 6

CONTADOR CICLICO CON DISP 7SEG

DECODIFICADOR 74LS47
EL C.I. 74LS47 ES UN DECODIFICADOR DE BINARIO A 7SEGMENTOS ANODO COMUN. SE INGRESA UN NUMERO BINARIO DE 4 BITS POR LAS ENTRADAS A,B,C,D Y ESTE ENCIENDE LOS LEDS NECESARIOS PARA VISUALIZAR CORRECTAMENTE EL NUMERO EN EL DISPLAY.

PROYECTO 7

CONTADOR 0-9 CON PULSO Y 7447

PROYECTO 7

CONTADOR 0-9 CON PULSO Y 7447


CODIGO PIC C void main(){ byte numero=0; set_tris_d(0);//declaro puerto D como SALIDA set_tris_b(255);//declaro puerto B como entrada Output_d(0);//encero el puerto delay_ms(500); while(1){ if (input(PIN_b0)==0){ numero++; if (numero==10){ numero=0; } delay_ms(200); } output_d(numero); delay_ms(500); } }

TRANSISTORES
LOS TRANSISTORES PUEDEN FUNCIONAR COMO AMPLIFICADORES O EN CORTE Y SATURACION SEGN LA CONFIGURACION QUE SE DISEE EL CIRCUITO.

PNP

NPN

PROYECTO 8

CONTADOR 0-99 MULTIPLEXADO

MOTOR DC
EL MOTOR DE CORRIENTE CONTINUA CONVIERTE LA ENERGIA ELECTRICA EN MECANICA, PRODUCIENDO UN MOVIENTO. SE PUEDE CONTROLAR TANTO LA VELOCIDAD COMO EL SENTIDO DEL GIRO.

PWM
LA MODULACION DE ANCHO DE PULSO PWM, ES UNA TECNICA EN LA QUE SE MODIFICA EL CICLO DE TRABAJO DE UNA SEAL PERIODICA PARA CONTROLAR LA CANTIDAD DE ENERGIA QUE SE ENVIA A UNA CARGA.

PROYECTO 9

CONTROL DE VELOCIDAD MOTOR DC

PUENTE H
EL CIRCUITO PUENTE H PERMITE LA POLARIZACION DE UN MOTOR DE TALMANERA QUE PUEDA GIRAR TANTO EN SENTIDO HORARIO Y COMO EN SENTIDO ANTIHORARIO

PROYECTO 10

CONTROL DE SENTIDO DE GIRO MOTOR DC

MOTOR PASO A PASO


El motor paso a paso est concebido de tal manera que gira un determinado ngulo proporcional a la "codificacin" de tensiones aplicadas a sus entradas . La posibilidad de controlar en todo momento esta codificacin permite realizar desplazamientos angulares lo suficientemente precisos, dependiendo el ngulo de paso (o resolucin angular) del tipo de motor (puede ser tan pequeo como 1,80 hasta unos 15).

PROYECTO 11

CONTROL MOTOR PASO A PASO UNIPOLAR

SERVOMOTOR
1500 us

500 us

2500 us

HITEC

500us 20msus

PROYECTO 12

CONTROL SERVO MOTOR

LCD 2X16
UN DISPLAY DE CRISTAL LIQUIDO, ES UN DISPOSITIVO QUE NOS PERMITE MOSTRAR INFORMACION ALFANUMERICA O CARACTERS DISEADOS.

PROYECTO 13

MANEJO DE LCD 2X16

PROYECTO 13

MANEJO DE LCD 2X16


CODIGO PIC C #include <16f877a.h> #fuses HS,NOWDT #use delay (clock=8000000) #include <LCD.C> //trabaja por default en el puerto D void main(){ lcd_init(); //inicializa LCD while(1) { lcd_gotoxy(4,1);//COLUMNA FILA printf(lcd_putc,"MEGATRONICA"); //texto a visualizar delay_MS(500); lcd_gotoxy(2,2); printf(lcd_putc,"uCONTROLADORES"); delay_MS(500); } }

KEYPAD
EL TECLADO 4X4 O 4X3 ES UNA MATRIZ DE PULSADORES EL CUAL NOS PERMITE CONTROLAR VARIOS PULSADORES CON POCOS PINES.

PROYECTO 14

LECTURA DE TECLADO 4X3 CON PICC

PROYECTO 14

LECTURA DE TECLADO 3X4 CON PIC


#include <16f877a.h> #FUSES NOWDT,hs,noprotect,nolvp #use delay(clock=8000000) #include <LCD.C> #include <KBD.C> void main() { char tecla; PORT_B_PULLUPS(true);//habilito resistencias pullups en el micro lcd_init(); kbd_init();//inicializo el teclado while(true){ tecla=kbd_getc();//leo la tecla presionada if(tecla!=0){ //si el valor de tecla es distinto de 0 lcd_gotoxy(4,1); printf(lcd_putc,"tecla= %c",tecla);//%c escribo caracter } } }

CONVERSOR AD
EL CONVERSOR ANALOGO DIGITAL PERMITE EL MUESTREO DE SEALES ANALOGICAS Y EL PROCESAMIENTO DIGITAL EN EL MICROCONTROLADOR. LOS MICROCONTROLADORES PIC TIENEN CONVERSORES AD MULTICANALES DE 10 BITS. SENSORES ANALOGOS PIC SEALES ANALOGAS

EL REGISTRO ADCON1 CONFIGURA EL PUERTO A COMO A/D

0V A 5V

0 A 1024

PROYECTO 15

CONVERSOR ANALOGO DIGITAL

PROYECTO 15

CONVERSOR ANALOGO DIGITAL


CODIGO PICC #include <16f877a.h> #device adc=10 //configuro conversor ad a 10 bits #fuses HS,NOWDT #use delay (clock=8000000) #include <LCD.C>//trbaja por default en el puerto D

void main(){ int16 dato=0;


setup_adc_ports(AN0); setup_adc(adc_clock_internal); lcd_init(); while(1){ dato=read_adc(); printf(lcd_putc,"\f ADC= %4lu",dato); 4espacios,lu entero largo sin signo delay_ms(300); } }

//\flimpia pantalla,%4

LM35
ES UN SENSOR DE TEMPERATURA ANALOGICO, VARIA 10mV POR CADA GRADO CENTIGRADO ES DECIR SI SE ENCUENTRA A TEMPERATURA AMBIENTE 20 GRADOS EN SU PIN DE SALIDA SE OBTIENE 200mV

PROYECTO 16

TERMOMETRO DIGITAL CON LM35

PROYECTO 16

TERMOMETRO DIGITAL CON LM35


CODIGO PICC #include <16f877a.h> #device adc=10 #fuses HS,NOWDT #use delay (clock=8000000) #include <LCD.C>//trbaja por default en el puerto D void main(){ int16 dato=0; float TEMP=0; setup_adc_ports(AN0); setup_adc(adc_clock_internal); lcd_init(); while(1){ dato=read_adc(); TEMP=dato/2.05; printf(lcd_putc,"\f ADC= %4lu",dato); //\flimpia pantalla,%4 4espacios,lu entero largo sin signo printf(lcd_putc,"\n TEMP= %1.2f",TEMP); //\n salto a la segundafila,1.2 1entero 2 decimales,f flotante delay_ms(300); } }

SENSOR DE DISTANCIA
El sensor GP2Y0A21 es un sensor infrarrojo anlogo capaz de medir la distancia dentro de un rango de 10cm a 80cm, se utiliza comnmente en robots para la deteccin de objetos y obstculos.

SENSOR DE DISTANCIA

PROYECTO 17

SENSOR DE DISTANCIAS CON GP2Y0A21

PROYECTO 17

SENSOR DE DISTANCIAS CON GP2Y0A21


CODIGO PICC #include <16f877a.h> #device adc=10 //configuro conversor ad a 10 bits #fuses HS,NOWDT #use delay (clock=4000000) #include <LCD.C>//trbaja por default en el puerto D void main(){ int16 valorleido=0; float voltios,dist; setup_adc_ports(AN0); setup_adc(adc_clock_internal); lcd_init(); while(1){ valorleido=read_adc(); voltios=5*valorleido/1024.0; if (voltios<0.4) dist=0; if(voltios>=0.4 && voltios<0.5) dist=159-(200*voltios); //R7 if(voltios>=0.5 && voltios<0.75) dist=99-(80*voltios); if(voltios>=0.75 && voltios<1) dist=74-(47*voltios); if(voltios>=1 && voltios<1.25) dist=59-(31*voltios); if(voltios>=1.25 && voltios<1.75) dist=31.50-(10*voltios); if(voltios>=1.75 && voltios<2.25) dist=31.50-(10*voltios); if(voltios>=2.25 && voltios<3) dist=24.98-(6.66*voltios); //R1 if (voltios>=3) dist=99; dist=dist+2; printf(lcd_putc,"\fDIST= %1.2f",dist); printf(lcd_putc,"\nVOLT= %1.2f",voltios); delay_ms(500); } }

COMUNICACIN SERIAL
PERMITE EL ENVIO RECEPCION DE DATOS ENTRE DISPOSITIVOS QUE SOPORTAN ESTE TIPO DE COMUNICACIN.

PROYECTO 18

ENVIO DE DATOS SERIAL PIC - PC

PROYECTO 18

ENVIO DE DATOS SERIAL PIC - PC


Cdigo PICC #include <16F877A.h> #fuses hs,NOWDT,NOPROTECT,PUT,NOBROWNOUT,NOLVP #use delay(clock=8000000) #use rs232(baud=9600, parity=N, xmit=PIN_C6, rcv=PIN_C7, bits=8) //baud=velocidad de transmicion,parity=np paridad,xmit=pintransmisor,rcv=pinreceptor,bits=formato de 8 bits //ej si transmito la letra A mayuscula :bit de inicio1/01000001/0bit de parada #byte PORTD = 0x08 int num; void main() { set_tris_D(0b11111111); printf("INICIANDO RS232 ");//ENVIO TEXTO
while(1) { num=input_d(); printf("%u ",num); //%u entero delay_ms(1000); } }

PROYECTO 19

RECEPCION DE DATOS SERIAL PC - PIC

PROYECTO 19
CODIGO PICC

RECEPCION DE DATOS SERIAL PC - PIC


#include <16F877A.h> #fuses hs,NOWDT,NOPROTECT,PUT,NOBROWNOUT,NOLVP #use delay(clock=8000000) #use rs232(baud=9600, parity=N, xmit=PIN_C6, rcv=PIN_C7, bits=8) #include <lcd.c> void main(){ char tecla; lcd_init(); lcd_gotoxy(1,1); printf(lcd_putc,"RXD:"); while(1){ tecla=getchar(); printf(lcd_putc,"%c",tecla); Delay_ms(100); }

COMUNICACIN INALAMBRICA POR BLUETOOTH


Bluetooth es una especificacin industrial para Redes Inalmbricas de rea Personal (WPAN) que posibilita la transmisin de voz y datos entre diferentes dispositivos mediante un enlace por radiofrecuencia en la banda ISM de los 2,4 GHz. Los principales objetivos que se pretenden conseguir con esta norma son: Facilitar las comunicaciones entre equipos mviles y fijos. Eliminar los cables y conectores entre stos. Ofrecer la posibilidad de crear pequeas redes inalmbricas y facilitar la sincronizacin de datos entre equipos personales.

COMUNICACIN INALAMBRICA POR BLUETOOTH


1. REALIZAR COMUNICACIN SERIAL PARA ENVIO DE DATOS CONFIGURACION 8,N,1,9600 2. EMPAREJAR DISPOSITIVOS CLAVE 1234 3. HABILITAR SERVICIO DE PUERTO SERIE, IDENTIFICAR EN CUAL PUERTO COM SE HA CONECTADO EL MODULO BLUETOOTH

PROYECTO 20

ENVIO Y RECEPCION DE DATOS INALAMBRICOS POR BLUETOOTH

PROYECTO 20

CODIGO PICC #include <16F877A.h> #fuses hs,NOWDT,NOPROTECT,PUT,NOBROWNOUT,NOLVP #use delay(clock=8000000) #use rs232(baud=9600, parity=N, xmit=PIN_C6, rcv=PIN_C7, bits=8) #include <lcd.c> #use fast_io(B) void main(){ char dato; set_tris_B(0); output_b(0); lcd_init(); lcd_gotoxy(1,1); printf(lcd_putc,"RXD:"); while(1){ dato=getchar(); printf(lcd_putc,"%c",dato); printf("\fDATO RECIBIDO:%c",dato); IF(dato==65)output_high(pin_b6); IF(dato==66)output_low(pin_b6); IF(dato==67)output_high(pin_b7); IF(dato==68)output_low(pin_b7); }}

ENVIO Y RECEPCION DE DATOS INALAMBRICOS POR BLUETOOTH

APP INVENTOR APLICACINES ANDROID

EDITOR DE BLOQUES

MODULO GSM
GLOBAL SYSTEM FOR MOBILE COMMUNICATION, SE DISEO PARA CUBRIR UNA GRAN VARIEDAD DE SERVICIOS QUE INCLUYEN TRANSMICION DE VOZ, DATOS, SERVICIOS DE MANEJO DE MENSAJES ENTRE EQUIPOS MOBILES SMS. MEDIANTE SMS SE PUEDE TRANSMITIR TEXTOS O DATOS ENTRE DOS MOVILES. ES IMPORTANTE REALIZAR EL CONECIONADO DEL CONVERSOR TTL RS232 Y CONFIGURAR LA VELOCIDAD DE TRANSMICION A 115200 BAUD DEPENDIENDO DEL MODELO DEL MODEM CELULAR QUE SE UTILICE

MODULO GSM
PARA LA COMUNICACIN ENTRE EL MODEM Y EL MICROCONTROLADOR SE UTILIZA LA COMUNICACIN SERIAL MEDIANTE EL ENVIO DE COMANDOS AT. COMANDOS AT PRINCIPALES

AT+CMGF=1 CONFIGURO AL MODEM EN MODO TEXTO AT+CMGS=0999942422 NUMERO AL CUAL SE VA ENVIAR SMS ATD0999942422; REALIZA UNA LLAMADA AL NUM INDICADO ATH; CUELGA LA LLAMADA AT+CSQ DEVUELVE LA CALIDAD O NIVEL DE LA SEAL AT+CMGL=REC UNREAD OBTIENE LISTADO DE MSJ RECIBIDOS AT+CMGL=REC READ OBTIENE LISTADO DE MSJ LEIDOS AT+CMGL=ALL DESPLIEGA TODOS LOS MENSAJES

PROYECTO 21

ENVIO DE MENSAJES ESCRITO POR GSM

PROYECTO 21

ENVIO DE MENSAJES ESCRITO POR GSM

PROYECTO 21

ENVIO DE MENSAJES ESCRITO POR GSM


#include <16F877A.h> #fuses hs,NOWDT,NOPROTECT,PUT,NOBROWNOUT,NOLVP #use delay(clock=20000000) #use rs232(baud=115200, parity=N, xmit=PIN_C6, rcv=PIN_C7, bits=8) #use fast_io(B) void mensaje(){ output_high(pin_b6); output_high(pin_b7); printf("AT"); printf("%c",13); printf("%c",10); delay_ms(200); printf("AT+CMGF=1"); printf("%c",13); printf("%c",10); delay_ms(100); printf("AT+CMGS="); printf("%c",34); printf("0999942422"); printf("%c",34); printf("%c",13); printf("%c",10); delay_ms(200); printf("GSM MEGATRONICA"); printf("%c",13); printf("%c",10); delay_ms(100); printf("%c",26); delay_ms(8000); output_low(pin_b6); output_low(pin_b7); } void main(){ char dato; set_tris_B(0b00111111); output_b(0); delay_ms(1500); while(1){ delay_ms(500); if(input(PIN_b0)==0){ mensaje(); }}}

PROYECTO 22

MANEJO DE PANTALLA GRAFICA 128*64

PROYECTO 22

MANEJO DE PANTALLA GRAFICA 128*64

#include <16f877a.h> #include <hdm64gs12.c> #include <graphics.c> #fuses HS, NOWDT #use delay(clock=8000000) #include <lcd.c> void main() { char TXT1[]="MEGATRONICA"; char TXT2[]="GLCD"; glcd_init(on); //inicializo el LCD while(1){ // glcd_text57(5,1,TXT1,2,1); glcd_text57(23,15,TXT2,3,1); // 57:tamao en pixeles, 33 pos en X, 30 pos en Y, 1 tamao, 1 color delay_ms(2000); glcd_rect(32,40,46,60,1,1); //(x1,y1,x2,y2,fill,color) delay_ms(2000); glcd_rect(64,40,78,60,0,1); delay_ms(2000); glcd_fillscreen(0); // sirve para borrar la pantalla delay_ms(2000); glcd_circle(64,32,32,1,1); //(x,y,radio,fill,color) delay_ms(2000); glcd_fillscreen(0); glcd_line(1,1,127,63,1); //(x1,y1,x2,y2,color) delay_ms(2000); glcd_fillscreen(0); } }

RFID Identificacion por radio frecuencia


RFID (siglas de Radio Frequency IDentification, en espaol identificacin por radiofrecuencia) es un sistema de almacenamiento y recuperacin de datos remoto que usa dispositivos denominados etiquetas, tarjetas, transpondedores o tags RFID. El propsito fundamental de la tecnologa RFID es transmitir la identidad de un objeto (similar a un nmero de serie nico) mediante ondas de radio. Las tecnologas RFID se agrupan dentro de las denominadas Auto ID (automatic identification, o identificacin automtica)

PROYECTO 23

IDENTIFICACION POR RF

PROYECTO 23

IDENTIFICACION POR RF
#include <16F877A.h> #fuses hs,NOWDT,NOPROTECT,PUT,NOBROWNOUT,NOLVP #use delay(clock=8000000) #use rs232(baud=9600, parity=N, xmit=PIN_C6, rcv=PIN_C7, bits=8) #include <lcd.c> void main(){ char dato[5]; int x; lcd_init(); lcd_gotoxy(1,1); printf(lcd_putc,"ACERQUE TAG"); while(1){ for (x=0;x<=4;x++){ dato[x]=getchar(); } for (x=0;x<=4;x++){ dato[x]=getchar(); } printf(lcd_putc,"\fCODIGO:"); printf(lcd_putc,"\n"); for(x=0;x<=5;x++){ printf(lcd_putc,"%u,",dato[x]); } delay_ms(3000); if((dato[0]=48)&&(dato[1]=48)&&(dato[2]=48)&&(dato[3]=48)&&(dato[4]=48)){ printf(lcd_putc,"\fACCESO PERMITIDO"); delay_ms(5000); }else printf(lcd_putc,"\fACCESO NO PERMITIDO"); delay_ms(5000); } }

Das könnte Ihnen auch gefallen