I/O PADA MIKROKONTROLER AVR

21
I/O PADA MIKROKONTROLER AVR SISTEM MIKROPROSESSOR UNIVERSITAS JENDERAL ACHMAD YANI RIZAL SURYANA

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 Presentation

Transcript of I/O PADA MIKROKONTROLER AVR

I/O PADA MIKROKONTROLER AVR

SISTEM MIKROPROSESSORUNIVERSITAS JENDERAL ACHMAD YANIRIZAL SURYANA

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.

PETA I/O PADA LOKASI MEMORI

KONFIGURASI I/O AVR

REGISTER I/ODDRxPortxPINx

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

PINx digunakan sebagai register input

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

Menghitung Nilai Maksimum DelaySebuah AVR menggunakan

Osilator 11,0592MHz berapa Nilai Maksimumnya