Home > Mikrokontroler > Mencoba Digital I/O Menggunakan Assembly di AVR Studio …(1)

Mencoba Digital I/O Menggunakan Assembly di AVR Studio …(1)

Sebelum terkena virus, semua catatan ada walaupun tidak lengkap dalam bentuk log, tapi semuanya hilang setelah badai virus melanda, hiks….
Dari sekian catatan yang tersisa dengan tujuan dapat dibuka setiap saat, saya pindah saja ke blog, salah satunya adalah ini …

Gambar : Menghitung Arus Sink dan Source

Secara sederhana ATMegaXX dapat digambarkan sebagai berikut :

dari gambar di atas dapat dijelaskan sebagai berikut :

  1. kotak kecil disebelah kanan terdiri dari 8 bit yang berfungsi sebagai Output, jika memiliki logika 1 (atau bewarna hitam pada AVR) dan logika 0 (atau bewarna putih pada AVR)
  2. kaki tersebut dituliskan dengan simbol PA, PB, PC, dst …
  3. agar dapat berfungsi sebagai I/O nilai harus dimasukkan melalui Register (R0 s.d R31) melalui perintah LDI
  4. nilai dalam register tersebut kita masukkan melalui DDRx (Data Direction Register) ke-x dengan perintah OUT. Setelah data kita masukkan melalui DDRx, otomatis akan tersimpan di PINx
  5. R0 s.d R15 dikenal sebagai GPR (General Purposes) sedangkan R16 s.d R31 sebagai Register Intermediate
  6. kita tidak dapat melakukan penulisan selain di DDR karena kita tidak mengetahui nilai dalam ATMega16 sebelumnya (PIN atau PORT)

Dari program di atas dapat kita simpulkan bahwa nilai PIN tergantung pada PORT karena jika kita mengubah nilai PIN maka otomatis nilai PORT akan berubah (sesuai panah pada gambar) sehingga kita tidak perlu menulis nilai di PIN (selain kita tidak mengetahui nilai dalam PIN ATMega16)

Contoh penggunaan Komplement

dari program di atas setelah di komplement kita masukan nilai ke PORTB, kemudian akan tampak setelah jump nilai pada PINB akan sama dengan PORTB karena arah yang sama ke Pin/kaki ATMega16

Contoh Penggunaan SWAP

Dari program tersebut proses inisialisasi dapat menggunakan biner, hexa atau desimal. Perintah SWAP digunakan untuk menggeser RD (Register Destination) dari Rd(7..4) ke Rd(3..0) kemudian di simpan di Status Register sebagai Carry, kemudian Rd(3..0) ke Rd(7..4) dan disimpan di status register sebagai Carry, dst..

Advertisement
Categories: Mikrokontroler
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.