2Features Simultaneous Keyboard Display Operations Scanned Keyboard ModeScanned Sensor ModeStrobed Input Entry Mode8-Character Keyboard FIFO2-Key Lockout or N-key Rollover with Contact DebounceDual 8- or 16-Numerical DisplaySingle 16-Character DisplayRight or Left Entry 16-Byte Display RAMMode Programmable from CPUProgrammable Scan TimingInterrupt output on Key Entry
3Features Continued…. Performs two functions: Scans a keyboard, detects any key-press and transmits the information related to key pressed to CPUPuts data received from the CPU, for use by display deviceBoth functions are done repetitively without involving the CPU,Three input modes:Scanned keyboard modeScanned sensor matrix modeStrobed input modeThe display output is through two 4-bit ports which can be used as single 8-bit port.
4Functional Description 40-pin device functionally consist of:A CPU interfaceA set of scan linesInput lines for key dataOutput lines for display data
9Software OperationsDifferent commands program the 8279 modes which are sent on data bus with CS# low and A0 high and loaded to 8279 with rising edge of WR#Keyboard/Display Mode SetProgram clockRead FIFO/Sensor RAMRead Display RAMWrite Display RAMDisplay Write Inhibit/BlankingClearEnd Interrupt/Error Mode Set
10Keyboard/Display Mode Set K K K000: Encoded Scan Keyboard- 2 Key Lock-out *001: Decoded Scan Keyboard- 2 Key Lock-out010: Encoded Scan Keyboard- N Key Roll=over011: Decoded Scan Keyboard- N Key Roll=over100: Encoded Scan Sensor Matrix101: Decoded Scan Sensor Matrix110: Strobed Input, Encoded Display Scan111: Strobed Input, Encoded Display ScanD D0 0 : Eight 8-bit character display – left entry0 1 : Sixteen 8-bit character display – left entry *1 0 : Eight 8-bit character display – right entry1 1 : Sixteen 8-bit character display – right entry* : Default after reset
11Program ClockTiming & multiplexing signals for the 8279 are generated by an internal prescalerThis prescaler divides the external clock by PPPPP bits which ranges from 2 to 31Choosing a divisor that yields 100 kHz will give the specified scan and debounce times
12Read FIFO/Sensor RAMThe CPU sets the 8279 for a read of the FIFO/Sensor RAM by first writing this command, in the scan keyboard mode the Auto-Increment flag (AI) and the RAM address bits (AAA) are irrelevant.The 8279 will automatically drive the data bus for each subsequent read (A0 = 0) in the same sequence in which the data first entered the FIFO, all subsequent reads will be from the FIFO until another command is issuedIn the Sensor Matrix Mode, AAA select one of the 8 rows of the sensor RAM, if AI = 1, each successive read will be from the subsequent row of the sensor RAM.
13Read Display RAMThe CPU sets up the 8279 for a read of the Display RAM by first writing this command.The address bits AAAA selects one of the 16 rows of the Display RAM.If AI=1, this row address will be incremented after each following read or write to the display RAM.Since the same counter is used for both reading and writing, this command sets the next read or write address and the sense of the Auto-Increment mode for both operations.
14Write Display RAMThe CPU sets up the 8279 for a write to the Display RAM by first writing this command.After writing the command with A0=1, all subsequent writes with A0=0, will be to the display RAM.The addressing and Auto-Increment functions are identical to those for the Read Display RAM.
15Display Write Inhibit/Blanking The IW bits can be used to mask nibble A and nibble BThe BL flags are available to blank each nibble
16ClearThe CD bits are available to clear all rows of the display RAM to a selected blanking code.If CF=1, FIFO status is clearedCA, the Clear All bit, has the combined effect of CD & CF
17End Interrupt/Error Mode Set For the sensor matrix modes this command lowers the IRQ line & enables further writing into RAM.For N-key Rollover mode- if the E=1, the chip will work in the special Error mode.
18Status WordContains FIFO status, error and display unavailable signals.This word is read by the CPU when A0 is high and CS# & WR# are low.
19Data Read Data is read when A0, CS# & RD# are low The source of data is specified by the Read FIFO or Read Display commands,The trailing edge of RD# will cause the address of the RAM being read to be incremented if AI is set,FIFO reads always increment (if no error occurs) independent of AI.
20Data WriteData that is written with A0, CS# & WR# low is always written to the Display RAM,The address is specified by the latest Read Display or Write Display command,Auto-Incrementing on the rising edge of WR# occurs if AI is set by the latest Display command