JecarDatha Electronics MICROCONTROLADOR 16F877A | Page 31

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