Microprocessor
Microprocessor
These lines constitute the time multiplexed memory/IO address during the first clock cycle (T1) and
data during T2, T3 and T4 clock cycles. A0 is analogous to BHE for the lower byte of the data bus,
pins D0-D7. A0 bit is Low during T1 state when a byte is to be transferred on the lower portion of the
bus in memory or I/O operations. 8-bit oriented devices tied to the lower half would normally use A0
to condition chip select functions. These lines are active high and float to tristate during interrupt
acknowledge and local bus "Hold acknowledge"…..
A19/S6, A18/S5, A17/S4, A16/S3 (0): Address/Status
During T1 state these lines are the four most significant address lines for memory operations. During
I/O operations these lines are low. During memory and I/O operations, status information is available
on these lines during T2, T3, and T4 states.S5: The status of the interrupt enable flag bit is updated at
the beginning of each cycle. The status of the flag is indicated through this bus.
S6:
When Low, it indicates that 8086 is in control of the bus. During a "Hold acknowledge" clock period,
the 8086 tri-states the S6 pin and thus allows another bus master to take control of the status bus.
S3 & S4:
During T1 state the BHE should be used to enable data onto the most significant half of the data bus,
pins D15 - D8. Eight-bit oriented devices tied to the upper half of the bus would normally use BHE to
control chip select functions. BHE is Low during T1 state of read, write and interrupt acknowledge
cycles when a byte is to be transferred on the high portion of the bus.
The S7 status information is available during T2, T3 and T4 states. The signal is active Low and floats
to 3-state during "hold" state. This pin is Low during T1 state for the first interrupt acknowledge cycle.
RD (O): READ
The Read strobe indicates that the processor is performing a memory or I/O read cycle. This signal is
active low during T2 and T3 states and the Tw states of any read cycle. This signal floats to tri-state in
"hold acknowledge cycle".
TEST (I)
TEST pin is examined by the "WAIT" instruction. If the TEST pin is Low, execution continues.
Otherwise the processor waits in an "idle" state. This input is synchronized internally during each
clock cycle on the leading edge of CLK.
INTR (I): Interrupt Request
It is a level triggered input which is sampled during the last clock cycle of each instruction to
determine if the processor should enter into an interrupt acknowledge operation. A subroutine is
vectored to via an interrupt vector look up table located in system memory. It can be internally
masked by software resetting the interrupt enable bit INTR is internally synchronized. This signal is
active HIGH.
An edge triggered input, causes a type-2 interrupt. A subroutine is vectored to via the interrupt
vector look up table located in system memory. NMI is not maskable internally by software. A
transition from a LOW to HIGH on this pin initiates the interrupt at the end of the current instruction.
This input is internally synchronized.
Reset (I)
Reset causes the processor to immediately terminate its present activity. To be recognised, the signal
must be active high for at least four clock cycles, except after power-on which requires a 50 Micro
Sec. pulse. It causes the 8086 to initialize registers DS, SS, ES, IP and flags to all zeros. It also initializes
CS to FFFF H. Upon removal of the RESET signal from the RESET pin, the 8086 will fetch its next
instruction from the 20 bit physical address FFFF0H. The reset signal to 8086 can be generated by the
8284. (Clock generation chip). To guarantee reset from power-up, the reset input must remain below
1.5 volts for 50 Micro sec. after Vcc has reached the minimum supply voltage of 4.5V.
Ready (I)
Ready is the acknowledgement from the addressed memory or I/O device that it will complete the
data transfer. The READY signal from memory or I/O is synchronized by the 8284 clock generator to
form READY. This signal is active HIGH. The 8086 READY input is not synchronized. Correct operation
is not guaranteed if the setup and hold times are not met.
Clock provides the basic timing for the processor and bus controller. It is asymmetric with 33% duty
cycle to provide optimized internal timing. Minimum frequency of 2 MHz is required, since the
design of 8086 processors incorporates dynamic cells. The maximum clock frequencies of the 8086-4,
8086 and 8086-2 are4MHz, 5MHz and 8MHz respectively.
Since the 8086 does not have on-chip clock generation circuitry, and 8284 clock generator chip must
be connected to the 8086 clock pin. The crystal connected to 8284 must have a frequency 3 times
the 8086 internal frequency. The 8284 clock generation chip is used to generate READY, RESET and
CLK.
This pin indicates what mode the processor is to operate in. In minimum mode, the 8086 itself
generates all bus control signals. In maximum mode the three status signals are to be decoded to
generate all the bus control signals.
Minimum Mode Pins The following 8 pins function descriptions are for the 8086 in minimum mode;
MN/ MX = 1. The corresponding 8 pins function descriptions for maximum mode is explained later.
M/IO (O): Status line
This pin is used to distinguish a memory access or an I/O accesses. When this pin is Low, it accesses
I/O and when high it access memory. M / IO becomes valid in the T4 state preceding a bus cycle and
remains valid until the final T4 of the cycle. M/IO floats to 3 - state OFF during local bus "hold
acknowledge".
WR (O): Write
Indicates that the processor is performing a write memory or write IO cycle, depending on the state
of the M /IOsignal. WR is active for T2, T3 and Tw of any write cycle. It is active LOW, and floats to 3-
state OFF during local bus "hold acknowledge ".
It is used as a read strobe for interrupt acknowledge cycles. It is active LOW during T2, T3, and T4 of
each interrupt acknowledge cycle.
ALE is provided by the processor to latch the address into the 8282/8283 address latch. It is an active
high pulse during T1 of any bus cycle. ALE signal is never floated.
DT/ R (O): DATA Transmit/Receive
In minimum mode, 8286/8287 transceiver is used for the data bus. DT/ R is used to control the
direction of data flow through the transceiver. This signal floats to tri-state off during local bus "hold
acknowledge".
It is provided as an output enable for the 8286/8287 in a minimum system which uses the transceiver.
DEN is active LOW during each memory and IO access. It will be low beginning with T2 until the
middle of T4, while for a write cycle, it is active from the beginning of T2 until the middle of T4. It
floats to tri-state off during local bus "hold acknowledge".
Hold indicates that another master is requesting a local bus "HOLD". To be acknowledged, HOLD
must be active HIGH. The processor receiving the "HOLD " request will issue HLDA (HIGH) as an
acknowledgement in the middle of the T1-clock cycle. Simultaneous with the issue of HLDA, the
processor will float the local bus and control lines. After "HOLD" is detected as being Low, the
processor will lower the HLDA and when the processor needs to run another cycle, it will again drive
the local bus and control lines.
Maximum Mode The following pins function descriptions are for the 8086/8088 systems in maximum
mode (i.e.. MN/MX = 0). Only the pins which are unique to maximum mode are described below.
Table 3
0 0 No operation
Table 4
LOCK (O)
It indicates to another system bus master, not to gain control of the system bus while LOCK is active
Low. The LOCK signal is activated by the "LOCK" prefix instruction and remains active until the
completion of the instruction. This signal is active Low and floats to tri-state OFF during 'hold
acknowledge'. Example:
LOCK XCHG reg., Memory ; Register is any register and memory GT0
; is the address of the semaphore.
These pins are used by other processors in a multi processor organization. Local bus masters of other
processors force the processor to release the local bus at the end of the processors current bus cycle.
Each pin is bi-directional and has an internal pull up resistors. Hence they may be left un-connected.
Register
The data register holds the operand read from the memory.
The accumulator is a general-purpose register need for processing.
The instruction register holds the read memory.
The temporary data used while processing is stored in the temporary register.
The address register holds the address of the instruction that is to be
implemented next from the memory.
The Program Counter (PC) controls the sequence of instructions to be read. In
case a branch instruction is detected, the sequential execution does not arise. A
branch execution calls for a transfer to an instruction that is not in sequence with
the instructions in the PC.
The input register (INPR) and output register (OUTPR) are the registers used for
the I/O operations. The INPR receives an 8-bit character from the input device. It
is similar to the OUTPR.
ALU
Inside a computer, there is an Arithmetic Logic Unit (ALU), which is capable of performing
logical operations (e.g. AND, OR, Ex-OR, Invert etc.) in addition to the arithmetic operations (e.g.
Addition, Subtraction etc.). The control unit supplies the data required by the ALU from memory,
or from input devices, and directs the ALU to perform a specific operation based on the
instruction fetched from the memory. ALU is the “calculator” portion of the computer.
An arithmetic logic unit(ALU) is a major component of the central processing unit of the
a computer system. It does all processes related to arithmetic and logic operations that
need to be done on instruction words. In some microprocessor architectures, the ALU
is divided into the arithmetic unit (AU) and the logic unit (LU).
An ALU can be designed by engineers to calculate many different operations. When
the operations become more and more complex, then the ALU will also become more
and more expensive and also takes up more space in the CPU and dissipates more
heat. That is why engineers make the ALU powerful enough to ensure that the CPU is
also powerful and fast, but not so complex as to become prohibitive in terms of cost
and other disadvantages.
ALU is also known as an Integer Unit (IU). The arithmetic logic unit is that part of the
CPU that handles all the calculations the CPU may need. Most of these operations are
logical in nature. Depending on how the ALU is designed, it can make the CPU more
powerful, but it also consumes more energy and creates more heat. Therefore, there
must be a balance between how powerful and complex the ALU is and how expensive
the whole unit becomes. This is why faster CPUs are more expensive, consume more
power and dissipate more heat.
Different operation as carried out by ALU can be categorized as follows –
logical operations − These include operations like AND, OR, NOT, XOR, NOR,
NAND, etc.
Bit-Shifting Operations − This pertains to shifting the positions of the bits by a
certain number of places either towards the right or left, which is considered a
multiplication or division operations.
Arithmetic operations − This refers to bit addition and subtraction. Although
multiplication and division are sometimes used, these operations are more
expensive to make. Multiplication and subtraction can also be done by repetitive
additions and subtractions respectively.
Introduction to Microcontroller
A microcontroller is an electronic device belonging to the microcomputer family. These are
fabricated using the VLSI technology on a single chip. There are microcontrollers available in
the present market with different word length starting from 4 bit, 8 bit, 64 bit to 128 bit. This
chapter is about microcontrollers, their architecture, and various features.
Microcontroller
In a broader sense, the components which constitute a microcontroller are the memory,
peripherals and most crucially a processor. Microcontrollers are present in devices where the
user has to exert a degree of control. They are designed and implemented to execute a specific
function such as displaying integers or characters on an LCD display module of a home
appliance. Application of microcontrollers is myriad. In simpler terms, any gadget or
equipment which has to deal with the functions such as measuring, controlling, displaying and
calculating the values consist of a microcontroller chip inside it. They are present in almost all
the present day home appliances, toys, traffic lights, office instruments and various day-to-day
appliances.
The most important part of a microcontroller is a central processing unit with a word
length ranging from 4-bit to 64-bit and in some modern microcontrollers the word length goes
even beyond the limit of 64-bit. A timer is one other constituent of a microcontroller. There is
a watchdog timer. Memory spaces such as RAM, ROM, EEPROM, EPROM are there to store
data and programs. For data storage, volatile memory RAM is used while for the program and
operating parameter storage ROM and other memory spaces are used.
CPU: Being regarded as the brain of the microcontroller, central processing unit fetches,
decodes and executes the instructions. It coordinates various activities taking place in the
microcontroller.
I/O ports: There are several parallel input/output ports in a microcontroller. They are used to
interface various peripherals such as printers, external memories, LEDs and LCDs to the
microcontroller. Apart from parallel ports, there are serial ports to interface serially connected
peripherals with the microcontroller.
Timers and counters: These are the fascinating constituent parts of a microcontroller. Timers
and counters are used in operations which include modulation, clock functions, frequency
generation and measuring and pulse generation.
Analog to digital converters (ADCs): Such converters are useful while converting the output
of a sensor which would be in analog form.
Digital to analog converter (DAC): The working of a DAC is just the reverse of an analog to
digital converter. As it is obvious, the output will be an analog signal which can be used to
control the analog peripherals such a motor.
Features of a Microcontroller
The main advantage of a CISC (complex instruction set computer) architecture, with which the modern
microcontrollers are built, is the macro-type instructions. A macro instruction can be used in a program
replacing a number of instructions.
Latest microcontrollers are operated at lesser power consumption. Usually, they can support a working
voltage of 1.8-5.5 V.
Advanced memory is another feature of a microcontroller. Use of ROM memories like EEPROM and
EPROM (flash memory) make it more reliable and user-friendly. While EEPROM is a relatively slow
memory, EPROM is faster. Fact that it allows more erase/write cycles also makes it more usable.
Advantages
The main advantage of a microcontroller is that the low cost with all the integral parts
mounted together on a single chip. The design makes it more compact and easy to use. The
easiness of using a microcontroller and the relatively easy maintenance process also make it
more reliable. Almost all the pins in a microcontroller are programmable and it makes the
microcontroller a lot user-friendly. Simplicity while interfacing ROM, RAM, and I/O ports.
Easiness of troubleshooting and a minimal time requirement for various operations are other
crucial advantages.
Disadvantages
Since it contains all the components on a single chip, microcontrollers are having relatively
complex architecture. Microcontrollers are not suitable to interface high power devices
directly and they can only perform the limited number of operations simultaneously.
What is ROM?
ROM stands for Read-only Memory. It is a type of memory that does not lose its
contents when the power is turned off. For this reason, ROM is also called non-
volatile memory.
Because ROMs are deployed in such a wide variety of applications, there are different
types of ROMs suited to different applications across the industry.
Different Types of ROM
1. PROM (programmable ROM) and OTP
PROM refers to the kind of ROM that the user can burn information into. In other
words, PROM is a user-programmable memory.
2. EPROM (erasable programmable ROM) and UV-EPROM
EPROM was invented to allow making changes in the contents of PROM after it is
burned.
In EPROM, one can program the memory chip and erase it thousands of times. This is
especially necessary during the development of the prototype of a microprocessor-
based project.