lec10
TRANSCRIPT
![Page 1: Lec10](https://reader035.vdocuments.us/reader035/viewer/2022062515/55c17a1bbb61eb3b338b46d4/html5/thumbnails/1.jpg)
Interfacing Keyboard with MPU without Peripheral Controller
Dr A SahuDept of Computer Science & Engineering
IIT Guwahati
![Page 2: Lec10](https://reader035.vdocuments.us/reader035/viewer/2022062515/55c17a1bbb61eb3b338b46d4/html5/thumbnails/2.jpg)
Outline• Peripheral communications • Keyboard – Simple Switch – One Dimensional Keyboard (PIANO) – Two Dimensional (Matrix) Keyboard
• Interfacing 1D Keyboard • Interfacing Matrix Keyboard • Modern Keyboard & Scan code• Timer and Peripheral Controller
![Page 3: Lec10](https://reader035.vdocuments.us/reader035/viewer/2022062515/55c17a1bbb61eb3b338b46d4/html5/thumbnails/3.jpg)
Transmission controller (low speed I/O)• Transmission Controller:– MPU control, Device Control (DMA)
• Type of IO mapping– Peripheral (IN/Out), Memory mapped IO (LD/ST,MV)
• Format of communication– Synchronous (T & R sync with clock), Asynchronous
• Mode of Data Transfer – Parallel, Serial (UART)
• Condition for data transfer – Uncond., Polling, Interrupt, Ready signal, Handshake
![Page 4: Lec10](https://reader035.vdocuments.us/reader035/viewer/2022062515/55c17a1bbb61eb3b338b46d4/html5/thumbnails/4.jpg)
Keyboard Vs Display• Display: Human can’t see the difference after
50Hz– Displaying speed more then 50Hz is value less– Human problem, Computer is faster
• Key board – Computer have to wait for the user Keyboard
response – Only interrupt or Read form ready buffer
![Page 5: Lec10](https://reader035.vdocuments.us/reader035/viewer/2022062515/55c17a1bbb61eb3b338b46d4/html5/thumbnails/5.jpg)
Keyboard
• Keyboard is an input device• Switch:
OFF ON
![Page 6: Lec10](https://reader035.vdocuments.us/reader035/viewer/2022062515/55c17a1bbb61eb3b338b46d4/html5/thumbnails/6.jpg)
How Keyboard work ? ==1D
0 1 2 3 14 15
+5V
N to Lg(n) decoder
A B C D
. . .
![Page 7: Lec10](https://reader035.vdocuments.us/reader035/viewer/2022062515/55c17a1bbb61eb3b338b46d4/html5/thumbnails/7.jpg)
How Keyboard work ? ==1D
0 1 2 3 14 15
+5V
N to Lg(n) decoder
A B C D
. . .
0 0 1 1
![Page 8: Lec10](https://reader035.vdocuments.us/reader035/viewer/2022062515/55c17a1bbb61eb3b338b46d4/html5/thumbnails/8.jpg)
How Keyboard work ? ==1D
0 1 2 3 14
15
+5V
N to Lg(n) decoder
A B C D
. . .
PIANO
Store Note
![Page 9: Lec10](https://reader035.vdocuments.us/reader035/viewer/2022062515/55c17a1bbb61eb3b338b46d4/html5/thumbnails/9.jpg)
Interfacing Push-Button Keys
• Problem statement– A bank of push-button keys
are connected as inputs to PORTB.
– The pull-up resistors are internal to PORTB.
– Write a program to recognize a key pressed, debounce the key, and identify its location in the key bank with numbers from 0 to 7.
![Page 10: Lec10](https://reader035.vdocuments.us/reader035/viewer/2022062515/55c17a1bbb61eb3b338b46d4/html5/thumbnails/10.jpg)
![Page 11: Lec10](https://reader035.vdocuments.us/reader035/viewer/2022062515/55c17a1bbb61eb3b338b46d4/html5/thumbnails/11.jpg)
How key board works: 2D
A B
C D
R1
R2
C1 C2
• Two dimensional– Scan Column for 1– Scan Row for 1
C1 C2
A B
DC
R2
R1
![Page 12: Lec10](https://reader035.vdocuments.us/reader035/viewer/2022062515/55c17a1bbb61eb3b338b46d4/html5/thumbnails/12.jpg)
How key board works :2D
• Scan C1 & C2: found both are zero• Scan R1 & R2: found both are zero
![Page 13: Lec10](https://reader035.vdocuments.us/reader035/viewer/2022062515/55c17a1bbb61eb3b338b46d4/html5/thumbnails/13.jpg)
How key board works :2D
• Scan C1 & C2: found C1=1, C2=0• Scan R1 & R2: found R1=1, R2=0• So Key pressed: C1R1 is Key ‘A’
![Page 14: Lec10](https://reader035.vdocuments.us/reader035/viewer/2022062515/55c17a1bbb61eb3b338b46d4/html5/thumbnails/14.jpg)
Keyboard Debounce
Stable
Noise
![Page 15: Lec10](https://reader035.vdocuments.us/reader035/viewer/2022062515/55c17a1bbb61eb3b338b46d4/html5/thumbnails/15.jpg)
Interfacing a Matrix Keyboard
MPU
Send Data using Data BUS “D7,D6,D5,D4”
Receive data using Data BUS “D3,D2,D1,D0”
Identify the column & Row
Display the proper HEX Digit on LED display
D7
D6
D5
D4
D3
D2
D1
D0
![Page 16: Lec10](https://reader035.vdocuments.us/reader035/viewer/2022062515/55c17a1bbb61eb3b338b46d4/html5/thumbnails/16.jpg)
Interfacing a Matrix Keyboard
• Software– To recognize and encode the key pressed, the
program should:• Ground all the columns by sending zeros.• Check each key in a row for logic zero.• Ground one column at a time and check all the rows in
that column.• Once a key is identified, it is encoded based on its
position in the column.
![Page 17: Lec10](https://reader035.vdocuments.us/reader035/viewer/2022062515/55c17a1bbb61eb3b338b46d4/html5/thumbnails/17.jpg)
Simple keyboard with 64 keys
• Scan Row (6)• Scan Column (3)• Send this to Decoder to generate ASCII value or Scan code
R0
R1
C0 C1 C6
R2
R6
R7
C7C2
Scan RowR6
Scan Col: C2
6,3
Decode to
ACSII
(Memory ROM)
To Host (CPU)
![Page 18: Lec10](https://reader035.vdocuments.us/reader035/viewer/2022062515/55c17a1bbb61eb3b338b46d4/html5/thumbnails/18.jpg)
Simple keyboard with 64 keys: when CAP is On
• Scan Row (6)• Scan Column (3)• Send this to Decoder to generate ASCII value or Scan code
R0
R1
C0 C1 C6
R2
R6
R7
C7C2
Scan RowR6
Scan Col: C2
6,3
(Memory ROM) To
Host (CPU)
(Memory ROM)
CAPS
![Page 19: Lec10](https://reader035.vdocuments.us/reader035/viewer/2022062515/55c17a1bbb61eb3b338b46d4/html5/thumbnails/19.jpg)
Modern Keyboard
• 104 Key• PS2 Serial interface• Scanned code• Scanned to ASCII by software
![Page 20: Lec10](https://reader035.vdocuments.us/reader035/viewer/2022062515/55c17a1bbb61eb3b338b46d4/html5/thumbnails/20.jpg)
Keyboard scan code
Keyboard work is send the codeSoftware handle the rest of the work
![Page 21: Lec10](https://reader035.vdocuments.us/reader035/viewer/2022062515/55c17a1bbb61eb3b338b46d4/html5/thumbnails/21.jpg)
What happens when you press a key?• For most keys: – Key is pressed
• keyboard sends 8-bit scan code for that key
– Key is released : • keyboard sends F0• keyboard sends scan code
• For extended keys:– Key is pressed
• keyboard sends E0• may send 1 or more scan codes
– Key is released: • keyboard sends E0 F0• keyboard sends scan code
![Page 22: Lec10](https://reader035.vdocuments.us/reader035/viewer/2022062515/55c17a1bbb61eb3b338b46d4/html5/thumbnails/22.jpg)
What Sent to PC
• ASCII is not sent, Scan codes for keys– Least significant bit first
• Normally translated by software– You remap your keys, for example– Software takes care of Shift, caps lock, control
• Scan code generated when you press• And when you release
– Two bytes: F0 followed by key scan code– Example:
• Space pressed, 29 sent• Space released, F0 29 sent
• If you hold key, scan code repeated
![Page 23: Lec10](https://reader035.vdocuments.us/reader035/viewer/2022062515/55c17a1bbb61eb3b338b46d4/html5/thumbnails/23.jpg)
23
PS/2 Keyboard (Personal System)
• Uses a synchronous serial protocol– What does that mean?
![Page 24: Lec10](https://reader035.vdocuments.us/reader035/viewer/2022062515/55c17a1bbb61eb3b338b46d4/html5/thumbnails/24.jpg)
Peripheral controller & Timer• Timer– Many devices in system – MPU use many delay routines
• Interrupt controller • Programmable Interrupt controller– ADC/DAC controller– Keyboard controller– Display controller
![Page 25: Lec10](https://reader035.vdocuments.us/reader035/viewer/2022062515/55c17a1bbb61eb3b338b46d4/html5/thumbnails/25.jpg)
Thanks