Penggunaan Prosesor MSP430F413 buatan Texas Instrumen untuk mengendalikan alat ukur jarak yang menggunakan gelombang ultrasonik 40 kHz.
Mikroprosesor
 pada alat ini berperan sebagai pengendali yang mengaktifkan pengirim 
sinyal, mengukur waktu propagasi sinyal dengan menunggu aktifnya 
penerima sinyal atau menunggu kedatangan sinyal pantulan, kemudian 
menghitung jarak antara alat ini dengan benda yang memantulkan sinyal 
ultrasonik serta menampilkan hasil perhitungannya dalam bilangan desimal
 pada display 7-segment.
Gambar 1.2. Aplikasi mikroprosesor untuk alat pengukur jarak.
Secara umum, alat ini terdiri dari 4 komponen utama, yaitu
·        Sistem
 mikroprosesor single chip. Atau Chip tunggal yang mengandung prosesor, 
memory dan I/O meskipun dengan kapasitas yang sangat kecil
·        Rangkaian elektronika penghasil dan penerima gelombang ultrasonik
·        Display 7-segment
·        Program
 dalam bahasa asembli yang terdiri dari beberapa modul, yaitu 
inisialisasi,  pembaca tombol aktif, pengendali pengirim dan penerima, 
pengukur durasi propagasi gelombang, penghitung jarak dan penampil ke 
7-segment.
SENSOR ULTRASONIK
 Yaitu suatu alat yang berfungsi mengukur besaran  jarak dan kecepatan 
dan sensor ini tidak langsung dapat masuk ke mikrokontroller karena 
perlu pentesuaian besaran tegangan dan lain-lainnya maka dikondisikan 
dulu sinyalnya dibagian pengkondisi sinyal (signal conditioner), 
sehingga levelnya sesuai atau dapat dimengerti oleh bagian input 
mikrokontroller atau prosseor lainnya.
Tampilan Kristal Cair (Liquid Crystal Display) LCD adalah : suatu
 jenis media tampilan yang menggunakan kristal cair sebagai penampil 
utama. LCD sudah digunakan di berbagai bidang misalnya dalam alat-alat 
elektronik seperti televisi, kalkulator ataupun layar komputer. 
Pada
 LCD berwarna semacam monitor terdapat banyak sekali titik cahaya 
(pixel) yang terdiri dari satu buah kristal cair sebagai sebuah titik 
cahaya. Walau disebut sebagai titik cahaya, namun kristal cair ini tidak
 memancarkan cahaya sendiri. Sumber cahaya di dalam sebuah perangkat LCD
 adalah lampu neon berwarna putih di bagian belakang susunan kristal 
cair tadi. 
Titik
 cahaya yang jumlahnya puluhan ribu bahkan jutaan inilah yang membentuk 
tampilan citra. Kutub kristal cair yang dilewati arus listrik akan 
berubah karena pengaruh polarisasi medan magnetik yang timbul dan oleh 
karenanya akan hanya membiarkan beberapa warna diteruskan sedangkan 
warna lainnya tersaring.
Pemuat atau KAPASITOR
 merupakan alat elektrik atau elektronik yang mampu menyimpan tenaga di 
medan elektrik antara sepasang pengalir (plat). Proses menyimpan tenaga 
dalam kapasitor dikenali sebagai "mengecas", dan melibatkan cas elektrik
 yang mempunyai magnitud yang sama, tetapi kekutuban yang berlawan yang 
berkumpul di kedua-dua plat masing-masing.
Kapasitor
 biasanya digunakan dalam litar elektrik dan litar elektronik sebagai 
alat storan tenaga. Kapasitor juga digunakan untuk memisahkan antara 
isyarat frekuensi tinggi dan rendah. Oleh itu, kapasitor biasanya 
digunakan sebagai penapis elektronik.
RESISTOR atau tahanan atau penghambat, adalah suatu komponen elektronik yang memberikan hambatan terhadap perpindahan elektron (muatan negatif).
Resistor
 disingkat dengan huruf "R" (huruf R besar). Satuan resistor adalah Ohm,
 yang menemukan adalah George Ohm (1787-1854), seorang ahli fisika 
bangsa Jerman. Tahanan bagian dalam ini dinamai konduktansi. Satuan 
konduktansi ditulis dengan kebalikan dari Ohm yaitu mho.
Kemampuan
 resistor untuk menghambat disebut juga resistensi atau hambatan 
listrik. Besarnya diekspresikan dalam satuan Ohm. Suatu resistor 
dikatakan memiliki hambatan 1 Ohm apabila resistor tersebut menjembatani
 beda tegangan sebesar 1 Volt dan arus listrik yang timbul akibat 
tegangan tersebut adalah sebesar 1 ampere, atau sama dengan sebanyak 
6.241506 × 1018 elektron per detik mengalir menghadap arah yang 
berlawanan dari arus.
Hubungan antara hambatan, tegangan, dan arus, dapat disimpulkan melalui hukum berikut ini, yang terkenal sebagai [[hukum Ohm:
KRISTAL ADALAH
 suatu padatan yang atom, molekul, atau ion penyusunnya terkemas secara 
teratur dan polanya berulang melebar secara tiga dimensi.
Secara umum, zat cair membentuk kristal ketika mengalami proses pemadatan. Pada
 kondisi ideal, hasilnya bisa berupa kristal tunggal, yang semua 
atom-atom dalam padatannya "terpasang" pada kisi atau struktur kristal 
yang sama, tapi, secara umum, kebanyakan kristal terbentuk secara 
simultan sehingga menghasilkan padatan polikristalin. Misalnya, 
kebanyakan logam yang kita temui sehari-hari merupakan polikristal.
Struktur
 kristal mana yang akan terbentuk dari suatu cairan tergantung pada 
kimia cairannya sendiri, kondisi ketika terjadi pemadatan, dan tekanan 
ambien. Proses terbentuknya struktur kristalin dikenal sebagai 
kristalisasi.
Op-amp adalah  rangkaian
 elektronik serbaguna yang dirancang dan dikemas khusus, sehingga dengan
 menambahkan komponen luar sedikit saja, sudah dapat dipakai untuk 
berbagai keperluan. 
Karakteristik terpenting dari sebuah op-amp yang ideal adalah:
 Penguatan loop terbuka amat tinggi
 Impedansi masukan yang sangat tinggi sehingga arus masukan dapat diabaikan
 Impedansi keluaran sangat rendah sehingga keluaran penguat tidak terpengaruh oleh pembeban.
Pada op-amp terdapat satu terminal keluaran, dan dua terminal masukan. Terminal masukan yang diberi tanda (-) dinamakan terminal masukan pembalik (inverting),
sedangkan terminal masukan yang diberi (+) dinamakan terminal masukan bukan pembalik (noninverting).
Pengukur Jarak dengan Ultra SonicKarakteristik terpenting dari sebuah op-amp yang ideal adalah:
 Penguatan loop terbuka amat tinggi
 Impedansi masukan yang sangat tinggi sehingga arus masukan dapat diabaikan
 Impedansi keluaran sangat rendah sehingga keluaran penguat tidak terpengaruh oleh pembeban.
Pada op-amp terdapat satu terminal keluaran, dan dua terminal masukan. Terminal masukan yang diberi tanda (-) dinamakan terminal masukan pembalik (inverting),
sedangkan terminal masukan yang diberi (+) dinamakan terminal masukan bukan pembalik (noninverting).
Meminjam
 teknik echo sounder yang dipakai untuk mengukur kedalaman laut, bisa 
dibuat alat pengukur jarak dengan ultra sonic. Pengukur jarak ini 
memakai rangkaian yang sama dengan Jam Digital dalam artikel yang lalu, 
ditambah dengan rangkaian pemancar dan penerima Ultra Sonic.
Prinsip
 kerja echo sounder untuk pengukuran jarak digambarkan dalam Gambar 1. 
Pulsa Ultrasonic, yang merupakan sinyal ultrasonic dengan frekwensi 
lebih kurang 41 KHz sebanyak 12 periode, dikirimkan dari pemancar 
Ultrasonic. Ketika pulsa mengenai benda penghalang, pulsa ini 
dipantulkan, dan diterima kembali oleh penerima Ultrasonic. Dengan 
mengukur selang waktu antara saat pulsa dikirim dan pulsa pantul 
diterima, jarak antara alat pengukur dan benda penghalang bisa dihitung.
Gambar 1 Prinsip Echo Sounder
Gambar
 2 merupakan Rangkaian Jam Digital dalam artikel lalu yang direvisi 
untuk keperluan ini. Titik desimal pada tampilan satuan dinyalakan 
dengan tahanan R8. Setiap kali tombol Start ditekan, AT89C2051 
membangkitkan pulsa ultrasonic pada Pin P3.4 yang dipancarkan dengan 
rangkaian Gambar 3, selanjutnya lewat pin P3.5 yang terhubung ke 
rangkaian penerima ultrasonic di Gambar 4, sambil mengukur selang waktu 
AT89C2051 memantau datangnya pulsa pantul. 
Hasil
 pengukuran waktu itu, dengan sedikit perhitungan matematis ditampilkan 
di sistem penampil 7 ruas sebagai besaran jarak, dengan satuan 
centimeter dan 1 angka dibelakang titik desimal.
Gambar 2 Rangkaian Kontrol & Tampilan Pemancar pulsa Ultrasonic
Pulsa Ultrasonic dibangkitkan di pin P3.4 AT89C2051 (ULTRA_OUT) dengan potongan Program 1, sebagai berikut:
Potongan Program 1 - Membangkitkan sinyal ultra sonic
1 PulsaUltraSonic: 
2 MOV R7,#24 Nilai awal R7 = 24
3 Loop: 
4 NOP waktu untuk mengerjakan baris 4..14
5 NOP = 12 mikro-detik 
6 NOP
7 NOP
8 NOP
9 NOP
10 NOP
11 NOP
12 NOP
13 CPL Ultra_Out Ultra_Out (P3.4) := not Ultra_Out
14 DJNZ R7,Loop Turunkan nilai R7, ulangi lagi kalau R7<>0          15 RET
Processor
 memerlukan waktu untuk melaksanakan instruksi. Bagi AT89C2051 yang 
bekerja pada frekuensi 12 MHz, instruksi NOP (baris 4 sampai 12); 
instruksi CPL (baris 13) dilaksanakan dalam waktu 1 mikro detik, dan 2 
mikro detik untuk melaksanakan instruksi DJNZ (baris 14). Dengan 
demikian waktu yang diperlukan untuk melaksanakan instruksi-instruksi di
 baris 3 sampai 13 adalah 12 mikro detik.
Di
 baris 12, nilai Ultra_Out (= pin P3.4) dibalik, kalau semula Ultra_Out 
bernilai 0 setelah instruksi ini dijalankan Utltra_Out akan bernilai 1, 
dan sebaliknya kalau semula 1 dan berbalik menjadi 0. 
Di
 baris 13 nilai R7 dikurangi 1, selama R7 belum mencapai 0 AT89C2051 
akan mengulang lagi baris 2 dan seterusnya. Di baris 1 R7 diberi nilai 
24, dengan demikian baris 2 sampai 13 akan diulang sebanyak 24 kali, dan
 selama itu pin 3.4 akan berbalik dari 0 ke 1 dan 0 kembali sebanyak 12 
kali. Dengan demikian, hasil kerja Potongan Program 1 adalah pulsa 
ultrasonic12 gelombang dengan frekuensi 1/24 mikrodetik = 41666 Hz
Gambar 3 Rangkaian Pemancar Ultra Sonic
Pulsa
 ultrasonic diperkuat dan dipancarkan dengan rangkaian pemancar 
Ultrasonic di Gambar 3. Rangkaian ini dibangun dengan Inverter CMOS 
MC14049, inverter U1B dipakai untuk membalik fasa sehingga tegangan di 
output gabungan U1A & U1C akan selalu berlawanan dengan tegangan di 
output gabungan U1D & U1E, dengan demikian amplitudo ultrasonic yang
 sampai di tranduser ultrasonic menjadi 2 kali lipat. C1 dipakai untuk 
menahan arus DC, sehingga hanya sinyal ultrasonic saja yang bisa masuk 
ke tranduser ultrasonic. 
Penerima pulsa Ultrasonic
Rangkaian
 Penerima Ultrasonic pada Gambar 4, merupakan rangkaian yang umum 
dipakai untuk penerima ultrasonic, rangkaian ini bisa diganti dengan 
rangkaian yang lain, asalkan saat tidak ada sinyal ultrasonic 
keluarannya (ECHO_IN) bernilai ‘1’ dan menjadi ‘0’ begitu menerima 
sinyal ultrasonic, sesuai dengan kondisi yang dipantau AT89C2051 lewat 
Potongan Program 2.
Gambar 4  Rangkaian Penerima Ultra Sonic
Pengukuran selang waktu
Pengukuran
 selang waktu dilakukan dengan bantuan Timer 1 yang ada di dalam IC 
AT89C2051 seperti terlihat pada Gambar 5. TL1 dan TH1 merupakan bagian 
dari Timer 1, masing-masing berupa pencacah 8 bit yang diuntai menjadi 
pencacah 16 bit (Mode 1). TR1 berfungsi untuk mengatur masuknya sinyal 1
 MHz ke untaian pencacah, saat TR1 bernilai 0 tidak ada sinyal yang 
masuk, saat bernilai 1 maka untaian pencacah akan mencacah dari 0 sampai
 $FFFF (heksadesimal) dan kembali lagi ke 0, dan diikuti TF1 menjadi 1.
Gambar 5 Pengukur Waktu
Pengukuran
 selang waktu antara saat pulsa ultrasonic dikirim dan pulsa pantul 
diterima dilakukan dengan Potongan Program 2 sebagai berikut : TR1 
diberi nilai 1 agar untaian pencacah bekerja (baris 1) dan ditunggu 
sampai isi pencacah menjadi 0 dengan cara menunggu TF1 sampai bernilai 1
 (baris 2 dan 3). Segera setelah itu dibangkitkan pulsa ultrasonic 
dengan memanggil sub-rutin di Potongan Program 1 (baris 4), disusul 
menunggu pantulan pulsa dengan cara memantau P3.5 sampai bernilai 0 
(baris 5 dan 7, abaikan dulu baris 6), setelah itu TR1 diberi nilai 0 
(baris 7). Dengan demikian posisi untaian pencacah TL1/TH1 yang terakhir
 merupakan lamanya selang waktu dalam satuan mikro detik.
Kalau
 jarak yang diukur terlalu jauh, pulsa ultrasonic yang dikirimkan tidak 
terpantulkan, akibatnya AT89C2051 akan menunggu terus di baris 5 dan 7, 
agar hal ini tidak terjadi ditambahkan baris 6, yakni sambil menunggu 
pulsa pantulan dipantau pula apakah untaian pencacah sudah melimpah, 
kalau sampai melimpah maka tidak perlu menunggu pulsa pantulan lagi, 
aliran program dialihkan ke Selesai, dan untaian pencacah dihentikan.
Potongan Program 2 - Mengukur waktu pantulan ultra sonic
1 SET TR1 Hidupkan untaian pencacah
2 SampaiNol: 
3 JNB TF1,SampaiNol Tunggu selama TF1 masih =1
4 ACALL PulsaUltraSonic Bangkitkan pulsa Ultrasonic 
5 TungguPantulan: 
6 JB TF1,Selesai TL1/TH1 melimpah? Ya, stop
7 JB P3.5,TungguPantulan Tunggu selama P3.5 =1
8 Selesai: 
9 CLR TR1 Matikan untaian pencacah
Perhitungan jarak
Seperti
 diketahui, kecepatan rambat suara di udara adalah 34399.22 cm/detik, 
berarti untuk merambat sejauh 1 cm suara membutuhkan waktu 29 mikro 
detik. Selang waktu yang sudah tercatat di untaian pencacah TL1/TH1 
(Potongan Program 3, baris 2 sampai dengan 4) setara dengan dua kali 
jarak pemancar ultrasonic dengan penghalang. Selang waktu tersebut dalam
 satuan mikro detik, untuk mengubah menjadi jarak (cm) harus membaginya 
dengan bilangan 58 (Potongan Program 3, baris 10 sampai dengan 13).
Untuk
 mendapatkan angka pecahan di belakang desimal, karena rutin arithmatik 
yang dipakai adalah rutin perhitungan bilangan bulat (integer), maka 
sebelum pembagian di atas nilai TL1/TH1 dikalikan dulu dengan 10 
(Potongan Program 3, baris 10 sampai dengan 13).
Potongan Program 3 - Menghitung jarak
1 CLR A
2 MOV Operand,TL1
3 MOV Operand+1,TH1
4 MOV Operand+2,A
5 MOV Pengali,#10
6 MOV Pengali+1,A
7 MOV Pengali+2,A
8 ACALL Perkalian HasilKali := 10 * TL1_TH1
9 ;
10 MOV R0,#HasilKali
11 MOV R1,#Operand
12 ACALL Copy Copy-kan isi HasilKali ke Operand
13 MOV Pembagi,#58
14 MOV Pembagi+1,#0
15 MOV Pembagi+2,#0
16 ACALL Pembagian HasilBagi := (10*TL1_TH1) / 58
Perhitungan
 di atas adalah perhitungan secara biner, bilangan biner ini dirubah 
dulu menjadi bilangan desimal agar bisa ditampilkan. Bilangan biner 
tersebut dibagi dengan 1000 untuk mendapatkan angka ribuan, sisanya 
dibagi dengan 100 untuk mendapatkan angka ratusan dan seterusnya, 
seperti terlihat pada Potongan Program 4.
Potongan Program 4 - Jarak dalam bentuk biner dirubah ke desimal untuk ditampilkan
1 MenampilkanHasil:
2 ACALL HapusTampilan
3 ;
4 MOV DPTR,#AngkaPembagi Mulai dengan 1000
5 MOV R7,#4 Maksimum 4 digit
6 MOV R4,#RuasRatusan
7 CLR F0 Belum pernah simpan
8 
9 MOV R0,#HasilBagi
10 MOV R1,#SisaBagi
11 ACALL Copy
12 DigitBerikutnya:
13 MOV R0,#SisaBagi
14 MOV R1,#Operand
15 ACALL Copy
16 
17 * Ambil AngkaPembagi dari Tabel
18 
19 CLR A
20 MOV Pembagi+2,A
21 MOVC A,@A+DPTR
22 INC DPTR
23 MOV Pembagi,A
24 
25 CLR A
26 MOVC A,@A+DPTR
27 INC DPTR
28 MOV Pembagi+1,A
29 
30 ACALL Pembagian SisaBagi dibagi 1000; 100; 10 dan 1
31 
32 MOV A,HasilBagi HasilBagi=0?
33 JNZ SimpanRuas Tidak, jadikan simpan ruas
34 JNB F0,Berikutnya Belum pernah simpan dan 0
35 SimpanRuas:
36 SETB F0 Sudah pernah simpan angka
37 ACALL JadikanRuas
38 MOV R0,$04 R0 <- R4
39 MOV @R0,A Simpan
40 Berikutnya:
41 INC R4
42 DJNZ R7,DigitBerikutnya
43 RET
44 
45 AngkaPembagi:
46 DW 1000
47 DW 100
48 DW 10
49 DW 1
Rancangan
 di atas bisa dipakai untuk mengukur jarak sampai sejauh lebih kurang 10
 meter, pada jarak tersebut waktu rambat suara lebih kurang sebesar 2 x 
1000 cm x 29 mikro-detik/cm = 58.000 mikro detik, hampir mencapai angka 
maksimum yang bisa ditampung untaian pecacah TL1/TH1 yang 65535.
Meskipun
 demikian untuk bisa mengukur sejauh itu, rangkaian pemancar dan 
penerima ultrasonic harus benar-benar dalam keadaan yang baik, terutama 
harus dipilih tranduser ultrasonic yang prima. Alat ini akan punya nilai
 komersil yang baik jika tampilan 7 ruas dengan LED diganti dengan 
tampilan LCD, agar pemakaian dayanya kecil dan bisa bekerja dengan 
baterai saja. Pemakaian LCD akan dibicarakan pada artikel lain.
Program
 untuk mengendalikan AT89C2051 harus diisikan ke dalam IC 
microcontroller itu, untuk itu diperlukan alat yang dinamakan sebagai 
AT89C2051 Flash PEROM Programmer. Alat ini sangat sederhana, hanya 
memakai sebuah IC 74HC574A ditambah dengan sistem catu daya dan 
dihubungkan ke komputer PC lewat printer port
 



