EE6612-Miroprocessor and Microcontroller Laboratory
EE6612-Miroprocessor and Microcontroller Laboratory
EE6612-Miroprocessor and Microcontroller Laboratory
com
EE6612 Microprocessors and Microcontrollers Laboratory
(2013 Regulation)
Prepared by,
Dr.G.Udhayakumar, Associate Professor
Mr.S.Rajanbabu,AssistantProfessor(Sr.G)
Mrs K.Durgadevi, AssistantProfessor
Mrs A.Shanmugapriyaa, AssistantProfessor
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
SYLLABUS
EE6612 - MICROPROCESSORS AND MICRO CONTROLLERS LABORATORY
OBJECTIVES:
To provide training on programming of microprocessors and microcontrollers and
understand the interface requirements.
LIST OF EXPERIMENTS:
1. Simple arithmetic operations: addition / subtraction / multiplication / division.
2. Programming with control instructions:
(i) Ascending / Descending order, Maximum / Minimum of numbers
(ii) Programs using Rotate instructions
(iii)Hex / ASCII / BCD code conversions.
3. Interface Experiments: with 8085
(i) A/D Interfacing. & D/A Interfacing.
4. Traffic light controller.
5. I/O Port / Serial communication
6. Programming Practices with Simulators/Emulators/open source
7. Read a key,interface display
8. Demonstration of basic instructions with 8051 Micro controller execution, including:
(i) Conditional jumps, looping
(ii) Calling subroutines.
9. Programming I/O Port 8051
(i) study on interface with A/D & D/A
(ii
(ii) study on interface with DC & AC motor .
10. Mini project development with processors.
TOTAL: 45 PERIODS
OUTCOMES:
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
LIST OF EXPERIMENTS
CYCLE I
8-bit Microprocessor
1. Simple arithmetic operations:
(a) Addition (b) subtraction (c) multiplication (d) division.
2. Ascending / Descending order, Maximum / Minimum of numbers :
(a) Ascending order (b) Descending order (c) Maximum of numbers (d) Minimum of numbers.
3. Rotate instructions:
(a) Odd and Even Number (b) Positive and Negative Number
4. Code conversion.
(a) ASCII to hexadecimal number (b) hexadecimal to ASCII (c) hexadecimal to decimal
number (d) binary to hexadecimal number and (e) hexadecimal to binary number
CYCLE II
8085 Interfacing Program
5. Interface Experiments:
(a) A/D Interfacing. (b) D/A Interfacing
6. Traffic light controller: I/O port - 8255
7. Serial Communication: 8251
8. Read a key, interface display: 8279
CYCLE III
8-bit Microcontroller
9. Demonstration of basic instructions with 8051 Micro controller execution, including:
(a) Addition (b) subtraction (c) multiplication (d) division.
10. (a) Conditional jumps, looping : Sum of elements in an array
(b) Calling subroutines : Check whether given number is Odd or Even using call option
11. Programming I/O Port :
(a) A/D Interfacing. (b) D/A Interfacing
12. Interface with DC & AC motor
13. Mini project development with processors
ADDITIONAL EXPERIMENTS
14. Interfacing 8253 Timer With 8085
15. Stepper Motor Interfacing With 8051
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
S.no
Date
List Of Experiments
Signature
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
8085 MICROPROCESSOR
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
Ex. No: 1
AIM:
To write an assembly language program to add, subtract, multiply and divide the given
data stored at two consecutive locations using 8085 microprocessor.
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
FLOW CHART:
START
[C]
00H
[HL]
4500H
[A]
[M]
[HL]
[HL]+1
[A]
[A]+[M]
Is there a
Carry ?
NO
YES
[C]
[C]+1
[HL]
[HL]+1
[M]
[A]
[HL]
[HL]+1
[M]
[C]
STOP
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
PROGRAM:
ADDRESS OPCODE LABEL
4100
START
4101
4102
4103
4104
4105
MNEMONICS OPERAND
MVI
C, 00
LXI
H, 4500
MOV
A, M
4106
INX
4107
ADD
4108
4109
410A
JNC
L1
410B
410C
INR
INX
C
H
410D
MOV
M, A
410E
INX
410F
4110
MOV
HLT
M, C
L1
COMMENT
Clear C reg.
Initialize HL reg. to
4500
Transfer first data to
accumulator
Increment HL reg. to
point next memory
Location.
Add first number to
acc. Content.
Jump to location if
result does not yield
carry.
Increment C reg.
Increment HL reg. to
point next memory
Location.
Transfer the result from
acc. to memory.
Increment HL reg. to
point next memory
Location.
Move carry to memory
Stop the program
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
ALGORITHM:
1.
2.
3.
4.
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
START
FLOW CHART:
[C]
[HL]
00H
4500H
[A]
[M]
[HL]
[HL]+1
[A]
[A]-[M]
Is there a
Borrow?
NO
YES
Complement [A]
Add 01H to [A]
[C]
[C]+1
[HL]
[HL]+1
[M]
[A]
[HL]
[HL]+1
[M]
[C]
STOP
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
PROGRAM:
ADDRESS OPCODE LABEL
4100
START
4101
4102
4103
4104
4105
MNEMONICS OPERAND
MVI
C, 00
COMMENT
Clear C reg.
LXI
H, 4500
Initialize HL reg. to
4500
MOV
A, M
4106
INX
4107
SUB
4108
4109
410A
JNC
L1
410B
410C
INR
CMA
410D
410E
410F
ADI
01H
INX
4110
MOV
M, A
4111
INX
4112
4113
MOV
HLT
M, C
L1
Increment C reg.
Complement the Acc.
content
Add 01H to content of
acc.
Increment HL reg. to
point next mem.
Location.
Transfer the result from
acc. to memory.
Increment HL reg. to
point next mem.
Location.
Move carry to mem.
Stop the program
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
c.
ALGORITHM:
LOGIC: Multiplication can be done by repeated addition.
1.
2.
3.
4.
5.
6.
7.
8.
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
FLOW CHART:
START
[HL] 4500
B M
[HL] [HL]+1
A 00
C 00
Is there
any carry
NO
YES
C C+1
B B-1
NO
IS B=0
YES
A
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
A
[HL]
[HL]+1
[M]
[A]
[HL]
[HL]+1
[M]
[C]
STOP
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
PROGRAM:
ADDRESS OPCODE LABEL
4100
START
4101
4102
4103
MNEMONICS
LXI
OPERAND
H, 4500
MOV
B, M
4104
INX
4105
4106
4107
4108
MVI
A, 00H
MVI
C, 00H
ADD
410A
JNC
NEXT
410B
410C
410D
410E
410F
4110
4111
4112
INR
DCR
JNZ
C
B
L1
Increment C reg
Decrement B reg
Jump to L1 if B is not
zero.
INX
4113
MOV
M, A
4114
INX
4115
MOV
M, C
4116
HLT
Increment HL reg. to
point next mem.
Location.
Transfer the result from
acc. to memory.
Increment HL reg. to
point next mem.
Location.
Transfer the result from
C reg. to memory.
Stop the program
4109
L1
NEXT
COMMENT
Initialize HL reg. to
4500
Add multiplicand
multiplier times.
Jump to NEXT if there
is no carry
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
d. 8 BIT DIVISION:
ALGORITHM:
LOGIC: Division is done using the method Repeated subtraction.
1. Load Divisor and Dividend
2. Subtract divisor from dividend
3. Count the number of times of subtraction which equals the quotient
4. Stop subtraction when the dividend is less than the divisor .The dividend now becomes
the remainder. Otherwise go to step 2.
5. Stop the program execution.
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
START
FLOWCHART:
B 00
[HL] 4500
A M
[HL] [HL]+1
M A-M
[B] [B] +1
No
IS A<0
Yes
A A+ M
YES
B B-1
[HL]
[HL]+1
[M]
[A]
[HL]
[HL]+1
[M]
[B]
STOP
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
PROGRAM:
ADDRESS
4100
4101
4102
4103
4104
4105
OPCODE LABEL
MNEMONICS
MVI
OPERAND
B,00
COMMENTS
Clear B reg for quotient
LXI
H,4500
Initialize HL reg. to
4500H
MOV
A,M
INX
SUB
4108
4109
410A
410B
410C
410D
410E
INR
JNC
B
LOOP
ADD
DCR
INX
M
B
H
410F
MOV
M,A
4110
INX
4111
MOV
M,B
4112
HLT
Transfer dividend to
acc.
Increment HL reg. to
point next mem.
Location.
Subtract divisor from
dividend
Increment B reg
Jump to LOOP if
result does not yield
borrow
Add divisor to acc.
Decrement B reg
Increment HL reg. to
point next mem.
Location.
Transfer the remainder
from acc. to memory.
Increment HL reg. to
point next mem.
Location.
Transfer the quotient
from B reg. to memory.
Stop the program
4106
4107
LOOP
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
OBSERVATION:
ADDITION:
S.NO
1
2
INPUT
ADDRESS
DATA
4500
4501
4500
4501
OUTPUT
ADDRESS
DATA
4502
4503
4502
4503
INPUT
ADDRESS
DATA
4500
4501
4500
4501
OUTPUT
ADDRESS
DATA
4502
4503
4502
4503
INPUT
ADDRESS
DATA
4500
4501
4500
4501
OUTPUT
ADDRESS
DATA
4502
4503
4502
4503
INPUT
ADDRESS
DATA
4500
4501
4500
4501
OUTPUT
ADDRESS
DATA
4502
4503
4502
4503
SUBTRACTION:
S.NO
1
2
MULTIPLICATION:
S.NO
1
2
DIVISION:
S.NO
1
2
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
RESULT:
Thus the addition, subtraction, multiplication and division of two numbers was
performed using the 8085 microprocessor.
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
a. ASCENDING ORDER
ALGORITHM:
1. Get the numbers to be sorted from the memory locations.
2. Compare the first two numbers and if the first number is larger than second then I
interchange the number.
3. If the first number is smaller, go to step 4
4. Repeat steps 2 and 3 until the numbers are in required order
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
FLOWCHART:
START
[HL] 4200H
[C] [HL]
[C] [C] -1
[D] [C]
[HL] 4201H
[A] [HL]
[HL [HL] + 1
Yes
Is
[A] < [HL]?
No
[B] [HL]
[HL] [A]
[HL] [HL] - 1
[HL] [B]
[HL] [HL] + 1
[D] [D] 01 H
A
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
IS
[D] = 0?
No
Yes
[C] [C]-1
IS
[C] = 0?
No
Yes
STOP
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
PROGRAM:
ADDRESS
LXI
OPERA
ND
H,4200
MOV
DCR
MOV
C,M
C
D,C
LXI
H,4201
MOV
INX
A,M
H
410B
410C
CMP
JC
M
LOOP1
410D
410E
410F
MOV
B,M
4110
MOV
M,A
4111
4112
DCX
MOV
H
M,B
4113
4114
4115
4116
4117
4118
4119
411A
411B
411C
INX
DCR
JNZ
H
D
LOOP2
DCR
JNZ
C
LOOP3
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
410A
OPC
ODE
LABEL
LOOP 3
LOOP2
LOOP1
MNEMONICS
HLT
COMMENTS
Set pointer for array
Load the Count
Decrement Count
Transfer data from C to
D
Load data from 4201
Copy content of M to A
Increment HL reg. to
point next memory
location
Compare M & A
If A is lesser than M
then go to loop1
Transfer data from M to
D reg
Transfer data from acc
to M
Decrement HL pair
Transfer data from B to
M
Increment HL pair
Decrement D reg
If D is not zero go to
loop2
Decrement C reg
If C is not Zero go to
loop3
Stop the program
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
b. DESCENDING ORDER
ALGORITHM:
1. Get the numbers to be sorted from the memory locations.
2. Compare the first two numbers and if the first number is smaller than second then I
interchange the number.
3. If the first number is larger, go to step 4
4. Repeat steps 2 and 3 until the numbers are in required order
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
START
FLOWCHART:
[HL] 4200H
[C] [HL]
[C] [C] -1
[D] [C]
[HL] 4201H
[A] [HL]
[HL [HL] + 1
No
Is
[A] < [HL]?
Yes
[B] [HL]
[HL] [A]
[HL] [HL] - 1
[HL] [B]
[HL] [HL] + 1
[D] [D] 01 H
A
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
IS
[D] = 0?
No
Yes
[C] [C]-1
IS
[C] = 0?
No
Yes
STOP
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
PROGRAM:
ADDRESS
LXI
OPERA
ND
H,4200
MOV
DCR
MOV
C,M
C
D,C
LXI
H,4201
MOV
INX
A,M
H
410B
410C
CMP
JNC
M
LOOP1
410D
410E
410F
MOV
B,M
4110
MOV
M,A
4111
4112
DCX
MOV
H
M,B
4113
4114
4115
4116
4117
4118
4119
411A
411B
411C
INX
DCR
JNZ
H
D
LOOP2
DCR
JNZ
C
LOOP3
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
410A
OPC
ODE
LABEL
LOOP 3
LOOP2
LOOP1
MNEMONICS
HLT
COMMENTS
Set pointer for array
Load the Count
Decrement Count
Transfer data from C to
D
Load data from 4201
Copy content of M to A
Increment HL reg. to
point next memory
location
Compare M & A
If A is lesser than M
then go to loop1
Transfer data from M to
D reg
Transfer data from acc
to M
Decrement HL pair
Transfer data from B to
M
Increment HL pair
Decrement D reg
If D is not zero go to
loop2
Decrement C reg
If C is not Zero go to
loop3
Stop the program
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
FLOW CHART:
START
[HL] [4200H]
[B] 04H
[A] [HL]
[HL [HL] + 1
NO
IS
[A] < [HL]?
YES
[A] [HL]
[B] [B]-1
IS
[B] = 0?
NO
YES
[4205] [A]
STOP
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
PROGRAM:
ADDRE
SS
4101
4102
4103
4104
4105
4106
4107
4108
4109
410A
410B
410C
410D
410E
410F
4110
4111
4112
4113
4114
OPCO
DE
LABEL
LOOP1
LOOP
MNEM
ONICS
LXI
OPER
AND
H,4200
MVI
B,04
MOV
INX
A,M
H
CMP
JNC
M
LOOP
MOV
DCR
JNZ
A,M
B
LOOP1
STA
4205
HLT
COMMENTS
Initialize HL reg. to
4200H
Initialize B reg with no. of
comparisons(n-1)
Transfer first data to acc.
Increment HL reg. to point
next memory location
Compare M & A
If A is greater than M then go
to loop
Transfer data from M to A reg
Decrement B reg
If B is not Zero go to loop1
Store the result in a memory
location.
Stop the program
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
FLOW CHART:
START
[HL] [4200H]
[B] 04H
[A] [HL]
[HL [HL] + 1
YES
IS
[A] < [HL]?
NO
[A] [HL]
[B] [B]-1
IS
[B] = 0?
NO
YES
[4205] [A]
STOP
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
PROGRAM:
ADDRE
SS
4101
4102
4103
4104
4105
4106
4107
4108
4109
410A
410B
410C
410D
410E
410F
4110
4111
4112
4113
4114
OPCO
DE
LABEL
LOOP1
LOOP
MNEM
ONICS
LXI
OPER
AND
H,4200
MVI
B,04
MOV
INX
A,M
H
CMP
JC
M
LOOP
MOV
DCR
JNZ
A,M
B
LOOP1
STA
4205
HLT
COMMENTS
Initialize HL reg. to
4200H
Initialize B reg with no. of
comparisons(n-1)
Transfer first data to acc.
Increment HL reg. to point
next memory location
Compare M & A
If A is lesser than M then go
to loop
Transfer data from M to A reg
Decrement B reg
If B is not Zero go to loop1
Store the result in a memory
location.
Stop the program
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
OBSERVATION:
A. ASCENDING ORDER
INPUT
MEMORY
DATA
LOCATION
4200
4201
4202
4203
4204
OUTPUT
MEMORY
DATA
LOCATION
4200
4201
4202
4203
4204
B. DESCENDING ORDER
INPUT
MEMORY
DATA
LOCATION
4200
4201
4202
4203
4204
OUTPUT
MEMORY
DATA
LOCATION
4200
4201
4202
4203
4204
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
C. SMALLEST ELEMENT
INPUT
MEMORY
DATA
LOCATION
4200
4201
4202
4203
4204
OUTPUT
MEMORY
DATA
LOCATION
4205
D. LARGEST ELEMENT
INPUT
MEMORY
DATA
LOCATION
4200
4201
4202
4203
4204
OUTPUT
MEMORY
DATA
LOCATION
4205
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
RESULT:
Thus the sorting operations of arranging an array in ascending, descending order and
the largest and smallest element were found using the 8085 microprocessor.
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
Ex. No: 3
AIM:
To find the number of even and odd number, and number of positive and negative
numbers in a block of data.
ALGORITHM:
1. Start.
2. Load the given data.
3. Clear the data in accumulator.
4. Move the content of accumulator to D and B register.
5. Increment HL register pair and move the content of memory to accumulator.
6. Rotate the obtain data in the form of RAR.
7. If carry occur increment B else increment D.
8. Decrement C, if C 0 go to step 5. Else increment HL pair.
9. Move the content of D to memory and increment HL pair and move the content B to
memory.
10. Stop.
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
START
[HL] [4200H]
[C] [HL]
[A] 00H
[B] [A]
[D] [A]
[HL [HL] + 1
[A] [HL]
Rotate the A right
through carry
Yes
Is CY=1
No
[C] [C]-1
Is
[C] = 0?
No
Yes
[HL] [HL]+1, [HL] D
[HL] [HL]+1, [HL] B
STOP
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
ADDRE
SS
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
410A
410B
410C
410D
410E
410F
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
411A
OPCO
DE
LABEL
L3
MNEM
ONICS
LXI
OPER
AND
H,4200
COMMENTS
MOV
XRA
MOV
MOV
INX H
MOV
C, M
A
D, A
B, A
H
A,M
L1
Move M to C
Exclusive OR reg A
Move A to D
Move A to B
Increment H
Move M to A
Rotate right through
carry
Jump no carry
INR
JMP
D
L2
Increment D
Jump to L2
INR
DCR
JNZ
B
C
L3
Increment B
Decrement C
Jump non Zero
RAR
JNC
L1
L2
LOOP
INX
MOV
INX H
MOV
HLT
H
M, D
H
M, B
Increment H
Move D to M
Increment H
Move B to M
Halt the program
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
ALGORITHM:
1. Start.
2. Load the given data.
3. Clear the data in accumulator.
4. Move the content of accumulator to D and B register.
5. Increment HL register pair and move the content of memory to accumulator.
6. Rotate the obtain data in the form of RAL.
7. If carry occur increment B else increment D.
8. Decrement C, if C 0 go to step 5. Else increment HL pair.
9. Move the content of D to memory and increment HL pair and move the content B to
memory.
10. Stop.
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
START
[HL] [4200H]
[C] [HL]
[A] 00H
[B] [A]
[D] [A]
[HL [HL] + 1
[A] [HL]
Rotate the A left
through carry
Yes
Is CY=1
No
[C] [C]-1
Is
[C] = 0?
No
Yes
[HL] [HL]+1, [HL] D
[HL] [HL]+1, [HL] B
STOP
Department of Electrical and Electronics Engineering - VEC
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
ADDRE
SS
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
410A
410B
410C
410D
410E
410F
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
411A
OPCO
DE
LABEL
L3
L1
L2
LOOP
MNEM
ONICS
LXI
OPER
AND
H,4200
COMMENTS
MOV
XRA
MOV
MOV
INX H
MOV
RAL
JNC
C, M
A
D, A
B, A
H
A,M
L1
Move M to C
Exclusive OR reg A
Move A to D
Move A to B
Increment H
Move M to A
Rotate left through carry
Jump no carry
INR
JMP
D
L2
Increment D
Jump to L2
INR
DCR
JNZ
B
C
L3
Increment B
Decrement C
Jump non Zero
INX
MOV
INX H
MOV
HLT
H
M, D
H
M, B
Increment H
Move D to M
Increment H
Move B to M
Halt the program
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
Observation
a. Odd and even number
INPUT:
OUTPUT:
4200 = 04
4201= 01
4202 = 05
4203 = 03
4204 = 04
OUTPUT:
4200 = 04
4201= 01
4202 = F5
4203 = 03
4204 = 74
RESULT:
Thus the number of even and odd number, and positive and negative number has been
found from the given number of list.
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
Ex. No: 4
CODE CONVERSIONS
AIM:
To write an assembly language program to perform the conversions of ASCII to
hexadecimal number, hexadecimal to ASCII, hexadecimal to decimal number, binary to
hexadecimal number and hexadecimal to binary number.
a.ASCII TO HEXADECIMAL
ALGORITHM:
1.
2.
3.
4.
5.
6.
7.
8.
9.
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
FLOWCHART:
Start
Subtract 30 from A
Check
for
Carry?
YES
NO
Subtract 07 from A
Stop
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
PROGRAM:
ADDRE
SS
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
410A
410B
410C
410D
OPCO
DE
LABEL
MNEM
ONICS
LDA
OPER
AND
H,4200
COMMENTS
MOV
LXI
C,A
H,4201
LXI
D,4301
MOV
SUI
A,M
30
STAX
410E
DCR
410F
4110
4111
4112
JZ
LOOP
INX
4113
INX
4114
4115
4116
4117
JMP
LOOP 1
LOOP
HLT
LOOP 1
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
b. HEXADECIMAL TO ASCII
ALGORITHM:
1.
2.
3.
4.
5.
6.
7.
8.
9.
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
FLOWCHART:
Start
Add 30 to A
Check
for
Carry?
YES
NO
Store the decimal value
Stop
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
PROGRAM:
ADDRE
SS
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
410A
410B
410C
410D
OPCO
DE
LABEL
MNEM
ONICS
LDA
OPER
AND
H,4200
COMMENTS
MOV
LXI
C,A
H,4201
LXI
D,4301
MOV
ADI
A,M
30
STAX
410E
DCR
410F
4110
4111
4112
JZ
LOOP
INX
4113
INX
4114
4115
4116
4117
JMP
LOOP 1
LOOP
HLT
LOOP 1
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
c. HEXADECIMAL TO BINARY
ALGORITHM:
1. Start the program
2. Move the content of memory to accumulator
3. Move data 0B o register B
4. Increment the content of HL register pair
5. Rotate the accumulator right
6. Jump to the specified address if carry generated
7. Move 00 to memory
8. Jump to specified address if there is no zero
9. Move 01 to memory
10. Jump to specified address if there is no zero
11. End the program
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
FLOWCHART:
Start
Load address in HL pair
Initialize counter B to 08
Check for
Carry?
YES
NO
Move data from 00 to M
NO
If B=0?
YES
Stop
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
PROGRAM:
ADDRE
SS
4100
4101
4102
4103
4104
4105
4106
OPCO
DE
LABEL
MNEM
ONICS
LXI
OPERAND
H,4200
MOV
MVI
A,M
B, 08
Move content of M to A
Move 0B to register pair
INX
RRC
JC
L1
MVI
JMP
M, 00
L2
Move 00 to M
Decrement B register
L1
MVI
M, 01
Move 01 to M
L2
DCR
JNZ
B
L3
L3
4107
4108
4109
410A
410B
410C
410D
410E
410F
4110
4111
4112
4113
4114
4115
HLT
COMMENTS
Decrement B by 1
Jump to the specified
address if no zero
Stop the program
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
d. BINARY TO HEXADECIMAL
ALGORITHM:
1. Start the program
2. Load the address in HL pair
3. Move the content of memory to accumulator
4. Add the content of accumulator with previous content of accumulator
5. Move the content of B to accumulator
6. Add the content of accumulator with previous content of accumulator
7. Repeat step 6
8. Add B with accumulator content
9. Increment H by 1
10. Move content of M to A
11. End the program
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
FLOWCHART:
Start
Load address in HL pair
Stop
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
PROGRAM:
ADDRE
SS
4100
4101
4102
4103
4104
OPCO
DE
LABEL
MNEM
ONICS
LXI
OPERAND
COMMENTS
H,4150
MOV
ADD
M,A
A
4105
MOV
B, A
4106
ADD
4107
4108
4109
410A
410B
410C
ADD
INX
ADD
INX
MOV
HLT
B
H
M
H
M, A
Move content of A to M
Add A content with
previous content of A
Move the content from
A to B
Add A content with
previous content of A
Add B content with A
Increment H by 1
Add M content with A
Increment H by 1
Move content of A to M
Stop the program
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
e. HEXADECIMAL TO DECIMAL
ALGORITHM:
1. Start the program
2. Load the address in HL pair
3. Move the content from HL to A
4. Subtract 64 from A
5. Increment BC pair
6. Jump to address 4207
7. Subtract 0A from A
8. Increment HL pair
9. Rotate accumulator left
10. Increment HL pair
11. End the program
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
FLOWCHART:
Start
Load address in HL pair
Initialize D register
Clear accumulator
Move HL to C register
Add 01 with A
Adjust A to BCD
YES
Check
Carry?
NO
Increment D register
Increment C register
NO
Check
Carry?
YES
Store A in 4151 H
Move D to accumulator
Store A in 4150 H
Stop
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
PROGRAM:
ADDRE
SS
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
410A
410B
410C
410D
410E
410F
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
411A
411B
411D
411E
411F
4120
4121
4122
4123
4124
4125
OPCO
DE
MNEM
ONICS
LXI
OPER
AND
H, 4150
COMMENTS
LXI
B, 0000
MOV
SUI
A, M
64
JC
L1
INR
JMP
B
L4
Increment BC
Jump to specified address
L1
ADI
64
Add 64 to A
L3
SUI
0A
Subtract 0A from A
JC
L2
INR
JNC
C
L3
Increment HL
Stop if A has no carry
ADI
INX
MOV
MOV
MOV
RLC
RLC
RLC
RLC
ADD
0A
H
M, B
B, A
A, B
L4
L2
LABEL
Add 0A to A
Increment HL
Move B to M
Move A to B
Move B to A
Rotate accumulator
Rotate accumulator
Rotate accumulator
Rotate accumulator
Add B to A
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
4126
4127
4128
INX
MOV
HLT
H
M, A
Increment H by 1
Move content of A to M
Stop the program
OBSERVATION:
a. ASCII TO HEXADECIMAL
INPUT
MEMORY
DATA
LOCATION
4201
OUTPUT
MEMORY
DATA
LOCATION
4301
b. HEXADECIMAL TO ASCII
INPUT
MEMORY
DATA
LOCATION
4201
OUTPUT
MEMORY
DATA
LOCATION
4301
c. HEXADECIMAL TO BINARY
INPUT
MEMORY
DATA
LOCATION
4200
MEMORY
LOCATION
4200
4201
4202
4203
OUTPUT
DATA
MEMORY
DATA
LOCATION
4204
4205
4206
4207
d. BINARY TO HEXADECIMAL
INPUT
MEMORY
DATA
LOCATION
4150
4151
OUTPUT
MEMORY
DATA
LOCATION
4152
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
e. HEXADECIMAL TO DECIMAL
INPUT
MEMORY
DATA
LOCATION
4150
4151
OUTPUT
MEMORY
DATA
LOCATION
4152
RESULT:
Thus the assembly language programs for various code conversions are executed using
8085 microprocessor.
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
EX.No:5
AIM:
To write an assembly language program to convert an analog signal into a digital signal
and a digital signal into an analog signal using an ADC interfacing and DAC interfacing
respectively.
a. ADC INTERFACING WITH 8085
APPARATUS REQUIRED:
SL.NO
1
2
3
ITEM
Microprocessor kit
Power supply
ADC Interface board
SPECIFICATION
8085,Vi Microsystems
+5 V dc
Vi Microsystems
QUANTITY
1
1
1
PROBLEM STATEMENT:
To program starts from memory location 4100H. The program is executed for various
values of analog voltage which are set with the help of a potentiometer. The LED display is
verified with the digital value that is stored in the memory location 4150H.
THEORY:
An ADC usually has two additional control lines: the SOC input to tell the ADC when
to start the conversion and the EOC output to announce when the conversion is complete. The
following program initiates the conversion process, checks the EOC pin of ADC 0419 as to
whether the conversion is over and then inputs the data to the processor. It also instructs the
processor to store the converted digital data at RAM 4200H.
ALGORITHM:
1.
2.
3.
4.
5.
6.
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
PROGRAM:
ADDRESS
OPCO
DE
LABEL
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
410A
410B
410C
410D
410E
410F
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
411A
411B
411C
411D
411E
411F
4120
4121
LOOP
MNEMON ICS
MVI
OPERA
ND
A, 10
OUT
C8
MVI
A, 18
OUT
C8
MVI
A, 01
Make 01 to accumulator
OUT
D0
XRA
XRA
XRA
MVI
A, 00
OUT
D0
IN
D8
ANI
01
CPI
01
JNZ
LOOP
IN
C0
STA
4150
HLT
COMMENTS
Select channel 0 and to
make accumulator low
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
ADC- CIRCUIT:
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
OBSERVATION
ANALOG VOLTAGE
DIGITAL DATA
LED DISPLAY
ON HEX
CODE
LOCATION 4150
IN
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
ITEM
Microprocessor kit
Power supply
DAC Interface board
SPECIFICATION
8085,Vi Microsystems
+5 V dc
Vi Microsystems
QUANTITY
1
1
1
SOFTWARE EXAMPLES
The following examples illustrate how to control the DAC using 8085 and generate sine
wave, saw tooth wave by means of software.
(a) SQUARE WAVE GENERATION:
The basic idea behind the generation of waveforms is the continuous generation of
Analog output of DAC. With 00(HEX) as input to DAC2, the analog output is -5V.
Similarly, with FF (Hex) as input, the output is +5V. Outputting digital data 00 and FF at
regular intervals, to DAC2, results in a square wave of amplitude I5 Volts
ALGORITHM:
1.
2.
3.
4.
5.
PROGRAM:
ADDRESS
4100
4101
4102
4103
4104
4107
4109
410B
OPCO
DE
LABEL
MNEMON ICS
OPERAND
COMMENT
START
MVI
A, 00
Move 00 to A register
OUT
C8
CALL
MVI
OUT
CALL
DELAY
A, FF
C8
DELAY
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
410E
4112
4114
4116
4117
411A
411B
411E
DELAY
L1
L2
JMP START
MVI
MVI
DCR
JNZ
DCR
JNZ
RET
START
B, 05
C, FF
C
L2
B
L1
Execute the program and using a CRO, verify that the waveform at the DAC2 output is a
square-wave. Modify the frequency of the square-wave, by varying the time delay.
(b) SAW TOOTH GENERATION:
ALGORITHM:
1. Load the initial value (00) to Accumulator
2. Move the accumulator content to DAC.
3. Increment the accumulator content by 1.
4. Repeat steps 3 and 4.
Output digital data from 00 to FF constant steps of 01 to DAC1 repeat this sequence again and
again. As a result a saw tooth wave will be generated at DAC1 output.
PROGRAM:
ADDRESS
OPCO
DE
4100
4102
4104
4105
4108
LABEL
MNEMON ICS
START
L1
MVI
OUT
INR
JNZ
JMP
OPERAN
D
A, 00
C0
A
L1
START
COMMENT
Load 00 to accumulator
Load CO in output port
Increment A register
Jump to L1 if no zero
Go
to
START
unconditionally
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
7. Decrement the accumulator content by 1.
8. If accumulator content is zero go to step 2. Else go to step 2.
The following program will generate a triangular wave at DAC2 output.
PROGRAM:
ADDRESS
4100
4102
4103
4105
4106
4109
410B
410C
410E
410F
4112
OPCO
DE
LABEL
MNEMON ICS
START
L1
MVI
MOV
OUT
INR
JNZ
MVI
MOV
OUT
DCR
JNZ
JMP
L2
OPERA COMMENT
ND
L, 00
Move 00 to L register
A, L
Load L to a register
C8
Load c8 to output port
L
Increment L register
L1
Jump to L1 if no zero
L, FF
Load FF to L register
A, L
Move L to a register
C8
Load C8 to output port
L
Decrement L register
L2
Jump to L2 if no zero
START Go to START unconditionally
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
DAC - CIRCUIT:
WAEFORMS:
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
OBSERVATION:
WAVE FORMS
Square waveform
Saw tooth waveform
Triangular waveform
AMPLITUDE
TIME PERIOD
Result:
Thus the conversion of an analog signal into a digital signal and a digital signal into an
analog signal was done using interfacing of ADC and DAC respectively with 8085.
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
EX.No:6
AIM
To write an assembly language program to simulate the traffic light at an intersection
using a traffic light interface.
APPARATUS REQUIRED:
SL.NO
1
2
3
ITEM
Microprocessor kit
Power supply
Traffic light interface kit
SPECIFICATION
4185,Vi Microsystems
+5 V dc
Vi Microsystems
QUANTITY
1
1
1
ALGORITHM:
1. Initialize the ports.
2. Initialize the memory content, with some address to the data.
3. Read data for each sequence from the memory and display it through the ports.
4. After completing all the sequences, repeat from step2.
A SAMPLE SEQUENCE:
1. (a) Vehicles from south can go to straight or left.
(b) Vehicles from west can cross the road.
(c) Each pedestrian can cross the road.
(d) Vehicles from east no movement.
(e) Vehicles from north can go only straight.
2. All ambers are ON, indicating the change of sequence.
3. (a) Vehicles from east can go straight and left.
(b) Vehicles from south can go only left.
(c) North pedestrian can cross the road.
(d) Vehicles from north, no movement.
(e) Vehicles from west can go only straight.
4. All ambers are ON, indicating the change of sequence.
5. (a) Vehicles from north can go straight and left.
(b) Vehicles from east can go only left.
(c) West pedestrian can cross the road.
(d) Vehicles from west, no movement.
(e) Vehicles from south can go only straight.
6. All ambers are ON, indicating the change of sequence.
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
LED
BIT
LED
BIT
LED
PA0
PA1
PA2
PA3
PA4
PA5
PA6
PA7
SOUTH LEFT
SOUTH RIGHT
SOUTH AMBER
SOUTH RED
EAST LEFT
EAST RIGHT
EAST AMBER
EAST RED
PB0
PB1
PB2
PB3
PB4
PB5
PB6
PB7
NORTH LEFT
NORTH RIGHT
NORTH AMBER
NORTH RED
WEST LEFT
WEST RIGHT
WEST AMBER
WEST RED
PC0
PC1
PC2
PC3
PC4
PC5
PC6
PC7
WEST STRAIGHT
NORTH STRAIGHT
EAST STRAIGHT
SOUTH STRAIGHT
NORTH PD
WEST PD
SOUTH PD
EAST PD
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
PATH REPRESENTATION:
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
PROGRAM:
ADD OPCODE
RESS
4100 3E
4102
LABEL
D3
4104
REPEAT
MNEMON
ICS
MVI
OPERAN
D
A, 41
OUT
0F
LXI
H,DATA_
SQ
D,DATA_
E
OUT
4107
11
LXI
410A
410D
CD
EB
CALL
XCHG
410E
7E
MOV
A, M
410F
4111
4114
D3
CD
EB
OUT
CALL
XCHG
0D
DELAY1
4115
4116
4117
411A
13
23
CD
EB
INX
INX
CALL
XCHG
D
H
OUT
411B
7E
MOV
A, M
411C
411E
4121
D3
CD
EB
OUT
CALL
XCHG
0D
DELAY1
4122
4123
4124
4127
13
23
CD
EB
INX
INX
CALL
XCHG
D
H
OUT
4128
7E
MOV
A, M
4129
D3
OUT
0E
COMMENT
Move 41H immediately to
accumulator
Output
contents
of
accumulator to OF port
Load address 417B to HL
register
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
412B
412E
CD
EB
CALL
XCHG
DELAY1
412F
4130
4131
4134
13
23
CD
EB
INX
INX
CALL
XCHG
D
H
OUT
4135
7E
MOV
A, M
4136
4138
4139
D3
23
7E
OUT
INX
MOV
0E
H
A, M
413A
413C
413F
4142
D3
CD
C3
7E
OUT
CALL
JMP
MOV
0C
DELAY1
REPEAT
A, M
4143
4145
4146
D3
23
7E
OUT
INX
MOV
0E
H
A, M
4147
4149
414A
D3
23
7E
OUT
INX
MOV
0D
H
A, M
414B
414D
4150
4151
4152
D3
CD
C9
E5
21
OUT
CALL
RET
PUSH
LXI
0C
DELAY
H
H,001F
4155
01
LXI
B,FFFF
4158
4159
0B
78
DCX
MOV
B
A, B
415A
B1
ORA
415B
415E
415F
C2
2B
7D
JNZ
DCX
MOV
LOOP
H
A, L
OUT
DELAY
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
4160
B4
4161
4164
4165
4166
4167
C2
E1
C9
E5
21
416A
01
LXI
B,FFFF
416D
416E
0B
78
DCX
MOV
B
A, B
416F
B1
ORA
4170
4173
4174
C2
2B
7D
JNZ
DCX
MOV
LOOP2
H
A, L
4175
B4
ORA
4176
4179
417A
417B
C2
E1
C9
12 27 44 10
2B 92 10 9D
84 48 2E 84
48 4B 20 49
04
JNZ
POP
RET
L2
H
4187
ORA
JNZ
POP
RET
DELAY1 PUSH
LXI
H
L1
H
OR
content of H with
accumulator
Jump to L1 if no zero
Pop the register H
Return from subroutine
H
H,001F
DATA
SEQ DB
DATA_E
RESULT:
Thus an assembly language program to simulate the traffic light at an intersection using a
traffic light interfaces was written and implemented.
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
EX.No:7
AIM:
To write a program to initiate 8251 and to check the transmission and reception
of character.
APPARATUS REQUIRED:
1. 8085 Microprocessor kit
2. 8251 Interface board
3. DC regulated power supply
THEORY:
The 8251 is used as a peripheral device for serial communication and is
programmed by the CPU to operate using virtually any serial data transmission technique.
The USART accepts data characters from the CPU in parallel format and the converts them
in a continuous serial data stream of transmission. Simultaneously, it can receive serial data
streams and convert them into parallel data characters for the CPU. The CPU can read the
status of USART at any time. These include data transmissions errors and control signals.
Prior to starting data transmission or reception, the 8251 must be loaded with a
set of control words generated by the CPU. These control signals define the complete
functional definition of the 8251 and must immediately follow a RESET operation. Control
words should be written in to the control register of 8251. Words should be written in to the
control register of 8251.words should be written in to the control register of
8251.Thesecontrol words are split into two formats.
1. MODE INSTRUCTION WORD
2. COMMAND INSTRUCTION WORD.
1. MODE INSTRUCTION WORD
This format defines the BAUD rate, character length, parity and stop bits required to
work with asynchronous data communication. By selecting the appropriate BAUD
factor synchronous mode, the 8251 can be operated in synchronous mode.
Initializing 8251 using the Mode instructions to the following conditions.
8 bit data
No parity
Baud rate factor (16X)
1 stop bit
Gives a mode command word of 01001110=4E(X)
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
ALGORITHM
1. Initialize timer (8253) IC
2. Move the Mode command word (4EH) to A reg.
3. Output it port address C2
4. Move the command instruction word (37H) to A reg.
5. Output it to port address C2
6. Move the data to be transfer to A reg.
7. Output it to port address C0.
8. Reset the system
9. Get the data through input port address C0.
10. Store the value in memory
11. Reset the system
PROGRAM:
ADDRESS
OPC
ODE
LAB
EL
MNEM
ONICS
OPERA
ND
4100
4102
MVI
OUT
A, 36
CE
4104
4106
MVI
OUT
A, 0A
C8
4108
410A
MVI
OUT
A, 00
C8
410C
LXI
H, 4200
410F
4111
MVI
OUT
A, 4E
C2
4113
4115
MVI
OUT
A, 37
C2
4117
4119
MVI
OUT
A, 41
C0
411B
4200
RST1
IN
C0
4202
STA
4150
4205
RST1
COMMENT
Move 36 to A
Output contents of accumulator to
CE port
Move 0A to accumulator
Output contents of accumulator to
C8 port
Move 00 to accumulator
Output contents of accumulator to
C8 port
Store 4200 address in HL register
pair
Move 4E to accumulator
Output contents of accumulator to
C2 port
Move 37 to accumulator
Output contents of accumulator to
C2 port
Move 41 to accumulator
Output contents of accumulator to
C0 port
Input the contents from port C0 to
accumulator
Store the output from accumulator
to 4150
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
SYNCHRONOUS MODE:
S2
S1
EP
PEN
L2
L1
B2
B1
0
5
BIT
6
BIT
7
BIT
8
BIT
PARITY ENABLE
1-Enable
0-Disable
EVEN PARITY GENERATION
0-Odd
1-Even
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
ASYNCHRONOUS MODE:
S2
S1
EP
PEN
L2
L1
B2
B1
0
Synch
mode
(1 X)
(16 X) (64 X)
5
BIT
6
BIT
7
BIT
8
BIT
PARITY ENABLE
1-Enable
0-Disable
EVEN PARITY GENERATION
0-Odd
1-Even
Invalid
61BIT
1.5BIT
2 BIT
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
OBSERVATION:
MEMORY LOCATION
INPUT DATA
OUTPUT DATA
RESULT:
Thus the program to initiate 8251 was written and the transmission and reception of
character was checked by interfacing 8251 with 8085.
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
Ex No. 8
AIM:
To interface 8279 Programmable Keyboard Display Controller to 8085 Microprocessor.
APPARATUS REQUIRED:
1. 8085 Microprocessor toolkit.
2. 8279 Interface board
3. Regulated D.C. power supply.
PROGRAM:
ADDRESS
LABEL
MNEMON ICS
OPERAN
D
COMMENT
START
LXI
H, 4130
4103
MVI
D, 0F
4105
MVI
A, 10
Move 10 to A
4107
OUT
C2
4109
MVI
A, CC
Move CC to A
410B
OUT
C2
410D
MVI
A, 90
410F
OUT
C2
MOV
A, M
4112
OUT
C0
4114
CALL
DELAY
4117
INX
Increment H register
4118
DCR
Decrement D register
4119
JNZ
LOOP
4100
4111
OPCO
DE
LOOP
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
411C
JMP START
START
411F
DELAY
MVI
B, A0
Move a to B register
4121
LOOP1
MVI
C, FF
Move FF to C register
4123
LOOP2
DCR
Decrement C register
4124
JNZ
LOOP 1
4127
DCR
Decrement B register
4128
JNZ
LOOP 2
412B
RET
FF
FF
FF
FF
FF
FF
FF
FF
98
68
7C
C8
1C
29
FF
FF
SEGMENT DEFINITION:
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
DATA BUS
D7
D6
D5 D4
D3 D2 D1 D0
SEGMETS
dp
OBSERVATION:
LETTER 7
SEGMENT
DATA BUS
HEXADECIMAL
D7 D6 D5 D4
D3
D2 D1 D0
RESULT:
Thus 8279 controller was interfaced with 8085 and program for rolling display was executed
successfully.
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
MICROCONTROLLER
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
Ex.No: 9
AIM:
To write an assembly language program to add, subtract, multiply and divide the given
data stored at two consecutive locations using 8051 microcontroller.
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
Start
LOADTHEADDRESSINDPTR
MOVETHE1STDATATOAREGAND
SAVEITINR1REG
INCREMENTDPTRANDMOVETHE2NDDATATOAREG
CLEARR0REGISTER
ADDAREGWITHR1REGTOGETSUM
If
CY=1
Yes
INCREMENTR0REG
No
INCREMENTDPTRANDSAVEAREG
CONTENTINMEMORY
INCREMENTDPTR
MOVER0TOAREGANDTHENSAVEAREG
CONTENTINMEMORY
Stop
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
Label
Program
AHEAD:
HERE:
Comments
MOV DPTR,#4500
MOVX A,@DPTR
MOV R1,A
INC DPTR
MOVX A,@DPTR
MOV R0,#00
ADD A,R1
JNC AHEAD
INC R0
INC DPTR
Increment DPTR
MOVX A,@DPTR
INC DPTR
Increment DPTR
MOV A,R0
MOVX A,@DPTR
SJMP HERE
Observation:
Input:
4500:
4501:
[Addend]
[Augend]
Output:
4502:
4503:
[Sum]
[Carry]
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
Start
LOADTHEADDRESSINDPTR
MOVETHEMINUENDTOAREGAND
SAVEITINR1REG
INCREMENTDPTRANDMOVE
THESUBTRAHENDTOAREG
EXCHANGER1WITHAREG
CLEARR0REGISTERANDCARRYFLAG
SUBTRACTR1FROMAREG
If
Cy=1
Yes
COMPLEMENTAAND
THENINCREMENT
INCREMENTR0REG
No
INCREMENTDPTRANDSAVEAREG
CONTENT(DIFFERENCE)INMEMORY
INCREMENTDPTR
MOVER0TOAREGANDTHENSAVEAREG
CONTENT(SIGN)INMEMORY
Stop
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
Label
Program
Comments
MOV DPTR,#4500
MOVX A,@DPTR
MOV R1,A
INC DPTR
MOVX A,@DPTR
XCH A,R1
MOV R0,#00
CLR C
Clear carry
SUBB A,R1
Subtract R1 from A
JNC AHEAD
CPL A
INC A
AHEAD:
HERE:
INC R0
INC DPTR
Increment DPTR
MOVX A,@DPTR
INC DPTR
Increment DPTR
MOV A,R0
MOVX A,@DPTR
SJMP HERE
Observation:
Input:
4500:
4501:
Output:
4502:
4503:
[Minuend]
[Subtrahend]
[Difference]
[Sign Bit]
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
Start
LOADTHEADDRESSINDPTR
MOVETHE1STDATATOAREGAND
SAVEITINBREG
INCREMENTDPTRANDMOVE
THE2NDDATATOAREG
MULTIPLYAANDB
INCREMENTDPTR
SAVEAREGCONTENT(LOWERBYTEOF
PRODUCT)INMEMORY
INCREMENTDPTR
MOVEB(HIGHERBYTEOFPRODUCT)TOA
REGANDTHENSAVEAREGCONTENTIN
MEMORY
Stop
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
HERE:
Comments
MOV DPTR,#4500
MOVX A,@DPTR
MOV B,A
INC DPTR
MOVX A,@DPTR
MUL AB
INC DPTR
Increment DPTR
MOVX A,@DPTR
INC DPTR
Increment DPTR
MOV A,B
MOVX A,@DPTR
SJMP HERE
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
Observation
Input:
4500:
4501:
[1st data]
[2nd data]
Output:
4502:
4503:
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
Start
LOADTHEADDRESSINDPTR
LOADTHEDIVIDENDTOAREGAND
SAVEITINR0REG
INCREMENTDPTR
LOADTHEDIVISORINAREGANDSAVEITINBREG
MOVETHEDIVIDENDFROMR0TOAREG
DIVIDEAREGCONTENTBYBREG
INCREMENTDPTR
SAVEAREGCONTENT(QUOTIENT)IN
MEMORY
INCREMENTDPTR
MOVEB(REMAINDER)TOAREGANDTHEN
SAVEAREGCONTENTINMEMORY
Stop
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
Label
HERE:
Program
Comments
MOV DPTR,#4500
MOVX A,@DPTR
MOV R0,A
INC DPTR
MOVX A,@DPTR
MOV B,A
MOV A,R0
DIV AB
INC DPTR
Increment DPTR
MOVX A,@DPTR
INC DPTR
Increment DPTR
MOV A,B
MOVX A,@DPTR
SJMP HERE
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
Observation:
Input:
4500:
4501:
[Dividend]
[Divisor]
Output:
4502:
4503:
[Quotient]
[Remainder]
Result:
Thus the addition, subtraction, multiplication and division of two numbers were
performed using the 8051 microcontroller.
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
Ex N0. 10a
AIM:
To find the sum of elements in an array.
ALGORITHM:
1.
Load the array in the consecutive memory location and initialize the
memory pointer with the starting address.
2.
3.
4.
Load the other register with the value of the memory pointer.
5.
6.
7.
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
START
[DPTR] [4200H],
Clear B, R1 and CY
[A] [DPTR]
[R0] [A]
[A] [DPTR+1]
[A] [A] +[B]
[A] [B]
No
Is Cy=1
Yes
[R1] [R1]+1
[R0] [R0]-1
IS
[R0] = 0?
No
Yes
[4500] [A] [B]
[4501] [A] [R1]
STOP
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
PROGRAM:
Label
Program
Comments
MOVX A, @DPTR
MOV R0, A
Move contents of A to R0
MOV B, #00
MOV R1, B
AGAIN
CLR C
INC DPTR
MOVX A, @DPTR
ADD A, B
MOV B, A
NC
JNC NC
If no carry jump to NC
INC R1
Else increment R1
DJNZ R0,AGAIN
MOV A, B
MOVX @DPTR, A
INC DPTR
MOV A, R1
MOVX @DPTR, A
HERE
SJMP HERE
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
OBSERVATION:
INPUT
4200
OUTPUT
4500
4201
4202
4501
4203
RESULT:
The sum of elements in an array is calculated.
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
Exp. No 10(b)
AIM:
To Check whether given number is Odd or Even using Call Option.
ALGORITHM:
1. Start
2. Move the data to DPTR
3. Move the data to accumulator
4. Call check function whether given number is odd or even
5. Increment DPTR
6. Resultant value stored in DPTR-4201
7. Halt
Check Function
8. Rotate right through carry
9. If carry copy 00 to B reg (odd number)
10. Else copy EE to B reg (even number)
11. return
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
START
[DPTR] [4200H]
[A] [DPTR]
Check Even &
odd
[DPTR] [DPTR] +1
[A] [B]
[DPTR] [A]
STOP
No
[B] EEH, for even
Return
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
PROGRAM:
Label
Program
Comments
MOVX A, @DPTR
Copy value to A
CALL CHECK_EV_OD
INC DPTR
MOV A,B
HERE
MOVX @DPTR, A
SJMP HERE
CHECK_EV_OD RRC A
L1
JC L1
MOV B,#0EEH
MOV B,#00H
RET
OBSERVATION:
INPUT
4200
OUTPUT
4201
RESULT:
Thus the given number is either even or odd has been found using 8051 microcontroller.
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
ITEM
Microcontroller kit
Power supply
ADC Interface board
SPECIFICATION
8051,Vi Microsystems
+5 V dc
Vi Microsystems
QUANTITY
1
1
1
PROBLEM STATEMENT:
To program starts from memory location 4100H. The program is executed for various
values of analog voltage which are set with the help of a potentiometer. The LED display is
verified with the digital value that is stored in the memory location 4150H.
THEORY:
An ADC usually has two additional control lines: the SOC input to tell the ADC when
to start the conversion and the EOC output to announce when the conversion is complete. The
following program initiates the conversion process, checks the EOC pin of ADC 0419 as to
whether the conversion is over and then inputs the data to the processor. It also instructs the
processor to store the converted digital data at RAM 4200H.
ALGORITHM:
1.
2.
3.
4.
5.
6.
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
PROGRAM:
Label
Program
Comments
MOVX @DPTR, A
MOV A,#18
MOVX @DPTR, A
MOV DPTR, #FFD0
MOV A,#01
MOVX @DPTR, A
MOV A,#00
MOVX @DPTR, A
MOV DPTR, #FFD8
WAIT
MOVX A,@DPTR
JNB E0,WAIT
MOV DPTR,#FFC0
MOVX A,@DPTR
MOV DPTR,#4150
MOVX @DPTR, A
HERE
SJMP HERE
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
ADC- CIRCUIT:
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
J5: Channel selection
OBSERVATION
ANALOG VOLTAGE
DIGITAL DATA
LED DISPLAY
ON HEX
CODE
LOCATION 4150
IN
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
ITEM
Microprocessor kit
Power supply
DAC Interface board
SPECIFICATION
4185,Vi Microsystems
+5 V dc
Vi Microsystems
QUANTITY
1
1
1
THEORY:
SOFTWARE EXAMPLES
After going through the software examples you can learn how to control the
DAC using 8051 and generate sine wave, saw tooth wave etc by means of software.
ALGORITHM:
(a) SQUARE WAVE GENERATION:
1. Load the initial value (00) to Accumulator and move it to DAC.
2. Call the delay program
3. Load the final value (FF) to accumulator and move it to DAC.
4. Call the delay program.
5. Repeat steps 2 to 5.
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
DAC - CIRCUIT:
WAVEFORMS:
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
OBSERVATION:
WAVE FORMS
Square waveform
Saw tooth waveform
Triangular waveform
AMPLITUDE
TIME PERIOD
PROGRAM:
The basic idea behind the generation of waveforms is the continuous generation of
Analog output of DAC.
With 00(HEX) as input to DAC2, the analog output is -5V. Similarly, with FF (Hex) as
input, the output is +5V. Outputting digital data 00 and FF at regular intervals, to DAC2,
results in a square wave of amplitude I5 Volts.
ADDRESS
LABEL
MNEMON ICS
OPCODE
OPERAND COMMENT
MOV DPTR,#FFC8
START MOV A,#00
MOVX @DPTR,A
LCALL DELAY
MOV A,# FF
MOVX @DPTR,A
LCALL DELAY
LJMP START
DELAY MOV R1,#05
LOO[P
MOV R2,#FF
DJNZ R2,HERE
DJNZ R1,LOOP
RET
SJMP START
Execute the program and using a CRO, verify that the waveform at the DAC2 output is
a square-wave. Modify the frequency of the square-wave, by varying the time delay.
(b) SAW TOOTH GENERATION
1. Load the initial value (00) to Accumulator
2. Move the accumulator content to DAC.
3. Increment the accumulator content by 1.
4. Repeat steps 3 and 4.
Output digital data from 00 to FF constant steps of 01 to DAC1 repeat this sequence again and
again. As a result a saw tooth wave will be generated at DAC1 output.
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
PROGRAM:
ADDRESS
LABEL
LOOP
MNEMON ICS
MOV DPTR,#FFC0
MOV A,#00
MOVX @DPTR,A
INC A
SJMP LOOP
OPCODE OPERAND
COMMENT
LABEL
START
LOOP1
LOOP2
MNEMON ICS
MOV DPTR,#FFC8
MOV A,#00
MOVX @DPTR,A
INC A
JNZ LOOP1
MOV A,#FF
MOVX @DPTR,A
DEC A
JNZ LOOP2
LJMP START
OPCODE OPERAND
COMMENT
OBSERVATION:
WAVE FORMS
Square waveform
Saw tooth waveform
Triangular waveform
AMPLITUDE
TIME PERIOD
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
Result:
Thus the square, triangular and saw tooth wave form were generated by interfacing
DAC with 8051 trainer kit.
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
Ex.No:15
AIM:
To interface 8253 Interface board to 8085 microprocessor to demonstrate the generation of
square wave.
APPARATUS REQUIRED:
1. 8085 microprocessor kit
2. 8253 Interface board
3. DC regulated power supply
4. CRO.
.
PROGRAM:
Address
4100
4102
4104
4106
4108
410A
410C
Opcodes
3E 36
D3 CE
3E 0A
D3 C8
3E 00
D3 C8
76
Label
Mnemonic Operands
START: MVI
A, 36
OUT
CE
MVI
A, 0A
OUT
C8
MVI
A, 00
OUT
C8
HLT
Comments
Channel 0 in mode 3
Send Mode Control word
LSB of count
Write count to register
MSB of count
Write count to register
Set the jumper, so that the clock 0 of 8253 is given a square wave of frequency 1.5
MHz. This program divides this PCLK by 10 and thus the output at channel 0 is 150 KHz.
Vary the frequency by varying the count. Here the maximum count is FFFF H. So, the
square wave will remain high for 7FFF H counts and remain low for 7FFF H counts. Thus
with the input clock frequency of 1.5 MHz, which corresponds to a period of 0.067
microseconds, the resulting square wave has an ON time of 0.02184 microseconds and an OFF
time of 0.02184 microseconds.
To increase the time period of square wave, set the jumpers such that CLK2 of 8253 is
connected to OUT 0. Using the above-mentioned program, output a square wave of frequency
150 KHz at channel 0. Now this is the clock to channel 2.
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
CONTROL WORD:
SC1
SC2
RW1 RW0
M2
M1
M0
BCD
SC-SELECT COUNTER:
SC1
SC0
SELECT COUNTER
Select counter 0
Select counter 1
Select counter 2
M-MODE:
M2
0
0
X
X
1
1
M1
0
0
1
1
0
0
M0
0
1
0
1
0
1
MODE
Mode 0
Mode 1
Mode 2
Mode 3
Mode 4
Mode 5
READ/WRITE:
RW1
RW0
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
BCD:
0
Result:
Thus the 8253 has been interfaced to 8085 p and with different modes of 8253 have
been studied.
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
Ex.No:15
AIM:
To interface a stepper motor with 8051 microcontroller and operate it.
THEORY:
A motor in which the rotor is able to assume only discrete stationary angular position is
a stepper motor. The rotary motion occurs in a step-wise manner from one equilibrium position
to the next. Stepper Motors are used very wisely in position control systems like printers, disk
drives, process control machine tools, etc.
The basic two-phase stepper motor consists of two pairs of stator poles. Each of the
four poles has its own winding. The excitation of any one winding generates a North Pole. A
South Pole gets induced at the diametrically opposite side. The rotor magnetic system has two
end faces. It is a permanent magnet with one face as South Pole and the other as North Pole.
The Stepper Motor windings A1, A2, B1, B2 are cyclically excited with a DC current
to run the motor in clockwise direction. By reversing the phase sequence as A1, B2, A2, B1,
anticlockwise stepping can be obtained.
2-PHASE SWITCHING SCHEME:
In this scheme, any two adjacent stator windings are energized. The switching scheme
is shown in the table given below. This scheme produces more torque.
ANTICLOCKWISE
STEP A1
A2
B1
1
2
3
4
1
0
0
1
0
1
1
0
0
0
1
1
B2
DATA
1
1
0
0
9h
5h
6h
Ah
CLOCKWISE
STEP A1 A2
1
2
3
4
1
0
0
1
0
1
1
0
B1
B2
DATA
1
1
0
0
0
0
1
1
Ah
6h
5h
9h
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
BLOCK DIAGRAM:
8051
MICROCONTROLLER
8255
DRIVER CIRCUIT
STEPPER MOTOR
REPRESENTATION:
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
PROGRAM :
Address OPCODES
Label
MNEM
ONICS
ORG
4100
START MOV
4103
4105
LOOP:
OPERAND
4100h
DPTR, #TABLE
MOV
MOVX
R0, #04
A, @DPTR
4106
4108
410A
PUSH
PUSH
MOV
DPH
DPL
DPTR, #0FFC0h
410D
MOVX
@DPTR, A
410E
4110
MOV
MOV
R4, #0FFh
R5, #0FFh
DJNZ
R5, DELAY1
4114
4116
4118
411A
DJNZ
POP
POP
INC
R4, DELAY
DPL
DPH
DPTR
411B
DJNZ
R0, LOOP
411D
SJMP
START
4112
411F
DELA
Y:
DELA
Y1:
TABLE DB
:
Comments
09 05 06 0Ah
www.rejinpaul.com
EE6612 Microprocessors and Microcontrollers Laboratory
PROCEDURE:
1. Enter the above program starting from location 4100.and execute the same.
2. The stepper motor rotates.
3. Varying the count at R4 and R5 can vary the speed.
4. Entering the data in the look-up TABLE in the reverse order can vary direction of
rotation.
RESULT:
Thus a stepper motor was interfaced with 8051 and run in forward and reverse
directions at various speeds.