Flow chart diatas menjelaskan aliran proses system yang ditentukan oleh program yang dibuat. Dimulai dari inisialisasi dan nilai awal, kemudian program akan
mulai membaca input yaitu input serial dari user melalui Bluetooth adapter. Jika terdapat masukan, maka program akan verifikasi password tersebut. Jika
password benar maka locker akan dibuka sesuai kode yang diberikan. Sedangkan jika salah, program akan cek jumlah kesalahan, bila mencapai lebih 3 kali maka
buzzer akan diaktifkan. Jika belum mencapai 3 lebih maka counter akan ditambahkan. Proses mengunci kembali locker yang telah dibuka cukup dengan
mengirim tanda tanpa disertai password. Flow chart diatas memberikan aliran 1 siklus kerja system.
3.9 Program
Adapun program ringkas yang diisikan ke dalam IC Mikrokontroler ATmega 8 adalah sebagai berikut:
include mega8.h include delay.h
include stdio.h
unsigned char x,j,t,Data,I,A,B,C,D,E; void Open_Lock1void{
for j=0;j18;j++{ PORTC.0 = 1 ;delay_ms200;
PORTC.1 = 2 ;delay_ms200; PORTC.2 = 4 ;delay_ms200;
PORTC.3 = 8 ;delay_ms200; }
PORTC = 0 ; }
void Close_Lock1void{ for j=0;j18;j++{
PORTC.3 = 8 ;delay_ms200;
Universitas Sumatera Utara
PORTC.2 = 4 ;delay_ms200; PORTC.1 = 2;delay_ms200;
PORTC.0 = 1 ;delay_ms200; }
PORTC = 0 ; }
void Close_Lock2void{ for j=0;j18;j++{
PORTD.1 = 1 ; delay_ms200;PORTD.4 = 0 ; PORTD.2 = 1 ; delay_ms200;PORTD.1 = 0 ;
PORTD.3 = 1 ; delay_ms200;PORTD.2 = 0 ; PORTD.4 = 1 ; delay_ms200;PORTD.3 = 0 ;PORTD.4 = 0 ;
} }
void Open_Lock2void{ for j=0;j18;j++{
PORTD.4 = 1 ; delay_ms200;PORTD.1 = 0 ; PORTD.3 = 1 ; delay_ms200;PORTD.4 = 0 ;
PORTD.2 = 1 ; delay_ms200;PORTD.3 = 0 ; PORTD.1 = 1 ; delay_ms200;PORTD.2 = 0 ;PORTD.1 = 0 ;
} }
void Open_Lock3void{ for j=0;j18;j++{
PORTB.0 = 1 ;delay_ms200; PORTB.1 = 2 ;delay_ms200;
PORTB.2 = 4 ;delay_ms200; PORTB.3 = 8 ;delay_ms200;
} PORTB = 0 ;
}
Universitas Sumatera Utara
void Close_Lock3void{ for j=0;j18;j++{
PORTB.3 = 8 ;delay_ms200; PORTB.2 = 4 ;delay_ms200;
PORTB.1 = 2;delay_ms200; PORTB.0 = 1 ;delay_ms200;
} PORTB = 0 ;
}
void mainvoid {
PORTB=0x00; DDRB=0xFF;
PORTC=0x00; DDRC=0x3F;
PORTD=0xE0; DDRD=0x1E;
UCSRA=0x00; UCSRB=0x10;
UCSRC=0x86; UBRRH=0x00;
UBRRL=0x47; t = 10;
x = 0; while 1
{XT:if UCSRA 1RXC{ Data = UDR;
PORTC.4 = 1; delay_ms15;PORTC.4 = 0;
Universitas Sumatera Utara
ifI == 1{ A = Data;} ifI == 2{ B = Data;}
ifI == 3{ C = Data;} ifI == 4{ D = Data;}
ifI == 5{ E = Data;} ifI 5 { I = 0;}
if Data == {I = 0;} if Data == {I = 0;if A==3{if B==2{if C==4{if D==1{if
E==1{Open_Lock1;x = 0;goto XT;}}}}}x++;} if Data == {I = 0;if A==4{if B==3{if C==2{if D==1{if
E==2{Open_Lock2;x = 0;goto XT;}}}}}x++;} if Data == {I = 0;if A==5{if B==2{if C==3{if D==1{if
E==3{Open_Lock3;x = 0;goto XT;}}}}}x++;} if Data == {I = 0;if A==3{if B==2{if C==4{if D==1{x =
0;goto XT;}}}}}
if Data == {I = 0;if A==5{if B==2{if C==1{Close_Lock1;x = 0;}}}}
if Data == {I = 0;if A==7{if B==3{if C==2{Close_Lock2;x = 0;}}}}
if Data == {I = 0;if A==8{if B==1{if C==3{Close_Lock3;x = 0;}}}}
I++;}
if x 6 {PORTC.4 = 1; delay_ms200;PORTC.4 = 0; delay_ms200;} }
}
Universitas Sumatera Utara
BAB 4
PENGUJIAN ALAT DAN PROGRAM
4.1 Pengujian Rangkaian Mikrokontroler ATMega 8