KEYBOARD INTERFACE KEYBOARD INTERFACE 1 Keyboard 1 Encoded



KEYBOARD INTERFACE ü KEYBOARD INTERFACE (1) Keyboard 종류 (1) Encoded Keyboard type : Hardware 방식 (2) Non-encoded Keyboard Type : Software 방식 (2)Keyboard bounce key depressed Key switch leading edge bounce trailing edge bounce Keyboard bounce ⊙ Keyboard bounce 해결 방법에 따라 encoded keyboard type과 non-encoded keyboard type으로 구분된다. Slide 3 (of 9)

KEYBOARD INTERFACE ü KEYBOARD INTERFACE (3) Keyboard Bounce 해결 방법 Bounce : 일반적으로 약 10 ~ 20 micro sec 정도 1) Hardware solution (encoded keyboard type) ① R-C Filter를 이용한 방법(R-C filter를 이용한 bounce의 solution) Key가 on되면 C에 충전되었던 전압이 방전되어 “Low”가 된다. Key의 bounce는 C에 의해 제거된다. ② Latch Logic을 이용한 방법 (Latch logic을 이용한 bounce의 solution) Latch truth Slide 4 (of 9) table S R Q /Q 1 0 0 0 1 0 1 0 0 0 1 불변 1 1 0 0 불능 불변

KEYBOARD INTERFACE ü KEYBOARD INTERFACE 2) Software solution (Non-encoded keyboard type) Software적으로 20 ms delay loop를 이용하여 bounce 해결 ◈ 20 ms delay loop을 이용한 bounce의 solution Key interrupt Key가 on되면 20 ms 지연시킨 다음 키 값을 읽 어 들인다. Key SW on ? no yes 20 ms delay loop Key Scan code rear RETURN Slide 5 (of 9)

KEYBOARD INTERFACE ü KEYBOARD INTERFACE (4) Non-encoded Keyboard 방식 0 1 2 3 4 5 6 7 8 9 A B C D E F 키 접점 Hexa Keyboard Key switch 구성 Slide 6 (of 9)

KEYBOARD INTERFACE ü KEYBOARD INTERFACE 1) Non-encoded Keyboard 방식 동작원리 그림과 같이 키가 눌러졌을 때 ② ring counter가 0100일 때 만나는 점이 없다. ① ring counter가 1000일 때 만나는 점이 없다. Ring counter 1 0 0 output 0 0 INPUT 0 0 ③ ring counter가 0010일 때 INPUT은 0100이 된다. 1 output 0 ④ ring counter가 0001일 때 만나는 점이 없다. Ring counter output 0 0 Key scan 값은 INPUT(0100) Ring counter(0010) 에 의하여 42가 된다. INPUT 0 1 0 0 0 0 Ring counter 0 1 . Slide 7 (of 9) 0 0 0 1 output

KEYBOARD INTERFACE ü KEYBOARD INTERFACE 2) PIO를 이용한 Non-encoded Keyboard 원리 D 7 INPUT D 6 B 0 B 1 B 2 B 3 B 4 B 5 B 6 B 7 D 5 D 4 OUTPUT Key switch D 3 D 2 D 1 PIO 0 1 2 3 4 5 6 7 8 9 A B C D E F D 0 RING COUNTER INPUT Key on interrupt 신호 발생 D 7 D 6 D 5 OUTPUT D 4 D 3 D 2 D 1 D 0 ⊙ RING COUNTER가 돌다가 키가 눌러졌을 때 Interrupt를 발생하여 INPUT data를 읽어 들인다 이때 INPUT과 OUTPUT의 비트들을 조합하여 Key SCAN code를 구성한다. Slide 8 (of 9)

KEYBOARD INTERFACE ü Z-80 Key Input Circuit(SEC-Z 80) ◈ Z 80 CPU 에서 8255(PIO)를 이용한 Non-encoded Keyboard 번지 PIO(8255) DATA bus A 1 A 0 /IORD /IORW RESET CS 0 1 2 3 (29) PORT B (DAC Output Register) 4 5 6 7 (2 A) : PORT C(ROM Counter, KEY) 8 9 A B (2 B) : CONTROL PORT Register) C D E F (28) PORT A (KEY Scan Register) Key scan DECODER(28 -2 B) ① Key가 눌러지면 key에 해당되는 Scan code가 구성된다. ② Scan code는 port(8255[28번지])를 통하여 CPU로 읽혀진다. Slide 9 (of 9)
- Slides: 9