Categories
Mikrokontroler

Mikrokontroler: Arsitektur Von-Neumann vs. Harvard

Semua mikrokontroler menggunakan satu diantara dua model rancangan yang dinamakan arsitektur Harvard dan von-Neumann. Berikut secara singkat, perbedaan keduanya dilihat dari pertukaran data antara CPU dan memori.

Arsitektur von-Neumann

Mikrokontroler yang menggunakan arsitektur ini hanya memiliki satu blok memori dan satu bus data 8-bit. Karena pertukaran data semuanya menggunakan 8 jalur ini, bus akan overload dan komunikasi menjadi sangat lambat dan tidak efisien. Sebaliknya CPU dapat membaca instruksi atau baca/tulis data dari/ke memori. Keduanya tidak dapat terjadi secara bersamaan karena data dan instruksi menggunakan sistem bus yang sama. Misalnya, jika sebuah baris program memerintahkan register memori RAM dengan nama “SS” harus dinaikkan satu (misalnya menggunakan instruksi: inc SS), maka mikrokontroler akan melakukan:

  1. Baca bagian dari instruksi program yang menyatakan APA yang harus dilakukan (dalam kasus ini adalah instruksi “inc” untuk perintah kenaikkan);
  2. Baca lebih lanjut dari instruksi ini yang menyatakan data YANG MANA yang akan dinaikkan (alam kasus ini adalah register “SS”);
  3. Setelah dinaikkan, isi dari register ini harus dituliskan kembali ke register yang sebelumnya telah dibaca (alamat register “SS”).

Bus data yang sama digunakan untuk keseluruhan operasi ini…

Arsitektur Harvard

Mikrokontroler yang menggunakan arsitektur ini memiliki dua bus yang berbeda. Satu bus 8-bit dan menghubungkan CPU ke RAM. Yang lain terdiri dari beberapa jalur (12, 14 atau 16) dan menghubungkan CPU ke ROM. Dengan demikian, CPU dapat membaca instruksi dan mengakses memori data pada saat yang bersamaan. Karena semua register memori RAM lebarnya 8-bit, semua pertukaran data dalam mikrokontroler menggunakan format yang sama, sehingga selama eksekusi penulisan data, hanya 8-bit yang diperhatikan. Dengan kata lain, yang perlu Anda perhatikan saat merancang program adalah lebar data yang bisa dipertukarkan atau diproses hanya selebar 8-bit, ya hanya selebar 8-bit saja.

Program yang Anda buat untuk beberapa mikrokontroler ini akan tersimpan di dalam ROM internal (Flash ROM) setelah dilakukan kompilasi ke bahasa mesin. Lokasi memori ini dinyatakan dalam 12, 14 atau 16-bit. Sebagian dari bit, 4, 6 atau 8-bit digunakan sebagai instruksinya sendiri dan diikuti dengan data 8-bit.

Kelebihan-kelebihan:

  • Semua data di dalam program selebar 1 byte (8-bit). Karena bus data yang digunakan dalam pembacaa program memiliki beberapa jalur (12, 14 atau 16), instruksi dan data dapat dibaca dibaca sekaligus. Dengan demikian, semua instruksi dapat dieksekusi hanya dengan satu siklus instruksi, kecuali instruksi lompat (jump) yang dieksekusi dalam dua siklus.
  • Kenyataan bahwa program (ROM) dan data sementara (RAM) terpisah, CPU dapat mengeksekusi dua instruksi sekaligus. Gampangnya, selama proses pembacaan dan penulisan RAM (akhir dari suatu instruksi), instruksi berikutnya dibaca melalui bus yang lain.
  • Jika menggunakan mikrokontrole menggunakan arsitektur Von-Neumann kita tidak bisa tahu seberapa banyak memori yang dibutuhkan oleh beberapa instruksi. Pada dasarnya, masing-masing instruksi program membutuhkan dua lokasi memori (satu mengandung instruksi APA yang harus dilakukan, sedangkan sisanya mengandung informasi data YANG MANA akan diproses).

Pada mikrokontroler dengan arsitektur Harvard, bus program biasanya lebih dari 1 byte, yang membolehkan masing-masing word mengandung instruksi dan data, dengan kata lain satu word – satu instruksi.

Ingin belajar mikrokontroler? Mengapa tidak baca saja buku saya “Belajar Mikrokontroler AT89C51/52/55: Teori dan Aplikasi Edisi 2“, Terbitan CV. Gava Media – Best Seller! (informasi lebih lanjut).

Semoga bermnafaat!

Categories
Mikrokontroler

Bagaimana mikrokontroler bekerja?

Anda sudah tahu sendiri, begitu banyak macam mikrokontroler yang dijual di pasaran, begitu juga berbagai program yang dirancang untuk mikrokontroler-mikrokonrtoler tersebut, mereka punya kesamaan. Artinya, jika Anda belajar salah satu saja dari mikrokontroler-mikrokontroler itu dengan baik, Anda juga bisa memahami yang lainnya bahkan semuanya. Skenarionya sama…

  1. Catu daya masih OFF… mikrokontroler sudah terprogram, segala sesuatu pada tempatnya, tidak ada indikasi apa yang akan terjadi…
  2. Catu daya kemudian dihidupkan, ON! Dan segala sesuatu terjadi dalam kecepatan yang tinggi! Osilator kristal mulai bekerja, selama dilakukan persiapan awal, kapasitor2 mulai diisi, milidetik pertama mulai dijalankan;
  3. Tegangan mencapai titik penuh dan frekuensi osilator sudah stabil. Bit-bit mulai dituliskan ke register (SFR pada AT89), yang menunjukkan kondisi dari semua periferal dan semua pin-pin dikonfigurasi sebagai luaran. Segala sesuatu dalam kondisi harmonis dengan ritme pulsa dan seluruh kegiatan elektronis mulai bekerja, dalam hitungan mikro dan nanodetik;
  4. Pencacah program (PC – Program Counter) di-reset ke alamat no pada memori program. Instruksi pada alamat tersebut dikirim ke penerjemah instruksi (instruction decoder) dan segera dijalankan;
  5. Nilai PC dinaikkan sebesar 1 dan proses diulangi seperti langkah-4, sekian juta kali per detik…

Ingin belajar mikrokontroler? Mengapa tidak baca saja buku saya “Belajar Mikrokontroler AT89C51/52/55: Teori dan Aplikasi, Edisi 2“, Terbitan CV. Gava Media – Best Seller! (informasi lebih lanjut)

Semoga bermanfaat!

Categories
Mikrokontroler

Mikrokontroler versus Mikroprosesor

Sebuah mikrokontroler berbeda dengan sebuah mikroprosesor dalam beberapa hal. Pertama dan yang terpenting adalah fungsionalitasnya. Agar mikroprosesor dapat bekerja, masih dibutuhkan komponen lain seperti memori. Walaupun mikroprosesor dianggap sebagai piranti canggih untuk komputasi, titik kelemahannya ada pada tidak dirancangnya kemampuan komunikasi (antarmuka) dengan piranti-piranti periferal (memori, I/O da lain sebagainya) secara khusus.

Gampangnya, untuk melakukan komunikasi dengan piranti periferal, mikroprosesor membutuhkan rangkaian khusus eksternal. Intinya, mikroprosesor hanya sebagai otak-nya komputer (seperti otak dalam kepala kita, kepala, tangan, kaki merupakan hal yang lain). Ini awalnya dan hingga sampai sekarang ini, tetap seperti itu…

Gambar Mikrokontroler versus Mikroprosesor

Mikrokontroler dirancang sebagai satu kesatuan utuh gambar tersebut. Tidak memerlukan komponen-komponen eksternal seperti ditunjukkan dalam gabar untuk perancangan aplikasi, dengan demikian waktu dan biaya bisa dihemat…

Tidak seperti sistem komputer, yang mampu menangani berbagai macam program aplikasi (misalnya pengolah kata, pengolah angka dan lain sebagainya), mikrokontroler hanya bisa digunakan untuk suatu aplikasi tertentu saja (hanya satu program saja yang bisa disimpan). Perbedaan lainnya terletak pada perbandingan RAM dan ROM. Pada sistem komputer perbandingan RAM dan ROM-nya besar, artinya program-program pengguna disimpan dalam ruang RAM yang relatif besar, sedangkan rutin-rutin antarmuka perangkat keras disimpan dalam ruang ROM yang kecil. Sedangkan pada mikrokontroler, perbandingan ROM dan RAM-nya yang besar, artinya program kontrol disimpan dalam ROM (bisa Masked ROM atau Flash PEROM) yang ukurannya relatif lebih besar, sedangkan RAM digunakan sebagai tempat penyimpan sementara, termasuk register-register yang digunakan pada mikrokontroler yang bersangkutan.

Ingin belajar mikrokontroler? Mengapa tidak baca saja buku saya “Belajar Mikrokontroler AT89C51/52/55: Teori dan Aplikasi Edisi 2“, Terbitan CV. Gava Media – Best Seller! (informasi lebih lanjut)

Semoga bermanfaat!

Categories
Mikrokontroler

AT89: Sistem Akuisisi Data dan Pemantauan

Kebutuhan-kebutuhan…

Perangkat keras

  • AT89C51 atau AT89S51, sebagai mikrokontroler-nya;
  • LM35, sebagai sensor suhu-nya;
  • ADC0808, sebagai ADC-nya, dan
  • MAX232, sebagai konverter RS232-TTL

Perangkat Lunak

  • C-Compiler, program mikrokontroler ditulis dalam bahasa C;
  • Visual Basic 6.0, antarmuka komputer menggunakan Visual Basic 6.0

Gambar Rangkaian

Gambar Antatmuka Komputer

Listing Program & Keterangan

  • Semua bisa diunduh disini (termasuk program komputer, gbr rangkaian dan lain-lain).
  • Piranti ini merupakan sistem pemantauan dan pengendalian suhu (melalui ON/OFF pemanas).
  • Pada rangkaian mikrokontroler telah dihubungkan 4 dari maksimum 8 (atau bahkan lebih dengan modifikasi program) sensor suhu. Nilai-nilai dari semua sensor tersebut dikirim ke komputer melalui port serial (informasi mengenai aplikasi port serial bisa dibaca disini). Ini adalah tugas utama dari mikrokontroler AT89, dimana programnya ditulis dalam Bahasa C untuk mikrokontroler seri 51.
  • Program komputer, yang ditulis dalam Visual Basic 6.0, digunakan untuk menerima nilai suhu tersebut dan menampilkannya melalui komputer, sekaligus dapat menyimpan data-data tersebut ke basis data “daq.mdb” (format Microsoft Access). Kita bisa mengatur parameter-parameter misalnya set point, low limit dan high limit. Saat suhu yang terdeteksi pada suatu sensor naik di atas set point, maka pemanas yang terhubungkan (berkaitan dengan sensor yang bersangkutan) akan dimatikan (OFF), ON jika kondisi sebaliknya. High limit dan Low Limit digunakan untuk alarm, jika suhu diatas High Limit atau suhu dibawah Low Limit, maka alarm akan ON.
  • Intinya:
    • Mikrokontroler hanya mengirim data-data suhu saat diminta dan melakukan ON/OFF heater sesuai perintah dari komputer.
    • Komputer menerima data, kemudian melakukan interpretasi data (berkaitan dengan set point, low limit dan high limit) dan memberikan perintah ON/OFF pemanas ke mikrokontroler sesuai dengan interpretasi yang dihasilkan.

Sumber

  • Abbas Raza, email: jgen_17@yahoo.com

Ada komentar? Pertanyaan? Silahkan melalui form berikut atau email ke agfi@ugm.ac.id, terima kasih…

Categories
Mikrokontroler

Komunikasi serial menggunakan uC AT89

Kita tahu port serial masih digunakan hingga saat ini, walaupun beberapa peralatan komputer sudah menghilangkan port ini, namun kita masih bisa membeli (atau pinjem juga boleh, he he he) alat dan/atau perangkat lunak usb2serial, sehingga komunikasi via port serial masih tetap bisa kita lakukan.

Selain untuk kebutuhan komunikasi, port serial atau port RS232 bisa digunakan untuk kebutuhan pengontrolan, nah artikel kali ini saya akan membahas tentang rangkaian dan contoh program dalam BASIC (BASCOM51) port serial untuk kontrol lampu LED, dan tentunya bisa Anda kembangkan untuk aplikasi-aplikasi lainnya, seperti komunikasi dengan HP, sehingga bisa digunakan untuk kontrol jarak jauh dan lain sebagainya…

Baiklah, berikut ini adalah gambar rangkaian minimal yang akan kita gunakan untuk eksperimen, cukup sederhana, tapi khasiatnya… he he he…

Okey, ceritanya begini… Port serial akan kita gunakan untuk mengontrol pola hidup 8 LED yang kita hubungkan ke PORT1 dan pemantauan tombol-tekan di PORT3, perintah-perintah yang digunakan sebagai berikut:

  • 01 : menghidupkan LED di Port1.0
  • 11 : menghidupkan LED di Port1.1
  • 21 : menghidupkan LED di Port1.2
  • 31 : menghidupkan LED di Port1.3
  • 41 : menghidupkan LED di Port1.4
  • 51 : menghidupkan LED di Port1.5
  • 61 : menghidupkan LED di Port1.6
  • 71 : menghidupkan LED di Port1.7
  • 00 : mematikan LED di Port1.0
  • 10 : mematikan LED di Port1.1
  • 20 : mematikan LED di Port1.2
  • 30 : mematikan LED di Port1.3
  • 40 : mematikan LED di Port1.4
  • 50 : mematikan LED di Port1.5
  • 60 : mematikan LED di Port1.6
  • 70 : mematikan LED di Port1.7
  • id : menampilkan kalimat “Made by A.E.P 2008”
  • ba : baca status semua tombol pushbutton di P3
  • b2 : baca status tombol pushbutton di P3.2
  • b2 : baca status tombol pushbutton di P3.3
  • b2 : baca status tombol pushbutton di P3.4
  • b2 : baca status tombol pushbutton di P3.5
  • b2 : baca status tombol pushbutton di P3.6
  • b2 : baca status tombol pushbutton di P3.7

Catatan:

  • Tombol di P3.0 dan P3.1 tidak digunakan karena sebagai jalur komunikasi serial, jika tetap dibaca akan menimbulkan kesalahan atau error…

Kemudian listing program menggunakan BASIC-nya BASCOM51 sebagai berikut…

$regfile = "89c55wd.dat"     ' pustaka untuk AT89c55
$crystal = 11059200          ' gunakan kristal 12 MHz
$baud = 9600

Dim S As String * 2
Do
   Input S
   Select Case S
      Case "01" : P1.0 = 0
      Case "11" : P1.1 = 0
      Case "21" : P1.2 = 0
      Case "31" : P1.3 = 0
      Case "41" : P1.4 = 0
      Case "51" : P1.5 = 0
      Case "61" : P1.6 = 0
      Case "71" : P1.7 = 0
      Case "00" : P1.0 = 1
      Case "10" : P1.1 = 1
      Case "20" : P1.2 = 1
      Case "30" : P1.3 = 1
      Case "40" : P1.4 = 1
      Case "50" : P1.5 = 1
      Case "60" : P1.6 = 1
      Case "70" : P1.7 = 1
      Case "b2" : Print P3.2
      Case "b3" : Print P3.3
      Case "b4" : Print P3.4
      Case "b5" : Print P3.5
      Case "b6" : Print P3.6
      Case "b7" : Print P3.7
      Case "ba" : Print P3
      Case "id" : Print "Made by A.E.P 2008"
   Case Else
      Print "er"
   End Select
Loop

Keterangan:

  • Program diawali dengan pernyataan “$regfile” yang digunakan untuk mendefinisikan uC yang digunakan, dilanjutkan dengan “$crystal” yang menyatakan frekuensi kristal yang digunakan, $baud untuk menentukan kecepatan komunikasi serial dalam bit per second atau bps;
  • inti dari program ini ada dua, penerimaan data dan pemrosesan data yang diterima. Yang pertama dilakukan melalui pernyataan “Input s” (kondisi menunggu masukan dari terminal komputer – komunikasi serial) dan yang Kedua melalui pernyataan “Select Case S” hingga “End Select“;
  • Penerjemahan protokol atau aturan komunikasi melalui pernyataan “Select Case S“, misalnya untuk perintah “01” diterjemahkan sebagai “Case “01” : P1.0=1” dan seterusnya, selain itu (dengan pernyataan “else case” akan dikirimkan pesan “er”, artinya ada error atau perintah tidak dikenal;
  • Percobaan dapat dilakukan dengan menghubungkan board uC ke port serial menggunakan kabel serial bersilang, maksudnya dilakukan pasangan antara uC dan PC sebagai berikut: Gnd – Gnd, Tx(komputer) – Rx(mikrokontroler) dan Tx(komputer) – Rx(mikrokontroler);
  • Keterangan dan penjelasan lengkap mengenai komunikasi serial ini bisa Anda baca di buku saya “Belajar Mikrokontroler AT89C51/52/55: Teori dan Aplikasi“, Edisi 2.

Bagaimana mudah khan? kalo sudah begini, Anda bisa mengembangkan aplikasi ini untuk pembuatan program kontrol atau pemantauan menggunakan Visual Basic atau Delphi – Teknik Antarmuka PC.

Terima kasih, semoga bermanfaat… Komentar/pertanyaan silahkan…

Categories
Mikrokontroler

Pengendalian Motor Langkah Menggunakan LabVIEW 7.0 berbasis TCP/IP

PENDAHULUAN

Kemajuan dan perkembangan teknologi telah banyak memberi manfaat bagi kehidupan manusia. Kemajuan teknologi disebabkan karena semakin banyak tuntutan manusia yang harus dipenuhi untuk mendapatkan kemudahan-kemudahan, baik dalam hal kecepatan, ketepatan, maupun otomasi. Peralatan-peralatan dalam dunia industri beralih dari sitem manual menjadi sistem otomatis sekaligus memiliki kemampuan dapat dikendalikan dan diamati parameterparameternya dari jarak jauh. Salah satu aplikasi yang dibuat dalam penelitian ini adalah sistem pengendali motor langkah (berupa perangkat keras dan lunak) dari jarak jauh berbasis TCP/IP.

Motor langkah atau stepper motor, banyak digunakan dalam berbagai macam aplikasi, terutama aplikasi-aplikasi yang menuntut jumlah putaran tertentu dan tepat, biasanya berkaitan dengan posisi yang harus akurat. Suatu contoh dapat dijumpai pada alat kemudi cakram atau disk drive, untuk proses pembacaan dan/atau penulisan data ke/dari cakram, head baca-tulis ditempatkan pada tempat yang tepat di atas jalur atau track pada cakram (diskette), untuk keperluan tersebut, head dihubungkan dengan sebuah motor langkah.

Kecepatan motor langkah pada dasarnya ditentukan oleh kecepatan pemberian data pada komutatornya. Semakin cepat data yang diberikan maka akan semakin cepat pula putarannya. Kebanyakan kecepatan motor langkah dapat diatur dalam daerah frekuensi audio dan akan menghasilkan putaran yang cukup cepat.

(informasi selengkapnya bisa diunduh disini)

Categories
Mikrokontroler Pembelajaran

RISC vs. CISC

Cara sederhana untuk melihat kelebihan dan kelemahan dari arsitektur RISC (Reduced Instruction Set Computers) adalah dengan langsung membandingkannya dengan arsitektur pendahulunya yaitu CISC (Complex Instruction Set Computers).

Perkalian Dua Bilangan dalam Memori

Pada bagian kiri terlihat sebuah struktur memori (yang disederhanakan) suatu komputer secara umum. Memori tersebut terbagi menjadi beberapa lokasi yang diberi nomor 1 (baris): 1 (kolom) hingga 6:4. Unit eksekusi bertanggung-jawab untuk semua operasi komputasi. Namun, unit eksekusi hanya beroperasi untuk data-data yang sudah disimpan ke dalam salah satu dari 6 register (A, B, C, D, E atau F). Misalnya, kita akan melakukan perkalian (product) dua angka, satu disimpan di lokasi 2:3 sedangkan lainnya di lokasi 5:2, kemudian hasil perkalian tersebut dikembalikan lagi ke lokasi 2:3.

Pendekatan CISC

Tujuan utama dari arsitektur CISC adalah melaksanakan suatu perintah cukup dengan beberapa baris bahasa mesin sedikit mungkin. Hal ini bisa tercapai dengan cara membuat perangkat keras prosesor mampu memahami dan menjalankan beberapa rangkaian operasi. Untuk tujuan contoh kita kali ini, sebuah prosesor CISC sudah dilengkapi dengan sebuah instruksi khusus, yang kita beri nama MULT. Saat dijalankan, instruksi akan membaca dua nilai dan menyimpannya ke 2 register yag berbeda, melakukan perkalian operan di unit eksekusi dan kemudian mengambalikan lagi hasilnya ke register yang benar. Jadi instruksi-nya cukup satu saja…

MULT 2:3, 5:2

MULT dalam hal ini lebih dikenal sebagai “complex instruction”, atau instruksi yang kompleks. Bekerja secara langsung melalui memori komputer dan tidak memerlukan instruksi lain seperti fungsi baca maupun menyimpan.

Satu kelebihan dari sistem ini adalah kompailer hanya menerjemahkan instruksi-instruksi bahasa tingkat-tinggi ke dalam sebuah bahasa mesin. Karena panjang kode instruksi relatif pendek, hanya sedikit saja dari RAM yang digunakan untuk menyimpan instruksi-instruksi tersebut.

Pendekatan RISC

Prosesor RISC hanya menggunakan instruksi-instruksi sederhana yang bisa dieksekusi dalam satu siklus. Dengan demikian, instruksi ‘MULT’ sebagaimana dijelaskan sebelumnya dibagi menjadi tiga instruksi yang berbeda, yaitu “LOAD”, yang digunakan untuk memindahkan data dari memori ke dalam register, “PROD”, yang digunakan untuk melakukan operasi produk (perkalian) dua operan yang berada di dalam register (bukan yang ada di memori) dan “STORE”, yang digunakan untuk memindahkan data dari register kembali ke memori. Berikut ini adalah urutan instruksi yang harus dieksekusi agar yang terjadi sama dengan instruksi “MULT” pada prosesor RISC (dalam 4 baris bahasa mesin):

LOAD A, 2:3
LOAD B, 5:2
PROD A, B
STORE 2:3, A

Awalnya memang kelihatan gak efisien iya khan? Hal ini dikarenakan semakin banyak baris instruksi, semakin banyak lokasi RAM yang dibutuhkan untuk menyimpan instruksi-instruksi tersebut. Kompailer juga harus melakukan konversi dari bahasa tingkat tinggi ke bentuk kode instruksi 4 baris tersebut.

CISC RISC
Penekanan pada
perangkat keras
Penekanan pada
perangkat lunak
Termasuk instruksi
kompleks multi-clock
Single-clock, hanya
sejumlah kecil instruksi
Memori-ke-memori:
“LOAD” dan “STORE”
saling bekerjasama
Register ke register:
“LOAD” dan “STORE”
adalah instruksi2 terpisah
Ukuran kode kecil,
kecepatan rendah
Ukuran kode besar,
kecepatan (relatif) tinggi
Transistor digunakan untuk
menyimpan instruksi2
kompleks
Transistor banyak dipakai
untuk register memori

Bagaimanapun juga, strategi pada RISC memberikan beberapa kelebihan. Karena masing-masing instruksi hanya membuthukan satu siklus detak untuk eksekusi, maka seluruh program (yang sudah dijelaskan sebelumnya) dapat dikerjakan setara dengan kecepatan dari eksekusi instruksi “MULT”. Secara perangkat keras, prosesor RISC tidak terlalu banyak membutuhkan transistor dibandingkan dengan CISC, sehingga menyisakan ruangan untuk register-register serbaguna (general purpose registers). Selain itu, karena semua instruksi dikerjakan dalam waktu yang sama (yaitu satu detak), maka dimungkinkan untuk melakukan pipelining.

Memisahkan instruksi “LOAD” dan “STORE” sesungguhnya mengurangi kerja yang harus dilakukan oleh prosesor. Pada CISC, setelah instruksi “MULT” dieksekusi, prosesor akan secara otomatis menghapus isi register, jika ada operan yang dibutuhkan lagi untuk operasi berikutnya, maka prosesor harus menyimpan-ulang data tersebut dari memori ke register. Sedangkan pada RISC, operan tetap berada dalam register hingga ada data lain yang disimpan ke dalam register yang bersangkutan.

Persamaan Unjuk-kerja (Performance)

Persamaan berikut biasa digunakan sebagai ukuran unjuk-kerja suatu komputer:

Pendekatan CISC bertujuan untuk meminimalkan jumlah instruksi per program, dengan cara mengorbankan kecepatan eksekusi sekian silus/detik. Sedangkan RISC bertolak belakang, tujuannya mengurangi jumlah siklus/detik setiap instruksi dibayar dengan bertambahnya jumlah instruksi per program.

Penghadang jalan (Roadblocks) RISC

Walaupun pemrosesan berbasis RISC memiliki beberapa kelebihan, dibutuhkan waktu kurang lebih 10 tahunan mendapatkan kedudukan di dunia komersil. Hal ini dikarenakan kurangnya dukungan perangkat lunak.

Walaupun Apple’s Power Macintosh menggunakan chip berbasis RISC dan Windows NT adalah kompatibel RISC, Windows 3.1 dan Windows 95 dirancang berdasarkan prosesor CISC. Banyak perusahaan segan untuk masuk ke dalam dunia teknologi RISC. Tanpa adanya ketertarikan komersil, pengembang prosesor RISC tidak akan mampu memproduksi chip RISC dalam jumlah besar sedemikian hingga harganya bisa kompetitif.

Kemerosotan juga disebabkan munculnya Intel, walaupun chip-chip CISC mereka semakin susah digunakan dan sulit dikembangkan, Intel memiliki sumberdaya untuk menjajagi dan melakukan berbagai macam pengembangan dan produksi prosesor-prosesor yang ampuh. Walaupun prosesor RISC lebih unggul dibanding Intel dalam beberapa area, perbedaan tersebut kurang kuat untuk mempengaruhi pembeli agar merubah teknologi yang digunakan.

Keunggulan RISC

Saat ini, hanya Intel x86 satu-satunya chip yang bertahan menggunakan arsitektur CISC. Hal ini terkait dengan adanya kemajuan teknologi komputer pada sektor lain. Harga RAM turun secara dramatis. Pada tahun 1977, DRAM ukuran 1MB berharga %5,000, sedangkan pada tahun 1994 harganya menjadi sekitar $6. Teknologi kompailer juga semakin canggih, dengan demikian RISC yang menggunakan RAM dan perkembangan perangkat lunak menjadi semakin banyak ditemukan.

Terjemahan bebas dari…

Categories
Mikrokontroler

Trik Tampilan Seven Segmen – si POLOS vs. si PENERJEMAH

Untuk menampilkan data-data melalui 7-segmen menggunakan mikrokontroler AT89 bisa dilakukan dalam 2 cara alternatif yang akan saya terangkan berikut ini, jika Anda pemula dalam mikrokontroler, ada baiknya Anda mengunduh ebook gratis saya mengenai pengenalan PLC dan mikrokontroler dan (sangat) disarankan untuk membaca (dengan cara membeli terlebih dahulu, he he he…) buku saya, informasinya ada disini!

Kita akan gunakan 7-segmen CA (Common Anode), dengan demikian untuk menyalakan perlu diberi logika 0, sedangkan konfigurasi 7-segmen sebagai berikut…

Baiklah rangkaian pertama si POLOS sebagai berikut…

sedangkan program dalam bahasa BASIC menggunakan BASCOM51 saya tampilkan berikut…

$regfile = "89c55wd.dat"
$crystal = 12000000
' urutan g,f,e,d,c,b,a masing-masing ke 6,5,4,3,2,1,0
' angka 1 = b,c         = &b11111001 = &h79
' angka 0 = a,b,c,d,e,f = &b11000000 = &hC0

Do
  P0 = &H79
  P2 = &HC0
  Wait 1
  P0 = &HC0
  P2 = &H79
  Wait 1
Loop
End

Keterangan:

  • $regfile digunakan untuk memberitahukan berkas uC yang digunakan, disini kita pake AT89C55 dengan fasilitas watchdog (at89c55wd.dat);
  • $crystal = 12000000, adalah pernyataan kristal yang kita gunakan adalah 12 MHz;
  • Karena urutan port sebagaimana ditulis dalam keterangan program, maka agar ditampilkan angka ‘1’ digunakan data &h79, sedangkan untuk angka ‘0’ digunakan data &hC0;
  • wait 1, artinya tunggu 1 detik, jika terlalu lama, Anda bisa gunakan waitms <angka>, dengan <angka> bisa Anda isi angka dalam satuan milidetik paling besar 255.

Hasilnya…

setelah 1 detik

Mudah khan… gampang kok belajar Mikrokontroler AT89, apalagi pake buku saya he he he….

Baiklah rangkaian yang kedua si PENERJEMAH

sedangkan contoh programnya…

$regfile = "89c55wd.dat"
$crystal = 12000000

Do
   P2 = &H10
   Wait 1
   P2 = &H01
   Wait 1
Loop
End

Hasilnya…

setelah 1 detik

Lo… kok data yang dikirim berbeda ya dengan yang pertama? Iya ya lah… lha wong sekarang antara uC dengan 7-segmen digunakan penerjemah BCD to 7-segmen kok (74LS47 yang cocok dengan 7-segmen CA, sedangkan 74LS48 cocok dengan 7-segmen CC (Common Cathode))… artinya jika kita kirim angka ‘0’ ke 74LS47, maka IC tersebut akan menerjemahkan data ‘0’ sebagai tampilan ‘0’ di 7-segmen, begitu seterusnya sampe angka ‘9’. Dan untungnya untuk 2×7-segmen hanya dibutuhkan 1 port aja… iya toh…

Mmm enak ya pake 74LS47 tinggal kirim angka-nya, gak pake penerjemahan manual kayak rangkaian yang pertama…. Enak apaan?! Lha wong harus dibayar mahal dengan beli IC 74LS47 dua biji loch…. he he he…

Anda bisa mengembangkan menjadi maksimal 4x2x7-segmen atau 8×7-segmen jika menggunakan 74LS47 (atau 74LS48), tapi tidak ada sisa satu port-pun, karena semua dipake untuk tampilan, kecuali Anda gunakan trik-trik khusus, misalnya, untuk pake 1 port bisa jadi 6x7segmen, gimana caranya? Ehm lain kali aja yach saya terangkan… Insya Alloh….

Hikmah:
“Semakin mudah implementasi pemrograman uC semakin mahal biaya-nya, karena rangkaiannya semakin rumit dan kompleks, demikian juga dengan kehidupan, semakin mudah implementasi hidup, semakin mahal biaya-nya” (AEP)

Ada komentar/pertanyaan, silahkan…

Categories
Mikrokontroler

Watchdog dengan BASCOM-51 atau BASCOM-AVR

Diterbitkan Nopember 2008, di-update 27 Januari 2010

Pewaktu watchdog merupakan piranti pewaktuan perangkat keras yang bisa memicu reset sistem pada saat program utama, karena ada beberapa keasalahan, seperti hang, mengabaikan layanan rutin ke watchdog (biasanya seperti pemberian pulsa secara rutin), atau gampangannya kalo Anda punya anjing atau kucing kemudian lupa memberikan makan, apa yang terjadi? Ya jegog atau ngeong khan?? Dalam hal ini, saat jegog atau ngeong, pewaktu watchdog akan mereset sistem. Intinya, mengembalikan sistem ke awal mula (kondisi normal) karena telah terjadi kesalahan atau hang tadi…

Watchdog pada keluarga AT89 (khususnya seri AT89S52 ke atas) terdiri dari sebuah pencacah 13-bit dan Watchdog Timer Reset (WDTRST). WDT atau pewaktu watchdog biasanya tidak (belum) diaktifkan. Untuk mengaktifkan WDT, pengguna harus menuliskan 0x1E dan 0xE1 secara berurutn ke register WDTRST (lokasi SFR alamat 0xA6). Saat WDT diaktifkan, nilainya akan selalu dinaikkan setiap siklus mesin selama osliator juga bekerja. Timeout pada WDT bergantung pada frekuensi kristal atau detak yang digunakan. Tidak ada jalan lain untuk menon-aktifkan WDT kecuali melalui RESET (baik reset secara perangkat keras atau reset karena WDT melimpah atau overflow). Pada saat WDT melimpah, maka akan menghasilkan luaran pulsa RESET HIGH pada pin RST.

Instruksi Watchdog pada BASCOM51/BASCOM-AVR

Sintaks:

START WATCHDOG ' untuk menjalankan pewaktu watchdog
STOP WATCHDOG  ' untuk menghentikan pewaktu watchdog
RESET WATCHDOG ' untuk mereset nilai pewaktu Watchdog

Catatan:

  • AT89S8252 memiliki pewaktu Watchdog internal.
  • Pewaktu watchdog adalah pewaktu yang bisa me-RESET mikrokontroler saat mencapai nilai tertentu.
  • Selama jalannya program, pewaktu ini harus di-reset (secara manual) sebelum mencapai nilai maksimum-nya. Hal ini untuk memastikan bahwa program berjalan dengan baik dan benar (kayak bahasa Indonesia aja ya…).
  • Saat program mengalami masalah (hang, crash) atau diam saja pada suatu kalang, maka tidak terjadi proses reset pewaktu Watchdog sehingga RESET sistem secara otomatis akan terjadi.

Anda perlu mengkonfigurasi waktu reset Watchdog dengan perintah…

CONFIG WATCHDOG = waktu

Waktu, yang dinyatakan dalam milidetik, jika watchdog tidak direset, akan menyebabkan limpahan (overflow) yang kemudian me-RESET sistem, nilainya antara lain: 16, 32, 64, 128, 256, 512, 1024 atau 2048

Contoh dan penjelasan

$regfile="89s8252.dat"
$crystal = 12000000
$baud = 2400

Config Watchdog = 2048           ' lakukan reset setelah 2048 milidetik
Start Watchdog                   ' jalankan pewaktu watchdog
Dim I As Word
For I = 1 To 10000
   Print I                         ' tampilkan nilai I
'  Reset Watchdog
'
' jika Anda perhatikan, perintah FOR-NEXT
' tidak akan selesai karena keburu di-RESET
' tetapi jika perintah Reset Watchdog diaktifkan...
' instruksi FOR-NEXT akan berjalan dengan normal,
' karena pewaktu WDT akan di-reset sebelum
' mencapai 2048 milidetik
Next
End

Semoga bermanfaat…

Categories
Mikrokontroler

Prototipe Alat Ukur Daya berbasis Mikrokontroler AT89

Konsumsi listrik untuk masyarakat yang sudah melebihi produksi listrik yang mampu diberikan PLN menyebabkan masyarakat harus melakukan penghematan listrik sebaik mungkin.

Untuk membantu penghematan tersebut, dibuat prototipe alat ukur daya berbasis Mikrokontroler AT89S52 yang mampu menginformasikan beban daya yang terpasang saat itu dan memberikan tanda peringatan jika daya terpasang melebihi 75 Watt. Alat ini bekerja pada tegangan 220 Volt dengan frekuensi jala-jala sekitar 60 Hz.

Alat ukur daya ini terlah berhasil digunakan untuk mengukur daya suatu beban terpasang yang merupakan lampu dengan merek Dop mulai dari 10 hingga 100 Watt. Faktor ralat alat ini terburuk sebesar 2% untuk lampu 10 Watt dan terbaik 0,44% untuk lampu 25 Watt.

(informasi selengkapnya bisa diunduh disini)