The textbook: The Intel Microprocessor 8th edition by BARRY B. BREY
Suppose you have an 8086 microprocessor-based system, with the following peripherals:
a) A PPI chip to interface with a 4x3 keypad, like the one in Figure 11-25 on page 410 of the textbook. The only difference is that this keypad has 3 columns only. The addresses for this PPI are 0x400 through 0x403.
b) A PPI chip to interface with eight 7-segment displays, like the ones in Figure 11-21 on page 400 of the textbook. The addresses for this PPI are 0x700 through 0x703.
c) A Real-Time Clock, like the one in Figure 12-26 on page 482 of the textbook. This RTC is connected to the NMI input, and the code that is invoked on each tick is shown on page 483.
And here is page 483 in the textbook:
You have to write assembly code that achieves the following:
1) Add a DAYS variable to the code in example 12-14 (page 483).
2) Read the values of (DAYS, HOURS, MINUTES, SECONDS) and write the proper values on the 7-segment displays.
3) The default mode is to count down. This can be changed if the user presses the (#) button.
4) The user can also set the displays by pressing the (*) button and entering the desired numbers using the keypad.
For example, if the user wants to change the initial time to 12 days and 6 hours, he should press: * -> 1 -> 2 -> 0 -> 6 -> 0 -> 0 -> 0 -> 0 -> *
Once this sequence is entered, the displays start counting down from 12:06:00:00 ... unless the user presses # to count up.
For a) 85882 WR RESET 722227 Ports 50H53H B2C55 GL8 FIGURE11-25 A 4x4 keyboard matrix connected to an 8088 microprocessor through the 82C55 PIA
For b FIGURE 11-21 An 8-digit LED display interfaced to the 8088 microprocessor through an 82C55 PIA
For c FIGURE 12-26 Converting the AC power line to a 60 Hz TTL signal for the NMI input. Black 33K 74LS14 O-NMI 120 VAC White 1K3 0.1F