jueves, 24 de junio de 2010

PROYECTO DEL AIRE ACONDICIONADO

#include <18f2550.h>#fuses INTRC,NOWDT,PUT,NOPROTECT#use delay(clock=8000000)#define empezar input(pin_b1)
void main(){
setup_oscillator(osc_8MHz); set_tris_a(0x00); set_tris_b(0xff); output_a(0); output_b(0); delay_ms(50); for(;;){ if (empezar==1) { inicio: ////////////// INICIO ////////////////// ////////// enciende los dos motores por 10 minutos ////////// output_high(pin_a0); output_high(pin_a1); //// 10 MINUTOS/// delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); output_low(pin_a0); ///// se apaga el motor 1 ////// ///// 40 MINUTOS //// delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); output_high(pin_a0); ///// SE ENCIENDE EL MOTOR 2 //// delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); output_low(pin_a1); ///// SE APAGA EL MOTOR 1 ///// delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); delay_ms(6000); goto inicio; } } }

CAMPUS PARY

Servicio Nacional de Aprendizaje SENA
FORMATO PROYECTO DE FORMACIÓN

1. Información básica del proyecto
(Solo escriba los datos que se solicitan en cada espacio)

1.1 Centro de Formación: CIMI 1.2 Regional: SANTANDER
1.3 Nombre del proyecto: Sistema de control con dispositivo electrónico programable de maqueta neumática de perforación
1.4 Programa de Formación al que da respuesta Mantenimiento Electrónico E Instrumental Industrial
1.5 Tiempo estimado de ejecución del proyecto (meses):
1.6 Empresas o instituciones que participan en su formulación o financiación: (si Existe) SENA
1.7 Palabras claves de búsqueda contador, microcontrolador pic, electroválvulas.

2. Estructura del Proyecto

2.1 DESCRPICION DEL PROYECTO
"Taladro neumático microcontrolado con contador de eventos facilitando su manejo con un teclado y visualizacion en una LCD de 2x16, de esta manera podremos manejar el numero de ciclos del taladro sensorisado
"
2.3 Objetivo general
Crear un sistema de control con dispositivo electrónico programable para una maqueta neumática de perforación.
2.4 Objetivos específicos:
Evitar a los operarios de la maquina el conteo mental de ciclos
automatizar el ciclo completo de la maqueta de taladro
Contribuir con la parte ambiental y las políticas de conservación del medio ambiente.
Contribuir al SENA con un sistema optimo para centros de mantenimiento.
2.5 Alcance
2.5.1 Beneficiarios del proyecto SENA
Económico: Economiza costos en los recibos de servicios público como el de la luz
Tecnológico: Aplicación de un sistema electrónico programable, con sensores capacitivos y electroválvulas neumaticas.

2.5.3. Productos o resultados del proyecto:
Ofrece una solución asequible con una buena fiabilidad dirigida a conseguir ahorro en los consumos de electricidad.
2.6 Innovación/Gestión Tecnológica
El proyecto resuelve una necesidad del sector productivo? S/N SI
El proyecto mejora el proceso/producto/servicio existente? S/N SI
El proyecto involucra el uso de nuevas técnicas y tecnologías de proceso? S/N SI
Los productos finales son susceptibles a protección industrial y/o derechos de autor? S/N si
Los productos obtenidos en el proyecto pueden ser posicionados en el mercado? SI
2.7 Valoración Productiva
Con el desarrollo del proyecto se puede satisfacer la necesidad de un cliente potencial? S/N SI
Viabilidad de proyecto para plan de negocio ALTA

3. Planeación
3.1 FASES DEL PROYECTO 3.2 ACTIVIDADES DEL PROYECTO: 3.3. RESULTADOS DE APRENDIZAJE (a partir del programa de formación) 3.4 COMPETENCIA ASOCIADA
ANALISIS Y DIAGNOSTICO, PLANEACION DE MANTENIMIENTO Y/O MEJORA, EJECUCION Y VALIDACION DEL SISTEMA DE CONTROL DE UN BAÑO SENSORIZADO.
Análilsis y diagnóstico de los componentes eléctronicos de un taladro sensorizado. Recolectar información de internet, manuales de servicio, planos,su estructura interna y demás componentes. Analizar información técnica del mecanismo,electrónicamente ,de acuerdo con el plan de mantenimiento. "Establecer las actividades operativas
del equipo en el área, de
acuerdo con el plan
de montaje."
Reconocer el funcionamiento del equipo y los dispositivos electrónicos, de almacenamiento, y de materiales existentes, con sus principios de funcionamiento, especificaciones técnicas, procedimientos de pruebas y protocolos de seguridad Analizar fallas y verificar funciones del mecanismo electrónico,(maqueta de taladro), de acuerdo con el plan de mantenimiento. "Establecer las actividades operativas
del equipo en el área, de
acuerdo con el plan
de montaje."
Interpretar el circuito electrónico, en la elaboracion de un taladro sensorizado,para plantear su mecanismo de ahorro con relacion a su secuencia de funcionamiento. Analizar información técnica del taladro sensorizado,su parte electrónica de acuerdo con su funcionamiento "Establecer las actividades operativas
del equipo en el área, de
acuerdo con el plan
de montaje."
Analizar las fallas de los dispositivos electrónicos, de control automático(segundo ciclo) ,de manejo preexistentes de acuerdo a la información en la gestion de mantenimiento aplicando herramientas estadísticas. " Inspeccionar el sistema de implementacion del taladro sensorizado puntualizando fallas críticas o consecutivas de
acuerdo con los reportes de funcionamiento.


Analizar fallas electrónicas del taladro sensorizado para rediseño de los bienes de beneficio y seguridad.
" "


Mejorar el proceso mediante
la alteración de un parámetro electrónico, para perfeccionar sus características iniciales."
Analizar las fallas de funcionamiento y posibles dificultades en las operaciones del taladro sensorizado, para su propuesta de mejora. Determinar los niveles de voltajes, corrientes y potencia presentes en el sistema electrónico(taladro), para definir las protecciones requeridas en la ejecucion del mantenimiento. "Establecer las actividades
operativas en el área, de
acuerdo con el plan
de montaje.


"
Definir los instrumentos de medida, herramientas y equipos necesarios para realizar la inspección de funcionamiento del equipo. Establecer requerimientos físicos y humanos de acuerdo con las actividades de mantenimiento electrónico. "Establecer las actividades operativas
del equipo en el área, de
acuerdo con el plan
de montaje ."
Establecer riesgos técnicos y físicos para la actividad de mantenimiento de los dispositivos electrónicos Establecer riesgos en las actividades de mantenimiento electrónico de acuerdo con las normas ambientales y de seguridad industrial. "Establecer las actividades operativas
del equipo en el área, de
acuerdo con el plan
de montaje."
Actualizar manuales de procedimiento y fichas estándar de acuerdo con los nuevos procedimientos establecidos en el servicio Inspeccionar el circuito electrónico programables(segundo ciclo), de acuerdo con las especificaciones técnicas del fabricante. "Establecer las actividades operativas
del equipo en el área, de
acuerdo con el plan
de montaje"
Detectar puntos calientes de los equipos o conexiones para determinar su mejora o estado de funcionamiento. Establecer el estado del taladro sensorizado y su proceso de acuerdo con las lecturas realizadas con los instrumentos de medicion y control de observacion del proceso de la calidad Inspeccionar de los bienes, los sistemas electrónicos, comprobando su estado actual con relación a sus especificaciones técnicas.
Planear y diseñar las mejoras o reemplazos a realizar en los dispositivos de control y almacenamiento del mecanismo (taladro) Presentar informe con las fallas detectadas en los equipos eléctricos, para determinar sus mejoras o reemplazos. Establecer estado del taladro sensorizado y del proceso de acuerdo con las lecturas realizadas con los instrumentos de medición y control y la observación del proceso de fabricacion. Inspeccionar de los bienes, los sistemas electrónicos y comprobar su estado actual con relación a sus especificaciones técnicas.
Proponer las distintas soluciónes a las deficiencias de los dispositivos electrónicos, Proyectar y adaptar rediseños en los sistemas electrónicos para mejorar la calidad de vida. Generar un bien electronicopara satisfacer; cuando no halla energia.
Proyectar soluciones a los diferentes problemas creados en la vida cotidiana. Elaborar un equipo electronico y adaptar rediseños en los sistemas electrónicos que incrementen la productividad y la vida útil del bien. Elaborar y perfeccionar un bien electrónico para que sea de gran utilidad en distintos lugares.
"Presentar las especificaciones y determinar la mejor alternativa para solucionar
los problemas presentados en la vida cotidiana." Proyectar y adaptar rediseños que mejoren la operatividad, control y mantenimiento del sistema electronico. crear y adaptar un proceso para la mejora del bien.
Realizar los planos de las mejoras electrónicas. Adaptar rediseños que mejoren la operatividad, y mantenimiento electrónico del sistema. Mejorar el equipo electronico para perfeccionar sus caracteristicas iniciales.
Realizar las simulaciones de los diseños o cambios definidos para el mejoramiento del sistema electronico. Proyectar y adaptar rediseños que mejoren la operatividad, control y mantenimiento electrónico del sistema. "Mejorar un bien o proceso mediante
electrónica para perfeccionar sus características iniciales."
Presentar las especificaciones de los componentes requeridos para la mejora o reparación electrónica del funcionamiento. Hacer constante simulaciones al sistema electronico. Proceso para mejorar ciertas caracteristicas iniciales.
Revisar repuestos electrónicos, y la fabricación del taladro sensorizado para tener un buen resultado Proyectar y adaptar rediseños en los sistemas electrónicos para la productividad y la vida útil del bien. Proceso para mejorar ciertas caracteristicas iniciales.
Realizar las solicitudes de cotizaciones y contactos de proveedores para conseguir los componentes electrónicos. Proyectar y adaptar el diseño que mejore su funcionalidad . Mejorar el equipo electronico para perfeccionar sus caracteristicas iniciales.
Validación y ajuste Verificar previamente las funciones de lnversor basados en su sistema de operación Adaptar rediseños que mejoren la operatividad, control y mantenimiento electrónico del mecanismo "Corregir de un bien los sistemas
electrónico de acuerdo con sus especificaciones técnicas."
Verificar ajustes hechos al taladro para que no se hayan alterado los parámetros de funcionamiento Entregar el taladro sensorizado asegurando su correcto funcionamiento frente a los parámetros establecidos "Corregir de un bien los sistemas
electrónicos de acuerdo con sus especificaciones técnicas."
3.5 Organización del proyecto
3.5.1 No. Instructores requeridos 2 3.5.2 No. Aprendices sugeridos para participar en el proyecto 2
3.6 Descripción del ambiente de aprendizaje requerido
Tecnologia de almecenamiento control electronico y transformacion de fluido electrico(elementos de instalaciones ),verificacion de servicio y seguridad apropiada
3.7 Organización del proyecto
ACTIVIDADES DEL PROYECTO "DURACIÓN
(dias)" RECURSOS ESTIMADOS
Equipos/Herramientas Talento Humano (Instructores)
Descripción de Equipos Cantidad Especialidad
Recolectar información de internet, manuales de servicio, planos,su estructura interna y demás componentes. 21/01/2010 Planos y manuales y recopilación del tema en internet y otras fuentes de ayuda como libros. 1 Electrónica
Diseñar el circuito electrónico, en la elaboracion del taladro sensorizado,para plantear su sistema de almacenamiento y lista de materiales. 25/01/2010 Planos y manuales 1 Electrónica
Conocer el funcionamiento del sistema y los dispositivos electrónicos, con sus principios de funcionamiento, especificaciones técnicas, procedimientos de pruebas y protocolos de seguridad 01/02/2010 Planos y manuales y recopilación del tema en internet y otras fuentes de ayuda como libros. 1 Electrónica
Realizar las simulaciones de los diseños en las herramientas virtuales. 04/02/2010 Proteus y Pic Compiler (Simuladores) 1 Electrónica
Montaje inicial en protoboard para definir la mejoras a realizar. 09/02/2010 Planos manuales y tipos de herramientas según nuestro ambiente 1 electronica
Establecer riesgos técnicos y físicos para la actividad de mantenimiento de los dispositivos electrónicos 16/02/2010 Planos manuales y tipos de herramientas según nuestro ambiente 1 Electrónica
Multimetro, osciloscopio, pinza amperimetrica y otros. Electrónica
Presentar informe con las fallas detectadas en los equipos eléctricos, para determinar sus mejoras o reemplazos. 01/03/2010 Computador 1 Electrónica
Proponer las distintas soluciónes a las deficiencias de prediseño y los dispositivos electrónicos. 03/03/2010 Computador, simuladores de circuitos electricos 1 Electrónica
"Presentar las especificaciones y determinar la mejor alternativa para solucionar
los problemas presentados." 08/03/2010 computador, simuladores de circuitos electricos, electronicos de control 1 Electrónica
Computador, simuladores de circuitos electricos. 1 Electrónica
Presentar las especificaciones de los componentes requeridos para la mejora o reparación electrónica del funcionamiento. 15/03/2010 Computador, simuladores de circuitos electricos. 1 Electrónica
Revisar repuestos electrónicos, y la fabricación del sistema para tener un buen resultado. 18/03/2010 Computador, simuladores de circuitos electricos 1 Electrónica
Verificar previamente las funciones del taladro sensorizado basados en su sistema de operación. 29/03/2010 Componentes e instrumentos electrónicos 1 Electrónica
Analizar el desempeño de las funciones del taladro sensorizado realizando inspecciones con instrumentos de medición. 12/04/2010 Componentes e instrumentos electrónicos 1 Electrónica
AVANCES DEL PROYECTO
"
1. SIMULACION PROTEUS
2. EMULACION EN PROTOBOARD
3. MONTAJE CON TRANSISTORES
4. MONTAJE CON LCD DE 2X16
"


EQUIPO QUE PARTICIPO EN LA FORMULACION DEL PROYECTO
NOMBRE ESPECIALIDAD
cristian david torres soler ELECTRONICA
jhon albert buritica niño ELECTRONICA

LSITA DE MATERIALES

Lista de Materiales NOMBRE DEL PROYECTO
CONTADOR DE CICLOS CON MEMORIZADO
Cantidad Descripción
Integrados
1 Microcontrolador 18f2550 DESCRIPCION
1 LM 7805 "Con estos contadores mejoraremos un sistema de automatizado facilitando su conteo regresivo de ciclos
"
Condensadores
2 470uf/25v
2 10uf/50v
2 0.1uf/50v
2 0.1uf (Cerámico)
3 0.01uf (Cerámico)
2 22 pf (cerámico)
Resistencias
12 1 KΩ
Otros
6 Transistor 2N2222
1 pantalla LCD 2x16
6 borneras
1 base para micro controlador
1 Cristal 40 Megas
1 relay
bus de datos de 16 pines
1 Caja de: largo 10 cm, ancho 10 cm y alto 5 cm

PROYECTO DOCUMENTADO

#include <18f2550.h> // declaramos microcontrolador
#fuses INTRC,NOWDT,PUT,NOPROTECT // declaramos los fusibles del micro controlador
#use delay(clock=8000000) // definimos el reloj interno del micro
#define use_portb_lcd TRUE // definir el puerto b para poder trabajar con la LCD
#include // instruccion para llamar la libreria de la LCD
#define salida input(pin_c0) // definimos el pin C0 con el nombre de salida (subrutinas)
#define incr2 input(pin_a0) // definimos el pin A0 con el nimbre de incre2 (subrutinas)
#define reset input(pin_a1) // definimos el pin A1 con el nombre de reset (subrutinas)
#define incre input(pin_a2) // definimos el pin A2 con el nombre de incre (subrutinas)
#define decre input(pin_a3) // definimos el pin A3 con el nombre de decre (subrutinas)
#define guardar input(pin_a4) // definimos el pin A4 con el nombre de guardar (subrutinas)
#define mostrar input(pin_a5) // definimos el pin A5 con el nombre de mostrar (subrutinas)
// pulsadores
int con=0; // declaramos la variable con (contador) la ponemos en cero
void main(){
setup_oscillator(osc_8MHz); // oscilador interno para no colocar crystal en la vaquela
lcd_init();
set_tris_a(0xff); // declaramos el puerto A como entrada para resivir los pulsadores
set_tris_b(0x00); // declaramos el puerto B como salida para manejar la LCD
set_tris_c(0x00); // declaramos el puerto C como salida


lcd_gotoxy(1,1);
lcd_putc(" BIENVENIDOS ");
lcd_gotoxy(1,2);
lcd_putc(" SENA-SANTANDER ");
delay_ms(2000);
lcd_gotoxy(1,1);
lcd_putc(" C I M I ");
lcd_gotoxy(1,2);
lcd_putc(" GIRON ");
delay_ms(2000);
lcd_gotoxy(1,1);
lcd_putc("MTO. ELECTRONICO");
lcd_gotoxy(1,2);
lcd_putc("INST. RICARDO C.");
delay_ms(2000);
lcd_gotoxy(1,1);
lcd_putc(" GRUPO 23216 ");
lcd_gotoxy(1,2);
lcd_putc(" APRENDICES : ");
delay_ms(2000);
lcd_gotoxy(1,1);
lcd_putc("CRISTIAN TORRES ");
lcd_gotoxy(1,2);
lcd_putc(" JHON BURITICA ");
delay_ms(2000);
printf(lcd_putc,"\f");

con=read_EEPROM(10);
lcd_gotoxy(1,1);
printf(lcd_putc,"\f");
printf(lcd_putc,"Vlr.INICIAL %u ",con);
output_high(pin_c1);
// bienvenida y saludo ¡¡¡¡¡¡

inicio:
if (incre==1){ // si incrememto es = 1
delay_ms(400); // retardo de 400 micro segundos
con++; // comieza a ahumentar la variable con
lcd_gotoxy(1,1); // muestra el incremento en la parte 1.1 de la LCD
printf(lcd_putc,"\f");
printf(lcd_putc,"INCREMENTO %u ",con);
output_high(pin_c1);
} // este bloque es para hacer el ahumento

if (decre==1){ // si decremento es = 1
delay_ms(500); // retardo de 400 ms
con--; // comieza a disminuir la variable con
lcd_gotoxy(1,1); // muestra el decremento en la parte 1.1 de la LCD
printf(lcd_putc,"\f");
printf(lcd_putc,"DECREMENTO %u ",con);
output_high(pin_c1);
} // este bloque es para hacer el decremento

if (reset==1){ // si reset es = 1
delay_ms(400); // retardo de 400 micro segundos
con=0; // me coloca el contador en 0
lcd_gotoxy(1,1); // muestra el contador en 0 en la parte 1.1 de la LCD
printf(lcd_putc,"\f");
printf(lcd_putc,"RESET %u ",con);
output_high(pin_c1);
} // este bloque es para ponerme en 0 el contador

if (guardar==1){ // si guardar es = 1
delay_ms(500); // retardo de 400 micro segundos
write_eeprom(10,con); // me guarda en la posicion 10 de la memoria EEPROM el numero q halla en el contador
lcd_gotoxy(1,1); // me muestra la palabra guardado y el numero q guardo en la parte 1.1 de la LCD
printf(lcd_putc,"\f");
printf(lcd_putc,"GUARDADO %u ",con);
} // este bloque es para guardar

if (mostrar==1){ // si mostrar es = 1
delay_ms(400); // retardo de 400 micro segundos
con=read_EEPROM(10); // lee la memoria EEPROM
lcd_gotoxy(1,1); // muestra el dato q habia en la EEPROM en la parte 1.1 de la LCD
printf(lcd_putc,"\f");
printf(lcd_putc,"Vlr. INICIAL %u ",con);
output_high(pin_c1);
} // este bloque es para mostrar el dato que esta guardado en la EEPROM

IF(salida==1){ // salida es = 1
delay_ms(500); // retardo de 400 micro segundos
con--; // disminuye la variable con
lcd_gotoxy(1,2); //muestra el contador en decremento en la parte 1.2 de la LCD
printf(lcd_putc,"Vlr.ACTUAL %u ",con);

if(con==0){ // si el contador llega a 0
con=1; //

output_low(pin_c1); // ponemos el pin C1 en bajo para desactivar el rele
lcd_gotoxy(1,1); // muesrta el fin del proceso en la parte 1.1de la LCD
lcd_putc(" FIN DE PROCESO ");

}

}


if (incr2==1){ // si incre2 = 1
delay_ms(500); // retardo de 400 micro segundos
con=con+10; // para que el contador ahumente de a 10 en 10
lcd_gotoxy(1,1); // muestra el contador en incremento en la parte 1.1 de la LCD
printf(lcd_putc,"\f");
printf(lcd_putc,"INCREMENTO %u ",con);
output_high(pin_c1);
} //este bloque es para ahumentar de 10 en 10

goto inicio;
}

PROYECTO DEL CONTADOR CON LA LCD


#include <18f2550.h>#fuses INTRC,NOWDT,PUT,NOPROTECT#use delay(clock=8000000)#define use_portb_lcd TRUE#include
#define salida input(pin_c0)#define incr2 input(pin_a0)#define reset input(pin_a1)#define incre input(pin_a2)#define decre input(pin_a3)#define guardar input(pin_a4)#define mostrar input(pin_a5)
int con=0;
void main(){ setup_oscillator(osc_8MHz); lcd_init(); set_tris_a(0xff); set_tris_b(0x00); set_tris_c(0x00); lcd_gotoxy(1,1); // saludo inicial lcd_putc(" BIENVENIDOS "); lcd_gotoxy(1,2); lcd_putc(" SENA-SANTANDER "); delay_ms(2000);
lcd_gotoxy(1,1); lcd_putc(" C I M I "); lcd_gotoxy(1,2); lcd_putc(" GIRON "); delay_ms(2000);
lcd_gotoxy(1,1); lcd_putc("MTO. ELECTRONICO"); lcd_gotoxy(1,2); lcd_putc("INST. RICARDO C."); delay_ms(2000);
lcd_gotoxy(1,1); lcd_putc(" GRUPO 23216 "); lcd_gotoxy(1,2); lcd_putc(" APRENDICES : "); delay_ms(2000);
lcd_gotoxy(1,1); lcd_putc("CRISTIAN TORRES "); lcd_gotoxy(1,2); lcd_putc(" JHON BURITICA "); delay_ms(2000); printf(lcd_putc,"\f"); con=read_EEPROM(10); lcd_gotoxy(1,1); printf(lcd_putc,"\f"); printf(lcd_putc,"Vlr.INICIAL %u ",con); output_high(pin_c1); inicio:
if (incre==1){ //PULSADOR PARA INCREMENTO delay_ms(400); con++; lcd_gotoxy(1,1); printf(lcd_putc,"\f"); printf(lcd_putc,"INCREMENTO %u ",con); output_high(pin_c1); }if (decre==1){ //PULSADOR PARA DECREMENTO delay_ms(500); con--; lcd_gotoxy(1,1); printf(lcd_putc,"\f"); printf(lcd_putc,"DECREMENTO %u ",con); output_high(pin_c1); }
if (reset==1){ //PULSADOR PARA RESET delay_ms(400); con=0; lcd_gotoxy(1,1); printf(lcd_putc,"\f"); printf(lcd_putc,"RESET %u ",con); output_high(pin_c1);
}
if (guardar==1){ //PULSADOR PARA GUARDAR DATO delay_ms(500); write_eeprom(10,con); lcd_gotoxy(1,1); printf(lcd_putc,"\f"); printf(lcd_putc,"GUARDADO %u ",con); }
if (mostrar==1){ //PULSADOR PARA MOSTRAR DATO delay_ms(400); con=read_EEPROM(10); lcd_gotoxy(1,1); printf(lcd_putc,"\f"); printf(lcd_putc,"Vlr. INICIAL %u ",con); output_high(pin_c1); }
IF(salida==1){//PULSOS GENERADOS POR EL SENSOR delay_ms(500); con--; lcd_gotoxy(1,2); printf(lcd_putc,"Vlr.ACTUAL %u ",con); if(con==0){ con=1; output_low(pin_c1); lcd_gotoxy(1,1); lcd_putc(" FIN DE PROCESO "); } } if (incr2==1){ //PULSADOR PARA INCREMENTO delay_ms(500); con=con+10; lcd_gotoxy(1,1); printf(lcd_putc,"\f"); printf(lcd_putc,"INCREMENTO %u ",con); output_high(pin_c1); }
goto inicio;}




//lcd.h//Programa de cabecera para controlar una LCD 2x16//Este archivo debe incluirse dentro del programa que uilice lcd//mediante el comando #include //Juan Carlos Merchan Mejia
#ifndef lcd_enable#define lcd_enable pin_c7 //Configuración pines Lcd para el control #define lcd_write pin_c6#define lcd_rs pin_c2#endif
short bits_8_4;
#define LCD_LINEA2 0xc0 // direccion de memoria para la segunda linea#define LCD_DATO 1 // valor de rs para enviar datos a lcd#define LCD_COMANDO 0 // valor de rs para enviar comandos a lcd
//instruccion de inicializacion
#define LCD_CLEAR 0X01 // comando para limpiar pantalla#define LCD_HOME 0X02 // comando para poner el cursor en el inicio
//opciones para el display
#define LCD_DISPLAY_OFF 0x08 // comando que apaga la lcd#define LCD_DISPLAY_ON 0x0c // comando que enciende la lcd#define LCD_CURSOR_ON 0x0e // Encender cursor#define LCD_CURSOR_BLINK 0x0f // parpadeo del cursor
//OPCIONES ESPECIALES DEL CURSOR
#define LCD_CURSOR_SHIFT_RIGHT 0x10 // corrimiento del cursor hacia la derecha#define LCD_CURSOR_SHIFT_LEFT 0x14 // corrimiento del cursor hacia la izquierda#define LCD_DISPLAY_SHIFT_RIGHT 0x18 // desplazamiento del texto#define LCD_DISPLAY_SHIFT_LEFT 0x1c
//CONFIGURA EL HARDWARE
#define LCD_DISPLAY_8_BITS 0x38 //configura el bus de datos para la recepcion de ordenes#define LCD_DISPLAY_4_BITS 0x28
void lcd_enviar(int dir, int valor) //Subrutina que sirve para enviar comandos o datos para visualizar en la LCD{ int buffer; buffer=valor; if(bits_8_4==1) //comunicacion a 8 bits { if(dir==0) { output_low(lcd_write); output_low(lcd_rs); output_high(lcd_enable); output_b(valor); // **se puede cambiar el hardware BUS de DATOS delay_us(560); output_low(lcd_enable); delay_us(560); } else { output_low(lcd_write); output_high(lcd_rs); output_high(lcd_enable); output_b(valor); // **se puede cambiar el hardware BUS de DATOS delay_us(560); output_low(lcd_enable); delay_us(560); } }}
void lcd_init() //Subrutina para Inicializar la LCD { int dir,valor; bits_8_4=1; dir=LCD_COMANDO; valor=LCD_DISPLAY_8_BITS; //0X38 inicia el modulo a 8 bits lcd_enviar(dir,valor); valor=LCD_DISPLAY_ON; //0x0c activa el display lcd_enviar (dir,valor); valor=LCD_CLEAR; //0x01 borra display delay_us(560); lcd_enviar (dir,valor); valor=0x06; //selecciona mensaje fijo lcd_enviar(dir,valor); }
void lcd_gotoxy(byte x, byte y) //subrutina para posicionar la LCD { byte dir;
if(y!=1) dir=LCD_LINEA2; else dir=0; dir+=x-1; lcd_enviar(LCD_COMANDO,0x80dir); }
void lcd_putc(char c) // subrutina para escribir mensajes o realizar funciones especiales{ switch(c) { case'\f': lcd_enviar(LCD_COMANDO,0x01); delay_ms(2); break;
case'\n': lcd_gotoxy(1,2); break;
case'\b': lcd_enviar(LCD_COMANDO,0x10); break;
default: lcd_enviar(LCD_DATO,c); break; }}

TECLADO CON CLAVE


#INCLUDE <16f876.h>#FUSES XT,NOWDT,NOPROTECT,NOLVP#USE DELAY (CLOCK=4000000)#USE STANDARD_io(A)#define use_portb_lcd TRUE#define use_portb_kbd TRUE#INCLUDE #INCLUDE #INCLUDE #ROM 0X2100={'3','1','9'}
void main(){ CHAR K; INT i; char data [3],clave[3]; LCD_INIT(); KBD_INIT(); PORT_B_PULLUPS(TRUE); WHILE (TRUE){ i=0; printf(lcd_putc,"\fpulsar tecla 1\n"); while (i<=2){ K=kbd_getc(); if(k!=0) {data[i]=k; i++; printf(lcd_putc,"\fpulsar tecla %u\n",i+1); } }for (i=0;i<=2;i++) { clave[i]=read_eeprom(i);}if ((data[0]==clave [0])&&(data[1]==clave[1])&&(data[2]==clave[2])) {printf(lcd_putc,"\fpuerta abierta"); output_high(pin_a0); delay_ms(4000); output_low(pin_a0);}else printf(lcd_putc,"\fpuerta cerrada"); delay_ms(2000); } }

LCD CON TECLADO


#INCLUDE <16f876.h>#FUSES XT,NOWDT,NOPROTECT,NOLVP#USE DELAY(CLOCK=4000000)#define use_portb_lcd TRUE#define use_portb_kbd TRUE#INCLUDE #INCLUDE
VOID MAIN () {
CHAR K;INT X;LCD_INIT();Kbd_INIT();port_b_pullups(TRUE);
while(TRUE){
k=kbd_getc(); x=k-48; // conversion numerica if(k!=0){ if(k=='*') lcd_putc('\f');
else lcd_putc(k); // imprimir caracter delay_ms(300);
// printf(lcd_putc,"\f car=%c",k); // imprimir caracter // delay_ms(500); // printf(lcd_putc,"\f car=%u",k); // imprimir valor ASCII// delay_ms(500); // printf(lcd_putc,"\f num=%u",x); // imprimir el valor numerico // delay_ms(500); // lcd_putc("\flisto...\n"); } } }