BAB II
DASAR TEORI
2.1. Telepon Dual Tone Multi Frequency (DTMF)
Dewasa ini hampir semua telepon yang ada sudah menggunakan tombol tekan yang disebut pesawat Telepon Dual Tone Multi Frequency (DTMF). Pada pesawat telepon jenis ini setiap tombol membangkitkan nada sebagai pengganti pulsa dial. Nada ini dihasilkan dari kombinasi dua frequensi yang berbeda. Kedelapan frekuensi ini dibagi dalam dua kelompok yaitu kelompok frekuensi rendah dan kelompok frekuensi tinggi. Gambar 2.2 memperlihatkan keyset equitment dari sebuah pesawat telepon DTMF.
Dari gambar 2.1 memperlihatkan sebuah ascilator yang mempunyai delapan frekuensi kerja. Frekuensi kerja osilator disesuaikan dengan tombol telepon yang ditekan.
Universitas Sumatera Utara
7
S1
R2
S1
L1
770 Hz
852 Hz
D1
1
R3 DIO DA REC
697 Hz
2
3
TRANSMI SSION NETWOR
EC R1
941 Hz
4 RINGE R
L2
TRAC KS
1633 Hz 1477 Hz 1366 Hz
COMM ON
4 S2
3
2 1
Gambar 2.1 : Keyset Equitment Telepon DTMF
2.2. Transistor Sebagai Saklar
Didalam pemakaiannya transistor dipakai sebagai komponen saklar (switching) dengan memanfaatkan daerah penjenuhan (saturasi) dan daerah penyumbatan (cut off) yang ada pada karakteristik transistor.
Pada daerah penjenuhan nilai resistansi persambungan kolektor emiter secara ideal sama dengan nol atau kolektor dan emiter terhubung langsung (short). Keadaan ini menyebabkan tegangan kolektor emiter (V CE ) = 0 Volt pada keadaan ideal, tetapi pada kenyataannya V CE bernilai 0 sampai 0,3 Volt. Dengan menganalogikan transistor sebagai saklar, transistor tersebut dalam keadaan on seperti pada gambar 2.2
Universitas Sumatera Utara
8 Vcc
Vcc IC
RB VB
R
Saklar On VCE
IB
VBE
Gambar 2.2 : Transistor sebagai Saklar ON
Saturasi pada transistor terjadi apabila arus pada kolektor menjadi maksimum dan untuk mencari besar arus basis agar transistor saturi adalah : I max =
Vcc ........................................................................................( 2.13) Rc
hfe . I B =
IB =
Vcc ………………………………………….…………….(2.14) Rc
Vcc hfe . Rc
………………………………………………….(2.15)
Hubungan antara tegangan basis (V B ) dan arus basis (IB ) adalah :
IB =
VB − VBE ……………………………………………………….(2.16) RB
V B = IB . R B + V BE …………………………………………………..(2.17)
Universitas Sumatera Utara
9
VB =
Vcc . R B + VBE …………………………………………………(2.13) hfe . Rc
Jika tegangan V B telah mencapai VB =
Vcc . R B + VBE , maka transistor akan saturasi, hfe . Rc
dengan Ic mencapai maksimum.
Gambar 2.21 dibawah ini menunjukkan apa yang dimaksud dengan V CE (sat) adalah harga V CE pada beberapa titik dibawah knee dengan posisi tepatnya ditentukan pada lembar data. Biasanya V CE (sat) hanya beberapa perpuluhan volt, walaupun pada arus kolektor sangat besar bisa melebihi 1 volt. Bagian dibawah knee pada gambar 2.21 dikenal sebagai daerah saturasi.
IC Penjenuhan (saturation)
Vcc Rc
IB > IB (sat) IB = IB (sat)
IB Titik Sumbat (Cut off)
IB = 0 VCE
Gambar 2.2.1 : Karakteristik daerah saturasi pada transistor
Pada daerah penyumbatan,nilai resistansi persambungan kolektor emiter secara ideal sama dengan tak terhitung atau terminal kolektor dan emiter terbuka (open). Keadaan ini menyebabkan tegangan (V CB ) sama dengan tegangan sumber (Vcc). Tetapi pada kenyataannya Vcc pada saat ini kurang dari Vcc karena terdapat
Universitas Sumatera Utara
10
arus bocor dari kolektor ke emiter. Dengan menganalogikan transistor sebagai saklar, transistor tersebut dalam keadaan off seperti gambar dibawah ini2.2.2.
Vcc
Vcc IC
RB VB
R
Saklar Off VCE
IB
VBE
Gambar 2.2.2 :Transistor Sebagai Saklar OFF
Keadaan penyumbatan terjadi apabila besar tegangan habis (V B )
sama
dengan tegangan kerja transistor (V BE ) sehingga arus basis (I B ) = 0 maka : IB =
IC ………………………………………………………………(2.19) hfe
I C = I B . hfe ….………………………………………………………(2.20)
I C = 0 . hfe ………..…………………………………………………(2.21)
I C = 0 ………………………………………………………………..(2.22) Hal ini menyebabkan V CE sama dengan Vcc dapat dibuktikan dengan rumus : Vcc = Vc + V CE …………..…………………………………………(2.23)
V CE = Vcc – (Ic . Rc) …..……………………………………………(2.24)
Universitas Sumatera Utara
11
V CE = Vcc …..………………………………………………………(2.25)
2.3 Relay
Relay adalah suatu rangkaian switch magnetik yang bekerja bila mendapat catu dan suatu rangkaian trigger. Relay memiliki tegangan dan arus nominal yang harus dipenuhi output rangkaian pendriver atau pengemudinya. Arus yang digunakan pada rangkaian adalah arus DC.
Konstruksi dalam suatu relay terdiri dari lilitan kawat (coil) yang dililitkan pada inti besi lunak. Jika lilitan kawat mendapatkan aliran arus, inti besi lunak kontak menghasilkan medan magnet dan menarik switch kontak. Switch kontak mengalami gaya listrik magnet sehingga berpidah posisi ke kutub lain atau terlepas dari kutub asalnya. Keadaan ini akan bertahan selama arus mengalir pada kumparan relay. Dan relay akan kembali keposisi semula yaitu normaly ON atau Normaly OFF, bila tidak ada lagi arus yang mengalir padanya, posisi normal relay tergantung pada jenis relay yang digunakan. Dan pemakaian jenis relay tergantung pada kadaan yang diinginkan dalam suatu rangkaian. Menurut kerjanya relay dapat dibedakan menjadi : a. Normaly Open (NO), saklar akan tertutup bila dialiri arus b. Normaly Close (OFF), saklar akan tertutup bila dialiri arus c. Change Over (CO), relay
ini mempunyai saklar tunggal yang
nomalnya
tertutup yang lama, bila kumparan 1 dialiri arus maka saklar akan terhubung ke
Universitas Sumatera Utara
12
terminal A, sebaliknya
bula kumparan 2 dialiri arus maka saklar akan
terhubung ke terminal B.
Analogi rangkaian relay yang digunakan pada tugas akhir ini adalah saat basis transistor ini dialiri arus, maka transistor dalam keadaan tertutup yang dapat menghubungkan arus dari kolektor ke emiter yang mengakibatkan relay terhubung. Sedangkan fungsi dioda disini adalah untuk melindungi transistor dari tegangan induksi berlebih, dimana tegangan ini dapat merusak transistor.
Jika transistor pada basis tidak ada arus maju, transistor terbuka sehingga arus tidak mengalir dari kolektor ke emiter, relay tidak bekerja karena tidak ada arus yang mengalir pada gulungan kawat. Bentuk relay yang digunakan da bentuk relay dengan rangkaian driver dapat dilihat pada gambar2.3.
Vcc Dioda
VB
a. Simbol
Tr
b. Relay dengan rangkaian driver
Gambar 2.3 : Simbol Relay dan Rangkaian Driver
Universitas Sumatera Utara
13
2.4 Arsitektur Mikrokontroler AT89S51
Mikrokontroler, sebagai suatu terobosan teknologi mikrokontoler dan mikrokomputer, hadir memenuhi kebutuhan pasar (market need) dan teknologi baru. Sebagai teknologi baru, yaitu teknologi semikonduktor dengan kandungan transistor yang lebih banyak namun hanya membutuhkan ruang kecil serta dapat diproduksi secara missal (dalam jumlah banyak) sehingga harga menjadi lebih murah (dibandingkan mikroprosesor). Sebagai kebetuhan pasar, mikrokontelor hadir untuk memenuhi selera industri dan para konsumen akan kebutuhan dan keinginan alat-alat Bantu dan mainan yang lebih canggih.
Ilustrasi yang mungkin bisa memberikan gambaran yang jelas dalam penggunaan mikrokontroler adalah aplikasi mesin tiket dalam arena permainan yang saat ini terkenal di Indonesia. Jika kita sudah selesai bermain, maka akan diberikan suatu nilai, nilai inilah yang menentukan berapa jumlah tiket yang bisa diperoleh dan jika dikumpulkan dapat ditukar dengan berbagai macam hadiah. Sistem tiket ini ditangani dengan mikrokontroler, karena tidak mungkin menggunakan computer PC yang harus dipasang disamping (atau di belakang) mesin permainan yang bersangkutan.
Selain sistem tiket, kita juga dapat menjumpai aplikasi mikrokontroler dalam bidang pengukuran jarak jauh atau ynag dikenal dengan sistem telemetri. Misalnya pengukuran disuatu tempat yang membahayakan manusia, maka akan lebih nyaman jika dipasang suatu sistem pengukuran yang bisa mengirimkan data lewat pemancar dan diterima oleh stasiun pengamatan dari jarak yang cukup aman dari sumbernya.
Universitas Sumatera Utara
14
Sistem pengukuran jarak jauh ini jelas membutuhkan suatu sistem akuisisi data sekaligus sistem pengiriman data secara serial (melalui pemancar), yang semuanya itu bisa diperoleh dari mikrokontroler yang digunakan.
Tidak seperti sistem komputer, yang mampu menangani berbagai macam program aplikasi (misalnya pengolah kata, pengolah angka dan lain sebagainya), mikrokontroler hanya bisa digunakan untuk satu aplikasi tertentu saja. Perbedaan lainnya terletak pada perbandingan RAM-nya dan ROM. Pada sistem computer perbandingan RAM dan ROM-nya besar, artinya program-program pengguna disimpan dalam ruang RAM yang relative besar, sedangkan rutin-rutin antarmuka perangkat keras disimpan dalam ruang ROM yang kecil. Sedangkan pada mikrokontroler, perbandingan ROM dan RAM-nya yang besar artinya program control disimpan dalam ROM (bisa Masked ROM atau Flash PEROM) yang ukurannya relatif lebih besar, sedangkan RAM digunakan sebagai tempat penyimpanan
sementara,
termasuk
register-register
yang
digunakan
pada
mikrokontroler yang bersangkutan.
2.5 Kontruksi AT89S51
Mikrokontrol AT89S51 hanya memerlukan tambahan 3 kapasitor, 1 resistor dan 1 kristal serta catu daya 5 Volt. Kapasitor 10 mikro-Farad dan resistor 10 Kilo Ohm dipakai untuk membentuk rangkaian reset. Dengan adanya rangkaian reset ini AT89S51 otomatis direset begitu rangkaian menerima catu daya. Kristal dengan
Universitas Sumatera Utara
15
frekuensi maksimum 24 MHz dan kapasitor 30 piko-Farad dipakai untuk melengkapi rangkaian osilator pembentuk clock yang menentukan kecepatan kerja mikrokontroler. Memori merupakan bagian yang sangat penting pada mikrokontroler. Mikrokontroler memiliki dua macam memori yang sifatnya berbeda.
Read Only Memory (ROM) yang isinya tidak berubah meskipun IC kehilangan catu daya. Sesuai dangan keperluannya, dalam susunan MCS-51 memori penyimpanan progam ini dinamakan sebagai memori progam. Random Access Memori (RAM) isinya akan sirna begitu IC kehilangan catu daya, dipakai untuk menyimpan data pada saat progam bekerja. RAM yang dipakai untuk menyimpan data ini disebut sebagai memori data.
Ada berbagai jenis ROM. Untuk mikrokontroler dengan progam yang sudah baku dan diproduksi secara masal, progam diisikan ke dalam ROM pada saat IC mikrokontroler dicetak di pabrik IC.
Untuk keperluan tertentu mikrokontroler
mengunakan ROM yang dapat diisi ulang atau Programble-Eraseable ROM yang disingkat menjadi PEROM atau PROM. Dulu banyak dipakai UV-EPROM (Ultra Violet Eraseable Progamble ROM) yang kemudian dinilai mahal dan ditinggalkan setelah ada flash PEROM yang harganya jauh lebih murah.
Jenis memori yang dipakai untuk Memori Program AT89S51 adalah Flash PEROM, program untuk mengendalikan mikrokontroler diisikan ke memori itu lewat bantuan alat yang dinamakan sebagai AT89S51 Flash PEROM Programmer.
Universitas Sumatera Utara
16
Memori Data yang disediakan dalam chip AT89S51 sebesar 128 byte, meskipun hanya kecil saja tapi untuk banyak keperluan memori kapasitas itu sudah cukup. Sarana Input/Ouput yang disediakan cukup banyak dan bervariasa. AT89S51
mempunyai 32 jalur Input/Ouput. Jalur Input/Ouput paralel dikenal sebagai Port 1 (P1.0..P1.7) dan Port 3 (P3.0..P3.5 dan P3.7).
AT89S51 dilengkapi UART (Universal Asyncronous Receiver/Transmiter) yang biasa dipakai untuk komunikasi data secara seri. Jalur untuk komunikasi data seri (RXD dan TXD) diletakan berhimpitan dengan P1.0 dan P1.1 di kaki nomor 2 dan 3, seningga kalau sarana input/ouput yang bekerja menurut fungsi waktu. Clock penggerak untaian pencacah ini bisa berasal dari oscillator kristal atau clock yang diumpan dari luar lewat T0 dan T1. T0 dan T1 berhimpitan dengan P3.4 dan P3.5, sehingga P3.4 dan P3.5 tidak bisa dipakai untuk jalur input/ouput parelel kalau T0 dan T1 dipakai.
AT89S51 mempunyai enam sumber pembangkit interupsi, dua diantaranya adalah sinyal interupsi yang diumpankan ke kaki INT0 dan INT1. Kedua kaki ini berhimpitan dengan P3.2 dan P3.3 sehingga tidak bisa dipakai sebagai jalur input/output parelel kalau INT0 dan INT1 dipakai untuk menerima sinyal interupsi. Port 1 dan 2, UART, Timer 0,Timer 1 dan sarana lainnya merupakan register yang secara fisik merupakan RAM khusus, yang ditempatkan di Special Functoin Regeister (SFR).
Universitas Sumatera Utara
17
Gambar 2.5 : IC Mikrokontroler AT89S51
Deskripsi pin-pin pada mikrokontroler AT89S51 : VCC (Pin 40) Suplai tegangan GND (Pin 20) Ground Port 0 (Pin 39-Pin 32) Port 0 dapat berfungsi sebagai I/O biasa, low order multiplex address/data ataupun penerima kode byte pada saat flash progamming Pada fungsi sebagai I/O biasa port ini dapat memberikan output sink ke delapan buah TTL input atau dapat diubah sebagai input dengan memberikan logika 1 pada port tersebut.
Universitas Sumatera Utara
18
Pada fungsi sebagai low order multiplex address/data, por ini akan mempunyai internal pull up. Pada saat flash progamming diperlukan eksternal pull up, terutama pada saat verifikasi program. Port 2 (Pin 21 – pin 28) Port 2 berfungsi sebagai I/O biasa atau high order address, pada saat mengaksememori secara 16 bit. Pada saat mengakses memori 8 bit, port ini akan mengeluarkan isi dari P2 special function register. Port ini mempunyai internal pull up dan berfungsi sebagai input dengan memberikan logika 1. Sebagai output, port ini dapat memberikan output sink keempat buah input TTL. Port 3 (Pin 10 – pin 17) Port 3 merupakan 8 bit port I/O dua arah dengan internal pullup. Port 3 juga mempunyai fungsi pin masing-masing, yaitu sebagai berikut : Nama pin
Fungsi
P3.0 (pin 10)
RXD (Port input serial)
P3.1 (pin 11)
TXD (Port output serial)
P3.2 (pin 12)
INTO (interrupt 0 eksternal)
P3.3 (pin 13)
INT1 (interrupt 1 eksternal)
P3.4 (pin 14)
T0 (input eksternal timer 0)
P3.5 (pin 15)
T1 (input eksternal timer 1)
P3.6 (pin 16)
WR (menulis untuk eksternal data memori)
P3.7 (pin 17)
RD (untuk membaca eksternal data memori)
Tabel 2.5 fungsi –fungsi dari Port 3 pada Mikrokontroler AT89S51
Universitas Sumatera Utara
19
RST (pin 9) Reset akan aktif dengan memberikan input high selama 2 cycle. ALE/PROG (pin 30) Address latch Enable adalah pulsa output untuk me-latch byte bawah dari alamat selama mengakses memori eksternal. Selain itu, sebagai pulsa input progam (PROG) selama memprogam Flash. PSEN (pin 29) Progam store enable digunakan untuk mengakses memori progam eksternal. EA (pin 31) Pada kondisi low, pin ini akan berfungsi sebagai EA yaitu mikrokontroler akan menjalankan progam yang ada pada memori eksternal setelah sistem direset. Jika kondisi high, pin ini akan berfungsi untuk menjalankan progam yang ada pada memori internal. Pada saat flash progamming, pin ini akan mendapat tegangan 12 Volt. XTAL1 (pin 19) Input untuk clock internal. XTAL2 (pin 18) Output dari osilator.
Universitas Sumatera Utara
20
2.6 Perangkat Lunak 2.6.1 Bahasa Assembly MCS-51
Bahasa yang digunakan untuk memprogram IC mikrokontroler AT89S51 adalah bahasa assembly untuk MCS-51. angka 51 merupakan jumlah instruksi pada bahasa ini hanya ada 51 instruksi. Dari 51 instruksi, yang sering digunakan orang hanya 10 instruksi. Instruksi –instruksi tersebut antara lain : 1. Instruksi MOV Perintah ini merupakan perintah untuk mengisikan nilai ke alamat atau register tertentu. Pengisian nilai dapat secara langsung atau tidak langsung. Contoh pengisian nilai secara langsung MOV R0,#20h Perintah di atas berarti : isikan nilai 20 Heksadesimal ke register 0 (R0). Tanda # sebelum bilangan menunjukkan bahwa bilangan tersebut adalah nilai. Contoh pengisian nilai secara tidak langsung MOV 20h,#80h ........... ............ MOV R0,20h Perintah di atas
berarti : isikan nilai yang terdapat pada alamat 20
Heksadesimal ke register 0 (R0). Tanpa tanda # sebelum bilangan menunjukkan bahwa bilangan tersebut adalah alamat.
Universitas Sumatera Utara
21
2. Instruksi DJNZ Decreament Jump If Not Zero (DJNZ) ini merupakan perintah untuk mengurangi nilai register tertentu dengan 1 dan lompat jika hasil pengurangannya belum nol. Contoh , MOV R0,#80h Loop: ........... ............ DJNZ R0,Loop ............ R0 -1, jika belum 0 lompat ke loop, jika R0 = 0 maka program akan meneruskan ke perintah pada baris berikutnya.
3. Instruksi ACALL Instruksi ini berfungsi untuk memanggil suatu rutin tertentu. Contoh : ............. ACALL TUNDA ............. TUNDA: ................ . 4. Instruksi RET Instruksi RETURN (RET) ini merupakan perintah untuk kembali ke rutin pemanggil setelah instruksi ACALL dilaksanakan. Contoh, ACALL TUNDA .............
Universitas Sumatera Utara
22
TUNDA: ................. RET
5. Instruksi JMP
(Jump)
Instruksi ini merupakan perintah untuk lompat ke alamat tertentu. Contoh, Loop: ................. ................. JMP Loop
6. Instruksi JB
(Jump if bit)
Instruksi ini merupakan perintah untuk lompat ke alamat tertentu, jika pin yang dimaksud berlogika high (1). Contoh, Loop: JB P1.0,Loop .................
7. Instruksi JNB
(Jump if Not bit)
Instruksi ini merupakan perintah untuk lompat ke alamat tertentu, jika pin yang dimaksud berlogika Low (0). Contoh, Loop: JNB P1.0,Loop .................
8. Instruksi CJNZ
(Compare Jump If Not Equal)
Universitas Sumatera Utara
23
Instruksi ini berfungsi untuk membandingkan nilai dalam suatu register dengan suatu nilai tertentu. Contoh, Loop: ................ CJNE R0,#20h,Loop ................ Jika nilai R0 tidak sama dengan 20h, maka program akan lompat ke rutin Loop. Jika nilai R0 sama dengan 20h,maka program akan melanjutkan instruksi selanjutnya.
9. Instruksi DEC (Decreament) Instruksi ini merupakan perintah untuk mengurangi nilai register yang dimaksud dengan 1. Contoh, MOV R0,#20h
R0 = 20h
................ DEC R0
R0 = R0 – 1
.............
10. Instruksi INC (Increament) Instruksi ini merupakan perintah untuk menambahkan nilai register yang dimaksud dengan 1. Contoh, MOV R0,#20h
R0 = 20h
................ INC R0
R0 = R0 + 1
.............
Universitas Sumatera Utara
24
11. Dan lain sebagainya
2.6.2 Program yang diisi pada Mikrokontroler AT89S51 pada alat Buzzer
Bit P3.7
Utama: Setb Buzzer Mov P3,#0h acall tunda Acall tunda acall tunda acall tunda Nyala: mov a,p1 anl a,#0fh cjne a,#9,Mati Setb Buzzer sjmp Run_Nyala Mati: mov a,p1 anl a,#0fh cjne a,#11,Cek Setb Buzzer ljmp Run_Mati Cek: mov a,p1 anl a,#0fh cjne a,#12,Nyala Setb Buzzer ljmp Run_Cek
run_Nyala: acall acall acall acall acall acall acall acall acall acall acall acall
tunda tunda tunda tunda tunda tunda tunda tunda tunda tunda tunda tunda
Nylala_Nilai1: mov a,p1 anl a,#0fh
Universitas Sumatera Utara
25
cjne a,#1,Nylala_Nilai2 Setb P3.0 acall tunda sjmp Nyala Nylala_Nilai2: mov a,p1 anl a,#0fh cjne a,#2,Nylala_Nilai3 Setb P3.1 acall tunda sjmp Nyala Nylala_Nilai3: mov a,p1 anl a,#0fh cjne a,#3,Nylala_Nilai4 Setb P3.2 acall tunda sjmp Nyala Nylala_Nilai4: mov a,p1 anl a,#0fh cjne a,#4,Nylala_Nilai5 Setb P3.3 acall tunda sjmp Nyala Nylala_Nilai5: mov a,p1 anl a,#0fh cjne a,#5,Nylala_Nilai6 Setb P3.4 acall tunda sjmp Nyala Nylala_Nilai6: mov a,p1 anl a,#0fh cjne a,#6,Nylala_Nilai7 Setb P3.5 acall tunda ljmp Nyala Nylala_Nilai7: mov a,p1 anl a,#0fh cjne a,#7,Nylala_Nilai8 Setb P3.6 acall tunda ljmp Nyala Nylala_Nilai8: mov a,p1 anl a,#0fh cjne a,#8,Nylala_Nilai9 Setb P3.7 acall tunda ljmp Nyala Nylala_Nilai9: mov a,p1 anl a,#0fh cjne a,#10,Nylala_Nilai1 mov p3,#0ffh acall tunda ljmp Nyala
Universitas Sumatera Utara
26
run_Mati: acall tunda acall tunda acall tunda acall tunda acall tunda acall tunda acall tunda acall tunda acall tunda acall tunda acall tunda acall tunda Mati_Nilai1: mov a,p1 anl a,#0fh cjne a,#1,Mati_Nilai2 Clr P3.0 acall tunda ljmp Nyala Mati_Nilai2: mov a,p1 anl a,#0fh cjne a,#2,Mati_Nilai3 Clr P3.1 acall tunda ljmp Nyala Mati_Nilai3: mov a,p1 anl a,#0fh cjne a,#3,Mati_Nilai4 Clr P3.2 acall tunda ljmp Nyala Mati_Nilai4: mov a,p1 anl a,#0fh cjne a,#4,Mati_Nilai5 Clr P3.3 acall tunda ljmp Nyala Mati_Nilai5: mov a,p1 anl a,#0fh cjne a,#5,Mati_Nilai6 Clr P3.4 acall tunda ljmp Nyala Mati_Nilai6: mov a,p1 anl a,#0fh cjne a,#6,Mati_Nilai7 Clr P3.5 acall tunda ljmp Nyala Mati_Nilai7: mov a,p1 anl a,#0fh
Universitas Sumatera Utara
27
cjne a,#7,Mati_Nilai8 Clr P3.6 acall tunda ljmp Nyala Mati_Nilai8: mov a,p1 anl a,#0fh cjne a,#8,Mati_Nilai9 Clr P3.7 acall tunda ljmp Nyala
Mati_Nilai9: mov a,p1 anl a,#0fh cjne a,#10,Mati_Nilai1 mov p3,#0h acall tunda ljmp Nyala run_Cek: acall tunda acall tunda acall tunda acall tunda acall tunda acall tunda acall tunda acall tunda acall tunda acall tunda acall tunda acall tunda Cek_Nilai1: mov a,p1 anl a,#0fh cjne a,#1,Cek_Nilai2 Jnb P2.0,Low1 acall Hidup_Buzzer acall Hidup_Buzzer ljmp Nyala Low1: acall Hidup_Buzzer ljmp Nyala Cek_Nilai2: mov a,p1 anl a,#0fh cjne a,#2,Cek_Nilai3 Jnb P2.1,Low2 acall Hidup_Buzzer acall Hidup_Buzzer ljmp Nyala Low2: acall Hidup_Buzzer ljmp Nyala
Universitas Sumatera Utara
28
Cek_Nilai3: mov a,p1 anl a,#0fh cjne a,#3,Cek_Nilai4 Jnb P2.2,Low3 acall Hidup_Buzzer acall Hidup_Buzzer ljmp Nyala Low3: acall Hidup_Buzzer ljmp Nyala Cek_Nilai4: mov a,p1 anl a,#0fh cjne a,#4,Cek_Nilai5 Jnb P2.3,Low4 acall Hidup_Buzzer acall Hidup_Buzzer ljmp Nyala Low4: acall Hidup_Buzzer ljmp Nyala Cek_Nilai5: mov a,p1 anl a,#0fh cjne a,#5,Cek_Nilai6 Jnb P2.4,Low5 acall Hidup_Buzzer acall Hidup_Buzzer ljmp Nyala Low5: acall Hidup_Buzzer ljmp Nyala Cek_Nilai6: mov a,p1 anl a,#0fh cjne a,#6,Cek_Nilai7 Jnb P2.5,Low6 acall Hidup_Buzzer acall Hidup_Buzzer ljmp Nyala Low6: acall Hidup_Buzzer ljmp Nyala Cek_Nilai7: mov a,p1 anl a,#0fh cjne a,#7,Cek_Nilai8 Jnb P2.6,Low7 acall Hidup_Buzzer acall Hidup_Buzzer ljmp Nyala Low7: acall Hidup_Buzzer ljmp Nyala
Universitas Sumatera Utara
29
Cek_Nilai8: mov a,p1 anl a,#0fh cjne a,#8,balik_Cek_Nilai1 Jnb P2.7,Low8 acall Hidup_Buzzer acall Hidup_Buzzer ljmp Nyala Low8: acall Hidup_Buzzer ljmp Nyala balik_Cek_Nilai1: Ljmp Cek_Nilai1 tunda: mov r7,#255 tnd: mov r6,#255 djnz r6,$ djnz r7,tnd ret Hidup_Buzzer: Clr buzzer acall tunda_Buzzer Setb Buzzer acall tunda_Buzzer Ret tunda_Buzzer: mov r7,#5 tnd_Buzzer: mov r6,#255 td_Buzzer: mov r5,#255 djnz r5,$ djnz r6,td_Buzzer djnz r7,tnd_Buzzer ret
Universitas Sumatera Utara
30
2.6.3
Software 8051 Editor, Assembler, Simulator (IDE)
Instruksi-instruksi yang merupakan bahasa assembly tersebut dituliskan pada sebuah editor, yaitu 8051 Editor, Assembler, Simulator (IDE). Tampilannya pada gambar 2.6.3.
Gambar 2.6.3 : 8051 Editor, Assembler, Simulator (IDE)
Setelah program selesai ditulis, kemudian di-save dan kemudian di-Assemble (di-compile). Pada saat di-assemble akan tampil pesan peringatan dan kesalahan. Jika masih ada kesalahan atau peringatan, itu berarti ada kesalahan
dalam penulisan
perintah atau ada nama subrutin yang sama, sehingga harus diperbaiki terlebih dahulu sampai tidak ada pesan kesalahan lagi.
Software 8051IDE ini berfungsi untuk merubah program yang kita tuliskan ke dalam bilangan heksadesimal, proses perubahan ini terjadi pada saat peng-compile-an. Bilangan heksadesimal inilah yang akan dikirimkan ke mikrokontroller.
Universitas Sumatera Utara
31
2.6.4
Software Downloader
Untuk mengirimkan bilangan-bilangan heksadesimal ini ke mikrokontroller digunakan software ISP- Flash Programmer 3.0a yang dapat didownload dari internet. Tampilannya seperti gambar 2.6.4:
Gambar 2.6.4 : Software ISP- Flash Programmer 3.0a
Cara menggunakannya adalah dengan meng-klik Open File untuk mengambil file heksadesimal dari hasil kompilasi 8051IDE, kemudian klik Write untuk mengisikan hasil kompilasi tersebut ke mikrokontroller.
Universitas Sumatera Utara