Lab Manual For Microprocessor
Lab Manual For Microprocessor
.e
ee
ex
cl u
LAB MANUAL
si
ve
.b l
og
sp ot
.c o
Expt.No. 1 2 3 4 5 6 7 8a 8b 9 10 a 10 b
Name of the experiment 8 bit and 16 bit Arithmetic operations using 8085 Microprocessor Sorting of numbers (Ascending & descending) using 8085 Microprocessor. Number Conversion(BCD to Hex and Hex to BCD) Arithmetic Operations using 8086 Microprocessor
Square Wave Generation using 8254 Serial Data Transmission using 8251
.e
ee
ex
11 12
Interfacing 8 bit DAC Converter with 8051 Microcontroller Interfacing of Stepper Motor with 8051 Microcontroller
cl u
si
Finding the smallest and largest number in an array of numbers using 8051 Microcontroller
ve
.b l
Interfacing 8279 with 8085 microprocessor 8 bit Arithmetic operations using 8051 Microcontroller.
og
sp ot
.c o
EXPT NO 1 a AIM:
To write the assembly language programs for performing the following arithmetic operations: a) 16 bit binary addition. b) 16 bit binary subtraction. c) 16 bit binary multiplication. d) 16 bit binary division.
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.
1. 2. 3. 4. 5.
Enter the two 16 bit data in two register pairs HL and DE. Initialize a carry counter register B to zero. Add the contents of register pairs. If a carry is generated, increment the carry counter B. Store the Carry in the B register and the sum, which is in the register pair HL in the memory.
6.
Stop.
Start.
.e
16 BIT ADDITION:
ee
ALGORITHM:
ex
cl u
si
ve
.b l
og
sp ot
.c o
16 BIT SUBTRACTION: 1. 2. 3. 4. 5. 6. Start. Get the two 16 bit data in two of the register pairs. Subtract the Low Order Byte of data1 from that of the data 2. Subtract the How Order Byte of data1 along with borrow from that of the data2. Store the result in memory. Stop.
PROBLEM STATEMENT:
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. 2. 3. 4. 5. 6. 7. 8. 9. Start.
16 - BIT DIVISION 1. 1. 2. 3. 4. Start. Store the dividend in HL register pair. Store the divisor in BC register pair Initialize the DE register pair to zero, to carry the quotient. Perform repeated subtraction of divisor from dividend till the dividend is less than the divisor. 5. 6. For every subtraction done, keep on incrementing the quotient register pair DE. Store the remainder pair in memory.
Stop.
Store the contents of the BC register pair which is the carry in memory.
.e
ee
If carry flag is set during addition., increment the carry register pair.
ex
cl u
si
ve
.b l
og
sp ot
.c o
Write an ALP in 8085 P to multiply two 16-bit binary numbers stored in the
7. 8.
YES
cl u
si
ANY CARRY
NO
ve
.b l
og
sp ot ex w .e ee
STOP
.c o
NO ANY BORROW?
YES
INCREMENT CARRY REGISTER
STOP
16-BIT MULTIPLICATION
16-BIT DIVISION
START
START
PRODUCT=0000
sp ot ve .b l
NO
og cl u si
MULTIPLIER = MULTIPLIER 1
ex
.c o
NO
QUOTIENT = QUOTIENT + 1
IS MULTIPLIER = 0?
.e
ee
STORE QUOTIENT
w
YES
STOP
w
STOP
EXPT NO 2
AIM: To write an Assembly Language Program (ALP) to sort a given array of numbers in ascending and descending order. APPARATUS REQUIRED: Microprocessor kit, Power supply.
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
a. Start.
e. Repeat the steps c and d till the array is completed. f. Repeat the steps c, d and e till carry flag FF remains Reset. f. Stop
SORTING IN DESCENDING ORDER: a. Start. b. Load the array count in a register. Initialize a Carry Flag FF to zero. c. Get the first two numbers.
.e
d. Compare the numbers and swap them if necessary so that the two numbers are in
ee
ex
cl u
si
ve
.b l
ALGORITHM:
og
5300H.
sp ot
.c o
PROBLEM STATEMENT:
d. Compare the numbers and swap them so that the two numbers are in descending order. And set the Carry Flag FF. e. Repeat steps c and d till the array is completed. f. Repeat the steps c, d and e till the Carry Flag FF remains Reset. g. Stop. FLOW CHART: ASCENDING ORDER
START
DESCENDING ORDER
START
og
sp ot
.c o ve .b l
YES
IS POINTER POINTER + 1
NO TEMP = POINTER POINTER = POINTER + 1 POINTER + 1 = TEMP FLAG=FLAG+1
si
.e
ee
ex
cl u
NO
NO
IS COUNT =0
IS COUNT =0 YES
YES NO
IS FLAG = 0 IS FLAG = 0
EXPT NO 3
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.
2. 3.
Read the hexadecimal number. Initialize a memory location to store the number of 100s. Find the number of 100s and store it in the memory.
4.
Find the number of 10s from the remainder and store it in the next
7.
5.
Stop.
memory location. The remainder now contains the number of 1s and store it in the next memory location.
.e
ee
ex
cl u
1.
Start.
si
ve
.b l
og
sp ot
Separate the given 8 - bit packed BCD number into two 4 bit
.c o
sp ot og
.c o
NO IS CARRY =1 ? YES DATA =DATA +100 DATA =DATA - 10 NO IS CARRY =1? YES DATA =DATA -10 UNITS =DATA
STORE HUNDREDS , TENS , UNITS STOP
MSD = MSD x 10
HUNDREDS =HUNDREDS + 1
.e
ee
ex
cl u
START
si
ve
TENS = TENS + 1
.b l
EXPT NO: 5
4. Power Supply +5 V
Algorithm: 1. Start
3. Initialize accumulator
8. Go to step 4
.e
ee
ex
cl u
si
output port.
ve
2. Initialize control word of 8255 to enable ports A, B as output ports and port C as
.b l
og
sp ot
.c o
Flowchart
START
INITIALIZE ACCUMULATOR
og
.e
ee
ex
cl u
si
STOP
ve
.b l
NO
IS ACCUMULATOR = 0?
sp ot
YES
.c o
EXPT NO: 6
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:-
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
5. If zero flag is not set then repeat the step 3 onwards, otherwise repeat the step 2 onwards.
.e
ee
ex
cl u
si
ve
.b l
og
sp ot
.c o
SEND 00 TO PORT A
ACC = 00
og ve .b l
sp ot
NO
SEND FF TO PORT A
.c o cl u si
ACC = ACC + 1
m
IF Z =0
YES
.e
ee
ex
AIM:To write an Assembly language Programme for traffic light controller. EQUIPMENT REQUIRED 8085 microprocessor kit and Power Supply. ALGORITHM:-
6. Decrement the counter and repeat step 3 till counter becomes zero. 7. Stop.
.e
ee
ex
cl u
si
ve
.b l
og
sp ot
.c o
1. Start.
FLOW CHART
TRAFFIC CONTROLLER
START
.e
NO
COUNTER = 0?
ee
ex
cl u
si
ve
.b l
YES
og
sp ot
.c o
DISPLAY
.e
ee
ex
cl u
si
RETURN
ve
.b l
og
sp ot
.c o
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
.e
ee
ex
cl u
si
ve
STOP
.b l
START
og
sp ot
.c o
AIM:
To interface 8251 with 8085 microprocessor and to check the transmission and reception of a character.
ALGORITHM
7. Read the data from the data register 8. Store the data to a memory location
9. Stop
.e
ee
ex
cl u
si
ve
6.
.b l
5. Write mode instruction word and command instruction word for 8251.
og
sp ot
.c o
START
ee
ex
.e
cl u
si
ve
STOP
.b l
og
sp ot
.c o
START
.e
ee
ex
cl u
si
ve
.b l
og
STOP
sp ot
.c o
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
7. Initialize 8279
.e
ee
ex
cl u
12. Stop.
si
ve
.b l
9. Call delay.
og
sp ot
.c o
FLOW CHART
START
initialize a counter.
ee
ex
cl u
No
.e
si
ve
.b l
og
sp ot
.c o
EXPT NO 10 a
AIM: To write the assembly language programs for performing the following arithmetic operations: a) b) c) d) 8 bit binary addition. 8 bit binary subtraction. 8 bit binary multiplication. 8 bit binary division.
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
4. 5. 6. 7. 8. 9.
10.
Store date 2 in B register. Load the data pointer with external memory address Add the contents of B register to that of the accumulator. If a carry is generated, increment the carry counter. Store the contents of the Accumulator, which is the sum in memory. Move the carry register contents to Accumulator and store the same in memory. Stop.
3.
2.
.e
1.
Start
ee
8 BIT ADDITION:
ex
ALGORITHMS:
cl u
si
the carry also and store the carry in the memory location 4601H.
ve
.b l
og
sp ot
.c o
APPARATUS REQUIRED:
. exe i
8 BIT SUBTRACTION: 1. 2. 3. 4. 5. 6. 7. 8. Start Initialize Barrow register to zero. Store data 1 in accumulator and date 2 in B register respectively. Subtract the contents of B register to that of the accumulator. Load the data pointer with external memory address If a borrow is generated, increment the borrow counter. Store the contents of the Accumulator, which is the difference in memory. Move the barrow register contents to Accumulator and store the same in
9.
Stop.
8 BIT DIVISION:
2. 3. 4. 5. 6. 7.
1.
Start.
Store data 1 in register Accumulator. Store data 2 in register B. Load the data pointer with external memory address Divide A and B register Move the A and B register contents to the memory Stop.
.e
ee
ex
cl u
si
ve
.b l
og
sp ot
.c o
memory.
8-BIT SUBTRACTION
START
.b l
og
sp ot
.c o cl u
YES
m
SUBTRACT SECOND OPERAND FROM MEMORY YES ANY CARRY? A=A+B
si
ve
NO
ee
ex
COUNTER = COUNTER + 1
NO
.e
COUNTER = COUNTER + 1
STOP
STOP
8-BIT MULTIPLICATION
8-BIT DIVISION
START
START
og cl u si ve .b l
sp ot
Load Data Pointer with External Memory Address Move the content of A and B to external Address
Move the content of A and B to external Address
STOP
.e
ee
ex
.c o
STOP
EXPT NO 10 b
FINDING THE SMALLEST AND LARGEST NUMBER IN AN ARRAY OF NUMBERS USING 8051
AIM: To write Assembly Language Programs (ALP) to find the maximum and minimum of an array of numbers. 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
4. Compare the numbers and swap them if necessary so that the two numbers are
5. Repeat the steps 3 and 4 till the array is completed. 6. Repeat the steps 3, 4 and5 and store the smallest number.. 7. Stop
in descending order.
.e
ee
ex
cl u
1. Start.
si
ve
.b l
ALGORITHM:
og
4700H.
sp ot
.c o
FINDING THE LARGEST NUMBER OF THE ARRAY: 1. Start. 2. Load the array count in a register. 3. Get the first two numbers. 4. Compare the numbers and swap them so that the two numbers are in ascending order. 5. Repeat steps 3 and 4 till the array is completed.
memory.
7.
Stop.
.e
ee
ex
cl u
si
ve
.b l
og
sp ot
.c o
6. Repeat the steps 3, 4 and 5 and store the largest number as the result in
START
sp ot
.c o ve .b l og
NO
IS POINTER POINTER + 1
NO
YES
YES
IS POINTER POINTER + 1
NO
si
.e
IS COUNT =0
ee
NO
ex
cl u
IS COUNT =0 YES
YES
STOP STOP
EXPT. NO: 11
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.
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.
.e
ee
ex
cl u
si
ve
.b l
og
sp ot
.c o
SEND 00 TO PORT A
og ve .b l cl u si
SEND FF TO PORT A
CALL DISPLAY SUBROUTINE
sp ot
NO
ee
ex
.c o
ACC = 00
ACC = ACC + 1
m
IF Z =0
.e
YES
ALGORITHM: 1. Start. 2. 3. 4. 5. 6. Get the number of times the motor has to be rotated. Initialize the port and store data into accumulator.
.e
ee
ex
cl u
si
ve
.b l
Stop.
og
sp ot
.c o
START
NO
.e
ee
ex
cl u
COUNTER = 0?
YES
si
STOP
ve
.b l
og
sp ot
.c o