Friday, April 24, 2020

Basic ATMega32 Programming

Introduction To ATMega32 AVR

ATMega32 is an 8-bit general purpose microcontroller bases on RISC architecture. It has 32 KBytes of flash memory for storing the program. The SRAM of 2 KBytes uses for temporary data storage during program execution. EEPROM store the permanent data up to 1024 Bytes.
The CPU could clock up to 16 MHz, giving the instruction execution speed 16 MIPS.

There are features in this device. In this section we get started with basic digital input output programming.

ATMega32 come with 40 pins DIP Package easing the developer to prototype the project on breadboard. It also come with SMD package.

Basic ATMega32 Programming
A DIP package ATMEGA32 IC Pin Diagram 



Basic ATMega32 Programming
Basic ATMega32 Programming

It has for 8-bit ports.

  • PA (PORTA)
  • PB (PORTB)
  • PC (PORTC)
  • and PD (PORTD)
Each port has its own internal weak pull ups resistors. Each port direction is controlled by its own DDRx register. For example, PORTA input output direction is controlled by DDRA register.

Giving a '1' to any DDRx, make the corresponding PORTx as output, otherwise input.
In the example below, we want to read the digital input from PORTB and output to PORTD.
 

Programming Using C In Atmel Studio 7 


ATMega32 Hardware/Software Simulation Proteus 8
The Clock is not necessary run at 16 MHz.
The supply Voltage is normally +5 V.
The reset pin must pull High to make the program execute. 

/*
 * inputoutput_1.c
 *
 * Created: 4/25/2020 8:33:59 AM
 * Author : Admin
 */ 
#include <avr/io.h>
int main(void)
{
 DDRB=0x00;
 DDRD=0xFF;
 PORTB=0xFF;
    /* Replace with your application code */
    while (1) 
    {
 PORTD=PINB;
    }
}
 
 
Back to main tutorial page ATMega32 tutorials in C with Atmel Studio 7.


2 comments:

  1. wow, great, I was wondering how to cure acne naturally. and found your site by google, learned a lot, now i’m a bit clear. I’ve bookmark your site and also add rss. keep us updated.Regularly scheduled programming

    ReplyDelete

Search This Blog

Labels

25AA010A (1) 8051 (7) 93AA46B (1) ADC (30) Analog Comparator (1) Arduino (15) ARM (6) AT89C52 (7) ATMega32 (54) AVR (57) CCS PICC (28) DAC (1) DHT11 (2) Display (105) Distance Sensor (3) DS18B20 (3) dsPIC (2) dsPIC30F1010 (2) EEPROM (5) Environment Sensor (4) esp8266 (1) I2C (29) Input/Output (67) Interrupt (19) Keil (5) Keypad (10) LCD (46) Master/Slave (1) MAX7221 (1) MCP23017 (5) MCP23S17 (4) Meter (3) MikroC (2) Motor (15) MPLABX (66) Nokia 5110 LCD (3) OLED (2) One-Wire (6) Oscillator (8) PCB (6) PCD8544 (3) PCF8574 (5) PIC (107) PIC12F (2) PIC16F628A (2) PIC16F630 (1) PIC16F716 (3) PIC16F818 (10) PIC16F818/819 (2) PIC16F84A (15) PIC16F876A (1) PIC16F877A (9) PIC16F88 (1) PIC16F887 (60) PIC18 (19) PIC18F1220 (4) PIC18F2550 (3) PIC18F4550 (12) PWM (11) RTC (8) Sensor (10) SH1106 (1) Shift Register (11) Shift Registers (2) SPI (24) STM32 (6) STM32 Blue Pill (6) STM32CubeIDE (6) STM32F103C8T6 (6) SysTick (3) temperature sensor (11) Thermometer (21) Timer/Counter (30) TM1637 (2) UART (7) Ultrasonic (4) Voltmeter (7) WDT (1) XC16 (2) XC8 (94)