Documente Academic
Documente Profesional
Documente Cultură
h>
#include <stdlib.h>
#include <stdio.h>
#asm
#endasm
#include <lcd.h>
float nilai=0,password=321;
char temp[12],array[10],i=0,index=0;
void lock()
while(index==0)
lcd_gotoxy(0,0);
lcd_gotoxy(0,1);
lcd_putsf("to lock");
PORTB=0b10111111;
delay_ms(10);
if(PINB.3==0)
index=1;
PORTD.1=1;//terkunci
lcd_clear();
lcd_gotoxy(0,0);
lcd_putsf("LOCKED");
delay_ms(100);
lcd_clear();
void enter()
if(nilai==password)
lcd_clear();
lcd_gotoxy(0,0);
lcd_putsf("Unlock");
delay_ms(100);
i=0; nilai=0;
PORTD.1=0;//kunci terbuka
index=0;
else
lcd_clear();
lcd_gotoxy(0,0);
lcd_putsf("Wrong Password");
i=0; nilai=0;
index=1;//masih terkunci
void simpan_dalam1variabel()
if(i==1)
{nilai=array[i];}
{nilai=(nilai*10)+array[i];}
void scanning_keypad()
lcd_gotoxy(0,0);
delay_ms(3);
if(PINB.0==0)
{i++;array[i]=1;simpan_dalam1variabel();delay_ms(30);}
if(PINB.1==0)
{i++;array[i]=4;simpan_dalam1variabel();delay_ms(30);}
if(PINB.2==0)
{i++;array[i]=7;simpan_dalam1variabel();delay_ms(30);}
if(PINB.3==0)
{enter();delay_ms(30);}
PORTB=0b11011111;
delay_ms(3);
if(PINB.0==0)
{i++;array[i]=2;simpan_dalam1variabel();delay_ms(30);}
if(PINB.1==0)
{i++;array[i]=5;simpan_dalam1variabel();delay_ms(30);}
if(PINB.2==0)
{i++;array[i]=8;simpan_dalam1variabel();delay_ms(30);}
if(PINB.3==0)
{i++;array[i]=0;simpan_dalam1variabel();delay_ms(30);}
PORTB=0b10111111;
delay_ms(3);
if(PINB.0==0)
{i++;array[i]=3;simpan_dalam1variabel();delay_ms(30);}
if(PINB.1==0)
{i++;array[i]=6;simpan_dalam1variabel();delay_ms(30);}
if(PINB.2==0)
{i++;array[i]=9;simpan_dalam1variabel();delay_ms(30);}
if(PINB.3==0)
{delay_ms(30);}
void tampil_lcd()
if(nilai>0)
ftoa(nilai,0,temp);
lcd_gotoxy(0,1);
lcd_puts(temp);
void main(void)
// Port A initialization
PORTA=0x00;
DDRA=0x00;
// Port B initialization
PORTB=0xFF;
DDRB=0xF0;
// Port C initialization
PORTC=0x00;
DDRC=0x00;
// Port D initialization
PORTD=0x00;
DDRD=0xff;
// Timer/Counter 0 initialization
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;
// Timer/Counter 1 initialization
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
// Timer/Counter 2 initialization
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;
TIMSK=0x00;
ACSR=0x80;
SFIOR=0x00;
lcd_init(16);
while (1)
lock();
scanning_keypad();
tampil_lcd();
};