Dear Readers, Welcome to 8051 Microcontroller Interview Questions and Answers have been designed specially to get you acquainted with the nature of questions you may encounter during your Job interview for the subject of 8051 Microcontroller. These 8051 Microcontroller Questions are very important for campus placement test and job interviews. As per my experience good interviewers hardly plan to ask any particular questions during your Job interview and these model questions are asked in the online technical test and interview of many IT & Non IT Industries.
In 1981, Intel Corporation introduced an 8-bit microcontroller called the 8051. The 8051 became widely popular after Intel allowed other manufacturers to make and market any flavors of the 8051. They please with the condition that they remain code-compatible with the 8051. This has led to many, versions of the 8051 with different speeds and amounts of on-chip ROM marketed by more than half a dozen manufacturers. It is important to note that although there are different flavors of the 8051 in terms of speed and amount of on-chip ROM, they are all compatible with the original 8051 as far as the instructions are concerned. This means that if you write your program for one, it will run on any of them regardless of the manufacturer.
Intel 8051 is Harvard Architecture.
The name Harvard Architecture comes from the Harvard Mark. The most obvious characteristic of the Harvard Architecture is that it has physically separate signals and storage for code and data memory. It is possible to access program memory and data memory simultaneously. Typically, code (or program) memory is read-only and data memory is read-write. Therefore, it is impossible for program contents to be modified by the program itself.
The von Neumann Architecture is named after the mathematician and early computer scientist John von Neumann. Von Neumann machines have shared signals and memory for code and data. Thus, the program can be easily modified by itself since it is stored in read-write memory.
Intel’s original MCS-51 family was developed using NMOS technology, but later versions, identified by a letter C in their name (e.g., 80C51) used CMOS technology and consume less power than their NMOS predecessors. This made them more suitable for battery-powered devices.
The Intel 8051 is an 8-bit microcontroller which means that most available operations are limited to 8 bits.
8-bit data bus
16-bit address bus
40 Pin IC.
128 bytes of RAM.
2 Timers (Timer 0 and Timer 1).
32 Input/ Output pins.
1 serial port.
6 Interrupts (Including Reset).
At location 0x00 for internal or external memory
128 bytes of RAM (from 0x00 to 0x7F) and can be used to store data.
Register Indirect Addressing
64K data memory
The memory addresses from 80H to 0FFH are called SFR. These are 128 bytes registers specially designed for interrupts and few other operations.
Example: bit address 87h –> byte address 80h, bit #7
External interrupt 0 (IE0) has highest priority among interrupts.
Timer interrupt 0 (TF0)
External interrupt 1 (IE1)
Timer interrupt 1 (TF1) has lowest priority among other interrupts.
Serial port Interrupt
Special function registers
External data memory
Internal RAM in 8051 is located from address 0 to address 0xFF. IRAM from 0x00 to 0x7F can be accessed directly. IRAM from 0x80 to 0xFF must be accessed indirectly.
The bit addressable memory in 8051 is compose from 210 bits: bit address space: 20H – 2FH bytes RAM = 00H – 7FH bits address, SFR registers.
This file is also called as list file.
It lists the opcodes, addresses and errors detected by the assembler.
List file is produced only when indicated by the user.
It can be accessed by an editor and displayed on monitor screen or printed.
Programmer uses this file to find the syntax errors and later fix them.
DB is called as define byte used as a directive in the assembler.
It is used to define the 8 bit data in binary, hexadecimal or decimal formats.
It is the only directive that can be used to define ASCII strings larger than two characters.
DB is also used to allocate memory in byte sized chunks.
The assembler always converts the numbers into hexadecimal.
EQU is the equate assembler directive used to define a constant without occupying a memory location.
It associates a constant value with data label.
Whenever the label appears in the program, constant value is substituted for label.
Advantage: The constant value occurring at various positions in a program can be changed at once using this directive.
Syntax: label EQU constant value
Label name should be unique and must contain alphabetic letters in both uppercase and lowercase.
1st letter should always be an alphabetic letter.
Label should not be one of the reserved words in assembly language.
These labels make the program much easier to read and maintain.
The flag register also called as the program status word uses only 6 bits.
The two unused bits are user definable flags.
Carry, auxiliary carry, parity and overflow flags are the conditional flags used in it.
1 is a user definable bit and PSW.5 can be used as general purpose bit.
Rest all flags indicate some or the other condition of an arithmetic operation.
The 2nd bit of the flag register is set when output flows to the sign bit. This flag is also called as the overflow flag. Here the output of the signed number operation is too large to be accommodated in 7 bits. For signed numbers the MSB is used to indicate the whether the number is positive or negative. It is only used to detect errors in signed number operations.
Bank 1 uses the same RAM space as the stack.
Stack pointer is incremented or decremented according to the push or pop instruction.
If the stack pointer is decremented it uses locations 7, 6, 5… which belong to register bank 0.
If a given program uses R1 then stack is provided new memory location.
The push instruction may also take stack to location 0 i.e.it will run out of space.
It is a command used to jump if no carry occurs after an arithmetic operation. It is called as jump if no carry (conditional jump instruction). Here the carry flag bit in PSW register is used to make decision. The processor looks at the carry flag to see if it is raised or not.
If carry flag is 0, CPU fetches instructions from the address of the label.
Yes, port 0 can be used as input output port. Port 0 is an open drain unlike ports 2, 3, 4. To use it as input or output the 10k ohm pull-up resisters are connected to it externally. To make port 0 as input port it must be programmed by writing 1 to all bits. Example:
Port0 and port2 together form the 16 bit address for external memory.
Port0 uses pins 32 to 39 of 8051 to give the lower address bits(AD0-AD7)
Port2 uses pins 21 to 28 of 8051 to give the higher address bits(A8-A15)
This 16 bit address is used to access external memory if attached.
When connected to external memory they cannot be used as input output ports.
Yes, 8051 has the capability of accessing only single bit of a port.
Here only single bit is accessed and rest is unaltered.
SYNTAX: “SETB X. Y”.
Here X is the port number and y is the desired bit.
Example: SETB P1.2
Here the second bit of port 1 is set to 1.
There are in total 6 single-bit instructions.
CPL bit: complement the bit (bit= NOT bit).
JB bit, target: Jump to target if bit equal to 1.
JNB bit, target: Jump to target if bit is equal to 0.
JCB bit, target: Jump to target if bit is equal to 1 and then clear bit.
The important criteria to be considered in choosing micro controllers are:
(1) Availability of software development tools like compilers, debuggers, assemblers
(2) Meeting the computing needs of the task at hand efficiently at low-cost.
(3) Wide availability
(4) Reliable sources/manufacturers
(5) The amount of RAM and ROM on chip
(6) The number of I/O pins and the timer on the chip
(7) Power consumption
(8) Speed of the device
(10) Cost per unit.
The microprocessor has no ROM, RAM and no I/O ports on the chip itself.
Whereas the microcontroller has a CPU in addition to a fixed amount of RAM,ROM, I/O ports and a timer all on a single chip.
ROM - 4K bytes
RAM - 128 bytes
Timer - 2 no
I/O Pins - 32
Serial Port - 1
Interrupt sources - 6
ROM - Read Only Memory
RAM - Random Access Memory
PROM - Programmable Read Only Memory
EPROM - Erasable Programmable Read Only Memory
EEROM - Electrically Erasable Programmable Read Only Memory
A Flip-flop is a basic electronic circuit used for storing information in a digital machine.
It is a bistable device. It means it has two stable states.
It has one or more inputs and two complement outputs.