66
Department of Electronics and Microprocessor & Interfacing MICROPRO III B. MARRI ED MARRI LAXMAN REDD DU d communication MLRITM g Lab OCESSORS AND INTERFAC LAB MANUAL .TECH I Semester-CSE (R09) Prepared by M.VISHWANATH Assistant professor ECE Dept. DUCATIONAL SOCIETY’S GROUP OF INSTITUTIONS DY INSTITUTE OF TECHNOLOGY & MAN UNDIGAL, HYDERABAD-500043 M, DUNDIGAL Page | 1 CING NAGEMENT

MICROPROCESSORS AND INTERFACING LAB …mlritm.ac.in/sites/default/files/CSE MPI LAB MANUAL.pdfOn the second pass through the source program the assembler ... On IBM PC – type Computers

Embed Size (px)

Citation preview

Department of Electronics and communication

Microprocessor & Interfacing Lab

MICROPROCESSORS AND

III B.TECH I Semester

MARRI EDUCATIONAL SOCIETY’S GROUP OF INSTITUTIONS

MARRI LAXMAN REDDY

DUNDIGAL, HYDERABAD

Department of Electronics and communication MLRITM, DUNDIGAL

Microprocessor & Interfacing Lab

MICROPROCESSORS AND INTERFACING

LAB MANUAL

III B.TECH I Semester-CSE (R09)

Prepared by

M.VISHWANATH

Assistant professor

ECE Dept.

MARRI EDUCATIONAL SOCIETY’S GROUP OF INSTITUTIONS

MARRI LAXMAN REDDY INSTITUTE OF TECHNOLOGY & MANAGEMENT

DUNDIGAL, HYDERABAD-500043

MLRITM, DUNDIGAL

Page | 1

INTERFACING

INSTITUTE OF TECHNOLOGY & MANAGEMENT

Department of Electronics and communication

Microprocessor & Interfacing Lab

MARRI EDUCATIONAL SOCIETY’S GROUP OF INSTITUTIONS

MARRI LAXMAN REDDY (Approved by AICTE, New Delhi & Affiliated JNTU, Hyderabad)

Dundigal,

DEPARTMENT OF ELECTRONICS & COMMUNICATION ENGINEERING

III B.Tech. CSE- I SEM

(55608)MICROPROCESSOR INTERFACING LABList of Experiments:

Minimum of 12 experiments are to be conducted.

1. Write and execute an assembly language program (alp) to 8086 processor to add, subtract and multiply two 16 bit unsigned numbers. Store the result in extra segment.

2. Write and execute an assembly language program (alp) tbit unsigned number by a 16 bit unsigned number. Store the result in stack segment.

3. Write and execute an assembly language program (alp) to 8086 processor to sort the given array of 32 bit numbers in ascending and descending

4. Write and execute an assembly language program (alp) to 8086 processor to pick the median from the given array of numbers.

5. Write and execute an assembly language program (alp) to 8086 processor to find the length of a given string which terminates

6. Write and execute an assembly language program (alp) to 8086 processor to reverse the given string and verify whether it is a palindrome.

7. Write and execute an assembly language program (alp) to 8086 processor to verify the password.

8. Write and execute an assembly language program (alp) to 8086 processor to insert or delete a character /number from the given string.

9. Write and execute an assembly language program (alp) to 8086 processor to call a delay subroutine and display the chara

10. Interface a keypad to 8086 microprocessor and display the key number pressed on the 7segment display which is also interfaced to 8086.

11. Write an interrupt service routine to 8086 whenever there is an interrupt request pin, which display “hello” on a LCD.

12. Interface an 8086 microprocessor trainer kit to pc and establish a communication between them through RS 232.

13. Interface DMA controller to 8086 and transfer bulk data from memory to I/O device.14. Interface a stepper motor to 8086 and o

choosing variable step-size.15. Interface an 8 bit ADC to 8086 and generate digital output and store it in memory for the

given square/ramp/triangle waveforms inputs.16. Interface an ADC to 8086 and generate step, ra

different periods.

Department of Electronics and communication MLRITM, DUNDIGAL

Microprocessor & Interfacing Lab

MARRI EDUCATIONAL SOCIETY’S GROUP OF INSTITUTIONS

MARRI LAXMAN REDDY INSTITUTE OF TECHNOLOGY & MANAGEMENT(Approved by AICTE, New Delhi & Affiliated JNTU, Hyderabad)

Dundigal, Quthbullapur (M), Hyderabad – 43

DEPARTMENT OF ELECTRONICS & COMMUNICATION ENGINEERING

L T/P/D 0

(55608)MICROPROCESSOR INTERFACING LAB

12 experiments are to be conducted.

Write and execute an assembly language program (alp) to 8086 processor to add, subtract and multiply two 16 bit unsigned numbers. Store the result in extra segment.Write and execute an assembly language program (alp) to 8086 processor to divide a 32 bit unsigned number by a 16 bit unsigned number. Store the result in stack segment.Write and execute an assembly language program (alp) to 8086 processor to sort the given array of 32 bit numbers in ascending and descending order.Write and execute an assembly language program (alp) to 8086 processor to pick the

from the given array of numbers.Write and execute an assembly language program (alp) to 8086 processor to find the length of a given string which terminates with a special character.Write and execute an assembly language program (alp) to 8086 processor to reverse the given string and verify whether it is a palindrome.Write and execute an assembly language program (alp) to 8086 processor to verify the

Write and execute an assembly language program (alp) to 8086 processor to insert or delete a character /number from the given string.Write and execute an assembly language program (alp) to 8086 processor to call a delay subroutine and display the character on the LED display.Interface a keypad to 8086 microprocessor and display the key number pressed on the 7segment display which is also interfaced to 8086.Write an interrupt service routine to 8086 whenever there is an interrupt request pin,

splay “hello” on a LCD.Interface an 8086 microprocessor trainer kit to pc and establish a communication between

Interface DMA controller to 8086 and transfer bulk data from memory to I/O device.Interface a stepper motor to 8086 and operate it in clockwise and anti-clock wise by

size.Interface an 8 bit ADC to 8086 and generate digital output and store it in memory for the given square/ramp/triangle waveforms inputs.Interface an ADC to 8086 and generate step, ramp, triangle and square waveforms with

MLRITM, DUNDIGAL

Page | 2

INSTITUTE OF TECHNOLOGY & MANAGEMENT

DEPARTMENT OF ELECTRONICS & COMMUNICATION ENGINEERING

L T/P/D C0 -/3/- 2

Write and execute an assembly language program (alp) to 8086 processor to add, subtract and multiply two 16 bit unsigned numbers. Store the result in extra segment.

o 8086 processor to divide a 32 bit unsigned number by a 16 bit unsigned number. Store the result in stack segment.Write and execute an assembly language program (alp) to 8086 processor to sort the

Write and execute an assembly language program (alp) to 8086 processor to pick the

Write and execute an assembly language program (alp) to 8086 processor to find the

Write and execute an assembly language program (alp) to 8086 processor to reverse the

Write and execute an assembly language program (alp) to 8086 processor to verify the

Write and execute an assembly language program (alp) to 8086 processor to insert or

Write and execute an assembly language program (alp) to 8086 processor to call a delay

Interface a keypad to 8086 microprocessor and display the key number pressed on the 7-

Write an interrupt service routine to 8086 whenever there is an interrupt request pin,

Interface an 8086 microprocessor trainer kit to pc and establish a communication between

Interface DMA controller to 8086 and transfer bulk data from memory to I/O device.clock wise by

Interface an 8 bit ADC to 8086 and generate digital output and store it in memory for the

mp, triangle and square waveforms with

Department of Electronics and communication MLRITM, DUNDIGAL

Microprocessor & Interfacing Lab Page | 3

Introduction to MASM /TASM

MASM: (Microsoft assembler)

To Create Source File: An editor is a program which allows you to create a file containing the

assembly language statements for your program. This file is called a source file.

Command to create a source file

C:\MASM\BIN> Edit filename. asm

The next step is to process the source file with an assembler. When you run the assembler, it

reads the source file of your program. On the first pass through the source program, the

assembler determines the displacement of named data items, the offset labels, etc. and puts this

information in a symbol table. On the second pass through the source program the assembler

produces the binary code for each instruction and inserts the offsets, etc. that it calculated during

first pass.

C:\MASM\BIN > Masm filename. asm X, Z

With this command assembler generates three files.

1. The first file (X) called the object file, is given the extension .OBJ

The object file contains the binary codes for the instructions and information about the addresses

of the instructions.

2. The third file (Z) generated by this assembler is called the cross-reference file and is given the

extension .CRF. The cross-reference file lists all labels and pertinent information required for

cross – referencing.

NOTE: The Assembler only finds syntax errors: It will not tell you whether program does what

it is supposed to do. To determine whether your program works, you have to run the program

and test it. Next step is to process the object file with linker.

Department of Electronics and communication MLRITM, DUNDIGAL

Microprocessor & Interfacing Lab Page | 4

C:\MASM\BIN>LINK filename. Obj

Run File [Filename1.exe] : “filename1.exe”

List file [nul.map]: NUL

Libraries [.lib]: library name

Definitions File [nul.def]:

Creation of Library: Refer Modular Programming Section

A Linker is a program used to join several object files into one layer object file.

NOTE: On IBM PC – type Computers, You must run the LINK program on your .OBJ file even

if it contains only one assembly module.

The linker produces a link file with the .EXE extension (an execution file)

Next Run C:\MASM\BIN> filename

Department of Electronics and communication MLRITM, DUNDIGAL

Microprocessor & Interfacing Lab Page | 5

EXECUTION PROCEDURE FOR 8086 (for registers)

i) Writing a alp program into processor:

Switch On Power Supply

Press A 2times

SG 0 press enter

DA starting address

Press enter

N

Then display shows @ here you have to write 1st mnemonic

Press enter

N (display displays address opcode mnemonic)

N

Then display shows @ here you have to write 2nd mnemonic

Press enter

N

N

-

-

Then display shows @ up to last mnemonic

Press enter

N

N

! Press enter

EX press enter

ii) Execution of program (for registers):

G enter starting address

Press enter

iii) Verify the result (for registers): press R

Press E.

Department of Electronics and communication MLRITM, DUNDIGAL

Microprocessor & Interfacing Lab Page | 6

EXECUTION PROCEDURE FOR 8086 (for memory locations)

i) Writing a alp program into processor:

Switch On Power Supply

Press A

A

SG 0

Press enter

DA starting address

Press enter

N

Then display shows @ here you have to write 1st mnemonic

Press enter

N(display displays address opcode mnemonic)

N

Then display shows @ here you have to write 2nd mnemonic

Press enter

N

N

-

-

-

Then display shows @ up to last mnemonic

Press enter

N

N

! Press enter

EX press enter

E (exam byte)

Here you have to type SI address, give 1st data, 2nd data, -----, nth data,

Press enter

ii) Execution of program (for memory locations):

G enter starting address

Press enter

Department of Electronics and communication MLRITM, DUNDIGAL

Microprocessor & Interfacing Lab Page | 7

iii) Verify the result (for memory locations):

E

Then give DI address press, then display shows the

result of 1st 8 bit data

For 2nd 8 bit data again press, -------, nth data

Department of Electronics and communication MLRITM, DUNDIGAL

Microprocessor & Interfacing Lab Page | 8

Exp No.1: Programs for 16 bit arithmetic operations for 8086

1) 16 bit addition:

AIM: - To write an assembly language program for Addition of two 16-bit numbers.

APPARATUS: 1. 8086 microprocessor kit/MASM ----1

2. RPS (+5V) ----1

PROGRAM:

By using MASM:

Assume cs: code

Code segment

Start: MOV AX, 4343H

MOV BX, 1111H

ADD AX, BX

INT 3

Code ends

End start

By using 8086 kit:

MEMORY LOCATION OP-CODE LABEL MNEMONIC4000 MOV AX,4343

MOV BX,1111

ADD AX,BX

INT 3

OUTPUT:

Input output

Register Data Register Data

AX 4343 AX 5454

BX 1111

Department of Electronics and communication MLRITM, DUNDIGAL

Microprocessor & Interfacing Lab Page | 9

2) 16 bit subtraction:

AIM: - To write an assembly language program for subtraction of two 16-bit numbers.

APPARATUS: 1. 8086 microprocessor kit/MASM ----1

2. RPS (+5V) ----1

PROGRAM:

By using MASM:

Assume cs: code

Code segment

Start: MOV AX, 4343H

MOV BX, 1111H

SUB AX, BX

INT 3

Code ends

End start

By using 8086 kit:

MEMORY LOCATION OP-CODE LABEL INSTRUCTION4000 MOV AX,4343

MOV BX,1111

SUB AX,BX

INT 3

OUTPUT:

Input output

Register Data Register Data

AX 4343 AX 3232

BX 1111

Department of Electronics and communication MLRITM, DUNDIGAL

Microprocessor & Interfacing Lab Page | 10

3) 16 bit multiplication:

AIM: - To write an assembly language program for multiplication of two 16-bit numbers.

APPARATUS: 1. 8086 microprocessor kit/MASM ----1

2. RPS (+5V) ----1

PROGRAM:

By using MASM:

Assume cs: code

Code segment

Start: MOV AX, 0010H

MOV BX, 0002H

MUL BX

INT 3

Code ends

End start

By using 8086 kit:

MEMORY LOCATION OP-CODE LABEL MNEMONIC4000 MOV AX,0010

MOV BX,0002

MUL BX

INT 3

OUTPUT:

Input Output

Register Data Register Data

AX 0010 AX 0020

BX 0002 DX 0000

Department of Electronics and communication MLRITM, DUNDIGAL

Microprocessor & Interfacing Lab Page | 11

4) 16 bit division:

AIM: - To write an assembly language program for multiplication of two 16-bit numbers.

APPARATUS: 1. 8086 microprocessor kit/MASM ----1

2. RPS (+5V) ----1

PROGRAM:

By using MASM:

Assume cs: code

Code segment

Start: MOV AX, 0020H

MOV BX, 0002H

MUL BX

INT 3

Code ends

End start

By using 8086 kit:

MEMORY LOCATION OP-CODE LABEL MNEMONIC4000 MOV AX,0020

MOV BX,0002

MUL BX

INT 3

OUTPUT:

Input output

Register Data Register Data

AX 0020 AX 0010

BX 0002 DX 0000

RESULT: 16 bit arithmetical operations are performed by using different addressing modes.

Department of Electronics and communication MLRITM, DUNDIGAL

Microprocessor & Interfacing Lab Page | 12

Viva:

1) How many bit 8086 microprocessor is?

2) What is the size of data bus of 8086?

3) What is the size of address bus of 8086?

4) What is the max memory addressing capacity of 8086?

5) Which are the basic parts of 8086?

EXERCISE:

1. Write an alp program for addition and subtraction of two 8 bit numbers?

1) 78

2) 34

2. Write an alp program for addition and subtraction of two 16bit numbers?

1) 0012

2) 0006

3. Write an Alp to find the sum of two eight bit numbers present in two consecutive locations

of the same segment.

4. Write an Alp to find the sum of two numbers present in two different locations of the

same segment.

5. Write an Alp to find the sum of two numbers present in two different segments.

6. Write an Alp to find the sum of two 16 bit numbers present in two consecutive locations of

the same segment

7. Write an Alp to find the product of two 16 bit numbers present in two consecutive locations

of the same segment

8. Write an Alp to find the sum of two 16 bit numbers present in two different segments

9. Write an alp program for multiplication and division of two 16bit numbers?

3) 2222

4) 1111

10. Write an alp program for addition and subtraction of two 8 bit numbers?

3) 78

4) 56

Department of Electronics and communication MLRITM, DUNDIGAL

Microprocessor & Interfacing Lab Page | 13

Exp No.2: Division of 32 bit unsigned number by a 16 bit unsigned number

AIM: - Write program to perform division of 32 bit unsigned number by a 16 bit unsigned

number

APPARATUS: 1. 8086 microprocessor kit/MASM ----1

2. RPS (+5V) ----1

PROGRAM:

i) By using MASM:

Assume cs: code

Code segment

Start: MOV AX, 0000H

MOV SI, 2000H

MOV DI, 3000H

MOV BX, 2008H

MOV CL, 04H

UP : MOV AL, [SI]

DIV AL,[BX]

MOV [DI], AL

INC SI

INC BX

INC DI

DEC CL

JNZ UP

INT 3

CODE ENDS

END START

Department of Electronics and communication MLRITM, DUNDIGAL

Microprocessor & Interfacing Lab Page | 14

ii) By using 8086 kit:

MEMORY LOCATION OP-CODE LABEL MNEMONIC4000

UP

MOV AX,0000

MOV SI, 2000

MOV DI, 3000

MOV BX, 2008

MOV CL, 04

MOV AL, [SI]

ADD AL, [BX]

MOV [DI], AL

INC SI

INC BX

INC DI

DEC CL

JNZ UP

INT 3

OUTPUT:

Input output

MEMORY

LOCATION

Data MEMORY

LOCATION

Data MEMORY

LOCATION

Data

2000 01 2008 23 3000 24

2001 02 2009 27 3001 29

2002 07 200A 10 3002 17

2003 08 200B 14 3003 1C

2004 X

2005 X

2006 X

2007 X

RESULT: Division of 32 bit unsigned number by a 16 bit unsigned number performed by using

software and trainer kit of 8086 microprocessor.

Department of Electronics and communication MLRITM, DUNDIGAL

Microprocessor & Interfacing Lab Page | 15

Viva:

1) What are the functions of BIU?

2) What are the functions of EU?

3) How many pin IC 8086 is?

4) What IC8086 is?

5) What is the size of instruction queue in 8086?

EXERCISE:

1. Write an alp for 8 bit multiplication?

2. Write an alp for 8 bit divison?

3. Write an alp to divide a number present in 2000 offset with 2001 o

4. Write an alp program for addition and subtraction of two 8 bit numbers?

5) 78

6) 34

5. Write an alp program for addition and subtraction of two 16bit numbers?

5) 0012

6) 0006

6. Write an Alp to find the sum of two eight bit numbers present in two consecutive locations

of the same segment.

7. Write an Alp to find the sum of two numbers present in two different locations of the

same segment.

8. Write an Alp to find the sum of two numbers present in two different segments.

9. Write an Alp to find the sum of two 16 bit numbers present in two consecutive locations of

the same segment

Department of Electronics and communication MLRITM, DUNDIGAL

Microprocessor & Interfacing Lab Page | 16

EXP NO.3: Program for sorting an array in ascending and descending order.

i) ASCENDING ORDER

AIM:- Write and execute an assembly language program (alp) to 8086 processor to sort the

given numbers in ascending order and descending order.

APPARATUS: 1. 8086 microprocessor kit/MASM ----1

2. RPS (+5V) ----1

PROGRAM:

A) By using MASM:

ASSUME CS: CODE

CODE SEGMENT

START: MOV AX, 0000H

MOV CH, 0004H

DEC CH

UP1 : MOV CL, CH

MOV SI, 2000H

UP: MOV AL, [SI]

INC SI

CMP AL, [SI]

JC DOWN

XCHG AL, [SI]

DEC SI

MOV [SI], AL

INC SI

DOWN: DEC CL

JNZ UP

DEC CH

JNZ UP1

INT 3

CODE ENDS

END START

Department of Electronics and communication MLRITM, DUNDIGAL

Microprocessor & Interfacing Lab Page | 17

B) By using 8086 kit:

MEMORY LOCATION OP-CODE LABEL MNEMONIC4000

UP1:

UP:

DOWN:

MOV AX, 0000H

MOV CH, 0004H

DEC CH

MOV CL, CH

MOV SI,2000

MOV AL,[SI]

INC SI

CMP AL,[SI]

JC DOWN

XCHG AL,[SI]

DEC SI

MOV [SI],AL

INC SI

DEC CL

JNZ UP

DEC CH

JNZ UP1

INT 3

OUTPUT:

Input output

MEMORY

LOCATION

Data MEMORY

LOCATION

Data

2000 03 2000 03

2001 06 2001 04

2002 07 2002 06

2003 04 2003 07

Department of Electronics and communication MLRITM, DUNDIGAL

Microprocessor & Interfacing Lab Page | 18

ii) DESCENDING ORDER

AIM:-Program to sort the given numbers in descending order

APPARATUS: 1. 8086 microprocessor kit/MASM ----1

2. RPS (+5V) ----1

PROGRAM:

By using MASM:

ASSUME CS: CODE

CODE SEGMENT

START: MOV AX, 0000H

MOV CH, 0004H

DEC CH

UP1 : MOV CL, CH

MOV SI, 2000H

UP: MOV AL, [SI]

INC SI

CMP AL, [SI]

JNC DOWN

XCHG AL, [SI]

DEC SI

MOV [SI], AL

INC SI

DOWN: DEC CL

JNZ UP

DEC CH

JNZ UP1

INT 3

CODE ENDS

END START

Department of Electronics and communication MLRITM, DUNDIGAL

Microprocessor & Interfacing Lab Page | 19

By using 8086 kit:

MEMORY LOCATION OP-CODE LABEL MNEMONIC4000

UP1:

UP:

DOWN:

MOV AX, 0000H

MOV CH, 0004H

DEC CH

MOV CL, CH

MOV SI,2000

MOV AL,[SI]

INC SI

CMP AL,[SI]

JNC DOWN

XCHG AL,[SI]

DEC SI

MOV [SI],AL

INC SI

DEC CL

JNZ UP

DEC CH

JNZ UP1

INT 3

OUTPUT:

RESULT: Program for sorting an array performed by using masm software and trainer kit.

Input output

MEMORY

LOCATION

Data MEMORY

LOCATION

Data

2000 03 2000 07

2001 06 2001 06

2002 07 2002 04

2003 04 2003 03

Department of Electronics and communication MLRITM, DUNDIGAL

Microprocessor & Interfacing Lab Page | 20

Viva:

1) What are the functions of BIU?

2) What are the functions of EU?

3) How many pin IC 8086 is?

4) What IC8086 is?

5) What is the size of instruction queue in 8086?

EXERCISE:

1.Write an alp program to sort the given numbers in ascending order?

1) 14

2) A2

3) 85

4) 54

2.Write an alp program for to sort the given number in descending order?

1) 1E

2) 2A

3) 56

4) 98

3.Copy the contents of string of length 8 bytes starting from 2000 location to 3000 location of

same segment.

4. Copy the contents of string of length 8 bytes starting from 2000 location to 3000 location of

another segment

5.move string byte from the offset 3000 to 2000

6. Write an alp program for to sort the given number in descending order?

1) 32

2) 45

3) 78

4) 36

5) 42

7. Write an alp program for to sort the given number in asscending order?

1) 23

2) 45

3) 39

Department of Electronics and communication MLRITM, DUNDIGAL

Microprocessor & Interfacing Lab Page | 21

4) 36

5) 71

8.A string byte is present from 2000 offset copy all its contents to 3000 offset leaving first byte.

9.A string byte is present from 2000 offset copy all its contents to 3000 offset leaving last byte

10.Reverse the string byte present in 2000 offset and move it to 3000 segment

Department of Electronics and communication MLRITM, DUNDIGAL

Microprocessor & Interfacing Lab Page | 22

EXP NO.4: Program for pick the median from the given array of numbers.

AIM: Write and execute an assembly language program (alp) to 8086 processor to pick the

median from the given array of numbers.

APPARATUS: 1. 8086 microprocessor kit/MASM ----1

2. RPS (+5V)

PROGRAM: By using MASM

ASSUME CS: CODE

CODE SEGMENT

START:

MOV SI, 2000H

MOV DI, 3000H

MOV AX, 0000H

MOV AX, 06H

MOV BX, 0002H

DIV BX

MOV BX, AX

MOV AX, 2000H

ADD AX, BX

MOV BX, AX

MOV [SI], BX

MOV CL, [SI]

MOV [DI], CL

INT 03H

CODE ENDS

END START

Department of Electronics and communication MLRITM, DUNDIGAL

Microprocessor & Interfacing Lab Page | 23

By using 8086 kit:

MEMORY LOCATION OP-CODE LABEL MNEMONIC4000 MOV SI, 2000H

MOV DI, 3000H

MOV AX, 0000H

MOV AX, 06H

MOV BX, 0002H

DIV BX

MOV BX, AX

MOV AX, 2000H

ADD AX, BX

MOV BX, AX

MOV [SI], BX

MOV CL, [SI]

MOV [DI], CL

INT 03H

RESULT: Program for pick the median from the given array of numbers performed by using masm software and trainer kit.

Viva: 1) What does u mean by Prefix?

2) What .model small means?

3) Difference between small, medium, tiny, huge?

4) What is dd, dw, db?

5) Interrupts in 8086 and there function.

Department of Electronics and communication MLRITM, DUNDIGAL

Microprocessor & Interfacing Lab Page | 24

EXERCISE:1. Write an alp program to find the unpacked BCD to the given BCD number 56 using 8086

trainer kit?2. Write an alp program to find the ASCII number to the given BCD number 76 using 8086

trainer kit?3. Write an alp program to find the unpacked BCD of packed BCD number using 8086

trainer kit?4. Write an alp program to find the ASCII number of the given BCD number 83 using

Masm software5. Write an alp program to find the unpacked BCD of the given BCD number using 8086

trainer kit?6. Write an alp program to find the ASCII number to the given BCD number 91 using 8086

trainer kit?

Department of Electronics and communication MLRITM, DUNDIGAL

Microprocessor & Interfacing Lab Page | 25

EXP NO.5: Program for find the length of a given string.

AIM: Write and execute an assembly language program (alp) to 8086 processor to find the

length of a given string which terminates with a special character.

APPARATUS: 1. 8086 microprocessor kit/MASM ----1

2. RPS (+5V)

PROGRAM:

ASSUME CS: CODE

COSE SEGMENT

START:

MOV SI, 2000H

MOV BL, 00H

MOV DL, 00H

UP: MOV AL, [SI]

CMP AL, DL

JZ DOWN

INC BL

JNZ UP

DOWN: INT 03H

CODE ENDS

END START

Department of Electronics and communication MLRITM, DUNDIGAL

Microprocessor & Interfacing Lab Page | 26

By using 8086 kit:

MEMORY LOCATION OP-CODE LABEL MNEMONIC4000

UP:

DOWN:

MOV SI, 2000H

MOV BL, 00H

MOV DL, 00H

MOV AL,[SI]

CMP AL, DL

JZ DOWN

INC BL

JNZ UP

INT 03H

OUTPUT:

OUTPUT: BX: 0008

RESULT: Program for find the length of the given string performed by using masm software

and trainer kit.

Input

MEMORY

LOCATION

Data

2000 03

2001 06

2002 07

2003 04

2004 05

2005 15

2006 07

2007 11

Department of Electronics and communication MLRITM, DUNDIGAL

Microprocessor & Interfacing Lab Page | 27

Viva:

1) What is the reset address of 8086?

2) What is the size of flag register in 8086? Explain all.

3) What is the difference between 08H and 01H functions of INT 21H?

4) Which is faster- Reading word size data whose starting address is at even or at odd address of

memory in 8086?

5) Which is the default segment base: offset pairs?

EXERCISE:

1. Write an alp program to find the sum of ‘n’ numbers using masm software.

2. Write an alp program to find the GRAY number to the given ASCII number 56 using

8086 trainer kit?

3. Write an Alp to print the number present at the mid location of string byte present in

2000 location

4. Write an Alp to print the number present at the mid location of string byte present in

2000 location

5. Write an Alp to print the average of numbers of first and last locationof string byte

present in 2000 location.

6.Write an Alp to print the average of first and median locationof string of length 9 bytes

present in 2000 location

Department of Electronics and communication MLRITM, DUNDIGAL

Microprocessor & Interfacing Lab Page | 28

EXP NO.6: To reverse the given string and verify whether it is a palindrome.

AIM: To write a alp for reverse of a given string.

APPARATUS: 1. 8086 microprocessor kit/MASM ----1

2. RPS (+5V) ----1

PROGRAM:

By using MASM:

ASSUME CS: CODE

CODE SEGMENT

START: MOV SI, 2000H

MOV DI, 2008H

MOV CX, 0008H

ADD SI, 07

UP: MOV AL, [SI]

MOV [DI], AL

DEC SI

INC DI

DEC CX

JNZ UP

INT 3

CODE ENDS

END START

Department of Electronics and communication MLRITM, DUNDIGAL

Microprocessor & Interfacing Lab Page | 29

By using 8086 kit:

MEMORY LOCATION OP-CODE LABEL MNEMONIC4000

UP

MOV SI,2000

MOV DI,2008

MOV CX,0008

ADD SI,07

MOV AL,[SI]

MOV [DI],AL

DEC SI

INC DI

DEC CX

JNZ UP

INT 3

OUTPUT:

Input output

MEMORY

LOCATION

Data MEMORY

LOCATION

Data

2000 01 2008 08

2001 02 2009 07

2002 03 200A 06

2003 04 200B 05

2004 05 200C 04

2005 06 200D 03

2006 07 200E 02

2007 08 200F 01

RESULT: Program for reverse a given string performed and verified whither it is a

palindrome.

Department of Electronics and communication MLRITM, DUNDIGAL

Microprocessor & Interfacing Lab Page | 30

Viva:

1) What is the size of instruction queue in 8086?

2) Which are the registers present in 8086?

3) What do you mean by pipelining in 8086?

4) How many 16 bit registers are available in 8086?

5) Specify addressing modes for any instruction?

EXERCISE:

1. Write an alp program to find the smallest number in an array using masm software.

2. Write an alp program to find the largest number in an array using masm software.

3. Write an alp program to find sum of first four number in string byte using masm software

4. Write an alp program to find sum of last four number in string byte using masm software

5. Write an alp program to find average of first four number in string byte using masm

software

Department of Electronics and communication MLRITM, DUNDIGAL

Microprocessor & Interfacing Lab Page | 31

Exp No.7: Insert or Delete a character /number from the given string.

A) INSERT A BYTE IN A GIVEN STRING

AIM: Write an alp for insert a new byte in a given string.

APPARATUS: 1. 8086 microprocessor kit/MASM ----1

2. RPS (+5V) ----1

PROGRAM:

By using MASM:

ASSUME CS: CODE

CODE SEGMENT

START: MOV SI, 2000H

MOV DI, 3000H

MOV BX, 5000H

MOV CX, 0005H

CLD

L1: MOV AL, [SI]

CMP AL, [BX]

JZ L2

MOVSB

JMP L3

L2: MOVSB

MOV BX, 7000H

MOV AL, [BX]

MOV [DI], AL

DEC CX

INC DI

REP MOVSB

L3: INT 3

CODE ENDS

END START

Department of Electronics and communication MLRITM, DUNDIGAL

Microprocessor & Interfacing Lab Page | 32

By using 8086 kit:

MEMORY LOCATION OP-CODE LABEL MNEMONIC4000

L1

L2

L3

MOV SI,2000

MOV DI,3000

MOV BX,5000

MOV CX,0005

CLD

MOV AL,[SI]

CMP AL,[BX]

JZ L2

MOVSB

JMP L3

MOVSB

MOV BX,7000

MOV AL,[BX]

MOV [DI],AL

DEC CX

INC DI

REP

MOVSB

INT 3

OUTPUT:

Input output

MEMORY

LOCATION

Data MEMORY

LOCATION

Data

2000 02 3000 02

2001 04 3001 04

2002 43 3002 43

2003 76 3003 08

2004 01 3004 76

5000 43 3005 01

7000 08

Department of Electronics and communication MLRITM, DUNDIGAL

Microprocessor & Interfacing Lab Page | 33

B) DELETE A BYTE IN A GIVEN STRING

AIM: To write a alp for delete a byte in a given string

APPARATUS: 1. 8086 microprocessor kit/MASM with pc ----1

2. RPS (+5V) ----1

PROGRAM:

By using MASM:

ASSUME CS: CODE

CODE SEGMENT

START: MOV SI, 2000H

MOV DI, 3000H

MOV BX, 5000H

MOV CX, 0005H

CLD

L1: MOV AL, [SI]

CMP AL, [BX]

JZ L2

MOVSB

LOOP L1

JMP L3

L2: INC SI

DEC CX

REP MOVSB

L3: INT 3

CODE ENDS

END START

Department of Electronics and communication MLRITM, DUNDIGAL

Microprocessor & Interfacing Lab Page | 34

By using 8086 kit:

MEMORY LOCATION OP-CODE LABEL MNEMONIC4000

L1

L2

L3

MOV SI,2000

MOV DI,3000

MOV BX,5000

MOV CX,0005

CLD

MOV AL,[SI]

CMP AL,[BX]

JZ L2

MOVSB

LOOP L1

JMP L3

INC SI

DEC CX

REP

MOVSB

INT 3

OUTPUT:

RESULT: Program for string manipulation performed by using masm software and trainer kit.

Input output

MEMORY

LOCATION

Data MEMORY

LOCATION

Data

2000 01 3000 01

2001 02 3001 02

2002 03 3002 03

2003 04 3003 05

2004 05

5000 04

Department of Electronics and communication MLRITM, DUNDIGAL

Microprocessor & Interfacing Lab Page | 35

Viva:

1) What do you mean by assembler directives?

2) What .model small stands for?

3) What is the supply requirement of 8086?

4) What is the relation between 8086 processor frequency & crystal Frequency?

5) Functions of Accumulator or AX register?

EXERCISE:

1. Write an alp for delete a byte in a given string byte at memory location 4000 .

2. Write alp for reversing the given string with the length 12 bytes?

3. Write an alp for altering a given byte in string byte at memory location 2000

4. Copy the median of string of length 5 bytes to 3000 offset of same segment

5. Insert a byte after 4th position in an string byte present at 3000 location.

Department of Electronics and communication MLRITM, DUNDIGAL

Microprocessor & Interfacing Lab Page | 36

Exp No.8: Interface an 8086 microprocessor trainer kit to pc.

AIM: Interface an 8051 microcontroller trainer kit to pc and establish a communication

between them through RS 232.

APPARATUS:

1. ESA 8051 Trainer kit

2. 8251 USART,

3. PC

4. Power Supply

5. Connectors.

PROCEDURE:

1. Make the power supply connections from 4-way power mate connector on the ALS-

NIFC-09 board.

+5V ……...blue wire.

Ground …..black wire.

2. Connect 26-pin flat cable from interface module to P1 of the trainer kit.

3. Enter the program in the RAM location in 9000 and execute the program

GO<STARTING ADDRESS><EXEC>

PROGRAM:

ADDRESS OPCODE LABEL MNEMONICS

MOV A,#36

MOV DPTR,#2043

MOVX @DPTR,A

MOV DPTR,#2040

MOV A,#0A

MOVX @DPTR,A

MOV A,#00

MOVX @DPTR,A

MOV R1,#3000

Department of Electronics and communication MLRITM, DUNDIGAL

Microprocessor & Interfacing Lab Page | 37

UP

UP1

MOV DPTR,#0092

MOVX @DPTR,A

MOVX @DPTR,A

MOVX @DPTR,A

MOVX @DPTR,A

CALL DELAY

MOV A,#40

MOVX @DPTR,A

CALL DELAY

MOV A,#CE

MOVX @DPTR,A

CALL DELAY

MOV A,#27

MOVX @DPTR,A

CALL DELAY

MOV DPTR,9000

MOV DPTR,#0092

MOVX @DPTR,A

CMP A,1B

JE UP

MOV DPTR,#0090

MOVX @DPTR,A

ANL A,81

CJNE B,A.DOWN

MOV DPTR,#0092

MOVX @DPTR,A

ANL A,81

CJNE AL,81.UP1

MOV A,B

MOV DPTR,#0090

MOVX @DPTR,A

MOVX @DPTR,A

Department of Electronics and communication MLRITM, DUNDIGAL

Microprocessor & Interfacing Lab Page | 38

DOWN

DELAY

HERE

MOV R3,9700

MOV R3,A

INC R3

JMP UP

MOVX @DPTR,A

INC R3

JMP UP

INT 03

MOV CX,0002

LOOP HERE

RET

RESULT: Thus, the 8251 USART can be used to establish communication between two

processors by receiving the characters from the USART and displaying these characters on the

console.

Viva:

1) What TD is?

2) What do u mean by assembler?

3) What do u mean by linker?

4) What do u mean by loader?

5) What do u mean by compiler?

EXERCISE:

1. Write an alp program to perform an operation to find the squares of a given number using

masm software.

2. Write an alp program to perform an operation to find the squares of a given number

using MP trainer kit

Department of Electronics and communication MLRITM, DUNDIGAL

Microprocessor & Interfacing Lab Page | 39

EXP.NO.9: Interfacing to 8086 and programming to control stepper motor.

AIM: Write an Assembly Language Program to rotate the Stepper Motor in clockwise as well

as anti-clockwise direction.

APPARATUS: 8086 Trainer kit, Stepper,

Motor Interface Card,

Stepper Motor,

Power supply.

PROCEDURE:-

1. Connect the 26 core FRC connector to the 8086 trainer at connector no CN4 and the

interface module.

2. Connect the power mate connector to the interface module and the other side of the

connector to the power supply. The connections to the power supply are given below.

Connections: (power supply)

Black & Red: Gnd.

Blue & Green: +5V

3. 5- Way power mate is wired to the motor. This power mate is to be inserted into the male

socket provided on the interface. Care should be taken such that, below given code for the

particular colored wire coincides with the code on the interface.

A- GREEN

C- RED & WHITE

B- GREEN & WHITE

D- RED

VDD- BLACK & WHITE.

4. After the completion of the program and connections enter the program as given in the listing

below.

G0< STARTING ADDRESS< ENTER (on the key board of trainer).

Department of Electronics and communication MLRITM, DUNDIGAL

Microprocessor & Interfacing Lab Page | 40

Program to rotate in clockwise direction

MEMORY LOCATION OPCODE LABEL MNEMONIC4000

A0

A1

A2

MOV AL,80

MOV DX,0FFC6

OUT DX

MOV BX,02

MOV CX,00FF

MOV AL,77

MOV DX,0FFC4

OUT DX

CALL DELAY

MOV AL,0BB

MOV DX,0FFC4

OUT DX

CALL DELAY

MOV AL,0DD

MOV DX,0FFC4

OUT DX

CALL DELAY

MOV AL,0EE

MOV DX, 0FFC4

OUT DX

CALL DELAY

LOOP A1

DEC BX

JNZ A2

Department of Electronics and communication MLRITM, DUNDIGAL

Microprocessor & Interfacing Lab Page | 41

Program to rotate in Anti clockwise direction

MEMORY LOCATION OPCODE LABEL MNEMONIC4000

A0

A1

A2

MOV AL,80

MOV DX,OFFC6

OUT DX

MOV BX,0002

MOV CX,00FF

MOV AL,0EE

MOV DX,0FFC4

OUT DX

CALL DELAY

MOV AL,0DD

MOV DX,0FFC4

OUT DX

CALL DELAY

MOV AL,0BB

MOV DX,0FFC4

OUT DX

CALL DELAY

MOV AL,077

MOV DX,0FFC4

OUT DX

CALL DELAY

LOOP A1

DEC BX

JNZ A2

Department of Electronics and communication MLRITM, DUNDIGAL

Microprocessor & Interfacing Lab Page | 42

DELAY PROGRAM:

MEMORY LOCATION OPCODE LABEL MNEMONIC4500

A3

MOV AX,0500

NOP

NOP

DEC AX

JNZ A3

RET

RESULT: An operation to interface Stepper Motor with 8086 Microprocessor performed.

Viva:

1) What does u mean by Prefix?

2) What .model small means?

3) Difference between small, medium, tiny, huge?

4) What is dd, dw, db?

5) Interrupts in 8086 and there function.

Department of Electronics and communication MLRITM, DUNDIGAL

Microprocessor & Interfacing Lab Page | 43

EXP.NO.10: Interface an 8 bit ADC to 8086 and generate digital output.

AIM:

1. To write a program for conversion of analog data to digital output.

APPARATUS:

1. 8086 Trainer.

2. Power supply for trainer and interface module.

3. A/D, D/A interface module.

4. Power mate connector.

5. FRC connector.

6. Cathode ray oscilloscope.

PROCEDURE:-

1. Connect the 26 core FRC connector to the 8086 trainer at connector no CN4 and the interface

module.

2. Connect the power mate connector to the interface module and the other side of the connector

to the power supply. The connections to the power supply are given below.

Connections: (power supply)

Black & Red: Gnd.

Blue & Green: +5V

3. 5- Way power mate is wired to the motor. This power mate is to be inserted into the male

socket provided on the interface. Care should be taken such that, below given code for the

particular colored wire coincides with the code on the interface.

A- GREEN

C- RED & WHITE

B- GREEN & WHITE

D- RED

VDD- BLACK & WHITE.

4. After the completion of the program and connections enter the program as given in the listing

below.

G0< STARTING ADDRESS< ENTER (on the key board of trainer).

Department of Electronics and communication MLRITM, DUNDIGAL

Microprocessor & Interfacing Lab Page | 44

A/D CONVERTERPROGRAM:

MEMORY LOCATION OPCODE LABEL MNEMONIC

D1

D2

MOV AL,90

MOV DX,0FFC6

OUT DX

MOV AL,07

MOV DX,FFC4

OUT DX

MOV AL,0F

MOV DX,0FFC6

OUT DX

MOV CX,3FFF

LOOP D1

MOV AL,0E

MOV DX,0FFC6

OUT DX

MOV AL,0C

MOV DX,0FFC6

OUT DX

MOV DX,0FFC0

IN DX

AND AL,80

CMP AL,80

JNZ D2

MOV AL,0D

MOV DX,0FFC6

OUT DX

MOV DX,0FFC0

IN DX

MOV DX,0FFC2

OUT DX

JMP D3

Department of Electronics and communication MLRITM, DUNDIGAL

Microprocessor & Interfacing Lab Page | 45

OUTPUT:

INPUT: OUTPUT:

POWER SUPPLY: 05V DISPLAY SHOWS: FF

CHANNEL NO:’00 T0

RESULT: Program for interfacing ADC to 8086 performed.

Viva:

1) Which is by default pointer for CS/ES?

2) How many segments present in it?

3) What is the size of each segment?

4) Basic difference between 8085 and 8086?

5) Which operations are not available in 8085?

EXERCISE:

1. Write an alp program to search a number 05 from a given array?

1) 02

2) 06

3) 05

4) 08

2. Write an alp program to search a number 45 from a given array?

1) 09

2) 45

3) 22

4) A2

Department of Electronics and communication MLRITM, DUNDIGAL

Microprocessor & Interfacing Lab Page | 46

EXP.NO.11: Interface an ADC to 8086

AIM: To write a program for conversion of digital data to analog output. The analog output

will be in the form of triangular wave, saw tooth wave, square wave/rectangular wave.

APPARATUS:

1. 8086 Trainer.

2. Power supply for trainer and interface module.

3. A/D, D/A interface module.

4. Power mate connector.

5. FRC connector.

6. Cathode ray oscilloscope.

PROCEDURE:-

5. Connect the 26 core FRC connector to the 8086 trainer at connector no CN4 and the interface

module.

6. Connect the power mate connector to the interface module and the other side of the connector

to the power supply. The connections to the power supply are given below.

Connections: (power supply)

Black & Red: Gnd.

Blue & Green: +5V

7. 5- Way power mate is wired to the motor. This power mate is to be inserted into the male

socket provided on the interface. Care should be taken such that, below given code for the

particular colored wire coincides with the code on the interface.

A- GREEN

C- RED & WHITE

B- GREEN & WHITE

D- RED

VDD- BLACK & WHITE.

8. After the completion of the program and connections enter the program as given in the listing

below.

G0< STARTING ADDRESS< ENTER (on the key board of trainer).

Department of Electronics and communication MLRITM, DUNDIGAL

Microprocessor & Interfacing Lab Page | 47

D/A CONVERTER:

PROGRAM TO GENERATE SQUARE WAVE:

MEMORY LOCATION OPCODE LABEL MNEMONIC

A0

MOV AL,80

MOV DX,0FFC6

OUT DX

MOV DX,0FFC2

MOV AL,00

OUT DX

CALL DELAY 1

MOV AL,0FF

OUT DX

CALL DELAY2

JMP A0

DELAY PROGRAM1

ADDRESS OPCODE LABEL MNEMONIC

A1MOV CX,0020

LOOP A1

RET

DELAY PROGRAM2ADDRESS OPCODE LABEL MNEMONIC

A2MOV CX,0020

LOOP A2

RET

RESULT: Program for interfacing DAC to 8086 performed.

Department of Electronics and communication MLRITM, DUNDIGAL

Microprocessor & Interfacing Lab Page | 48

Viva:

1) What is the difference between min mode and max mode of 8086?

2) What is the difference between near and far procedure?

3) What is the difference between Macro and procedure?

4) What is the difference between instructions RET & IRET?

5) What is the difference between instructions MUL & IMUL?

EXERCISE:

1.16-Bit Addition in Location mode using 8086 Microprocessor Kit.

2.16-Bit subtraction in Location mode using 8086 Microprocessor Kit.

Department of Electronics and communication MLRITM, DUNDIGAL

Microprocessor & Interfacing Lab Page | 49

EXP.NO.12: Interfacing LCD to 8051.

AIM: Interface an LCD with 8051 microcontroller.

APPARATUS:

1. 8051 Trainer kit

2. LCD module

3. FRC cables

4. Power Supply.

PROCEDURE:

1. Make the power supply connections from 4-way power mate connector on the ALS-

NIFC-09 board.

+5V ……...blue wire

Ground …..black wire

2. Connect 26-pin flat cable from interface module to P1 of the trainer kit.

3. Enter the program in the RAM location in 9000 and execute the program

GO<STARTING ADDRESS><EXEC>

PROGRAM:CNTRL EQU 2043H ; 8255 control port address

PORTC EQU 2042H ; 8255 port C address

PORTB EQU 2041H ; 8255 port B address

PORTA EQU 2040H ; 8255 port A address

FUNCTION_SET EQU 38H ; display commands

DIS_ON_OFFEQU 0EH

RETURN_HOME EQU 02H

MODE_SET EQU 06H

CLEAR_DIS EQU 01H

DDRAM_ADD EQU 80H

CNT EQU 40H

CNT1 EQU 41H

CNT2 EQU 42H

Department of Electronics and communication MLRITM, DUNDIGAL

Microprocessor & Interfacing Lab Page | 50

ADDRESS OPCODE

LABEL MNEMONICS

BACK

MOV SP,#50H

MOV PSW,#00H

MOV CNT2,#10H

MOV R0,#14H

MOV R1,#FFH

LCALL DELAY

MOV DPTR,#CNTRL

MOV A,#80H

MOVX @DPTR,A

LCALL SET_CON_LINES

MOV R2,#03H

LCALL SET_WR_CON_LINES

MOV A,#00H

MOVX @DPTR,A

MOV DPTR,#PORTA

MOV A,#FUNCTION_SET

MOVX @DPTR,A MOV

DPTR,#CNTRL

MOV A,#05H

MOVX @DPTR,A

NOP

NOP

MOV A,#04H

MOVX @DPTR,A

MOV R0,#06H

MOV R1,#E4H

LCALL DELAY

DJNZ R2,BACK

LCALL CHK_BUSY

LCALL SET_WR_CON_LINES

MOV A,#00H

Department of Electronics and communication MLRITM, DUNDIGAL

Microprocessor & Interfacing Lab Page | 51

MOVX @DPTR,A

MOV DPTR,#PORTA

MOV A,#DIS_ON_OFF

MOVX @DPTR,A

MOV DPTR,#CNTRL

MOV A,#05H

MOVX @DPTR,A

NOP

NOP

MOV A,#04H

MOVX @DPTR,A

LCALL CHK_BUSY

LCALL SET_WR_CON_LINES

MOV A,#00H

MOV DPTR,#PORTA

MOV A,#RETURN_HOME

MOVX @DPTR,A

MOV DPTR,#CNTRL

MOV A,#05H

MOVX @DPTR,A

NOP

NOP

MOV A,#04H

MOVX @DPTR,A

LCALL CHK_BUSY

LCALL SET_WR_CON_LINES

MOV A,#00H

MOVX @DPTR,A

MOV DPTR,#PORTA

MOV A,#MODE_SET

MOVX @DPTR,A

MOV DPTR,#CNTRL

Department of Electronics and communication MLRITM, DUNDIGAL

Microprocessor & Interfacing Lab Page | 52

MOV A,#05H

MOVX @DPTR,A

NOP

NOP

MOV A,#04H

MOVX @DPTR,A

LCALL CHK_BUSY

LCALL SET_WR_CON_LINES

MOV A,#00H

MOVX @DPTR,A

MOV DPTR,#PORTA

MOV A,#CLEAR_DIS

MOVX @DPTR,A

MOV DPTR,#CNTRL

MOV A,#05H

MOVX @DPTR,A

NOP

NOP

MOV A,#04H

MOVX @DPTR,A

MOV CNT1,#02H

MOV CNT,#08H

MOV R0,#DDRAM_ADD

LCALL CHK_BUSY

LCALL SET_WR_CON_LINES

MOV A,#00H

MOV DPTR,#PORTA

MOV A,R0

MOVX @DPTR,A

MOV DPTR,#CNTRL

MOV A,#05H

MOVX @DPTR,A

Department of Electronics and communication MLRITM, DUNDIGAL

Microprocessor & Interfacing Lab Page | 53

BACK3

NOP

NOP

MOV A,#04H

MOVX @DPTR,A

CLR A

MOV DPTR,#MSG

MOVX A,@DPTR

MOV R1,A

INC DPTR

PUSH DPH

PUSH DPL

LCALL CHK_BUSY

LCALL SET_WR_CON_LINES

MOV A,#01H

MOVX @DPTR,A

MOV DPTR,#PORTA

MOV A,R1

MOVX @DPTR,A

MOV DPTR,#CNTRL

MOV A,#05H

MOVX @DPTR,A

NOP

NOP

MOV A,#04H

MOVX @DPTR,A

POP DPL

POP DPH

CLR A

PUSH R0

PUSH R1

MOV R0,#7FH

MOV R1,#FFH

Department of Electronics and communication MLRITM, DUNDIGAL

Microprocessor & Interfacing Lab Page | 54

F1

FORW1

LCALL DELAY

POP R1

POP R0

DJNZ CNT,BACK3

DJNZ CNT1,F1

DJNZ CNT2,FORW1

LJMP FORW

MOV CNT,#08H

PUSH DPH

PUSH DPL

LCALL CHK_BUSY

LCALL SET_WR_CON_LINES

MOV A,#00H

MOVX @DPTR,A

MOV DPTR,#PORTA

MOV A,#C0H

MOVX @DPTR,A

MOV DPTR,#CNTRL

MOV A,#05H

MOVX @DPTR,A

NOP

NOP

MOV A,#04H

MOVX @DPTR,A

POP DPL

POP DPH

CLR A

LJMP BACK3

PUSH DPH

PUSH DPL

MOV R0,#DDRAM_ADD

LCALL CHK_BUSY

Department of Electronics and communication MLRITM, DUNDIGAL

Microprocessor & Interfacing Lab Page | 55

FORW

SET_CON_LINES:

CHK_BUSY:

LCALL SET_WR_CON_LINES

MOV A,#00H

MOVX @DPTR,A

MOV DPTR,#PORTA

MOV A,R0

MOVX @DPTR,A

MOV DPTR,#CNTRL

MOV A,#05H

MOVX @DPTR,A

NOP

NOP

MOV A,#04H

MOVX @DPTR,A

MOV CNT,#08H

MOV CNT1,#02H

POP DPL

POP DPH

CLR A

LJMP BACK3

:LCALL 0003H

MOV DPTR,#CNTRL

MOV A,#01H

MOVX @DPTR,A

MOV A,#03H

MOVX @DPTR,A

MOV A,#04H

MOVX @DPTR,A

RET

MOV DPTR,#CNTRL

MOV A,#90H

MOVX @DPTR,A

MOV A,#04H

Department of Electronics and communication MLRITM, DUNDIGAL

Microprocessor & Interfacing Lab Page | 56

BACK2

F2

SET_WR_CON_LINES:

DELAY:

LOOP1:

LOOP:

MOVX @DPTR,A

MOV A,#00H

MOVX @DPTR,A

MOV A,#03H

MOVX @DPTR,A

MOV A,#05H

MOVX @DPTR,A

MOV DPTR,#PORTA

MOVX A,@DPTR

MOV B,A

MOV DPTR,#CNTRL

MOV A,#04H

MOVX @DPTR,A

MOV A,B

JNB A.7,F2

LJMP BACK2

MOV DPTR,#CNTRL

MOV A,#80H

MOVX @DPTR,A

RET

MOV DPTR,#CNTRL

MOV A,#04H

MOVX @DPTR,A

MOV A,#02H

MOVX @DPTR,A

RET

PUSH R1

NOP

DJNZ R1,LOOP

POP R1

DJNZ R0,LOOP1

RET

Department of Electronics and communication MLRITM, DUNDIGAL

Microprocessor & Interfacing Lab Page | 57

RESULT: program for interfacing an LCD with 8051 microcontroller performed.

Viva:

1) What do you mean by emulator?

2) Stack related instruction?

3) .stack 100 means?

4) What do you mean by 20 dup (0)?

5) Which flags of 8086 are not present in 8085?

EXERCISE:

1. Write an alp program to perform an operation to find the cubes of a given number using

masm software

2. Write an alp program to perform an operation to find the cubes of a given numbers using

MP trainer kit

Department of Electronics and communication MLRITM, DUNDIGAL

Microprocessor & Interfacing Lab Page | 58

EXP.NO.13: Interfacing Matrix/Keyboard to 8051.

AIM: Interface a Keyboard to 8051 microcontroller.

APPARATUS: 8051 Trainer kit, keyboard module, FRC cables, & Power Supply.

PROCEDURE:

1. Make the power supply connections from 4-way power mate connector on the ALS-

NIFC-09 board.

+5V ……...blue wire

Ground …..black wire

2. Connect 26-pin flat cable from interface module to P1 of the trainer kit.

3. Enter the program in the RAM location in 9000 and execute the program

GO<STARTING ADDRESS><EXEC>

PROGRAM:CNTRL EQU 2043H ;CONTROL PORT ADDRESS OF 8255

PORTA EQU 2040H ;PORTA ADDRESS OF 8255 PORTB EQU 2041H ;PORTB ADDRESS OF 8255

PORTC EQU 2042H ;PORTC ADDRESS OF 8255

ADDRESS OP CODE LABEL MNEMONICS

BLINK2

BACK

MOV A,#90H

MOV DPTR,#CNTRL

MOVX @DPTR,A

MOV B,#20H

MOV DPTR,#PORTB

MOV A,#FFH

MOVX @DPTR,A

MOV DPTR,#PORTC

MOV A,#00H

MOVX @DPTR,A

MOV A,#F0H

MOVX @DPTR,A

DJNZ B,BLNK2

MOV A,#FEH

Department of Electronics and communication MLRITM, DUNDIGAL

Microprocessor & Interfacing Lab Page | 59

BLINK1

DELAY:

OLOOP:

ILOOP:

MOV B,#21H

MOV DPTR,#PORTB

MOVX @DPTR,A

MOV DPTR,#PORTC

MOV A,#00H

MOVX @DPTR,A

MOV A,#F0H

MOVX @DPTR,A

LCALL DELAY

RL A

DJNZ B,BLNK1

SJMP BACK

MOV R0,#F7H

MOV R1,#FFH

DJNZ R1,ILOOP

DJNZ R0,OLOOP

RET

RESULT: program for interfacing a keyboard to 8051 microcontroller performed.

Viva:

1) What is the size of flag register?

2) Can you perform 32 bit operation with 8086? How?

3) Whether 8086 is compatible with Pentium processor?

4) What is 8087? How it is different from 8086?

5) While accepting no. from user why u need to subtract 30 from that?

EXERCISE:

1. Write an alp program for addition of multi byte numbers.

2. Write an alp program for multiplication of given number in location mode

a) 0060

b) 0002

Department of Electronics and communication MLRITM, DUNDIGAL

Microprocessor & Interfacing Lab Page | 60

EXP.NO.14: PROGRAM AND VERIFY TIMER/COUNTER IN 8051

AIM: To Perform Timer 0 and Timer 1 in Counter Mode and Gated Mode Operation.

APPARATUS: 8051kit with keyboard, timer module kit, frc cables & power supply.

PROCEDURE:

1. Make the power supply connections from 4-way power mate connector on the ALS-

NIFC-09 board.

+5V ……...blue wire

Ground …..black wire

2. Connect 26-pin flat cable from interface module to P1 of the trainer kit.

3. Enter the program in the RAM location in 9000 and execute the program

GO<STARTING ADDRESS><EXEC>

PROGRAM TO VERIFY TIMER ‘0’- COUNTER MODE:

ADDRESS OPCODE LABEL MNEMONICS9200

LOOP

MOV A,TMOD (TMOD=89)

ORL A,#05H

MOV TMOD,A

SETB TRO (TRO=8C)

LCALL 68EAH

MOV DPTR,#0194H

MOV A,TLO (TLO=8A)

MOVX @DPTR,A

INC DPTR

MOV A,THO (THO=8C)

MOVX @DPTR,A

LCALL 6748H

SJMP LOOP

Execution:1) short jp1 of 1&2 pins and press sw1 for manual increment

2) Short jp1 of 2&3 pins for auto increment

Department of Electronics and communication MLRITM, DUNDIGAL

Microprocessor & Interfacing Lab Page | 61

PROGRAM TO VERIFY TIMER-1 COUNTER MODE:

ADDRESS OPCODE LABEL MNEMONICS9100

LOOP

MOV A, TMOD (TMOD=89)

ORL A,#50H

MOV TMOD,A

SETB TR1 (TR1=8E)

LCALL 68EAH

MOV DPTR,#0194H

MOV A,TL1 (TL1=8B)

MOVX @DPTR,A

INC DPTR

MOV A,TH1 (TH1=8D)

MOVX @DPTR,A

LCALL 6748H

SJMP LOOP

Execution: 1) short jp1 of 5&6 pins and press sw2 for manual increment

2) Short jp2 of 4&5 pins for auto increment

RESULT: Programs for Timer 0 and Timer 1 in Counter Mode and Gated Mode Operations

performed.

Viva:

1) What is the reset address of 8086?

2) What is the size of flag register in 8086? Explain all.

3) What is the difference between 08H and 01H functions of INT 21H?

4) Which is faster- Reading word size data whose starting address is at even or at odd address of

memory in 8086?

5) Which is the default segment base: offset pairs?

EXERCISE:

1. write an ALP program to study timer-1 gated mode

Department of Electronics and communication MLRITM, DUNDIGAL

Microprocessor & Interfacing Lab Page | 62

EXP.NO.15: PROGRAM AND VERIFY INTERRUPT HANDLING IN

8051.

AIM: Write ALP in 8051 to allow the external interrupt 1.

APPARATUS: 8051 with keyboard interrupt kit module.

PROCEDURE:

1. Make the power supply connections from 4-way power mate connector on the ALS-

NIFC-09 board.

+5V ……...blue wire

Ground …..black wire

2. Connect 26-pin flat cable from interface module to P1 of the trainer kit.

3. Enter the program in the RAM location in 9000 and execute the program

GO<STARTING ADDRESS><EXEC>

PROGRAM:

MEMORY LOCATION OPCODE LABEL MEMONIC

AGAIN

BACK

MAIN

HERE

ORG 0000

LJMP AGAIN

ORG 0013

SETB P1.3

MOV R3,#255

DJNZ R3,BACK

CLR P1.3

ORG 30H

MOV IE,#10000100B

SJMP HERE

LCALL 03

OUTPUT:

1. When key is pressed, LED ON.

2. When key is opened, LED OFF

RESULT: program for interrupt handling in 8051 verified.

Department of Electronics and communication MLRITM, DUNDIGAL

Microprocessor & Interfacing Lab Page | 63

Viva:

1) Can we use SP as offset address holder with CS?

2) Which is the base registers in 8086?

3) Which is the index registers in 8086?

4) What do you mean by segment override prefix?

5) Whether micro reduces memory requirements?

EXERCISE:

1. Write an alp program to find the length of the given array using masm software.

2. Write an alp program to find the sum of ‘n’ numbers using masm software.

Department of Electronics and communication MLRITM, DUNDIGAL

Microprocessor & Interfacing Lab Page | 64

EXP. NO.16: UART OPERATION IN 8051

AIM: Write ALP Of UART operation in 8051.

APPARATUS: 8051 with keyboard UART module.

PROCEDURE:

1. Make the power supply connections from 4-way power mate connector on the ALS-

NIFC-09 board.

+5V ……...blue wire

Ground …..black wire

2. Connect 26-pin flat cable from interface module to P1 of the trainer kit.

3. Enter the program in the RAM location in 9000 and execute the program

GO<STARTING ADDRESS><EXEC>

PROGRAM:

SEND CHAR:

MEMORY LOCATION OPCODE LABEL MEMONIC

B0

N1

INITSMOD

MOV SBUF,A

JNB TI,B0

CLR TI

RET

JNB RI,N1

MOV A,SBUF

CLR RI

RET

MOV SCON,#52

MOV TMOD,#20

MOV TH1,#0F4

SETB TRI

RET

Department of Electronics and communication MLRITM, DUNDIGAL

Microprocessor & Interfacing Lab Page | 65

MODE 0:

MEMORY LOCATION OPCODE LABEL MEMONIC

LOOP

HERE

MOV SCON,#0D

CLR TI

MOV SBUF,#0AA

JNB TI,HERE

CLR TI

SJMP LOOP

LCALL 03

MODE 1:

MEMORY LOCATION OPCODE LABEL MEMONIC

LOOP

W1

MOV SCON,#40

MOV TMOD,#20

MOV TH,#0D0

MOV TCON,#40

CLR TI

MOV SBUF,#0AA

JNB TI,W1

CLR TI

JMP LOOP

Department of Electronics and communication MLRITM, DUNDIGAL

Microprocessor & Interfacing Lab Page | 66

INTERRUPT DRIVEN MODE:

MEMORY LOCATION OPCODE LABEL MEMONIC

MAIN

LOOP

SERIAL_INT

JMP SERIAL_INT

MOV SCON,#50

MOV TMOD,#20

MOV TMI,#0DD

MOV PCON,#80

MOV IE,#90

CLR RI

JMP LOOP

CLR RI

MOV PI,SBUF

RETI

LCALL 03

RESULT: Program for URAT operation in 8051 performed.

Viva:

1) What do you mean by macro?

2) What is diff between macro and procedure?

3) Types of procedure?

4) What TASM is?

5) What TLINK is?

EXERCISE:

1. Write an alp program to perform an operation to find the sum of squares of a given array

using masm software.

2. Write an alp program to perform an operation to find the cubes of squares of a given

array using masm software