Categories
Mikrokontroler

Tutorial Mikrokontroler AT89: Masukan dan Luaran (I/O)

Pada mikrokontroler Atemal keluarga AT89C (obsollete) atau AT89S, Port 0 tidak memiliki pullup internal. Pullup FET yang berada di dalam penggerak luaran P0 digunakan hanya pada saat port mengirimkan logika ‘1’ selama pengaksesan memori eksternal. Selain dari itu, pullup FET akan selalu mati. Konsekuensinya, jalur-jalur P0 yang digunakan sebagai jalur luaran merupakan saluran terbuka (open drain). Penulisan ‘1’ ke bit pengancing membuat kedua FET keluaran menjadi mati, dengan demikian kondisi kaki-kakinya menjadi mengambang (float). Dalam kondisi seperti ini, pin dapat digunakan sebagai masukan berimpedansi tinggi.

Categories
Mikrokontroler

Up-Down Counter menggunakan uC AT89

Sebenarnya membuat aplikasi pencacah naik-turun (up-down counter) menggunakan AT89 adalah hal yang aneh dalam dunia elektronika digital. Lho kok? La ya… lha wong tinggal pake rangkaian dengan IC TTL (seri 74LS) saja sudah bisa, kok ini pake programming mikrokontroler segala… Lha kalo untuk belajar pemrograman mikrokontroler gimana? O ya silahkan saja… itu jadi gak aneh lagi… he he he…

Categories
Mikrokontroler

Migrating from Assembly to C for 8-bit Microcontrollers

Taylor Cox

Atmel

Assembly language has typically been the programming language of choice for embedded system programmers. Looking into the 8-bit microcontroller offerings from different vendors, one finds that these microcontrollers can be programmed using the high-level C programming language as well as assembly. Some microcontrollers have even been designed with high-level languages in mind as a means of programming, thus alleviating common high-level language bottlenecks. The embedded source code examples found in this paper will be based on ATMEL Corporation’s 8-bit AVR microcontroller, which was designed for programming using the high-level C language. In order to program microcontrollers using the C language a compiler is required to translate the high-level language in to low-level machine instructions the microcontroller can execute. Utilizing a high-level language when programming microcontrollers offers key advantages over low-level languages while introducing a single ‘gotcha’ that can be overcome with careful attention and planning.

Download full explanation here.

Categories
Mikrokontroler

RTC DS12C887: Contoh Aplikasi

Untuk memahami bagaimana menggunakan RTC DS12C887, maka artikel yang ke-3 dibahas tentang contoh aplikasi sederhana, menampilkan data detik ke serangkaian 8 LED (mewakili 8-bit) yang terhubung ke P0.

Ini program selengkapnya…

Categories
Mikrokontroler

RTC DS12C887: Register Data & Register Kontrol

DS12C887 mempunyai 14 buah register yang terdiri dari 4 Register Kontrol dan 10 Register Data. Register Data sendiri terpisah menjadi register waktu dan Register Alarm sebagaimana ditunjukkan pada gambar 1. Setelah Register-register Kontrol diinisialisasi, maka data waktu ataupun alarm dapat dibaca atau ditulisi dengan cara mengakses register-register data yang bersangkutan.

Categories
Mikrokontroler

RTC DS12C887: Pendahuluan

Real Time Clock merupakan suatu chip (IC) yang memiliki fungsi sebagai penyimpan waktu dan tanggal. Artikel ini membahas sebuah IC RTC yaitu DS12C887 yang memiliki register yg dapat menyimpan data detik, menit, jam, tanggal, bulan dan tahun. RTC ini memiliki 128 lokasi RAM yang terdiri dari 15 byte untuk data waktu serta kontrol, dan 113 byte sebagai RAM umum.

Categories
buku Mikrokontroler

MOBOTSIM v1.0: Software Pembelajaran Pengendalian Mobile Robot

Apakah MOBOTSIM itu?

MOBOTSIM adalah sebuah perangkat lunak untuk simulasi 2D robot roda (mobile robot atau MOBOT) tipe penggerak diferensial (differential drive), sebagaimana contohnya ditunjukkan pada Gambar I.1 dan Gambar I.2, yaitu suatu mobot buatan Innex – Thailand, pada gambar tersebut adalah bentuk dasar tanpa dilengkapi sensor apapun serta kontrolernya berupa mikrokontroler i-Box, diprogram menggunakan Logo Blocks.

Gambar 1. Tipikal robot mobile differential drive
(tampak bawah – LabMate buatan TRC)

Gambar 2. Robot mobile yang dilengkapi dengan mikrokontroler i-Box
(Bentuk dasar, tanpa sensor, buatan Innex, Thailand)

Perangkat lunak MOBOTSIM ini menyediakan suatu antarmuka grafis yang mewakili suatu lingkungan dimana Anda dengan mudah bisa membuat, mengatur dan menyunting mobot – mobot dan objek-objek rintangan.

Agar mampu mengatur gerakan robot roda tersebut, MOBOTSIM memiliki editor Bahasa BASIC yang dapat digunakan untuk menuliskan makro-makro yang memanfaatkan fungsi-fungsi khusus mobot (selain fungsi-fungsi standar BASIC) untuk mendapatkan berbagai macam informasi, misalnya tentang koordinat mobot dan data-data sensor), serta mengatur gerakan mobot berdasar informasi-informasi yang diperoleh tersebut. Ini semuanya bisa dilakukan dengan menuliskan makro (program) dalam Bahasa BASIC.

Perangkat lunak MOBOTSIM v1.0 ini bisa Anda peroleh dari CDROM yang disertakan pada buku ini maupun men-download langsung dari website Mobotsoft yaitu http://www.Mobotsoft.com, yang dapat digunakan gratis selama 30 hari atau 100 kali penggunaan (mana yang lebih dulu tercapai).

Silahkan Anda unduh artikel lengkap disini atau informasi bukunya disini… Terima kasih.

Categories
Mikrokontroler

Pemrograman Mikrokontroler dalam Bahasa Tingkat-Tinggi

Pembuatan program mikrokontroler dalam bahasa tingkat-tinggi (high-level language, disingkat HLL), misalnya bahasa ‘C’ atau ‘BASIC’, memungkinkan kita mengurangi waktu pengembangan secara signifikan jika dibandingkan dengan Bahasa Assembly. Ada juga yang mengatakan, seorang perancang yang sudah beperngalaman bisa menuliskan sejumlah baris kode-kode yang sama per hari baik dalam C dan Assembly. Namun perlu diingat bahwa, sebaris kode dalam C sama dengan sejumlah kode atau baris dalam Assembly.

Biasanya, sebuah program yang ditulis dalam HLL akan lebih terstruktur dibandingkan program yang sama yang ditulis dalam Assembly. Dengan demikian, akan lebih mudah melakukan pelacakan (debugging) dalam HLL.

Kebanyakan arsitektur mikrokontroler 8-bit dilengkapi dengan sebuah kompailer. Bagaimanapun juga, ada perbedaan besar dalam bagaimana efisiensi arsitektur untuk HLL, dan bagaimana kode-kode C disusun agar efisien untuk suatu arsitektur mikrokontroler tertentu. Ada yang mengatakan bahwa arsitektur berbasis akumulator, seperti 8051 dari Intel, bekerja dengan baik menggunakan variabel-variabel global, sedangkan arsitektur berbasis register, seperti AVR-nya Atmel, bekerja dengan baik menggunakan variabel-variabel lokal.

Categories
Mikrokontroler

Penanganan Memori EEPROM (uC AT89S8253)

Mikrokontroler AT89S8253 dilengkapi dengan memori EEPROM sebesar 2 Kb (lumayan nich) yang bisa Anda gunakan untuk menyimpan data-data penting walaupun catu daya ke mikrokontroler dimatikan, Atmel memberikan garansi kepada Anda sekitar 100.000 kali penulisan data. Mudah digunakan karena hanya melibatkan beberapa bit kontrol.

Pengontrolan penulisan dan pembacaan data ke/dari EEPROM melalui register khusus EECON. Proses penulisan EEPROM relatif lambat (penulisan ke sebuah register bisa memakan waktu sekitar 4 milidetik), sehingga trik perangkat keras perlu dilakukan untuk meningkatkannya. Saat bit EELD dalam EECON di-set (berlogika “1”), data tidak langsung dituliskan ke EEPROM tetapi disimpan dulu di sebuah buffer sementara (memori sementara) dengan kapasitas 32 byte. Saat bit EELD ini di-nol-kan, data pertama dan seterusnya akan dituliskan secara normal (butuh 4 milidetik), artinya ke-32 byte data tersebut akan ditulis langsung ke EEPROM secara bersamaan dan hanya membutuhkan 4 milidetik BUKAN 32×4 milidetik = 128 milidetik.

Memori EEPROM ini diperlakukan seperti memori eksternal, dengan demikian instruksi khusus untuk penanganan memori tambahan (MOVX) digunakan. Bit EEMEN dalam register EECON menentukan apakah data akan dibaca/ditulis dari/ke EEPROM eksternal beneran atau EEPROM on-chip (di dalam uC).

Register EECON

Register ini berisi bit-bit kontrol untuk mengoperasikan memori EEPROM, perhatikan gambar berikut

WRTINH

Ini bit yang cuman bisa dibaca saja, saat tingkat tegangan catu daya terlalu rendah untuk operasi pemrograman EEPROM, perangkat keras secara otomatis akan me-nol-kan bit ini, artinya pemrograman EEPROM tidak dapat dilakukan atau proses pemrograman yang sedang berlangsung akan dibatalkan.

RDY/BSY

Bit ini hanya dibaca saja:

  • 0 – Sedang proses pemrograman (butuh waktu 4 milidetik).
  • 1 – Proses pemrograman sudah selesai (data dituliskan ke EEPROM).

DPS

  • 0 – Alamat untuk pemrograman atau pembacaan dari EEPROM tersimpan di register DP0H dan DP0L.
  • 1 – Alamat untuk pemrograman atau pembacaan dari EEPROM tersimpan di register DP1H dan DP1L.

EEMEN

  • 0 – Instruksi MOVX digunakan untuk mengakses memori eksternal.
  • 1 – Instruksi MOVX digunakan untuk mengakses memori EEPROM internal. Jika register alamat lebih besar dari 2KB, maka mikrokontroler akan mengakses memori eksternal.

EEMWE

Saat berlogika “1”, bit EEMWE membolehkan penulisan data ke EEPROM. Instruksi MOVX digunakan untuk penulisan/penyimpanan data. Setelah proses penulisan selesai, bit ini harus di-nol-kan secara manual dalam program.

EELD

Saat berlogika “1”, bit EELD ini membolehkan lebih dari 32 byte dituliskan bersamaan. Jika bit-nya di-set, instruksi MOVX tidak akan menginisialisasi pemrograman EEPROM, hanya sekedar menyimpan data ke buffer data dari memori EEPROM. Sebelum menuliskan data terakhir, bit ini harus di-nol-kan dan setelah instruksi MOVX, seluruh isi buffer secara otomatis dituliskan ke EEPROM selama 4 milidetik.

Categories
Mikrokontroler Pembelajaran

Akses Port Paralel (Menggunakan Visual BASIC 6.0)

Dibutuhkan suatu cara agar VB bisa melakukan akses perangkat keras. Salah satunya dengan pustaka io.dll, yang bisa didownload dari http://www.geekhideout.com/iodll.shtml (juga dengan
dokumentasi lengkap, bagi programmer Delphi silahkan jenguk website tersebut) secara gratis, yang harus disimpan atau ditempatkan pada folder <drive>:/windows/system32 pada komputer
Anda.

Cara penggunaannya sangat mudah, Pertama definisikan terlebih dahulu fungsi dan prosedur untuk akses masukan maupun keluaran perangkat keras pada bagian modul khusus VB sebagai berikut: