Rohan Desai- Automobile Dept- New Polytechnic, Kolhapur Page 2
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). o 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. o The Read/Write memory (R/WM) 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 micro- processor and peripherals: it is nothing but a group of wires to carry bits. Q. What are different applications of Microprocessor? Applications of Microprocessor include Actuator control systems: speed, velocity, acceleration control of electric motor, fluid power actuators. 8085 MICROPROCESSOR
Rohan Desai- Automobile Dept- New Polytechnic, Kolhapur Page 3
Control system for home appliances: microwave oven, washing machine, refrigerator, heating system, air conditioner (AC), etc. Control system for computer peripherals: Disk drives, printers, keyboard, modem and so on Automobile control system: Engine control, locking system, monitoring systems Traffic control systems: Road, air and ocean traffic, navigation, etc. Machine control systems: Robotics, mobile robotics, crane, Automated Guided Vehicle (AGV), Numeric Control (NC) machine Production lines: Assembly lines, packaging systems, bottling plant, etc. Q. Explain 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 microprocessor to peripheral devices. The microprocessor uses the address bus to perform the first function: identifying a peripheral or a memory location. 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 microprocessor and memory and peripheral devices. The microprocessor uses the data bus to perform the second function: transferring binary information. 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.
8085 MICROPROCESSOR
Rohan Desai- Automobile Dept- New Polytechnic, Kolhapur Page 8
Flags The flag register in the microprocessor is a special purpose register in which the individual bit values represent the standing of a result byte. The flag bits are automatically modified in accordance with the result. The flag bits in many situations are important than result itself. The programmer, when necessary, uses the tested and recorded flag bits. A thorough understanding of flags is essential in writing assembly language programs. There are five flag bits: Zero (Z), Carry (CY), Sign (S), Parity (P), and Overflow (V) flags.
Flag Set i.e. 1 Reset i.e. 0 Z CY S P V Result is zero Carry is generated Result is negative Result has even number of 1s Overflow occurs Result is non-zero Carry is not generated Result is positive Result has odd number of 1s Overflow does not occur
Instruction Decoder or Microcode Engine This is the main unit, which is responsible for decoding the instructions. The instructions (OPCODE) fetched from the memory are placed in the IR. Once the OPCODE enters into the microprocessor, it must be decoded in order to generate control signals for what to do next. A unique set of control signal is generated according to the instruction types. For instance, if it is an instruction (OPCODE) for addition, then addition related control signals are produced. If the OPCODE is a comparison instruction, then addition related control signals are produced. Stack and Stack Pointer (SP) Stack is a user-defined memory space, which includes many locations within the memory space of the microprocessor. These memory locations are special in the sense that when interrupts occur, the microprocessor stores the current content of the various registers and flags in the stack in order to attend the interrupt. Microprocessor is presently doing some task (executing some codes). In the meantime, the interrupt has occurred. The microprocessor must listen, or attend, to the interrupt while suspending the present task. Attending to interrupt implies execution of another sub-task or sub-program corresponding to interrupt. The sub- task is referred to as subroutine. The control, or the Program Counter, will hold the address of another location corresponding to this interrupt. 8085 MICROPROCESSOR
Rohan Desai- Automobile Dept- New Polytechnic, Kolhapur Page 11
Figure shows the logic pinout of the 8085 microprocessor. All the signals can be classified into six groups: (1) address bus, (2) data bus, (3) control and status signals, (4) power supply and frequency signals, (5) externally initiated signals, and (6) serial I/O ports. ADDRESS BUS The 8085 has 16 signal lines (pins) that are used as the address bus; however, these lines are split into two segments: A 15 -A 8 and AD 7 -AD 0 . The eight signal lines, A 15 -A 8 , are unidirectional and used for the most significant bits, called the high-order address, of a 16-bit address. The signal lines AD 7 -AD 0 are used for a dual purpose, as explained in the next section. MULTIPLEXED ADDRESS / DATA BUS The signal lines AD 7 -AD 0 are bidirectional: they serve dual purpose. They are used as the low-order address bus as well as the data bus. In executing an instruction, during the earlier part of the cycle, these lines are used as the low-order address bus. During the later part of the cycle, these lines are used as data bus. CONTROL AND STATUS SIGNALS This group of signals includes two control signals (RD and WR), three status signals (IO/M, S1, and S0) to identify the nature of the operation, and one special signal (ALE) to indicate the beginning of the operation. These signals are as follows: ALE Address Latch Enable. This is positive going pulse generated every time the 8085 begins an operation (machine cycle); it indicates that the bits on AD 7 -AD 0 are address bits. This signal is used primarily to latch the low-order address from the multiplexed bus and generate a separate set of eight address lines, A 7 -A 0 . RD - Read. This is Read control signal (active low). This signal indicates that the selected I/O or memory device is to be read and data is available on the data bus. WR - Write. This is a Write control signal (active low). This signal indicates that the data on the data bus are to be written into a selected memory or I/O location. IO/ M - This is a status signal used to differentiate between I/O and memory operations. When it is high, it indicates an I/O operation; when it is low, it indicates a memory operation. S 1 and S 0 These are status signals, similar to IO/ M , can identify various operations, but they are rarely used in small systems.
8085 MICROPROCESSOR
Rohan Desai- Automobile Dept- New Polytechnic, Kolhapur Page 12
POWER SUPPLY AND CLOCK FREQUENCY The power supply and frequency signals are as follows: V cc - +5 V power supply V ss Ground Reference X 1 , X 2 A crystal is connected at these two pins. CLK (OUT) Clock Output. This signal can be used as the system clock for other devices. EXTERNALLY INITIATED SIGNALS INCLUDING INTERRUPTS The 8085 has five interrupt signals that can be used to interrupt program execution. These are listed in the table below. INTR (Input) Interrupt Request: This is used as a general purpose interrupt. It has lowest priority. INTA (Output) Interrupt Acknowledge: This is used to acknowledge an interrupt. RST 7.5 (Inputs) RST 6.5 RST 5.5 Restart Interrupts: These are vectored interrupts that transfer the program control to specific memory locations. Among these three priority order is 7.5, 6.5, 5.5 TRAP (Input) This interrupt has highest priority.
TRAP is the only non-maskable interrupt i.e. it cannot be enabled or disabled by program. Other interrupts (INTR and Restart interrupts) are maskable i.e. they can be enabled or disabled using programs. In addition to the interrupts, three pins RESET, HOLD, and READY- accept externally initiated signals as input.
HOLD (Input) This signal indicates that a peripheral such as DMA (Direct Memory Access) controller is requesting the use of address and data buses. HLDA (Output) Hold Acknowledge: This signal acknowledges the HOLD request. READY (Input) READY is used by the microprocessor to check whether a peripheral is ready to accept or transfer data. If READY is high then the peripheral is ready for data transfer. If not the microprocessor waits until READY goes high. RESET IN When the signal on this pin goes low, microprocessor is reset. RESET OUT This signal indicates that microprocessor is being reset.
8085 MICROPROCESSOR
Rohan Desai- Automobile Dept- New Polytechnic, Kolhapur Page 13
SERIAL I/O PORTS The 8085 has two signals to implement the serial transmission: SID (Serial Input Data) and SOD (Serial Output Data). In serial transmission, data bits are sent over a single line, one bit at a time, such as the transmission over telephone lines.
Q. What do you understand by Instruction and Program? Instruction means a command in binary that is recognized and executed by the microprocessor to accomplish a task. Program is a set of instructions written in a specific sequence for microprocessor to accomplish a given task. Q. What do you understand by Machine Language and Assembly Language? Microprocessors recognize and operate in binary numbers. Each microprocessor has its own set of instructions. An instruction is combination of 0s and 1s. To communicate with the microprocessor, one must give instructions in binary language. This language is called machine language. But it is very difficult and error prone to write programs in machine language because it is just a series of 0s and 1s and instructions are not easily comprehended by just looking at the pattern. To overcome this difficulty, computer manufacturers have devised English-like words to represent the binary instructions of microprocessor. Programmers can write programs using these words. This language is called assembly language. For example 0011 1100 is an instruction in machine language that increments the number in accumulator by one. The same instruction is represented by INR A in assembly language. Q. What do you mean by low level language and high level language? The machine language and assembly language are microprocessor specific languages. Therefore they are called as low level languages. The programs written in these languages are not transferrable from one machine to another. To overcome this limitation, such general purpose languages as BASIC, FORTRAN, and C have been devised. A program written in these languages is machine independent. Such languages are called high level languages. 8085 MICROPROCESSOR
Rohan Desai- Automobile Dept- New Polytechnic, Kolhapur Page 14
Q. Explain the term mnemonic. Microprocessor instructions are in the binary form. Since the program written in binary instructions is difficult to understand, each manufacturer of a microprocessor has devised a symbolic code for each instruction. This symbolic code is called mnemonic. The mnemonic for a particular instruction consists of letters that suggest the operation to be performed by that instruction. For example, the binary code 0011 1100 (3CH in hexadecimal) of the 8085 microprocessor is represented by the mnemonic INR A. This instruction increments accumulator contents by one. Similarly, the binary code 1000 0000 (80H) is represented by mnemonic ADD B. ADD stands for addition and B represents the contents in register B. This instruction performs addition of contents of B and contents of accumulator.
Q. Explain the terms Opcode and operand. An instruction is a command to the microprocessor to perform a given task on specified data. Each instruction has two parts: one is the task to be performed, called the operation code (Opcode), and the second is the data to be operated on, called the operand. The operand (or data) can be specified in various ways. It may include 8-bit (or 16-bit) data, an internal register, a memory location, or address. In some instructions, the operand is implicit. Q. Explain the term Assembler. Writing programs in machine language is very difficult and error prone to write programs in machine language because it is just a series of 0s and 1s and instructions are not easily comprehended by just looking at the pattern. To overcome this difficulty, computer manufacturers have devised English-like words to represent the binary instructions of microprocessor. Programmers can write programs using these words. This language is called assembly language. Assembler is a computer program which translates an assembly language program to machine language program. Programmer writes program in assembly language in the form of mnemonics. He then enters that assembly language program into assembler by using the ASCII keyboard. Assembler converts this program into binary machine code. Since machine language is machine dependent, each microprocessor has its own assembler. 8085 MICROPROCESSOR
Rohan Desai- Automobile Dept- New Polytechnic, Kolhapur Page 16
Arithmetic operations These instructions perform arithmetic operations such as addition, subtraction, increment and decrement. Logical operations These instructions perform various logical operations such as AND, OR, EX-OR, Compare, Compliment, etc. Branching operations These instructions alter the sequence f program execution either conditionally or unconditionally. Machine Control operations These instructions control machine functions such as Halt, Interrupt, etc. Q. How are 8085 instructions classified according to word size? The 8085 instruction set is classified into following three groups according to word size or byte size. 1-byte instructions 2-byte instructions 3-byte instructions ONE-BYTE INSTRUCTIONS A 1-byte instruction includes the Opcode and the Operand in the same byte. For example Task Opcode Operand Binary Code Hex Code Copy contents of accumulator in register C MOV C, A 0100 1111 4FH
TWO-BYTE INSTRUCTIONS In a 2-byte instruction, the first byte specifies the operation code and the second byte specifies the operand. For example Task Opcode Operand Binary Code Hex Code Load 8-bit data byte in the accumulator MVI A, 32H 0011 1100 0011 0010 3E 32
8085 MICROPROCESSOR
Rohan Desai- Automobile Dept- New Polytechnic, Kolhapur Page 17
THREE-BYTE INSTRUCTION In a 3-byte instruction, the first byte specifies the Opcode, and the following two bytes specify the 16-bit address. Note that the second byte is the low-order address and the third byte is the higher-order address. For example Task Opcode Operand Binary Code Hex Code Load contents of memory 2050H into A LDA 2050H 0011 1010 0101 0000 0010 0000 3A 50 20
Q. Explain these terms: SSI, MSI and LSI. SSI (small-scale integration): the process of designing a few circuits on a single chip. The term refers to the technology used to fabricate discrete logic gates on a chip. MSI (medium-scale integration): the process of designing more than a hundred gates on a single chip. LSI (large-scale integration): the process of designing more than a thousand gates on a single chip.
Q. Explain Fetch Cycle and Write Cycle. Fetch Cycle: The microprocessor fetches the OPCODE or data from the memory or input devices as follows. The content of the PC, the address is placed in the MAR. The content of the MAR is then transferred to the decoder, which is interfaced or in built with the memory device. The decoder decodes the address, and selects the appropriate location according to the address supplied to it. The content of the specified address is read and transferred into the microprocessor. If the item read is an OPCODE, then it is placed in the Instruction Register, and if the item read is data, then it is placed in the Data Register. This is a fetch cycle or memory read cycle. In particular following events are carried out within a fetch cycle: Send address through address bus Decode the address Read the content of the specified location Transfer the content of the specified location in the memory to the micro- processor.
8085 MICROPROCESSOR
Rohan Desai- Automobile Dept- New Polytechnic, Kolhapur Page 18
Write Cycle: Write cycle is one that interprets writing operation. Microprocessor can send data to a specific location of the memory or to an output device. During writing operation, the microprocessor transfers the contents of the PC to the memory decoder through MAR. The microprocessor uses WR (write) signal for writing into the memory.
Q. What do you mean by addressing modes? Explain the different types of addressing modes in Intel 8085 with examples. 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 Immediate Addressing: In immediate addressing mode, the data is specified in the instruction itself. The data will be a part of the program instruction. For example MVI B, 3EH - Move the data 3EH given in the instruction to B register. Direct Addressing: In direct addressing mode, the address of the data is specified in the instruction. The data will be in memory. For example LDA 1050H - Load the data available in memory location 1050H in to accumulator. Register Addressing: In register addressing mode, the instruction specifies the name of the register in which the data is available. For example MOV A, B - Move the content of B register to A register.
8085 MICROPROCESSOR
Rohan Desai- Automobile Dept- New Polytechnic, Kolhapur Page 19
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. For example MOV A, M - The memory data addressed by H L pair is moved to A register. Implied Addressing: In implied addressing mode, the instruction itself specifies the data to be operated. For example CMA - Complement the content of accumulator.
Q. What is meant by interfacing of microprocessor? A microprocessor would not be of much use by itself. To perform useful work it needs to be connected to other electronic components. For example, for a computer to work, a microprocessor must be interfaced to main memory, a graphic subsystem, disk memory, the keyboard and USB ports, etc. There are two types of interfacing o Memory interfacing o I/O interfacing Memory interfacing: While executing an instruction, there is a necessity for the microprocessor to access memory frequently for reading various instruction codes and data stored in the memory. The primary function of a memory interfacing circuit is to aid the microprocessor in reading and writing a data to the given register of a memory chip. I/O Interfacing: We know that keyboard and Displays are used as communication channel with outside world. So it is necessary that we interface keyboard and displays with the microprocessor. This is called I/O interfacing. INTEL has developed some programmable peripheral devices for processors like 8085 for interfacing purpose. The peripheral devices includes
o 8255 Parallel Communication Interface (PPI) o 8251 Serial communication Interface (USART- Universal Synchronous/Asynchronous Receiver/Transmitter) o 8257 DMA Controller o 8279 Keyboard/Display Controller o 8259 Programmable Interrupt controller o 8254 Programmable Timer 8085 MICROPROCESSOR
Rohan Desai- Automobile Dept- New Polytechnic, Kolhapur Page 20
Q. What do you mean by Microcontrollers? Microcontroller is a device that includes microprocessor, memory, I/O ports and other peripherals on a single chip, fabricated using VLSI technology. A digital computer typically consists of three major components: the Central Processing Unit (CPU), program and data memory, and Input/output (I/O) system. The CPU controls the flow of information among the components of the computer. It also processes the data by performing digital operations. A microprocessor is a CPU that is compacted into a single chip semiconductor device. A computer built around a microprocessor is called a microcomputer. The choice of I/O and memory devices of a microcomputer depends on the specific application. A microcontroller is an entire computer manufactured on a single chip. Microcontrollers are usually dedicated devices embedded within an application. Microprocessor itself is not a computer. For a microprocessor to act as control system, additional chips are necessary, e.g. memory devices for program and data storage and input/output ports to allow it to communicate with the external world. The microcontroller is the integration of a microprocessor with memory and input/output interfaces, and other peripherals such as timers, on a single chip. Q. Differentiate between Microcontroller and Microprocessor. Microcontroller Microprocessor Inbuilt RAM and ROM Do not have inbuilt RAM and ROM Inbuilt timer Do not have inbuilt timer I/O ports are available I/O ports are not available, requires extra devices like 8155 or 8255 Inbuilt serial port Do not have inbuilt serial port, requires extra devices like 8250 or 8251 Separate memory to store program and data Program and data are stored in same memory Many multifunctional pins on the IC Less multifunctional pins on the IC Boolean operation i.e. operation on individual bits is possible directly Boolean operation is not possible directly Few instructions to read/write data from/to memory Many instructions to read/write data from/to memory
8085 MICROPROCESSOR
Rohan Desai- Automobile Dept- New Polytechnic, Kolhapur Page 24
Port 0 (P0.1/AD 0 -P0.7/AD 7 ) Pins 32 to 39 make up the 8-bit bidirectional I/O port. Additionally it is used as lower address bus. Port 1 (P1.0-P1.7) Pins 1 to 8 make up the 8-bit bidirectional I/O port. Port 2 (P2.0/A 8 -P2.7/A 15 ) Pins 21 to 28 make up the 8-bit bidirectional I/O port. Additionally it is used as higher order address bus. Port 3 (P3.0-P3.7) Pins 10 to 17 make up the 8-bit bidirectional I/O port. Additionally each of these eight pins also has an alternate function, as detailed in the table below.
Pin Name Alternate Function P3.0 RXD Serial input line P3.1 TXD Serial output line P3.2 INT0 External interrupt 0 P3.3 INT1 External interrupt 1 P3.4 T0 Timer 0 input P3.5 T1 Timer 1 input P3.6 WR External data memory write P3.7 RD External data memory read
RST The reset input is on pin 9. This pin is used for resetting the 8051 EA The external access, on pin 31, is used for enabling or disabling the on-chip ROM. When this pin is high, the 8051 executes instructions in internal ROM. When it is low, the 8051 will always execute instructions in external memory.
8085 MICROPROCESSOR
Rohan Desai- Automobile Dept- New Polytechnic, Kolhapur Page 25
ALE The address latch enable is on pin 30. The ALE is used for latching the low byte of the address into an external register. PSEN (Program Store Enable) The program store enable is an output signal on pin 29. This signal is used for fetching instructions from external code memory. XTAL1, XTAL2 These are the pins for clock connection.