BAB X - Telkom Unjani 2013

Download Report

Transcript BAB X - Telkom Unjani 2013

I/O PADA MIKROKONTROLER
AVR
SISTEM MIKROPROSESSOR
UNIVERSITAS JENDERAL ACHMAD YANI
RIZAL SURYANA
I/O
Perangkat I/O digunakan oleh processor
untuk berkumikasi dengan dunia luar
 Perangkat I/O merupakan pengkondisi
sinyal sebelum dapat diolah oleh
processor atau setelah diolah prosessor
ygn berupa data digital
 Logika 1 (high) = 5 Volt dan Logika 0 (low)
= 0 Volt

I/O berkomunikasi dengan
prosessor
Programmed I/O  Prosessor mengirim
dan menerima data pada I/O sesuai
instruksi
 Interrupt-driven I/O  sinyal dari luar
mengatur eksekusi intruksi prosessor.
 Direct Memory Access (DMA) 
Memungkinkan trasnsfer data langsung
antara peripheral I/O dengan Memori
tanpa keterlibatan Prosessor.

PETA I/O PADA LOKASI MEMORI
KONFIGURASI I/O AVR
REGISTER I/O
DDRx
 Portx
 PINx

REGISTER DDRx
Digunakan untuk memilih arah pin
 Jika DDRx = 1  sebagai output
 Jika DDRx = 0  sebagai input

REGISTER Portx

Register Portx digunakan untuk 2
keperluan
◦ Portx berfungsi sebagai output jika DDRx = 1
 Portxn = 1 maka pin Pxn akan berlogika high
 Portxn = 0 maka pin Pxn akan berlogika low
◦ Portx berfungsi untuk mengaktfikan resistor
pullup jika DDRx = 0
 Portxn = 1 maka pin Pxn sebagai pin input dengan
resistor pull up
 Portxn = 0 maka pin Pxn sebagai pin input tanpa
resistor pull up

PINx  digunakan sebagai register input
Contoh Penggunaan I/O

Bahasa Assembler
◦
◦
◦
◦
◦
◦

In r16, PinA
Out PortA, r17
Sbi PortB,7
Cbi PortB,5
Sbic PortA,3
Sbis PortC,1
Bahasa C
◦
◦
◦
◦
◦
PORTA = 12
nilaiA = PINB
bitFlag = PINC.2
PORTD.0 = 1
PORTD.4 = 0
TIMER/COUNTER
Fasilitas yang dimiliki mikrokontroller
untuk membuat delay atau tundaan
 Pada dasarnya hanya menghitung pulsa
clock
 Frekuensi pulsa clock yang dihitung
tersebut bisa sama dengan frekuensi
crystal atau diperlambat dengan
menggunakan prescaler (8, 64, 256 dan
1024)

FASILITAS TIMER/COUNTER AVR
Timer/Counter0 8 bit
 Timer/Counter1 16 bit
 Timer/Counter2 8 bit
 8 bit dan 16 bit adalah jumlah data yang
bisa ditampung pada register
penampungnya

PERHITUNGAN NILAI
MAKSIMUM TIMER

Sebuah AVR menggunakan Crystal 8 MHz
dan Timer 16bit, maka waktu maksimum
timer yang dihasilkan adalah :
TMAX = 1/fCLK x (FFFFH + 1)
= 0.125uS x 65536
= 0.008192 Second

Untuk menghasilkan waktu Timer yang lebih
lama dapat digunakan prescaler, misalnya
1024 :
TMAX = 1/fCLK x (FFFFH + 1) x N
= 0.124uS x 65536 x 1024
= 8.388608 Second
REGISTER PENGATURAN TIMER

TCNT  digunakan untuk menyimpan
nilai timer yang diinginkan, register ini bisa
terdiri dari 8 (TCNTx) atau 16 bit
(TCNTxH dan TCNTxL)

Timer Interrupt Mask Register (TIMSK)
dan Timer Interrupt Flag Register (TIFR)
 digunakan untuk mengendalikan
interrupt mana yang diaktifkan
REGISTER TCCR1B

Counter Register B digunakan untuk
mengatur mode timer, prescaler dan
pilihan lainnya

Cs12..10 : Clock select bits  digunakan
untuk memilih prescaler
PERHITUNGAN TIMER
TCNT  Nilai timer (Hex)
 Fclk  Frekuensi clock (crystal) yang
digunakan (Hz)
 Timer -> Wktu timer yang diinginkan
(detik)
 N  Prescaler (1,8,64,256,1024)
 1 + FFFFH  Nilai max timer adalah
FFFFH dan overflow

Contoh

Seorang Programmer menghendaki
tundaan/delay selama 1 detik,
menggunakan frekeunsi Osilator
11,0592MHz dan prescaler 1024

Nilai TCNTH = D5H dan TCNTL = D0H
Menghitung Nilai Maksimum Delay

Sebuah AVR menggunakan Osilator
11,0592MHz berapa Nilai Maksimumnya