Sie sind auf Seite 1von 80

Bab 1

Atmega 8535

Mikrokontroler adalah sebuah system microprocessor dimana didalamnya sudah terdapat


CPU, ROM, RAM, I/O, Clock dan peralatan internal lainnya yang sudah saling terhubung
dan terorganisasi (teralamati) dengan baik oleh pabrik pembuatnya dan dikemas dalam
satu chip yang siap pakai. Sehingga kita tinggal memprogram isi ROM sesuai aturan
penggunaan oleh pabrik yang membuatnya menurut Winoto (2008:3).
Teknologi yang digunakan pada mikrokontroler AVR berbeda dengan mikrokontroler
seri MCS-51. AVR berteknologi RISC (Reduced Instruction Set Computer), sedangkan seri
MCS-51 berteknologi CISC (Complex Instruction Set Computer). Mikrokontroler AVR dapat
dikelompokkan menjadi empat kelas, yaitu keluarga ATtiny, keluarga AT90Sxx, keluarga
ATMega, dan keluarga AT89RFxx.

1. Mikrokontroler ATMega8535

ATMega8535 adalah mikrokontroler CMOS 8 bit daya rendah berbasis arsitektur RISC.
Instruksi dikerjakan pada satu siklus clock, ATMega8535 mempunyai throughput mendekati
1 MIPS per MHz, hal ini membuat ATMega8535 dapat bekerja dengan kecepatan tinggi
walaupun dengan penggunaan daya rendah. Mikrokontroler ATmega8535 memiliki beberapa
fitur atau spesifikasi yang menjadikannya sebuah solusi pengendali yang efektif untuk
berbagai keperluan. Fitur-fitur tersebut antara lain:

1) Saluran I/O sebanyak 32 buah, yang terdiri atas Port A, B, C dan D


2) ADC (Analog to Digital Converter)
3) Tiga buah Timer/Counter dengan kemampuan perbandingan
4) CPU yang terdiri atas 32 register
5) Watchdog Timer dengan osilator internal
6) SRAM sebesar 512 byte
7) Memori Flash sebesar 8kb dengan kemampuan read while write
8) Unit Interupsi Internal dan External
9) Port antarmuka SPI untuk men-download program ke flash
10) EEPROM sebesar 512 byte yang dapat diprogram saat operasi
11) Antarmuka komparator analog
12) Port USART untuk komunikasi serial.

2. Fitur ATmega8535

1) Sistem processor 8 bit berbasis RISC dengan kecepatan maksimal 16 MHz.


2) Ukuran memory flash 8KB, SRAM sebesar 512 byte, EEPROM sebesar 512 byte.
3) ADC internal dengan resolusi 10 bit sebanyak 8 channel
4) Port komunikasi serial USART dengan kecepatan maksimal 2.5 Mbps
5) Mode Sleep untuk penghematan penggunaan daya listrik

Arsitektur Mikrokontroler AVR ATMega 8535

1
Mikrokontroler AVR ATMega 8535 merupakan salah satu mikrokontroler
keluarga AVR ATMega berbasis RISC produksi dari ATMEL. Mikrokontroler
AVR merupakan mikrokontroler berbasis arsitektur RISC (Reduced Instruction Set Computing)
8 bit. Berbeda dengan mikrokontroler keluarga 8051 yang mempunyai arsitektur CISC
(Complex Instruction Set Computing), AVR menjalankan sebuah instruksi tunggal dalam satu
siklus dan memiliki struktur I/O yang cukup lengkap sehingga penggunaan komponen
eksternal dapat dikurangi. Mikrokontroler AVR didesain menggunakan arsitektur Harvard, di
mana ruang dan jalur bus bagi memori program dipisahkan dengan memori data. Memori
program diakses dengan single-level pipelining, di mana ketika sebuah instruksi dijalankan,
instruksi lain berikutnya akan di-prefetch dari memori program.

Mikrokontroler ATMega 8535 merupakan keluarga dari mikrokontroler AVR sehingga


feature dasar dari mikrokontroler AVR dimiliki oleh ATMega 8535. Arsitektur yang sangat
mendasar dari ATMega 8535 bawaan kluarga AVR adalah aritektur RISC 8 bit. Arsitektur
dari Mikrokontroler ATMega 8535 dapat di gambarkan sebagai berikut.

 Fitur-Fitur ATMega8535
1) Sistem mikroprosesor 8 bit berbasis RISC dengan kecepatan maksimal 16 MH
2) Kapabilitas memori flash 8 KB, SRAM sebesar 512 byte, dan EEPROM (Electrically
Erasable Programmable read Only Memory) sebesar 512 byte.
3) ADC internal dengan fidelitas 10 bit sebanyak 8 channel.

2
4) Portal komunikasi serial (USART) dengan kecepatan maksimal 2,5 Mbps.
5) Enam pilihan mode sleep menghemat penggunaan daya listrik.
6) Berperformen tinggi dan dengan konsumsi daya rendah (low power)

 Fitur Peripheral

 Dua Timer/Counter 8-bit dengan Separate Prescaler (sumber clock yang dapat
diatur) dan Mode pembanding
 Satu Timer/Counter 16-bit dengan Separate Prescaler, Mode pembanding dan
Capture Mode
 Real Time Counter dengan sumber osilator terpisah
 Terdapat delapan saluran ADC dengan resolusi sepuluh bit ADC
 Empat saluran Pulse Width Modulation (PWM)
 Terdapat Two Serial Interface
 Programmable serial USART
 Master/Serial SPI Serial Interface
 Programmable Watchdog Timer dengan On-Chip Oscillator
 On-Chip Analog Comparator
 8. I/O dan kemasan
 32 programmable saluran I/O
 40 pin PDIP, 44 pin TQFP, 44 PIN PLCC dan 44 pin MLF
9. Tegangan Kerja
 2,7 – 5,5V untuk ATmega8535L
 4,5 – 5,5V untuk ATmega8535
10. Kelas Kecepatan
 0 – 8 Mhz untuk ATmega8535L
 0 – 16 Mhz untuk ATmega8535

3. Konfigurasi Pin ATmega8535


Konfigurasi pin ATmega8535 bisa dilihat pada gambar 2.6, Dari gambar tersebut dapat
dijelaskan secara fungsional konfigurasi pin ATmega8535 sebagai berikut :

a) VCC merupakan pin yang berfungsi sebagai pin masukan catu daya.
b) GND merupakan pin ground.
c) Port A (PA0..PA7) merupakan pin I/O dua arah dan pin masukan ADC.
d) Port B (PB0..PB7) merupakan pin I/O dua arah dan pin fungsi khusus, yaitu
Timer/Counter, komparator analog dan SPI.
e) Port C (PC0..PC7) merupakan pin I/O dua arah dan pin fungsi khusus, yaitu TWI,
komparator analog dan Timer Oscilator.
f) Port D (PD0..PD7) merupakan pin I/O dua arah dan pin fungsi khusus, yaitu
komparator analog, interupsi eksternal dan komunikasi serial.
g) RESET merupakan pin yang digunakan untuk me-reset mikrokontroler.
h) XTAL1 dan XTAL2 merupakan pin masukan clock eksternal.
i) AVCC merupakan pin masukan tegangan untuk ADC.
j) AREF merupakan pin masukan tegangan referensi ADC.

3
 Gambar Konfirgurasi Pin ATMEGA 8535

Berikut ini adalah penjelasan dari pin mikrokontroler ATMega8535 menurut port-nya
masing-masing:
1. Port A
Pin33 sampai dengan pin 40 merupakan pin dari port A. Merupakan 8 bit directional
port I/O. Setiap pin-nya dapat menyediakan internal pull-up resistor (dapat diatur
per bit). Output buffer port A dapat memberi arus 20 mA dan dapat
mengendalikan display LED secara langsung. Data Direction Register port A (DDRA) harus
di-setting terlebih dahulu sebelum port A digunakan. Bit-bit DDRA diisi 0 jika ingin
memfungsikan pin-pin port A yang disesuaikan sebagai input, atau diisi 1 jika sebagai output.
Selain itu, pin-pin pada port A juga memiliki fungsi-fungsi alternatif khusus seperti yang
dapat dilihat dalam tabel:
Tabel Penjelasan pin pada port A

Pin Keterangan

PA.7 ADC7 (ADC Input Channel 7)

PA.6 ADC6 (ADC Input Channel 6)

PA.5 ADC7 (ADC Input Channel 5)

PA.5 ADC4 (ADC Input Channel 4)

PA.3 ADC3 (ADC Input Channel 3)

4
PA.2 ADC2 (ADC Input Channel 2)

PA.1 ADC1 (ADC Input Channel 1)

PA.0 ADC0 (ADC Input Channel 0)


2. Port B
Pin 1 sampai dengan pin 8 merupakan pin dari port B. Merupakan 8 bit directional port I/O.
Setiap pin-nya dapat menyediakan internal pull-up resistor (dapat diatur per bit). Output
buffer port B dapat memberi arus 20 mA dan dapat mengendalikan display LED secara
langsung. Data Direction Register port B (DDRB) harus di-setting terlebih dahulu
sebelum port B digunakan. Bit-bit DDRB diisi 0 jika ingin memfungsikan pin-pin port B
yang disesuaikan sebagai input, atau diisi 1 jika sebagai output. Selain itu, pin-pin port B juga
memiliki fungsi-fungsi alternatif khusus seperti yang dapat dilihat dalam tabel:
Tabel Penjelasan pin pada port B

Pin Keterangan

PB.7 SCK (SPI Bus Serial Clock)

PB.6 VISO (SPI Bus Master Input/Slave Output)

PB.5 VOSI (SPI Bus Master Output/Slave Input)

PB.4 SS (SPI Slave Select Input)

AIN1 (Analog Comparator Negative Input)OCC


PB.3 (Timer/Counter0 Output Compare Match Output)

AIN0 (Analog Comparator Positive Input)INT2 (External


PB.2 Interrupt2 Input)

PB.1 T1 (Timer/Counter1 External Counter Input)

T0 (Timer/Counter0 External Counter Input)XCK


PB.0 (JSART External Clock Input/Output)
3. Port C
Pin 22 sampai dengan pin 29 merupakan pin dari port C. Port C sendiri merupakan port
input atau output. Setiap pin-nya dapat menyediakan internal pull-up resistor (dapat diatur
per bit). Output buffer port C dapat memberi arus 20 mA dan dapat
mengendalikan display LED secara langsung. Data Direction Register port C (DDRC) harus
di-setting terlebih dahulu sebelum port C digunakan. Bit-bit DDRC diisi 0 jika ingin
memfungsikan pin-pin port C yang disesuaikan sebagai input, atau diisi 1 jika sebagai output.
Selain itu, pin-pin port D juga memiliki fungsi-fungsi alternatif khusus seperti yang dapat
dilihat dalam tabel II.6:
Tabel Penjelasan pin pada port C

5
Pin Keterangan

PC.7 TOSC2 (Timer Oscillator Pin 2)

PC.6 TOSC1 (Timer Oscillator Pin 1)

PC.1 SDA (Two-Wire Serial Bus Data Input/Output Line)

PC.0 SCL (Two-Wire Serial Bus Clock Line)


4. Port D

Pin 14 sampai dengan pin 20 merupakan pin dari port D. Merupakan 8 bit directional
port I/O. Setiap pin-nya dapat menyediakan internal pull-up resistor (dapat diatur
per bit). Output buffer port D dapat memberi arus 20 mA dan dapat
mengendalikan display LED secara langsung. Data Direction Register port D (DDRD)
harus di-setting terlebih dahulu sebelum port D digunakan. Bit-bit DDRD diisi 0 jika ingin
memfungsikan pin-pin port D yang disesuaikan sebagai input, atau diisi 1 jika sebagai output.
Selain itu, pin-pin port D juga memiliki fungsi-fungsi alternatif khusus seperti yang dapat
dilihat dalam tabel:
Tabel Penjelasan pin pada port D

Pin Keterangan

PD.0 RDX (UART input line)

PD.1 TDX (UART output line)

PD.2 INT0 (external interrupt 0 input)

PD.3 INT1 (external interrupt 1 input)

PD.4 OC1B (Timer/Counter1 output compareB match output)

PD.5 OC1A (Timer/Counter1 output compareA match output)

PD.6 ICP (Timer/Counter1 input capture pin)

PD.7 OC2 (Timer/Counter2 output compare match output)

Pin-out ATmega8535

Peta Memory ATmega8535


ATmega8535 memiliki ruang pengalamatan memori data dan memori program yang terpisah.
Memori data terbagi menjadi 3 bagian yaitu : 32 buah register umum, 64 buah register I.O, dan
512 byte SRAM internal. Register untuk keperluan umum menempati space data pada alamat
terbawah yaitu $00 sampai $1F. Sementara itu register khusus untuk menangani I/O dan
kontrol terhadap mikrokontroler menempati 64 alamat berikutnya, yaitu mulai dari $20 sampai
$5F. Register tersebut merupakan register yang khusus digunakan untuk mengatur fungsi
terhadap berbagai peripheral mikrokontroler, seperti kontrol register, timer/counter, fungsi
fungsi I/O, dan sebagainya. Register khusus alamat memori secara lengkap dapat dilihat pada

6
tabel dibawah. Alamat memori berikutnya digunakan untuk SRAM 512 byte, yaitu pada lokasi
$60 sampai dengan $25F.

Peta Memori Data ATmega8535

Memori program yang terletak pada Flash Perom tersusun dalam word atau 2 byte karena setiap
instruksi memiliki lebar 16-bit atau 32bit. AVR ATmega8535 memiliki 4KByte x 16 Bit Flash
Perom dengan alamat mulai dari $000 sampai $FFF. AVR tersebut memiliki 12 bit Program
Counter (PC) sehingga mampu mengalamati isi Flash.

 Memori Program AVR ATmega8535

Selain itu AVR ATmega8535 juga memilki memori data berupa EEPROM 8-bit sebanyak 512
byte. Alamat EEPROM dimulai dari $000 sampai $1FF.

7
Status Register
Status register adalah register berisi status yang dihasilkan pada setiap operasi yang dilakukan
ketika suatu instruksi dieksekusi. SREG merupakan bagian dari inti CPU mikrokontroler.

Status Register ATmega8535


Penjelasan
• Bit7 >>> I (Global Interrupt Enable), Bit harus di Set untuk mengenable semua jenis
interupsi.
• Bit6 >>> T (Bit Copy Storage), Instruksi BLD dan BST menggunakan bit T sebagai sumber
atau tujuan dalam operasi bit. Suatu bit dalam sebuah register GPR dapat disalin ke bit T
menggunakan instruksi BST, dan sebaliknya bit T dapat disalin kembali ke suatu bit dalam
register GPR dengan menggunakan instruksi BLD.
• Bi5 >>> H (Half Cary Flag)
• Bit4 >>> S (Sign Bit) merupakan hasil operasi EOR antara flag -N (negatif) dan flag V
(komplemen dua overflow).
• Bit3 >>> V (Two's Component Overflow Flag) Bit ini berfungsi untuk mendukung operasi
matematis.
• Bit2 >>> N (Negative Flag) Flag N akan menjadi Set, jika suatu operasi matematis
menghasilkan bilangan negatif.
• Bit1 >>> Z (Zero Flag) Bit ini akan menjadi Set apabila hasil operasi matematis menghasilkan
bilangan 0.
• Bit0 >>> C (Cary Flag) Bit ini akan menjadi set apabila suatu operasi menghasilkan carry.

Sistem Minimum Atmega8535


Untuk membuat rangkaian minimum ATmega8535 diperlukan beberapa komponen yaitu:
• IC mikrokontroler ATmega8535
• 1 XTAL 4 MHz atau 8 MHz atau 11.0592 MHz (XTAL1)
• 3 kapasitor kertas yaitu dua 22 pF (C2 dan C3) serta 100 nF (C4)
• 1 kapasitor elektrolit 4.7 uF (C12) 2 resistor yaitu 100 ohm (R1) dan 10 Kohm (R3)
• 1 tombol reset pushbutton (PB1)
Selain itu tentunya diperlukan power suply yang bisa memberikan tegangan 5V DC.
Rangkaian sistem minimum ini sudah siap untuk menerima sinyal analog (fasilitas ADC) di
port A.

8
Bab 2
Mikrokontroler MCS-51

Sebuah mikroprosesor yang digabungkan dengan input-output (I/O) dan memori


(Random Access Memory/Read Only Memory) akan membentuk sebuah sistem
mikrokomputer. Dari pemikiran CPU yang dapat dikonstruksi dalam sebuah IC tunggal,
maka sebuah mikroprosesor, I/O dan memori dapat pula dibangun dalam tingkatan IC.
Konstruksi ini menghasilkan Single Chip Microcomputer (SCM). SCM inilah yang disebut
sebagai mikrokontroler.
Tahun 1976 Intel meluncurkan mikrokontroler pertama yang disebut seri MCS-48 yang
berisi lebih dari 17.000 transistor, hingga saat ini seri ini masih banyak digunakan untuk

9
aplikasi khusus. Seiring perkembangan mikroprosesor, mikrokontroler juga mengalami
perkembangan pesat seperti turunan MCS-51, 68HC11, mikrokontroler PIC, Fujitsu dan
sebagainya.
Pada awal perkembangannya, mikroprosesor dibuat menurut kebutuhan aplikasi yang lebih
spesifik, dalam hal ini mikroprosesor dibagi menjadi beberapa jenis, yaitu :
 Mikroprosesor RISC (Reduced Instruction Set of Computing) dan CISC (Complex
Instruction Set of Computing). Jenis ini yang digunakan untuk pengolahan informasi
dengan perangkat lunak yang rumit dan digunakan untuk kebanyakan PC (Personal
Computer) saat ini.
 Pengolah Sinyal Digital, DSP (Digital Signal Processor). Memiliki perangkat lunak
dan perangkat keras yang ditujukan untuk mempermudah proses pengolahan sinyal-
sinyal digital. DSP digunakan pada perangkat audio dan video modern seperti VCD,
DVD, home theatre dan juga pada kartu-kartu multimedia di komputer.
 Mikrokontroler, adalah mikroprosesor yang dikhususkan untuk instrumentasi dan
kendali. Contoh penggunaannya adalah sebagai pengendali motor, berperan seperti
PLC (Programmable Logic Controller), pengaturan pengapian dan injeksi bahan bakar
pada kendaraan bermotor atau alat pengukur otomatis suatu besaran seperti suhu,
tekanan, kelembaban dan lain-lain.
Dalam perkembangan yang begitu cepat, batasan-batasan tersebut menjadi kabur, seperti
definisi mini, mikro dan mainframe komputer. Beberapa mikrokontroler disebut embedded
processor, atau embedded processor adalah mikrokontroler, artinya prosesor yang diberikan
program khusus yang selanjutnya diaplikasikan untuk akuisisi data dan kendali khusus, juga
bisa diprogram ulang. Beberapa mikrokontroler modern juga sudah dilengkapi dengan DSP
atau terdapat pula mikrokontroler yang tergolong RISC seperti mikrokontroler AVR (Alf and
Vegard’s Risc processor).
Mikrokontroler adalah suatu chip yang dibuat dengan ciri khasnya, umumnya adalah :
 Memiliki memori yang relatif sedikit. Penggunaan mikrokontroler untuk keperluan
instrumentasi khusus membuatnya tidak efisien jika menggunakan memori yang besar
namun tidak terpakai.
 Memiliki unit I/O langsung. Berbeda dengan mikrokomputer yang unit I/O-nya dapat
dikonfigurasi lebih lanjut, mikrokontroler mempunyai unit I/O yang terintegrasi dan
berhubungan langsung dengan mikroprosesornya.
 Program atau perangkat lunaknya relatif sederhana. Sesuai fungsi yang dibuat untuk
tujuan khusus, mikrokontroler hanya membutuhkan program yang sederhana untuk
menjalankan fungsinya.
 Pemroses bit, ketimbang byte. Dengan memori yang sedikit dan implementasi
perangkat lunak yang sederhana, mikrokontroler lebih cenderung digunakan untuk
memproses bit (binary digit) dibandingkan byte (8 bit), untuk kemudian setiap bit
disalurkan ke setiap jalur keluaran I/O pada pin-pin yang dimilikinya.
 Beberapa varian memiliki memori yang tidak hilang bila catu padam didalamnya
untuk menyimpan program.
Sedangkan dalam hal aplikasi, sistem mikrokontroler memiliki karakteristik sebagai berikut :

10
 Memiliki program khusus yang disimpan dalam memori untuk aplikasi tertentu, tidak
seperti PC yang multifungsi karena mudahnya memasukkan program. Program
mikrokontroler relatif lebih kecil daripada program-program pada PC.
 Konsumsi daya kecil.
 Rangkaian sederhana dan kompak.
 Murah, karena komponen yang digunakan sedikit.
 Unit I/O yang sederhana, misalnya keypad, LCD, LED, latch.
 Lebih tahan terhadap kondisi lingkungan ekstrim misalnya temperatur, tekanan,
kelembaban dan sebagainya.
Intel 8048 adalah SCM yang pertama, dipasarkan pada tahun 1976, ini merupakan cikal bakal
dari mikrokontroler. Keluarga dari 8048 adalah 8021, 8022, 8048, dan 8049 yang hingga saat
ini masih digunakan pada alat-alat kedokteran modern dan digunakan pada keyboard IBM PC
untuk scanning tombol-tombolnya. Versi 8748 memiliki EPROM 1 kByte untuk menyimpan
programnya. Keluarga mikrokontroler pertama ini dikenal dengan nama MCS-48. Generasi
kedua mikrokontroler 8 bit adalah keluarga mikrokontroler 8051 di tahun 1980, dengan nama
MCS-51 dan diklaim sebagai standar mikrokontroler untuk industri yang menguasai lebih
dari 60% pasar mikrokontroler dan menjadi inti bagi terciptanya mikrokontroler produk
lainnya. Generasi ketiga adalah mikrokontroler 16 bit, seri MCS-96 yang dapat melakukan
operasi 16 bit serta penambahan kemampuan dan kecepatan proses yang ditingkatkan. Kini
jutaan chip telah digunakan di seluruh dunia untuk pengendalian proses-proses dan
instrumentasi.

1. Arsitektur MCS-51

11
Dasar dari IC MCS-51 adalah mikrokontroler 8051 yang mempunyai spesifikasi sebagai
berikut :
 ROM 4K byt
 RAM 128 byte
 4 buah I/O (Input/Output) port 8-bit
 2 buah timer 16 bit
 Interface serial
 64K pengalamatan code (program) memori
 64K pengalamatan data memori
 Prosesor Boolean (satu bit – satu bit)
 210 lokasi bit-addressable
 4 µs operasi pengalian/pembagian.
 Flash-adl suatu jenis rom yang biasanya di isi dengan program hasil buatan
yang harus dijalankan mikrokontroler
 Eeprom-adl rom untuk menyimpan data secara permanen oleh program
yang sedang runing
 Pin i/o-kaki untuk jalur in/out sinyal sebagai hasil keluaran ataupun
masukan bagi program.
 Timer-modul hardware yang bekerja untuk menghitung waktu/pulsa.
 UART (Universal Asynchronous Receiver Transmitter) adalah jalur
komunikasi data khusus asinkron/adapter serial port adapter untuk
komunikasi serial asinkron.
 USART (Universal Synchronous/Asynchronous Receiver
Transmitter)merupakan adapter serial port untuk komunikasi serial sinkron
dan asinkron.Komunikasi serial sinkron tidak memerlukan start/stop bit dan
dapat beroperasi pada click yang lebih tinggi dibanding asinkron.
 SPI (serial peripheral interface) merupakan port komunikasi serial sinkron.

12
 SCI (serial communications interface) merupakan enhanced UART
(asynchronous
 serial port)
 isp-keamanan khusus mikrikontroler untuk dapat di program langsung
dalam sistem.
 Dalam 89s51/52 terdapat 32 jalur port yang dikelompokan dalam 4 buah
port yang masing terdiri dari 8 bit

2. Konfirgurasi Pin MCS-51

Fungsi-fungsi tiap pin AT89C51

 Pin 1-8 Port 1


 P1.0 – P1.7, Port input/output parallel bi-directional dengan internal pullup.
 Port 1 juga menerima alamat orde terendah selama pemrograman flash dan
verifikasinya. Fungsi alternatifnya
 P1.5 MOSI (digunakan untuk ISP)
 P1.6 MISO (digunakan untuk ISP)
 P1.7 SCK (digunakan untuk ISP)
 Pin 9 RST

13
(reset) adalah masukan reset (aktif tinggi/high). Logika high selama 2 siklus mesin akan
mereset MCU.

 Pin 10 -17 Port 3


 P3.0-P3.7, Port input/output bi-directional dengan internal pullup yang juga memiliki
alternatif sebagai:
 P3.0 = RXD Port komunikasi input serial
 P3.1 = TXD Port komunikasi output serial
 P3.2 = INT0 Saluran interupsi eksternal 0 (aktif rendah)
 P3.3 = INT1 Saluran interupsi eksternal 1 (aktif rendah)
 P3.4 = T0 Input timer 0
 P3.5 = T1 Input timer 1
 P3.6 = WR Berfungsi sebagai sinyal kendali tulis, saat prosesor akan menulis data ke
memori/IO luar
 P3.7 = RD Berfungsi sebagai sinyal kendali baca, saat prosesor akan menulis data ke
memori/IO luar
 Pin 18 XTAL2 masukan ke rangkaian osilator internal.
 Pin 19 XTAL1 masukan ke rangkaian osilator internal. Sumber osilator eksternal
atau quartz crystal dapat digunakan.
 Pin 20 GND masukan catu daya 0V DC
 Pin 21-28 Port 2
 P2.0 – P2.7, Port input/output parallel bi-directional dengan internal pullup. Port ini
mengirimkan byte alamat bagian tinggi bila dilakukan untuk pengaksesan (fetch)
memori eksternal, misal menggunakan pengalamatan-16 bit (MOVX @DPTR).
 Pin 29 PSEN PSEN’ (Program Store Enable), sinyal pengontrol yang berfungsi untuk
membaca program (fetch /mengambil instruksi) dari memori eksternal.
 Pin 30 ALE/ PROG
 ALE (Address Latch Enable), berfungsi menahan sementara alamat byte rendah pada
proses pengalamatan ke memori eksternal. Pada operasi normal, ALE mempunyairate
1/6 frekuensi osilator dan memungkinkan digunakan sebagai timing atau clock
eksternal. Jika diperlukan ALE dapat di-disable dengan mengeset bit 0 pada SFR lokasi
EH, sehingga tak akan memberikan pengaruh jika MCU mengakses modeeksternal.
PROG , berfungsi sebagai input pulsa program (PROG) saat pemrograman flash.
 Pin 31 EA /VPP
 EA (external access) harus dihubungkan ke GND untuk meng-enable piranti agar dapat
mengakses lokasi memori program eksternal pada alamat 0000H-FFFFH. Tetapi jika
EA dihubungkan dengan Vcc, maka MCU akan mengeksekusi program internal. pin
untuk pilihan program, menggunakan program internal atau eksternal. Bila “0”, maka
menggunakan program eksternal. Pin ini juga menerima tegangan 12V untuk meng-
enable program selama proses pemrograman flash.
 Pin 32-39 Port 0 P0.7 – P0.0, Port input/output parallel bi-directional bertipe open
drain. Port ini dimultipleksing/ digunakaan sebagai bus data dan bus alamat orde rendah
bila MCU mengakses data dan program eksternal. Port 0 juga menerima kode byte
selama proses pemrograman flash dan mengeluarkan kode byte selama verifikasi
program. Memerlukan pullupeksternal selama proses verifikasi program.

14
Software

 Organisasi Memori
 Kumpulan Register
 Instruksi

Hardware

 Pin-out
 Timing characteristics
 Current / Voltage requirements

Organisasi Memori
8051 memiliki beberapa alamat terpisah untuk penyimpanan program dan data.

Organisasi Memori Mikrokontroller

Penyimpanan Program
Setelah reset, MCS-51 mulai mengutip instuksi dari 0000H. Dapat diambil dari memori
eksternal maupun internal.

 Jika EA rendah, maka memori program dari eksternal.


 Jika EA tinggi, maka alamat 0000 hingga 0FFF adalah ROM internal.

Penyimpanan Data
8051 memiliki 256 byte RAM internal.

 128 byte bawah digunakan untuk penyimpanan data.

15
 128 byte atas digunakan untuk Special Function Registers (SFR).

128 bytes bawah digunakan bukan hanya sekedar RAM biasa.

 Menyimpan registers,
 Stack
 Dan fitur lainnya

 32 byte paling bawah membentuk 4 bank dari dengan isi 8 register tiap bank.
 Hanya salah satu bank yang dapat aktif
 Bank yang aktif dapat dipilih dengan mengatur 2 bit di PSW. [[Default bank (ketika
dinyalakan) adalah bank 0 (lokasi 00 – 07)]].
 Ke 8 register pada tiap bank dinamakan R0 hingga R7
 Tiap register ini memiliki alamat dan dapat diakses langsung dengan menggunakan
alamtnya tersebut, meskipun bank yang bersangkutan tidak diaktifkan.

16
 16 byte selanjutnya – lokasi 20H hingga 2FH – membentuk blok yang dapat dialamati

baik sebagai byte maupun bit.

 Byte memiliki alamat 20H hingga 2FH.

 Bit-bit memiliki alamat 00H hingga 7FH.

 Instruksi tertentu digunakan untuk mengakses bit-bit tersebut

 Lokasi 30H hingga 7FH adalah general purpose RAM.

17
 RAM –128 Byte Pertama

Lokasi memori bit addressable

SFR – Special Function Registers

 RAM 128 byte atas digunakan untuk tempat special function register. Hanya sekitar 25
byte yang digunakan. Sisanya dicadangkan untuk versi pengembangan 8051.
 Register-register ini berhubungan dengan fungsi yang penting dalam kerja MCS-51.
 Beberapa SFR bersifat bit-addressable juga byte-addressable. Alamat bit 0 suatu
register sama dengan alamat register yang bersangkutan.

18
Lokasi SFR

Special Function Registers

 ACC dan B registers – 8 bit


 DPTR : data pointer [DPH:DPL] – 16 bit (gabungan)
 PC : Program Counter – 16 bit
 Stack pointer SP – 8 bit
 PSW : Program Status Word
 P0, P1, P2, P3 - Port Latch
 SBUF - Serial Data Buffer
 TH0, TL0, TH1, TL1 - Register Timer
 Control Registers

ACC – Akumulator
Umumnya digunakan untuk penyalinan dan instruksi aritmatika dan dapat ditulis dengan
beberapa cara:

 Dinyatakan dengan ACC (atau A).


 Dengan alamatnya 0E0H.

Disamping itu, juga bersifat bit addressable dimana ACC.2 berarti bit 2 register ACC.

Register B

 Umumnya digunakan sebagai register sementara, mirip seperti register R0 – R7


 Digunakan oleh dua opcode, seperti : mul AB, div AB
 Register B menyimpan operan kedua dan menyimpan hasilnya seperti : 8 bit atas hasil
perkalian dan Sisa pada pembagian.
 Dapat juga diakses melalui alamatnya 0F0H.
 Bersifat bit-addressable.

Register DPL dan DPH

19
 2 8-bit registers that can be combined into a 16-bit DPTR – Data Pointer.
 Used by commands that access external memory
 Also used for storing 16bit values
 mov DPTR, #data16 ; setup DPTR with 16bit ext address
 movx A, @DPTR ; copy mem[DPTR] to A
 Can be accessed as 2 separate 8-bit registers if needed.
 DPTR is useful for string operations and look up table (LUT) operations.

The SP Register

 SP is the stack pointer.


 SP points to the last used location of the stack. (Push operation will first increment SP
and then copy data and Pop operation will first copy data and then decrement SP).
 In 8051, stack grows upwards (from low memory to high memory) and can be in the
internal RAM only.
 On power-up, SP points to 07H. (Register banks 2,3,4 (08H to 1FH) form the default
stack area).
 Stack can be relocated by setting SP to the upper memory area in 30H to 7FH, (mov
SP, #32H).

Register PSW
Program Status Word: bersifat “bit addressable” register 8-bit Menyimpan seluruh flag.

Program Status Word

Register P0, P1, P2, and P3

 Port Latch.
 Memberikan nilai yang dikeluarkan pada port tertentu atau nilai yang dibaca dari port
input tertentu.

20
 Bersifat bit addressable. Alamat bit pertama juga merupakan alamat register yang
bersangkutan. Contoh: alamat P1 adalah 90H, sehingga P1.7 atau 97H merupakan bit
yang sama.

Register SBUF

 Serial Port Data Buffer.


 2 register dengan lokasi yang sama. Satu untuk menyimpan data serial hasil input
(Buffer Serial Data Receive). Satu lagi untuk tulis data serial (Buffer Serial Data
Transmit).

Register Timer – TH0 dan TL0

 Byte tinggi dan rendah register cacah 16-bit untuk timer/counter T0.
 Terdapat pasangan TH1 / TL1 untuk timer T1.

Register Kontrol

 IP – Interrupt Priority.

 IE – Interrupt Enable.

 TMOD – Timer Mode.

 TCON – Timer Control.

 T2CON – Timer 2 Control (8052)

 SCON – Serial Port Control.

 PCON – Power Control (80C51).

 Over View

Manajemen Memori

21
Pengalamatan Memori

22
Tabel SFR

23
Bab 3

Mikrokontroler ATmega 15

AVR merupakan seri mikrokontroler Conplementary Metal Oxide Semiconduktor


(CMOS) 8-bit buatan Atmel berbasis arsitektur RISC (Reduced Instruction Set Computer).
Hamper semua instruksi pada program dieksekusi dalam satu siklus clock. AVR mempunyai
32 register general-purpose, timer/counter fleksibel dengan mode compare, interupsi
internal dan eksternal, seral UART, programmable Watchdog Timer, power saving mode,
ADC dan PWM. AVR pun mempunyai In-System Programmabel (ISP) Flash on-chip yang
mengijinkan memori program untuk deprogram ulang (read/write) dengan koneksi secara
serial yang disebut Seral Peripheral Interface (SPI).

AVR memiliki keunggulan dibandingkan dengan mikrokontroler lain, keunggulan


mikrokontrel AVR yaitu memiliki kecepatan dalam mengeksekusi program yang lebih
cepat, Karena sebagian besar instruksi dalam mengeksekusi program yang lebih cepat,
Karena sebagian besar instruksi dieksekusi dalam 1 siklus clock (lebih cepat dibandingkan
dengan mikrokontroler keluarga MCS 51 yang memiliki arsitektur Complex Instruktion Set
Computer).

ATMEGA16 mempunyai throungput membuat konsumsi daya menjadi rendak


terhadap kecepatan proses eksekusi perintah.

Kelebihan ATMEGA16

 Mikrokontroler AVR 8 bit yang memiliki kemampuan tinggi dengan konsumsi daya
rendah
 Arsitektur RISC dengan throughput mencapai 16 MIPS pada frekuensi 16MH
 Saluran I/O sebanyak 32 buah, yaitu Port A, Port B, Port C, Port, D.
 CPU yang terdiri dari 32 buah register
 Unit interupsi dan eksternal
 Port USART untuk kemunikasi serial
 Fitur peripheral
 Tiga buah Timer/Counter dengan kemampuan perbandingan (compare)
 Dua buah Timer/Counter 8 bit dengan Prescaler terpisah dan Mode
Compare
 Satu buah Timer/Counter 16 bit dengan Prescaler terpisah, Mode
Compare dan Mode Capture
 Real Time Counter dengan Oscillator tersendiri
 Empat kanal PWM
 8 kanal ADC
 8 Single-ended Channel dengan keluaran hasil konversi 8 dan 10
resolusi (register ADCH dan ADCL)

24
 7 Differrential Channel hanya pada kemasan Thin Quad Flat Pack
(TQFP)
 2 Differential Channel dengan Programmable Gain
 Antarmuka Serial Peripheral Interface (SPI) Bus
 Watchdog Timer dengan Oscillator internal

1. Arsitektur ATMega16
Mikrokontroler ini menggunakan arsitektur Harvard yang memisahkan
memori program dari memori data, baik bus alamat maupun bus data,
sehingga pengaksesan program dan data dapat dilakukan secara bersamaan
(concurrent), adapun blog diagram arsitektur ATMega16. Secara garis besar
mikrokontroler ATMega16 terdiri dari :

 Arsitektur RISC dengan throughput mencapai 16 MIPS pada frekuensi


16Mhz.
 Memiliki kapasitas Flash memori 16Kbyte, EEPROM 512 Byte, dan
SRAM 1Kbyte
 Saluran I/O 32 buah, yaitu Port A, Port B, Port C, dan Port D.
 CPU yang terdiri dari 32 buah register.
 User interupsi internal dan eksternal
Port antarmuka SPI dan Port USART sebagai komunikasi serial

 Fitur Peripheral :

 Dua buah 8-bit timer/counter dengan prescaler terpisah dan mode compare
 Satu buah 16-bit timer/counter dengan prescaler terpisah, mode compare, dan mode
capture
 Real time counter dengan osilator tersendiri
 Empat kanal PWM dan Antarmuka komparator analog
 8 kanal, 10 bit ADC
 Byte-oriented Two-wire Serial Interface
 Watchdog timer dengan osilator internal

 Gambar Arsitektur ATMEGA16

25
 Konfirgurasi Pin ATMEGA 16
Atmega 16 memepunyai kaki standart 40 pin PID yang mempunyai fungsi sendiri-
sendiri. Untuk lebih jelas tentang konigurasi Pin Atmega 16 bisa di lihat pada gambar berikut.

26
Gambar di atas merupakan susunan kaki standar 40 pin mikrokontroler AVR
Atmega16. Berikut penjelasan umum susunan kaki Atmega16 tersebut:

 VCC merupakan pin masukan positif catudaya. Setiap peralatan elektronika digital
tentunya butuh sumber catu daya yang umumnya sebesar 5 V, itulah sebabnya di PCB
kit rangkaian mikrokontroler selalu dipasang IC regulator 7805.
 GND sebagai PIN ground.
 Port A (PA0 ... PA7) merupakan pin I/O dua arah dan dapat diprogram sebagai pin
masukan ADC.
 Port B (PB0 ... PB7) merupakan pin I/O dua arah dan pin fungsi khusus, yaitu
Timer/Counter, Komparator Analog, dan SPI.
 Port C (PC0 ... PC7) merupakan pin I/O dua arah dan pin fungsi khusus, yaitu TWI,
komparator analog, dan Timer Oscilator.
 Port D (PD0 ... PD7) merupakan pin I/O dua arah dan pin fungsi khusus, yaitu
komparator analog, interupsi eksternal, dan komunikasi serial.
 Reset merupakan pin yang digunakan untuk me-reset mikrokontroler ke kondisi
semula.
 XTAL 1 dan XTAL 2 sebagai pin masukan clock eksternal. Suatu mikrokontroler
membutuhkan sumber detak (clock) agar dapat mengeksekusi intruksi yang ada di
memori. Semakin tinggi nilai kristalnya, maka semakin cepat pula mikrokontroler
tersebut dalam mengeksekusi program.
 AVCC sebagai pin masukan tegangan untuk ADC.
 AREF sebagai pin masukan tegangan referensi.

27
Port sebagai input/output digital

ATMega16 mempunyai empat buah port yang bernama PortA, PortB, PortC, dan PortD.
Keempat port tersebut merupakan jalur bidirectional dengan pilihan internal pull-up. Tiap
port mempunyai tiga buah register bit, yaitu DDxn, PORTxn, dan PINxn. Huruf ‘x’mewakili
nama huruf dari port sedangkan huruf ‘n’ mewakili nomor bit. Bit DDxn terdapat pada I/O
address DDRx, bit PORTxn terdapat pada I/O address PORTx, dan bit PINxn terdapat pada
I/O address PINx. Bit DDxn dalam register DDRx (Data Direction Register) menentukan
arah pin. Bila DDxn diset 1 maka Px berfungsi sebagai pin output. Bila DDxn diset 0 maka
Px berfungsi sebagai pin input. Bila PORTxn diset 1 pada saat pin terkonfigurasi sebagai pin
input, maka resistor pull-up akan diaktifkan. Untuk mematikan resistor pull-up, PORTxn
harus diset 0 atau pin dikonfigurasi sebagai pin output. Pin port adalah tri-state setelah
kondisi reset.

Bila PORTxn diset 1 pada saat pin terkonfigurasi sebagai pin output maka pin port akan
berlogika 1. Dan bila PORTxn diset 0 pada saat pin terkonfigurasi sebagai pin output maka
pin port akan berlogika 0. Saat mengubah kondisi port dari kondisi tri-state (DDxn=0,
PORTxn=0) ke kondisi output high (DDxn=1, PORTxn=1) maka harus ada kondisi peralihan
apakah itu kondisi pull-up enabled (DDxn=0, PORTxn=1) atau kondisi output low
(DDxn=1, PORTxn=0).
Biasanya, kondisi pull-up enabled dapat diterima sepenuhnya, selama lingkungan impedansi
tinggi tidak memperhatikan perbedaan antara sebuah strong high driver dengan sebuah pull-
up. Untuk lebih jelasnya, dapat dilihat pada gambar berikut.

28
Peta Memori

AVR ATMega16 memiliki ruang pengalamatan memori data dan memori program yang
terpisah. Memori data terbagi menjadi 3 bagian, yaitu 32 buah register umum, 64 buah
register I/O, dan 1kb SRAM internal.

Register keperluan umum menempati space data pada alamat terbawah, yaitu $00 sampai
$1F. Sementara itu, register khusus untuk menangani I/O dan kontrol terhadap
mikrokontroler menempati 64 alamat berikutnya, yaitu mulai dari $20 hingga $5F. Register
tersebut merupakan register yang khusus digunakan untuk mengatur fungsi terhadap berbagai
peripheral mikrokontroler,
seperti kontrol register, timer/counter, fungsi – fungsi I/O, dan sebagainya. Alamat memori
berikutnya yang digunakan untuk SRAM 1kb, yaitu pada lokasi $60 sampai dengan $45F.
Konfigurasi memori data ditunjukan pada gambar berikut.

29
Mikrokontroler disini digunakan sebagai komunikasi antara computer dengan Plant,
dimana digunakan komunikasi serial RS232 sebagai komunikasi antara Mikrokontroler
dengan Komputer. (Wardhana.L ,2006).

Pulse Width Modulation (PWM)

PWM atau modulasi lebar pulsa adalah salah satu keunggulan dari Timer/Counter yang
terdapat pada ATMega16. Ketiga jenis Timer/Counter pada ATMega32 dapat menghasilkan
pulsa PWM. Pulsa PWM adalah sederetan pulsa yang lebar pulsanya dapat diatur. Pulsa
PWM berfungsi mengatur kecepatan motor DC, mengatur gelap terang LED dan lain
sebagainya.

Untuk memahami penggunaan PWM, disini digunakan Timer/Counter 1 sebagai PWM.


PWM adalah Timer Mode Output Compare yang canggih. Mode PWM timer juga dapat
mencacah turun yang berlawanan dengan mode Timer lainya yang hanya mencacah naik.
Pada mode PWM tersebut, Timer mencacah naik hingga mencapai nilai TOP, yaitu 0xFF
untuk PWM 8 bit. Timer/Counter 1 memiliki PWM 9 bit dan PWM 10 bit, selain PWM 8 bit.
Pemilihan Timer Mode PWM diseting melalui bit WGM01 dan bit WGM00 pada register

30
TCCR0. Tabel Konfigurasi Bit WGM01 dan WGM00 dapat dilihat pada tabel berikut.

Sebagai penggunaan mode PWM Timer / Counter 0, keluaran sinyal PWM terletak pada
pin OC0 sehingga pada contoh ini LED diletakkan pada pin OC0. Ketika nilai TCNT0 sama
dengan nilai pada OCR0, maka output pada OC0 akan berlogika nol atau berlogika satu,
tergantung pada pemilihan mode PWM. Anda dapat memilih mode normal atau mode
inverted PWM. Pemilihan mode PWM diseting melalui bit COM01 dan bit COM00 pada
register TCCR0 yang konfigurasinya seperti tabel berikut.

Tabel Konfigurasi Bit COM01 dan COM00 Compare Output Mode Phase Correct PWM

Dari tabel diatas dapat diketahui saat COM00 clear dan COM01 set, pin OC0 clear saat
timer mencacah diatas Compare Match dan pin OC0 set saat timer mencacah dibawah
Compare Match atau non-inverting PWM. Kebalikannya, saat COM00 set dan COM01 juga
set, maka pin OC0 set saat timer mencacah diatas Compare Match dan pin OC0 clear saat
mencacah dibawah Compare Match atau disebut juga inverting PWM. Untuk lebih jelasnya,
perhatikan gambar berikut.

31
Didalam mikrokontroler Atmega16 terdiri dari:

 Saluran I/O ada 32 buah, yaitu Port A, Port B, Port C, dan Port D.
 ADC (Analog to Digital Converter) 10 bit sebanyak 8 channel.
 Tiga buah Timer/Counter dengan kemampuan perbandingan.
 CPU yang terdiri dari 32 register.
 131 intruksi andal yang umumnya hanya membutuhkan 1 siklus clock.
 Watchdog Timer dengan oscilator internal.
 Dua buah Timer/Counter 8 bit.
 Satu buah Timer /Counter 16 bit.
 Tagangan operasi 2.7 V - 5.5 V pada Atmega16.
 Internal SRAM sebesar 1KB.
 Memory Flash sebesar 16KB dengan kemampuan Read While Write.
 Unit interupsi internal dan eksternal.
 Port antarmuka SPI.
 EEPROM sebesar 512 byte dapat diprogram saat operasi.
 Antar muka komparator analog.
 4 channel PWM.
 32x8 general purpose register.
 Hampir mencapai 16 MIPS pada Kristal 16 MHz.
 Port USART programmable untuk komunikasi serial.

32
Bab 4
Mikrokontroler Atmega 32

Mikrokontroller Atmega32 Merupakan mikrokontroler yang diproduksi oleh Atmel.


mikrokontroler ini memiliki clock dan kerjanya tinggi sampai 16 MHz, ukuran flash
memorinya cukup besar, kapasistas SRAM sebesar 2 KiloByte, Flash 32 KiloByte dan 32
port input/output. dalam satu sirkuit berisikan inti prosesor, memory dan Input/Output.
Memori program dalam bentuk flash atau ROM, serta jumlah RAM yang kecil.
Mikrokontroler dirancang untuk aplikasi Embedded, kontras dengan mikroprosesor yang
digunakan dalam komputer pribadi atau aplikasi tujuan umum.
Mikrokontroler digunakan dalam produk sistem otomatis, seperti sistem kontrol
mesin mobil, perangkat medis implan, remote kontrol, mesin kantor, peralatan – peralatan
listrik, dan mainan. Dengan mengurangi ukuran dan biaya dibandingkan dengan desain yang
menggunakan perangkat mikroprosesor terpisah, memory dan input / output.
 Fitur – fitur ATmega32

Microcontroller AVR (Alf and Vegard’s Risc processor) standar memiliki arsitektur
8bit, dimana semua instruksi dikemas dalam kode 16-bit, dan sebagian besar instruksi
dieksekusi dalam 1 (satu) siklus clock. AVR berteknologi RISC (Reduced Instruction Set
Computing). AVR dapat dikelompokkan menjadi empat kelas, yaitu keluarga ATtiny,
keluarga ATSOSxx, keluarga ATmega, dan AT86RFxx. Pada dasarnya, yang membedakan
masing-masing kelas adalah memori, anda dapat mencoba ATmega8 atau ATtiny2313
dengan ukuran Flash Memory 2KB dengan dua input analog. Berikut adalah fitur yang
terdapat pada microcontroller ATmega32 yaitu:

 Saluran I/O ada 32 buah, yaitu Port A, Port B, Port C, dan Port D.
 ADC (Analog to Digital Converter) 10 bit sebanyak 8 channel.
 Tiga buah Timer/Counter.
 CPU yang terdiri dari 32 buah register.
 Memiliki 131 instruksi yang membutuhkan 1 siklus clock.
 Watchdog timer dengan osilator internal.
 Dua buah timer/counter 8 bit, satu buah timer/counter 16 bit
 Tegangan operasi 2.7 V – 5.5 V pada ATmega 16L.
 Internal SRAM sebesar 1 KB.
 Memori flash sebesar 32KB dengan kemampuan Read While Write.
 Unit interupsi internal dan external.
 Port antarmuka SPI.
 EEPROM sebesar 512 byte yang dapat diprogram saat operasi.
 Antarmuka komparator analog.
 4 channel PWM.
 32x8 general purpose register.
 Hampir mencapai 16 MIPS pada Kristal 16 MHz.
 Port USART yang dapat diprogram untuk komunikasi serial.

33
Berikut kelebihan yang dimiliki ATmega32 (Aozon mengambil referensi langsung dari
Atmel termasuk datasheet yang diterbitkannya):

 Kinerja Tinggi, Low-Power AVR® 8-bit Microcontroller


Seperti yang disebutkan Atmel dalam websitenya "The low-power Atmel 8-bit AVR
RISC-based microcontroller... The device supports throughput of 16 MIPS at 16 MHz
and operates between 2.7-5.5 volts".
 Menggunakan Arsitektur RISC

Mikrokontroler AVR memiliki arsitektur Reduced Instruction Set Computing (RISC)

atau " set instruksi Komputasi yang disederhanakan".

 Daya Tahan Tinggi dan Segmen Memori Non-Volatile

Mikrokontroler AVR memiliki daya tahan data (retensi data) 20 tahun ketika suhu

mencapai 85°C atau 100 tahun ketika suhu mencapai 25°C.

 Memiliki Antarmuka JTAG (IEEE std. 1149.1 Compliant)

Tidak hanya SPI, ATmega32 memiliki antarmuka JTAG yang memungkinkan

pengguna dapat memprogram Flash, EEPROM, Fuse, dan Lock Bits.

 Memiliki Fitur Perangkat

Mikrokontroler AVR memiliki fitur tambahan yang sangat membantu kita untuk

melakukan penelitian yang lebih baik, seperti terdapat ADC, PWM dan Timer.

 Memiliki Fitur Tambahan

Mikrokontroler ini memiliki fitur menarik yang patut dicoba seperti 5 mode Sleep,

eksternal dan internal interupsi, dan kalibrasi RC Oscillator internal.

 Mempunyai 32 jalur Program I/O

ATmega32 mempunyai 32 jalur Program sehingga memungkinkan kita untuk

mengontrol lebih banyak device/ perangkat, seperti Tombol/ switch, LED, buzzer dan

LCD.

 Memiliki operasi tegangan dari 2,7 Volt sampai 5,5 Volt

34
ATmega32 memiliki operasi tegangan dari 2,7 Volt sampai 5,5 Volt. Ini sangat

membantu kita untuk menghemat listrik. Kecepatan maksimal bisa mencapai 16 MHz

(tanpa overclock).

 Daya yang dibutuhkan ketika aktif hanya 1,1 mA

ATmega32 membutuhkan arus yang sangat kecil dibanding komponen analog yang

biasa kita pakai. Hal ini dibuktikan dengan konsumsi daya yang dibutuhkan ketika aktif

saja hanya 1,1 mA, bahkan bisa mencapai 1 uA ketika mode power-down.

1. Arsitektur ATMEGA 32

35
ATmega32 memiliki clock generator internal sehingga mikrokontroler ini
dapat bekerja langsung tanpa menggunakan clock eksternal. Sinyal clock internal yang
dibangkitkan sebesar 1 MHZ. Jadi, cukup dengan menghubungkan Vcc dan Gnd dengan
tegangan 5V DC mikrokontroler ini dapat bekerja.
Untuk membuat program untuk ATmega32 dapat digunakan WinAVR atau
AVR Studio yang dapat diperoleh secara gratis (freeware). Namun dalam pembahasa. ini
software yang digunakan adalah WinAVR. Program dibuat dalam bahasa C dan
menambahkan file header untuk ATmega32 yang berisi register-register pada ATmega32.
Setelah program di-compile akan menghasilkan file dengan tipe Intel hex (.hex). File inilah
yang nantinya akan di-programkan ke ATmega32 melalui interface bsd programmer
(Brian Dean's Programmer) yang terhubung ke komputer melalui port paralel. Koneksi
antara ATmega32 dan port paralel untuk bsd programmer diberikan oleh tabel di
bawah

Koneksi Pin Port Paralel dan ATmega32


Port paralel ATmega32
No pin Nama No pin Nama
pin pin
7 D5 9 Reset
8 D6 8 SCK
9 D7 6 MOSI
10 S6 7 MISO
19 Ground 11 Ground
The Atmel AVR ® AVR core menggabungkan instruksi yang kaya set dengan 32
register kerja tujuan umum. Semua register 32 secara langsung terhubung ke Logic Unit
Arithmetic (ALU), yang memungkinkan dua independen register dapat diakses dalam satu
instruksi tunggal dieksekusi dalam satu siklus clock.
Arsitektur yang dihasilkan adalah kode lebih efisien sementara mencapai
throughputs hingga sepuluh kali lebih cepat daripada mikrokontroler CISC konvensional.
ATmega32 ini menyediakan fitur berikut: 32Kbytes dari In-System Programmable flash
Program memori dengan Baca-Tulis-Sementara kemampuan, 1024bytes EEPROM, SRAM
2Kbyte, 32 tujuan umum I / O baris, 32 register tujuan umum bekerja, antarmuka JTAG
untuk Boundaryscan, On-chip Debugging dukungan dan pemrograman, tiga Timer
fleksibel / Counter dengan membandingkan mode, Interrupts Internal dan Eksternal, sebuah
USART diprogram serial, yang berorientasi byte Dua-kawat Serial Interface, sebuah 8-
channel, 10-bit ADC dengan tahap masukan diferensial dengan opsional diprogram gain
(TQFP paket saja), Timer Watchdog diprogram dengan Osilator internal, sebuah port serial
SPI, dan enam software mode penghematan daya dipilih. Modus idle berhenti CPU
sementara mengizinkan USART, Dua-kawat antarmuka, A / D Converter, SRAM, Timer /
Counter, SPI port, dan sistem interupsi tetap berfungsi. The mode Power- down menghemat
register tapi membeku Osilator, menonaktifkan semua fungsi chip lainnya sampai Interrupt
Eksternal berikutnya atau Perangkat Keras ulang. Dalam Power- save mode, Timer

36
Asynchronous terus berjalan, yang memungkinkan pengguna untuk mempertahankan basis
waktu sementara sisa perangkat tidur ADC.

2.1 Konfigurasi pin ATmega32


Konfigurasi pin mikrokontroler ATmega32 dan bentuk modul minimum system
Atmega 32 terdapat pada gambar di bawah ini

Fungsi umum dari susunan pin microcontroller ATmega32 adalah sebagai berikut:

 VCC merupakan catu daya positif.

 GND sebagai pin ground catu daya negatif.\

 Port A (PAO..PA7) merupakan pin I/O dua arah dan dapat diprogram sebagai pin dari

ADC.

 Port B (PBO..PB7) merupakan pin I/O dua arah dan fungsinya sebagai, timer/counter,

komparator analog, dan SPI.

37
 Port C (PCO..PC7) merupakan pin I/O dua arah dan fungsinya sebagai, TWI,

komparator analog, dan timer osilator.

 Port D (PDO..PD7) merupakan pin I/O dua arah dan fungsinya sebagai, komparator

analog, interupsi eksternal dan komunikasi serial.

 Reset merupakan pin yang digunakan untuk me-reset microcontroller.

 XTAL 1 dan XTAL 2 sebagai pin clock eksternal. Pada microcontroller membutuhkan

sumber (clock) agar dapat mengeksekusi instruksi yang ada di memori. Semakin tinggi

nilai kristalnya, maka semakin cepat microcontroller tersebut.

 AVCC sebagai pin tegangan untuk ADC.

 AREF sebagai pin tegangan referensi.

38
Bab 5
Mikrontroler Atmge 64

ATmega64 menyediakan fitur berikut: 64 Kbytes Flash Programmable In-


System dengan kemampuan Read-While-Write, 2 Kbytes EEPROM, 4 Kbytes
SRAM, 53 garis I / O umum, 32 register kerja umum, Counter Real Time (RTC
), Empat Timer fleksibel / Coun-ters dengan mode perbandingan dan PWM,
dua USART, Interface Serial Dua-bit yang berorientasi byte, ADC 8-channel,
10 bit dengan input diferensial opsional dengan keuntungan yang dapat
diprogram, Programmable Watchdog Timer Dengan Oscillator internal, port
serial SPI, IEEE std. 1149.1 compliant JTAG test interface, juga digunakan
untuk mengakses sistem dan pemrograman On-chip Debug, dan enam mode
penghematan daya perangkat yang dapat dipilih. Modus Idle menghentikan
CPU sambil membiarkan SRAM, Timer / Penghitung, port SPI, dan sistem
interupsi berfungsi terus. Modus Power-down menyimpan isi register tapi
membekukan Oscillator, melumpuhkan semua fungsi chip lainnya sampai
interrupt berikutnya atau Hardware Reset. Dalam mode Hemat Daya, timer
asinkron berlanjut untuk dijalankan, memungkinkan pengguna
mempertahankan basis timer sementara perangkat lainnya sedang tidur. Mode
Pengurang Kebisingan ADC menghentikan CPU dan semua modul I / O kecuali
asynchronous timer dan ADC, untuk meminimalkan kebisingan switching
selama konversi ADC. Dalam mode Standby, Oscillator crys-tal / resonator
sedang berjalan sementara perangkat lainnya sedang tidur. Hal ini
memungkinkan start up sangat cepat dikombinasikan dengan konsumsi daya
rendah. Dalam mode Extended Standby, baik Osilator utama maupun timer
asinkron terus berjalan.

Perangkat ini diproduksi dengan menggunakan teknologi memori non-


volatile high-density Atmel. On-chip ISP Flash memungkinkan memori
program diprogram ulang dalam In-System melalui antarmuka serial SPI, oleh
pemrogram memori non-volatile yang konvensional, atau dengan program
Boot On-chip yang berjalan pada inti AVR. Program Boot dapat menggunakan
antarmuka apa pun untuk mendownload Program Aplikasi dalam memori Flash
Aplikasi. Perangkat lunak di bagian Boot Flash akan terus berjalan sementara
bagian Application Flash diperbarui, memberikan operasi Read-While-Write
yang benar. Dengan menggabungkan CPU RISC 8-bit dengan Flash Cepat
Programmable In-System pada chip monolitik, Atmel ATmega64 adalah
mikrokontroler yang kuat yang memberikan solusi fleksibel dan hemat biaya
untuk banyak aplikasi kontrol tersemat.

39
AVR ATmega64 didukung dengan rangkaian lengkap alat pengembangan
program dan sistem termasuk: kompiler C, perakit makro, debugger / simulator
program, In-Circuit Emulators, dan kit evaluasi.

1. Arsitektur ATMEGA 64
ATmega64 adalah mikrokontroler 8-bit CMOS berdaya rendah
berdasarkan arsitektur RISC yang disempurnakan AVR. Dengan
menjalankan instruksi yang kuat dalam satu siklus clock, ATmega64
mencapai throughput mendekati 1 MIPS per MHz, yang
memungkinkan perancang sistem mengoptimalkan konsumsi daya
dibandingkan kecepatan pemrosesan.

40
Dengan memprogram Fuse M103C, ATmega64 akan kompatibel dengan ATmega103
Salam untuk RAM, I / O pin dan Interrupt Vectors seperti yang dijelaskan di atas.
Namun, beberapa fitur baru

41
Di ATmega64 tidak tersedia dalam mode kompatibilitas ini, fitur ini tercantum di
bawah ini:
 Satu USART, bukan dua, mode asinkron saja. Hanya delapan bit paling sedikit
Register Baud Rate tersedia.
 Satu 16 bit Timer / Counter dengan dua register perbandingan, bukan dua 16
bit Timer / Counters
Dengan tiga register perbandingan.
 Antarmuka serial dua kawat tidak didukung.
 Port G hanya melayani fungsi alternatif (bukan port I / O umum).
 Port F berfungsi sebagai input digital saja selain input analog ke ADC.
 Kemampuan Boot Loader tidak didukung.
 Tidak mungkin menyesuaikan frekuensi RC Oscillator yang dikalibrasi dalam.
 Antarmuka Memori Eksternal tidak dapat melepaskan pin Alamat untuk I / O
umum, tidak
Konfigurasikan negara tunggu yang berbeda ke bagian Alamat Memori Eksternal yang
berbeda.
 Hanya EXTRF dan PORF yang ada di Register MCUCSR.
 Tidak ada urutan waktu yang diperlukan untuk perubahan Timeflow Watchdog.
 Hanya interupsi eksternal tingkat rendah yang dapat digunakan pada empat dari
delapan sumber Interrupt Eksternal.
 Port C hanya output.
 USART tidak memiliki buffer FIFO, jadi Data OverRun datang lebih awal.
 Pengguna harus menyetel bit I / O yang tidak terpakai ke 0 dalam program
ATmega103.
 Juga dapat digunakan sebagai pointer alamat untuk melihat tabel dalam
memori program Flash. Ini
Register fungsi tambahan adalah register 16-bit X-, Y-, dan Z-register, yang
dijelaskan kemudian di bagian ini. ALU mendukung operasi aritmatika dan logika
antara register atau antara konstanta dan Sebuah daftar Operasi register tunggal juga
bisa dijalankan di ALU. Setelah operasi aritmatika, Register Status diperbarui untuk
mencerminkan informasi tentang hasil operasi. Aliran program disediakan dengan
lompatan bersyarat dan tanpa syarat dan instruksi panggilan, mampu Langsung alamat
seluruh ruang alamat. Sebagian besar instruksi AVR memiliki format kata 16-bit
tunggal. Setiap alamat memori program berisi instruksi 16-bit atau 32-bit. Program
Flash memory space

42
Terbagi dalam dua bagian, bagian program Boot dan Bagian program aplikasi
Kedua bagian tersebut telah menghususkan bit Lock untuk menulis dan membaca /
menulis perlindungan. Instruksi SPM yang menulis ke bagian memori Flash Aplikasi
harus Berada di bagian program Boot. Selama interupsi dan panggilan subrutin, alamat
pengirim Program Counter (PC) disimpan di Tumpukan. Stack secara efektif
dialokasikan dalam data umum SRAM, dan akibatnya Stack Ukurannya hanya dibatasi
oleh total ukuran SRAM dan penggunaan SRAM. Semua program pengguna harus
Inisialisasi SP dalam rutin reset (sebelum subrutin atau interrupts dijalankan).
Tumpukan Pointer SP bisa dibaca / dibaca di ruang I / O. Data SRAM mudah diakses
Melalui lima mode pengalamatan berbeda yang didukung dalam arsitektur AVR.
Ruang memori dalam arsitektur AVR semuanya peta memori linier dan reguler. Modul
interupsi yang fleksibel memiliki register kontrol di ruang I / O dengan tambahan
Global Interrupt Mengaktifkan sedikit dalam Register Status. Semua interupsi
memiliki Interrupt Vector yang terpisah di Tabel interrupt vector Interupsi memiliki
prioritas sesuai dengan posisi Interrupt Vector mereka. Semakin rendah alamat
Interrupt Vector, semakin tinggi prioritasnya. Ruang memori I / O berisi 64 alamat
yang dapat diakses secara langsung, atau sebagai Data Lokasi ruang mengikuti berkas
Register, 0x20 - 0x5F. Selain itu, ATmega64 punya Ruang I / O yang diperpanjang
dari 0x60 - 0xFF di SRAM dimana hanya ST / STS / STD dan LD / LDS / LDD
Instruksi bisa digunakan
2. Konfirgurasi Pin ATMEGA 64

43
Pin deskripsi
VCC Digital supply voltage.
GND Ground
Port A
(PA7..PA0) Port A adalah port I / O 8-bit bi-directional dengan resistor pull-up
internal (dipilih untuk setiap bit). Itu Port A output buffer memiliki karakteristik drive
simetris dengan sink dan sumber yang tinggi kemampuan. Sebagai input, pin Port A
yang ditarik secara eksternal akan rendah sumber arus jika pull-up Resistor diaktifkan
Pin Port A diberi tri-menyatakan saat kondisi reset menjadi aktif, Bahkan jika jam
tidak berjalan. Port A juga melayani fungsi berbagai fitur spesial ATmega64 seperti
yang tertera di halaman
Port B
(PB7..PB0) Port B adalah port I / O 8-bit bi-directional dengan resistor pull-up
internal (dipilih untuk setiap bit). Itu Port B buffer output memiliki karakteristik drive
simetris dengan sink dan sumber yang tinggi kemampuan. Sebagai input, pin Port B
yang ditarik secara eksternal akan rendah sumber arus jika pull-up Resistor diaktifkan

44
Port B pin tri-menyatakan ketika kondisi reset menjadi aktif, Bahkan jika jam tidak
berjalan. Port B juga melayani fungsi berbagai fitur spesial ATmega64. 2490R-AVR-
02/2013

Port C
(PC7..PC0) Port C adalah port I-O 8-bit bi-directional dengan resistor pull-up internal
(dipilih untuk setiap bit). Itu Penyangga keluaran Port C memiliki karakteristik drive
simetris dengan sink dan sumber yang tinggi kemampuan. Sebagai input, pin Port C
yang ditarik secara eksternal akan rendah sumber arus jika pull-up Resistor diaktifkan
Pin Port C diberi tri-menyatakan saat kondisi reset menjadi aktif, modus
kompatibilitas ATmega103, Port C hanya output, dan port C pin tidak diberi tri-stated
Ketika kondisi reset menjadi aktif.
Port D
(PD7..PD0) Port D adalah port I / O 8-bit bi-directional dengan resistor pull-up
internal (dipilih untuk setiap bit). Itu Port D buffer output memiliki karakteristik drive
simetris dengan sink dan sumber yang tinggi kemampuan. Sebagai input, pin Port D
yang ditarik secara eksternal akan rendah sumber arus jika pull-up Resistor diaktifkan
Port D pin adalah tri-menyatakan ketika kondisi reset menjadi aktif, Bahkan jika jam
tidak berjalan.
Port E
(PE7..PE0) Port E adalah port I / O 8-bit bi-directional dengan resistor pull-up
internal (dipilih untuk setiap bit). Itu Port E output buffer memiliki karakteristik drive
simetris dengan sink dan sumber yang tinggi kemampuan. Sebagai input, pin Port E
yang ditarik secara eksternal akan rendah sumber arus jika pull-up Resistor diaktifkan
Pin Port E adalah tri-menyatakan ketika kondisi reset menjadi aktif, Bahkan jika jam
tidak berjalan.
Port F
(PF7..PF0) Port F berfungsi sebagai input analog ke A / D Converter. Port F juga
berfungsi sebagai port I / O 8-bit bi-directional, jika Konverter A / D tidak digunakan.
Pin port Dapat memberikan resistor pull-up internal (dipilih untuk setiap bit).
Penyangga keluaran Port F memiliki simetris Karakteristik drive dengan kemampuan
sink dan sumber yang tinggi. Sebagai input, pin Port F Yang ditarik secara eksternal
akan rendah sumber arus jika resistor pull-up diaktifkan. Port F Pin tri-menyatakan
ketika kondisi reset menjadi aktif, bahkan jika jam tidak berjalan. Jika Antarmuka
JTAG diaktifkan, resistor pull-up pada pin PF7 (TDI), PF5 (TMS) dan PF4 (TCK)
akan Diaktifkan bahkan jika reset terjadi. Pin TDO adalah tri-menyatakan kecuali
TAP menyatakan bahwa pergeseran data dimasukkan. Port F juga melayani fungsi

45
antarmuka JTAG. Pada mode kompatibilitas ATmega103, Port F hanya merupakan
port input.
Port G
(PG4..PG0) Port G adalah port I / O berdimensi 5-bit dengan resistor pull-up internal
(dipilih untuk setiap bit). Itu Port G buffer output memiliki karakteristik drive
simetris dengan sink dan sumber yang tinggi kemampuan. Sebagai input, pin Port G
yang ditarik secara eksternal akan rendah sumber arus jika pull-up Resistor diaktifkan
Pin Port G diberi tri-menyatakan saat kondisi reset menjadi aktif, Bahkan jika jam
tidak berjalan. Port G juga melayani fungsi berbagai fitur spesial. Pada mode
kompatibilitas ATmega103, pin ini hanya berfungsi sebagai sinyal strobes ke luar
Memori serta masukan ke Oscillator 32 kHz, dan pin diinisialisasi ke PG0 = 1, PG1 =
1, dan PG2 = 0 secara asinkron saat kondisi reset menjadi aktif, biarpun jam Tidak
berjalan PG3 dan PG4 adalah pin Oscillator. RESET Reset input. Tingkat rendah
pada pin ini lebih lama dari panjang pulsa minimum akan menghasilkan a Reset,
bahkan jika jam tidak berjalan. Panjang pulsa minimum diberikan pada Tabel 19 di
halaman

XTAL1
Masukan ke penguat Oscillator pembalik dan masukan ke sirkuit operasi jam internal.
Output XTAL2 dari amplifier Oscillator pembalik.
AVCC
AVCC adalah pin tegangan suplai untuk Port F dan A / D Converter. Ini harus
terhubung secara eksternal Ke VCC, bahkan jika ADC tidak digunakan. Jika ADC
digunakan, seharusnya terhubung ke VCC Melalui filter low-pass.
AREF
AREF adalah pin referensi analog untuk A / D Converter.
PEN Ini adalah pemrograman yang memungkinkan pin untuk mode Pemrograman
Serial SPI. Dengan memegang pin ini rendah Saat Power-on Reset, perangkat akan
memasuki mode Pemrograman Serial SPI. PEN secara internal Menarik tinggi Pullup
ditunjukkan pada Gambar 22 di halaman 52 dan nilainya diberikan di Bagian

46
Bab 6

Mikrokontroler Atmega 103(L)

ATmega103 (L) adalah mikrokontroler daya rendah, CMOS, 8-bit yang


berbasis pada arsitektur AVR RISC. Dengan menjalankan kekuatan dalam rangkaian
dalam satu siklus clock, ATmega103 (L) mencapai throughput mendekati 1 MIPS per
MHz, yang memungkinkan perancang sistem mengoptimalkan konsumsi daya
dibandingkan kecepatan pemrosesan.

Inti AVR didasarkan pada arsitektur RISC yang disempurnakan yang


menggabungkan seperangkat instruksional yang kaya dengan 32 register kerja umum.
Semua 32 register terhubung langsung ke Arithmetic Logic Unit (ALU), yang
memungkinkan dua register independen terakses dalam satu instruksi tunggal yang
dieksekusi dalam satu siklus clock.

ATmega103 (L) menyediakan fitur berikut: 128K byte In-System Programmable


Flash, 4K byte EEPROM, 4K byte SRAM, 32 garis I / O umum, 8 jalur input, 8 jalur
output, 32 register kerja umum, Real Time Counter (RTC), 4 Timer / Counter
fleksibel dengan mode perbandingan dan PWM, UART, Timer Watchdog yang dapat
diprogram dengan Oscillator internal, port serial SPI dan 3 mode hemat daya yang
dapat dipilih perangkat lunak. Modus Idle menghentikan CPU hile yang
memungkinkan SRAM, Timer / Counters, port SPI dan sistem interupsi untuk terus
berfungsi. Mode Power-down menyimpan isi register tapi membeku Osilator,
nonaktifkan semua fungsi chip lainnya hingga Interrupt atau Hardware Reset
berikutnya. Dalam mode Powersave, Timer Oscillator terus berjalan, memungkinkan
pengguna untuk mempertahankan basis timer sementara sisa perangkat sedang tidur.

47
1) Fitur dari ATmega103

 Menggunakan Arsitektur AVR® RISC


 AVR - Arsitektur RISC berkinerja tinggi dan berdaya rendah
- 121 Petunjuk Kuat - Eksekusi Siklus Jam Tunggal
- 32 x 8 Daftar Kerja Tujuan Umum + Register Kontrol Peripheral
- Sampai 6 MIPS Throughput pada 6 MHz
 Memori Program Data dan Nonvolatile
- 128K Bytes Flash Programmable In-System
 Daya Tahan: 1.000 Write / Erase Cycles
- 4K Bytes Internal SRAM
- Bytes 4K In-System Programmable EEPROM Endurance: 100.000 Write /
Erase Cycles
- Kunci Pemrograman untuk Program Flash dan Keamanan Data EEPROM
- Antarmuka SPI untuk Pemrograman In-System
 Fitur Periferal
- On-chip Analog komparator
- Programmable Watchdog Timer dengan On-chip Oscillator
- Programmable Serial UART
- Master / Slave SPI Serial Interface
- Real-time Counter (RTC) dengan Separate Oscillator
- Dua Timer / Penghitung 8 bit dengan
 Pisahkan Prescaler dan PWM
- Sistem Timer / Counter 16-bit yang diperluas dengan Prescaler Pisahkan,
Bandingkan, Mode Tangkap dan Dual 8-, 9, atau 10-bit PWM
- Programmable Watchdog Timer dengan On-chip Oscillator
- 8 kanal, ADC 10 bit
 Fitur Mikrokontroler Khusus
- Mode Idle, Power-save dan Power-down yang rendah daya

48
- Frekuensi Jam Dipilih Perangkat Lunak
- Sumber Interupsi Eksternal dan Internal

 Spesifikasi

- Low-power, Teknologi Proses CMOS berkecepatan tinggi

- Operasi Statis Penuh

 Konsumsi Daya pada 4 MHz, 3V, 25 ° C

- Aktif: 5.5 mA

- Idle Mode: 1,6 mA

- Mode Power-down: <1 μA

 I / O dan Paket

- 32 Jalur I / O Programmable, 8 Jalur Output, 8 Jalur Input

- TQFP bertegangan 64

 Tegangan Operasi

- 2.7 - 3.6V untuk ATmega103L

- 4.0 - 5.5V untuk ATmega103

 Kelas Kecepatan

- 0 - 4 MHz untuk ATmega103L

- 0 - 6 MHz untuk ATmega103

49
 Konfigurasi Pin

50
Pin deskripsi

 VCC
Tegangan suplai
 GND
Ground
 Port A (PA7..PA0)
Port A adalah port I / O 8-bit bi-directional. Port pin dapat memberikan
resistor pull-up internal (dipilih untuk setiap bit). Penyangga keluaran Port A
dapat tenggelam 20 mA dan dapat mengarahkan display LED secara
langsung. Ketika pin PA0 sampai PA7 digunakan sebagai masukan dan
ditarik secara eksternal rendah, mereka akan mencari arus jika resistor pull-up
internal diaktifkan.
Port A berfungsi sebagai Multiplexed Address / Data bus saat
menggunakan SRAM eksternal.
Pin Port A diberi tri-menyatakan saat kondisi reset menjadi aktif,
meskipun jam tidak menyala.

 Port B (PB7..PB0)

Port B adalah port I / O 8-bit bi-directional dengan resistor pull-up


internal. Penyangga keluaran Port B bisa tenggelam 20 mA. Sebagai

51
masukan, pin Port B yang ditarik secara eksternal rendah, akan menjadi
sumber arus jika resistor pull-up diaktifkan.

Port B juga melayani fungsi berbagai fitur spesial.

Pin Port B diberi tri-menyatakan saat kondisi reset menjadi aktif, meski
jam tidak menyala.

 Port C (PC7..PC0)
Port C adalah port output 8-bit. Penyangga keluaran Port C dapat
tenggelam 20 mA.
Port C juga berfungsi sebagai Address output saat menggunakan SRAM
eksternal.
Karena Port C adalah port output saja, pin Port C tidak diberi tanda tri
ketika kondisi reset menjadi aktif.

 Port D (PD7..PD0)
Port D adalah port I / O 8-bit bi-directional dengan resistor pull-up
internal. Penyangga keluaran Port D bisa tenggelam 20 mA. Sebagai input,
pin Port D yang ditarik secara eksternal akan rendah sumber arus jika resistor
pull-up diaktifkan.
Port D juga melayani fungsi berbagai fitur spesial.Port D pin tri-
menyatakan ketika kondisi reset menjadi aktif, bahkan jika jam tidak berjalan.

 Port E (PE7..PE0)
Port E adalah port I / O 8-bit bi-directional dengan resistor pull-up
internal. Port E output buffer dapat tenggelam 20 mA. Sebagai masukan,

52
pinPort E yang ditarik secara eksternal akan rendah sumber arus jika resistor
pull-up diaktifkan.

 Port E juga melayani fungsi berbagai fitur spesial.

Pin Port E diberi tri-menyatakan saat kondisi reset menjadi aktif,


meskipun jam tidak menyala

 Port F (PF7..PF0)
Port F adalah port input 8 bit. Port F juga berfungsi sebagai input analog
untuk ADC.

 RESET
Setel ulang masukan Sebuah reset eksternal dihasilkan oleh tingkat rendah
pada pin RESET.
Reset pulsa lebih lama dari 50 ns akan menghasilkan reset, meski jam
tidak berjalan. Pulsa yang lebih pendek tidak dijamin menghasilkan reset.

 XTAL1
Masukan ke penguat Oscillator pembalik dan masukan ke sirkuit operasi
jam internal.

 XTAL2
Keluaran dari penguat Oscillator pembalik.

 TOSC1
Masukan ke penguat Timer / Counter Oscillator pembalik.

 TOSC2

53
Output dari penguat Timer / Counter Oscillator pembalik.

 WR
SRAM eksternal menulis strobo

 RD
SRAM eksternal membaca strobo

 ALE
ALE adalah Address Latch Enable yang digunakan saat Memori Eksternal
diaktifkan.

 ALE
Strobe digunakan untuk mengunci alamat low-order (8 bit) ke dalam kait
alamat selama siklus akses pertama, dan pin AD0-7 digunakan untuk data
selama siklus akses kedua.

 AVCC
Tegangan suplai untuk Port F, termasuk ADC. Pin harus terhubung ke
VCC bila tidak digunakan untuk ADC. Lihat "Teknik Membatalkan
Kebisingan ADC" pada halaman 82 untuk rincian bila menggunakan ADC.

 AREF
AREF adalah input referensi analog untuk konverter ADC. Untuk operasi
ADC, tegangan di kisaran AGND ke AVCC harus diaplikasikan pada pin ini.

 AGND

54
Jika papan memiliki bidang ground analog yang terpisah, pin ini harus
dihubungkan ke bidang ground ini. Jika tidak, sambungkan ke GND.

Diagram Blok

55
2) Clock Options

Kristal osilator
XTAL1 dan XTAL2 masing-masing adalah input dan output dari penguat
pembalik, yang dapat dikonfigurasi untuk digunakan sebagai Oscillator on chip,

56
seperti yang ditunjukkan pada Gambar 2. Entah kristal kuarsa atau resonator
keramik dapat digunakan.

Gambar 2.
Sambungan Oscillator

catatan:
Saat menggunakan MCU Oscillator sebagai jam untuk perangkat eksternal,
penyangga HC harus sesuai seperti ditunjukkan pada gambar.

A. Ikhtisar Arsitektur

Gambar 4. Arsitektur RISC AVR ATmega103 (L)

57
AVR menggunakan konsep arsitektur Harvard - dengan memori dan bus
terpisah untuk program dan data. Memori Program diakses dengan pipa satu
tingkat. Saat satu instruksi dieksekusi, instruksi berikutnya diambil dari memori
Program. Konsep ini memungkinkan instruksi dijalankan dalam setiap siklus
clock. Memori Program adalah memori Flash Programmable. Dengan beberapa
pengecualian, instruksi AVR memiliki format kata 16 bit tunggal, yang berarti
bahwa setiap alamat memori Program berisi satu instruksi 16 bit.
Selama interupsi dan panggilan subrutin, alamat pengirim Program Counter
(PC) disimpan di Stack. Stack secara efektif dialokasikan dalam data SRAM

58
umum dan, oleh karena itu, ukuran Stack hanya dibatasi oleh ukuran SRAM total
dan penggunaan SRAM. Semua program pengguna harus menginisialisasi SP
dalam rutinitas reset (sebelum subrutinines interrupts dijalankan). Pointer Stack
16-bit (SP) dibaca / dibaca diakses di ruang I / O.
Data 4000 byte SRAM dapat diakses dengan mudah melalui lima mode
pengalamatan berbeda yang didukung dalam arsitektur AVR.
Modul interupsi yang fleksibel memiliki register kontrol di ruang I / O dengan
bit Global Interrupt Enable tambahan di Register Status. Semua interupsi yang
berbeda memiliki Interrupt Vector terpisah di tabel Interrupt Vector pada awal
memori Program. Interupsi yang berbeda memiliki prioritas sesuai dengan posisi
Interrupt Vector mereka. Semakin rendah alamat Interrupt Vector, semakin tinggi
prioritasnya.
Ruang memori dalam arsitektur AVR semuanya peta memori linier dan
reguler.

3) Waktu tanggapan interupsi

Respons eksekusi interupsi untuk semua interupsi AVR yang diaktifkan


adalah empat clock cycle minimum. Empat siklus clock setelah Interrupt Flag
telah ditetapkan, alamat Program Vector untuk rutin penanganan interupsi yang
sebenarnya dijalankan. Selama periode empat jam siklus ini, Program Counter (2
byte) didorong ke Stack, dan Stack Pointer dikurangi oleh 2. Vektor biasanya
merupakan lompatan ke rutinitas interupsi, dan inijump membutuhkan tiga siklus
clock. Jika terjadi interupsi selama eksekusi instruksi multi-siklus, instruksi ini
selesai sebelum interupsi dilayani.

Kembalinya dari rutinitas penanganan interupsi (sama seperti untuk rutin


panggilan subrutin) membutuhkan empat siklus clock. Selama empat siklus clock
ini, Program Counter (2 bytes) muncul kembali dari Stack, dan Stack Pointer

59
bertambah dengan 2. Bila AVR keluar dari interupsi, ia akan selalu kembali ke
program utama dan menjalankan satu instruksi lagi. Sebelum interupsi yang
tertunda dilayani.

4) Sleep Mode

Untuk memasukkan salah satu dari tiga mode tidur, bit SE di MCUCR harus
disetel (satu) dan instruksi SLEEP harus dijalankan. Bit SM1 dan SM0 dalam
Register MCUCR pilih mode tidur (Idle, Power-down, atau Power-save) yang
akan diaktifkan oleh instruksi SLEEP.
Jika interupsi diaktifkan terjadi saat MCU dalam mode tidur, MCU terbangun,
menjalankan rutinitas interupsi dan melanjutkan eksekusi dari instruksi berikut
TIDUR. Isi memori Register File, SRAM, dan I / O tidak berubah. Jika reset
terjadi selama mode tidur, MCU terbangun dan dijalankan dari Reset Vector.

5) Mode siaga

Ketika bit SM1 / SM0 diset ke 00, instruksi SLEEP membuat MCU masuk ke
mode Idle, menghentikan CPU namun memungkinkan SPI, UART, Analog
Comparator, ADC, Timer / Counters, Watchdog dan sistem interupsi untuk terus
beroperasi. Hal ini memungkinkan MCU untuk bangun dari interupsi terpicu
eksternal maupun internal seperti Timer Overflow dan UART Receive Complete
interrupts. Jika bangun dari Analog Comparator interrupt tidak diperlukan,
Analog Comparator dapat dimatikan dengan mengatur ACD-bit di Analog
Comparator Control and Status Register (ACSR). Ini akan mengurangi konsumsi

60
daya dalam mode Idle. Saat MCU terbangun dari mode Idle, CPU memulai
eksekusi program dengan segera.

6) Mode Power-down

Bila bit SM1 / SM0 diset ke 10, instruksi SLEEP membuat MCU masuk ke
mode Power-down. Dalam mode ini, Osilator eksternal dihentikan sementara
interrup eksternal dan Watchdog (jika diaktifkan) terus beroperasi. Hanya Reset
Eksternal, Reset Watchdog (jika diaktifkan), atau interupsi tingkat eksternal dapat
membangkitkan MCU.

Perhatikan bahwa jika interupsi level-triggered digunakan untuk wake-up dari


mode Power-down, level yang berubah harus diadakan untuk beberapa waktu
untuk menghidupkan MCU. Hal ini membuat MCU kurang sensitif terhadap
noise. Tingkat perubahan adalah sampel dua kali oleh jam Watchdog Oscillator
dan jika input memiliki tingkat yang diperlukan selama waktu ini, MCU akan
bangun. Periode dari Watchdog Oscillator adalah 1 μs (nominal) pada 5,0V dan
25 ° C. Frekuensi Osilator Pengatur Perhatian bergantung pada voltase, seperti
yang ditunjukkan pada "Karakteristik Khas" pada halaman 123.

Saat bangun dari mode Power-down, penundaan dari kondisi bangun terjaga
sampai bangun menjadi efektif. Hal ini memungkinkan jam untuk restart dan
menjadi stabil setelah dihentikan. Masa bangun ditentukan oleh sekering SUT

61
yang sama yang menentukan periode Reset Time-out. Masa bangun sama dengan
periode reset jam.

Jika kondisi bangun hilang sebelum MCU terbangun dan mulai melakukan
eksekusi, misalnya, level rendah tidak dipegang cukup lama, penyebab interupsi

Bangun tidak akan dieksekusi

7) Mode Hemat Daya

Bila bit SM1 / SM0 adalah 11, instruksi SLEEP membuat MCU masuk
Mode hemat daya Mode ini identik dengan Power-down, dengan satu
pengecualian:
Jika Timer / Counter0 dibuat secara asinkron, yaitu, bit AS0 pada ASSR
disetel, Timer / Counter0 akan berjalan saat tidur. Selain sumber bangun Power-
down, perangkat juga dapat terbangun dari event Timer Overflow atau Output
Compare dari Timer / Counter0 jika bit pengatur interupsi Timer / Counter0 yang
sesuai diatur dalam TIMSK. Untuk memastikan bahwa bagian tersebut
menjalankan rutinitas interupsi saat bangun, tetapkan ID Global Interrupt Enable i
SREG.
Saat bangun dari mode Power-save oleh interupsi eksternal, dua siklus
instruksi dijalankan sebelum Flag Interrupt diperbarui. Saat terbangun oleh timer
asinkron, tiga siklus instruksi dijalankan sebelum flag diperbarui. Selama siklus
ini, prosesor mengeksekusi instruksi, namun kondisi interupsi tidak dapat dibaca
dan rutin interupsi belum dimulai. Jika timer asinkron tidak direkam secara
asinkron, mode Power-down dianjurkan dan bukan mode Hemat Daya karena isi

62
register pada timer asinkron harus dianggap tidak terdefinisi setelah terbangun
dalam mode owersave jika AS0 adalah 0.

63
Bab 7

Mikrokontroler ATMEGA 128

Mikrokontroler adalah komputer kecil dalam satu chip (integrated circuit) yang
mengandung sebuah unit processor, memori, dan bagian programabel I/O (input/output).
Pemrograman memori dalam bentuk NOR flash atau OTP ROM sudah termasuk dalam chip
tersebut berupa RAM. Mikrokontroler didisain untuk aplikasi embedded system. Mikrokontroler
banyak digunakan pada produk-produk atau perangkat otomatis, seperti misalnya pada sistem
kontrol mesin otomatis pada mobil, remote control, mesin kantor, mainan elektronika, dan
embedded sistem lainnya.

Sebuah mikrokontroller dapat bekerja dengan cara memberi atau


memasukkanprogramyangberisiinstruksi-instruksiyangdapatdigunakanuntuk menjalankan
sistem mikrokontroller tersebut. Banyak sedikitnya instruksi
programinidisesuaikandenganaplikasiyangakandirancang.Semakinkompleks
aplikasinya, maka semakin banyak instruksi yang diberikan dan semakin besar memori
yang digunakan untuk mengeksekusi aplikasi yang diinginkan. Oleh karenanya
mikrokontroller dapat di program berulang-ulang dan dapat digunakan untuk mengolah
data pada aplikasi-aplikasi kontrol otomasi sederhana.

1) Mikrokontroler Atmega 128


Mikrokontroler atmega 128 merupakan salah satu varian dari mikrokontroler AVR 8-bit.
Beberapa fitur yang dimiliki adalah memiliki beberapa memory yang bersifat non-volatile, yaitu
128Kbytes of In-System Self-Programmable Flash program memory (128Kbytes memory flash
untuk pemrograman), 4Kbytes memori EEPROM, 4Kbytes memori Internal SRAM, write/erase
cycles : 10.000 Flash/ 100.000 EEPROM (program dalam mikrokontroler dapat diisi dan dihapus
berulang kali sampai 10.000 kali untuk flash memori atau 100.000 kali untuk penyimpanan
program/data di EEPROM).

64
a) AVR®–High-PerformancedanLow-PowerRISCArsitektur.
b) CPUyangterdiriatas32buahregister.
c) MemoriFlashsebesar128KbdengankemampuanRead/Write.
d) SRAMInternalsebesar4Kb.
e) EEPROMsebesar4Kb.
f) Duabuah8-bitTimer/Counterdengankemampuanpembandingandan
Prescalerterpisah.
g) Duabuah16-bitTimer/Counterdengankemampuanpembanding, Prescalerterpisah.
h) Duabuah8-bitsaluranPWM.
i) Duabuah8-bitPWMChannel.
j) ADCinternal10-bit,8Channel.
k) PortUSARTuntukkomunikasiserial.
l) Portantarmukakomparatoranalog.
m) Real timecounter.
n) Port I/O sebanyak 53 buah, yaitu: port A, port B, port C, port D, Port
E,portFdanportG.
o) Teganganoperasisampaidengan5,5V.

2) Arsitektur Atmega 128

Mikrokontroler ATmega128 memiliki 2 buah memori utama, yaitu memori program


dan memori data serta 1 buah memori tambahan, yaitu memori EEPROM. Ketiganya
memiliki ruang sendiri dan terpisah.

a) Memori program

Atmega128 memiliki kapasitas memori progam sebesar 128 Kbytes dengan


kemampuan ketahanan minimal tulis/hapus sebanyak 10.000 siklus yang
terpetakan dari alamat 0000h – FFFFh dimana masing- masing alamat memiliki
lebar data 16 bit. Memori program ini terbagi menjadi 2 bagian yaitu bagian

65
program boot dan bagian program aplikasi.
b) Memori data

Dalamkonfigurasinormal,ATmega128memilikikapasitasmemoridata sebesar 4096


byte yang terbagi menjadi 3 bagian yaitu register serba guna, register I/O, I/O
tambahan dan SRAM. Atmega128 memiliki 32 byte register serba guna, 64 byte
register I/O, 160 byte I/O tambahan yang dapat diakses sebagai bagian dari
memori SRAM (menggunakan instuksi LD atau ST) atau dapat juga diakses
sebagai I/O(menggunakan instruksi IN atau OUT), dan 4096 byte digunakan untuk
memori data SRAM.
c) Memori EEPROM
Atmega128 memiliki memori EEPROM sebesar 4 Kbytes yang terpisah dari memori
program maupun memori data dengan kemampuan ketahanan minimal tulis/hapus
sebanyak 100.000 siklus. Memori EEPRO Mini hanya dapat diakses dengan
menggunakan register-register I/O yaitu register EEPROM Address, register
EEPROM Data, dan register EEPROM Control. Untuk mengakses memori
EEPROM ini diperlakukan seperti

66
Gambar Blok Diagram ATmega128

Atmega128 merupakan tipe AVR yang telah dilengkapi dengan 8 saluran ADC internal dengan
fidelitas 10 bit. Dalam mode operasinya, ADC Atmega128 dapat dikonfigurasi, baik secara single ended
input maupun differential input. Selain itu, ADC Atmega128 memiliki konfigurasi pewaktuan, tegangan
referensi, mode operasi, dan kemampuan filter derau yang amat fleksibel, sehingga dengan mudah
disesuaikan dengan kebutuhan ADC itu sendiri. ADC ATmega128 juga memiliki pin suplai tegangan
analog terpisah (AVCC), dimana besarnya AVCC ini tidak boleh melebihi + 0,3 V dari tegangan kerja
(VCC).
Atmega128 memiliki 4 modul timer yang terdiri dari 2 buah timer/counter 8 bit dan 2 buah
timer/counter 16 bit. Keempat modul timer/counter ini dapat diatur dalam mode yang berbeda secara
individu dan tidak saling mempengaruhi satu sama lain.Selain itu, semua timer/counter juga dapat

67
difungsikan sebagai sumber interupsi. Masing-masing timer/counter ini memiliki register tertentu yang
digunakan untuk mengatur mode dan cara kerjanya.

3) Konfigurasi Pin Atmega 128


Konfigurasi pin Atmega128 dapat dilihat pada Gambar di bawah ini.

Gambar Pin Atmega 128

Dari gambar di atas dapat dijelaskan fungsi dari masing-masing pin Atmega128
sebagai berikut:

a) VCC merupakan pin yang berfungsi sebagai masukan catu daya / sumbertegangan.
b) AVCC merupakan pin yang berfungsi sebagai masukan catu daya / sumber tegangan
untuk analog (masukan analog maupun ADC).

68
c) GND merupakan pin Ground.
d) PortA (Port A0…Port A7) merupakan pin input/output dua arah dan pin dengan fungsi
khusus, seperti dapat dilihat pada tabel di bawah ini.

Port Pin Fungsi Khusus


PA7 AD7 (Alamat interface memori eksternal dan bit
PA6 data memori
AD6 (Alamat interface ke-7) eksternal dan bit
data ke-6)
PA5 AD5 (Alamat interface memori eksternal dan bit
PA4 data memori
AD4 (Alamat interface ke-5) eksternal dan bit
PA3 data memori
AD3 (Alamat interface ke-4) eksternal dan bit
PA2 data memori
AD2 (Alamat interface ke-3) eksternal dan bit
PA1 data memori
AD1 (Alamat interface ke-2) eksternal dan bit
PA0 data memori
AD0 (Alamat interface ke-1) eksternal dan bit
FungsiPort data
A ke-0)

e) Port B (PortB s/d PortB7) merupakan pin input/output dua arah danpindengan fungsi
khusus, seperti dapat dilihat pada tabel di bawah ini.

Port Pin Fungsi Khusus


OC2/OC1C (Keluaran pembanding dan keluaran PWM
untuk Timer/Counter2 atau keluaran pembanding dan
PB7
keluaran PWM C untuk Timer/Counter1)
OC1B (Keluaran pembanding dan keluaran PWM B
PB6 untuk Timer/Counter1)
OC1A (Keluaran pembanding dan keluaran PWM A
PB5 untuk Timer/Counter1)
OC0 (Keluaran pembanding dan keluaran PWM
PB4 untuk Timer/Counter0)

69
PB3 MISO (SPI Bus Master Input/Slave Output)
PB2 MOSI (SPI Bus Master Output/Slave Input)
PB1 SCK (SPI Bus Serial Clock)
PB0 SS (SPI Slave Select input)
Fungsi Port B

f) Port C (PortC0 s/d PortC7) merupakan pin input/output dua arah danpin dengan fungsi
khusus, seperti dapat dilihat pada tabel dibawah ini.

g) PortD(PortD s/d PortD7)merupakanpininput/outputduaarahdanpin dengan fungsi

khusus, seperti dapat dilihat pada tabel dibawah ini.

Fungsi Port D

Port Pin Fungsi Khusus


PD7 T2 (Timer/Counter2 Clock input)
PD6 T1 (Timer/Counter1 Clock input)
PD5 XCK1 (USART 1 External Clock Input/Output)
PD4 ICP1 (Timer/Counter1 Input Capture Pin)
PD3 INT3/TXD1 (External Interrupt3 Input or UART 1 Transmit
Pin)
INT2/RXD1 (External Interrupt2 Input or UART 1 Receive
PD2
Pin)
PD1 INT1/SDA (External Interrupt1 Input or TWI Serial Data)
PD0 INT0/SCL (External Interrupt0 Input or TWI Serial Clock)

h) Port E (PortE0 s/d PortE7) merupakan pin input/output dua arah danpindengan fungsi
khusus, seperti dapat dilihat pada tabel dibawah ini.
Fungsi Port E
Port Pin Fungsi Khusus
INT7/ICP3 (External Interrupt 7 Input or Timer/Counter3
PE7
Input Capture Pin)
INT6/T3 (External Interrupt 6 Input or Timer/Counter3
PE6
Clock Input)

70
INT5/OC3C (External Interrupt 5 Input or Output Compare
PE5
and PWM Output C for Timer/Counter3)
INT4/OC3B (External Interrupt 4 Input or Output Compare
PE4
and PWM Output B for Timer/Counter3)
PE3 AIN1/OC3A (Analog Comparator Negative Input or Output
Compare and PWM Output A for Timer/Counter3)
AIN0/XCK0 (Analog Comparator Positive Input or
PE2
USART 0 External Clock Input/Output)
PDO/TXD0 (Programming Data Output or UART
PE1
0Transmit Pin)
PE0 PDI/RXD0 (Programming Data Input or UART 0 Receive
Pin)

i) PortF(PortF s/d PortF7)merupakanpinmasukananaloguntukADC.


j) PortG(PortG s/d PortG4)merupakanpininput/outputduaarah.
k) RESETmerupakanpinyangdigunakanuntukme-resetmikrokontroler.
l) XTAL1danXTAL2merupakanpinmasukanclockeksternal.
m) AVCC merupakan pin sumber tegangan untuk masukan analog dan ADC.
n) AREFFmerupakanpinreferensianaloguntukADC.
o) PEN merupakan pin untuk mengaktifkan pemrograman mode SPI (Serial)

71
Bab 8

Mikrokontroler Atmega 324p

1. Pengertian ATmega 324P

ATmega324P adalah mikrokontroler 8-bit CMOS berdaya rendah berdasarkan arsitektur


RISC yang disempurnakan AVR. Dengan menjalankan instruksi kuat dalam satu siklus clock,
ATmega324P mencapai throughput mendekati 1MIPS per MHz. Ini memberdayakan perancang
sistem untuk mengoptimalkan perangkat untuk konsumsi daya versus kecepatan pemrosesan.

ATmega324P menyediakan fitur berikut: 32Kbytes Flash Programmable In-System


dengan kemampuan Read-While-Write, 1Kbytes EEPROM, 2Kbytes SRAM, 32 jalur I / O umum,
32 register kerja umum, Real Time Counter (RTC), tiga Timer / Penghitung fleksibel dengan mode
perbandingan dan PWM, dua serial PCm yang dapat diprogram, satu antarmuka Serial 2-wire
berurutan 1-byte, ADC 8channel 10 bit dengan tahap masukan diferensial opsional dengan
keuntungan yang dapat diprogram, Timer Watchdog yang dapat diprogram dengan Osilator
Internal , Port serial SPI, IEEE std. 1149.1 compliant JTAG test interface, juga digunakan untuk
mengakses sistem On-chip Debug dan pemrograman dan enam mode penghematan daya perangkat
yang dapat dipilih.

Perangkat ini diproduksi dengan menggunakan teknologi memori non-volatile kepadatan


Atmel yang tinggi. On-chip ISP Flash memungkinkan memori program diprogram ulang dalam
In-System melalui antarmuka serial SPI, oleh pemrogram memori nonvolatile konvensional, atau
dengan program Boot On-chip yang berjalan pada inti AVR. Program Boot dapat menggunakan
antarmuka apa pun untuk mendownload program aplikasi dalam memori Aplikasi Flash. Perangkat
lunak di bagian Boot Flash akan terus berjalan sementara bagian Application Flash diperbarui,
memberikan operasi Read-While-Write yang benar. Dengan menggabungkan CPU RISC 8-bit

72
dengan Flash Cepat Programmable In-System pada chip monolitik, Atmel ATmega324P adalah
mikrokontroler yang kuat yang memberikan solusi fleksibel dan hemat biaya untuk banyak
aplikasi kontrol tersemat.
ATmega324P didukung dengan rangkaian lengkap alat pengembangan program dan sistem
termasuk: Compiler C, Perakit Makro, Debugger / Simulator Program, In-Circuit Emulators, dan
Evaluation kits.

Spesifikasi ATmega324P
1. Berbasis ATmega324(P)A (32KB Flash Memory, 1 KB EEPROM
2. 2 KB Internal SRAM). 2. Memiliki jalur Input/Output hingga 32 pin, termasuk 2
timer/counter 8 bit, 1 timer/counter 16 bit, 6 kanal PWM, 8 kanal ADC 10 bit, 2 serial
USART, watchdog timer, dan analog comparator.
3. Tersedia crystal oscilator berfrekuensi 8 MHz.
4. Sebuah port untuk pemrograman secara ISP.
5. LED indikator pemrograman
6. Catu daya (VCC) 2,7 - 5,5 Volt DC.
7. Kompatibel dengan DT-COMBO BASE BOARD Series.

A. Fitur Fitur ATmega324P


Kinerja Tinggi, Atmosfer Rendah Atmel® AVR® 8-Bit Microcontroller Family
Arsitektur RISC Lanjutan
 131 Petunjuk yang Kuat
 Eksekusi Siklus Jam Paling Tunggal
 32 x 8 Regulator Kerja Umum
 Operasi Sepenuhnya Statis
 Hingga 20 throughput MIPS pada 20MHz

73
 On-chip 2
 -cycle Multiplier
High Memory Segmen Memori Non-volatile
 32KBytes Memori Program Flash yang Diatur Sendiri
 1KBytes EEPROM - 2KBytes SRAM Internal
 Siklus Write / Erase: 10.000 Flash / 100.000 EEPROM
 Retensi Data: 20 Tahun pada 85 ° C / 100 Tahun Pada 25 ° C (1)
 Bagian Kode Basis Opsional dengan Kunci Kunci Independen
Pemrograman Dalam Sistem oleh Program Boot On-chip
Operasi Membaca-Sementara-Tulis yang Benar

Atmel QTouch® Library Support


 Tombol Touch Capacitive, Slider dan Roda
 QTouch dan akuisisi QMatrix
 Sampai 64 Sense Channels
Antarmuka JTAG (IEEE std 1149.1 Compliant)
 Kemampuan Boundary-scan Sesuai dengan Standar JTAG
 Dukungan Debug On-chip ekstensif
 Pemrograman Flash, EEPROM, Fuses, dan Lock Bits melalui JTAG Interface
Fitur Periferal
 Dua Timer 8-bit / Penghitung dengan Prescaler Pisahkan dan Bandingkan Mode
 Satu Timer 16-bit / Counter dengan Prescaler Pisahkan, Mode Bandingkan, dan Mode
Tangkap
 Penghitung Waktu Nyata dengan Oscillator Terpisah
 Enam Saluran PWM
 8 saluran 10 -bit ADC
Mode Diferensial dengan Gainable Gain pada 1 ×, 10 × atau 200 ×
 Satu Antarmuka Berorientasi 2-bit Serial Byte (kompatibel Philips I2C)
 Dua Serial Programmable USART
 Satu Master / Slave SPI Serial Interface
 Programmable Watchdog Timer Dengan Oscillator On

74
 -chip Terpisah
 On-chip Analog Comparator - Interrupt dan Wake-up pada Pin Change
Fitur Mikrokontroler Khusus
 Reset Power-on dan Deteksi Brown-out yang dapat diprogram
 Oscillator RC yang dikalibrasi dalam
 Sumber Interupsi Internal dan Internal
 Enam Mode Tidur: Idle, Pengurangan Suara ADC, Hemat Daya, Power-down, Standby,
dan Extended Standby

I / O dan Paket
 32 Jalur I / O Programmable
 pin 40 PDIP
 44-lead TQFP
 44 pad VQFN / QFN
Tegangan Operasi:
 1.8 - 5.5V untuk ATmega324PV
 2.7 - 5.5V untuk ATmega324P
Nilai Kecepatan
 ATmega324PV: 0 - 4MHz @ 1.8V - 5.5V s/d 0 - 10MHz @ 2.7V - 5.5V
 ATmega324P: 0 - 10MHz @ 2.7V - 5.5V s/d 0 - 20MHz @ 4.5 - 5.5V
Konsumsi Daya pada 1MHz, 1.8V, 25 ° C
 Mode Aktif: 0.4mA
 Mode Power-down: 0.1μA
 Mode Hemat Daya: 0.6μA (Termasuk RTC 32kHz )

2. Ringkasan Konfigurasi
Tabel di bawah membandingkan rangkaian perangkat fitur dan pin perangkat yang
kompatibel, menyediakan jalur migrasi yang mulus.
Tabel 2-1. Ringkasan Konfigurasi dan Perbandingan Perangkat

75
3. Diagram Blok

76
3. Pin Konfiguration

Keterangan
1. VCC
Tegangan suplai digital
2. GND
Tanah
3. Port A (PA [7: 0])
Port ini berfungsi sebagai input analog ke Analog-to-digital Converter. Ini adalah port I /
O 8-bit, bi-directional dengan resistor pull-up internal, masing-masing dapat dipilih untuk setiap
bit. Buffer output memiliki karakteristik drive simetris, dengan kemampuan sink dan sumber yang
tinggi. Sebagai input, pin port yang ditarik secara eksternal akan rendah sumber arus jika resistor
pull-up diaktifkan. Port pin tri-menyatakan ketika kondisi reset menjadi aktif, bahkan jika jam
tidak berjalan.
4. Port B (PB [7: 0])
Ini adalah port I / O 8-bit, bi-directional dengan resistor pull-up internal, masing-masing
dapat dipilih untuk setiap bit. Buffer output memiliki karakteristik drive simetris, dengan

77
kemampuan sink dan sumber yang tinggi. Sebagai input, pin port yang ditarik secara eksternal
akan rendah sumber arus jika resistor pull-up diaktifkan. Port pin tri-menyatakan ketika kondisi
reset menjadi aktif, bahkan jika jam tidak berjalan. Port ini juga melayani fungsi berbagai fitur
spesial.
5. Port C (PC [7: 0])
Ini adalah port I / O 8-bit, bi-directional dengan resistor pull-up internal, masing-masing
dapat dipilih untuk setiap bit. Buffer output memiliki karakteristik drive simetris, dengan
kemampuan sink dan sumber yang tinggi. Sebagai input, pin port yang ditarik secara eksternal
akan rendah sumber arus jika resistor pull-up diaktifkan. Port pin tri-menyatakan ketika kondisi
reset menjadi aktif, bahkan jika jam tidak berjalan. Port ini juga melayani fungsi antarmuka JTAG,
bersamaan dengan fitur spesial.
6. Port D (PD [7: 0])
Ini adalah port I / O 8-bit, bi-directional dengan resistor pull-up internal, masing-masing
dapat dipilih untuk setiap bit. Buffer output memiliki karakteristik drive simetris, dengan
kemampuan sink dan sumber yang tinggi. Sebagai input, pin port yang ditarik secara eksternal
akan rendah sumber arus jika resistor pull-up diaktifkan. Port pin tri-menyatakan ketika kondisi
reset menjadi aktif, bahkan jika jam tidak berjalan. Port ini juga melayani fungsi berbagai fitur
spesial.
7. RESET
Setel ulang masukan Tingkat rendah pada pin ini lebih lama dari panjang pulsa minimum
akan menghasilkan reset, meski jam tidak menyala. Pulsa yang lebih pendek tidak dijamin
menghasilkan reset.
8. XTAL1
Masukan ke penguat Oscillator pembalik dan masukan ke sirkuit operasi jam internal.
9. XTAL2
Keluaran dari penguat Oscillator pembalik
10. AVCC
AVCC adalah pin suplai tegangan untuk Port A dan Analog-to-digital Converter. Ini harus
terhubung secara eksternal ke VCC, bahkan jika ADC tidak digunakan. Jika ADC digunakan,
seharusnya terhubung ke VCC melalui filter low-pass.
11. AREF Ini adalah pin referensi analog untuk Analog-to-digital Converter

78
5. AVR CPU Core
Bagian ini membahas arsitektur inti AVR secara umum. Fungsi utama inti CPU adalah
memastikan eksekusi program yang benar. Oleh karena itu, CPU harus dapat mengakses,
melakukan perhitungan, mengendalikan periferal, dan menangani interupsi.
Gambar 8-1. Diagram Blok Arsitektur AVR

Untuk memaksimalkan kinerja dan paralelisme, AVR menggunakan arsitektur Harvard -


dengan memori dan bus terpisah untuk program dan data. Instruksi dalam memori program
dieksekusi dengan pipelining level tunggal. Saat satu instruksi dijalankan, instruksi berikutnya
diambil dari memori program. Konsep ini memungkinkan instruksi dijalankan dalam setiap siklus
clock. Memori program adalah memori Flash Antar-Sistem yang Dapat Diprogram Ulang. File
Register dengan akses cepat berisi 32 x 8-bit general purpose working register dengan waktu akses
clock cycle tunggal. Hal ini memungkinkan operasi Arithmetic Logic Unit (ALU) satu siklus.
Dalam operasi ALU yang khas, dua operan adalah keluaran dari Register File, operasi dijalankan,
dan hasilnya disimpan kembali dalam Register File - dalam satu siklus clock. Enam dari 32 register
dapat digunakan sebagai tiga register register alamat tak langsung 16-bit untuk pengalamatan Data
Space - memungkinkan perhitungan alamat yang efisien. Salah satu pointer alamat ini juga dapat
digunakan sebagai pointer alamat untuk melihat tabel dalam memori program Flash. Register

79
fungsi tambahan ini adalah register 16-bit X-, Y-, dan Z-register, yang dijelaskan kemudian di
bagian ini.
ALU mendukung operasi aritmatika dan logika antara register atau antara konstanta dan
register. Operasi register tunggal juga bisa dijalankan di ALU. Setelah operasi aritmatika, Register
Status diperbarui untuk mencerminkan informasi tentang hasil operasi.
Aliran program disediakan dengan lompatan bersyarat dan tanpa syarat dan instruksi panggilan,
yang bisa langsung menangani keseluruhan ruang alamat. Sebagian besar instruksi AVR memiliki
format kata 16-bit tunggal. Setiap alamat memori program berisi instruksi 16 atau 32 bit. Program
Flash memory space terbagi dalam dua bagian, bagian Program Boot dan bagian Program Aplikasi.
Kedua bagian telah menghususkan bit Lock untuk menulis dan membaca / menulis perlindungan.
Instruksi SPM yang menulis ke bagian memori Flash Aplikasi harus berada di bagian Program
Boot. Selama interupsi dan panggilan subrutin, alamat pengirim Program Counter (PC) disimpan
di Stack. Stack secara efektif dialokasikan pada data SRAM umum, dan akibatnya ukuran Stack
hanya dibatasi oleh total ukuran SRAM dan penggunaan SRAM. Semua program pengguna harus
menginisialisasi SP dalam rutinitas Reset (sebelum subrutin atau interrupts dijalankan). Stack
Pointer (SP) dibaca / dibaca diakses di ruang I / O. Data SRAM dapat dengan mudah diakses
melalui lima mode pengalamatan berbeda yang didukung dalam arsitektur AVR. Ruang memori
dalam arsitektur AVR semuanya peta memori linier dan reguler. Modul interupsi yang fleksibel
memiliki register kontrol di ruang I / O dengan bit Global Interrupt Enable tambahan di Register
Status. Semua interupsi memiliki Interrupt Vector yang terpisah pada tabel Interrupt Vector.
Interupsi tersebut diprioritaskan sesuai dengan posisi Interrupt Vector mereka. Semakin rendah
alamat Interrupt Vector, semakin tinggi prioritasnya. Ruang memori I / O berisi 64 alamat untuk
fungsi periferal CPU sebagai Control Registers, SPI, dan fungsi I / O lainnya. Memori I / O dapat
diakses secara langsung, atau sebagai lokasi Data Space mengikuti berkas Register, 0x20 - 0x5F.
Selain itu, perangkat ini memiliki ruang

80

Das könnte Ihnen auch gefallen