Untitled
unknown
plain_text
9 months ago
2.6 kB
3
Indexable
#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();
}
}
}
Editor is loading...
Leave a Comment