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