i/o pada mikrokontroler avr
DESCRIPTION
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 - PowerPoint PPT PresentationTRANSCRIPT
I/OPerangkat 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 prosessorProgrammed 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.
REGISTER DDRxDigunakan untuk memilih arah
pinJika DDRx = 1 sebagai outputJika DDRx = 0 sebagai input
REGISTER PortxRegister 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
Contoh Penggunaan I/OBahasa 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/COUNTERFasilitas 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 bitTimer/Counter1 16 bitTimer/Counter2 8 bit8 bit dan 16 bit adalah jumlah
data yang bisa ditampung pada register penampungnya
PERHITUNGAN NILAI MAKSIMUM TIMERSebuah 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 TCCR1BCounter 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
ContohSeorang Programmer
menghendaki tundaan/delay selama 1 detik, menggunakan frekeunsi Osilator 11,0592MHz dan prescaler 1024
Nilai TCNTH = D5H dan TCNTL = D0H