
THE UNIVERSITY OF THE
EXAMINATIONS OF DECEMBER 2007
Date and Time: Duration: 2 hours
INSTRUCTIONS TO CANDIDATES:
This paper has 3 pages and
5 questions.
Answer any THREE
(3) of FIVE (5) questions.
Question 1:
Explain how the 8085 CPU instructions
SIM and RIM operate for interrupts. [5]
Assume that an Interrupt Service Routine (ISR) for the
interrupt signal RST7.5 on an
8085 CPU, is stored in
memory location beginning at 2060H. Explain what sequence
of steps must occur for this ISR to be
activated. [4]
While the ISR above is executing, a RST
6.5 interrupt may occur. Explain, with suitable
assembly code, how
you would check to determine if a RST 6.5 interrupt occurred. Then
execute a program
at memory location 2030H if it did occur, otherwise, reboot your
computer system. [6]
Explain how the INTR interrupt signal
on the 8085 CPU operates. [5]
Question
2:
Figure 1 shows a Port address decoder interfaced to
an 8085 CPU. Explain how the
circuit operates then write instructions to
display the number “97” on the 7-segment displays. [5 + 10]
Explain the difference between Port and Address space
(mapping) and why port
address decoders are easier to design using
the upper-half of the address bus. [5]
Figure 1

Question 3:
Draw
a block diagram of a 16-channel A/D converter showing all the necessary control
signals
necessary to interface it to an SDK-85 kit. [6]
Interface
this A/D converter to the SDK-85 kit used in the Lab, using any port(s) of your
choice then write a subroutine which will read all
channels and store them in memory
starting at location 2090H. [12]
If
the A/D converter is an 8-bit type, comment on its resolution of channel 0 if
an analog
input voltage of 1.5VDC produces a full-scale
reading. [2]
Question 4:
( a ) A set of
eight data bytes are stored in memory locations starting at 4050H.
Write code to check each data byte for
bits D7 and D0. If D7 or D0 is 1, reject the
data byte;
otherwise, store the data bytes at memory locations starting at A000H. [10]
( b ) The program
below adds bytes stored in memory then saves them in memory.
Read the program and answer the
questions below.
LXI H, 0000H
LXI D,0000H
NEXT: ADD
M
JNC SKIP
INR E
SKIP: DCR D
JNZ NEXT
LXI H, 0090H
MOV M, A
INX H
MOV M, E
HLT
( a ) specify the
number of bytes that are added by the program [2]
( b ) specify the
memory locations where the result is stored [2]
( c ) identify
the two errors in the program [4]
( d ) how many
bytes does the program code occupy ? [2]
Question 5:
Sketch the waveforms for the following serial transmissions
using 7-bit data, even
parity, one stop bit, 9600 baud.
(i) ASCII <spacebar>
character (20H)
(ii)
ASCII <carriage return> character (0DH)
Indicate the bit time on your sketch. [8]
Explain the instructions of the 8085
CPU that are used to implement serial
communications. [6]
A fellow student wrote a subroutine
(GETBYTE) that performs the following tasks,
when CALLed:
( i ) reads the serial input port bit (SID pin)
( ii ) returns
the byte received in Register-C
( iii ) preserve
all other registers
( iv ) returns
to the calling program
Show (sketch), and explain, how you
would use this subroutine as an interrupt-driven
subroutine in an 8085
CPU system (assume all interrupts are at your disposal). [6]