Sei sulla pagina 1di 15

MIKROKONTROLER ATMEGA

BERBASIS
CODEVISION AVR
(PENGENALAN TIMER)

dins

DEPOK INSTRUMENTS

Mikrokontroler ATmega16A

High-performance, Low-power Atmel AVR 8-bit Microcontroller

Advanced RISC Architecture. Up to 16MIPS Throughput at 16MHz

High Endurance Non-volatile Memory segments

16KBytes of In-System Self-programmable Flash program memory

512Bytes EEPROM

1KByte Internal SRAM

Peripheral Features

Timers: Two 8-bit Timer/Counter and One 16-bit Timer/Counter

8-channel, 10-bit ADC

Serial Communication: Programmable Serial USART, Master/Slave SPI Serial Interface, ByteOriented Two Wire Interface.

I/O and Packages: 32 I/O Lines. 40-pin PDIP, 44-lead TQFP, and 44-pad QFN/MLF

Operating Voltages: 2.7 - 5.5V

Speed Grades: 0 - 16MHz

Fitur TIMERs ATmega16A

Timers: 2x 8-bit Timer/Counter and 1x 16-bit Timer/Counter


Timer-0/Counter-0 (T0)
8-Bit
Timer-1/Counter-1 (T1)
16-Bit
Timer-2/Counter-2 (T2)
8-Bit
Perbedaan antara Timer dan Counter

Timer: Sumber detak dari internal.


Counter: Sumber detak dari eksternal/pin.

Prescaler TIMERs ATmega16A

Nilai prescaler adalah perkalian jumlah detak/input yang


diperlukan untuk 1x pencacahan nilai Timer/Counter.

Semakin besar nilai prescaler, maka semakin lama


terpenuhinya nilai Timer/Counter.
Prescaler Factor:
1
8
64
256
1024

DI-Smart AVR.16 System


(Sistem Plus C. ATmega16A)
RP1
D0

L6
PC2

L7
PC1

L8
PC0

VCC

JP3
LED CONNECTED

VCC

C11
1uF

2
6
16

C10
1uF

DB1
SERIAL

+ C12
1uF

1
2
3
4
5
6
7
8

PD0
PD1
PD2
PD3
PD4
PD5
PD6
PD7

14
15
16
17
18
19
20
21

X2
X1

12
13

PB0 (T0)
PB1 (T1)
PB2 (AIN0)
PB3 (AIN1)
PB4 (SS)
PB5 (MOSI)
PB6 (MISO)
PB7 (SCK)

PA0 (ADC0)
PA1 (ADC1)
PA2 (ADC2)
PA3 (ADC3)
PA4 (ADC4)
PA5 (ADC5)
PA6 (ADC6)
PA7 (ADC7)

PD0 (RXD)
PD1 (TDX)
PD2 (INT0)
PD3 (INT1)
PD4 (OC1B)
PD5 (OC1A)
PD6 (ICP )
PD7 (OC2)

(TOSC2) PC7
(TOSC1) PC6
PC5
PC4
PC3
PC2
PC1
PC0

40
39
38
37
36
35
34
33

PA0
PA1
PA2
PA3
PA4
PA5
PA6
PA7

29
28
27
26
25
24
23
22

PC7
PC6
PC5
PC4
PC3
PC2
PC1
PC0

VCC
PA0
PA1
PA2
PA3
PA4
PA5
PA6
PA7

V+
VVCC
GND

15

MAX232CPE

12
9
14
7
4
5

RXD SERIAL

X2
X1

RST

RESET

C13
1uF

X1

VCC

20pF
C2

1K

POWER
9-12VDC

C3
RXD SERIAL
PD0
RXD ISP

VCC
+ C5
10uF

S2

VCC
3

PD2

C7
+ C6
100nF 100nF

PD2
S3
PD3

1
2
3
4
5
6
7
8
9
10

VCC

2
4
6
8
10

RXD ISP
TXD ISP

RST

100nf

PD3
C4
470uF

+5V

PD0
PD1
PD2
PD3
PD4
PD5
PD6
PD7

9 6

JP1

JP2

1
2
3

1
2
3

TXD SERIAL
PD1
TXD ISP

VR1
2

1
2
3
4
5
6
7
8
9
10
P3
PORTD

VCC

1
3
5
7
9

RST

AREF
2

Vin

GND

LM7805CT

PB0
PB1
PB2
PB3
PB4
PB5
PB6
PB7

P4
ISP PROG
PB5
LED
RST
PB7
PB6

SW1

VCC

1
2
3
4
5
6
7
8
9
10

VCC

R1

20pF
D1
4002

30

AVCC

C1

VCC
PC0
PC1
PC2
PC3
PC4
PC5
PC6
PC7

31

AGND

Y1
11059200
X2

U0

32 AREF

AREF

10K
1

C9
1uF

R1 OUT
R2 OUT
T1 OUT
T2 OUT
C2+
C2 -

R1 IN
R2 IN
T1 IN
T2 IN
C1+
C1 -

1
2
3
4
5
6
7
8
9
10

P1
PORTB

P2
PORTC

U2
13
8
11
10
1
3

5
9
4
8
3
7
2
6
1

TXD SERIAL

PB0
PB1
PB2
PB3
PB4
PB5
PB6
PB7

P0
PORTA

AT MEGA

IC1

PC0

PC1

PC2

PC3

PC4

PC5

L5
PC3

D1

L4
PC4

D2

L3
PC5

D3

D4

L2
PC6
PC6

PC7

2
1

L1
PC7

D5

D0
D1
D2
D3
D4
D5
D6
D7

D6

D7

1
2
3
4
5
6
7
8
9

C17
100nF

POWER

R3

L10

2K2

VCC

DI-Smart AVR.16 System


1.
2.
3.
4.
5.
6.
7.
8.
9.

ATmega16A
Crystal
Reset
ISP
Power
Vref ADC
RS232
LED Array
Push Button

3
4
1
7
2
5

Pemrograman Interupsi Timer-1 pada CVAVR

Inisialisasi Wizard
Pilih Clock Source
Pilih Clock Value
Pilih Mode
Input Value

Pemrograman Interupsi Timer-1


16-Bit Timer (Setup Wizard)

Pemrograman Interupsi Timer-1


(Inisialisasi Timer-1 Hasil Wizard)
Inisialisasi Timer-1
sesuai dengan yang
diinputkan saat
Wizard.

Pemrograman Interupsi Timer-1


(Timer Registers)

TCCR1A=0x00; // Timer Control Register 1A

TCCR1B=0x01; // Timer Control Register 1B

TCNT1H=0xFC; // Timer/Counter 1H

TCNT1L=0x18; // Timer/Counter 1L

ICR1H=0x00; // Input Capture Register 1H

ICR1L=0x00; // Input Capture Register 1L

OCR1AH=0x00; // Output Compare Register 1AH

OCR1AL=0x00; // Output Compare Register 1AL

OCR1BH=0x00; // Output Compare Register 1BH

OCR1BL=0x00; // Output Compare Register 1BL

TOV1=0; // Timer/Counter Overflow 1

TIFR=0B00000000;// Timer/Counter Overflow Flag Register

Pemrograman Interupsi Timer-1


(Waktu Tunda)

#include <mega16.h>

#include <alcd.h>

#include <stdio.h>

unsigned int idata=0, iterasi=0;

unsigned char cstr[16];

interrupt [TIM1_OVF] void timer1_ovf_isr(void)

TCNT1H=0x3CB0 >> 8;

TCNT1L=0x3CB0 & 0xff;

iterasi++;

if(iterasi==100)

iterasi=0;

sprintf(cstr,"%d",idata++);

Pemrograman Interupsi Timer-1


(Waktu Tunda)

lcd_clear();

lcd_puts(cstr);

void main(void)

TCCR1A=0x00;

TCCR1B=0x01;

TCNT1H=0x3C;

TCNT1L=0xB0;

ICR1H=0x00;

ICR1L=0x00;

OCR1AH=0x00;

OCR1AL=0x00;

Pemrograman Interupsi Timer-1


(Waktu Tunda)

OCR1BH=0x00;

OCR1BL=0x00;

TIMSK=0x04;

// RS - PORTB Bit 0

// RD - PORTB Bit 1

// EN - PORTB Bit 2

// D4 - PORTB Bit 4

// D5 - PORTB Bit 5

// D6 - PORTB Bit 6

// D7 - PORTB Bit 7

// Characters/line: 16

lcd_init(16);

// Global enable interrupts

#asm("sei")

Pemrograman Interupsi Timer-1


(Waktu Tunda)

while (1)

// Place your code here

// No code!!!

E-BOOK DINS

http://depokinstruments.com/category/3-e-book/

Potrebbero piacerti anche