• Tidak ada hasil yang ditemukan

Akuisasi data dengan remote host AT89s51 melalui serial RS232

N/A
N/A
Protected

Academic year: 2021

Membagikan "Akuisasi data dengan remote host AT89s51 melalui serial RS232"

Copied!
8
0
0

Teks penuh

(1)

Akuisasi data dengan remote host AT89s51 melalui serial RS232

I. Tujuan

1. Mahasiswa mampu merealisasikan sebuah system data jarak jauh dengan remote host berbasis MCS51 yang terhubung pada pC melalui RS232.

2. Mahasiswa mampu merancang melalui ADC 0808 secara free running

II. Dasar Teori

Suatu perangkat lunak dan perangkat keras akuisisi data dapat merubah komputer PC menjadi suatu sistem akuisisi, pemroses (analisa) dan penampil data yang terpadu (Data Acquisition System). Melakukan pemrograman langsung pada tingkat register pada papan akuisisi data merupakan tingkat pemrograman yang paling sulit dalam pengembangan perangkat lunak akuisisi data. Dalam hal ini, Anda harus menentukan nilai biner yang tepat dan benar yang harus dituliskan pada register-register tersebut. Selain itu, bahasa pemrograman yang digunakan harus mampu melakukan pembacaan dan penulisan data dari atau ke papan akuisisi data yang terpasang pada komputer. Perangkat lunak akuisisi data dibagi menjadi dua macam: ( 1 ) Perangkat lunak aras-penggerak (driver-level) dan (2) Perangkat lu nak aras-aplikasi (application-level). Perangkat lunak aras-penggerak menyederhanakan pemrograman akuisisi data dengan cara menangani secara langsung pemrograman aras-rendah (low-level programing) dan memberikan Anda berbagai fungsi aras-tinggi (high-level functions) yang dapat dipanggil dalam bahasa pemrograman yang Anda gunakan.

Perencanaan sistem akuisisi data jarak jauh dengan remote host berbasis AT89s51 yang terhubung pada local host melalui serial RS 232 terdiri dari ADC0808 ini bekerja secara free running. Pada mode free running, ADC akan mengeluarkan data hasil pembacaan input secara otomatis dan berkelanjutan (continue). Pada mode ini pin INTR akan berlogika rendah setelah ADC selesai melakukan konversi, logika ini dihubungkan kepada masukan WR untuk memerintahkan ADC memulai konversi kembali.

Analog to Digital Converter adalah sebuah peralatan yang paling sering digunakan untuk melakukan pencuplikan data (data acquisition). Contoh mikrokontroller chip yang biasa digunakan sebagai ADC adalah ADC0809. Chip ADC0809 adalah konverter analog-ke-digital, turunan langsung dari keluarga seri ADC800 buatan National Semiconductor. Dia bekerja pada tegangan 5 Volts dan memiliki resolusi 8-bit. Selain resolusi, waktu konversi (convertion time) menjadi parameter yang sangat penting pula. Convertion Time ini menunjukkan berapa lama waktu yang dibutuhkan oleh ADC untuk melakukan 1 kali

(2)

konversi. Pada ADC0809 Convertion Time ditentukan oleh nilai clock yang ad pada pin-pin CLK R dan CLK IN, dan paling cepat adalah 110uS.

Langkah-langkah yang dilakukan untuk konversi pada chip ADC0809 adalah:

1. Buatlah CS = 0 dan kirim pulsa rendah-ke-tinggi pada pin WR untuk segera melakukan konversi.

2. Selalu memonitor pin INTR. Jika INTR rendah, maka konversi selesai, dan kita dapat segera ke langkah berikutnya. Namun jika INTR masih tinggi, maka kita harus menunggu sampai dia rendah.

3. Setelah INTR rendah, maka pastikan CS=0 dan kirim pulsa tinggi-ke-rendah pada pin RD. Sehingga kita dapat segera membaca hasil konversi pada D0-D7. Sedang

Timming Diagram adalah seperti pada Gambar di bawah ini:

Ada 2 macam cara komunikasi data serial yaitu Sinkron dan Asinkron. Pada komunikasi data serial sinkron, clock dikirimkan bersama sama dengan data serial, tetapi clock tersebut dibangkitkan sendiri – sendiri baik pada sisi pengirim maupun penerima. Sedangkan pada komunikasi serial asinkron tidak diperlukan clock karena data dikirimkan dengan kecepatan tertentu yang sama baik pada pengirim / penerima. Pada komunikasi asinkron, kecepatan pengiriman data ( atau yang sering disebut dengan Baud Rate ) dan fase clock pada sisi transmitter dan sisi receiver harus sinkron.

Kecepatan transmisi (baud rate) dapat dipilih bebas dalam rentang tertentu.Baud rate yang umum dipakai adalah 110, 135, 150, 300, 600, 1200, 2400, dan 9600

(bit/perdertik).Dalam komunikasi data serial, baud rate dari kedua alat yang berhubungan harus diatur pada kecepatan yang sama. Selanjutnya harus ditentukan panjang data (6,7 atau 8 bit), paritas (genap, ganjil, atau tanpa paritas), dan jumlah bit “Stop” (1, 1 ½ , atau 2 bit).

Baud rate pada mode 0 adalah tertentu: pada mode 0, Baud Rate = 1/12 x Frekuensi Osilator. Baud rate pada mode 2 bergantung pada nilai bit SMOD pada SFR PCON. Jika SMOD = 0, baud rate adalah 1/64 frekuensi osilator. Jika SMOD=1, baud rate adalah 1/32 frekuensi osilator. Penentuan baud rate mode 2 adalah sebagai berikut:

(3)

Sedangkan baud rate pada mode 1 dan 3 ditentukan oleh nilai laju overflow dari Timer 1.Menggunakan Timer 1 untuk membangkitkan Baud Rate .Ketika timer 1 digunakan untuk membangkitkan clock baud rate, baud rate pada mode 1 dan 3 adalah ditentukan oleh laju overflow timer 1 dan nilai dari SMOD. Penentuan baud rate untuk mode 1 dan 3 adalah sebagai berikut:

Interupsi timer 1 harus disable pada aplikasi ini. Pada kebanyakan aplikasi, timer ini dioperasikan sebagai timer, dengan mode auto reload mode 2. Pada kasus ini baud rate diberikan dengan rumus sebagai berikut:

Gambar blok diagram sistem

III. Peralatan Yang Digunakan

 Modul MCS51

 Modul ADC

 Downloader

 1 set PC

(4)

IV. Setting Percobaan

V. Prosedur Percobaan :

1. Siapkan dan periksa kelengkapan modul MCS-51 dan modul ADC

2. Rangkai port-port ADC ke MCS-51, dan memasang jumper-jumper pada ADC dan MCS-51 seperti pada setting percobaan lalu menghubungkan dengan supply 5 volt 3. Set baud rate dengan nilai 2400 bps dan set parity

4. Pada device manager aturlah nomor port serial missal untuk mengatur com1

5. Set hyperterminal ke port yang ada dan untuk membuka hyperterminal tersebut,pilih menu accesosories  communication  pilih hyperterminal (hterm.exe)

6. Pilih menu properties,kemudian ASCII setup kemudian pilih echo character as type 7. Download program melalui SPI

8. Amati dan tulis hasilnya 9. Buat analisa dan kesimpulan

VI. Hasil Percobaan :

Jika password yang dimasukan benar pada hyperterminal tampilannya adalah sebagai

berikut :

(5)

Disini paswordnya adalah huruf “a” atau “A” jadi jika password yang dimasukan adalah huruf selain itu maka pada hyperterminal tidak akan muncul apa-apa.

Setelah kita memilih sensor,misalnya sensor ke 4,maka tampilannya adalah sebagai berikut :

Hasilnya adalah data yang tampil tidak bisa secara terus menerus atau tampilan diatas dikatakan tampil secara offline.

VII. Analisa

Dari percobaan yang telah kita lakukan, kita melakukan akuisisi data. Sistem akuisisi data dapat didefinisikan sebagai suatu sistem yang berfungsi untuk mengambil, mengumpulkan dan menyiapkan data, hingga memprosesnya untuk menghasilkan data yang dikehendaki. Untuk bisa menangkapnya terlebih dahulu diperlukan transduser. Di dalam transduser ini terdapat sensor yang berfungsi untuk merespons rangsangan. Dalam percobaan yang berfungsi sebagai sensor adalah modul ADC 0808. Dalam modul ADC 0808 tersebut terdpat 8 sensor yang dalam modul di definisikan sebagai ADC Control. Selain itu ADC 0808 juga mempunyai 8 input yang dalam percobaan ini digunakan sebagai kanal input yang akan diproses ketika ADC Control mendapatkan respons. Dalam percobaan kita menggunakan mode free running untuk mengakses modul ADC oleh sebab itu maka kita menggunakan posisi jumper 1 sampai 3 dalam posisi 2-3.

Selain menggunakan modul ADC sebagai perlengkapan percobaan kita juga mengakses komunikasi serial pada MCS51. Ini dikarenakan kita mengakses system tersebut menggunakan hiperterminal yang terdapat pada PC. Karena kita juga mengakses komunikasi serial maka kita menempatkan jumper 1 dan 2 pada modul MCS51 pada posisi 1-2. Dalam percobaan PORT ADC control pada modul ADC dihubungkan dengan dengan PORT 2 pada modul MCS 51. Sedangkan PORT ADC Data pada modul ADC dihubungkan dengan PORT0 pada modul MCS51. Ini terlihat seperti pada listing program di bawah:

adc_a bit p2.0 adc_b bit p2.1 adc_c bit p2.2 adc_wr bit p2.3 adc_rd bit p2.4 adc_eoc bit p2.5 Pilih sensor [0~7]: 0 Data sensor ke-0: 243 Data sensor ke-0: 243 Data sensor ke-0: 243

(6)

adc_cs bit p2.6

adc_data equ p0

Selain itu kita juga menggunakan akses timer untuk menentukan agar tampilan yang berada di hiperterminal tampil berulang-ulang selama 2 detik. Sistem juga dilengkapi dengan password dimana ketika kita sudah bisa melewati password tersebut maka kita akan bisa masuk untuk mengakses sensor. Pendefinisian password dalam program seperti listing

program di bawah ini:

cek_tombol: acall ambil_data

cjne a,#'a',gedhe

sjmp ok

gedhe: cjne a,#'A',cek_tombol

Sistem terhubungkan antara modul MCS51, modul ADC, dan juga PC. Hasil akhirnya adalah semua kinerja system bisa dikontrol dengan keyboard pada PC. Hasil dari percobaannya adalah ketika sudah berhasil memasukkan password maka kita bisa memasukkan sensor mana yang akan kita gunakan. Data sensor sudah dimasukkan, maka akan keluar nilai ADC yang terdapat pada modul ADC yang diberikan dari power supply disambungkan ke input ADC. Hasil data tersebut akan muncul terus berulang-ulang selama 2 detik dan akan berhenti looping ketika 2 detik berakhir. Tetapi setelah looping selama 2 detik tersebut kita tidak dapat lagi untuk memasukkan password, kita terlebih dahulu mereset system agar kembali ke awal. Ini dikarenakan kita belum menggunakan interrupt timer dalam pemrogramannya.

VIII. Kesimpulan

Dari percobaan yang telah kita lakukan, dapat disimpulkan bahwa:

1. Akuisisi data merupakan proses untuk mendapatkan data dan merupakan proses yang penting dalam system pemantauan dan pengendalian system.

2. Akuisisi data bisa dilakukan dengan menangkap data dari sensor dimana dalam praktikum ini menggunakan modul ADC (ADC Control) sebagai sensornya.

3. Akuisisi data bisa dikontrol dengan menggunakan PC ketika Modul MCS51 sudah tersambung dengan PC dengan menggunakan komunikasi serial.

4. Penentuan letak jumper pada modul MCS51 maupun modul ADC harus diperhatikan karena kesalahan pada peletakkan jumper menyebabkan sistem tidak bekerja.

(7)

IX. Lampiran Listing program adc_a bit p2.0 adc_b bit p2.1 adc_c bit p2.2 adc_wr bit p2.3 adc_rd bit p2.4 adc_eoc bit p2.5 adc_cs bit p2.6 adc_data equ p0 led equ p1 org 0h ljmp main org 0100h main: mov r0,#0 mov r2,#200 mov ie,#0 mov scon,#50h mov th1,#0fdh anl pcon,#7fh mov tmod,#21h mov tcon,#40h

cek_tombol: acall ambil_data

cjne a,#'a',gedhe sjmp ok

gedhe: cjne a,#'A',cek_tombol

ok: mov dptr,#sensor

clr a

next1: push acc

movc a,@a+dptr cjne a,#0,ada1 sjmp kanal

ada1: acall tulis_data

pop acc inc a sjmp next1

kanal: mov led, #0ffh

acall ambil_data mov r1,a ;acall tulis_data mov a,#13 acall tulis_data mov a,#10 acall tulis_data

tulis: mov dptr,#channel

clr a

next2: push acc

movc a,@a+dptr cjne a,#0,ada2 mov a,r1 acall tulis_data mov a,#' ' acall tulis_data mov a,#'=' acall tulis_data mov a,#' ' acall tulis_data sjmp cek_kanal; sjmp cek_kanal

ada2: acall tulis_data

pop acc inc a sjmp next2 ambil_data: jnb ri,ambil_data mov a,sbuf clr ri ret

tulis_data: mov sbuf,a

lagi: jnb ti,lagi

clr ti ret

cek_kanal: cjne r1,#'0',cek_1 sjmp kanal_0

cek_1: cjne r1,#'1',cek_2

sjmp kanal_1

cek_2: cjne r1,#'2',cek_3

sjmp kanal_2

cek_3: cjne r1,#'3',cek_4

sjmp kanal_3

cek_4: cjne r1,#'4',cek_5

sjmp kanal_4

cek_5: cjne r1,#'5',cek_6

sjmp kanal_5

cek_6: cjne r1,#'6',cek_7

sjmp kanal_6

cek_7: cjne r1,#'7',cek_kanal

sjmp kanal_7 sampling: mov a,adc_data

mov b,#100 div ab add a,#48; 48=0 acall tulis_data mov a,b mov b,#10 div ab add a,#48 acall tulis_data mov a,b add a,#48 acall tulis_data mov a,#13 acall tulis_data mov a,#10 acall tulis_data ;cjne r0,#3,tulis ;mov led, #0 ajmp cek_tombol kanal_0: clr adc_a clr adc_b clr adc_c sjmp sampling kanal_1: setb adc_a

clr adc_b clr adc_c sjmp sampling kanal_2: clr adc_a setb adc_b clr adc_c sjmp sampling kanal_3: setb adc_a

setb adc_b clr adc_c sjmp sampling kanal_4: clr adc_a clr adc_b setb adc_c

(8)

sjmp sampling kanal_5: setb adc_a

clr adc_b setb adc_c sjmp sampling kanal_6: clr adc_a setb adc_b setb adc_c sjmp sampling kanal_7: setb adc_a

setb adc_b setb adc_c sjmp sampling

delay: mov tmod,#01h

mov tl0,#0ffh mov th0,#0ffh setb tr0 maneh: jnb tf0,maneh clr tf0 clr tr0 cjne r2,#200,kene

kene: mov a,r2

inc a

ret

sensor: db 13,10,'Pilih sensor

[0~7]: ',0

channel: db 'Data sensor-',0 END

Referensi

Dokumen terkait

Warna – warna ini memberikan kesan lebih nyaman dan aman dan dalam situasi animasi edukasi, penonton bisa mempelajari material tetapi tidak dengan hawa yang tegang tapi tetap

Kendalan-kendala yang dihadapi guru dalam mengikuti serta membuat media menggunakan Macromedia Flash yaitu guru masih kurang memahami atau dengan kata lain guru masih kakuh serta

Atas berbagai peran yang dimiliki oleh wanita karir yang juga single parent dan memiliki anak tunarungu tentunya tidak sedikit beban dan tantangan yang harus

Spektra reflektansi dari lapisan tembaga kobal yang disintesis menggunakan prekursor 0.1M dengan 10 kali siklus pencelupan-pengeringan (coating dengan absorptansi

Dengan adanya penilaian kinerja dan pengembangan karyawan yang dilakukan PT Bank Sumut, seharusnya produktivitas kerja pegawai meningkat yakni kemampuan, dapat

Dari paparan diatas penulis tertarik mengadakan penelitian yang berjudul “Perbandingan Pengaruh Pembelajaran Menggiring Bola antara Metode Self Check dengan

Sindrom Guillain-Barre (SGB) adalah suatu polineuropati yang dapat bersifat ascending dan akut yang sering terjadi setelah 1 sampai 3 minggu setelah infeksi akut pada

terjadi perubahan data fisik atau data yuridis. Setelah Akta Jual Beli telah selesai dibuat maka selanjutnya dilakukan pendaftaran peralihan Hak Milik atas tanah