150 likes | 455 Views
NEXT. Program bidang Instrumentasi dan Timbangan Cerdas. Bidang Instrumentasi : sejauh ini ditunjukkan bagaimana macam-macam fungsi sistem Mikroprosesor. Sekarang ditunjukkan beberapa jenis instrumentasi berdasarkan Mikroprosesor, dalam bentuk timbangan cerdas dimana faktor
E N D
NEXT Program bidang Instrumentasi dan Timbangan Cerdas Bidang Instrumentasi : sejauh ini ditunjukkan bagaimana macam-macam fungsi sistem Mikroprosesor. Sekarang ditunjukkan beberapa jenis instrumentasi berdasarkan Mikroprosesor, dalam bentuk timbangan cerdas dimana faktor ketelitiannya sangat tinggi seperti yang terdapat di toko-toko besar atau swalayan.
NEXT Diagram blok dari timbangan cerdas
NEXT Gambar di atas menunjukkan diagram blok dari timbangan cerdas. Load Cell mengkonversi berat yang terpasang, contohnya sebuah beban pejal untuk menghasilkan sinyal listrik kecil yang diinginkan dikuatkan oleh amplifier dan diubah oleh konverter analog to digital, nilai digital untuk dapat dibaca oleh Mikroprosesor dan dikirim ke penampil. Pengguna memasukkan harga per kilo ditampilkan ke layar. Ketika pengguna menekan tombol-tombol keyboard maka mikroprosesor mengalikan berat dengan harga per Lb, dan hasilnya ditampilkan di layar dengan waktu yang cukup lama untuk dibaca pemakai kemudian Mikroprosesor akan kembali membaca timbangan berat bila beban yang ditimbang belum diangkat. Agar beban merata di permukaan “load cell”, dipasangkan papan supaya benda yang ditimbang tidak jatuh. Load Cell mempunyai tingkat ketelitian 1 per 1000. Diperlihatkan pada gambar di bawah “load cell” terdiri empat resistor 3590 ohm yang dihubungkan dalam konvigurasi jembatan. Penguat tegangan stabil bila 10 volt dipasang pada bagian atas rangkaian jembatan pada keadaan tanpa beban. Pada cell output dari jembatan mempunyai tegangan yang sama sebesar 5 volt. Ketika beban dipasang pada rangkaian jembatan salah satu resistansi berubah lebih kecil dan ini menghasilkan perubahan yang sedikit pada output rangkaian jembatan.
NEXT Perubahan tegangan output maksimum untuk beban 10 kilogram seharga 2 mV per volt penguatan tegangan. Dengan penguatan 10 volt maksimum perubahannya menjadi 20 mV. Untuk menyatakan selisih sinyal kecil ini kami menggunakan LM363N16, perangkat ini berisi semua rangkaian gambar terakhir. Penguat loop tertutup dari penguat dapat diprogram dari harga 5, 100, dan 500 dengan menghubungkan pada pin 2, 3 dan 4 kita menyambungkan untuk menghasilkan penguatan dari 100 sampai 20 mV sinyal maksimum dari load cell yang akan memberikan tegangan maksimum 2 volt pada input pengubah analog to digital (input ADC). Tingkat ketelitian pembagi tegangan pada output menguat dibagi 2 sinyal ini (setengah digital). Oleh karena itu berat 10 kilogram menghasilkan tegangan output sebesar 1 volt. Pengukuran sederhana ini ditampilkan di layar setelah dibaca Mikroprosesor. Kapasitor 0,1 μF antara pin 15 dan 16 mengurangi penguatan bandwidth sekitar 7,5 Hz.
NEXT Diagram rangkaian untuk interface load cell dan A/D C untuk timbangan cerdas
NEXT Untuk mem-bypass noise berfrekuensi tinggi di atas 60 Hz ke ground. MC14433 A/D coverter dual slope yang biasa digunakan sebagai voltmeter digital 3,5 digit dan yang lainnya. Karena perubahan load cell secara perlahan-lahan (smute) untuk perubahan cepat tidak dapat dilakukan/dikehendaki. LM329 adalah sebagai dioda referensi 6,9 volt presisi yang dikuatkan oleh IC LM 308 menghasilkan tegangan 10 volt untuk “load cell” dan 2 volt untuk referensi ADC. Dengan referensi 2 volt dapat menghasilkan skala penuh pada ADC 2 volt. Alur pengubahan dan pengalian frekuensi untuk mengubah ditentukan oleh osilator internal dan R11 = 300KΩ memberikan frekuensi clock 66 kHz. Pengalian frekuensi 0,8 kHz dan memperoleh 4 kali konversi tiap detiknya, ketelitian konversi 0,05% untuk ± 1 cacahan (satu cacahan naik atau turun), di mana dapat dibandingkan keakuratan/ ketelitian dari load cell. Dengan kata lain, digital akhir dari berat yang ditampilkan dapat mungkin berhenti dengan 1 atau 2 cacahan. Seperti yang telah kita bicarakan sebelumnya, keluaran dari peubah (konverter) ini ada dalam bentuk pengali BCD.
NEXT Gambar berikut menunjukkan diagram alir untuk timbangan cerdas tersebut. Catatan, sebagai indikasi dengan kotak bergaris ganda dalam diagram alir. Umumnya bagian-bagian dari program ditulis sebagai prosedur. Keluaran dari ADC adalah bentuk perkalian BCD. Sebagaimana telah diuraikan dalam bagian pada slope converter interfacing. Oleh karena masing-masing strobe telah ditampung sampai ia bergerak tinggi (high), dan BCD untuk digital dapat terbaca.
NEXT Diagram alir program timbangan cerdas
NEXT Nilai BCD yang terbaca dari konverter disimpan dalam 4 memori. Nilai ini ditampilkan ke layar dengan satu prosedur dan dikirimkan ke alamat fileld (display dari SDK- 86 lokasi). Huruf “Lb” ditampilkan dalam data field. Setelah berat ditampilkan di layar, suatu pengecekan dilakukan dengan melihat jika ada tombol yang telah ditekan oleh user. Jika sebuah tombol ditekan, huruf “SP” yang mewakili harga jual, ditampilkan di alamat field. Kode-kode kunci yang dibaca dari 8279 seperti yang dimasukkan dan ditampilkan pada layar data field. Kunci-kunci (tombol-tombol) dapat ditekan sampai sesuai harga yang diinginkan ke per-Lb-nya yang terlihat di layar. Harga per-Lb yang dimasukkan pemakai dicocokkan dalam urutan dari lokasi memori. Jika bukan angka yang ditekan maka dianggap masukan harga per kilogram dan program berjalan terus menghitung harga total. Perhitungan harga meliputi perkalian berat dalam bentuk BCD kali harga per-Lb dalam bentuk BCD. Hal ini tidak mudah dilakukan perkalian BCD kali BCD secara langsung, maka kita mengambil jalan lain untuk mendapatkannya. Kedua berat dan harga per-Lb diubah ke biner. Kedua bilangan biner tersebut dikalikan. Hasil perkalian bilangan biner di konversi ke BCD, siklus berhenti di harga sent, dan ditampilkan di data field. Huruf “Pr” ditampilkan dalam field alamat. Setelah beberapa detik program kembali membaca dan menampilkan berat dan seterusnya.
NEXT Gambar di bawah menunjukkan program lengkap untuk Mikroprosesor berbasis timbangan. Hal ini penting bagi anda untuk tidak terjadi tumpang tindih dengan sebuah program perkalian berulang seperti ini. Nomor dimasukkan dan diletakkan pada penyangga SELL_PRICE ditampilkan pada digit kanan dari field data. Program dikumpulkan pada status register 8279 sampai tombol yang lainnya ditekan dideteksi. Jika tombol yang ditekan angka kemudian kode-kode untuk nomor yang dimasukkan akan diurutkan satu tempat dalam penyangga untuk berat ruangan untuk nomor baru. Nomor baru tersebut kemudian diletakkan pada blok pertama pada penyangga kemudian akan ditampilkan pada digit tertinggi pada layar penampil. Dengan kata lain nomor yang dimasukkan secara terus-menerus diurutkan dari kiri sebagai nomor baru yang dimasukkan. Jika terjadi kesalahan operator dapat dimasukkan “0” diikuti dengan harga yang benar per pound. Jika tombol yang ditekan bukan angka maka hal ini sinyal tersebut ditampilkan harga per pound adalah benar, dan total harga sekarang dihitung. Sebelum berat dan harga per pound dapat dikalikan, keduanya harus diletakkan pada bentuk BCD dan diubah ke binary. Prosedur “pack” mengubah empat pengurai digit BCD dalam titik penyangga memory oleh BX ke 4-digit hasil paket AX.
NEXT Prosedur ini memudahkan beberapa masking dan memindahkan nibbles. Catat bagaimana proses dipermudah oleh kemampuan pada putaran isi dari lokasi memory. Perubahan dari berat paket dan harga paket per pound diselesaikan oleh prosedur “CONVERT2BIN”. Untuk 8086 instruksi single “MUL” adalah pengali 16x16 binary menghasilkan total harga. Prosesor yang terbaru membutuhkan suatu prosedur “messy” untuk melaksanakannya. Setelah perkalian harga totalnya dalam bentuk binary. Dimana tidak diperlukan untuk prosedur tampilan “BINCUT” prosedur digunakan untuk merubah harga total binary ke bentuk paket BCD. Inilah prosedur bekerjanya. Dalam angka binary, setiap posisi bit ditampilkan dalam kekuatan dari 2. Suatu angka binary 8 bit. Sebagai contoh dapat ditampilkan sebagai berikut: B7 x 27 + b6 x 26 + b5 x 25 + b4 x 24 + b3 x 23 + b2 x 22 + b1 x 21 + b0 Jika direpresentasikan sebagai angka binary = ((((((2b7 + b6)2 + b5)2 + b4)2 + b3)2 + b2)2 +b1)2 + b0 Dimana b7 melalui b0 adalah nilai dari bit-bit binary. Jika kita memulai dengan angka binary dan melaksanakan setiap operasi pada looping utama pada BCD dengan bantuan instruksi DAA, hasilnya adalah angka BCD yang ekivalen dengan angka binary aslinya.
NEXT Dalam proses ini gambar di bawah menghasilkan dua digit BCD dalam waktu yang bersamaan dengan memanggil subprosedur CNVTI. Gambar dibawah memperlihatkan diagram alir operasi CNVTI. Prinsipnya operasi ini adalah untuk menyusun angka 24 bit, satu dikiri MSB mengisi carry pada flip-flop kemudian menambah bit ini untuk hasil keduanya. Kita gunakan instruksi DAA untuk mengambil penambahan dalam format BCD. Jika DAA menghasilkan sebuah carry kita tambahkan carry ini kedalam penggeser angka 24 bit dalam DL dan BX. Supaya bit tersebut digeser ke yang lebih tinggi. Setelah selesai menjalankan CNVT1 (menjalankan CNVT2), DL dan BX akan tertinggal dengan sebuah angka biner yang sama dengan dikurangi oleh nilai dari kedua digit BCD yang dihasilkan. Anda dapat mengambil prosedur ini untuk bekerja dengan angka-angka yang berbeda dari bit-bit dengan kemudahan memanggil CNVT1 beberapa kali, dengan mengatur perhitungan beban ke dalam DH lebih dari satu angka bit binary dalam satu angka yang akan dikonversi. Perhitungan ini menjadi lebih besar sebab pengurangan dalam loop tersebut. Prosedur pengaturan temperatur prosedurnya dalam gambar dibawah ini menggambarkan contoh lain dari konversi.
NEXT Digit dua terakhir dari nilai BCD untuk total harga yang dikembalikan dengan BINCVT dalam BL mewakili kesepuluh dan ke seratus sen. Jika nilai dari dua digit BCD ini lebih besar dari 49H. Maka carry menghasilkan keluaran dengan membandingkan instruksi dan dua digit BCD lebih tinggi. Dalam BH ditambahkan ke AL hal ini harus terjadi dalam AL sebab instruksi DAA, digunakan untuk menjaga hasil dalam format BCD, hanya dilakukan pada sebuah operand dalam AL. Beberapa carry dari dua digit BCD dialirkan pada dua digit diatasnya, dari hasil dalam DL. Setelah putaran ini berakhir, BCD yang dihasilkan untuk total harga tertinggal dalam AX. Dalam prosedur penampil untuk dapat menampilkan harga, itu harus diubah pada unpacked bentuk BCD dan disimpan pada tempat kemungkinan lokasi memori. Yang lain “mask dan anggota nibbles” prosedur dipanggil EXPAND. Prosedur DISPLAY kemudian dipanggil untuk menampilkan total harga pada data field. Prosedur penampil dipanggil kembali untuk menampilkan huruf Pr pada field alamat. Akhirnya, setelah perlambatan beberapa detik untuk memberikan waktu operator untuk membaca harga, eksekusi balik sampai posisi “dumb scale” program dan star lebih.
NEXT Pertanyaannya bahwa kemungkinan terjadi untuk anda saat membaca program yang panjang seperti itu, “Bagaimana saudara memutuskan mana bagian program untuk diambil dalam garis besar, dan mana bagian untuk ditulis sebagai prosedur?”. Tidak ada persetujuan umum dalam jawaban pertanyaan ini. Petunjuk umum, kita ikuti untuk menulis bagian program sebagai prosedur. Jika ini akan digunakan lebih dari satu dalam sebuah program, ini dapat digunakan kembali (bisa digunakan pada perintah program) ini terlalu panjang (lebih dari satu halaman). Bahwa itu pemotongan aliran program utama atau itu adalah bagian utama yang tidak tergantung (independen). Karena kerugian terlalu banyak menggunakan prosedur adalah waktu dan overhead yang diperlukan untuk pemanggilan masing-masing prosedur. Seperti yang anda tulis pada banyak program, anda akan sampai pada keseimbangan bahwa perasaan mudah pada anda. Pada bagian berikutnya, diperlihatkan contoh program panjang lainnya yang telah ditulis pada modul-modul yang dapat dengan mudah diperluas. Contoh ini seharusnya menolong lebih jauh untuk melihat kapan dan bagaimana menggunakan prosedur.
NEXT Program bahasa assembly untuk timbangan cerdas