Professional Documents
Culture Documents
VI SEM
----------------------------------------------------------------------------------------------------------------------------
CONTENTS
Sl.no.
1.
Experiments
page no.
Introduction
01-12
I. PROGRAMMING
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
14-19
20-21
22-25
26-27
28-29
30-31
32-33
34-35
36-37
38-39
II. INTERFACING
12.
13.
14.
15.
16.
17.
18.
42-49
50-53
54-59
60-63
64-69
70-72
73-75
MICROCONTROLLER LAB
VI Sem
----------------------------------------------------------------------------------------------------------------------
INTRODUCTION
MICROCONTROLLER LAB
VI Sem
----------------------------------------------------------------------------------------------------------------------
Features of 8051:
1. It is a PIC Microcontroller with a ROM of 4K bytes.
2.
3.
4.
5.
6.
MICROCONTROLLER LAB
VI Sem
----------------------------------------------------------------------------------------------------------------------
MICROCONTROLLER LAB
VI Sem
----------------------------------------------------------------------------------------------------------------------
SMOD Double baud rate bit. If Timer 1 is used to generate baud rate end SMOD = 1, the baud rate is
doubled
when the Serial Port is used in modes 1, 2, or 3.
Not implemented, reserved for future w.*
Not implemented reserved for future w.*
Not implemented, reserved for future use.
GF1-General purpose flag bit.
GFO -General purpose flag bit.
PD -Power Down bit. Setting this bit activates Power Down operation in the 80C51BH. (Available
only in CHMOS).
IDL -Idle Mode bit. %.this bit activates Idle Mode operation in the 80C51BH. (Available only in
CHMOS).
INTERRUPTS:
In order to use any of the interrupts in the MCS-51, the following three steps must be taken. 1. Set the
EA (enable all) bit in the IE register to 1.
2. Set the corresponding individual interrupt enable bit in the IE register to 1.
3. Begin the interrupt service routine at the corresponding Vector Address of that interrupt. See
Table below.
MICROCONTROLLER LAB
VI Sem
---------------------------------------------------------------------------------------------------------------------In addition, for external interrupts, pins~ and INT1 (P3.2and P3.3)must be set to 1,and depending on
whether the interrupt is to be level or transition activated, bits ITO or IT1 in the TCON register may
need to be set to 1.
ITx = O level activated
ITx = 1 transition activated
MICROCONTROLLER LAB
VI Sem
--------------------------------------------------------------------------------------------------------------------- IP.7- Not implement reserved for future use.*
IP.6- Not implemented, reserved for future use.*
PT2 -IP.5- Defines the Timer 2 interrupt priority level (8052only).
PS -IP.4- Defines the Serial Port interrupt priority level.
PT1 -IP.3- Defines the Timer 1interrupt priority level.
PXl - 1P.2- Defines External Interrupt 1 priority level.
PT0- 1P.1- Defines the Timer0 interrupt priority level
PX0 -1P.O- Defines the External Interrupt O priority level..
GATE - When TRX(in TCON)is set and GATE = 1,TIMER/COUNTERx will run only while INTX
pin is high (hardware control).When GATE = O,TWIER./C0UNTERx will run only while TRx = 1
(software control).
---------------------------------------------------------------------------------------------------------------------MSRIT, DEPT OF CSE
7
MICROCONTROLLER LAB
VI Sem
---------------------------------------------------------------------------------------------------------------------C/T - Timer or Counter selector. Cleared for Timer operation (input from internal system clock).Set
for Counter operation (input from Tx input pin).
TIMER SET-UP
Tables 3 through 6 give some values for TMOD which can be used to setup Timer 0 in different
modes. It is assumed that only one timer is being used at a time. If it is desired to run Timers 0 end
1simultaneously, in any mod the value in TMOD for Timer 0 must be 0 Red with the value shown for
Timer 1. For example, if t is desired to run Timer 0 in mode1GATE (external control), and Timer 1in
mode2 COUNTER, then the value that must be loaded into TMOD is 69H. More over it is assumed
that the user, at this mint, is not ready to turn the timers on and will do that at a different point in he
program by setting bit T-Rx(in TCON)to 1.
TIMER/COUNTER 0
MICROCONTROLLER LAB
VI Sem
----------------------------------------------------------------------------------------------------------------------
MICROCONTROLLER LAB
VI Sem
----------------------------------------------------------------------------------------------------------------------
RI SCON.O- Receive interrupts flag. Set by hardware at the end of the 8th bit time in mode O, or
halfway through the stop bit time in the other modes (accepts SM2).Must be cleared by software.
MICROCONTROLLER LAB
VI Sem
----------------------------------------------------------------------------------------------------------------------
MICROCONTROLLER LAB
VI Sem
----------------------------------------------------------------------------------------------------------------------
MICROCONTROLLER LAB
VI Sem
----------------------------------------------------------------------------------------------------------------------
MICROCONTROLLER LAB
VI Sem
----------------------------------------------------------------------------------------------------------------------
MICROCONTROLLER LAB
VI Sem
----------------------------------------------------------------------------------------------------------------------
SIMULATOR PROGRAMS
Part A:
MICROCONTROLLER LAB
VI Sem
----------------------------------------------------------------------------------------------------------------------
loop1:
here:
org 00h
mov r0,#40h
mov r1,#50h
mov r2,#05h
mov a,@r0
mov r3,a
mov a,@r1
mov @r0,a
mov @r1,03h
inc r0
inc r1
djnz r2,loop1
sjmp here
end
MICROCONTROLLER LAB
VI Sem
----------------------------------------------------------------------------------------------------------------------
MICROCONTROLLER LAB
VI Sem
----------------------------------------------------------------------------------------------------------------------
MICROCONTROLLER LAB
VI Sem
----------------------------------------------------------------------------------------------------------------------
MICROCONTROLLER LAB
VI Sem
----------------------------------------------------------------------------------------------------------------------
MICROCONTROLLER LAB
VI Sem
----------------------------------------------------------------------------------------------------------------------
MICROCONTROLLER LAB
VI Sem
----------------------------------------------------------------------------------------------------------------------
here:
Org 00h
mov r0,40h
mov r1,41h
mov b,43h
mov a,r0
div ab
mov 45h,a
mov a,b
mov b,#0ah
mul ab
add a,r1
mov b,43h
div ab
mov 46h,a
sjmp here
end
here:
org 00h
mov a,40h
mov b,40h
mul ab
mov r1,b
mov b,40h
mul ab
mov r2,b
mov 43h,a
mov a,r1
mov b,40h
mul ab
add a,r2
mov 42h,a
mov 41h,b
sjmp here
end
MICROCONTROLLER LAB
VI Sem
----------------------------------------------------------------------------------------------------------------------
3.a. Counters:
i) To count number of ones and zeroes:
org 00h
mov r1,#00h
mov r2,#00h
mov r7,#08h
mov a,#97h
again: rlc a
jnc next
inc r1
djnz r7, again
jmp here
next: inc r2
djnz r7,again
here: sjmp here
end
MICROCONTROLLER LAB
VI Sem
----------------------------------------------------------------------------------------------------------------------
MICROCONTROLLER LAB
VI Sem
----------------------------------------------------------------------------------------------------------------------
MICROCONTROLLER LAB
VI Sem
----------------------------------------------------------------------------------------------------------------------
end
MICROCONTROLLER LAB
VI Sem
----------------------------------------------------------------------------------------------------------------------
org 00h
mov a,#55h
mov p1,a
acall delay
cpl a
sjmp again
;time delay
delay:
back:
here:
mov
mov
nop
nop
nop
nop
djnz
djnz
ret
r3,#550h
r4,#600h
r4,here
r3,back
MICROCONTROLLER LAB
VI Sem
----------------------------------------------------------------------------------------------------------------------
INTERFACING PROGRAMS
Part B:
Program 8. ( calculator using seven segment display)
/* Object : Performs a single digit calculator using keyboard interface and 7 segment interface
Connections : Keyboard interface to 26pin FRC connector J7 on ESA MCB 51
7 segment interface to J1, J2 and J4 using the cable given by ESA
working procedure: Enter number1 ( 0-9 )
Enter Opcode ( +,-,/,*)
if you give '+' it displays 'A'
'-' it displays '-'
'*' it displays 'M'
'/' it displays 'd'
Ente number2 ( 0-9)
Press '=' -> displays result
Press 'AC' to clear the display
Repeat the same . //AB NI 6.7//
****************************************************************************
*/
#include <REG51xD2.H>
void DispChar(unsigned char ch);
void ClrLED();
unsigned char getkey();
unsigned char getnum();
unsigned char getOp();
sbit Clk = P3^4;
sbit Dat = P0^0;
MICROCONTROLLER LAB
VI Sem
----------------------------------------------------------------------------------------------------------------------
main()
{
unsigned char tmp=0x0ff,n1=0,n2,Op,Res;
unsigned char NumTab[10] =
{0x0c0,0x0f9,0x0a4,0xb0,0x99,0x92,0x82,0x0f8,0x80,0x90 };
unsigned char OpTab[4] = { 0x88,0x0Bf,0xc8,0x0a1};
bit Neg=0;
ClrLED();
/* Clear 7 segment display */
while(1)
{
Neg = 0;
n1=getnum();
if(n1==0x10)
{
ClrLED();
continue;
}
DispChar(NumTab[n1]);
Op = getOp() - 0x0B;
if(Op==0x10)
{
ClrLED();
continue;
}
DispChar(OpTab[Op]);
n2=getnum();
if(n2==0x10)
{
ClrLED();
continue;
}
DispChar(NumTab[n2]);
while(getkey()!=0x13);
ClrLED();
switch(Op)
{
/* Negative flag */
/* Get 1st number */
/*if pressed key is AC then Clear LED*/
/* Display number */
/* Get Opcode. 0x0b is keycode of '+'(see
keyboard schematics)*/
/*if pressed key is AC then Clear LED*/
MICROCONTROLLER LAB
VI Sem
----------------------------------------------------------------------------------------------------------------------
case 0:
Res = n1 + n2;
break;
case 1:
if(n2>n1)
{
Neg = 1;
Res = n2 - n1;
break;
}
Res = n1 - n2;
break;
case 2:
Res = n1 * n2;
break;
case 3:
Res = n1 / n2;
break;
}
DispChar(NumTab[Res%10]);
DispChar(NumTab[Res/10]);
if(Neg)
DispChar(0x0Bf);
while(getkey()!= 0x10);
{
ClrLED(); }
}
}
void DispChar(unsigned char ch)
{
unsigned char i,tmp;
P0=0x00;
P2=0x0ff;
for(i=0;i<8;i++)
{
tmp = ch & 0x80;
if(tmp)
Dat = 1;
else
Dat = 0;
Clk = 0;
/* Display number */
/* if negative result display '-' */
/* wait for 'AC' key */
MICROCONTROLLER LAB
VI Sem
----------------------------------------------------------------------------------------------------------------------
Clk = 1;
ch = ch << 1;
}
}
void ClrLED()
{
unsigned char i;
for(i=0;i<4;i++)
DispChar(0x0ff);
}
unsigned char getkey()
{
unsigned char i,j,indx,t;
P2 = 0x00;
/* P2 as Output port */
P0 = 0x0ff;
indx = 0x00;
/* Index for storing the first value of scanline */
while(1)
{
for(i=1;i<=4;i<<=1)
/* for 4 scanlines */
{
P2 = 0x0f & ~i;
/* write data to scanline */
t = P0;
/* Read readlines connected to P0*/
t = ~t;
if(t>0)
/* If key press is true */
{
for(j=0;j<=7;j++)
/* Check for 8 lines */
{
t >>=1;
if(t==0)
/* if get pressed key*/
{
return(indx+j);
/* Return index of the key pressed */
}
}
}
indx += 8;
/* If no key pressed increment index */
}
}
}
unsigned char getnum()
{
MICROCONTROLLER LAB
VI Sem
----------------------------------------------------------------------------------------------------------------------
}
unsigned char getOp()
/* Method for getting Operator */
{
unsigned char tmp;
while(1)
{
tmp = getkey();
if((tmp > 0x0a && tmp <0x0f)|| tmp==0x10)
/* if pressed key is a Operator,return */
return(tmp);
}
}
MICROCONTROLLER LAB
VI Sem
----------------------------------------------------------------------------------------------------------------------
MICROCONTROLLER LAB
VI Sem
----------------------------------------------------------------------------------------------------------------------
delay(10000);
delay(10000);
}
}
}
FLOW CHART
void delay(int g)
{
int h;
for(h=0;h<=g;g++)
{
;
}
}
MICROCONTROLLER LAB
VI Sem
----------------------------------------------------------------------------------------------------------------------
//
unsigned int i;
for(i = 0; i <= 20000; i ++);
}
void Display()
{
if(result > 0x09)
{
result += 0x37;
WriteChar(result);
//
delay();
}
else
{
result += 0x30;
WriteChar(result);
delay();
}
}
void KeyScan()
{
again: //columns = 0x08;
columns = 0x77;
rows = 0x04;
result = 0x0c;
next:
P1 = columns;
columns >>=1;
if(CY)
columns = columns |0x08 ;
temp = P0;
FLOW CHART
MICROCONTROLLER LAB
VI Sem
----------------------------------------------------------------------------------------------------------------------
// temp = ~(temp);
temp = (temp & 0x0f);
rot:
if(temp != 0x0f)
{
temp >>= 1;
if(!CY)
{
ClrLcd();
return;
}
else
{
result += 1;
goto rot;
}
}
else
{
result -= 0x04;
rows --;
if(rows == 0)
goto again;
else
{
goto next;
}
}
}
void main()
{
P0 = 0xff;
P1 = 0x00;
InitLcd();
WriteString("KEY PRESSED=");
while(1)
{
KeyScan();
WriteString("KEY PRESSED=");
Display();
---------------------------------------------------------------------------------------------------------------------MSRIT, DEPT OF CSE
36
MICROCONTROLLER LAB
VI Sem
----------------------------------------------------------------------------------------------------------------------
}}
MICROCONTROLLER LAB
VI Sem
----------------------------------------------------------------------------------------------------------------------
}
/*Function to club the units and tens of the value passed to it as parameter*/
unsigned char Units_Tens(unsigned int i)
{
unsigned char temp = 0,temp1 = 0;
temp = parameter[i] & 0x0f;
i ++;
temp1 = parameter[i] & 0x0f;
temp1 <<= 4;
temp1 |= temp;
return temp1;
}
/*Function to display the RTC values*/
void display()
{
unsigned int j = 0,temp = 0,temp1 = 0;
unsigned char c;
j = 0x04;
c = Units_Tens(j);
c &= 0x3f;
temp1 = c;
sendhex((c & 0xf0) >> 4);
sendhex(temp1 & 0x0f);
space();
j = 0x02;
c = Units_Tens(j);
temp1 = c;
sendhex((c & 0xf0) >> 4);
sendhex(temp1 & 0x0f);
space();
j = 0x00;
c = Units_Tens(j);
temp1 = c;
sendhex((c & 0xf0) >> 4);
sendhex(temp1 & 0x0f);
space();
j = 0x5;
c = (parameter[j] & 0x08);
if(c != 0x00)
{
putchar('-');
putchar('-');
MICROCONTROLLER LAB
VI Sem
----------------------------------------------------------------------------------------------------------------------
putchar('-');
space();
Disp_Month();
}
else
{
temp = (parameter[j] & 0x04);
if(temp != 0x00)
{
printf("PM");
space();
Disp_Month();
}
else
{
printf("AM");
/*Send AM string to display*/
space();
Disp_Month();
}
}
}
/*Function to read the RTC parameters*/
void Read_RTC(void)
{
unsigned int i = 0,j = 0,index = 0, k = 0;
unsigned char data1 = 0;
unsigned char c = 0,temp = 0,temp1 = 0;
P0=0xff;
P1=0x00;
P2=0x00;
P2 = 0x10;
while(i != 0xff)
{
i ++;
}
P2 = 0x30;
while(j != 0xd)
{
index = (j & 0x0f);
MICROCONTROLLER LAB
VI Sem
----------------------------------------------------------------------------------------------------------------------
P1 = index;
for(k = 0; k <= 100; k ++);
FLOW CHART
MICROCONTROLLER LAB
VI Sem
----------------------------------------------------------------------------------------------------------------------
temp = c;
sendhex((c & 0xf0) >> 4);
/*Display the year*/
sendhex(temp & 0x0f);
delete();}
/*Clear the display*/
/*Function to set RTC parameters*/
void Set_RTC(void)
{
unsigned int i = 0,j = 0,count = 0,k = 0;
P2 = 0x10;
while(i != 0xff)
{
i ++;
}
i = 0;
while(count != 0x0d)
{
P1 = count;
P0 = parameter[j];
P2 = 0x50;
for(k = 0; k <= 1000; k ++);
P2 = 0x10;
count ++;
j ++;
}
P2 = 0x00;
}
void main()
{
SCON = 0x52;
TMOD |= 0x20;
TH1 = 0xfd;
TR1 = 1;
P0=0x00;
P1=0x00;
P2=0x00;
Set_RTC();
while (getchar()!='\n');
printf ("\n\nHRS MIN SEC A/P DAY DD-MM-YY ");
printf ("\n--- --- --- --- --- -------- \n");
while(1)
{
Read_RTC();
/*Read RTC parameters*/
Read_RTC();
---------------------------------------------------------------------------------------------------------------------MSRIT, DEPT OF CSE
41
MICROCONTROLLER LAB
VI Sem
----------------------------------------------------------------------------------------------------------------------
display();
Read_RTC();
}
}
/* delay routine */
main()
{
unsigned char on = 0x7f,off=0x00;
unsigned int fre = 100;
InitLcd();
/* Initialize LCD */
WriteString("Squarewave");
/* Write to LCD */
while(1)
{
if(!Amp)
/* if user choice is to change amplitude */
---------------------------------------------------------------------------------------------------------------------MSRIT, DEPT OF CSE
42
MICROCONTROLLER LAB
VI Sem
----------------------------------------------------------------------------------------------------------------------
{
while(!Amp);
on+=0x08;
}
if(!Fre)
{
if(fre > 1000)
fre = 100;
while(!Fre);
fre += 50;
}
P0=on;
P1=on;
delay(fre);
P0 = off;
P1 = off;
delay(fre);
}
}
Triangular wave:
Object : To demonstrate how to generate a triangular wave form
using ESA Dual DAC interface.
Connection: Connect the Interface to 26pin FRC connector J7 of
ESAMCB51.
Output: Generates a Triangular waveform with 5v Amp. //AB .NI 6.7
*******************************************************************/
#include <REG51xD2.H>
#include "lcd.h"
main()
{
---------------------------------------------------------------------------------------------------------------------MSRIT, DEPT OF CSE
43
MICROCONTROLLER LAB
VI Sem
----------------------------------------------------------------------------------------------------------------------
/* Initialise LCD */
/* Display on LCD */
/* P0 as Output port */
/* Generate ON pulse */
/* Generate OFF pulse */
/* Delay Routine */
MICROCONTROLLER LAB
VI Sem
----------------------------------------------------------------------------------------------------------------------
/* Initialise LCD */
/* Write to LCD */
/* If Dir Clockwise */
MICROCONTROLLER LAB
VI Sem
----------------------------------------------------------------------------------------------------------------------
P0 = Val;
Val = Val<<1;
delay(575);
}
}
}
}
DC motor:
#include <at89c51xd2.h>
#include <stdio.h>
#define CR 0x0d
unsigned char count;
unsigned char pedestal;
void delay()
{
unsigned int i = 0x00;
for(i = 0; i <= 0x80; i ++);
}
void speed()
{ char i;
unsigned int value = 0x00;
printf("\nSPEED OF THE DC MOTOR AS ROTATIONS/SEC = ");
while(P1_1);
while(!P1_1);
count=0x00;
loop: while(!P1_0);
count += 1;
delay();
while(P1_0);
---------------------------------------------------------------------------------------------------------------------MSRIT, DEPT OF CSE
46
MICROCONTROLLER LAB
VI Sem
----------------------------------------------------------------------------------------------------------------------
delay();
if(P1_1)
goto loop;
else
for(i=0;count>= 0x0a;i++)
{
count=(count-0x0a);
}
putchar((i+0x30));
putchar((count+0x30));
}
void main()
{
unsigned char c,input = 0;
SCON = 0x52;
TMOD |= 0x20;
TH1 = 0xfd;
//
//
FLOW CHART
TR1 = 1;
P0 = 0x00;
P1 = 0xff;
pedestal = 0x7f;
P0=pedestal;
while((c = getchar())!='\n');
printf("\nPRESS 'i' TO INCREASE THE RPM OF THE DC MOTOR");
printf("\nPRESS 'd' TO DECREASE THE RPM OF THE DC MOTOR");
printf("\nPRESS 's' TO DISPLAY RGE SPEED IN ROTATIONS/SEC\n");
// P0 = 0x7f;
while(1)
{
loop: P0=pedestal;
take: input = _getkey();
if(input == 0x69)
{
---------------------------------------------------------------------------------------------------------------------MSRIT, DEPT OF CSE
47
MICROCONTROLLER LAB
VI Sem
----------------------------------------------------------------------------------------------------------------------
if(pedestal != 0x1f)
{
pedestal -= 1;
//putchar(('\n'));
putchar((0x08));
goto loop;
}
else
goto take;
}
else if(input == 0x64)
{
if(pedestal != 0xe0)
{
pedestal += 1;
//putchar(('\n'));
putchar((0x08));
goto loop;
}
else
goto take;
}
else if(input == 0x73)
speed();
else
goto take;
---------------------------------------------------------------------------------------------------------------------MSRIT, DEPT OF CSE
48
MICROCONTROLLER LAB
VI Sem
----------------------------------------------------------------------------------------------------------------------
}
}
program13: Elevator
Object : To demonstrate the Elevator Interface.
Connection : Connect the interface to 26 pin FRC connector J7 of ESAMCB51
Output : Can be viewed on Elevator interface
//AB .NI 6.7
***********************************************************************/
#include <REG51F.H>
void delay(unsigned int);
main()
{
unsigned char Flr[9] = {0xff,0x00,0x03,0xff,0x06,0xff,0xff,0xff,0x09};
unsigned char FClr[9] =
{0xff,0x0E0,0x0D3,0xff,0x0B6,0xff,0xff,0xff,0x79};
unsigned char ReqFlr,CurFlr = 0x01,i,j;
P0 = 0x00;
P0 = 0x0f0;
while(1)
{
P1 = 0x0f;
ReqFlr = P1 | 0x0f0;
while(ReqFlr == 0x0ff)
ReqFlr = P1 | 0x0f0;
/* Read Request Floor from P1 */
ReqFlr = ~ReqFlr;
if(CurFlr == ReqFlr) /* If Request floor is equal to Current Floor */
{
P0 = FClr[CurFlr];
continue;
}
else if(CurFlr > ReqFlr)
MICROCONTROLLER LAB
VI Sem
----------------------------------------------------------------------------------------------------------------------
{
i = Flr[CurFlr] - Flr[ReqFlr];
j = Flr[CurFlr];
for(;i>0;i--)
{
P0 = 0x0f0|j;
j--;
delay(25000);
}
}
else
MICROCONTROLLER LAB
VI Sem
----------------------------------------------------------------------------------------------------------------------
QUESTION BANK
PART A:
Data Transfer Programs
1. Write a program to move a data byte from one block to another without overlap.
2. Write a program to interchange data from one block to another.
3. Write a program to sort N given 8 bit numbers in ascending order/Descending order.
4. Write a program to find largest of N 8bit numbers.
Arithmetic instruction programs
1.
2.
3.
4.
5.
Counters
1. Write a program to count number of ones and zeroes in a given 8 bit number.
Boolean and Logical instructions
1. Write a program to check whether the given number is bitwise palindrome.
2. Write a program to check whether the given number is positive or negative.
Conditional CALL and RETURN
---------------------------------------------------------------------------------------------------------------------MSRIT, DEPT OF CSE
51
MICROCONTROLLER LAB
VI Sem
----------------------------------------------------------------------------------------------------------------------
1. Write a program to
Code Conversion
1. Write a program to convert a BCD number to HEX number.
2.
3.
4.
5.
Delay program
1. Write a program to generate delay.
VIVA QUESTIONS
1. What is the difference between microcontroller and microprocessor?
2. Name the features of 8051.
3. What is the major difference between CISC and RISC CPU architecture?
4. What is the RAM size of 8051?
5. How many bit processor is the 8051?
6. What is a program?
7. What is an instruction?
8. What are assembler directives? Name some of them.
9. What is meant by program counter?
10. How many I/O ports are there in 8051?
11. What is meant by an interrupt?
12. What is a DPTR? How many bits is it?
13. What is meant by PSW. Name its bit contents.
14. What is the size of Stack pointer register?
15. Explain PUSH &POP instructions.
16. Which bits of PSW are responsible for selection of the register banks?
17. On power up what is the location of the stack?
18. What is the difference between LCALL and ACALL?
19. What is the function of RETURN instruction?
20. What is meant by time delay and why do we need it?
21. Which ports of the 8051 are bit addressable?
22. How many types of addressing modes are there and name them?
23. What are SFRs?
24. Which addressing mode supports looping?
25. Name some of the arithmetic instructions.
---------------------------------------------------------------------------------------------------------------------MSRIT, DEPT OF CSE
52
MICROCONTROLLER LAB
VI Sem
----------------------------------------------------------------------------------------------------------------------
MICROCONTROLLER LAB
VI Sem
----------------------------------------------------------------------------------------------------------------------