CORRECT Answers
N/A - CORRECT ANSWER -
What is the difference between volatile and non volatile memory in microcontrollers? -
CORRECT ANSWER - Volatile memory (RAM) loses stored data when power is
removed. Non-volatile memory (Flash, EEPROM) retains data even when power is lost.
How does a microcontroller execute instructions stored in its memory? - CORRECT
ANSWER - It follows the Fetch-Decode-Execute cycle: Fetch retrieves the instruction,
Decode interprets it, and Execute performs the operation.
Explain the role of the Control Unit (CU) in a microcontroller? - CORRECT ANSWER -
The CU directs instruction execution, manages communication between ALU, registers, and
memory, and controls data flow.
What is the purpose of the Status Register in a microcontroller? - CORRECT ANSWER -
It stores flags that indicate operation results, such as carry, zero, and overflow, which are used
for conditional execution.
How many clock cycles does it take for an instruction to execute on an ATmega328P? -
CORRECT ANSWER - Most AVR instructions execute in 1 clock cycle, except for
branching/jump instructions, which take 2-3 cycles.
Name and explain three types of memory used in the ATmega328P microcontroller? -
CORRECT ANSWER - Flash (stores program code), SRAM (stores variables during
execution), and EEPROM (stores data that must be retained after power loss).
What is the function of the Stack Pointer (SP), and how does it change when pushing and
popping data? - CORRECT ANSWER - The SP holds the top address of the stack.
Pushing data decrements SP, while popping data increments SP.
, What is the difference between general purpose registers and special function registers? -
CORRECT ANSWER - General purpose registers (R0-R31) store temporary data and
arithmetic results, while special function registers (e.g., SREG, SP) control system functions.
What is the function of the PINx register in ATmega328P? - CORRECT ANSWER - It
reads the current logic level of an input pin.
How do you configure Port D, Pin 5 as an output and set it to HIGH in C? - CORRECT
ANSWER - Use DDRD |= (1 << PD5); to set PD5 as an output and PORTD |= (1 <<
PD5); to set it HIGH.
What is the difference between PORTx, PINx, and DDRx registers? - CORRECT
ANSWER - DDRx configures pin direction, PORTx writes HIGH/LOW or enables pull-
ups, and PINx reads input pin states.
Write an Assembly instruction to toggle a specific pin (e.g., PB3) without affecting other bits? -
CORRECT ANSWER - IN R16, PORTB; EOR R16, (1 << PB3); OUT PORTB, R16;
Explain how a Timer Overflow Interrupt works in ATmega328P? - CORRECT
ANSWER - The timer counts up until overflow, setting the TOVx flag, which triggers an
interrupt if enabled.
What is the difference between a polling system and an interrupt system in microcontrollers? -
CORRECT ANSWER - Polling continuously checks conditions, using CPU resources,
while interrupts notify the CPU only when needed, improving efficiency.
Write an Assembly code snippet that enables an external interrupt on INT0 (PD2)? - CORRECT
ANSWER - LDI R16, (1 << INT0); OUT EIMSK, R16; LDI R16, (1 << ISC01); OUT
EICRA, R16;
Explain the purpose of the prescaler in a timer module? - CORRECT ANSWER - It
divides the system clock to slow down timer counting, allowing precise timing.