Beruflich Dokumente
Kultur Dokumente
LAB MANUAL
APPARATUS REQUIRED:
Microprocessor kit, Power supply.
PROBLEM STATEMENT:
Write an ALP in 8085 µP to add and subtract two 16-bit binary numbers stored
in the memory locations 4100 & 4101 and 4102 & 4103 and store the result starting
from the memory location 4105H. Also provide an instruction in the above program to
observe the carry also and store the carry in the memory location 4104H.
ALGORITHM:
16 – BIT ADDITION:
1 Start.
1. Enter the two 16 – bit data in two register pairs HL and DE.
2. Initialize a carry counter register B to zero.
3. Add the contents of register pairs.
4. If a carry is generated, increment the carry counter B.
5. Store the Carry in the B register and the sum, which is in the register pair HL in
the memory.
6. Stop.
16 – BIT SUBTRACTION:
1. Start.
2. Get the two 16 – bit data in two of the register pairs.
3. Subtract the Low Order Byte of data1 from that of the data 2.
4. Subtract the How Order Byte of data1 along with borrow from that of the data2.
5. Store the result in memory.
6. Stop.
PROBLEM STATEMENT:
Write an ALP in 8085 µP to multiply two 16-bit binary numbers stored in the
memory locations 4100(LOB) & 4101(HOB) and 4102(LOB) & 4103(HOB) and store
the result in the memory location 4104H & 4105H.Write instructions for performing
16-bit division also.
16 – BIT MULTIPLICATION.
1. Start.
2. Initialize BC register pair to store the Carry.
3. Store the data 1 and data 2 in DE register pair and SP register.
4. Initialize the HL register pair to zero, to store the result.
5. Multiply by repeated addition of data 1 data 2 times.
6. If carry flag is set during addition., increment the carry register pair.
7. Store the product available in HL pair in memory.
8. Store the contents of the BC register pair which is the carry in memory.
9. Stop.
16 - BIT DIVISION
1. Start.
1. Store the dividend in HL register pair.
2. Store the divisor in BC register pair
3. Initialize the DE register pair to zero, to carry the quotient.
4. Perform repeated subtraction of divisor from dividend till the dividend is less
than the divisor.
5. For every subtraction done, keep on incrementing the quotient register pair DE.
6. Store the remainder pair in memory.
7. Store the quotient in memory.
8. Stop.
FLOW CHART
START
START
INTIALIZE BORROW
LOAD TWO NOS. IN REGISTER
REGISTER PAIRS
NO NO
ANY ANY
CARRY BORROW?
YES
YES
INCREMENT INCREMENT
CARRY CARRY
REGISTER REGISTER
STORE THE
STORE THE
RESULT
RESULT
STOP STOP
16-BIT MULTIPLICATION 16-BIT DIVISION
START
START
QUOTIENT = 0
PRODUCT=0000
DIVIDEND =
DIVIDEND – DIVISOR
QUOTIENT =
REG. PAIR = REG. PAIR +
QUOTIENT + 1
MULTIPLICAND
NO
IS
DIVIDEND <
MULTIPLIER =
DIVISOR
MULTIPLIER – 1
YES
NO
IS MULTIPLIER
= 0? STORE QUOTIENT
YES
STOP
STORE REGISTER
PAIR
STOP
EXPT NO 2 SORTING of NUMBERS USING 8085
(ASCENDING AND DESCENDING ORDER)
AIM:
APPARATUS REQUIRED:
PROBLEM STATEMENT:
An array of length 10 is stored from the location starting from 5000H. Sort it
into descending and ascending orders and store the resultant starting from the location
5300H.
ALGORITHM:
a. Start.
d. Compare the numbers and swap them if necessary so that the two numbers are in
f. Stop
a. Start.
FLOW CHART:
ASCENDING ORDER DESCENDING ORDER
START
START
YES
YES IS POINTER ≥
IS POINTER ≤ POINTER + 1
POINTER + 1
NO
NO
TEMP = POINTER
TEMP = POINTER POINTER = POINTER + 1
POINTER = POINTER + 1 POINTER + 1 = TEMP
POINTER + 1 = TEMP FLAG=FLAG+1
FLAG=FLAG+1
NO
NO
IS COUNT IS COUNT
=0 =0
YES YES
NO
IS FLAG =
0 IS FLAG =
0
YES
YES
STOP STOP
EXPT NO 2b NUMBER CONVERSIONS USING 8085
(BCD TO HEXA AND HEXA TO BCD)
AIM:
To write an Assembly language program for converting a two digit BCD
number (maximum of 99) to hexadecimal and to convert a hexadecimal number
(maximum of FFH) to BCD.
ALGORITHM:
CONVERSION OF BCD TO HEXADECIMAL:
1. Start.
2. Separate the given 8 - bit packed BCD number into two 4 – bit
unpacked BCD nibbles(BCD1 and BCD2).
3. Multiply BCD2 the most significant nibble, by 10.
4. Add BCD1 to the answer from step3.
5. Store the result and Stop.
CONVERSION OF BCD TO HEXADECIMAL:
1. Start.
2. Read the hexadecimal number.
3. Initialize a memory location to store the number of 100’s. Find the
number of 100’s and store it in the memory.
4. Find the number of 10’s from the remainder and store it in the next
memory location.
5. The remainder now contains the number of 1’s and store it in the next
memory location.
7. Stop.
FLOW CHART:
START
START
DATA =DATA - 10
START TENS = TENS + 1
NO
IS CARRY
=1?
YES
UNITS =DATA
STORE HUNDREDS ,
TENS , UNITS
STOP
EXPT NO: 4 A
Aim:
To obtain the digital output corresponding to the analog input.
Apparatus Required:
1. Microprocessor 8085 Trainer Kit
2. Display Interface Kit
3. Flat Cable Connector
4. Power Supply +5 V
Algorithm:
1. Start
2. Initialize control word of 8255 to enable ports A, B as output ports and port C as
output port.
3. Initialize accumulator
4. Send contents of accumulator to DAC through port A
5. Obtain comparator output to port c.
6. If accumulator =0 go to step 5else goto step 9
7. Decrement contents of accumulator
8. Go to step 4
9. Call display subroutine to display digital output
10. Stop.
Flowchart
START
INITIALIZE ACCUMULATOR
YES
IS
ACCUMULATOR = 0?
NO
DECREMENT CONTENTS OF
ACCUMULATOR
STOP
EXPT NO: 4 B INTERFACING 8 BIT DAC CONVERTER USING 8085
AIM:-
To generate different types of waveforms by interfacing a DAC with a
microprocessor trainer kit.
EQUIPMENT REQUIRED
Intel 8085 based MPS – 85 – 2 trainer kit, DAC interface card, 26 pin
flat cable connector, CRO with probe.
ALGORITHM:-
SQUARE WAVE FORM
1. Initialize the control word register i.e., 8255 as input port.
2. Send 00 to port A of 8255
3. Call delay subroutine
4. Send FF to port A of 8255
5. Call delay subroutine
6. Repeat the step 2 onwards.
SAW TOOTH WAVE FORM
1. Initialize the control word register.
2. Initialize the accumulator content
3. Send to port A of 8255
4. Increment the accumulator content
5. If zero flag is not set then repeat the step 3 onwards, otherwise repeat
the step 2 onwards.
FLOW CHART:
Square Waveform: Saw tooth Waveform:
START START
CALL “DISPLAY”
SUBROUTINE NO IF Z
=0
YES
EXPT. NO:5
AIM:-
To write an Assembly language Programme for traffic light controller.
EQUIPMENT REQUIRED
8085 microprocessor kit and Power Supply.
ALGORITHM:-
1. Start.
2. Write the control word to initialize 8255.Obtain the data for
each direction and store in the memory.
3. Initialize a counter to indicate the number of directions.
4. Initialize HL Pair to the starting address of the data..
5. Check the result.
6. Decrement the counter and repeat step 3 till counter becomes
zero.
7. Stop.
FLOW CHART TRAFFIC CONTROLLER
START
Initialize a counter.
Initialize HL pair to 9000h
NO
COUNTER = 0?
YES
DISPLAY
RETURN
EXPT. NO. : 6 A
SQUARE WAVE GENERATION USING 8254
AIM:
To interface 8254 with 8085 microprocessor and generate a square wave
ALGORITHM
1. Start
2. Write control word to initialize 8254 in mode 3
3. Load the LSB of the count and output in channel 0
4. Load the MSB of the count and output in channel 0
5. Stop.
FLOW CHART
START
STOP
EXPT. NO. : 6 B
SERIAL DATA TRANSMISSION USING 8251
AIM:
To interface 8251 with 8085 microprocessor and to check the transmission
and reception of a character.
ALGORITHM
1. Start
2. Write control word to initialize 8254 in mode 3
3. Load the LSB of the count and output in channel 0
4. Load the MSB of the count and output in channel 0
5. Write mode instruction word and command instruction word for 8251.
6. Output the data to be transmitted to data register and enable an interrupt.
START
STOP
FLOW CHART – For receiving the data
START
STOP
EXPT. NO. : 7
INTERFACING 8279 WITH 8085 MICROPROCESSOR
AIM:
To interface 8279 with 8085 microprocessor and display the rolling message
“HELP US”
ALGORITHM
5. Start
6. Load the HL pair with the starting address of the message to be displayed
and initialize a counter.
7. Initialize 8279
8. Output the data from memory to the data register
9. Call delay.
10. Increment the pointer and decrement the counter.
11. Repeat until counter becomes 0.
12. Stop.
FLOW CHART
START
No
Is the
counter
value 0
Yes
EXPT NO 8 8 – BIT ARITHMETIC OPERATIONS USING 8051
AIM:
To write the assembly language programs for performing the following
arithmetic operations:
a) 8 – bit binary addition.
b) 8 – bit binary subtraction.
c) 8 – bit binary multiplication.
d) 8 – bit binary division.
APPARATUS REQUIRED:
Microcontroller kit.
PROBLEM STATEMENT:
Write an ALP in 8051 µc to perform 8-bit arithmetic operations for the
numbers stored in the memory location 4500H and 4501H and store the result in the
memory location 4600H.Also provide an instruction in the above program to consider
the carry also and store the carry in the memory location 4601H.
ALGORITHMS:
8 – BIT ADDITION:
1. Start
2. Initialize carry register to zero.
3. Store data 1 in accumulator.
4. Store date 2 in B register.
5. Load the data pointer with external memory address
6. Add the contents of B register to that of the accumulator.
7. If a carry is generated, increment the carry counter.
8. Store the contents of the Accumulator, which is the sum in memory.
9. Move the carry register contents to Accumulator and store the same in
memory.
10. Stop.
.i e x e
8 – BIT SUBTRACTION:
1. Start
2. Initialize Barrow register to zero.
3. Store data 1 in accumulator and date 2 in B register respectively.
4. Subtract the contents of B register to that of the accumulator.
5. Load the data pointer with external memory address
6. If a borrow is generated, increment the borrow counter.
7. Store the contents of the Accumulator, which is the difference in memory.
8. Move the barrow register contents to Accumulator and store the same in
memory.
9. Stop.
8 – BIT MULTIPLICATION:
1. Start.
2. Store data 1 in register Accumulator.
3. Store data 2 in register B.
4. Load the data pointer with external memory address
5. Multiply A and B register
6. Move the A and B register contents to the memory
7. Stop.
8 – BIT DIVISION:
1. Start.
2. Store data 1 in register Accumulator.
3. Store data 2 in register B.
4. Load the data pointer with external memory address
5. Divide A and B register
6. Move the A and B register contents to the memory
7. Stop.
FLOWCHART:
START START
GET FIRST
GET FIRST OPERAND TO A
OPERAND TO B
YES
A=A+B
ANY CARRY?
YES
NO
COUNTER =
IS THERE
COUNTER + 1
ANY CARRY
COUNTER =
COUNTER + 1 STORE THE
DIFFERENCE
NO
STOP
8-BIT MULTIPLICATION 8-BIT DIVISION
START
START
STOP
STOP
EXPT NO 9 FINDING THE SMALLEST AND LARGEST NUMBER
IN AN ARRAY OF NUMBERS USING 8051
AIM:
APPARATUS REQUIRED:
Microcontroller Kit
PROBLEM STATEMENT:
An array of length 10 is stored from the location starting from 4600H. Sort it
into descending and ascending orders and store the resultant starting from the location
4700H.
ALGORITHM:
1. Start.
4. Compare the numbers and swap them if necessary so that the two numbers are
in descending order.
7. Stop
FINDING THE LARGEST NUMBER OF THE ARRAY:
1. Start.
4. Compare the numbers and swap them so that the two numbers are in ascending
order.
6. Repeat the steps 3, 4 and 5 and store the largest number as the result in
memory.
7. Stop.
FLOW CHART:
FINDING THE MINIMUM AND MAXIMUM NUMBER OF AN ARRAY
START
START
YES
YES IS POINTER ≥
IS POINTER ≤ POINTER + 1
POINTER + 1
NO
NO
TEMP = POINTER
TEMP = POINTER POINTER = POINTER + 1
POINTER = POINTER + 1 POINTER + 1 = TEMP
POINTER + 1 = TEMP
NO
NO
IS COUNT IS COUNT
=0 =0
YES YES
STORE THE
POINTER RESULT
STORE THE
POINTER RESULT
STOP
STOP
EXPT. NO: 10
INTERFACING DAC CONVERTER USING 8051
AIM:-
To generate different types of waveforms by interfacing a DAC with a
microcontroller.
EQUIPMENT REQUIRED
Intel 8051 based MPS – 85 – 2 trainer kit, DAC interface card, 26 pin
flat cable connector, CRO with probe.
ALGORITHM:-
SQUARE WAVE FORM
1. Initialize the control word register i.e., 8255 as input port.
2. Send 00 to port A of 8255
3. Call delay subroutine
4. Send FF to port A of 8255
5. Call delay subroutine
6. Repeat the step 2 onwards.
SAW TOOTH WAVE FORM
1. Initialize the control word register.
2. Initialize the accumulator content
3. Send to port A of 8255
4. Increment the accumulator content
5. If zero flag is not set then repeat the step 3 onwards, otherwise repeat
the step 2 onwards.
FLOW CHART:
Square Waveform: Saw tooth Waveform:
START START
CALL “DISPLAY”
SUBROUTINE NO IF Z
=0
YES