Mesl Manual
Mesl Manual
ENGINEERING
INSTRUCTION MANUAL
FOR
U15EEP602
MICROPROCESSOR AND EMBEDDED
SYSTEMS LABORATORY
1
Department of
_______________________________________
LABORATORY RECORD
Name :__________________ Roll No.:__________
Place:
__________________________________
PRE-REQUISITE
Microprocessor, Embedded Systems
CO/PO Mapping
(S/M/W indicates strength of correlation) S-Strong, M-Medium, W-Weak
Programme Outcomes(POs) PSOs
COs
PO1 PO2 PO3 PO4 PO5 PO6 PO7 PO8 PO9 PO10 PO11 PO12 PSO1 PSO2
CO1 S M W
CO2 M S W M
CO3 M S W
CO4 M S W M
CO5 S W M
CO6 S S M W W M
Direct Indirect
1. Laboratory Exercise 1. Course Exit Survey
2. Model Exam
3. End Semester Exam
LIST OF EXPERIMENTS
a) MICROPROCESSOR LABORATORY
INTRODUCTION
a) OBJECTIVE:
i) To perform 8-bit addition, subtraction, multiplication and division in 8085
microprocessors.
ii) To perform 16-bit addition and subtraction in 8085 microprocessors.
ACQUISITION
a) MATERIALS REQUIRED
b) ALGORITHM:
8 BIT ADDITION
IMMEDIATE ADDRESSING MODE:
STEP:1: Start the program.
2: Load the number to the accumulator using immediate addressing mode
3. Load the number to the B register using immediate addressing mode
4: Add the numbers.
5: Store the accumulator content in a memory location.
6: Stop the program.
INDIRECT ADDRESSING MODE:
STEP:1: Start the program.
2: Initialize HL Memory pointer
3: Content of the memory location is transferred to the accumulator.
4: Increment the address of HL pair.
5: Add the memory content to the accumulator.
6: Increment the address of HL pair
7: Transfer the accumulator content to the memory location.
8: Stop the program.
DIRECT ADDRESSING MODE:
STEP:1: Start the program.
2: Load the first data into the accumulator.
3: Move the content of accumulator to B register
4: Load the second data into the accumulator.
5: The accumulator content is added with the B register content.
6: Store accumulator content to a memory location.
7: Stop the program.
RESULT:
INPUT: 09, 02
OUTPUT: B
8 BIT SUBTRACTION
ALGORITHM:
RESULT:
INPUT : 05 , 02
OUTPUT : 03
8 BIT MULTIPLICATION
ALGORITHM:
RESULT:
INPUT: 04, 03
OUTPUT: 0C
8 - BIT DIVISION
ALGORITHM:
STEP:1: Start the program.
2: Initialize the dividend, divisor and counter.
3: Shift left the dividend and quotient.
4: If divisor is greater than the dividend decrease the count and if count is
not zero, repeat step 3.
5: If divisor is lesser than dividend and store the resulting value as
dividend.
6: Decrement the count and repeat step 3.
7. Now, the lower register of the register pair contains quotient while the
other contains the remainder.
8. Stop the program.
RESULT:
INPUT: 08, 04
OUTPUT: A= 2,, B= 0
MULTIBYTE ADDITION
ALGORITHM:
MNEMONIC
HEXADECIMAL HEXADECIMAL COMMENTS
INSTRUCTION
ADDRESS OPCODE LABLE INSTR. OPERAND
4100 2A LHLD 4150
4101 50
4102 41
4103 EB XCHG D
4104 2A LHLD 4152
4105 52
4106 41
4107 19 DAD D
4108 22 SHLD 4250
4109 50
410A 42
410B 76 HLT
RESULT:
INPUT: 2345, 1234
OUTPUT :3579
MULTIBYTE SUBTRACTION
ALGORITHM:
RESULT:
INTRODUCTION
OBJECTIVE:
To perform the following operations using control instructions
o Increment/Decrement of numbers
o Sum of array of given numbers
o Largest and smallest of given numbers
o Ascending and Descending order.
ACQUISITION
MATERIALS REQUIRED
ALGORITHM:
a. Increment
PROGRAM: DECREMENT
RESULT:
INPUT: 09
OUTPUT:10
SUM OF ARRAY OF GIVEN NUMBERS
ALGORITHM:
MNEMONIC
HEXADECIMAL HEXADECIMAL COMMENTS
INSTRUCTION
ADDRESS OPCODE LABLE INSTR. OPERAND
4100 21 START LXI H,4200 HL4200
4101 00
4102 42
4103 16 MVI D,04
4104 03
4105 7E MOV A, M
4106 23 LOOP INX H Increment HL pair
4107 8E ADD M Add the data
4108 15 DCR D
4109 C2 JNZ LOOP If D0, LOOP
410A 06
410B 41
410C 23 INX H Increment the H
410D 77 MOV M, A
410E 76 HLT
RESULT:
INPUT: 01, 02, 03, 04, 05
OUTPUT: 0F
LARGEST OF ‘n’ NUMBERS
ALGORITHM:
Step 1: Start
2: Store (N-1) no of data in data table-1
3: Load accumulator with the content of memory location which is
stored in register pair DE initially memory location in DE.
4: Compare A with the content at the next memory location.
5: Check if carry is let, if no go to 8
6: Clear carry
7: Move the memory content to A
8: Initialize next memory location
9: Decrement C
10: Check result is 0 if no go to 4
11: Store the content of A eargest no data table
12: Stop.
RESULT:
INPUT: 02,0A, 03
OUPUT: 0A
ALGORITHM:
Step 1: Start
2: Store (N-1) in Register C
3: Load Register part DE with lower & upper value of memory address
4: Load the data to from memory location .whose address is stored in DE.
5: Initialize the next memory address of data values thro HL
6: Compare the memory with A
7: Check whether carry is Let YES go to 9
8: Store smallest no 5A
9: Clear Carry
10: Initialize the new memory address thro HL
11: Decrement register C
12: Check whether result is 0 if no go to step 6
13: Store the smallest no in a memory location
14: Stop
PROGRAM: SMALLEST OF ‘n’ NUMBERS
RESULT:
OUTPUT:02
ASCENDING ORDER
ALGORTHIM:
Step 1: Start
2: Initialize counter by N-1
3: Initialize memory pointer counter 2 by N-1
4: Get the first no from memory
5: Increment memory pointer
6: Check if the power no is greater than the present no .it yes SWAP
their position decrement counter2
7: Check counter2 is 0 if yes decrement counter else goto 4
8: Check counter1 is 0 if yes stop else goto 3
9: Stop
ASCENDING ORDER
HEXADECIMAL MNEMONIC INSTRUCTION
COMMENTS
ADDRESS OPCODE LABLE INST. OPERAND
4100 06 MVI B,03H Set counter
4101 03
4102 21 START LXI H,4150H Initialize Memory location
4103 50
4104 41
4105 0E MVI C,03H Set counter2
4106 03
4107 7E BACK MOV A,M Get the number
4108 23 INX H
4109 BE CMP M Compare with A
410A DA JNC SKIP If A value is small go to skip
410B 15
410C 41
410D CA JZ SKIP If both are equal go to skip
410E 15
410F 41
4110 56 MOV D,M MD
4111 77 MOV M,A AM
4112 2B DCX H HLHL-1
4113 72 MOV M,D DM
4114 23 INXH H HL=HL+1
4115 0D SKIP DCR C C=C-1
Check counter2 =0 if no go to
4116 C2 JNZ BACK
back
4117 07
4118 41
4119 05 DCR B B=B-1
Check counter =0 if no go to
411A C2 JNZ START
4002
411B 02
411C 41
411D 76 HLT
RESULT:
INPUT: 03, 05, 02
OUTPUT:02, 03, 05
DESCENDING ORDER
ALGORITHM:
Step 1: Start
2: Initialize counter 1 by N-1
3: Initialize memory pointer counter 2 by N-1
4: Get the no from memory
5: Increment memory pointer
6: Check if no SWAP their position else increment counter2
7: Check counter2 is 0 if yes decrement counter1else goto 4
8: Check counter1 is 0 if yes stop else goto 3
9: Stop
PROGRAM: DESCENDING ORDER
RESULT:
a) OBJECTIVE:
To convert the analog voltage into digital and to display the data
ACQUISITION
a) MATERIALS REQUIRED
b) ALGORITHM:
Step1: Start the program
4: Select channel 11
INTRODUCTION
a) OBJECTIVE:
To generate analog waveform - Square, Triangular and Sine wave form digital input
using the microprocessor.
ACQUISITION
a) MATERIALS REQUIRED
7F 8A 95 A0 AH B5 BF C8
D1 D9 E0 E7 ED F2 F7 FA
FC FE FF FF FC FA F7 F2
ED E7 E0 DA D1 C8 BF B5
AA A0 95 8A 7F 74 69 5F
53 49 3F 36 2D 25 1D 17
10 0B 07 04 01 00 01 04
07 0B 10 17 1D 25 2D 36
3F 49 53 5F 69 74
Formula: Sinx =128+128xSinx =Digital Value
It is understood that the 8085 processor does not have any ports. The ports of the
device can communicate with the processor through accumulator only.
RESULT:
Thus, the various analog waveforms were generated using 8085 Microprocessor
Ex No :5
Programs using arithmetic operations-8051
INTRODUCTION:
OBJECTIVE:
To perform addition, subtraction, multiplication, division and store the result in
memory.
ACQUISITION
a) MATERIALS REQUIRED
b) ALGORITHM:
Step1: Start the program
2: Get operand in A
3: Add the two operands with A
4: Store the result in memory
5: Stop the program
PROGRAM: ADDITION:
PROGRAM: SUBTRACTION:
RESULT:
INPUT: 20 10
OUTPUT: 10
MULTIPLICATION
ALGORITHM:
RESULT:
INPUT: 04 02
OUTPUT: 08
DIVISION
ALGORITHM:
RESULTS:
INFERENCE:
Ex No :6
Programs using control instructions-8051
INTRODUCTION:
OBJECTIVE:
ACQUISITION
a) MATERIALS REQUIRED
RESULT
INPUT 4200 – 04
4201 - 01
4202 - 02
4203 - 06
4204 - 08
OUTPUT 4205 – 08
RESULT
INPUT 4200 – 04
4201 - 01
4202 - 02
4203 - 06
4204 - 08
OUTPUT 4205 – 01
RESULT:
INPUT 4500 – 02
4501 - 08
4502 - 04
4503 - 03
4504 - 05
OUTPUT 4500 – 02
4501 - 03
4502 - 04
4503 - 05
4504 - 08
RESULT:
INPUT 4500 – 02
4501 - 08
4502 - 04
4503 - 03
4504 - 05
OUTPUT 4500 – 08
4501 - 05
4502 - 04
4503 - 03
4504 - 02
INFERENCE:
Ex No :7
SPEED CONTROL OF STEPPER MOTOR
INTRODUCTION:
OBJECTIVE:
To Control the speed of stepper motor.
ACQUISITION
a) MATERIALS REQUIRED
b) ALGORITHM:
Step1: Start the program
2: Initialize memory pointer
3: Initialize the counter
4: Move the first data to accumulator
5: Push higher bit address and lower bit address
6: Initialize memory pointer as FFC0
7: Initialize counter2
8: Set delay counter
9: Move the content of accumulator in to memory
10: POP the higher and Lower bit
11: POP the increment pointer
12: Jump again to 4 till counter is zero
13: Jump the step2.
There are three different schemes available for “stepping” a stepper motor. These
are:
(a) Wave scheme
(b) 2-Phase scheme and
(c) Half Stepping or Mixed Scheme.
The switching sequence for the 2-Phase scheme
Anticlockwise Clockwise
Step A A2 B1 B2 Step A1 A2 B1 B2
1
1 1 0 0 1 1 1 0 1 0
2 0 1 0 1 2 0 1 1 0
3 0 1 1 0 3 0 1 0 1
4 1 0 1 0 4 1 0 0 1
2-Phase Scheme:
In this scheme, any two adjacent stator windings are energized. There are two
magnetic fields active in quadrate and none of the rotor pole faces can be indirect
alignment with the stator poles.
PROGRAM: SPEED CONTROL OF STEPPER MOTOR:
HEXADECIMAL MNEMONIC INSTRUCTION
COMMENTS
ADDRESS OPCODE LABLE INST. OPERAND
Initialize data
4100 90 MOV DPTR,#4500H
pointer
4101 45
4102 00
4103 78 MOV R0,#04
4104 04
Data pointer to
4105 E0 JO MOVX A,@DPTR
accumulator
4106 C0 PUSH DPH
4107 83
4108 C0 PUSH DPL
4109 82
410A 90 MOV DPTR,#FFCOH
410B FF
410C C0
410D 7A MOV R2, #01H
410E 01
410F 79 MOV R1,#0FH
4110 22
4111 7B DLY 1 MOV R3,#0FH
4112 FF
4113 DB DLY DJNZ R3,DLY
4114 FE
4115 D9 DJNZ R1,DLY
4116 FC
4117 DA DJNZ R2,DLY
4118 FA
4119 F0 MOV @DPTR, A
411A D0 POP DPL
411B 82
411C D0 POP DPH
411D 83
411E A3 INC DPTR
411F D8 DJNZ R0,J0
4120 E4
4121 80 SJMP START
4122 DD
4123 END
4500 09
4501 05
4502 06
4503 0A
INFERENCE:
Thus, the program for controlling the speed of a stepper motor is written in
8051 and verified.
RESULT:
8051
PROGRAMMING
USING
EMBEDDED C
Ex No :8
LED interfacing to 8051 and Timer Programming
INTRODUCTION:
OBJECTIVE:
To develop embedded C program for LED interfacing to 8051 and Timer
programming.
ACQUISITION
MATERIALS REQUIRED
LED interfacing
#include<reg51.h>
void delay();
void main()
{
while(1)
{
P1=0x00;
delay();
P1=0xff;
delay();
}
}
void delay()
{
int i,j;
for(i=0;i<=2500;i++)
for(j=0;j<=0XFF;j++);
}
Timer programming
#include<reg51.h>
#include<stdio.h>
xdata char *led;
int i,j;
void delay() // Delay generation using
Timer 0 mode 1
{
i=0;
while(i!=500) //take a 1 sec timing
{
TMOD = 0x01; // Mode1 of Timer0
TH0 = 0xfc; // FC66 evaluated hex value for 1
millisecond delay
TL0 = 0x66;
TR0 = 1; // Start Timer
while(TF0 == 0); // Using polling method
TR0 = 0; // Stop Timer
TF0 = 0; // Clear flag
i++;
}
void main()
{
led=0xff23;
while(1)
{
*led=0xaa;
P1=0x00;
delay();
*led=0x55;
P1=0x01;
delay();
*led=0xff;
P1=0x00;
delay();
*led=0x00;
P1=0x01;
delay();
}
}
INFERENCE:
Ex No :9
Rolling display using LCD interface
INTRODUCTION:
OBJECTIVE:
To develop embedded C program for Rolling display using LCD interface.
ACQUISITION
MATERIALS REQUIRED
Program:
#include<reg51.h>
#include<stdio.h>
#include<string.h>
void delay()
{
int i,j;
for(i=0;i<0xf;i++)
for(j=0;j<0xff;j++);
}
void delay1(int val)
{
int i,j;
for(i=0;i<val;i++)
for(j=0;j<val;j++);
}
void busycheck()
{
delay();
sel174 = 0x00;
}
void cmd_write()
{
busycheck();
lcdsel = 0x38;
busycheck();
lcdsel = 0x06;
busycheck();
lcdsel = 0x01;
busycheck();
lcdsel = 0x0f;
busycheck();
lcdsel = 0x0c;
}
void main()
{
cmd_write();
for(j=0;j<4;j++)
{
busycheck();
lcdsel = cmd0[j];
for (i=0;i<8;i++)
{
busycheck();
delay();
delay();
sel174 = 0x01;
lcdsel = array[i];
}
}
for(j=14;j>=0;--j)
{
busycheck();
lcdsel = cmd[j];
for (i=0;i<16;i++)
{
busycheck();
delay();
sel174 = 0x01;
lcdsel = array1[i];
}
if(j==0 && i==16)
{
delay1(100);
while(k!=16)
{
busycheck();
lcdsel=0xc0;
for(l=k;l<16;l++)
{
busycheck();
delay();
sel174 = 0x01;
delay();
lcdsel=array1[l];
}
k++;
}
}
if(k==16)
{
delay1(200);
busycheck();
lcdsel=0xc0;
for(i=0;i<15;i++)
{
busycheck();
delay();
sel174 = 0x01;
delay();
lcdsel=array1[i];
}
if(i==15)
break;
}
}
while(1);
INFERENCE:
Ex No :10
Serial communication
INTRODUCTION:
OBJECTIVE:
To develop embedded C program for serial communication using 8051
microcontroller.
ACQUISITION
MATERIALS REQUIRED
Program:
#include<reg51.h>
#include<string.h>
#include<stdio.h>
unsigned char c;
void serial_init()
{
TMOD = 0X20; // timer mode select
TH1 = 0XFD; // baud rate select
TI = 1;
TR1 = 1; // timer on
SCON = 0X53; // serial comm enable
}
void delay(int m)
{
int i,j;
for(i=0;i<m;i++)
for(j=0;j<m;j++);
}
void main()
{
serial_init();
while(1)
{
RI=0;
while(RI==0);
c=SBUF; //rx buffer
TI=0;
SBUF=c; //tx buffer
while(TI==0);
}
}
INFERENCE:
Ex No :11
PWM Generation
INTRODUCTION:
OBJECTIVE:
To develop embedded C program for generation of pulse width modulation signal for
8051 controllers.
ACQUISITION
MATERIALS REQUIRED
Program:
#include <reg51.h>
#include<stdio.h>
//pin configure
sbit CEX0 = 0x93;//(0x93 is bit address)P1.3 4th Pin
int val;
void timer0()
{
TMOD=0x02;
TH0=0xFF;
TCON=0x30; // Start Timer0
}
void main()
{
timer0();
CMOD = 0x04; // PCA Count Pulse Select bit 1
CCAPM0 = 0x42; // PCA0 : Set to PWM Mode
CCON = 0x40; // PCA0 : Output Enable & Run PCA
while (1)
{
val=sw_data;
CCAP0H = val; //set range between 0x00 to 0xFF 0x7F is for 50% duty
cycle
}
}
INFERENCE:
Ex No :12
Temperature Monitoring System
INTRODUCTION:
OBJECTIVE:
To develop embedded C program for generation of pulse width modulation signal for
8051 controllers.
ACQUISITION
MATERIALS REQUIRED
Program:
#include<reg51.h>
#include<stdio.h>
#define LOW 00;
#define HIGH 01;
sbit SCLK=P3^2;
sbit SDA =P3^3;
bit ACK;
}
void Delay_Time()
{ unsigned long int i;
for(i=0;i<500;i++);
}
*led=0x00;
P1=0x00;
if(adc_data>0x00 && adc_data<0x0c)
{
// printf("below 30°C\r\n");
*led=0x29;
P1=0x01;
delay();
}
else if((adc_data==0x0d)||(adc_data==0x0e))
{
// printf("Temp-> 30°C\r\n");
*led=0x30;
P1=0x01;
delay();
}
else if((adc_data==0x10)||(adc_data==0x0f))
{
// printf("Temp-> 31°C\r\n");
*led=0x31;
P1=0x00;
delay();
}
else if((adc_data<=0x14)&&(adc_data>=0x11))
{
// printf("Temp-> 32°C\r\n");
*led=0x32;
P1=0x00;
delay();
}
else if((adc_data>=0x15)&&(adc_data<=0x18))
{
// printf("Temp-> 33°C\r\n");
*led=0x33;
P1=0x00;
delay();
}
else if((adc_data>=0x19)&&(adc_data<=0x1c))
{
// printf("Temp-> 34°C\r\n");
*led=0x34;
P1=0x00;
delay();
}
else
if((adc_data==0x20)||(adc_data==0x1d)||(adc_data==0x1e)||(adc_data==0x1f)
)
{
// printf("Temp-> 35°C\r\n");
*led=0x35;
P1=0x00;
delay();
}
else if((adc_data==0x22)||(adc_data==0x21))
{
// printf("Temp-> 36°C\r\n");
*led=0x36;
P1=0x00;
delay();
}
else if((adc_data==0x24)||(adc_data==0x23))
{
// printf("Temp-> 37°C\r\n");
*led=0x37;
P1=0x00;
delay();
}
else if((adc_data==0x26)||(adc_data==0x25)||(adc_data==0x27))
{
// printf("Temp-> 38°C\r\n");
*led=0x38;
P1=0x00;
delay();
}
else if((adc_data==0x28)||(adc_data==0x29)||(adc_data==0x2a))
{
// printf("Temp-> 39°C\r\n");
*led=0x39;
P1=0x01;
delay();
}
else
if((adc_data==0x2b)||(adc_data==0x2c)||(adc_data==0x2d)||(adc_data==0x2e
)||(adc_data==0x2f))
{
// printf("Temp-> 40°C\r\n");
*led=0x40;
P1=0x01;
delay();
}
else
if((adc_data==0x30)||(adc_data==0x31)||(adc_data==0x32)||(adc_data==0x33
))
{
// printf("Temp-> 41°C\r\n");
*led=0x41;
P1=0x01;
delay();
}
else if((adc_data>=0x34)&&(adc_data<0xff))
{
// printf("Above 40°C\r\n");
*led=0x42;
P1=0x01;
delay();
}
}
/////////////////////////////////I2C protocol////////////////////////////////////////////
void I2C_START()
{
SCLK =LOW;
SDA =LOW;
Delay_Time();
Delay_Time();
SCLK=HIGH;
Delay_Time();
Delay_Time();
SDA=HIGH;
Delay_Time();
Delay_Time();
SDA=LOW;
Delay_Time();
Delay_Time();
SCLK=LOW;
}
void I2C_STOP()
{
SCLK=LOW;
Delay_Time();
Delay_Time();
SDA=HIGH;
}
//////////////////////////////////MAIN FUN////////////////////////////////////
void main()
{
//ser_int();
led=0xff23;
I2C_START();
I2C_WRITE(0X9e); //slave address
I2C_WRITE(0X42); //slave cmd
while(1)
{
I2C_START();
I2C_WRITE(0x9f);
temp_read= I2C_READ();
lcd_dispaly(temp_read);
I2C_STOP();
I2C_START();
I2C_WRITE(0x9f);
temp_read=I2C_READ();
lcd_dispaly(temp_read);
I2C_STOP();
}
}
INFERENCE:
PIC 16F877
PROGRAMMING
USING
EMBEEDED C
Ex No :13
PWM generation of 3 phase inverters
INTRODUCTION:
OBJECTIVE:
To develop embedded C program for generation of pulse width modulation signal for
controlling of 3 phase inverter using PIC 16F877 controllers.
ACQUISITION
MATERIALS REQUIRED
Program:
INFERENCE:
Ex No :14
Speed sensing and monitoring from PC
INTRODUCTION:
OBJECTIVE:
To develop embedded C program for Speed sensing and monitoring from PC using PIC
16F877 controllers.
ACQUISITION
MATERIALS REQUIRED
Program:
INFERENCE:
2F 1 ADD A,R7
Hex Number Mnemo- Operands 30 3 JNB bit addr, code addr
Code of Bytes nic 31 2 ACALL code addr
00 1 NOP 32 1 RETI
33 1 RLC A
01 2 AJMP code addr 34 2 ADDC A,#data
02 3 LJMP code addr 35 2 ADDC A,data addr
03 1 RR A 36 1 ADDC A,@R0
04 1 INC A 37 1 ADDC A,@R1
05 2 INC data addr 38 1 ADDC A,R0
06 1 INC @R0 39 1 ADDC A,R1
07 1 INC @R1 3A 1 ADDC A,R2
08 1 INC R0 3B 1 ADDC A,R3
09 1 INC R1 3C 1 ADDC A,R4
0A 1 INC R2 3D 1 ADDC A,R5
0B 1 INC R3 3E 1 ADDC A,R6
0C 1 INC R4 3F 1 ADDC A,R7
0D 1 INC R5 40 2 JC code addr
0E 1 INC R6 41 2 AJMP code addr
0F 1 INC R7 42 2 ORL data addr,A
10 3 JBC bit addr, code addr 43 3 ORL data addr,#data
11 2 ACALL code addr 44 2 ORL A,#data
12 3 LCALL code addr 45 2 ORL A,data addr
13 1 RRC A 46 1 ORL A,@R0
14 1 DEC A 47 1 ORL A,@R1
15 2 DEC data addr 48 1 ORL A,R0
16 1 DEC @R0 49 1 ORL A,R1
17 1 DEC @R1 4A 1 ORL A,R2
18 1 DEC R0 4B 1 ORL A,R3
19 1 DEC R1 4C 1 ORL A,R4
1A 1 DEC R2 4D 1 ORL A,R5
1B 1 DEC R3 4E 1 ORL A,R6
1C 1 DEC R4 4F 1 ORL A,R7
1D 1 DEC R5 50 2 JNC code addr
1E 1 DEC R6 51 2 ACALL code addr
1F 1 DEC R7 52 2 ANL data addr,A
20 3 JB bit addr, code addr 53 3 ANL data addr,#data
21 2 AJMP code addr 54 2 ANL A,#data
22 1 RET 55 2 ANL A,data addr
23 1 RL A 56 1 ANL A,@R0
24 2 ADD A,#data 57 1 ANL A,@R1
25 2 ADD A,data addr 58 1 ANL A,R0
26 1 ADD A,@R0 59 1 ANL A,R1
27 1 ADD A,@R1 5A 1 ANL A,R2
28 1 ADD A,R0 5B 1 ANL A,R3
29 1 ADD A,R1 5C 1 ANL A,R4
2A 1 ADD A,R2 5D 1 ANL A,R5
2B 1 ADD A,R3 5E 1 ANL A,R6
2C 1 ADD A,R4 5F 1 ANL A,R7
2D 1 ADD A,R5 60 2 JZ code addr
2E 1 ADD A,R6 61 2 AJMP code addr