Microcontroller: Practical Manual
Microcontroller: Practical Manual
MICROCONTROLLER
PRACTICAL MANUAL
ME-SIT
JUNE 2020
TO
OCTOBER 2020
MICROCONTROLLER LAB MANUAL| 2
INDEX
DAY DESCRIPTION
2 MULTIPLICATION , DIVISION
INDEX
(1) ENTER THE PROGRAM (2) ENTER THE DATA (3) EXECUTE THE PROGRAM
(4) VIEW THE RESULT (5) VERIFY WITH DIFFERENT DATA (OPERANDS)
(I) STEPS TO ENTER OR TO EDIT THE PROGRAM. (II) STEPS TO ENTER THE DATA
(A) CONNECT THE POWER CABLE TO THE KIT
(B) CONNECT THE KEYBOARD TO THE KIT (A) PRESS RESET KEY, LCD SCREEN DISPLAY LIKE
(C ) AFTER POWER ON LCD SCREEN DISPLAY LIKE #
#
(B) TYPE THE FOLLOWING IN GIVEN ORDER
(D) TYPE THE FOLLOWING IN GIVEN ORDER (I) SD
(I) SD (II) STARTING ADDRESS OF THE DATA
(II) STARTING ADDRESS OF THE PROGRAM (III) PRESS ENTER KEY.
(III) PRESS ENTER KEY. (C) ENTER THE HEXA DATA (OPERAND(S)) ONE BY ONE
(E) ENTER THE HEXA CODE ONE BY ONE TILL END TILL END
(F) TO COMPLETE, PRESS DOT(.) AND THEN (D) TO COMPLETE, PRESS DOT(.) AND THEN PRESS
PRESS ENTER. ENTER.
(III) STEPS TO EXECUTE THE PROGRAM. (IV) STEPS TO VIEW THE RESULT.
(A) PRESS RESET KEY, LCD SCREEN DISPLAY LIKE
# (A) PRESS RESET KEY, LCD SCREEN DISPLAY LIKE
#
(B) TYPE THE FOLLOWING IN GIVEN ORDER
(I) GO (B) TYPE THE FOLLOWING IN GIVEN ORDER
(II) STARTING ADDRESS OF THE PROGRAM (I) GO
(III) PRESS ENTER KEY. (II) STARTING ADDRESS OF THE RESULT
(C) (III) PRESS ENTER KEY.
o IF NO ERROR IN THE #EXECUTING
PROGRAM, LCD
SCREEN DISPLAY LIKE
o -------------------------------------------------------
o IF ERROR IN THE #
PROGRAM, LCD
SCREEN DISPLAY LIKE
o ---------------------------------------------------
o IF ERROR, CORRECT IT & THEN AGAIN
EXECUTE
DO STEP II AND STEP IV IF WANT TO EXECUTE THE PROGRAM FOR DIFFERENT DATA SETS.
MICROCONTROLLER LAB MANUAL| 6
(1) ENTER THE PROGRAM (2) ENTER THE DATA (3) EXECUTE THE PROGRAM (4) VIEW THE RESULT
(I) STEPS TO ENTER THE PROGRAM.
• DATA SHOULD BE GIVEN IN THE INSTRUCTION ITSELF. EXECUTE THE PROGRAM AND
VIEW THE RESULT
• TO CHANGE THE DATA: EDIT THE PROGRAM AND CHANGE THE DATA. EXECUTE THE
PROGRAM AND VIEW THE RESULT.
(B) MEMORY OPERAND:
• SELECT
EXTERNAL MEMORY
• EXTERNAL MEMORY APPEARS IN THE SCREEN
(i) SELECT THE DESIRED LOCATION [ SAY 0010H]
(ii) RIGHT CLICK THE MOUSE
(iii) EDIT THE VALUE/ ENTER THE VALUE. THEN PRESS OK BUTTON.
(iv) REPEAT STEPS (I) TO (III) TILL ALL THE DATA ENTERED.
• EXTERNAL MEMORY APPEARS IN THE SCREEN
• SELECT THE RESULT LOCATION [ SAY 0050H]
• (A) BELOW THE HORIZONTAL MENU ( FILE EDIT VIEW .....), THERE IS TRIANGLE (IT IS
IN GREEN COLOR). PLACE THE CURSOR AT THIS TRIANGLE
AND SELECT/CLICK THIS.
(OR)
• SELECT EXECUTE
• SELECT
RUN
((DPTR)) (A) ;
MOVX @DPTR,A 1 4208 F0
(MEMORY) SUM
HERE: SJMP HERE 2 4209 80 FE SHORT JUMP HERE
INPUT OUTPUT
DATA COMMENTS ADDRESS DATA COMMENTS
ADDRESS
S1 S2 S1 S2
4201 09 Data 1
4350 0E SUM
4203 05 Data 2
B) MEMORY OPERANDS:
LENGTH
LABEL MNEMONICS IN BYTES
ADDRESS HEX. CODE COMMENT
MOV DPTR , #4150H 3 4300 90 41 50 (DPTR) 4150H
MOVX A,@DPTR 1 4303 E0 (A) ((DPTR))
MOV B,A 2 4304 F5 F0 (B) (A)
INC DPTR 1 4306 A3 (DPTR) (DPTR) +1
MOVX A, @DPTR 1 4306 E0 (A) ((DPTR))
ADD A, B 2 4308 25 F0 (A) (A) + (B)
MOV DPTR, #4250H 3 430A 90 42 50 (DPTR) 4250H
((DPTR)) (A) ;
MOVX @DPTR,A 1 430D F0
(MEMORY) SUM
INPUT OUTPUT
DATA COMMENTS ADDRESS DATA COMMENTS
ADDRESS
S1 S2 S1 S2
4150 09 Data 2
4250 0E SUM
4151 05 Data 1
RESULT :
MICROCONTROLLER LAB MANUAL| 12
INPUT OUTPUT
DATA COMMENTS ADDRESS DATA COMMENTS
ADDRESS
S1 S2 S1 S2
4201 09 Data 1
4350 04 DIFFERENCE
4203 05 Data 2
B) MEMORY OPERANDS:
LENGTH
LABEL MNEMONICS IN BYTES
ADDRESS HEX. CODE COMMENT
MOV DPTR,#4450H 3 4600 90 44 50 (DPTR) 4450H
MOVX A,@DPTR 1 4603 E0 (A) ((DPTR))
MOV B,A 2 4604 F5 F0 (B) (A)
INC DPTR 1 4606 A3 (DPTR) (DPTR) +1
MOVX A, @DPTR 1 4606 E0 (A) ((DPTR))
SUBB A, B 2 4608 95 F0 (A) (A) - (B) – CY
MOV DPTR, #4550H 3 460A 90 45 50 (DPTR) 4550H
((DPTR)) (A) ;
MOVX @DPTR,A 1 460D F0
(MEMORY) DIFFERENCE
HERE: SJMP HERE 2 460E 80 FE SHORT JUMP HERE
INPUT OUTPUT
DATA COMMENTS ADDRESS DATA COMMENTS
ADDRESS
S1 S2 S1 S2
4450 09 Data 2
4550 04 DIFFERENCE
4451 05 Data 1
RESULT :
MICROCONTROLLER LAB MANUAL| 13
BCD ADDITION
AIM: TO WRITE A PROGRAM TO ADD TWO NUMBERS PLACED AT LOCATION -----H AND --------H. STORE THE
RESULT IN THE MEMORY LOCATION -----------H.
INPUT OUTPUT
DATA COMMENTS ADDRESS DATA COMMENTS
ADDRESS
S1 S2 S1 S2
4201 19 BCD DATA 1
4950 44 BCD SUM
4203 25 BCD DATA 2
MICROCONTROLLER LAB MANUAL| 14
INPUT OUTPUT
DATA DATA
ADDRESS COMMENTS ADDRESS COMMENTS
S1 S2 S1 S2
4701 19 DATA 1 4850 3E SUM
4703 25 DATA 2 4851 00 STATUS OF CARRY
RESULT :
MICROCONTROLLER LAB MANUAL| 15
INPUT OUTPUT
DATA COMMENTS ADDRESS DATA COMMENTS
ADDRESS
S1 S2 S1 S2 PRODUCT
DATA 1 LOB
DATA 2 HOB
B) MEMORY OPERANDS:
LENGTH
LABEL MNEMONICS ADDR. HEX. CODE COMMENT
IN BYTES
MOV DPTR,# 3 (DPTR) ------------
MOVX A,@DPTR 1 (A) ((DPTR))
MOV B,A 2 (B) (A)
INC DPTR 1 (DPTR) (DPTR) +1
MOVX A, @DPTR 1 (A) ((DPTR))
After (A) * (B) ;
MUL AB 1 (A) LOB of the product
(B) HOB of the product
MOV DPTR, # 3 (DPTR)
MOVX @DPTR,A 1 ((DPTR)) (A)
MOV A,B 2 (A)
(MEMORY) (B)SUM
INC DPTR 1 (DPTR) (DPTR) +1
MOVX @DPTR,A 1 ((DPTR)) (A)
HERE: SJMP HERE 2 (MEMORY) SUM
INPUT OUTPUT
DATA DATA COMMENTS
ADDRESS S1 S2 COMMENTS ADDRES S1 S2 [PRODUCT]
DATA 2 LOB
DATA 1 HOB
MICROCONTROLLER LAB MANUAL| 16
INPUT OUTPUT
DATA COMMENTS ADDRESS DATA COMMENTS
ADDRESS
S1 S2 S1 S2
DATA 1 QUOTIENT
DATA 2 REMAINDER
B) MEMORY OPERANDS:
LENGTH
LABEL MNEMONICS ADDR. HEX. CODE COMMENT
IN BYTES
MOV DPTR,# 3 (DPTR) ------------H
MOVX A,@DPTR 1 (A) ((DPTR))
MOV B,A 2 (B) (A)
INC DPTR 1 (DPTR) (DPTR) +1
MOVX A, @DPTR 1 (A) ((DPTR))
After (A) / (B) ;
DIV AB 1 (A) QUOTIENT
(B) REMAINDER
MOV DPTR, # 3 (DPTR) -----------H
MOVX @DPTR,A 1 ((DPTR)) (A)
MOV A,B 2 (A)
(MEMORY) (B)SUM
INC DPTR 1 (DPTR) (DPTR) +1
MOVX @DPTR,A 1 ((DPTR)) (A)
HERE: SJMP HERE 2 (MEMORY) SUM
INPUT OUTPUT
DATA COMMENTS ADDRESS DATA COMMENTS
ADDR
S1 S2 S1 S2
DATA 2 QUOTIENT
DATA 1 REMAINDER
MICROCONTROLLER LAB MANUAL| 17
INPUT INPUT
DATA1 COMMENTS DATA1 COMMENTS
ADDRESS ADDRESS
S1 S2 S1 S2
BYTE 1 [LOB] BYTE 1 [LOB]
BYTE 2 BYTE 2
BYTE 3 [HOB] BYTE 3 [HOB]
INPUT INPUT
DATA2 COMMENTS DATA2 COMMENTS
ADDRESS ADDRESS
S1 S2 S1 S2
BYTE 1 [LOB] BYTE 1 [LOB]
BYTE 2 BYTE 2
BYTE 3 [HOB] BYTE 3 [HOB]
OUTPUT1 OUTPUT1
OUTPUT2 OUTPUT2
DATA COMMENTS DATA COMMENTS
ADDRESS ADDRESS
S1 S2 (SUM) S1 S2 (DIFFERENCE)
LENGTH
LABEL MNEMONICS ADDRESS HEX. CODE COMMENT
IN BYTES
MOV DPTR, # 3
MOVX A, @DPTR 1
MOV R0, A 1
MOV B, #00H 3
MOV R1,B 2
INC DPTR 1
START: CLR C 1
MOVX A, @DPTR 1
ADD A, B 2
MOV B, A 2
JNC SUN 2
INC R1 1
MOV DPTR, # 3
MOV A, B 2
MOVX @DPTR, A 1
INC DPTR 1
MOV A, R1 1
MOVX @DPTR, A 1
INPUT OUTPUT
DATA1 COMMENTS ADDRESS DATA2 COMMENTS
ADDRESS
S1 S2 S1 S2 SUM
‘N’ VALUE
LOB
DATA 1
DATA 2
HOB
DATA 3
MICROCONTROLLER LAB MANUAL| 20
ASCENDING/DESCENDING ORDER
AIM: TO WRITE A PROGRAM TO ARRANGE THE GIVEN SET OF NUMBERS IN ASCENDING/DESCENDING ORDER.
LENGTH
LABEL MNEMONICS ADDRESS HEX. CODE COMMENT
IN BYTES
MOV R0, #03H 2
AG: MOV DPTR, # 3
MOV R1, #03H 2
BACK: MOV R2, DPL 2
MOVX A, @DPTR 1
MOV B, A 2
INC DPTR 1
MOVX A, @DPTR 1
CJNE A, B, NE 3
SJMP SKIP 2
NE: JC SKIP / JNC SKIP 2
MOV DPL, R2 2
(JC SKIP)
MOVX @DPTR, A 1
INC DPTR 1
MOV A, B 2
MOVX @DPTR, A 1
SKIP: DJNZ R1, BACK 2
DJNZ R0, AG 2
HERE: SJMP HERE 2
ASCENDING ORDER:
INPUT OUTPUT
DATA1 COMMENTS ADDRESS DATA2 COMMENTS
ADDRESS
S1 S2 S1 S2 SORTED LIST
DATA 1
DATA 2
DATA 3
DATA 4
DESCENDING ORDER:
INPUT OUTPUT
DATA1 COMMENTS ADDRESS DATA2 COMMENTS
ADDRESS
S1 S2 S1 S2 SORTED LIST
DATA 1
DATA 2
DATA 3
DATA 4
MICROCONTROLLER LAB MANUAL| 21
BLOCK TRANSFER
AIM : TO WRITE A PROGRAM TO TRANSFER THE ENTIRE GROUP OF DATA STARTING AT -------H TO NEW PLACE
STARTING AT -----H.
LENGTH
SNO LABEL MNEMONICS IN BYTES
ADDRESS HEX. CODE COMMENT
01 MOV DPTR, # 3
02 MOVX A, @DPTR 1
03 MOV R3, A 1
04 MOV R4, A 3
07 MOVX A, @DPTR 1
08 MOV @R0, A 1
09 INC R0 1
12 MOV DPTR, # 3
14 MOVX @DPTR, A 1
15 INC R0 1
16 INC DPTR 1
INPUT OUTPUT
DATA1 COMMENTS ADDRESS DATA2 COMMENTS
ADDRESS
S1 S2 [SOURCE BLOCK] S1 S2 [DESTINATION BLOCK ]
‘N’ VALUE DATA 1
DATA 1 DATA 2
DATA 2 DATA 3
DATA 3 DATA 4
DATA 4
MICROCONTROLLER LAB MANUAL| 22
LENGTH
SNO LABEL MNEMONICS ADDRESS HEX. CODE COMMENT
IN BYTES
01 MOV DPTR, # 3
02 MOVX A, @DPTR 1
03 MOV B, A 2
04 SWAP A 1
05 ANL A, #0FH 2
06 INC DPTR 1
07 MOVX @DPTR, A 1
08 MOV A, B 2
09 ANL A, #0FH 2
10 INC DPTR 1
11 MOVX @DPTR, A 1
12 HLT: SJMP HLT 2
INPUT OUTPUT
CONTENTS COMMENTS ADDRESS CONTENTS COMMENTS
ADDRESS
S1 S2 S1 S2 UNPACKED BCD
MSD
PACKED BCD
LSD
MICROCONTROLLER LAB MANUAL| 23
INPUT 1 OUTPUT 1
ADDR. CONTENT
ADDR. INSTRUCTION OPCODE
20H 07 06 05 04 03 02 01 00
4850 SETB 02 D2 02 Y AB’ B A
4650H
4852 SETB 03 D2 03
INPUT 2 OUTPUT 2
ADDR. CONTENT
ADDR. INSTRUCTION OPCODE
20H 07 06 05 04 03 02 01 00
4850 SETB 02 D2 02
4650H
4852 CLR 03 C2 03
INPUT 3 OUTPUT 3
ADDR. CONTENT
ADDR. INSTRUCTION OPCODE
20H 07 06 05 04 03 02 01 00
4850 CLR 02 C2 02
4650H
4852 CLR 03 C2 03
INPUT 4 OUTPUT 4
ADDR. CONTENT
ADDR. INSTRUCTION OPCODE
20H 07 06 05 04 03 02 01 00
4850 CLR 02 C2 02
4650H
4852 SETB 03 D2 03
MICROCONTROLLER LAB MANUAL| 24
INPUT INPUT
NOTE : (02) MOV 40H,#00 NOTE : (02) MOV 40H,#FFH
(12) JC LOOP3 (12) JNC LOOP3
ADDRESS S1 S2 COMMENTS ADDRESS S1 S2 COMMENTS
DATA 1 DATA 1
DATA 2 DATA 2
DATA 3 DATA 3
DATA 4 DATA 4
DATA 5 DATA 5
DATA 6 DATA 6
OUTPUT OUTPUT
S1 S2
ADDRESS COMMENTS S1 S2
ADDRESS COMMENTS
LARGEST
NUMBER IN SMALLEST
4773 AN ARRAY 4773 NUMBER IN
AN ARRAY
MICROCONTROLLER LAB MANUAL| 25
LENGTH
LABEL MNEMONICS ADDRESS HEX. CODE COMMENT
IN BYTES
MOV DPTR, # 3
MOVX A, @DPTR 1
MOV R5, #08H 2
MOV R1, #00H 2
CLR C 1
LOOP: RRC A 1
JNC NXT / JC NXT 2
INC R1 1
NXT: (JC
DJNZNXT) (0’S)
R5, LOOP 2
INC DPTR 1
MOV A, R1 1
MOVX @DPTR, A 1
HERE: SJMP HERE 2
INPUT OUTPUT
DATA COMMENTS ADDRESS DATA COMMENTS
ADDRESS
S1 S2 S1 S2
DATA (FOR 1’S) NO OF 1’S
INPUT OUTPUT
DATA COMMENTS ADDRESS DATA COMMENTS
ADDRESS
S1 S2 S1 S2
DATA (FOR 0’S) NO OF 0’S
MICROCONTROLLER LAB MANUAL| 26
LENGTH
SNO LABEL MNEMONICS ADDRESS HEX. CODE COMMENT
IN BYTES
01 MOV DPTR, #4350H 3
02 MOVX A, @DPTR 1
03 MOV R1,A 1
04 MOV R2, #01 2
05 LOOP: MOV A , R1 1
06 MOV B , R2 2
07 DIV AB 1
08 MOV R3, A 1
09 MOV R4 , B 2
10 SUBB A , R2 1
11 JZ Result 2
12 INC R2 1
13 SJMP LOOP 2
14 Result: MOV DPTR , #4450H 3
15 MOV A, R3 1
16 MOVX @DPTR, A 1
17 HERE: SJMP HERE 2
INPUT OUTPUT
DATA COMMENTS CONTENT
ADDRESS ADDRESS COMMENTS
S1 S2 S1 S2
4350 09 DATA 4450 03 SQUARE ROOT
MICROCONTROLLER LAB MANUAL| 27
LENGTH
SNO LABEL MNEMONICS IN BYTES
ADDRESS HEX. CODE COMMENT
01 MOV DPTR, #4350H 3
02 MOVX A, @DPTR 1
03 MOV R0,A 1
04 MOV A, #01 2
05 MOV B,A 2
06 MOV R1 , A 1
07 LOOP: MUL AB 1
08 MOV R5, B 2
09 MOV B , A 2
10 MOV A , R1 1
11 INC A 1
12 MOV R1 , A 1
13 DJNZ R0 ,LOOP 2
14 INC DPTR 1
15 MOV A, R5 1
16 MOVX @DPTR, A 1
17 INC DPTR 1
18 MOV A, B 2
19 MOVX @DPTR, A 1
20 HERE: SJMP HERE 2
INPUT OUTPUT
DATA COMMENTS ADDRESS CONTENT COMMENTS
ADDRESS
S1 S2 S1 S2 FACTORIAL
4351 HOB
4350 DATA
4352 LOB
MICROCONTROLLER LAB MANUAL| 28
LOGICAL OPERATIONS;
A) 1’S AND 2’S COMPLEMENT OF 8 BIT NUMBERS
AIM : TO WAP TO FIND 1’S AND 2’S COMPLEMENT OF GIVEN 8 BIT NUMBER.
LENGTH
LABEL MNEMONICS IN BYTES
ADDRESS HEX. CODE COMMENT
MOV A, #DATA 2
CPL A 1
MOV DPTR, # 3
MOVX @DPTR, A 1
INC A 1
INC DPTR 1
MOVX @DPTR, A 1
HERE: SJMP HERE 2
INPUT OUTPUT
DATA COMMENTS ADDRESS CONTENT COMMENTS
ADDRESS
S1 S2 S1 S2
1’S COMPLEMENT
DATA
2’S COMPLEMENT
B) SET SPECIFIC BIT OF AN 8 BIT NUMBER : AIM : TO SET THE THIRD & FIFTH BIT OF DATA 1
LENGTH
LABEL MNEMONICS ADDRESS HEX. CODE COMMENT
IN BYTES
MOV A, #DATA1 2
MOV R2, #DATA2 2
ORL A, R2 1
MOV DPTR, # 3
MOVX @DPTR, A 1
HERE: SJMP HERE 2
INPUT OUTPUT
DATA COMMENTS DATA
ADDR ADDR COMMENTS
S1 S2 S1 S2
DATA 1
RESULT OF LOGIC OR
28 28 DATA 2
MICROCONTROLLER LAB MANUAL| 29
INPUT OUTPUT
DATA COMMENTS DATA
ADDR ADDR COMMENTS
S1 S2 S1 S2
DATA 1
RESULT OF LOGIC AND
7E 7E DATA 2
INPUT OUTPUT
DATA COMMENTS DATA
ADDR ADDR COMMENTS
S1 S2 S1 S2
DATA 1
RESULT OF LOGIC XOR
DATA 2
MICROCONTROLLER LAB MANUAL| 30
NUMBER CONVERSION :
A) DECIMAL TO HEXADECIMAL CONVERSION
AIM: TO WAP TO CONVERT DECIMAL NUMBER INTO ITS HEXA DECIMAL EQUIVALENT.
LENGTH
LABEL MNEMONICS ADDRESS HEX. CODE COMMENT
IN BYTES
MOV DPTR, # 3
MOVX A, @DPTR 1
MOV R5, A 1
MOV B, #0AH 3
ANL A, #F0H 2
SWAP A 1
MUL AB 1
MOV R2, A 1
MOV A, R5 1
ANL A, #0FH 2
ADD A, R2 1
INC DPTR 1
MOVX @DPTR, A 1
HERE: SJMP HERE 2
INPUT OUTPUT
DATA COMMENTS ADDRESS DATA COMMENTS
ADDRESS
S1 S2 S1 S2
BCD HEXA
MICROCONTROLLER LAB MANUAL| 31
LENGTH
LABEL MNEMONICS ADDRESS HEXA CODE COMMENT
IN BYTES
MOV DPTR, # 3
MOVX A, @DPTR 1
MOV B, #64H 3
DIV AB 1
MOV DPTR, # 3
MOVX @DPTR, A 1
MOV A, B 2
MOV B, #0AH 3
DIV AB 1
INC DPTR 1
MOVX @DPTR, A 1
INC DPTR 1
MOV A, B 2
MOVX @DPTR, A 1
HLT: SJMP HLT 2
INPUT OUTPUT
DATA1 COMMENTS ADDRESS DATA2 COMMENTS
ADDRESS
S1 S2 S1 S2 BCD
100’S
HEXA 10’S
1’S
MICROCONTROLLER LAB MANUAL| 32
LENGTH
LABEL MNEMONICS ADDRESS HEX. CODE COMMENT
IN BYTES
MOV DPTR, # 3
MOV A, #DATA 2
CLR C 1
SUBB A, #30H 2
CLR C 1
SUBB A, #0AH 2
JC STR 2
MOV A, #FFH 2
SJMP LI 2
ASCII BCD ASCII BCD ASCII BCD ASCII BCD ASCII BCD
30 00 31 01 32 02 33 03 34 04
35 05 36 06 37 07 38 08 39 09
INPUT OUTPUT
DATA1 ADDRESS DATA2 COMMENTS
ADDRESS COMMENTS
S1 S2 S1 S2
ASCII BCD
MICROCONTROLLER LAB MANUAL| 33
AIM: TO WRITE AND EXEXCUTE AN ALP FOR FINDING THE LCM OF TWO HEXADECIMAL NUMBERS PLACED AT
ADDRESS 436AH AND 436BH, AND STORE THE RESULT AT ADDRESS 436CH.
LENGTH
SNO LABEL MNEMONICS IN BYTES
ADDR HEX. CODE COMMENTS
01 MOV DPTR, #436AH 3
02 MOVX A, @DPTR 1
03 MOV R0, A 1
04 INC DPTR 1
05 MOVX A, @DPTR 1
06 MOV R1,A 1
07 NXTD: MOV R2,A 1
08 MOV B ,R0 2
09 DIV AB 1
10 MOV R3,B 2
11 CJNE R3,#00,NXT 3
12 MOV A,R2 1
13 INC DPTR 1
14 MOVX @DPTR, A 1
15 HLT: SJMP HLT 2
16 NXT: MOV A,R2 1
17 ADD A,R1 1
18 SJMP NXTD 2
SLNO INPUT IN
HEXA MULTIPLES IN DECIMAL
DECIMAL
DECIMAL
1 02 02 2,4,6,8,10,12,14,16,18,20,22,….
2 05 05 5,10,15,20,25,30,35,40,45,…..
3 10 0A 10,20,30,40,50,60,70,80,90,….
4 16 10 16,32,48,64,80,96,….
4
MICROCONTROLLER LAB MANUAL| 34
INPUT IN INPUT IN
DIVISORS IN
SLNO HEXA SLNO HEXA DIVISORS IN DECIMAL
DECIMAL DECIMAL DECIMAL
DECIMAL DECIMAL
1 08 02 1,2,4,8 5 14 0E 1,2,7,14
2 09 05 1,3,9 6 16 10 1,2,4,8,16
3 10 0A 1,2,5,10 7 21 15 1,3,7,21
4 12 0C 1,2,3,4,6,12 8 28 1C 1,2,4,7,14,28
12 MOV A,R0 1
13 SETB ACC.7 2
14 SJMP STOR 2
15 EVOD: MOV A,R0 1
16 STOR: INC DPTR 1
17 MOVX @DPTR,A 1
18 HLT: SJMP HLT 2
JB ACC.0, EVOD
INPUT OUTPUT
SLNO DATA AT ADDRESS 4665H Result at address 4666h
AIM :
TO WRITE A PROGRAM THAT GENERATE A TIME DELAY OF ------ SECONDS WITH 8051 AT THE CLOCK RATE
OF 11.0592MHZ.[ INTERFACING DAC ]
LENGTH
SNO LABEL MNEMONICS ADDRESS HEX. CODE COMMENT
IN BYTES
01 MOV DPTR, #FFC0H 3
02 MOV A, #00H 2
03 HERE: CPL A 1
04 MOVX @DPTR, A 1
05 LCALL DELAY 3
06 SJMP HERE 2
07 DELAY: MOV R0, #C4H 2
08 MOV TMOD, #10H 3
09 LOOP1: MOV TH1, #00H 3
10 MOV TL1, #00H 3
11 SETB TR1 2
12 AGAIN: JNB TF1, AGAIN 3
13 CLR TR1 2
14 CLR TF1 2
15 DJNZ R0, LOOP1 2
16 RET 1
STEPPER MOTOR
LENGTH
SNO LABEL MNEMONICS ADDRESS HEX. CODE COMMENTS
IN BYTES
01 START: MOV DPTR, #463AH 3
02 MOV R0, #04H 2
03 JO: MOVX A, @DPTR 1
04 PUSH DPH 2
05 PUSH DPL 2
06 MOV DPTR, #FFC0H 3
07 MOV R2, #04H 2
08 MOV R1, #0FH 2
09 DLY1: MOV R3, #0FH 2
10 DLY: DJNZ R3, DLY 2
11 DJNZ R1, DLY1 2
12 DJNZ R2, DLY1 2
13 MOVX @DPTR, A 1
14 POP DPL 2
15 POP DPH 2
16 INC DPTR 1
17 DJNZ R0, JO 2
18 SJMP START 2
ADDRESS PORT A D8 D7 D6 D5 D4 D3 D2 D1
ADDRESS PORT B D8 D7 D6 D5 D4 D3 D2 D1
ADDRESS PORT C D8 D7 D6 D5 D4 D3 D2 D1
4200 88 DATA 1 1 0 0 0 1 0 0 0
4201 80 DATA2 1 0 0 0 0 0 0 0
S1
4202 C6 DATA3 1 1 0 0 0 1 1 0
4203 C0 DATA4 1 1 0 0 1 0 0 0
4200 DATA 1
4201 DATA2
S2
4202 DATA3
4203 DATA4
4200 DATA 1
4201 DATA2
S3
4202 DATA3
4203 DATA4
MICROCONTROLLER LAB MANUAL| 42
ADC/DAC INTERFACING
AIM:TO WRITE THE PROGRAM OF ANALOG TO DIGITAL CONVERSION PROCESS.
LABEL LENGTH COMMENT
MNEMONICS ADDRESS HEX.CODE
IN BYTES
MOV DPTR, #0FFC8H 3 4100 90 FF C8
MOV A,#10 2 4103 74 10
MOVX @DPTR,A 1 4105 F0
MOV A,#18 2 4106 74 18
MOVX @DPTR,A 1 4108 F0
HERE: SJMP HERE 2 4109 80 FE
OUTPUT:
S.NO ANALOG I/P DIGITAL O/P S.NO ANALOG I/P DIGITAL O/P
1 1.32 0000 0010 = 02 1
2 2.12 0110 1111 = 6F 2
3 3.13 1010 0101 = A5 3
4 3.87 1100 1101 = CD 4
5 4.87 1111 1111 = FF 5
SYLLABUS :