Wednesday 6 June 2012

Microprocessor


  •  
A microprocessor is a clock-driven semiconductor device consisting of electronic logic circuits manufactured by using either a large-scale integration (LSI) or very-large-scale integration (VLSI) technique.
  • The microprocessor is capable of performing various computing functions and making decisions to change the sequence of program execution.
  • In large computers, a CPU performs these computing functions.The Microprocessor resembles a CPU exactly.
  • The microprocessor is in many ways similar to the CPU, but includes all the logic circuitry including the control unit, on one chip.
  • The microprocessor can be divided into three segments for the sake of clarity. – They are: arithmetic/logic unit (ALU), register array, and control unit.
  • A comparison between a microprocessor, and a computer is shown below:


BlockdiagramofComputer_thumb9


OverviewdiagramofMicroprocessor_thum
  • Arithmetic/Logic Unit: This is the area of the microprocessor where various computing functions are performed on data. The ALU unit performs such arithmetic operations as addition and subtraction, and such logic operations as AND, OR, and exclusive OR.
  • Register Array: This area of the microprocessor consists of various registers identified by letters such as B, C, D, E, H, and L. These registers are primarily used to store data temporarily during the execution of a program and are accessible to the user through instructions.
  • Control Unit: The control unit provides the necessary timing and control signals to all the operations in the microcomputer. It controls the flow of data between the microprocessor and memory and peripherals.
  • Memory: Memory stores such binary information as instructions and data, and provides that information to the microprocessor whenever necessary. To execute programs, the microprocessor reads instructions and data from memory and performs the computing operations in its ALU section. Results are either transferred to the output section for display or stored in memory for later use. Read-Only memory (ROM) and Read/Write memory (R/WM), popularly known as Random- Access memory (RAM).
1. The ROM is used to store programs that do not need alterations. The monitor program of a single-board microcomputer is generally stored in the ROM. This program interprets the information entered through a keyboard and provides equivalent binary digits to the microprocessor. Programs stored in the ROM can only be read; they cannot be altered.
2. The Read/Write memory (RIWM) is also known as user memory It is used to store user programs and data. In single-board microcomputers, the monitor program monitors the Hex keys and stores those instructions and data in the R/W memory. The information stored in this memory can be easily read and altered.
  • I/O (Input/Output): It communicates with the outside world. I/O includes two types of devices: input and output; these I/O devices are also known as peripherals.
  • System Bus: The system bus is a communication path between the microprocessor and peripherals: it is nothing but a group of wires to carry bits.

Microprocessor is a multi-use device which finds applications in almost all the fields.Here is some sample applications given in variety of fields.
Electronics:
  • Digital clocks & Watches
  • Mobile phones
  • Measuring Meters
Mechanical:
  • Automobiles
  • Lathes
  • All remote machines
Electrical:
  • Motors
  • Lighting controls
  • Power stations
Medical:
  • Patient monitoring
  • Most of the Medical equipments
  • Data loggers
Computer:
  • All computer accessories
  • Laptops & Modems
  • Scanners & Printers
Domestic:
  • Microwave Ovens
  • Television/CD/DVD players
  • Washing Machines
http://www.8085projects.info/images/Arhitecture-Pic1.png
8085 Bus Structure:

Address Bus:
  • The address bus is a group of 16 lines generally identified as A0 to A15.
  • The address bus is unidirectional: bits flow in one direction-from the MPU to peripheral devices.
  • The MPU uses the address bus to perform the first function: identifying a peripheral or a memory location.
http://www.8085projects.info/images/Bus-Structure-Pic2.png
Data Bus:
  • The data bus is a group of eight lines used for data flow.
  • These lines are bi-directional - data flow in both directions between the MPU and memory and peripheral devices.
  • The MPU uses the data bus to perform the second function: transferring binary information.
  • The eight data lines enable the MPU to manipulate 8-bit data ranging from 00 to FF (28 = 256 numbers).
  • The largest number that can appear on the data bus is 11111111.

Control Bus:
  • The control bus carries synchronization signals and providing timing signals.
  • The MPU generates specific control signals for every operation it performs. These signals are used to identify a device type with which the MPU wants to communicate.

Registers of 8085:

  • The 8085 have six general-purpose registers to store 8-bit data during program execution.
  • These registers are identified as B, C, D, E, H, and L.
  • They can be combined as register pairs-BC, DE, and HL-to perform some 16-bit operations.

http://www.8085projects.info/images/Registers-Pic3.png
Accumulator (A):
  • The accumulator is an 8-bit register that is part of the arithmetic/logic unit (ALU).
  • This register is used to store 8-bit data and to perform arithmetic and logical operations.
  • The result of an operation is stored in the accumulator.

Flags:
  • The ALU includes five flip-flops that are set or reset according to the result of an operation.
  • The microprocessor uses the flags for testing the data conditions.
  • They are Zero (Z), Carry (CY), Sign (S), Parity (P), and Auxiliary Carry (AC) flags. The most commonly used flags are Sign, Zero, and Carry.

The bit position for the flags in flag register is,

http://www.8085projects.info/images/Flags-Pic4.PNG
1.Sign Flag (S):
       After execution of any arithmetic and logical operation, if D7 of the result is 1, the sign                 flag is set. Otherwise it is reset.
       D7 is reserved for indicating the sign; the remaining is the magnitude of number.
       If D7 is 1, the number will be viewed as negative number. If D7 is 0, the number will be                viewed as positive number.

2.Zero Flag (z):
       If the result of arithmetic and logical operation is zero, then zero flag is set otherwise it is reset.

3.Auxiliary Carry Flag (AC):
       If D3 generates any carry when doing any   arithmetic and logical operation, this flag is set.
       Otherwise it is reset.

4.Parity Flag (P):
       If the result of arithmetic and logical operation contains even number of 1's then this flag will be        set and if it is odd number of 1's it will be reset.

5.Carry Flag (CY):
       If any arithmetic and logical operation result any carry then carry flag is set otherwise it is                reset.


Arithmetic and Logic Unit (ALU):

  • It is used to perform the arithmetic operations like addition, subtraction, multiplication, division, increment and decrement and logical operations like AND, OR and EX-OR.

  • It receives the data from accumulator and registers.

  • According to the result it set or reset the flags.

Program Counter (PC):

  • This 16-bit register sequencing the execution of instructions.

  • It is a memory pointer. Memory locations have 16-bit addresses, and that is why this is a 16-bit register.

  • The function of the program counter is to point to the memory address of the next instruction to be executed.

  • When an opcode is being fetched, the program counter is incremented by one to point to the next memory location.

Stack Pointer (Sp):

  • The stack pointer is also a 16-bit register used as a memory pointer.

  • It points to a memory location in R/W memory, called the stack.

  • The beginning of the stack is defined by loading a 16-bit address in the stack pointer (register).


Temporary Register: It is used to hold the data during the arithmetic and logical operations.

Instruction Register:  When an instruction is fetched from the memory, it is loaded in the instruction register.

Instruction Decoder: It gets the instruction from the instruction register and decodes the instruction. It identifies the instruction to be performed.

Serial I/O Control:  It has two control signals named SID and SOD for serial data transmission.

Timing and Control unit:

  • It has three control signals ALE, RD (Active low) and WR (Active low) and three status signals IO/M(Active low), S0 and S1.

  • ALE is used for provide control signal to synchronize the components of microprocessor and timing for instruction to perform the operation.

  • RD (Active low) and WR (Active low) are used to indicate whether the operation is reading the data from memory or writing the data into memory respectively.

  • IO/M(Active low) is used to indicate whether the operation is belongs to the memory or peripherals.
  • http://www.8085projects.info/images/Control-Signals-Pic5.PNG

Interrupt Control Unit:

  • It receives hardware interrupt signals and sends an acknowledgement for receiving the interrupt signal.

PIN DIAGRAM AND PIN DESCRIPTION OF 8085
. Power supply and Clock frequency signals:

  • Vcc        + 5 volt power supply
  • Vss        Ground
  • X1, X2 :    Crystal or R/C network or LC network connections to set the frequency of internal clock generator.
  • The frequency is internally divided by two. Since the basic operating timing frequency is 3 MHz, a 6 MHz crystal is connected externally.
  • CLK (output)-Clock Output is used as the system clock for peripheral and devices interfaced with the microprocessor.

  • 8085 is a 40 pin IC, DIP package. The signals from the pins can be grouped as follows

  1. Power supply and clock signals
  1. Address bus
  1. Data bus
  1. Control and status signals
  1. Interrupts and externally initiated signals
  1. Serial I/O ports

http://www.8085projects.info/images/Pin-Diagram-Pic6.png
Fig (a) - Pin Diagram of 8085 & Fig(b) - logical schematic of Pin diagram.
2. Address Bus:

  • A8 - A15   (output; 3-state)
  • It carries the most significant 8 bits of the memory address or the 8 bits of the I/O address;

3. Multiplexed Address / Data Bus:

  • AD0 - AD7 (input/output; 3-state)
  • These multiplexed set of lines used to carry the lower order 8 bit address as well as data bus.
  • During the opcode fetch operation, in the first clock cycle, the lines deliver the lower order address A0 - A7.
  • In the subsequent IO / memory, read / write clock cycle the lines are used as data bus.
  • The CPU may read or write out data through these lines.

4. Control and Status signals:

  • ALE  (output) - Address Latch Enable.
  • This signal helps to capture the lower order address presented on the multiplexed address / data bus.
  • RD (output 3-state, active low) - Read memory or IO device.
  • This indicates that the selected memory location or I/O device is to be read and that the data bus is ready for accepting data from the memory or I/O device.
  • WR (output 3-state, active low) - Write memory or IO device.
  • This indicates that the data on the data bus is to be written into the selected memory location or I/O device.
  • IO/M (output) - Select memory or an IO device.
  • This status signal indicates that the read / write operation relates to whether the memory or I/O device.
  • It goes high to indicate an I/O operation.
  • It goes low for memory operations.

5. Status Signals:

  • It is used to know the type of current operation of the microprocessor.

http://www.8085projects.info/images/Status-Signals-Pic7.PNG
  • The microprocessor is a clock-driven semiconductor device consisting of electronic logic circuits manufactured by using either a large-scale integration (LSI) or very-large-scale integration (VLSI) technique.

  • The microprocessor is capable of performing various computing functions and making decisions to change the sequence of program execution.

  • In large computers, a CPU implemented on one or more circuit boards performs these computing functions.

  • The microprocessor is in many ways similar to the CPU, but includes the logic circuitry, including the control unit, on one chip.

  • The microprocessor can be divided into three segments for the sake clarity, arithmetic/logic unit (ALU), register array, and control unit.

  • On receipt of an interrupt, the microprocessor acknowledges the interrupt by the active low INTA (Interrupt Acknowledge) signal.

Reset In (input, active low)
  • This signal is used to reset the microprocessor.
  • The program counter inside the microprocessor is set to zero.
  • The buses are tri-stated.

Reset Out (Output)
  • It indicates CPU is being reset.
  • Used to reset all the connected devices when the microprocessor is reset.

6. Interrupts and Externally initiated operations:

  • They are the signals initiated by an external device to request the microprocessor to do a particular task or work.
  • There are five hardware interrupts called,

Fig (a) - Pin Diagram of 8085 & Fig(b) - logical schematic of Pin diagram.
  • For both high and low states, the output Q draws a current from the input of the OR gate.
  • When E is low, Q enters a high impedance state; high impedance means it is electrically isolated from the OR gate's input, though it is physically connected. Therefore, it does not draw any current from the OR gate's input.
  • When 2 or more devices are connected to a common bus, to prevent the devices from interfering with each other, the tristate gates are used to disconnect all devices except the one that is communicating at a given instant.
  • The CPU controls the data transfer operation between memory and I/O device. Direct Memory Access operation is used for large volume data transfer between memory and an I/O device directly.
  • The CPU is disabled by tri-stating its buses and the transfer is effected directly by external control circuits.
  • HOLD signal is generated by the DMA controller circuit. On receipt of this signal, the microprocessor acknowledges the request by sending out HLDA signal and leaves out the control of the buses. After the HLDA signal the DMA controller starts the direct transfer of data.

READY (input)
  • Memory and I/O devices will have slower response compared to microprocessors.
  • Before completing the present job such a slow peripheral may not be able to handle further data or control signal from CPU.
  • The processor sets the READY signal after completing the present job to access the data.
  • The microprocessor enters into WAIT state while the READY pin is disabled.

8. Single Bit Serial I/O ports:
  • SID (input)            -  Serial input data line
  • SOD (output)        -  Serial output data line
  • These signals are used for serial communication.

http://www.8085projects.info/images/Interrupts-Pic8.png
7. Direct Memory Access (DMA):

Tri state devices:

http://www.8085projects.info/images/DMA-Pic9.png
  • 3 output states are high & low states and additionally a high impedance state.
  • When enable E is high the gate is enabled and the output Q can be 1 or 0 (if A is 0, Q is 1, otherwise Q is 0). However, when E is low the gate is disabled and the output Q enters into a high impedance state.
http://www.8085projects.info/images/DMA-Pic9A.png
http://www.8085projects.info/images/DMA-Pic9B.png


What is OPCODE? OPCODE is the machine language. ie, while we talk or write, we do it in english; because we understand english. But a machine cannot understand direct english. So, we translate english into its level to make a machine to understand. For example, there is a translator inside all computers which translate our english into Binary language for a computer to understand and perform the required operations. Similarly, a machine language which a Microprocessor can understand is the HEXA language. These hex codes are called OPCODES which makes a microprocessor to work. As there is no translator inside a Microprocessor, we directly fnd the OPCODES for each and every instruction and we feed it alone inside a trainer kit. Those opcodes with its description are given below. The OPCODE sheet without description is also given in the main page.
http://www.8085projects.info/image.axd?picture=2010%2f7%2fOpcode+sheet+of+8085+Microprocessor+with+description.JPG
http://www.8085projects.info/image.axd?picture=2010%2f7%2fOpcode+sheet+of+8085+Microprocessor(2).JPG
ADDRESSING MODES OF 8085







  • Every instruction of a program has to operate on a data.
  • The method of specifying the data to be operated by the instruction is called Addressing.
  • The 8085 has the following 5 different types of addressing.

               1. Immediate Addressing
               2. Direct Addressing
               3. Register Addressing
               4. Register Indirect Addressing
               5. Implied Addressing

1. Immediate Addressing:

  • In immediate addressing mode, the data is specified in the instruction itself. The data will be a part of the program instruction.
  • EX. MVI B, 3EH - Move the data 3EH given in the instruction to B register; LXI SP, 2700H.

2. Direct Addressing:

  • In direct addressing mode, the address of the data is specified in the instruction. The data will be in memory. In this addressing mode, the program instructions and data can be stored in different memory.
  • EX. LDA 1050H - Load the data available in memory location 1050H in to accumulator; SHLD 3000H



3. Register Addressing:

  • In register addressing mode, the instruction specifies the name of the register in which the data is available.
  • EX. MOV A, B - Move the content of B register to A register; SPHL; ADD C.

4. Register Indirect Addressing:

  • In register indirect addressing mode, the instruction specifies the name of the register in which the address of the data is available. Here the data will be in memory and the address will be in the register pair.
  • EX. MOV A, M - The memory data addressed by H L pair is moved to A register. LDAX B.

5. Implied Addressing:

  • In implied addressing mode, the instruction itself specifies the data to be operated.
  • EX. CMA - Complement the content of accumulator; RAL

8085 INSTRUCTION SET CLASSIFICATION
The 8085 instruction set can be classified into the following five functional headings.


1. DATA TRANSFER INSTRUCTIONS:

       It includes the instructions that move (copies) data between registers or between memory locations and registers. In all data transfer operations the content of source register is not altered. Hence the data transfer is copying operation.

Ex: (1) Mov A,B (2) MVI C,45H


2. ARITHMETIC INSTRUCTIONS:

       Includes the instructions, which performs the addition, subtraction, increment or decrement operations. The flag conditions are altered after execution of an instruction in this group.

Ex: (1) ADD A,B (2) SUI B,05H


3. LOGICAL INSTRUCTIONS:

       The instructions which performs the logical operations like AND, OR, EXCLUSIVE- OR, complement, compare and rotate instructions are grouped under this heading. The flag conditions are altered after execution of an instruction in this group.

Ex: (1) ORA A (2) ANI B, 01H


4. BRANCHING INSTRUCTIONS:

       The instructions that are used to transfer the program control from one memory location to another memory location are grouped under this heading.

Ex: (1) CALL (2) JMP 4100


5. MACHINE CONTROL INSTRUCTIONS:

       It includes the instructions related to interrupts and the instruction used to stop the program execution.

Ex: (1) NOP (2) END

No comments:

Post a Comment