Upload
tj-offout
View
155
Download
2
Embed Size (px)
Citation preview
6
BAB II
TINJAUAN PUSTAKA
2.1 HC-SR04 Ultrasonic Range Finder
HC-SR04 merupakan sensor ultrasonik yang dapat digunakan untuk mengukur
jarak antara penghalang dan sensor. Konfigurasi pin dan tampilan sensor HC-SR04
diperlihatkan pada Gambar 2.1.
Gambar 2.1 Konfigurasi pin dan tampilan sensor ultrasonik HC-SR04 (http://www.accudiy.com/
download/HC-SR04_Manual.pdf, 2015)
HC-SR04 memiliki 2 komponen utama sebagai penyusunnya yaitu ultrasonic
transmitter dan ultrasonic receiver. Fungsi dari ultrasonic transmitter adalah
memancarkan gelombang ultrasonik dengan frekuensi 40 KHz kemudian ultrasonic
receiver menangkap hasil pantulan gelombang ultrasonik yang mengenai suatu objek.
Waktu tempuh gelombang ultrasonik dari pemancar hingga sampai ke penerima
sebanding dengan 2 kali jarak antara sensor dan bidang pantul seperti yang
diperlihatkan pada Gambar 2.2
Gambar 2.2 Prinsip kerja HC-SR04
Prinsip pengukuran jarak menggunakan sensor ultrasonik HC-SR04 adalah, ketika
pulsa trigger diberikan pada sensor, transmitter akan mulai memancarkan gelombang
ultrasonik, pada saat yang sama sensor akan menghasilkan output TTL transisi naik
menandakan sensor mulai menghitung waktu pengukuran, setelah receiver menerima
7
pantulan yang dihasilkan oleh suatu objek maka pengukuran waktu akan dihentikan
dengan menghasilkan output TTL transisi turun. Jika waktu pengukuran adalah t dan
kecepatan suara adalah 340 m/s, maka jarak antara sensor dengan objek dapat dihitung
dengan menggunakan Persamaan 2.1.
푠 = 푡 × ⁄ (2.1)
Dimana :
s = Jarak antara sensor dengan objek (m)
t = Waktu tempuh gelombang ultrasonik dari transmitter ke receiver (s)
Pemilihan HC-SR04 sebagai sensor jarak yang akan digunakan pada penelitian ini
karena memiliki fitur sebagai berikut; kinerja yang stabil, pengukuran jarak yang akurat
dengan ketelitian 0,3 cm, pengukuran maksimum dapat mencapai 4 meter dengan jarak
minimum 2 cm, ukuran yang ringkas dan dapat beroperasi pada level tegangan TTL
Prinsip pengoperasian sensor ultrasonik HC-SR04 adalah sebagai berikut ; awali
dengan memberikan pulsa Low (0) ketika modul mulai dioperasikan, kemudian berikan
pulsa High (1) pada trigger selama 10 μs sehingga modul mulai memancarkan 8
gelombang kotak dengan frekuensi 40 KHz, tunggu hingga transisi naik terjadi pada
output dan mulai perhitungan waktu hingga transisi turun terjadi, setelah itu gunakan
Persamaan 2.1 untuk mengukur jarak antara sensor dengan objek. Timing diagram
pengoperasian sensor ultrasonik HC-SR04 diperlihatkan pada Gambar 2.3
Gambar 2.3 Timing diagram pengoperasian sensor ultrasonik HC-SR04 (http://www.accudiy.com/
download/HC-SR04_Manual.pdf, 2015)
8
2.2 CMPS11 Tilt Compensated Magnetic Compass
CMPS11 merupakan sensor kompas generasi ke 3 yang diimbangi dengan sensor
kemiringan. Dalam sensor ini terkandung sebuah magnetometer 3 sumbu, sensor gyro 3
sumbu dan sebuah sensor percepatan 3 sumbu. Untuk mengurangi eror yang disebabkan
oleh kemiringan PCB maka digunakan sebuah Kalman Filter dalam mengkombinasikan
sensor gyro dan sensor percepatan, fitur ini cocok diterapkan pada kacamata tuna netra,
karena pergerakan kepala pengguna akan mengakibatkan kemiringan kompas menjadi
tidak selalu stabil. CMPS11 menghasilkan output berupa nilai dari 0-3599 desimal
untuk data 16 bit atau 0-255 desimal untuk data 8 bit yang mewakili 0°-359,9°,
sehingga mikrokontroller dengan lebar data 8 bit dapat digunakan dalam melakukan
perhitungan. Pada pengoperasiannya CMPS11 memerlukan sumber tegangan 3.6V
sampai 5V dan memerlukan arus 25 mA. Adapun tampilan sensor kompas CMPS11
diperlihatkan pada Gambar 2.4
Gambar 2.4 Tampilan fisik sensor kompas CMPS11 (http://www.robot-electronics.co.uk/htm/cmps11
doc.htm, 2015)
Salah satu mode yang disediakan untuk berkomunikasi dengan modul ini adalah
mode serial Universal Asynchronous Receiver/Transmitter (UART) yang juga dimiliki
oleh mikrokontroller AT89S52. Keterangan pin sensor kompas CMPS11 diperlihatkan
pada Gambar 2.5. Pengoperaian CMPS11 dengan mode UART dilakukan dengan
mengkoneksikan pin Mode ke ground
Gambar 2.5 Keterangan Masing-masing pin sensor kompas CMPS11(http://www.robot-electronics.co.
uk/htm/cmps11doc.htm, 2015)
9
Secara default baud-rate yang digunakan pada mode serial adalah 9600 bps, tanpa
parity dan dengan 2 stop bits. Level sinyal komunikasi serial yang digunakan adalah
3,6V sampai 5V. Perintah yang harus dikirim ke modul kompas CMPS11 untuk
memperoleh data yang diinginkan diperlihatkan pada Tabel 2.1.
Tabel 2.1 Perintah dan data yang diperoleh dalam komunikasi serial CMPS11 (http://www.robot-
electronics.co.uk/htm/cmps11ser.htm, 2015)
Perintah Nama Byte diperoleh Deskripsi data yang diperoleh
0x11 GET VERSION 1 Versi software CMPS11 0x12 GET ANGLE 8 BIT 1 Sudut sebagai byte tunggal 0-255
0x13 GET ANGLE 16 BIT 2 Sudut sebagai 2 byte 0-3599, byte tertinggi diperoleh pertama
0x14 GET PITCH 1 Sudut tanjakan ± 0-85° dengan Kalman filter
0x15 GET ROLL 1 Sudut kemiringan ± 0-85° dengan Kalman filter
0x16 GET PITCH NO KAL 1 Sudut tanjakan ± 0-85° tanpa Kalman filter
0x17 GET ROLL NO KAL 1 Sudut kemiringan ± 0-85° tanpa Kalman filter
0x19
GET MAG RAW
6
Data mentah untuk medan magnet, penerima 16 bit dengan data X High,X Low, Y High, Y Low, Z High, Z Low
0x20
GET ACCEL RAW
6
Data mentah untuk percepatan, penerima 16 bit dengan data X High,X Low, Y High, Y Low, Z High, Z Low
0x21 GET GYRO RAW
6 Data mentah gyro, penerima 16 bit dengan data X High,X Low, Y High, Y Low, Z High, Z Low
0x22 GET TEMP
2 Temperatur sebagai 2 byte, byte tertinggi dikirim di awal dengan resolusi 8LSB/°C
0x23 GET ALL
4 Sudut tertinggi, sudut terendah (0-3599), sudut tanjakan (± 0-85), sudut kemiringan (± 0-85)
0xF0 CALIBRATE BYTE 1 1 Tanda OK (0x55) 0xF5 CALIBRATE BYTE 2 1 Tanda OK (0x55)
0xF6 CALIBRATE BYTE 2 FULL 1 Tanda OK (0x55)
0xF7 CALIBRATE BYTE 2 FLAT 1 Tanda OK (0x55)
0xF8 CALIBRATE EXIT 1 Tanda OK (0x55) 0x6A RESTORE 1 1 Tanda OK (0x55)
10
0x7C RESTORE 2 1 Tanda OK (0x55) 0x81 RESTORE 3 1 Tanda OK (0x55) 0xA0 BAUD 19200 1 Tanda OK (0x55) 0xA1 BAUD 38400 1 Tanda OK (0x55)
Jika diperlukan sensor kompas CMPS11 dapat dikalibrasi untuk menambah
keakurasian sensor. Untuk mengkalibrasi sensor, letakkan sensor pada posisi horisontal,
kemudian kirimkan 3 kode perintah dalam format heksa secara berturut-turut 0xF0,
0xF5 dan kemudian 0xF6 untuk masuk ke mode kalibrasi, dengan catatan; pada saat
setelah mengirimkan setiap kode perintah, byte konfirmasi dari sensor perlu dibaca
terlebih dahulu sebelum mengirimkan kode perintah selanjutnya. Setelah hal ini
dilakukan maka LED akan padam, selanjutnya putar sensor kompas CMPS11 ke semua
arah dalam 3 dimensi yang berbeda. Jika keadaan maksimum yang baru untuk setiap
dimensi terdeteksi, maka LED akan berkedip. Jika LED tidak pernah berkedip keluarlah
dari kondisi kalibrasi dengan perintah 0xF8. Pastikan tidak terdapat benda logam yang
dapat menginduksikan medan magnet di sekitar kompas serta perlu diingat selama
melakukan kalibrasi sensor kompas CMPS11 harus diputar dengan perlahan.
Untuk mengembalikan kalibrasi standar yang telah dilakukan oleh pabrik,
kirimkan secara berturut-turtut 3 kode perintah 0x6A, 0x7C dan 0x81 (baca byte
konfirmasi dari sensor setelah mengirimkan masing-masing kode).
Untuk mengubah kecepatan transmisi data atau baud rate sensor kompas
CMPS11, maka dapat mengirim kode perintah 0xA0 untuk mengubah baud rate
menjadi 19200 bps dan kode perintah 0xA1 untuk mengubah baud rate menjadi 38400
bps. Setelah mengirimkan kode perintah, sensor akan merespon dengan mengrimkan
kode OK (0x55).
2.3 Chip-Corder Information Storage Device 1400 (ISD1400)
ISD 1400 pada penelitian ini digunakan untuk menyimpan informasi berupa suara
serta menghasilkan suara keluaran sesuai dengan alamat penyimpanan suara yang
ditentukan pada proses perekaman sebelumnya. ISD 1400 dapat dibagi menjadi 2 yaitu
ISD 1420 yang dapat menyimpan informasi suara selama 20 detik dan ISD 1416 selama
16 detik. Namun seri yang digunakan dalam penelitian ini adalah ISD1420 untuk
memperoleh durasi yang lebih panjang. Diagram blok dari ISD 1400 diperlihatkan pada
Gambar 2.6.
11
Gambar 2.6 Diagram blok chip-corder ISD 1400 (http://www.ee.mut.ac.th/datasheet/doc/ISD1400_A.
pdf, 2014)
Sesuai dengan diagram blok yang diperlihatkan pada Gambar 2.6 maka
konfigurasi pin ISD 1400 adalah seperti yang diperlihatkan pada Gambar 2.7
Gambar 2.7 Konfigurasi pin ISD 1400 (http://www.ee.mut.ac.th/datasheet/doc/ISD1400_A.pdf, 2014)
Penjelasan masing-masing pin ISD1400 yang diperlihatkan oleh Gambar 2.7
ditunjukkan pada Tabel 2.2
Tabel 2.2 Deskripsi masing-masing pin chip-corder ISD 1400 (http://www.ee.mut.ac. th/datasheet/doc/ ISD1400_A.pdf, 2014)
Nama Pin Nomor Pin Fungsi
A0-A7 1-6, 9, 10 Address Input : pin ini memiliki dua fungsi tergantung dari 2
alamat bit tertinggi atau MSB (Most Significant Bit). Jika
salah satu atau kedua MSB bernilai Low maka semua input
di intepretasikan sebagai pengalamatan bit dan digunakan
12
sebagai alamat awal untuk proses perekaman yang akan
berlangsung, Alamat yang diberikan dikunci oleh transisi
turun dari pin PLAYE, PLAYL atau REC.
Jika kedua MSB (A6 dan A7) bernlai High maka
pengalamatan pada inputnya akan dianggap sebaga mode
operasi khusus.
NC 7, 8, 11, 12 NC : tidak terhubung ( Not Conected )
VSSD,
VSSA
12, 13 Ground : Rangkaian analog dan digital yang terdapat di
dalam IC ISD 1420 menggunakan ground yang terpisah
untuk mengurangi noise.
SP+, SP- 14,15 Pin keluaran untuk speaker dengan impedansi 16 ohm
VCCA,
VCCD
16,28 Supply Voltage : ISD 1420 juga menggunakan koneksi yang
terpisah untuk rangkaian analog dan digital yang terdapat
dalam IC untuk mengurangi noise.
MIC 17 Microphone : pin ini perfungsi untuk mengirim sinyal suara
ke preamplifier yang terdapat di dalam chip perekeam ini.
Sebuah Automatic Gain Control (AGC) yang juga terdapat
dalam chip ini mengontrol penguatan tersebut dengan
rentang dari -15 dB sampai 24 dB.
MIC REF 18 Microphone Refrence : Masukan dari MIC REF merupakan
masukan minus (-) pada preamplifire yang digunakan oleh
pin MIC. Pin ini berguna untuk membatalkan noise yang
masuk atau penolakan terhadap mode diam yang berada
dibawah referensi ke ISD 1400
AGC 19 Automatic Gain Control (AGC) : AGC mengatur penguatan
dari preamplifire secara dinamis, untuk mengimbangi sinyal
masukan dari mikrofon yang memiliki level masukan
dengan jangkauan yang besar
ANA IN 20 Pin ini berfungsi untuk mengirim sinyal yang diperoleh ke
chip guna direkam. Untuk input yang berasal dari mikrofon
ANA OUT harus disambungkan ke ANA IN melalui sebuah
kapasitor external.
13
ANA
OUT
21 Analog Output : Pin ini menghasilkan keluaran yang
diperoleh dari output preamplifier
PLAYL 23 Playback, Level Activated : Ketika masukan untuk pin ini
ditahan pada logika LOW, pemutaran suara dimulai hingga
pin ini dikembalikan ke logika HIGH atau ketika pnanda
EOM dideteksi.
PLAYE 24 Playback, Edge Activated : ketika pin ini diberikan transisi
turun (dari logika HIGH ke LOW), pemutaran suara dimulai.
Pengembalian pin ini ke logika HIGH tidak akan
menghentikan pemutaran suara yang sedang berlangsung.
Proses pemutaran akan berhenti ketika penanda EOM
dicapai.
RECLED 25 Record LED : Keluaran dari pin ini bernilai LOW selama
proses perekaman. Pin ini juga sewaktu-waktu bernilai LOW
ketika EOM (End-Of-Message) dicapai saat proses
pemutaran berlangsung.
XCLK 26 External Clock : Pin ini dapat dihubungkan ke ground jika
ingin menggunakan internal clock yang sudah terdapat
dalam ISD 1420. Namun jika mengininkan presisi yang
lebih baik dapat menggunakan external clock dan
dihubungkan ke pin ini. Sample rate dari external clock
yang harus digunakan dapat dilihat pada datasheet di
Lampiran
REC 27 Record input : Dengan memberikan logika LOW pada pin
ini, maka proses perekaman segera dimulai. Proses
perekaman berlangsug selama Logika LOW ditahan pada pin
ini dan akan berakhir ketika dikembalikan ke logika HIGH
atau ruang memori yang tersedia sudah terisi penuh. Pin ini
lebih diprioritaskan dibanding PLAYL dan PLAYE
sehingga proses pemutaran akan berakhir kerika proses
perekaman dimulai.
14
Pengaplikasian chip corder ISD 1400 dalam proses perekaman dan pemutaran
suara harus memperhatikan timing diagram yang disediakan untuk berkomunikasi
dengan IC tersebut, sehingga suara yang direkam dapat tersimpan dengan sempurna
pada chip dan suara yang dikeluarkan sesuai dengan kehendak . Timing diagram untuk
proses perekaman suara dperlihatkan pada Gambar 2.8
Gambar 2.8 Timing diagram proses perekaman suara dengan ISD1400 (http://www.ee.mut.ac.th/
datasheet/doc/ISD1400_A.pdf, 2014)
Sedangkan pada proses pemutaran (playback) dengan atau tanpa menggunakan
program perlu memperhatikan timing diagram yang diperlihatkan pada Gambar 2.9.
Gambar 2.9 Timing diagram proses pemutaran suara dengan ISD1400 (http://www.ee.mut.ac.th/
datasheet/doc/ISD1400_A.pdf, 2014)
Keterangan simbol-simbol yang terdapat pada Timing diagram proses perekaman
dan pemutaran suara menggunakan ISD1420 driperlihatkan pada Tabel 2.3
15
Tabel 2.3 Data timing diagram proses perekaman dan pemutaran suara menggunakan ISD 1420 (http://www.ee.mut.ac.th/ datasheet/doc/ISD1400_A.pdf, 2014)
Symbol Characteristic Min Typ Max Unit TREC Record duration 20 - - Sec TPLAY Playback duration 20 - - TLED1 RECLED on delay - 5 -
msec
TLED2 RECLED off delay 40 48,6 110 TRUPD Record power up delay - 32 - TRPDD Record power down delay - 32 - TPPUD Play power up delay - 32 - TPPDD Play power down delay - 8,1 - TEOM EOM Pulse width - 15,625 - TSET Address setup time 300 - - nsec THOLD Address hold time 0 - -
2.4 Mikrokontroler AT89S52
AT89S52 merupakan seri mikrokontroler MCS-51 yang memiliki kapasitas
penyimpanan flash sebesar 8KB. Pinout dan instruksi pemrograman yang disediakan
pada mikrokontroler ini memiliki kesesuaian dengan standar 80C51. Penanaman dan
penghapusan program ke dalam memori flash dapat dilakukan hingga 10.000 kali.
Selain harga yang rendah, pemilihan AT89S52 sebagai basis kontrol pada
penelitian ini adalah karena memiliki fitur standar yang cukup menunjang diantaranya ;
Random Access Memory (RAM) sebesar 256 byte, 32 jalur input/output (I/O), Pewaktu
Wacthdog, dua buah data pointer, tiga buah timer/counter berukuran 16 bit, memiliki
fitur interupsi 6 vektor dan 2 level, port serial dengan fitur komunikasi full-duplex serta
memiliki osilator dan rangkaian pewaktu internal. Adapun konfigurasi pinout dari
mikrokontroler AT89S52 diperlihatkan pada Gambar 2.10.
Gambar 2.10 Konfigurasi pinout mikrokontroler AT89S52 (www.atmel.com/images/doc1919.pdf,
2015)
16
Adapun fungsi dari masing-masing pinout mikrokontroler AT89S52 adalah;
1. VCC : Input tegangan Catu untuk mengaktifkan mikrokontroler AT89S52.
2. GND : Ground
3. Port 0 : Port 0 merupakan jalur komunikasi dua arah input dan output 8 bit yang
tidak memiliki pull-up internal, sehingga jika menulis logika 1 (High) ke port 0,
port ini dapat digunakan sebagai masukan dengan impedansi tinggi. Port 0 juga
dikonfigurasikan sebagai 8 bit alamat terbawah saat digunakan untuk mengakses
program dan data memori eksternal.
4. Port 1: Port 1 merupakan jalur komunikasi dua arah 8 bit yang memiliki pull-up
internal sehingga ketika menulis logika 1 ke port 1 akan dihasilkan tegangan
dengan nilai 1, keadaan ini dapat digunakan sebagai masukan dengan memberi
logika low secara eksternal sehingga mengubah keadaan 1 menjadi keadaan 0
(Low) dan dapat dibaca oleh program. Sebagai tambahan P1.0 dan P1.1 dapat
dikonfigurasikan menjadi timer / counter 2 seperti pada Tabel 2.4
Tabel 2.4 Fungsi alternatif Port 1 AT89S52 (www.atmel.com/images/doc1919.pdf, 2015)
Port Pin Fungsi Alternatif P1.0 T2 (penghitung masukan eksternal untuk Timer/Counter 2) dan dapat
berfungsi sebagai pewaktu P1.1 T2EX (pengontrol arah dan penangkap triger untuk Timer/Counter 2) P1.5 MOSI (digunakan pada saat pemrograman chip) P1.6 MISO (digunakan pada saat pemrograman chip) P1.7 SCK (digunakan pada saat pemrograman chip)
5. Port 2 : Port 2 merupakan komunikasi 2 arah I/O dengan pull-up internal. Sama
halnya dengan port 1, port 2 dapat digunakan sebagai masukan dengan
menuliskan logika 1. Port 2 juga disediakan untuk keperluan pembacaan program
dan memori external. Port 2 menjadi byte tertinggi diatas Port 1 pada saat
mengakses memori dan program eksternal.
6. Port 3 : Port 3 merupakan jalur komunikasi 2 arah I/O dengan pull-up internal.
Sama halnya dengan port 1, penulisan logika 1 mengakibatkan port 3 dapat
berfungsi sebagai masukan. Port 3 juga menyediakan fungsi alternatif lain, yaitu
menjadi jalur beberapa fitur khusus yang dimiki oleh mikrokontroler AT89S52
seperti yang diperlihatkan pada Tabel 2.5.
17
Tabel 2.5 Fungsi alternatif Port 3 AT89S52 (www.atmel.com/images/doc1919 .pdf, 2015)
Port Pin Fungsi alternatif P3.0 RXD (port masukan pada komunikasi serial) P3.1 TXD (port eluaran pada komunikasi serial) P3.2 INT0 (Interupsi eksternal 0) P3.3 INT1 (Interupsi eksternal 1) P3.4 T0 (Masukan eksternal Timer 0) P3.5 T1 (Masukan eksternal Timer 1) P3.6 WR (strobe penulisan untuk data memori eksternal) P3.7 RD (strobe pembacaan untuk data memori eksternal)
7. RST : RST merupakan masukan untuk perintah reset. Pemberian logika 1 pada pin
ini selama 2 siklus mesin ketika osilator masih berjalan akan mereset pembacaan
program.
8. ALE/PROG : Address Lactch Enable (ALE). Selama pengaksesan memori
eksternal ALE menghasilkan pulsa keluaran untuk mengunci alamat byte
terendah. Pin ini juga berfungsi sebagai penerima masukan pulsa program
(PROG) saat pemrograman flash. Pada operasi normal, ALE menghasilkan pulsa
dengan kecepatan konstan sebesar 1/6 dari frekuensi osilator yang digunakan.
9. PSEN : Program Store Enable (PSEN) merupakan strobe pembacaan untuk
program memori eksternal. Ketika AT89S52 mengeksekusi kode dari memori
eksternal, PSEN diaktifkan dua kali setiap siklus mesin.
10. EA/VPP : External Acces Enable (EA) harus dihubungkan langsung ke ground
jika mikrokontroler AT89S52 digunakan untuk mengambil kode dari memori
eksternal pada alamat awal 0000H sampai FFFFH. Sedangkan untuk
mengeksekusi program pada memori internal EA harus dihubungkan langsung ke
VCC.
11. XTAL1 : Merupakan pin masukan untuk osilator dan pewaktu internal.
12. XTAL2 : Merupakan pin keluaran untuk osilator dan pewaktu internal.
2.5 Interupsi
Salah satu fitur yang dimanfaatkan dari mikrokontroler AT89S52 adalah interupsi.
Interupsi merupakan sebuah proses yang dilakukan ketika ada permintaan dalam
pemanggilan interupsi tersebut. Pada saat interupsi dipanggil proses normal akan
dihentikan sementara selama proses interupsi dijalankan, (Pascal dalam Nugroho, 2010)
18
Mikrokontroller AT89S52 menyediakan 6 vektor interupsi yang berbeda,
diantaranya ; 2 buah eksternal interupsi yaitu INT1 dan INT0, 3 buah interupsi Timer
yaitu timer 1, 2 dan 3, serta sebuah interupsi port serial. Masing-masing interupsi dapat
diaktifkan dan dipadamkan secara tersendiri dengan mengatur setiap bit pada Special
Function Register (SFR) Interrupt Enable (IE). Pada register IE juga terdapat sebuah bit
EA yang berfungsi untuk mengaktifkan atau memadamkan keseluruhan interupsi yang
di set. Isi dari SFR IE diperlihatkan pada Tabel 2.6
Tabel 2.6 Isi SFR IE AT89S52(www.atmel.com/images/doc1919.pdf, 2015)
Bit Ke- Simbol Fungsi 7 EA Memadamkan keseluruhan interupsi. Jika EA = 0, semua interupsi
padam. Jika EA = 1, interupsi yang di set akan aktif 6 - Dalam proses pengembangan untuk produk AT89 berikutnya 5 ET2 Bit untuk mengaktifkan interupsi Timer 2 4 ES Bit untuk mengaktifkan interupsi port serial 3 ET1 Bit untuk mengaktifkan interupsi Timer 1 2 EX1 Bit untuk mengaktifkan interupsi eksternal 1 1 ET0 Bit untuk mengaktifkan interupsi Timer 0 0 EX0 Bit Untuk mengaktifkan interupsi eksternal 0
Pada penelitian ini digunakan dua buah interupsi yaitu interupsi Timer 0 dan
interupsi port serial dengan baud rate dihasilkan oleh Timer 1. Timer 0 dan Timer 1
pada AT89S52 dapat diatur untuk bekerja sebagai salah satu dari 4 mode yang tersedia
diantaranya ; mode 0, mode 1, mode 2 dan mode 3.
Mode 0 merupakan mode pencacah 13 bit, dimana TL dianggap sebagai counter 5
bit dan TH dianggap sebagai counter 8 bit. Limpahan dari TL digunakan untuk
menaikkan hitungan pada TH, kemudian limpahan pada TH digunakan untuk men-set
Timer Flag (TF) sehingga interupsi dipanggil
Mode 1 merupakan mode pencacah 16 bit, dimana TL dianggap sebagai counter 8
bit dan TH dianggap sebagai counter 8 bit. Cara kerja dari mode ini adalah sama dengan
Mode 0.
Mode 2 merupakan mode pencacah auto-reload. Pada mode ini TL dan TH
dianggap sebagai counter 8 bit. Pencacahan dilakukan hanya pada TL, dan
menggunakan limpahannya untuk men-set TF. Pada saat yang sama limpahan yang
terjadi pada TL mengakibatkan isi dari TH dimuat ke TL.
19
Mode 3 pada Timer 0 dan Timer 1 memiliki fungsi yang berbeda. Pada Timer 0,
mode 3 mengakibatkan TL0 dan TH0 beroperasi sebagai timer 8 bit yang berbeda,
mode ini disediakan untuk pengaplikasian yang membutuhkan 8 bit Timer/Counter
tambahan. Sedangkan pada Timer 1, mode 3 mengakibatkan Timer 1 dihentikan dan
menahan hitungannya.
2.6 Universal Asynchronous Receiver/Transmitter (UART)
Untuk berkomunikasi dengan modul kompas CMPS 11 maka dimanfaatkan fitur
UART yang dimiliki oleh mikrokontroler AT89S52. UART merupakan media
komunikasi yang digunakan untuk berkomunikasi antar perangkat yang memiliki CPU.
UART dapat melakukan konversi data paralel ke serial pada perangkat pengirim data
(transmitter) dan konversi data serial ke paralel pada perangkat penerima data
(receiver).
Dalam komunikasi serial antar perangkat terdapat parameter yang sangat penting
untuk diperhatikan yaitu Baud rate. Baud rate merupakan bilangan yang menunjukkan
jumlah bit yang dikirim per satu detik atau bit per second (bps). Baud rate standar yang
digunakan diantaranya 110, 300, 600, 1200, 2400, 4800, 9600, 14400, 19200, 38400,
56000, 115200, 128000, dan 26500 (Setiawan, S, 2006). Baud rate antar perangkat yang
menggunakan komunikasi serial UART harus memiliki nilai yang sama, jika tidak
pengiriman data akan gagal atau data menjadi rusak.
Mikrokontroler AT89S52 menyediakan fasilitas UART dengan 4 piliham mode
diantaranya:
1. Mode 0 : Pada mode ini serial data masuk dan keluar melalui RXD pin. TXD
berfungsi sebagai penghasil shift clock. Bit yang ditransmisikan berjumlah 8 dan
bit terendah (LSB) dikirim paling awal. Baud rate pada mode ini ditetapkan
sebesar 1/12 dari frekuensi osilator.
2. Mode 1 : Pada mode ini 10 bit ditransmisikan melalui pin TXD atau diterima
melalui pin RXD. Urutan pengiriman yang dilakukan adalah; diawali dengan
start bit (0), 8 data bit (LSB dikirim terlebih dahulu), dan sebuah stop bit (1).
Baud-rate pada mode 1 dapat diatur. Timing diagram UART pada mode 1
dapat dilihat pada Gambar 2.11
20
Gambar 2.11 Timing diagram UART mode 1 pada AT89S52 (http://www.atmel.com/images/
doc4316.pdf, 2015)
3. Mode 2 : Pada mode 2, 11 bit dikirim melalui pin TXD atau diterima melalui pin
RXD. Urutan pengiriman data yang dilakukan adalah; diawali dengan start bit
(0), 8 data bit (LSB dikirim terlebih dahulu), data bit ke-9 yang dapat diprogram
dan sebuah stop bit (1). Pada transmitter data bit ke-9 merupakan Transmitter
bit 8 (TB8) pada Serial Control Register (SCON) yang dapat diisi dengan nilai
0 atau 1. Pada receiver data bit ke-9 masuk ke Receiver Bit 8 (RB8) pada SCON
dan stop bit diabaikan. Baud rate dapat diprogram menjadi 1/32 atau 1/64 dari
frekuensi osilator.
4. Mode 3 : Pada mode 3, 11 bit dikirim melalui pin TXD atau diterima melalui pin
RXD. Urutan pengiriman data pada mode 3 sama dengan mode 2, perbedaannya
adalah baudrate pada mode 3 dapat diatur. Timing diagram UART pada mode 2
dan 3 dapat dilihat pada Gambar 2.12
Gambar 2.12 Timing diagram UART mode 2 dan 3 pada AT89S52 (http://www.atmel.com/
images/doc4316.pdf, 2015)
Timer 1 dapat digunakan sebagai baud rate generator bagi UART mode 1 dan 3.
Ketika Timer 1 digunakan sebagai baud rate generator, baud rate pada mode 1 dan 3
ditentukan oleh kecepatan limpahan dan nilai SMOD.
Penggunaan Timer 1 sebagai baud rate generator mengharuskan interupsi Timer 1
dihentikan dan Timer 1 diatur untuk menjadi timer dalam mode auto-reload dengan
mengatur nibble atas dari TMOD menjadi 0010B. Pada kasus ini nilai baud-rate yang
diinginkan dapat ditentukan dengan menggunakan persamaan 2.2 dan menghitung nilai
TH1 untuk menghasilkan kecepatan limpahan yang tepat (Setiawan, S, 2006).
푓 = 2 × × ×[ ( )] (2.2)
21
Keterangan:
푓 : Frekuensi baud rate (bps)
푆푀푂퐷 : Bit 1 mode port serial untuk UART
푓푟푒푘푢푒푛푠푖 푘푟푖푠푡푎푙 : frekuensi kristal yang digunakan (Hz)
푇퐻1 : Byte tertinggi pengitung register dari Timer 1
2.7 Liquid Crystal Display M1632 (LCD M1632)
LCD M1632 merupakan sebuah komponen elektronika yang berfungsi untuk
menampilkan huruf atau karakter yang digunakan sebagai penampil data saat proses
kalibrasi dalam penelitian ini. LCD terbuat dari suatu bahan kristal cair yang merupakan
komponen organik yang dapat bersifat seperti optik misalnya Kolesteril nonanoat dan
P-azoxyanisole (Umami, 2010). Tampilan LCD M1632 dapat dilihat pada Gambar 2.13
Gambar 2.13 Tampilan LCD M1632
LCD M1632 merupakan alat penampil dengam resolusi dot 5 x 8 per karakter
beserta kursor. Jumlah baris yang disediakan adalah 2 dengan jumlah kolom 16,
sehingga jumlah karakter maksimal yang dapat ditampilkan adalah 32. Penomoran pin
dari LCD M1632 diperlihatkan pada Gambar 2.14, nomor pin dihitung dari kiri ke
kanan dengan urutan 1 sampai 16.
Gambar 2.14 Konfigurasi pin LCD M1632 (http://www.dfrobot.com/image/data/FIT0127/datasheet.pdf
, 2015)
22
Untuk menghubungkan LCD M1632 dengan mikrokontroler maka perlu diketahui
fungsi dari masing-masing pin yang terdapat pada modul LCD M1632. Fungsi masing-
masing pin yang terdapat pada modul ini diperlihatkan pada Tabel 2.7
Tabel 2.7 Fungsi masing-masing pin LCD M1632 (Setiawan, 2006)
No. Simbol Level Fungsi 1 VSS -
Power Suplay 0V (GND)
2 VCC - 5V ± 10% 3 VCC - LCD Drive 4 RS H/L H : Data In L : Instruction In 5 R/W H/L H : Read L : Write 6 E H,↓ Sinyal Enable 7 DB0 H/L
Data Bus
8 DB1 H/L 9 DB2 H/L
10 DB3 H/L 11 DB4 H/L 12 DB5 H/L 13 DB6 H/L 14 DB7 H/L 15 V+BL - Back Light
Suply 4 - 4,2V , 50 – 200 mA
16 V-BL - 0V (GND)
Untuk menulis data atau instruksi ke modul LCD M1632 perlu memperhatikan
Timing diagram seperti yang diperlihatkan pada Gambar 2.15
Gambar 2.15 Timing diagram penulisan data atau instruksi ke modul LCD M1632 (Xiamen Amotec
Display CO.,LTD, 2008)
Dari Gambar 2.15 dapat diketahui bahwa untuk mengirimkan data atau instruksi,
pin enable harus pada keadaan High terlebih dahulu, kemudian data dikirim melalui pin
23
DB, setelah itu kembalikan pin enable ke Low, sehingga akan terjadi transisi turun, dan
data siap di proses oleh modul LCD M1632. Lama pewaktuan yang diperlukan
diperlihatkan pada Tabel 2.8
Tabel 2.8 Data timing diagram LCD M1632 (Xiamen Amotec Display CO.LTD, 2008)
Parameter Symbol Test Pin Min Max Unit Enable cycle time tC
E 500 -
ns
Enable pulse time tW 300 Enable rise/fall time tr, tf - 25 RS; R/W setup time tSU1 RS; R/W 100 - RS; R/W Address hold time th1 10 - Read data output delay tSU2 DB0 –
DB7 60 -
Read data hold time th2 10 -
2.8 Low Voltage Audio Power Amplifier LM386
LM386 merupakan rangkaian terpadu penguat daya yang didesain untuk
penerapan pada rangkaian audio dengan konsumsi tegangan rendah. Pada penelitian ini
LM386 digunakan untuk memperkuat dan mengatur volume suara yang dihasilkan oleh
ISD1420 sehingga dapat didengar dengan baik dan nyaman. Adapun diagram skematik
LM386 diperlihatkan pada Gambar 2.16. Penguatan yang terdapat pada IC ini sudah di
set secara internal sebesar 20 untuk meminimalisir penggunaan komponen external,
tetapi penambahan kapasitor dan resistor external diantara pin 1 dan pin 8 akan
meningkatkan nilai penguatan dari 20 hingga 200.
Gambar 2.16 Diagram skematik IC penguat daya audio LM386 (http://www.ti.com/lit/ds/symlink/
lm386.pdf, 2015)
Masukan yang diterima LM386 direferensialkan terhadap ground sementara
output yang dihasilkan secara otomatis dibiaskan terhadap satu-setengah dari catu
24
tegangan yang diterima. Daya yang diserap pada keadaan diam hanya 24 miliwatt ketika
beroprasi dengan catu tegangan 6 volt, hal ini menjadikan LM386 ideal jika ingin
dioperasikan dengan menggunakan baterai.
Adapun beberapa fitur yang menjadi pertimbangan dalam pengguanaan IC ini
diantaranya ; tidak menggunakan komponen internal yang banyak, catu tegangan yang
dapat diterapkan luas yaitu 4V – 12V atau 5V – 18V serta distorsi yang dihasilkan
rendah yaitu sekitar 0.2 % dari masukan yang diterima pada kreteria Penguatan (AV)=
20, Catu tegangan (VS) = 6V, hambatan beban (RL) = 8 Ω , daya (PO)= 125 mW dan
frekuensi (f) = 1 kHz
LM386 tersedia dalam bentuk paket Molded Mini Smal Outline, and Dual in Line
Package (MSOP) seperti yang diperlihatkan pada Gambar 2.17
Gambar 2.17 Konfigurasi pin IC penguat daya audio LM386 (http://www.ti.com/lit/ds/symlink/lm386
.pdf, 2015)
2.9 IC LM2596
LM2596 merupakan regulator tegangan step-down dengan mode switching yang
mampu mengalirkan arus ke beban hingga 3 Ampere. IC ini tersedia dalam versi
regulator 3,3 volt, 5 volt, 12 volt dan versi tegangan keluaran yang dapat diatur.
LM2596 beroperasi pada frekuensi switching yang tetap yaitu 150 kHz sehingga
memperbolehkan penggunaan nilai komponen filter yang lebih kecil dibandingkan
regulator switching dengan frekuensi yang lebih rendah. Keuntungan yang paling
mendasar dari penggunaan regulator dengan mode switching adalah efesiensi. Menurut
datasheet LM2596 dari Texas Instrument, penggunaan tegangan masukan 12 VDC
untuk memperoleh tegangan keluaran 5 VDC akan menghasilkan efesiensi sebesar 80%,
sehingga sumber tegangan masukan dapat bertahan lebih lama jika dibandingkan
dengan penggunaan regulator linier. Namun dalam pengaplikasiannya, regulator
25
switching perlu penanganan yang lebih khusus untuk mencegah tegangan transien pada
keluarannya. Untuk mengatasi hal ini penggunaan komponen filter dengan Equivalent
Series Resistance (ESR) yang sesuai perlu diperhatikan dan teknik grounding yang baik
merupakan hal yang wajib diterapkan. Adapun konfigurasi pin dari LM2596
diperlihatkan pada Gambar 2.18
Gambar 2.18 Konfigurasi pin LM2596 (http://www.ti.com/lit/ds/symlink/lm2596.pdf, 2015)
2.10 Bahasa Assembly
Bahasa assembly merupakan salah satu tipe dari bahasa pemrograman aras rendah
(low-level programming language) setelah bahasa mesin. Bahasa pemrograman aras
rendah merupakan sebuah bahasa yang langsung mengarah ke instruksi mesin atau lebih
mendekati bahasa mesin sehingga memerlukan lebih sedikit memori dan waktu dalam
mengeksekusi setiap intruksinya dibandingkan dengan bahasa pemrograman aras
menengah (middle-level language) dan aras tinggi (high-level language programming).
Oleh karena itu penggunaan bahasa assembly sangat baik diterapkan pada penelitian ini,
karena dalam pengukuran jarak menggunakan sensor HC-SR04, memerlukan
penghitung waktu yang akurat dan cepat untuk mengurangi kesalahan dalam
pengukuran.
Mesin penghitung atau computer hanya dapat mengerti dan mengeksekusi
instruksi bahasa yang membentuk sistem nomer biner 0 dan 1 karena bahasa
pemrograman aras rendah berorientasi pada mesin, sehingga dalam pembuatan sebuah
program, seorang programmer bahasa assembly harus memiliki pengetahuan yang baik
tentang arsitektur computer seperti perangkat keras dan konfigurasinya.
Bahasa assembly menggunakan simbol alphanumerik sebagai operand dan
operasi serta digit biner dalam penulisan sintax-nya. Bahasa assembly juga dapat
disebut Bahasa Pemrograman Tersimbol (Simbolic Programming Language), karena
untuk mempresentasikan setiap kode operasi mesin dan lokasi penyimpanan digunakan
simbol-simbol alphanumerik untuk mempermudah dalam membaca program oleh
26
manusia. Adapun beberapa contoh alih kode bahasa mesin menjadi kode dalam bahasa
assembly diperlihatkan pada Tabel 2.9
Tabel 2.9 Beberapa contoh hubungan kesesuaian bahasa mensin terhadap bahasa assembly
(Kahanwal, 2013)
Language Code (Machine) (16 bit instruction set)
Assembly Language Code (Equivalent)
1000000100100101 LOAD R1 5 1000000101000101 LOAD R2 5 1010000100000110 ADD R0 R1 R2 1000001000000110 SAVE R0 6 1111111111111111 HALT Walaupun cara pengetikan dari setiap perintah bahasa assembly adalah sederhana,
namun penggunaannya tidak mudah karena sangat banyak detail-detail teknis yang
harus diingat oleh proggrammer.
2.11 Transistor 2N2222 / PN2222 Sebagai Penguat Daya
Transistor 2N2222 atau PN2222 merupakan jenis transistor NPN yang digunakan
untuk switching, dimana transistor ini memiliki kemampuan untuk merubah besar arus
yang mengalir dari kolektor ke emiter dari posisi potensial terendah hingga pontensial
tertinggi dan sebaliknya dengan kecepatan tinggi, dimana besar arus tersebut
bergantung pada besar arus yang mengalir pada basis dengan hubungan seperti yang
diperlihatkan pada persamaan 2.3
퐼 = 퐼 × 훽 (2.3)
Dimana :
퐼 : Arus yang mengalir pada kolektor (Ampere)
퐼 : Arus yang mengalir pada basis (Ampere)
훽 : Penguatan transistor disebut juga ℎ
Pada penelitian ini transistor 2N2222 atau PN2222 digunakan sebagai penguat
daya dari suara beep yang dihasilkan oleh P2.0 mikrokontroller AT89S52. Penggunaan
transistor sebagai penguat daya diperlihatkan pada Gambar 2.19.
27
Gambar 2.19. Rangkaian penguat daya dengan transistor NPN (Horowitz, P., et.al., 1989)
C1 dan C2 berfungsi sebagai high pass filter dan coupling capacitor yang haya
melewatkan sinyal AC. R1 dan R2 berfungsi sebagai pembagi tegangan yang berfungsi
untuk menjaga tegangan pada basis setengah dari tegangan VCC – Ground agar sinyal
keluaran (arus kolektor) dapat berayun dengan baik sesuai dengan sinyal masukan yang
diterima sehingga tidak terjadi pemotongan terhadap sinyal keluaran, untuk itu juga
diperluan RE untuk menjaga tegangan keluaran berada setengah dari VCC – Ground dan
membatasi arus yang mengalir dari kolektor ke emiter. C2 harus lebih besar dari C1
untuk mencegah terjadinya atenuasi, karena kedua kapasitor ini membentuk high pass
filter bertumpuk (Horowitz, P., et.al., 1989).
2.12 Kerangka Konsep
Kerangka konsep aplikasi sensor kompas dan sensor jarak pada kaca mata bagi
kaum tuna netra dengan output suara manusia berbasis mikrokontroller AT89S52
ditunjukkan pada Gambar 2.19
Sensor kompas CMPS11 Sensor Jarak HC-SR04 Tombol arah mata angin
Antarmuka: UART, protokol : 2 stop-bit tanpa parity dengan
kecepatan 9600 bps
Antarmuka: Input : Pulsa High (5V)
selama 10 μs Output : Pulsa PWM
Antarmuka: Output : sinyal transisi
turun 5V ke 0V
TX RX Echo Trigger
1 2 3 4 5
28
Gambar 2.20 Kerangka konsep aplikasi sensor kompas dan sensor jarak pada kaca mata bagi kaum tuna
netra berbasis mikrokontroller AT89S52
1 2 3 4 5
UART mode 3, protokol : 1 stop-bit dan 1 parity seolah 2 stop bit, dengan
kecepatan 9600 bps
Pin TXD Pin RXD Pin 1 Pin 2 Pin 3
Kirim perintah ambil data sudut
kompas
Set High selama 10μs
tPWM(high)/59 (μs/cm)
= jarak (cm)
Pengolahan data oleh AT89S52
Timer 0 mode 2 (Auto
reload) dengan pengaturan
interupsi setiap 59 μs
Aktifkan interupsi Timer 0
Hitung waktu dan periksa
keadaan Pin 1
Timer 1 mode 2 (Auto
reload) dengan
pengatu-ran
sebagai baud rate generator
Data 8 bit mempresentasikan
sudut kompas
Tampung data jarak pada register
Data alamat suara rekaman
Konversikan data menjadi alamat suara yang sesuai
Chip-corder ISD1420
Data 8 bit Pin kontrol
Feedback
Penguat daya audio berbasis LM386
Output Suara
Atur penghitung delay untuk suara beep
Aktifkan suara beep kemudian delay
Penguat daya audio berbasis transistor 2N2222