제13장 keypad 비밀번호입력기 (hbe-mcu-multi avr).ppt...

31
KeyPAD를 이용한 비밀번호입력기 Chapter. 13 Jaeheung, Lee HBE-MCU-Multi AVR

Upload: lykhue

Post on 11-Feb-2018

252 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 제13장 KeyPAD 비밀번호입력기 (HBE-MCU-Multi AVR).ppt …artoa.hanbat.ac.kr/lecture_data/microprocessor/2014/제13장 KeyPAD... · Microsoft PowerPoint - 제13장 KeyPAD 비밀번호입력기

KeyPAD를이용한비밀번호입력기

Chapter. 13

Jaeheung, Lee

HBE-MCU-Multi AVR

Page 2: 제13장 KeyPAD 비밀번호입력기 (HBE-MCU-Multi AVR).ppt …artoa.hanbat.ac.kr/lecture_data/microprocessor/2014/제13장 KeyPAD... · Microsoft PowerPoint - 제13장 KeyPAD 비밀번호입력기

목차

1. 키패드(KeyPAD)

2. KeyPAD를 이용한 비밀번호 입력기

Page 3: 제13장 KeyPAD 비밀번호입력기 (HBE-MCU-Multi AVR).ppt …artoa.hanbat.ac.kr/lecture_data/microprocessor/2014/제13장 KeyPAD... · Microsoft PowerPoint - 제13장 KeyPAD 비밀번호입력기

키패드(KeyPAD)

¨ 키패드(KeyPAD)

¤ 마이크로컨트롤러 활용에서 사용자의 입력을 받아 들이기 위한 장치

¤ 전화기, 컴퓨터, 핸드폰, 냉장고등 거의 모든 가전제품에서 사용

¤ 키 패드 인터페이스 방식

n 정적 인터페이스(Static Interface) 방식 :

n 키를 포트에 일대 일로 연결하여 입력을 검사하는 방식

n 하드웨어 구성이 간편하고, 소프트웨어 구현이 쉬운 장점이 있다.

n 많은 키 입력이 필요할 때는 키의 개수 만큼의 포트를 사용하기 때문에 포트 사용이 비효율적이다.

n 동적 인터페이스(Dynamic Interface) 방식 :

n 키 스위치를 매트릭스 형태로 구성하여 출력상태에 따른 입력 값을 비교하여키 입력을 판별하는 방법

n 적은 포트로 여러 개의 키를 제어할 수 있다.

n 눌린 스위치의 검출 방법이 좀 복잡해진다.

Page 4: 제13장 KeyPAD 비밀번호입력기 (HBE-MCU-Multi AVR).ppt …artoa.hanbat.ac.kr/lecture_data/microprocessor/2014/제13장 KeyPAD... · Microsoft PowerPoint - 제13장 KeyPAD 비밀번호입력기

키패드(KeyPAD)

¨ 키패드(KeyPAD)¤ 정적 인터페이스(Static Interface) 방식

Page 5: 제13장 KeyPAD 비밀번호입력기 (HBE-MCU-Multi AVR).ppt …artoa.hanbat.ac.kr/lecture_data/microprocessor/2014/제13장 KeyPAD... · Microsoft PowerPoint - 제13장 KeyPAD 비밀번호입력기

키패드(KeyPAD)

¨ 키패드(KeyPAD)¤ 동적 인터페이스(Dynamic Interface) 방식

Page 6: 제13장 KeyPAD 비밀번호입력기 (HBE-MCU-Multi AVR).ppt …artoa.hanbat.ac.kr/lecture_data/microprocessor/2014/제13장 KeyPAD... · Microsoft PowerPoint - 제13장 KeyPAD 비밀번호입력기

키패드(KeyPAD)

¨ 키패드(KeyPAD)¤ 동적 인터페이스방식에서의 신호에 따른 스위치 눌림 검출표

KEY_C0~2=100 KEY_C0~2=010 KEY_C0~2=001

KEY_R0~3=1000 S1 S2 S3

KEY_R0~3=0100 S4 S5 S6

KEY_R0~3=0010 S7 S8 S9

KEY_R0~3=0001 S10 S11 S12

Page 7: 제13장 KeyPAD 비밀번호입력기 (HBE-MCU-Multi AVR).ppt …artoa.hanbat.ac.kr/lecture_data/microprocessor/2014/제13장 KeyPAD... · Microsoft PowerPoint - 제13장 KeyPAD 비밀번호입력기

실습 20 : KeyPAD를 이용한 비밀번호입력기

¨ 실습 개요

¤ 12키 키패드를 이용하여 자동문 개폐기 등에 사용되는 비밀번호 입력기를 만들도록 한다.

¤ 키패드 모듈과 TEXT LCD를 사용하여, 프로그램을 작성한다.

¤ 편이상 비밀번호는 미리 정의해두기로 하고, 4자리수 비밀 번호를 사용하기로 한다.

¨ 실습 목표

¤ 키패드의 동작 원리를 이해

¤ ATmega128의 GPIO를 이용한 키패드 데이터 입력 방법 습득

¤ TEXT-LCD, FND, GPIO 제어의 복합적인 프로그램 능력 배양

Page 8: 제13장 KeyPAD 비밀번호입력기 (HBE-MCU-Multi AVR).ppt …artoa.hanbat.ac.kr/lecture_data/microprocessor/2014/제13장 KeyPAD... · Microsoft PowerPoint - 제13장 KeyPAD 비밀번호입력기

실습 20 : KeyPAD를 이용한 비밀번호입력기

¨ 사용 모듈 : MCU 모듈, TEXT-LCD모듈, 키패드 모듈, FND 모듈

Control 신호 (Rs, RW, E)

MCU 모듈

TEXT LCD 모듈

Data BUS (D0~D7)

KeyPAD

신호

키패드 모듈

E 포트

FND모듈 연결

C,D 포트

TEXT LCD 모듈 연결

FND

모듈 Signal

FND 모듈

F포트

키패드모듈 연결

Page 9: 제13장 KeyPAD 비밀번호입력기 (HBE-MCU-Multi AVR).ppt …artoa.hanbat.ac.kr/lecture_data/microprocessor/2014/제13장 KeyPAD... · Microsoft PowerPoint - 제13장 KeyPAD 비밀번호입력기

실습 20 : KeyPAD를 이용한 비밀번호입력기

¨ 사용 모듈 : 키패드 모듈회로

Page 10: 제13장 KeyPAD 비밀번호입력기 (HBE-MCU-Multi AVR).ppt …artoa.hanbat.ac.kr/lecture_data/microprocessor/2014/제13장 KeyPAD... · Microsoft PowerPoint - 제13장 KeyPAD 비밀번호입력기

실습 20 : KeyPAD를 이용한 비밀번호입력기

¨ 모듈 결선 방법

MCU 모듈포트 C의PC0~PC7은TEXT LCD 모듈의 D0~D7 핀에 연결

MCU 모듈포트 D의PD5~PD7은 각각TEXT LCD 모듈의 RS, RW, E에 연결

MCU 모듈포트 A의 PA0~PA2은 키패드모듈의 C0~C2에, PA3~PA6은키패드 모듈의 R0~R3에 연결

MCU 모듈포트 E의PE0~PE7은FND모듈의SB_A~SA_H까지 연결

Page 11: 제13장 KeyPAD 비밀번호입력기 (HBE-MCU-Multi AVR).ppt …artoa.hanbat.ac.kr/lecture_data/microprocessor/2014/제13장 KeyPAD... · Microsoft PowerPoint - 제13장 KeyPAD 비밀번호입력기

실습 20 : KeyPAD를 이용한 비밀번호입력기

¨ 구동 프로그램 : 사전지식¤ 동작

n 키패드를 이용하여 비밀번호를 입력하고,

n 비밀번호가 입력되면 4자리가 입력될 때까지 기다렸다가 미리 지정된비밀번호와 비교하여, 맞는지 여부를 판단하고 결과를 TEXT LCD에 알려주기로 한다.

¤ 키패드 입력 루틴n 키패드모듈의 KEYPAD_R0~KEYPAD_R3에 차례대로 “1000”, “01

00”, “0010”, “0001”을 인가해 가면서, KEYPAD_C0~KEYPAD_C2값을 보면 어떤 키가 눌러졌는지 검출이 가능

¤ 소스 구성n key.c : 메인 프로그램 파일

n key_pad.c : 키패드와 비밀 번호 입력/비교 함수등 이 예제의 핵심 기능을 하는 함수들 포함

n lcd.c : TEXT LCD 관련 함수들 포함

n avr_lib.c : 부가적으로 자주 사용되는 사용자 함수들 포함

Page 12: 제13장 KeyPAD 비밀번호입력기 (HBE-MCU-Multi AVR).ppt …artoa.hanbat.ac.kr/lecture_data/microprocessor/2014/제13장 KeyPAD... · Microsoft PowerPoint - 제13장 KeyPAD 비밀번호입력기

실습 20 : KeyPAD를 이용한 비밀번호입력기

¨ 구동 프로그램 : 사전지식

¤ 키패드 입력 루틴n 키패드모듈의 KEYPAD_R0~KEYPAD_R3에 차례대로 “1000”,

“0100”, “0010”, “0001”을 인가해 가면서, KEYPAD_C0~KEYPAD_C2값을 보면 어떤 키가 눌러졌는지 검출이 가능

n 함수 get_passwd() 동작

n 키패드로 키패드 체크신호(R0~R3)을 차례대로 출력

n 키패드로부터 키입력 신호(C0~C1)를 받아 어떤 키가 눌렸는지 확인하여 FND에 출력

n 비밀번호 체크 함수에 비밀번호 비교를 의뢰

Page 13: 제13장 KeyPAD 비밀번호입력기 (HBE-MCU-Multi AVR).ppt …artoa.hanbat.ac.kr/lecture_data/microprocessor/2014/제13장 KeyPAD... · Microsoft PowerPoint - 제13장 KeyPAD 비밀번호입력기

실습 20 : KeyPAD를 이용한 비밀번호입력기

Get_passwd

u08 get_passwd(){

ROW_PORT = ROW_1;

ms_delay(1);

if((COLUMN_PIN & KEY_1)){

FND_PORT = FND_DATA_TBL[1];

passcheck('1');

}

else if((COLUMN_PIN & KEY_2)){

FND_PORT = FND_DATA_TBL[2];

passcheck('2');

}

else if((COLUMN_PIN & KEY_3)){

FND_PORT = FND_DATA_TBL[3];

passcheck('3');

}

ms_delay(10);

키패드 입력 루틴

Page 14: 제13장 KeyPAD 비밀번호입력기 (HBE-MCU-Multi AVR).ppt …artoa.hanbat.ac.kr/lecture_data/microprocessor/2014/제13장 KeyPAD... · Microsoft PowerPoint - 제13장 KeyPAD 비밀번호입력기

실습 20 : KeyPAD를 이용한 비밀번호입력기

Get_passwd

ROW_PORT = ROW_2;

ms_delay(1);

if(COLUMN_PIN & KEY_1){

FND_PORT = FND_DATA_TBL[4];

passcheck('4');

}

else if(COLUMN_PIN & KEY_2){

FND_PORT = FND_DATA_TBL[5];

passcheck('5');

}

else if(COLUMN_PIN & KEY_3){

FND_PORT = FND_DATA_TBL[6];

passcheck('6');

}

ms_delay(10);

키패드 입력 루틴

Page 15: 제13장 KeyPAD 비밀번호입력기 (HBE-MCU-Multi AVR).ppt …artoa.hanbat.ac.kr/lecture_data/microprocessor/2014/제13장 KeyPAD... · Microsoft PowerPoint - 제13장 KeyPAD 비밀번호입력기

실습 20 : KeyPAD를 이용한 비밀번호입력기

Get_passwd

ROW_PORT = ROW_3;

ms_delay(1);

if(COLUMN_PIN & KEY_1){

FND_PORT = FND_DATA_TBL[7];

passcheck('7');

}

else if(COLUMN_PIN & KEY_2){

FND_PORT = FND_DATA_TBL[8];

passcheck('8');

}

else if(COLUMN_PIN & KEY_3){

FND_PORT = FND_DATA_TBL[9];

passcheck('9');

}

ms_delay(10);

키패드 입력 루틴

Page 16: 제13장 KeyPAD 비밀번호입력기 (HBE-MCU-Multi AVR).ppt …artoa.hanbat.ac.kr/lecture_data/microprocessor/2014/제13장 KeyPAD... · Microsoft PowerPoint - 제13장 KeyPAD 비밀번호입력기

실습 20 : KeyPAD를 이용한 비밀번호입력기

Get_passwd

ROW_PORT = ROW_4;

ms_delay(1);

if(COLUMN_PIN & KEY_1){

FND_PORT = FND_DATA_TBL[15];

reset_check();

}

else if(COLUMN_PIN & KEY_2){

FND_PORT = FND_DATA_TBL[0];

passcheck('0');

}

else if(COLUMN_PIN & KEY_3){

FND_PORT = FND_DATA_TBL[11];

back_pass();

}

ms_delay(10);

return _loop;

}

키패드 입력 루틴

Page 17: 제13장 KeyPAD 비밀번호입력기 (HBE-MCU-Multi AVR).ppt …artoa.hanbat.ac.kr/lecture_data/microprocessor/2014/제13장 KeyPAD... · Microsoft PowerPoint - 제13장 KeyPAD 비밀번호입력기

실습 20 : KeyPAD를 이용한 비밀번호입력기

¨ 구동 프로그램 : 소스분석¤ Lcdconf.h

#ifdef LCD_PORT_INTERFACE

#ifndef LCD_CTRL_PORT

#define LCD_CTRL_PORT PORTD

#define LCD_CTRL_DDR DDRD

#define LCD_CTRL_RS 5

#define LCD_CTRL_RW 6

#define LCD_CTRL_E 7

#endif

#ifndef LCD_DATA_POUT

#define LCD_DATA_POUT PORTC

#define LCD_DATA_PIN PINC

#define LCD_DATA_DDR DDRC

#endif

#endif

Page 18: 제13장 KeyPAD 비밀번호입력기 (HBE-MCU-Multi AVR).ppt …artoa.hanbat.ac.kr/lecture_data/microprocessor/2014/제13장 KeyPAD... · Microsoft PowerPoint - 제13장 KeyPAD 비밀번호입력기

실습 20 : KeyPAD를 이용한 비밀번호입력기

¨ 구동 프로그램 : 소스분석¤ Key_pad.h

1-1)

#ifndef KEY_PAD_H

#define KEY_PAD_H

#include<avr/io.h>

#include"lcd.h"

#include"avr_lib.h“

#define ROW_PORT PORTA

#define ROW_DDR DDRA

#define ROW_DDR_ADDR 0x78

#define COLUMN_PORT PORTA

#define COLUMN_DDR DDRA

#define COLUMN_PIN PINA

Page 19: 제13장 KeyPAD 비밀번호입력기 (HBE-MCU-Multi AVR).ppt …artoa.hanbat.ac.kr/lecture_data/microprocessor/2014/제13장 KeyPAD... · Microsoft PowerPoint - 제13장 KeyPAD 비밀번호입력기

실습 20 : KeyPAD를 이용한 비밀번호입력기

1-1)

#define FND_PORT PORTE

#define FND_DDR DDRE

#define KEY_1 0x01

#define KEY_2 0x02

#define KEY_3 0x04

#define ROW_1 0x08

#define ROW_2 0x10

#define ROW_3 0x20

#define ROW_4 0x40

void init_keypad();

u08 get_passwd();

u08 passwd_check(u08 pass[]);

#endif

Page 20: 제13장 KeyPAD 비밀번호입력기 (HBE-MCU-Multi AVR).ppt …artoa.hanbat.ac.kr/lecture_data/microprocessor/2014/제13장 KeyPAD... · Microsoft PowerPoint - 제13장 KeyPAD 비밀번호입력기

실습 20 : KeyPAD를 이용한 비밀번호입력기

¨ 구동 프로그램 : 소스분석¤ Key_pad.c

2-1)

#include"key_pad.h"

u08 cnt=0;

u08 pass[4]={0};

u08 _loop=1;

u08 FND_DATA_TBL[]={0x3F,0X06,0X5B,0X4F,0X66,0X6D,0X7C,0X07,0X7F,0X67,0X77,0X7C,0X39,0X5E,0X79,0X71,0X08,0X80};

u08 PASSWD[]="1234";

Page 21: 제13장 KeyPAD 비밀번호입력기 (HBE-MCU-Multi AVR).ppt …artoa.hanbat.ac.kr/lecture_data/microprocessor/2014/제13장 KeyPAD... · Microsoft PowerPoint - 제13장 KeyPAD 비밀번호입력기

실습 20 : KeyPAD를 이용한 비밀번호입력기

2-2) void init_keypad(){

ROW_DDR |= ROW_DDR_ADDR;

ROW_PORT &= ~(ROW_DDR_ADDR);

COLUMN_DDR &= ~(KEY_1 | KEY_2 | KEY_3);

COLUMN_PORT &= ~(KEY_1 | KEY_2 | KEY_3);

FND_DDR = 0xff;

FND_PORT = 0x00;

lcdInit();

lcdGotoXY(0,0);

lcdPrintData("PASSWORD?",sizeof("PASSWORD?")-1);

lcdGotoXY(0,1);

lcdDataWrite('>');

}

Page 22: 제13장 KeyPAD 비밀번호입력기 (HBE-MCU-Multi AVR).ppt …artoa.hanbat.ac.kr/lecture_data/microprocessor/2014/제13장 KeyPAD... · Microsoft PowerPoint - 제13장 KeyPAD 비밀번호입력기

실습 20 : KeyPAD를 이용한 비밀번호입력기

2-4) void reset_check(){ // 패스워드 체크 리셋

lcdClear();

ms_delay(10);

lcdGotoXY(0,0);

lcdPrintData("Reset!!",sizeof("Reset!!")-1);

ms_delay(500);

lcdGotoXY(0,0);

lcdPrintData("PASSWORD?",sizeof("PASSWORD?")-1);

lcdGotoXY(0,1);

lcdDataWrite('>');

while((COLUMN_PIN & 0x07)!=0);

cnt=0;

}

Page 23: 제13장 KeyPAD 비밀번호입력기 (HBE-MCU-Multi AVR).ppt …artoa.hanbat.ac.kr/lecture_data/microprocessor/2014/제13장 KeyPAD... · Microsoft PowerPoint - 제13장 KeyPAD 비밀번호입력기

실습 20 : KeyPAD를 이용한 비밀번호입력기

2-5) void passcheck(u08 data){ // 4자리의 패스워드가 맞는지 확인하는 함수

if(cnt!=3){ //4자리입력이 아닌경우

lcdDataWrite('*');

pass[cnt++]=data;

}

else if(cnt==3){

lcdDataWrite('*');

pass[cnt]=data;

if(passwd_check(pass)!=0){ // 비밀번호 1234 와 다른 경우

lcdGotoXY(0,0);

lcdPrintData("WrongPassWord!",sizeof("WrongPassWord!")-1);

lcdGotoXY(0,1);

lcdPrintData("Plz Check U Pass",sizeof("Plz Check U Pass")-1);

Page 24: 제13장 KeyPAD 비밀번호입력기 (HBE-MCU-Multi AVR).ppt …artoa.hanbat.ac.kr/lecture_data/microprocessor/2014/제13장 KeyPAD... · Microsoft PowerPoint - 제13장 KeyPAD 비밀번호입력기

실습 20 : KeyPAD를 이용한 비밀번호입력기

2-5)

cnt=0;

ms_delay(950);

lcdClear();

ms_delay(50);

lcdPrintData("PASSWORD?",sizeof("PASSWORD?")-1);

lcdGotoXY(0,1);

lcdDataWrite('>');

}

else{ // 패스워드가 맞는경우

lcdClear();

lcdGotoXY(0,0);

lcdPrintData("Hello MCU_WORLD",sizeof("Hello MCU_WORLD")-1);

cnt=0;

_loop=0;

ms_delay(1000);

}

}

while((COLUMN_PIN & 0x07)!=0);

}

Page 25: 제13장 KeyPAD 비밀번호입력기 (HBE-MCU-Multi AVR).ppt …artoa.hanbat.ac.kr/lecture_data/microprocessor/2014/제13장 KeyPAD... · Microsoft PowerPoint - 제13장 KeyPAD 비밀번호입력기

실습 20 : KeyPAD를 이용한 비밀번호입력기

2-6) u08 get_passwd(){

ROW_PORT = ROW_1;

ms_delay(1);

if((COLUMN_PIN & KEY_1)){

FND_PORT = FND_DATA_TBL[1];

passcheck('1');

}

else if((COLUMN_PIN & KEY_2)){

FND_PORT = FND_DATA_TBL[2];

passcheck('2');

}

else if((COLUMN_PIN & KEY_3)){

FND_PORT = FND_DATA_TBL[3];

passcheck('3');

}

ms_delay(10);

Page 26: 제13장 KeyPAD 비밀번호입력기 (HBE-MCU-Multi AVR).ppt …artoa.hanbat.ac.kr/lecture_data/microprocessor/2014/제13장 KeyPAD... · Microsoft PowerPoint - 제13장 KeyPAD 비밀번호입력기

실습 20 : KeyPAD를 이용한 비밀번호입력기

2-6) ROW_PORT = ROW_2;

ms_delay(1);

if(COLUMN_PIN & KEY_1){

FND_PORT = FND_DATA_TBL[4];

passcheck('4');

}

else if(COLUMN_PIN & KEY_2){

FND_PORT = FND_DATA_TBL[5];

passcheck('5');

}

else if(COLUMN_PIN & KEY_3){

FND_PORT = FND_DATA_TBL[6];

passcheck('6');

}

ms_delay(10);

Page 27: 제13장 KeyPAD 비밀번호입력기 (HBE-MCU-Multi AVR).ppt …artoa.hanbat.ac.kr/lecture_data/microprocessor/2014/제13장 KeyPAD... · Microsoft PowerPoint - 제13장 KeyPAD 비밀번호입력기

실습 20 : KeyPAD를 이용한 비밀번호입력기

2-6) ROW_PORT = ROW_3;

ms_delay(1);

if(COLUMN_PIN & KEY_1){

FND_PORT = FND_DATA_TBL[7];

passcheck('7');

}

else if(COLUMN_PIN & KEY_2){

FND_PORT = FND_DATA_TBL[8];

passcheck('8');

}

else if(COLUMN_PIN & KEY_3){

FND_PORT = FND_DATA_TBL[9];

passcheck('9');

}

ms_delay(10);

Page 28: 제13장 KeyPAD 비밀번호입력기 (HBE-MCU-Multi AVR).ppt …artoa.hanbat.ac.kr/lecture_data/microprocessor/2014/제13장 KeyPAD... · Microsoft PowerPoint - 제13장 KeyPAD 비밀번호입력기

실습 20 : KeyPAD를 이용한 비밀번호입력기

2-6) ROW_PORT = ROW_4;

ms_delay(1);

if(COLUMN_PIN & KEY_1){

FND_PORT = FND_DATA_TBL[15];

reset_check();

}

else if(COLUMN_PIN & KEY_2){

FND_PORT = FND_DATA_TBL[0];

passcheck('0');

}

else if(COLUMN_PIN & KEY_3){

FND_PORT = FND_DATA_TBL[11];

back_pass();

}

ms_delay(10);

return _loop;

}

Page 29: 제13장 KeyPAD 비밀번호입력기 (HBE-MCU-Multi AVR).ppt …artoa.hanbat.ac.kr/lecture_data/microprocessor/2014/제13장 KeyPAD... · Microsoft PowerPoint - 제13장 KeyPAD 비밀번호입력기

실습 20 : KeyPAD를 이용한 비밀번호입력기

2-7) u08 passwd_check(u08 pass[]){

u08 _error=0;

u08 i;

for(i=0;i<4;i++){

if(pass[i]!=PASSWD[i])

_error++;

}

return _error;

}

Page 30: 제13장 KeyPAD 비밀번호입력기 (HBE-MCU-Multi AVR).ppt …artoa.hanbat.ac.kr/lecture_data/microprocessor/2014/제13장 KeyPAD... · Microsoft PowerPoint - 제13장 KeyPAD 비밀번호입력기

실습 20 : KeyPAD를 이용한 비밀번호입력기

¨ 구동 프로그램 : 소스분석¤ Key.c

3-1) #include<avr/io.h>

#include"key_pad.h" // 키패드 제어 헤더

int main(){

char loop = 1;

init_keypad(); //키패드 설정 초기화, Textlcd 초기화

3-2) while(loop){

loop=get_passwd(); //반복문을 돌려서 비밀번호가 맞는지 찾아냄

}

return 0;

}

Page 31: 제13장 KeyPAD 비밀번호입력기 (HBE-MCU-Multi AVR).ppt …artoa.hanbat.ac.kr/lecture_data/microprocessor/2014/제13장 KeyPAD... · Microsoft PowerPoint - 제13장 KeyPAD 비밀번호입력기

실습 20 : KeyPAD를 이용한 비밀번호입력기

¨ 실행 결과