Untitled
#define RS RD2 #define EN RD3 #define D4 RD4 #define D5 RD5 #define D6 RD6 #define D7 RD7 #define _XTAL_FREQ 20000000 #include <xc.h> #include <stdio.h> #include <stdlib.h> #include <stdbool.h> #include "lcd_disp.h" #include "keypad.h" void main() { // Inicijalizacija portova TRISC0 = 0; TRISC1 = 0; TRISC2 = 1; TRISD = 0; PORTD = 0; TRISB = 0xF0; PORTB = 0xF0; // Inicijalizacija LCD-a i tastature Lcd_Init(); keyinit(); char a1 = '\0', a2 = '\0', a3 = '\0', a4 = '\0'; while (1) { RC0 = 0; RC1 = 0; if (RC2 == 1) { Lcd_Set_Cursor(1, 2); Lcd_Write_String("Vrata su"); Lcd_Set_Cursor(2, 2); Lcd_Write_String("zatvorena"); __delay_ms(1000); } else { Lcd_Clear(); Lcd_Set_Cursor(1, 2); Lcd_Write_String("Unesite tacnu"); Lcd_Set_Cursor(2, 2); Lcd_Write_String("lozinku"); __delay_ms(1000); Lcd_Clear(); // Unos lozinke sa tastature a1 = key(); Lcd_Set_Cursor(1, 1); Lcd_Write_Char(a1); a2 = key(); Lcd_Set_Cursor(1, 2); Lcd_Write_Char(a2); a3 = key(); Lcd_Set_Cursor(1, 3); Lcd_Write_Char(a3); a4 = key(); Lcd_Set_Cursor(1, 4); Lcd_Write_Char(a4); // Provjera tacnosti lozinke if (a1 == '1' && a2 == '1' && a3 == '1' && a4 == '1') { Lcd_Clear(); Lcd_Set_Cursor(1, 2); Lcd_Write_String("Dobrodosli!"); Lcd_Set_Cursor(2, 2); Lcd_Write_String("Lozinka je ispravna!"); RC1 = 1; // Upali zelenu LED __delay_ms(2000); RC1 = 0; // Ugasi zelenu LED } else { Lcd_Clear(); Lcd_Set_Cursor(1, 2); Lcd_Write_String("Lozinka nije"); Lcd_Set_Cursor(2, 2); Lcd_Write_String("tacna"); for (int i = 0; i < 3; i++) // Treperenje crvene LED { RC0 = 1; __delay_ms(500); RC0 = 0; __delay_ms(500); } } __delay_ms(1000); Lcd_Clear(); } } }
Leave a Comment