0% menganggap dokumen ini bermanfaat (0 suara)
95 tayangan48 halaman

HW SW MC

Mikrokontroler memiliki Arithmetic Logic Unit (ALU) yang melakukan operasi aritmatika dan logika. ALU terdiri dari gerbang-gerbang logika yang melakukan fungsi seperti penjumlahan, pengurangan, perbandingan, dan lainnya. Mikrokontroler ATMega328 memiliki fitur lengkap seperti ADC, timer, PWM, dan komunikasi serial. Memori dan arsitekturnya terpisah antara program, data, dan EEPROM. Pin-pinnya dapat dikonfig

Diunggah oleh

Jongin Kim
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PPTX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
95 tayangan48 halaman

HW SW MC

Mikrokontroler memiliki Arithmetic Logic Unit (ALU) yang melakukan operasi aritmatika dan logika. ALU terdiri dari gerbang-gerbang logika yang melakukan fungsi seperti penjumlahan, pengurangan, perbandingan, dan lainnya. Mikrokontroler ATMega328 memiliki fitur lengkap seperti ADC, timer, PWM, dan komunikasi serial. Memori dan arsitekturnya terpisah antara program, data, dan EEPROM. Pin-pinnya dapat dikonfig

Diunggah oleh

Jongin Kim
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PPTX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 48

Mikrokontroller

Abyanuddin Salam
POLMAN Bandung
Rancangan Hardware Internal Mikroprosesor
Arithmetic Logic Unit (ALU)

• ALU adalah untaian gerbang-gerbang logika yang membentuk


suatu fungsi operasi aritmetika (ADD, SUB, dan turunannya) dan
operasi Logika (AND, OR, XOR, INC, DEC dan turunannya).
• Dapat membentuk operasi aritmetika 16 bit penjumlahan dan
pengurangan dengan cara operand ditempatkan pada dua buah
register 8 bit (Register HL, IX, dan IY).
Arithmetic Logic Unit (ALU)

Fungsi Aritmetika pada ALU


• Penjumlahan (ADD = add, ADC=Add With Carry)
• Pengurangan (SUB=subtract, SBC= Subtract With Carry)
• Penambahan dengan satu (+1) (INC= Increament)
• Pengurangan dengan satu (-1) DEC= Decreament)
• Pembandingan (CP= Compare)
• Koreksi aritmetika desimal (DAA= Decimal Adjust Accumulator)
Arithmetic Logic Unit (ALU)

Fungsi Logika pada ALU


• Fungsi AND
• Fungsi OR
• Fungsi XOR (Exclusive OR)
• Putar Kanan (RRA= Rotate Right Accumulator, RRCA= Rotate
Right Circular Accumulator)
Arithmetic Logic Unit (ALU)

Fungsi Logika pada ALU


• Putar Kiri (RLA= Rotate Left Accumulator, RRCA= Rotate Left
Circular Accumulator)
• Geser Kiri (SLA= Shift Left Arithmetic)
• Geser Kanan (SRA= Shift Right Arithmetic)
• Manipulasi bit (SET, RESET, dan Test)
Addres Bus Control

• bekerja mengendalikan pengalamatan memori dan I/O.


• Pengalamatan memori dan I/O menggunakan satu register 16 bit
yang disebut dengan register Program Counter (PC).
Data Bus Control

• bekerja mengatur arah aliran data pada saat operasi


• pembacaan dan penulisan. Data bus control bekerja
menggunakan tri state buffer.
Bagian Instruction Register dan Instruction Decoder

• bekerja sebagai penerima kode bahasa mesin atau object code


pada proses fetching, dan pendekode object code pada saat
decoding kode-kode yang diambil oleh CPU, serta melakukan
eksekusi
HW Microcontroller
• AVR Atmel ATMega
• ARDUINO
MIKROKONTROLER ATMega328
Mikrokontroler ATMega328
• Beberapa tahun terakhir, mikrokontroler sangat banyak digunakan terutama
dalam pengontrolan robot. Seiring perkembangan elektronika, mikrokontroler
dibuat semakin kompak dengan bahasa pemrograman yang juga ikut berubah.
• Salah satunya adalah mikrokontroler AVR (Alf and Vegard’s Risc processor)
ATmega328 yang menggunakan teknologi RISC (Reduce Instruction Set
Computing) dimana program berjalan lebih cepat karena hanya membutuhkan
satu siklus clock untuk mengeksekusi satu instruksi program.
• Secara umum, mikrokontroler AVR dapat dikelompokkan menjadi 4 kelas, yaitu
kelas ATtiny, keluarga AT90Sxx, keluarga ATmega, dan AT86RFxx. Pada dasarnya
yang membedakan masing-masing kelas adalah memori, peripheral, dan
fungsinya.
Mikrokontroler ATMega328
 Mikrokontroler AVR ATmega328 memiliki fitur
yang cukup lengkap: ADC internal,
EEPROMinternal, Timer/Counter, PWM,
analog comparator, dan lain-lain
Menggunakan teknologi FLASH memori, sehingga
dapat diprogram atau dihapus hingga ribuan kali
Prosesor (CPU) mikrokontroler ATMega328
merupakan jenis RISC
Arsitektur Harvard
Fitur Mikrokontroler ATMega328
• Saluran Input/Output (I/O) sebanyak 23 buah
• ADC internal sebanyak 6 saluran
• Tiga buah Timer/Counter dengan kemampuan
pembandingan
• CPU yang terdiri atas 32 buah register serbaguna
• SRAM sebesar 2 kByte
• Memori Flash sebesar 32 kByte dengan
kemampuan Read While Write
• EEPROM sebesar 1 kByte yang dapat diprogram saat
operasi
Fitur Mikrokontroler ATMega328
• Antarmuka komparator analog
• Port USART untuk komunikasi serial
• Port antarmuka SPI
• Sistem mikroprosesor 8-bit berbasis RISC dengan
kecepatan maksimal 16 MHz
• Lima mode Sleep : Idle, ADC Noise Reduction, Power-
save, Power-down, danStandby
• Sumber Interupsi External dan Internal
• Enam buah channels PWM
Arsitektur Mikrokontroler ATMega328
Arsitektur Mikrokontroler ATMega328
 Mikrokontroler ATmega328 memiliki 3 jenis memori, yaitu memori
program, memori data dan memori EEPROM. Ketiganya memiliki
ruang tersendiri dan terpisah.
 Mikrokontroler ATmega328 memiliki arsitektur Harvard, yaitu
memisahkan memori untuk kode program dan memori untuk data
sehingga dapat memaksimalkan kerja dan parallelism. Instruksi-
instruksi dalam memori program dieksekusi dalam satu alur tunggal,
dimana pada saat satu instruksi dikerjakan instruksi berikutnya sudah
diambil dari memori program. Konsep inilah yang memungkinkan
instruksi-instruksi dapat dieksekusi dalam setiap satu siklus clock.
Arsitektur Mikrokontroler ATMega328
 32 x 8-bit register serbaguna digunakan untuk mendukung operasi
pada ALU(Arithmatic Logic Unit) yang dapat dilakukan dalam satu
siklus. Enam dari registerserbaguna ini dapat digunakan sebagai 3
buah register pointer 16-bit pada mode pengalamatan tak langsung
untuk mengambil data pada ruang memori data. Ketiga register
pointer 16-bit ini disebut dengan register X (gabungan R26 dan
R27), register Y (gabungan R28 dan R29), dan register Z (gabungan
R30 dan R31).
Arsitektur Mikrokontroler ATMega328
 Hampir semua instruksi AVR memiliki format 16-bit. Setiap alamat
memori program terdiri dari instruksi 16-bit atau 32-bit. Selain
register serbaguna di atas, terdapat register lain yang terpetakan
dengan teknik memory mapped I/O selebar 64 byte. Beberapa
register ini digunakan untuk fungsi khusus antara lain sebagai
register control Timer/Counter, Interupsi, ADC, USART, SPI, EEPROM,
dan fungsi I/O lainnya. Register-register ini menempati memori pada
alamat 0x20 – 0x5F.
Arsitektur Mikrokontroler ATMega328
 ATmega328 merupakan tipe AVR yang telah dilengkapi dengan 6
saluran ADC internal dengan fidelitas 10-bit. Dalam mode operasinya,
ADC ATmega328 dapat dikonfigurasi, baik secara single ended input
maupun differential input. Selain itu, ADC ATmega328 memiliki
konfigurasi pewaktuan, tegangan referensi, mode operasi, dan
kemampuan filter derau yang amat fleksibel, sehingga dengan
mudah disesuaikan dengan kebutuhan ADC itu sendiri.
Arsitektur Mikrokontroler ATMega328
  ATmega328 memiliki 3 modul timer yang terdiri dari 2
buah timer/counter 8-bit dan 1 buah timer/counter 16-bit. Ketiga
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 difungsikan sebagai sumber
interupsi. Masing-masingtimer/counter ini memiliki register tertentu
yang digunakan untuk mengatur mode dan cara kerjanya.
Arsitektur Mikrokontroler ATMega328
Serial Peripheral Interface (SPI) merupakan salah satu mode komunikasi
serialsyncrhronous kecepatan tinggi yang dimiliki oleh
ATmega328. Universal Syncrhronous and Asyncrhronous Serial Receiver
and Transmitter (USART) juga merupakan salah satu mode komunikasi
serial yang dimiliki oleh ATmega328. USART merupakan komunikasi
yang memiliki fleksibilitas tinggi, yang dapat digunakan untuk
melakukan transfer data baik antar mikrokontroler maupun dengan
modul-modul eksternal termasuk PC yang memiliki fitur UART.
Arsitektur Mikrokontroler ATMega328
USART memungkinkan transmisi data baik
secara syncrhronous maupunasyncrhronous, sehingga dengan
memiliki USART pasti kompatibel dengan UART. Pada ATmega328,
secara umum pengaturan
mode syncrhronous maupun asyncrhronous adalah sama.
Perbedaannya hanyalah terletak pada sumber clock saja. Jika pada
modeasyncrhronous masing-masing peripheral memiliki
sumber clock sendiri, maka pada modesyncrhronous hanya ada satu
sumber clock yang digunakan secara bersama-sama. Dengan
demikian, secara hardware untuk mode asyncrhronous hanya
membutuhkan 2 pin yaitu TXD dan RXD, sedangkan untuk
mode syncrhronous harus 3 pin yaitu TXD, RXD dan XCK.
Memory pada Mikrokontroler ATMega328
Memori program

ATmega328 memiliki kapasitas memori program sebesar 32 kByte


yang terpetakan dari alamat 0000h – 3FFFh dimana masing-masing
alamat memiliki lebar data 32 bit. Memori program ini terbagi
menjadi 2 bagian yaitu bagian program boot dan bagian program
aplikasi
Memory pada Mikrokontroler ATMega328
Memori data

Memori data ATmega328 terbagi menjadi 3 bagian


yaitu register serbaguna, register I/O dan SRAM. ATmega328 memiliki
32 byte register serbaguna, 64 byte register I/O yang dapat diakses
sebagai bagian dari memori RAM (menggunakan instuksi LD atau ST)
atau dapat juga diakses sebagai I/O (menggunakan instruksi IN atau
OUT), dan 2048 byte digunakan untuk memori data SRAM.
Memory pada Mikrokontroler ATMega328
Memori EEPROM

ATmega328 memiliki memori EEPROM sebesar 1 kByte yang terpisah


dari memori program maupun memori data. Memori EEPROM ini
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 mengakses data eksternal, sehingga waktu
eksekusinya relatif lebih lama bila dibandingkan dengan mengakses
data dari SRAM.
Konfigurasi Pin Mikrokontroler ATMega328
Konfigurasi Pin Mikrokontroler ATMega328

• VCC merupakan pin yang berfungsi sebagai masukan catu daya


• GND merupakan pin Ground
• AVCC merupakan pin tegangan catu untuk A/D converter
• AREF merupakan pin tegangan referensi analog untuk ADC
Konfigurasi Pin Mikrokontroler ATMega328
• Port B (PortB7…PortB0) merupakan pin input/output dua arah dan
pin fungsi khusus seperti dapat dilihat pada Tabel
Konfigurasi Pin Mikrokontroler ATMega328
• Port C (PortC6…PortC0) merupakan pin input/output dua arah dan
pin fungsi khusus seperti dapat dilihat pada Tabel
Konfigurasi Pin Mikrokontroler ATMega328
• Port D (PortD4…PortD0) merupakan pin input/output dua arah dan
pin fungsi khusus seperti dapat dilihat pada Tabel 
Arduino
Arduino
• Arduino adalah pengendali mikro single-board yang bersifat open-source,
diturunkan dari Wiring platform, dirancang untuk memudahkan penggunaan
elektronik dalam berbagai bidang. Hardwarenya memiliki prosesor Atmel AVR dan
softwarenya memiliki bahasa pemrograman sendiri.
• Arduino juga merupakan platform hardware terbuka yang ditujukan kepada siapa
saja yang ingin membuat purwarupa peralatan elektronik interaktif berdasarkan
hardware dan software yang fleksibel dan mudah digunakan. Mikrokontroler
diprogram menggunakan bahasa pemrograman arduino yang memiliki
kemiripan syntax dengan bahasa pemrograman C. Karena sifatnya yang terbuka
maka siapa saja dapat mengunduh skema hardware arduino dan membangunnya.
• Arduino menggunakan keluarga mikrokontroler ATMega yang dirilis oleh Atmel
sebagai basis, namun ada individu/perusahaan yang membuat clone arduino dengan
menggunakan mikrokontroler lain dan tetap kompatibel dengan arduino pada level
hardware. 
Arduino Uno
• Arduino Uno adalah papan sirkuit berbasis
mikrokontroler ATmega328. IC (integrated
circuit) ini memiliki 14 input/output digital (6
output untuk PWM), 6 analog input,
resonator kristal keramik 16 MHz, Koneksi
USB, soket adaptor, pin header ICSP, dan
tombol reset. Hal inilah yang dibutuhkan
untuk mensupport mikrokontrol secara
mudah terhubung dengan kabel power USB
atau kabel power supply adaptor AC ke DC
atau juga battery.
Arduino Uno
Fitur Arduino Uno
• Microcontroller ATmega328
• Operasi dengan daya 5V Voltage
• Input Tegangan (disarankan) 7-12V
• Input Tegangan (batas) 6-20V
• Digital I / O Pins 14 (dimana 6 memberikan output PWM)
• Analog Input Pin 6
• DC Lancar per I / O Pin 40 mA
• Saat 3.3V Pin 50 mA DC
• Flash Memory 32 KB (ATmega328) yang 0,5 KB digunakan oleh bootloader
• SRAM   2 KB (ATmega328)
• EEPROM 1 KB (ATmega328)
• Clock Speed ​16 MHz
Daya pada Arduino Uno
• Uno Arduino dapat diaktifkan melalui koneksi USB atau dengan catu daya eksternal
(otomatis).

Pin listrik adalah sebagai berikut:


• VIN. Tegangan masukan kepada board Arduino ketika itu menggunakan sumber daya
eksternal (sebagai pengganti dari 5 volt  koneksi USB atau sumber daya lainnya).
• 5V. Catu daya digunakan untuk daya mikrokontroler dan komponen lainnya.
• 3v3. Sebuah pasokan 3,3 volt dihasilkan oleh regulator on-board.
• GND. Ground pin.
Memori pada Arduino Uno
• ATmega328 memiliki 32 KB (dengan 0,5 KB digunakan untuk
bootloader)
• 2 KB dari SRAM dan
• 1 KB EEPROM (yang dapat dibaca dan ditulis dengan EEPROM
liberary).
Input dan Output Arduino Uno
• Masing-masing dari 14 pin digital di Uno dapat digunakan sebagai
input atau output beroperasi dengan daya 5 volt. Setiap pin dapat
memberikan atau menerima maksimum 40 mA dan memiliki internal
pull-up resistor (secara default terputus) dari 20-50 kOhms. Selain itu,
beberapa pin memiliki fungsi khusus.
Pin memiliki fungsi khusus pada Arduino Uno
Pin memiliki fungsi khusus:
• Serial: 0 (RX) dan 1 (TX). Digunakan untuk menerima (RX) dan
mengirimkan (TX) TTL data serial. Pin ini dihubungkan ke pin yang
berkaitan dengan chip Serial ATmega8U2 USB-to-TTL.
• Eksternal menyela: 2 dan 3. Pin ini dapat dikonfigurasi untuk memicu
interrupt pada nilai yang rendah, dengan batasan tepi naik atau turun,
atau perubahan nilai.
• PWM: 3, 5, 6, 9, 10, dan 11. Menyediakan output PWM 8-bit
• SPI: 10 (SS), 11 (Mosi), 12 (MISO), 13 (SCK). Pin ini mendukung
komunikasi SPI
• LED: 13. Ada built-in LED terhubung ke pin digital 13. Ketika pin
bernilai nilai HIGH, LED on, ketika pin bernilai  LOW, LED off.
Pin memiliki fungsi khusus pada Arduino Uno
Pin memiliki fungsi khusus:
• Uno memiliki 6 masukan analog, berlabel A0 sampai dengan A5, yang
masing-masing menyediakan 10 bit dengan resolusi (yaitu 1024 nilai
yang berbeda). Selain itu, beberapa pin memiliki fungsi khusus:
I2C: A4 (SDA) dan A5 (SCL). Dukungan I2C (TWI) komunikasi
menggunakan perpustakaan Wire.
• Aref. Tegangan referensi (0 sampai 5V saja) untuk input analog.
Digunakan dengan fungsi analogReference ().
• Reset. Bawa baris ini LOW untuk me-reset mikrokontroler.
Komunikasi pada Arduino Uno
• Uno Arduino memiliki sejumlah fasilitas untuk berkomunikasi dengan
komputer, Arduino lain, atau mikrokontroler lainnya. ATmega328 menyediakan
UART TTL (5V) untuk komunikasi serial, yang tersedia di pin digital 0 (RX) dan 1
(TX). Sebuah ATmega8U2 sebagai saluran komunikasi serial melalui USB dan
sebagai port virtual com  untuk perangkat lunak pada komputer. Firmware ’8
U2 menggunakan driver USB standar COM, dan tidak ada driver eksternal yang
diperlukan. Perangkat lunak Arduino terdapat monitor serial yang
memungkinkan digunakan memonitor data tekstual sederhana yang akan
dikirim ke atau dari board Arduino. LED RX dan TX  di papan tulis akan
berkedip ketika data sedang dikirim melalui chip USB-to-serial dengan koneksi
USB ke komputer (tetapi tidak untuk komunikasi serial pada pin 0 dan 1).
• Sebuah SoftwareSerial library memungkinkan untuk berkomunikasi secara
serial pada salah satu pin digital pada board Uno’s.
• ATmega328 juga mendukung I2C (TWI) dan komunikasi SPI. Perangkat lunak
Arduino termasuk perpustakaan Kawat untuk menyederhanakan penggunaan
bus I2C, lihat dokumentasi untuk rincian. Untuk komunikasi SPI, menggunakan
perpustakaan SPI.
SW Microcontroller
• Algoritma Pemrograman
- Definisi
- Langkah Pembuatan
Definisi
“Algoritma adalah urutan langkah-langkah logis penyelesaian masalah
yang disusun secara sistematis”
5 ciri penting algortima:
• Algoritma harus berhenti setelah mengerjakan sejumlah langkah
terbatas (berhingga)
• Setiap langkah harus didenisikan dengan tepat dan tidak berarti-dua
(ambiguous)
• Algoritma memiliki nol atau lebih masukan (input)
• Algoritma mempunya nol atau lebih keluaran (output)
• Algoritma harus efektif dan esien.
Langkah Pembuatan Algoritma
7 langkah umum yaitu :
• 1. Mendenisikan masalah, Langkah yang pertama dilakukan adalah
mendenisikan permasalahan. langkah ini harus dilakukan untuk
menentukanmasalah yang ada serta ditentukan pula input dan output
program.
• 2. Mencari solusi, Kemudian ditentukan solusi dari permasalahan yang
dihadapi. Bila untuk mendapatkan solusi harus melalui langkah yang
terlalu rumit dapat dilakukan pembagian masalah dalam beberapa
modul-modul kecil agar mudah untuk dikerjakan. Lalu modul-modul kecil
tersebut digabungkan menjadi satu untuk dapat menentukan solusi.
Langkah Pembuatan Algoritma (lanj)
3. Menentukan algoritma, Dalam pemilihan algoritma, pemrogram atau
analis harus menggunakan algoritma yang sesuai dan esien untuk
masalah yang dihadapi.

4. Menulis program, Penulisan program bisa dilakukan dengan


menggunakan bahasa pemrograman yang dikuasai dan memiliki
kompabilitas dengan perangkat keras yang akan menggunakan program
tersebut.
Langkah Pembuatan Algoritma (lanj)
5. Menguji program, Bila program sudah selesai dibuat, pengujian diperlukan untuk
mengetahui apakah program yang dibuat sudah layak untuk digunakan.

6. Mendokumentasikan program, Penulisan dokumentasi yang biasanya dilupakan oleh


pemrogram menjadi sangat penting saat akan dilakukan perubahan pada program
yang dibuat. penulisan program ini dapat dilakukan dengan menulis komentar pada
source code tentang kegunaannya (variabel, parameter, procedur, fungsi).

7. Merawat program, Program yang sudah selesai dibuat juga perlu dirawat dengan
pendeteksian bug yang belum diketahui sebelumnya juga penambahan fasilitas baru
yang mempermudah pengguna program.

Anda mungkin juga menyukai