PROGRAMACION
#include <16f877a.h> //Archivo de definiciones del MCU
#fuses hs, nowdt
#use delay(clock=8 Mhz) //Frecuencia del cristal para el cálculo de los retardos
#define use_portb_kbd TRUE //Habilitamos la lectura del Teclado por el Puerto B
#include <lcd.c>//Libreria para LCD
#include <KBD2.c> //Libreria para el manejo del teclado
#use standard_io(D)
#rom 0x2100={'2','5','9','#','*','3','5','7','*','1','2','#'}//contraseñas guardadas en rom
void main()
{
int item; //declaramos item
int n;
char k;
char i; //Inicializamos i
char data[4], clave[12]; //Espacio de memoria
lcd_init(); //inicializamos lcd
kbd_init(); //inicializamos el teclado
port_b_pullups(TRUE); //habilitamos resistencias de pullups
set_tris_a(0b000011);
set_tris_c(0b00001111);
lcd_gotoxy(1,1);
lcd_putc(" ITSLAM "); // Imprime este mensaje
lcd_gotoxy(1,2);
lcd_putc(" BIENVENIDOS "); //Imprime este mensaje
delay_ms(1500);
while(true) //ciclo infinito
{
if(input(pin_a0)==1)
{
item++; //Incrementar item
delay_ms(300);
}
switch(item)
{
case 0: //si item es igual a cero
lcd_gotoxy(1,1);
lcd_putc("PULSE OPCIONES "); // Imprime este mensaje
lcd_gotoxy(1,2);
lcd_putc("PARA VER NIVELES"); //Imprime este mensaje
break;
//////////////////////////////////NIVEL UNO///////////////////////////////////////////////////////////////////////
case 1: // si item es igual a 1
lcd_gotoxy(1,1);
lcd_putc("NIVEL 1 \n"); //imprime este mensaje
lcd_putc(" \n"); //imprime este mensaje
if(input(pin_a1)==1) //Si en el Pin A1 hay un cero logico debido a que se pulse el boton enter
{
28