You are on page 1of 44

What is a Microcontroller?

A microcontroller (sometimes abbreviated µC


or MCU) is a small computer on a single IC
containing a processor core, memory, and
programmable input/output peripherals.

It is a decision making device used widely in


embedded systems and all intelligent devices.
Basic Block Diagram of
Microcontroller
Difference between Microcontroller
and Microprocessor
Microcontroller has I/O ports, Memory, timers
etc all integrated on chip itself

 In Microprocessors, I/O ports, memory, timer


etc are to be connected externally
Block Diagram to show the difference
ROM
RAM
What is a 8-bit microcontroller?
8-bit means it can process 8-bit data per clock
cycle

It has 8-bit data bus

It can process 1byte of data at a time


AVR ATmega8 Microcontroller
How AVR ATmega8 got its name?

It was developed by Atmel Corporation

AVR implies it belongs to AVR family.

‘8’ in Atmega8 means this microcontroller has


8Kb of flash memory
What is AVR?

 AVR is a modified Harvard architecture , 8-bit


RISC single chip microcontroller.

It was developed in the year 1996 by Atmel


Corporation.
What’s special about AVR?
 They are fast.

 AVR Microcontroller executes most of the


instructions in single execution cycle.

 AVRs are about 4 times faster than PIC.

 They consume less power and can be operated in


different power saving modes.
What is RISC?
 RISC stands for “Reduced Instruction Set
Computer”.

 It is a very fast architecture which executes one


instruction per clock cycle.

 RISC contains very small instruction set.

 Programming is easy, but code length increases.


Harvard and Von Neumann
Architecture
Harvard Architecture

Harvard architecture has separate data and


instruction buses.

 This allows transfers to be performed


simultaneously on both buses.
Von Neumann Architecture
A Von Neumann architecture has only one bus
which is used for both data transfers and
instruction fetch

Data transfers and instruction fetches must be


scheduled as they cannot be performed at the
same time
Memory Addressing
Memory Addressing
Memory Addressing
Memory Addressing
Introduction to Atmega8
ATmega8 is a low-power CMOS 8-bit
microcontroller based on the AVR RISC
architecture.
By executing powerful instructions in a single
clock cycle, the ATmega8 achieves throughput
approaching 1 MIPS per MHz
In order to maximize performance and
parallelism, the AVR uses a Harvard
architecture.
Features Of ATmega8
High-performance, Low-power AVR 8-bit
Microcontroller
Up to 16 MIPS Throughput at 16 MHz
32 x 8 General Purpose Working Registers
Internal Calibrated RC Oscillator
External and Internal Interrupt Sources
Data retention: 20 years at 85°C/100 years at
25°C
Memory Segments

8K Bytes of In-System Self-programmable


Flash program memory
512 Bytes EEPROM (Electrically Erasable
Programmable Read Only Memory)
1K Byte Internal SRAM (Static Random Access
Memory)
Peripheral Features

 Two 8-bit Timer/Counters with Separate Prescaler,


one Compare Mode.
 One 16-bit Timer/Counter with Separate Prescaler,
Compare Mode, and Capture Mode.
 Real Time Counter with Separate Oscillator.
 Three PWM Channels.
 8-channel ADC in TQFP package .
Continued…

6-channel ADC in PDIP package.


Byte-oriented Two-wire Serial Interface.
Programmable Serial USART.
Master/Slave SPI Serial Interface.
Programmable Watchdog Timer with Separate
On-chip Oscillator.
On-chip Analog Comparator.
Types Of Packages

28-lead PDIP (Plastic Dual In-line Package)

32-lead TQFP (Thin Quad film Package)


Pin Configuration of ATmega8
Pin Description
VCC: Digital supply voltage 5V.
GND: Ground.
RESET: A low level on this pin for longer than
the minimum pulse length will generate a
reset, even if the clock is not running.
AREF: The analog reference pin for the A/D
Converter.
Continued….

AVCC : The supply voltage pin for the A/D


Converter, Port C (3..0).It should be externally
connected to VCC, even if the ADC is not used.
If the ADC is used, it should be connected to
VCC through a low-pass filter.
Input And Output
Required to communicate with outside world PC System:
Keyboard
Monitor
Parallel port (printer port)
Serial port + USB

Embedded System:
Sensors (e.g. in automobile: acceleration sensor, seat
sensor)
Actuators (e.g. in automobile: valves for airbags)
Input And Output
Input / output device implementation can be:
• Memory-mapped
• I/O mapped (ports)
• DMA (direct memory access)
PORTS
There are 3 ports in ATmega8: Port B, Port C,
Port D.
Three registers are associated with every port
DDRx – Data Direction Register
PINx – Port input
PORTx- Port output

Where x would be either B,C or D.


PORTB(PB7-PB0)
It is a 8-bit bi-directional I/O port.
It has internal pull up resistors(selected for
each bit).
It can be used either as a input port or as
output port ( direction must be specified in
programming).
PORTC(PC6-PC0)
It is a 7-bit bi-directional I/O port.
It has internal pull up resistors(selected for
each bit).
It can be used either as a input port or as
output port ( direction must be specified in
programming).
PORTD(PD7-PD0)
It is a 8-bit bi-directional I/O port.
It has internal pull up resistors(selected for
each bit).
It can be used either as a input port or as
output port ( direction must be specified in
programming).
Continued…
Continued....
Continued....
DDRx Register
It stands for Data Direction Register.
It is used to define Port as Input or Output.
In order to make Port as Input Port:
DDRx=0x00 (In Hexadecimal)
DDRx=0b00000000(In Binary)
In order to make Port as output Port:
DDRx=0xFF (In Hexadecimal)
DDRx=0b11111111(In Binary)
PORTx Register
If DDRx=0xFF(Output port)
 Writing logic 1 to PORTx will make output
high i.e 5v for that particular pin.

 Writing 0 to PORTx will make output low i.e


0v for that particular pin.
Continued..
If DDRx=Ox00(Input port):
 If corresponding PORTx bit is set to 1, Internal
pull up resistors are enabled i.e if we do not
connect this pin to anything it still reads as 1.
 If corresponding PORTx bit is set to 0, internal
pull up resistors are disabled i.e the pin will
enter a high impedance state and will become
unpredictable.
PINx Register
It reads data from the port pins.
If any/all bits of DDRx is set to 0(input)for a
particular pin, we can read data from PINx
If any/all bits of DDRx is set to 1(output), then
reading PINx register gives the same data
which has been output on that particular pin.
THANK YOU

You might also like