Download presentation
Presentation is loading. Please wait.
1
11장 키보드 인터페이스 Slide 1 (of 9)
2
“KEYBOARD INTERFACE” 에 대해 알아보겠습니다.
학습개요 이번 시간에는... “KEYBOARD INTERFACE” 에 대해 알아보겠습니다. 학 습 목 표 이장에서는 주변장치 중에서 Key board 장치의 동작과정에 대하여 공부한다. 학 습 목 차 KEYBOARD INTERFACE Z-80 Key Input Circuit(SEC-Z80) 101- keyboard Slide 2 (of 9) 1/13
3
KEYBOARD INTERFACE KEYBOARD INTERFACE (1) Keyboard 종류
(1) Encoded Keyboard type : Hardware 방식 (2) Non-encoded Keyboard Type : Software 방식 (2)Keyboard bounce key depressed leading edge bounce trailing edge bounce Key switch Keyboard bounce ⊙ Keyboard bounce 해결 방법에 따라 encoded keyboard type과 non-encoded keyboard type으로 구분된다. Slide 3 (of 9)
4
(3) Keyboard Bounce 해결 방법
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 table S R Q /Q 1 불변 불능 Slide 4 (of 9)
5
◈ 20ms delay loop을 이용한 bounce의 solution
KEYBOARD INTERFACE KEYBOARD INTERFACE 2) Software solution (Non-encoded keyboard type) Software적으로 20ms delay loop를 이용하여 bounce 해결 ◈ 20ms delay loop을 이용한 bounce의 solution Key interrupt Key가 on되면 20ms 지연시킨 다음 키 값을 읽어 들인다 . Key SW on ? yes 20ms delay loop no Key Scan code rear RETURN RETURN Slide 5 (of 9)
6
KEYBOARD INTERFACE KEYBOARD INTERFACE (4) Non-encoded Keyboard 방식 1 2
1 2 3 4 5 6 7 8 9 A B C D E F 키 접점 Hexa Keyboard Key switch 구성 Slide 6 (of 9)
7
KEYBOARD INTERFACE KEYBOARD INTERFACE Non-encoded Keyboard 방식 동작원리
그림과 같이 키가 눌러졌을 때 ① ring counter가 1000일 때 만나는 점이 없다. ② ring counter가 0100일 때 만나는 점이 없다. output Ring counter INPUT output Ring counter INPUT ③ ring counter가 0010일 때 INPUT은 0100이 된다. ④ ring counter가 0001일 때 만나는 점이 없다. 1 output Ring counter INPUT output Ring counter INPUT Key scan 값은INPUT(0100) Ring counter(0010)에 의하여42가 된다. . Slide 7 (of 9)
8
2) PIO를 이용한 Non-encoded Keyboard 원리
KEYBOARD INTERFACE KEYBOARD INTERFACE 2) PIO를 이용한 Non-encoded Keyboard 원리 D7 D6 D5 D4 D3 D2 D1 D0 PIO 4 8 C 1 2 3 5 6 7 9 A B D E F B0 B1 B2 B3 B4 B5 B6 B7 INPUT OUTPUT Key switch RING COUNTER INPUT OUTPUT D7 D6 D5 D4 D3 D D D0 Key on interrupt 신호 발생 ⊙ RING COUNTER가 돌다가 키가 눌러졌을 때 Interrupt를 발생하여 INPUT data를 읽어 들인다 이때 INPUT과 OUTPUT의 비트들을 조합하여 Key SCAN code를 구성한다. Slide 8 (of 9)
9
◈ Z80 CPU 에서 8255(PIO)를 이용한 Non-encoded Keyboard 번지
KEYBOARD INTERFACE Z-80 Key Input Circuit(SEC-Z80) ◈ Z80 CPU 에서 8255(PIO)를 이용한 Non-encoded Keyboard 번지 PIO(8255) DATA bus Key scan 1 2 3 4 5 6 7 8 9 A B C D E F (28) PORT A (KEY Scan Register) A1 (29) PORT B (DAC Output Register) A0 /IORD /IORW RESET (2A) : PORT C(ROM Counter,KEY) (2B) : CONTROL PORT Register) CS DECODER(28-2B) ① Key가 눌러지면 key에 해당되는 Scan code가 구성된다. ② Scan code는 port(8255[28번지])를 통하여 CPU로 읽혀진다. Slide 9 (of 9)
Similar presentations