Escolar Documentos
Profissional Documentos
Cultura Documentos
LAB MANUAL
1
SUBJECT : EC1307 MICROPROCESSOR & ITS
APPLICATIONS LABORATORY
SEMESTER : V
BRANCH : ECE
INDEX
2
EX.NO.1 PROGRAMS FOR 8/16 BIT ARITHMETIC OPERATIONS(8085)
i) 8 – Bit Addition:
MVI D,00
LDA add1
MOV B,A
LDA add2
ADD B
JNC Loop1
INR D
Loop1: STA add3
MOV A,D
STA add4
HLT
Result:
Add1 : data1
Add2 : data2
Add3 : Result
Add4 : Carry
3
Result :
Add1 : Lower order byte of data 1
Add2 : Higher order byte of data 1
Add3 : Lower order byte of data 2
Add4 : Higher order byte of data 2
Add5 : Lower order byte of Result
Add6 : Higher order byte of Result
Add7 : Carry
4
iv) 16-bit Subtraction:
MVI B,00
LHLD add1
XCHG
LHLD add3
MOV A,E
SUB L
STA add5
MOV A,D
SBB H
JNC Loop1
INR B
Loop1: STA add6
MOV A,B
STA add7
HLT
Result:
Add1 : Lower order byte of data 1
Add2 : Higher order byte of data 1
Add3 : Lower order byte of data 2
Add4 : Higher order byte of data 2
Add5 : Lower order byte of Result
Add6 : Higher order byte of Result
Add7 : Borrow
5
v) 8 – bit multiplication:
MVI D,00
LDA add1
MOV B,A
LDA add2
MOV C,A
MVI A,00
Loop2:ADD B
JNC Loop1
INR D
Loop1: DCR C
JNZ Loop2
STA add3
MOV A,D
STA add4
HLT
RESULT:
Add1 : data1
Add2 : data2
Add3 : Lower order byte of Result
Add4 : Higher order byte of Result
LXI B,0000
LHLD add1
XCHG
LHLD add2
SPHL
LXI H,0000
Loop2: DAD SP
JNC Loop1
INX B
6
Loop1: DCX D
MOV A,E
ORA D
JNZ Loop2
SHLD add5
MOV L,C
MOV H,B
SHLD add7
HLT
Result :
7
Loop1: STA add3
MOV A,D
STA add4
HLT
Result:
Add1: dividend
Add2 : divisor
Add3 : Remainder
Add4 : Quotient
LXI B,0000
LHLD add1
XCHG
LHLD add3
L2 : SPHL
MOV A,E
SUB L
MOV L,A
MOV A,D
SBB H
JC L1
INX B
MOV H,A
JMP L2
LXI H,0000
DAD SP
SHLD add5
MOV H,B
8
MOV L,C
SHLD add7
HLT
RESULT:
9
MOV L,A
MOV A,D
RLC
RLC
RLC
RLC
ADD L
STA add2
MOV A,B
STA add3
HLT
RESULT:
Add1: hexadecimal number
Add2: lower order byte of BCD
Add 3: higher order byte of BCD
10
STA add2
HLT
RESULT:
Add1: data1(BCD)
Add2: result (Hexa)
LXI H, add1
MVI B, count
LXI D,add2
Loop1 : MOV A,M
CALL Conversion
STAX D
INX H
INX D
DCR B
JNZ Loop1
HLT
LDA add1
MOV B,A
ANI 0F
11
MOV C,A
MOV A,B
ANI F0
RRC
RRC
RRC
RRC
CALL Conversion
STA add2
MOV A,C
CALL Conversion
STA add3
HLT
Conversion: CPI 0A
JC Loop1
ADI 07
Loop1 : ADI 30
RET
RESULT :
LXI H, add1
LXI B, add2
MVI D, count
Loop1: MOV A,M
12
STAX B
INX H
INX B
DCR D
JNZ Loop1
HLT
RESULT :
Add1 : Starting add of source
Add2: Starting add of destination
LXI H, add
MVI D,00
MOV C,M
INX H
MOV A,M
Loop1: INX H
MOV B,M
ADD B
JNC Loop
INR D
Loop : DCR C
JNZ Loop1
STA add1
MOV A,D
STA add2
HLT
13
EX.NO.2 PROGRAMS FOR SORTING/ SEARCHING (USING
8085,8086)
LXI H,add1
MOV B,M
MOV C,B
Loop3: LXI H,add1
MOV D,B
Loop2: MOV A,M
INX H
MOV B,M
CMP B
JC / JNC Loop1
MOV M,A
DCX H
MOV M,B
INX H
Loop1: DCR D
JNZ Loop2
DCR C
JNZ LooP3
HLT
MVI D,00
LXI H, add
MOV C,M
INX H
MOV B,M
Loop2: INX H
14
MOV A,M
CMP B
JNZ Loop1
INR D
Loop1: DCR C
JNZ Loop2
MOV A,D
STA add
HLT
15
iv) Sorting an array of 16-bit number using 8086
16
v) Searching For A Number Using 8086
17
EX.NO. 3 PROGRAMS FOR STRING MANIPULATION OPERATIONS
(USING 8086)
b) Program to compare whether two strings of data are equal. If so, store
AAH at location 5000h, if not store DDH:
18
EX. NO. 4 PROGRAMS FOR DIGITAL CLOCK AND STOP WATCH
(USING 8086)
Program that places a message on the screen every 10 seconds, using int
1ah;
CODE SEGMENT
TIMEDELAY:
MOV SP,1000H
MOV DI,10XD
TIME OUT:
MOV AH,00H
INT 1AH
MOV BX,DX
TIMER:
MOV AH, 00H
INT 1AH
SUB DX, BX
CMP DX, 182XD
JC TIMER
MOV AH, 09H
CS MOV DX,MSG
INT 21H
DEC DI
JNZ TIMEOUT
MOV AX,4C00H
INT 21H
MSG:
DB 'TEN MORE SECONDS HAVE PASSED $'
CODE ENDS
19
20
EX.NO.5 ADC & DAC INTERFACING WITH 8051
ADC Interfacing
21
Channel No. Data to make Data to make
ALE low & OE high ALE high & OE high
CH0 10 18
CH1 11 19
CH2 12 1A
CH3 13 1B
CH4 14 1C
CH5 15 1D
CH6 16 1E
CH7 17 1F
22
DAC Interfacing
MOV DPTR,#add1
MOV A,#00
LOOP : MOVX @DPTR,A
INC A
SJMP LOOP
23
EX.NO.6 PARALLEL COMMUNICATION BETWEEN TWO MP
KITS USING MODE1 & MODE2 OF 8255
MODE1:
TRANSMITTER:
RECEIVER:
24
MODE 2:
KIT 1:
MVI A,C0 ;Control word to set PA in mode2
OUT CR
LOOP: IN PC ; Check the status of OBF
ANI 90
JZ LOOP
MVI A, DATA ; Transfer data
OUT PA
LOOP1: IN PC ; Check the status of IBF
ANI 20
JZ LOOP1
IN PA ; Get data
STA ADD
HLT
KIT2:
MVI A, C0 ; Control word to set PA in mode2
OUT CR
LOOP: IN PC ; check the status of IBF
ANI 20
JZ LOOP
IN PA ; get data
STA ADD
LOOP1: IN PC ; Control word to set PA in mode2
ANI 90
JZ LOOP1
MVI A, DATA ; Transfer data
OUT PA
HLT
25
EX. NO. 7 INTERFACING & PROGRAMMING 8279,8259
START: MVI A,01 ;Control word to set keyboard & display modes
OUT CR of 8279
MVI A,CC ;Control word to clear display
OUT CR of 8279
MVI A,90 ;Control word to write display RAM
OUT CR of 8279
LXI H, Address ;loading HL Rp with the starting address of the
Loopup table.
MVI B, Count ;No. of characters to be displayed
LOOP: MOV A,M ; get the data & send it to 8279
OUT DR of 8279
CALL DELAY
INX H
DCR B
JNZ LOOP
JMP START
26
Interfacing 8259 with 8085 microprocessor
A0 – Address with A0 = 0
A1 – Address with A0 = 1
Using 8085:
MVI A, ICW1
OUT A0
MVI A,ICW2
OUT A1
MVI A,ICW4
OUT A1
MVI A,OCW1
OUT A1
HLT
27
Using 8086:
MOV AL,ICW1
OUT A0,AL
MOV AL,ICW2
OUT A1,AL
MOV AL,ICW4
OUT A1,AL
MOV AL,OCW1
OUT A1,AL
STI
HLT
28
EX. NO. 8 SERIAL COMMUNICATION BETWEEN TWO
KITS(8085/8086) USING 8251,8253
TRANSMITTER END:
29
RECEIVER END:
30
EX. NO. 9 INTERFACING & PROGRAMMING OF STEPPER MOTOR &
DC MOTOR USING 8051
Interfacing stepper motor
Start : MOV DPTR, # add1
MOV R0,#04
L4: MOVX A,@DPTR
PUSH DPH
MOV DPL
MOV DPTR, #add1
MOV R2, #d1
L3: MOV R1,#d2
L2: MOV R3,#d3
L1: DJNZ R3,L1
DJNZ R1,L2
DJNZ R2,L3
MOVX @DPTR,A
POP DPL
POP DPH
INC DPTR
DJNZ R0,L4
SJMP START
4500 : 09
4501 : 05
4502 : 06
4503 : 0A
d1,d2,d3 - data for delay
31
Interfacing DC motor
32
EX.NO.10 PROGRAMMING USING ARITHMETIC, LOGICAL AND BIT
MANIPULATION INSTRUCTIONS OF 8051
MICROCONTROLLER
33
b) Program to separate a byte into its lower & upper nibble:
MOV DPTR,#4500H
MOVX A,@DPTR
MOV R0,A
ANL A,#F0H
RL
RL
RL
RL
MOV R1,A
MOV A,R0
ANL A,#0FH
INC DPTR
MOVX @DPTR,A
MOV A,R1
INC DPTR
MOVX @DPTR,A
HERE: SJMP HERE
34
c) Program to see if bits 5 & 6 of memory location 5000H are 1. If not
make so and save it at memory location 5001H:
MOV DPTR,#5000H
MOVX A,@DPTR
MOV B.A
JB B.5H, LOOP1
SETB B.5
LOOP1: JB B.6,LOOP2
SETB B.6
LOOP2: MOV A,B
INC DPTR
MOVX @DPTR,A
HERE: SJMP HERE
35
EX.NO.11 PROGRAMS TO VERIFY TIMER, INTERRUPTS & UART
OPERATIONS IN 8031 MICROCONTROLLER
CPL Px.x ; get the square wave through any of the portpins
; eg. P1.2 (second bit of Port 1)
CLR TR1 ; stop timer
CLR TF1 ; clear timer flag for the next cycle
SJMP L1
36
b) Program to transfer a data serially from one kit to another.
Transmitter:
MOV TMOD,#20H ; Mode word to select timer1 & mode 2
MOV TL1,#FDH ; Initialize timer1 with the count
MOV TH1,#FFH
MOV SCON,#50H ; Control word for serial communication
to
to select serial mode1
SETB TR1 ; Start timer1
MOV A,#06h
MOV SBUF,A ; Transfer the byte to be transmitted to
serial
Buffer register.
LOOP: JNB TI, LOOP ; checking the status of Transmit
interrupt
flag
CLR TI
HERE: SJMP HERE
Receiver:
MOV TMOD,#20H
MOV TL1,#FDH
MOV TH1,#FFH
MOV SCON,#50H
SETB TR1
LOOP: JNB RI,LOOP
MOV A,SBUF
MOV DPTR,#4500H
MOVX @DPTR,A
CLR RI
HERE: SJMP HERE
37
EX.NO.12 COMMUNICATION BETWEEN 8051 MICROCONTROLLER
KIT & PC
SERIAL COMMUNICATION
8051>H
HELP MENU
For SDA SI-MEL kit, following menu is displayed on pressing the option "T"
8051>T
ALS-SDA SI-MEL Kit Test monitor
38
5. Test 8253
6. Exit
Select (1-6):
Suppose the user presses the key '1', following message is displayed if the internal
data RAM is OK.
After displaying the message, the menu is displayed once again waits for user to enter
a key
8051>E
EDIT (R,B,M,P,D)…D - EXTERNAL DATA RAM
Enter STA address = 0400
0400 = 7F:55 Press 'N' key to go to the next address
0401 = D5:66
0402 = D3:77
0403 = 73:88
0404 = 6F:12
0405 = CB:01
0406 = A7:02 Press 'P' key to go to the previous address
0407 = 6F:03
0408 = 7B:04
0409 = 29:05
040A = 6F:06
040B = 73:07
040C = FF:08
040D = 7D:09 Press 'CR' key to have the same address
040E = 09:90 Press 'ESC' Key to abort the command
39
8051>E
EDIT (R,B,M,P,D)…B - BITS
Enter STA address = 00
00 = 0:1
01= 0:1
02 = 0:0
03 = 0:1
03 = 1:
03 = 1:
02 = 0:
8051>E
EDIT (R,B,M,P,D)…R- REGISTERS
ACC = 00:33
PSW = 00:44
DPH = 00:55
DPL = 00:00
DPL = 00:00
8051>E
EDIT (R,B,M,P,D)…-P = PROGRAM CODE
8000 = FF:78
8001 = FF:10
8002 = FF:79
8003 = FF:20
8004 = FF:7A
8005 = FF: 12
8007 = FF : 00
8008 = FF : 03
8009 = FF : 0F
8051>E
EDIT (R,B,M,P,D)…-M - INTERNAL RAM
40
0000 = 00 : 12
0001 = 00 : 34
0002 = 00 : 00
DISPLAY COMMAND
8051>D
EDIT (R,B,M,P,D)…-EXTERNAL DATA RAM
0500 55 66 77 88 12 01 02 03 04 05 06 07 08 09 04 D7
8051>B
BR _ NO: R
BR_ADD 0000
ERROR! ONLY A BREAKS ALLOWED
8051>B
BR _ NO: 0
ERROR! BREAK NUMBERS MUST BE BETWEEN 1 & 8
8051>C
BR_N0:A Clears all the break point set by the user
8051>C
BR_N0:1 Clears the break point number 1
41
PROGRAMME EXECUTION COMMAND:
8051>G
PROGRAM EXECUTION
8051>A
ENTER START ADDRESS = 8000
42