nah sekarang bisa membuatnya dengan mikrokontroler, menggunakan IC ATMEGA 16, KEYPAD, LCD dan komponen pendukung lainnya, berikut skema dan kodenya. aplikasi yang digunakan, proeus untuk simulasinya dan COdevision avr untuk membuat programnya.
#include
#include
#include
#include
float nilai=0, password=22223333;
char temp[12], array[10], i=0, indeks=0;
//variabel indeks digunakan untuk mendeteksi jika indeks=0 unlock, indeks=1 lock
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x15 ;PORTC
#endasm
#include
void lock()
{
while (indeks==0)
{
lcd_gotoxy(0,0);
lcd_putsf("Tekan =");
lcd_gotoxy(0,1);
lcd_putsf("untuk lock");
PORTB = 0b11111011;
delay_ms(30);
if (PINB.7 == 0)
{
indeks=1;
PORTD.0=1;//terkunci
lcd_clear();
lcd_gotoxy(0,0);
lcd_putsf("mengunci");
delay_ms(1000);
lcd_clear();
}
}
}
void enter()
{
if (nilai==password)
{
lcd_clear();
lcd_gotoxy(0,0);
lcd_putsf("membuka");
delay_ms(1000);
i=0; nilai=0;
PORTD.0=0;//kunci terbuka
indeks=0;
}
else
{
lcd_clear();
lcd_gotoxy(0,0);
lcd_putsf("password salah");
delay_ms(2500);
i=0; nilai=0;
indeks=1;//karena password salah jadi masih terkunci
}
}
void simpan_dlm_1variabel()
{
if (i==1){nilai=array[i];}
if (i>=2 && i<=8)
{
nilai=(nilai*10)+array[i];
}
}
void scanning_keypad()//scanning pendeteksian penekanan keypad
{
lcd_gotoxy(0,0);
lcd_putsf("password");
PORTB = 0b11111110;
delay_ms(30);
if (PINB.4 == 0) {i++; array[i]=1; simpan_dlm_1variabel(); delay_ms(300);}
if (PINB.5 == 0) {i++; array[i]=4; simpan_dlm_1variabel(); delay_ms(300);}
if (PINB.6 == 0) {i++; array[i]=7; simpan_dlm_1variabel(); delay_ms(300);}
if (PINB.7 == 0) {lcd_clear();i=0;nilai=0;delay_ms(300);}
PORTB = 0b11111101;
delay_ms(30);
if (PINB.4 == 0) {i++; array[i]=2; simpan_dlm_1variabel(); delay_ms(300);}
if (PINB.5 == 0) {i++; array[i]=5; simpan_dlm_1variabel(); delay_ms(300);}
if (PINB.6 == 0) {i++; array[i]=8; simpan_dlm_1variabel(); delay_ms(300);}
if (PINB.7 == 0) {i++; array[i]=0; simpan_dlm_1variabel(); delay_ms(300);}
PORTB = 0b11111011;
delay_ms(30);
if (PINB.4 == 0) {i++; array[i]=3; simpan_dlm_1variabel(); delay_ms(300);}
if (PINB.5 == 0) {i++; array[i]=6; simpan_dlm_1variabel(); delay_ms(300);}
if (PINB.6 == 0) {i++; array[i]=9; simpan_dlm_1variabel(); delay_ms(300);}
if (PINB.7 == 0) {delay_ms(300);}
PORTB = 0b11110111;
delay_ms(30);
if (PINB.4 == 0) {delay_ms(300);}
if (PINB.5 == 0) {delay_ms(300);}
if (PINB.6 == 0) {delay_ms(300);}
if (PINB.7 == 0) {enter();delay_ms(300);}
}
void tampil_lcd()
{
if (nilai>0)
{
ftoa(nilai,0,temp);
lcd_gotoxy(0,1);
lcd_puts(temp);
}
}
void main(void)
{
PORTB=0xff;
DDRB=0x0f;
PORTD=0x00;//PD0 belogika low atau dlm keadaan unlock awalnya
DDRD=0x01;//PD0 sebagai output
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
// LCD module initialization
lcd_init(16);
lcd_putsf("elektra_solution");
delay_ms(1500);
lcd_clear();
while (1)
{
lock();
scanning_keypad();
tampil_lcd();
};
}
jika anda meninginkan data dalam bentuk file proteus dan codevision avr, mohon tungu untuk beberapa saat lagi!
atau tinggalan komentar anda pada postingan in. terimaasih, semoga bermanfaat!
terimakasih anda sudah bersedia menunggu, KLIK DISINI untuk download file lengkapnya
password "http://elektrasolution.blogspot.com" anpa tanda petik
LAIN WAKTU ITA BAHAS BAGAIMANA CARANYA MEMBUAT "4 X 4 LED CUB MENGGUNAKAN ATMEGA 16 atau ATMEGA 8535"sementara ini aku akan menyiapkan filnya! IKUTI TERUS INFONYA!
Gan,,ane ijin download ya,,
BalasHapusThanks
ok gan... silahkan... ^_^
BalasHapusgan mau nanya,, misal keadaan udh lock trus harus tekan dlu tombol lain sebelum masukin password.y gmn gan??,, soal.y ane coba tuh pas lock klo d diemin lama" muncul buat masukin password.y gmn yahh gan tolong bantu...
BalasHapusTHKS BRO..UDA BERBAGI
BalasHapus