6 BAB II TINJAUAN PUSTAKA 2.1 HC

advertisement
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
6
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.robotelectronics.co.uk/htm/cmps11ser.htm, 2015)
Perintah
0x11
0x12
0x13
0x14
0x15
0x16
0x17
Nama
GET VERSION
GET ANGLE 8 BIT
GET ANGLE 16 BIT
GET PITCH
GET ROLL
GET PITCH NO KAL
GET ROLL NO KAL
Byte
diperoleh
1
1
2
1
1
1
1
GET MAG RAW
0x19
6
GET ACCEL RAW
0x20
6
GET GYRO RAW
0x21
6
GET TEMP
0x22
2
GET ALL
0x23
0xF0
0xF5
0xF6
0xF7
0xF8
0x6A
4
CALIBRATE BYTE 1
CALIBRATE BYTE 2
CALIBRATE BYTE 2
FULL
CALIBRATE BYTE 2
FLAT
CALIBRATE EXIT
RESTORE 1
1
1
1
1
1
1
Deskripsi data yang diperoleh
Versi software CMPS11
Sudut sebagai byte tunggal 0-255
Sudut sebagai 2 byte 0-3599, byte
tertinggi diperoleh pertama
Sudut tanjakan ± 0-85° dengan
Kalman filter
Sudut kemiringan ± 0-85° dengan
Kalman filter
Sudut tanjakan ± 0-85° tanpa
Kalman filter
Sudut kemiringan ± 0-85° tanpa
Kalman filter
Data mentah untuk medan magnet,
penerima 16 bit dengan data X
High,X Low, Y High, Y Low, Z
High, Z Low
Data mentah untuk percepatan,
penerima 16 bit dengan data X
High,X Low, Y High, Y Low, Z
High, Z Low
Data mentah gyro, penerima 16 bit
dengan data X High,X Low, Y
High, Y Low, Z High, Z Low
Temperatur sebagai 2 byte, byte
tertinggi dikirim di awal dengan
resolusi 8LSB/°C
Sudut tertinggi, sudut terendah (03599), sudut tanjakan (± 0-85),
sudut kemiringan (± 0-85)
Tanda OK (0x55)
Tanda OK (0x55)
Tanda OK (0x55)
Tanda OK (0x55)
Tanda OK (0x55)
Tanda OK (0x55)
10
0x7C
0x81
0xA0
0xA1
RESTORE 2
RESTORE 3
BAUD 19200
BAUD 38400
1
1
1
1
Tanda OK (0x55)
Tanda OK (0x55)
Tanda OK (0x55)
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
A0-A7
1-6, 9, 10
Fungsi
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,
12, 13
Ground : Rangkaian analog dan digital yang terdapat di
VSSA
dalam IC ISD 1420 menggunakan ground yang terpisah
untuk mengurangi noise.
SP+, SP-
14,15
Pin keluaran untuk speaker dengan impedansi 16 ohm
VCCA,
16,28
Supply Voltage : ISD 1420 juga menggunakan koneksi yang
VCCD
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
21
OUT
PLAYL
Analog Output : Pin ini menghasilkan keluaran yang
diperoleh dari output preamplifier
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
TREC
TPLAY
TLED1
TLED2
TRUPD
TRPDD
TPPUD
TPPDD
TEOM
TSET
THOLD
2.4
Characteristic
Record duration
Playback duration
RECLED on delay
RECLED off delay
Record power up delay
Record power down delay
Play power up delay
Play power down delay
EOM Pulse width
Address setup time
Address hold time
Min
20
20
40
300
0
Typ
5
48,6
32
32
32
8,1
15,625
-
Max
110
-
Unit
Sec
msec
nsec
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
P1.0
P1.1
P1.5
P1.6
P1.7
Fungsi Alternatif
T2 (penghitung masukan eksternal untuk Timer/Counter 2) dan dapat
berfungsi sebagai pewaktu
T2EX (pengontrol arah dan penangkap triger untuk Timer/Counter 2)
MOSI (digunakan pada saat pemrograman chip)
MISO (digunakan pada saat pemrograman chip)
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
P3.0
P3.1
P3.2
P3.3
P3.4
P3.5
P3.6
P3.7
Fungsi alternatif
RXD (port masukan pada komunikasi serial)
TXD (port eluaran pada komunikasi serial)
INT0 (Interupsi eksternal 0)
INT1 (Interupsi eksternal 1)
T0 (Masukan eksternal Timer 0)
T1 (Masukan eksternal Timer 1)
WR (strobe penulisan untuk data memori eksternal)
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
7
EA
6
5
4
3
2
1
0
ET2
ES
ET1
EX1
ET0
EX0
Fungsi
Memadamkan keseluruhan interupsi. Jika EA = 0, semua interupsi
padam. Jika EA = 1, interupsi yang di set akan aktif
Dalam proses pengembangan untuk produk AT89 berikutnya
Bit untuk mengaktifkan interupsi Timer 2
Bit untuk mengaktifkan interupsi port serial
Bit untuk mengaktifkan interupsi Timer 1
Bit untuk mengaktifkan interupsi eksternal 1
Bit untuk mengaktifkan interupsi Timer 0
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
2.7
: Byte tertinggi pengitung register dari Timer 1
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 masingmasing pin yang terdapat pada modul ini diperlihatkan pada Tabel 2.7
Tabel 2.7 Fungsi masing-masing pin LCD M1632 (Setiawan, 2006)
No.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Simbol
VSS
VCC
VCC
RS
R/W
E
DB0
DB1
DB2
DB3
DB4
DB5
DB6
DB7
V+BL
V-BL
Level
H/L
H/L
H,↓
H/L
H/L
H/L
H/L
H/L
H/L
H/L
H/L
-
Fungsi
0V (GND)
5V ± 10%
LCD Drive
H : Data In
L : Instruction In
H : Read
L : Write
Sinyal Enable
Power Suplay
Data Bus
Back Light
Suply
4 - 4,2V , 50 – 200 mA
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
Enable cycle time
Enable pulse time
Enable rise/fall time
RS; R/W setup time
RS; R/W Address hold time
Read data output delay
Read data hold time
2.8
Symbol
tC
tW
tr, tf
tSU1
th1
tSU2
th2
Test Pin
E
RS; R/W
DB0 –
DB7
Min
500
300
100
10
60
10
Max
25
-
Unit
ns
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)
1000000100100101
1000000101000101
1010000100000110
1000001000000110
1111111111111111
Assembly Language Code
(Equivalent)
LOAD R1 5
LOAD R2 5
ADD R0 R1 R2
SAVE R0 6
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 stopbit 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
1
RX
Echo
Trigger
2
3
4
5
28
1
2
3
4
5
Pin RXD
Pin TXD
Pin 1
Pin 2
Pin 3
UART mode 3, protokol
: 1 stop-bit dan 1 parity
seolah 2 stop bit, dengan
kecepatan 9600 bps
Hitung waktu
dan periksa
keadaan Pin 1
Set High
selama
10μs
Kirim perintah
ambil data sudut
kompas
tPWM(high)/
59 (μs/cm)
= jarak (cm)
Timer 1
mode 2
(Auto
reload)
dengan
pengaturan
sebagai
baud rate
generator
Aktifkan
interupsi Timer 0
Data 8 bit
mempresentasikan
sudut kompas
Timer 0 mode
2 (Auto
reload) dengan
pengaturan
interupsi setiap
59 μs
Tampung data
jarak pada register
Atur penghitung delay
untuk suara beep
Konversikan data menjadi
alamat suara yang sesuai
Data alamat
suara rekaman
Aktifkan suara beep
kemudian delay
Data 8 bit
Pin
kontrol
Feedback
Chip-corder ISD1420
Pengolahan data
oleh AT89S52
Penguat daya audio berbasis
transistor 2N2222
Penguat daya audio berbasis LM386
Output Suara
Gambar 2.20 Kerangka konsep aplikasi sensor kompas dan sensor jarak pada kaca mata bagi kaum tuna
netra berbasis mikrokontroller AT89S52
Download
Study collections