Advanced Search
Search Results
319 total results found
2. ATmega328P Hardware & Memory Architecture
A. Memory Map The ATmega328P memory map provides information on how the Microcontroller Unit (MCU) uses memory. Here is the address division: Category Address Size Description General Purpose Registers 0x0000 - 0x001F 32 x 8 bit Registers R0 - R31 I/O...
3. Input/Output (I/O) Programming
On the Arduino Uno (ATmega328P), digital I/O is controlled through Port B, Port C, and Port D. Each port is 8-bit, allowing control of up to 8 pins simultaneously. A. Port to Arduino Pin Mapping Port Bits Arduino Pin Notes Port B PB0 - PB5 Digital Pin ...
4. Assembly Integration with Arduino IDE
To combine Assembly with Arduino C++ code, the extern "C" directive is used in the .ino file and the .global directive is used in the .S (Assembly) file. File Structure: .ino File (C/C++): extern "C" { void start(); // Declaration of function defined in A...
5. AVR Assembly Instruction Set
Operand Notation Before diving into the instructions, here are the common operand symbols used: Symbol Description Rd Destination register (R0-R31). The result of the operation is stored here. Rr Source register (R0-R31). Used as input for the operati...
6. Status Register (SREG)
The Status Register contains flags that indicate the results of arithmetic/logic operations. This register is crucial for branch instructions. Bit Name Description 7 I (Global Interrupt Enable) Enables/disables global interrupts 6 T (Bit Copy Storage)...
7. Delay Implementation Without Library
Delays can be created using nested loops that consume a certain number of clock cycles. Delay Calculation Concept: ATmega328P on Arduino Uno runs at 16 MHz (16 million clock cycles per second) 1 millisecond = 16,000 clock cycles DEC instruction takes 1 cycle,...
8. Complete Program Examples
A. Blink LED #define __SFR_OFFSET 0x00 #include "avr/io.h" .global main main: SBI DDRB, 5 ; Set PB5 (Pin 13) as Output loop: SBI PORTB, 5 ; Turn on LED (Output HIGH) RCALL delay ; Call delay subroutine CBI PORTB, 5 ...
1. Proteus Installation Tutorial
Step 1 : Install Proteus If you haven't install. Then Install, remember from DSD. Step 2 : Download the Arduino Library for Proteus Download from here : https://drive.google.com/file/d/1LMYOUn39nAZBdGL0SR3n30pf-fRXeP-B/view Step 3 : Install the Library Go to t...
2. Proteus Simulation Tutorial
Step 1 : Setup the Arduino IDE Go to Preferences : Checklist the Show Verbose output during compile and upload : Step 2 : Compile the Code Compile the code using this button : Find the Hex link on the output terminal : Step 3 : Connect the Hex Double cli...
Module 3 - Serial Port
Introduction to USART
1. USART Definition USART (Universal Synchronous/Asynchronous Receiver/Transmitter) is a communication protocol used to transfer data between electronic devices, such as microcontrollers, sensors, and other components. This protocol is highly flexible as it su...
USART Register Architecture of ATmega328p
The ATmega328p microcontroller uses several specific registers to control and monitor USART communication. 1. UBRR (USART Baud Rate Register) A 16-bit register that determines the communication speed. It is divided into two 8-bit registers: UBRR0H: Stores th...
Implementation and Assembly Code Examples
This page contains basic implementation examples of USART serial communication using the Assembly programming language on an AVR Microcontroller (ATmega328p). 1. Printing Text to Serial Monitor This code is used to repeatedly send the string "Programming Seria...