Minggu, 13 Juni 2010

Mengenal instruksi I/O assembler menggunakan AVR studio 4

Port I/O pada mikrokontroler ATmeg16 dapat difungsikan menjadi dua macam yaitu input dan output. Untuk mengatur fungsi I/O tersebut dapat dipilih dengan mengatur fungsi pada register DDR dan register Port, selengkapnya lihat tabel dibawah ini.


DDR=0

DDR=1

Port=0

Iutput low

Output low

Port=1

Iutput high

Output high


Intinya adalah register DDR digunakan untuk mengatur sebagai input atau output, sedangkan register port digunakan untuk mengatur outputnya high atau low.
Port I/O sebagai output hanya memberikan arus sourcing sebesar 20mA sehingga untuk menggerakkan motor atau kendali alat elektronis yang lain, perlu diberikan penguatan tambahan atau dapat juga dengan konfigurasi port sebagai shinking current.

Berikut merupakan instruksi I/O:
  • In:Membaca data I/O port atau internal pheriperal register (Timer, UART,dsb) kedalam register. contoh = in r16, pina
  • Out: Menulis datasebuah register ke port I/O atau internal pheriperal register. Contoh = out ddra, r16
  • LDI(load immediate) : Untuk menulis konstanta register sebelum konstanta tersebut itu ditulis ke Port I/O; Contoh = ldi r16,0b00001111 ;bentuk biner
out portd, r16 ;menulis data pada R16

  • SBI (set bit set): Untuk membuat logika high pada satu bit I/O register. Contoh= sbi portb,7 ;set bit ke-7 pada portb
  • CBI (clear bit set): Untuk membuat logika low pada satu bit I/O register. Contoh = cbi portc,5 ;clear bit ke-5 pada portc
  • SBIC (Skip if bit I/O is cleared): Untuk mengecek apakah bit I/O register clear. Jika Ya skip satu perintah dibawahnya. Contoh= sbic porta,3 ;Skip perintah ini jika porta.3 logika 0
  • SBIS (Skip if bit I/O is Set): Untuk mengecek apakah bit I/O register set. Jika Ya skip satu perintah dibawahnya. Contoh= sbis porta,3 ;Skip perintah ini jika porta.3 logika 1
wasalam

2 komentar: