• Tidak ada hasil yang ditemukan

PHONE BOOK TELEPON DENGAN MENGGUNAKAN MIKROKONTROLER AT89C51 TUGAS AKHIR

N/A
N/A
Protected

Academic year: 2021

Membagikan "PHONE BOOK TELEPON DENGAN MENGGUNAKAN MIKROKONTROLER AT89C51 TUGAS AKHIR"

Copied!
97
0
0

Teks penuh

(1)

PHONE BOOK TELEPON DENGAN MENGGUNAKAN

MIKROKONTROLER AT89C51

TUGAS AKHIR

Diajukan Sebagai Salah Satu Syarat Untuk Memperoleh Gelar Sarjana (Strata-1)

Oleh :

HERI HERDIANA 4140411-168

JURUSAN TEKNIK ELEKTRO

FAKULTAS TEKNOLOGI INDUSTRI

UNIVERSITAS MERCUBUANA

JAKARTA

(2)

LEMBAR PENGESAHAN

Nama : Heri Herdiana

NIM : 4140411-168

Peminatan : Elektronika

Judul Tugas Akhir : Phone Book Telepon dengan menggunakan

Mikrokontroler AT89C51

Jakarta, 16 Februari 2008

Disetujui dan disahkan oleh : Pembimbing,

(3)

ABSTRAK

Dewasa ini telepon merupakan sarana komunikasi yang sangat vital dalam kehidupan sehari-hari, bagi sebagian masyarakat alat komunikasi ini sudah menjadi suatu kebutuhan. Namun kadang kala kita tidak dapat mengontrol penggunaannya, karena telepon sering kali digunakan oleh orang yang tidak bertanggung jawab. Untuk mengatasi masalah ini, penulis membuat suatu alat yang dapat mengontrol/membatasi penggunaan telepon.

Rangkaian utama alat ini menggunakan rangkaian DTMF. Telepon dengan system dialing tone akan menghasilkan sinyal DTMF saat papan tombol ditekan, sinyal tersebut akan dideteksi oleh rangkaian DTMF untuk kemudian di ubah menjadi kode biner. Sebagai rangkaian kontrol dan pemroses data digunakan mikrokontroler AT89C51. EEPROM digunakan untuk menyimpan memori.

Pembuatan tugas akhir ini bertujuan membuat suatu alat berupa phone book untuk dapat menyimpan nomor telepon secara elektronik yang dapat dipasang pada telepon dengan sistem tone dialing. Alat ini juga berfungsi untuk membatasi penggunaan telepon.

(4)

KATA PENGANTAR

Puji dan syukur penulis panjatkan ke-hadirat Allah SWT yang telah memberikan kekuatan lahir dan batin sehingga akhirnya penulis dapat selesai menyusun laporan tugas akhir.

Tugas akhir ini dibuat sebagai salah satu syarat guna memperoleh kelulusan program S-1 Teknik Elektro, Fakultas Teknologi Industri, Universitas Mercubuana.

Atas selesainya tugas akhir ini, tidah lupa penulis mengucapkan banyak terima kasih kepada berbagai pihak yang telah banyak membantu, terutama kepada:

1. Kedua orang tua yang telah membimbing, membantu dan memberikan dorongan baik secara moril maupun materil.

2. Jaja Kustija, MSc selaku pembimbing tugas akhir.

3. Ir. Budi Yanto Husodo, MSc selaku Ketua Jurusan Teknik Elektro Universitas Mercubuana.

4. Yudhi Ghunardi, ST,MT selaku koordinator Tugas Akhir Teknik Elektro Universitas Mercubuana.

(5)

Akhirnya penulis berharap semoga karya tugas akhir ini dapat memberikan manfaat, khususnya kepada penulis dan umumnya kepada para pembaca.

Jakarta, Februari 2008

(6)

DAFTAR ISI

ABSTRAK ... i

KATA PENGANTAR ... ii

DAFTAR ISI ... iv

DAFTAR GAMBAR ... vii

DAFTAR TABEL ... viii

BAB I PENDAHULUAN 1.1. Latar Belakang Masalah ... 1

1.2. Perumusan Masalah ... 2

1.3. Pembatasan Masalah ... 3

1.4. Tujuan Penulisan ... 3

1.5. Sistematika Penulisan ... 3

BAB II LANDASAN TEORI 2.1. Telepon ……….. 5

(7)

2.3.4. Special Function Register (SFR) ……… 18

2.3.5. Timer/Counter ………. 19

2.3.6. Program Status Word (PSW) ………. 20

2.3.7. Power Control Register (PCON) ……… 22

2.3.8. Perangkat lunak mikrokontroler AT89C51 ... 22

2.3.8.1. Mode pengalamatan ... 23

2.3.8.2. Perangkat Instruksi mikrokontroler AT89C51 24

2.4. LCD ... 25

2.4.1. Standar LCD HD447780 ... 26

2.4.2. Inisialisasi LCD ……… 28

2.4.3. Pengiriman Data/ Instruksi Ke LCD………... 29

2.5. EEPROM ………... 30

2.5.1. Akses Data serial EEPROM………... 32

2.5.2. Penulisan Data ……….. 32

2.5.3. Pembacaan data ... 33

BAB III PERANCANGAN 3.1. Tujuan Perancangan ... 35

3.2. Tahap-tahap perancangan ... 35

3.3. Diagram Blok ... 36

3.4. Perancangan Perangkat Keras ... 40

(8)

3.4.3. Rangkaian pendeteksi dering ... 43

3.4.4. Rangkaian pendeteksi hook ... 44

3.4.5. Rangkaian pemutus line telepon ... 45

3.5. Perancangan perangkat lunak ... 46

3.6 Cara Kerja Alat ... 49

BAB IV PENGUJIAN DAN ANALISA 4.1 Pengujian pendeteksi dering ... 50

4.2 Pengujian pendeteksi hook ... 50

4.3. Pengujian pemutus line ... 51

BAB V KESIMPULAN DAN SARAN 5.1. Kesimpulan ... 52

5.2. Saran ... 52

DAFTAR PUSTAKA LAMPIRAN A

(9)

DAFTAR GAMBAR

Gambar 2.1. Menghubungkan IC MT8888 dengan mikrokontroler Gambar 2.2. Blok diagram AT89C51

Gambar 2.3. Susunan pin AT89C51

Gambar 2.4. Struktur memori mikrokontroler AT89C51 Gambar 2.5. Susunan Memori Program Eksternal Gambar 2.6. Memori data eksternal

Gambar 2.7. Menghubungkan AT89C51 dengan RAM eksternal Gambar 2.8. Hubungan ke kristal

Gambar 2.9. Urutan inisialisasi untuk koneksi data 8 bit Gambar 2.10. Susunan pin IC 24CXX

Gambar 2.11. Menghubungkan 24C64 dengan mikrokontroler Gambar 2.12. Pengalamatan serial EEPROM

Gambar 2.13. Penulisan secara byte Gambar 2.14. Penulisan secara page

Gambar 2.15. Pembacaan secara Current Read Gambar 2.16. Pembacaan secara Random Read Gambar 2.17. Pembacaan secara Sequential Read Gambar 3.1. Diagram blok rangkaian

(10)

Gambar 3.3. Rangkaian sistem minimum mikrokontroler AT89C51 Gambar 3.4. Rangkaian DTMF

Gambar 3.5. Rangkaian pendeteksi dering Gambar 3.6. Rangkaian pendeteksi hook Gambar 3.7. Rangkaian pemutus line telepon Gambar 3.8. Flowchart

(11)

DAFTAR TABEL

Tabel 2.1. Kombinasi frekuensi pada sistem DTMF Tabel 2.2. Special function register.

Tabel 2.3. Pemilihan bank register. Tabel 2.4. Fungsi pin konektor LCD

Tabel 4.1. Hasil pengukuran rangkaian pendeteksi dering Tabel 4.2. Hasil pengukuran rangkaian pendeteksi hook Tabel 4.3. Hasil pengukuran rangkaian switch line

(12)

BAB I

PENDAHULUAN

1.1. Latar Belakang Masalah

Telepon dewasa ini sudah merupakan alat komunikasi yang sangat vital dalam kehidupan masyarakat. Namun sering kali pemakaian telepon tidak terkontrol atau digunakan oleh orang yang tidak bertanggung jawab tanpa sepengetahuan pemilik telepon sehingga biaya yang harus dikeluarkan untuk membayar tagihan rekening telepon cukup besar dan diluar dari biaya yang telah diperkirakan sebelumnya. Salah satu upaya yang dapat dilakukan untuk menghindari atau mengurangi masalah ini yaitu dengan memasang alat pembatas pemakaian telepon.

Hal inilah yang melatarbelakangi penulis membuat karya tugas akhir berupa phone book pada telepon rumah sebagai pencatat nomer telepon dan juga berfungsi untuk membatasi nomer tujuan telepon. Dengan alat ini telepon hanya dapat digunakan jika nomer yang dituju sudah tercatat dalam list yang terlebih dahulu ditulis pada phone book.

(13)

menyatu dalam satu chip. Selain itu dengan menggunakan system mikroprosesor maka alat ini akan lebih fleksibel, mudah diintegrasikan dengan system lain untuk pengembangan alat selanjutnya.

1.2. Perumusan Masalah

Proses dialing pada system telepon yang digunakan ada dua macam, yaitu dialing dengan pulsa (pulse dialing) dan dialing dengan dengan nada (tone dialing). Sekarang ini system dialing yang lebih umum digunakan pada pesawat telepon adalah system dialing dengan nada (tone dialing). Pada system dialing ini sinyal yang dikirimkan berupa kombinasi dua buah frekuensi, yaitu frekuensi rendah dan frekuensi tinggi yang menghasilkan suatu tone (nada), sehingga system ini disebut juga system DTMF (Dual Tone Multi Frekuensi).

Sinyal DTMF yang dibangkitkan oleh pesawat telepon akan diterima oleh detector DTMF dan kemudian diubah menjadi kode biner yang akan diambil oleh mikrokontroler sebagai input data untuk diproses. Selain itu rangkaian detector DTMF ini juga dapat membangkitkan sinyal atau nada DTMF dari kode biner yang dikirim oleh mikrokontroler melalui saluran port-portnya ke rangkaian detector DTMF.

(14)

1.3. Pembatasan Masalah

Pembatasan pada tugas akhir ini dimaksudkan untuk menghindari supaya permasalahan yang dibahas tidak menyimpang atau melebar dari topik/tema utama. Adapun pembahasan dan alat yang dibuat pada tugas akhir ini terdiri dari sistim minimum mikrokontroler AT89C51 sebagai rangkaian kontrol utama, rangkaian DTMF, rangkaian pendeteksi dering dan rangkaian pendeteksi hook.

1.4. Tujuan penulisan

Tujuan penulisan tugas akhir ini adalah merancang dan membuat alat yang berupa phone book pada telepon rumah yang dapat digunakan untuk menyimpan nomor-nomor telepon dan juga dapat berfungsi sebagai pengontrol pemakaian telepon.

1.5. Sistematika Pembahasan

Penulisan karya tugas akhir dibagi menjadi lima bab, antara bahasan bab yang satu dengan yang lainnya saling berkaitan. Adapun pembahasan tulisan ini disusun sebagai berikut :

(15)

BAB II

Berisi landasan teori yang terdiri dari teori-teori yang menunjang terhadap pembutan karya tugas akhir.

BAB III

Berisi perancangan yang mencakup tujuan perancangan, perancangan perangkat

keras (hardware) dan perancangan perangkat lunak (software).

BAB IV

Berisi pengukuran dan analisis yang meliputi metode pengukuran, hasil pengukuran dan analisis data

BAB V

(16)

BAB II

LANDASAN TEORI

2.1. Telepon.

Pengertian telepon secara umum adalah konversi sinyal-sinyal suara menjadi sinyal-sinyal listrik frekuensi audio yang kemudian dipancarkan melalui suatu sistem transmisi listrik yang pada akhirnya dikonversi kembali menjadi sinyal-sinyal tekanan suara pada ujung penerima.

Terdapat dua macam type proses dialing, yaitu dialing dengan pulsa dan dialing dengan nada (tone dialing). Tone dialing adalah metode dialing yang lebih modern dan sekarang ini hampir seluruh pesawat telepon yang digunakan di tiap negara menggunakan jenis telepon dengan sistem tone dialing.

Pada sistem dialing ini biasanya pesawat telepon telah dilengkapi dengan papan tombol tekan, sinyal yang dikirimkan bukan merupakan arus rata yang terputus-putus, melainkan berupa kombinasi dari dua buah frekuensi, dimana dengan menekan satu digit tombol maka akan dibangkitkan sinyal yang merupakan kombinasi dari dua buah frekuensi yang menghasilkan suatu nada (tone), sehingga sistem ini disebut juga

(17)

1209 1336 1477 1633 697 1 2 3 A 770 4 5 6 B 852 7 8 9 C 941 * 0 # D

Tabel 2.1. Kombinasi frekuensi pada sistem DTMF

Pemanggilan (dial) dengan sistem DTMF standar akan menghasilkan nada (tone) selama tombol ditekan, nada akan dikodekan sebagai digit yang sesuai.

Pesawat telepon dengan sistem ini memiliki empat komponen pokok, diantaranya rangkaian pemanggil, switch hook, bel dan hendset yang didalamnya terdapat transmitter dan receiver.

Prinsip kerja pesawat telepon secara umum adalah sentral memanggil pesawat dengan memberikan ringing tone, sehingga bel berbunyi, hal ini disebabkan karena adanya loop tertutup dari sentral menuju rangkaian bel. Bilamana hendset diangkat maka arus pada bel akan terputus, sehingga pembicaraan dapat berlangsung.

Kondisi sinyal-sinyal pada pesawat telepon:

Pada saat melakukan suatu panggilan, kondisi pada saluran telepon yang terjadi adalah sebagi berikut.

(18)

1. Kondisi off hook, saat handset diangkat, tegangan ± 48 Vdc akan turun menjadi 6-12 Vdc, karena saluran telepon mendapatkan beban ± 600 O pada

saat itu.

2. Pada saat tone, frekuensi 425 Hz dengan level 6-12 Vdc yang terdengar dan menunjukan bahwa pesawat telepon telah terhubung dengan saluran telepon. 3. Sinyal DTMF yang terjadi pada saat memutar nomor telepon, sinyal ini

berupa gabungan dua buah frekuensi dengan kombinasi sebagaimana dalam tabel 2.1.

Saat menerima panggilan, kondisi sinyal yang terjadi pada saluran telepon adalah:

1. Sinyal dering, berupa sinyal dengan frekuensi 50 Hz dengan periode yang sama dengan nada panggil sambung dan amplitudo 40 Vrms. Sinyal nada sambung pada telepon pemanggil sebenarnya adalah merupakan duplikasi dari sinyal dering yang terjadi pada telepon yang dipanggil.

2. Off hook, pada saat ini beban ± 600 O terdeteksi sehingga tegangan pada

saluran telepon menjadi turun, sentral saluran telepon yang mendeteksi kondisi ini langsung menghentikan pengiriman sinyal dering maupun sinyal

(19)

2.2. Transmitter dan Receiver DTMF

MT8888 merupakan IC DTMF transceiver yang dapat berfungsi sebagai

transmitter (pengirim) dan receiver (penerima) sinyal DTMF. Berikut adalah

gambar susunan pin dan cara menghubungkan MT8888 dengan mikrokontroler.

IN+ 1 IN-2 GS 3 VRef 4 VSS 5 OSC1 6 OSC2 7 TONE 8 R/W 9 CS 10 RS0 11 RD 12 IRQ/CP 13 D0 14 D1 15 D2 16 D3 17 ESt 18 St/GT 19 VDD 20 D T M F I N P U T D T M F O U T P U T VDD T O M I K R O K O N T R O L E R

(20)

2.3. Mikrokontroler AT89C51

AT89C51 merupakan mikrokontroller 8-bit yang kompatibel dengan keluarga MCS-51. Fasilitas yang dimiliki mikrokontroler ini diantaranya adalah:

a. Sebuah CPU (Central Processing Unit) 8 bit

b. 4 Kbytes Flash EEROM dengan kemampuan sampai 1000 kali tulis-hapus c. 128 x 8-bit internal RAM.

d. 32-bit atau jalur Input/Output (empat Port I/O). e. 2 (dua) buah 16-bit Timer / Counter.

f. 6 (enam) buah sumber interupsi.

g. Serial Communication Interface.

h. Kompatibel dengan prosesor MCS-51 buatan Intel Corp. i. Operasi Clock antara 1 sampai 24 MHz.

j. Oscilator internal

k. Dapat mengalamati 64 Kbyte ruang alamat ROM/EPROM eksternal. l. Dapat mengalamati 64 Kbyte ruang alamat RAM eksternal.

(21)

KONTROL INTERUPSI INTERUPSI EKSTERNAL CPU

ON=CHIP FLASH ON-CHIP RAM DLL. Timer 1 Timer 0 KONTROL

BUSH 4 PORT I/O

PORT SERIAL

P0 P1 P2 P3

OSCILATOR

2.3.1. Blok diagram dan Konfigurasi pin AT89C51

Blok diagram mikrokontroler AT89C51 diperlihatkan oleh gambar 2.2 berut :

Gambar 2.2. Blok diagram AT89C51

Susunan pin-pin mikrokontroler AT89C51 diperlihatkan pada gambar 2.3, penjelasan dari masing-masing pin adalah sebagai berikut :

(22)

1. Port 1 (pin 1-8)

Port 1 merupakan port paralel 8 bit dua arah (bidirectional) yang dapat

digunakan untuk berbagai keperluan (general purpose). 2. Reset (pin 9)

Pin 9 adalah masukan reset (aktif high). Pulsa transisi dari rendah ke tinggi akan me-reset AT89C51.

(23)

(Interupt 0), Int 1 (interupt 1), T0 (timer 0), T1 (timer 1), WR (write), RD (read).

4. XTAL1 (pin 18)

XTAL adalah pena masukan ke rangkaian oscilator internal. Sebuah oscilator kristal atau sumber oscilator luar dapat digunakan.

5. XTAL2 (pin 19)

XTAL2 adalah pin keluaran ke ocsilator internal. Pin ini dipakai jika menggunakan oscilator internal.

6. Vss (pin 20)

Vss merupakan pin untuk ground. 7. Port 2 (pin 21-28)

Port 2 adalah port paralel selebar 8 bit dua arah. Port 2 ini mengirimkan byte

alamat bagian tinggi (high byte) selama pengambilan instruksi dari memori program eksternal dan selama pengaksesan memori data eksternal.

8. PSEN (pin 29)

PSEN (program store enable) merupakan sinyal pengontrol yang membolehkan program memori eksternal masuk kedalam bus selama proses pemberian atau pengambilan instruksi (fetching)

9. ALE (pin 9)

ALE (addres latch enable) digunakan untuk menahan alamat memori eksternal selama pelaksanaan interuksi.

(24)

Bila pin ini diberi logika tinggi, mikrokontroler akan mengeksekusi instruksi dari ROM/EPROM internal, sedangkan jika diberi logika rendah maka mikrokontroler akan melaksanakan seluruh intruksi dari program memori eksternal.

11. Port 0 (pin 32-39)

Port 0 merupakan port paralel 8 bit dua arah (bidirectional). Port 0 juga dapat

dikonfigurasikan sebagai bus alamat/data bagian rendah (low byite) selama proses pengaksesan memori data dan program eksternal.

12. Vcc (pin 40)

Pin ini dihubungkan ke sumber tegangan DC 5 Volt.

2.3.2. Organisasi Memori

Mikrokontroler AT98C51 sama seperti halnya mikrokontroler dari keluarga MCS-51, yaitu memiliki pembagian ruang alamat untuk program dan data. Pemisahan memori program dan memori data membolehkan memori data untuk diakses oleh alamat 8 bit. Walaupun demikian, alamat 16 bit dapat dihasilkan melalui register DPTR (data pointer register)

(25)

Gambar 2.4. Struktur memori mikrokontroler AT89C51

Memori program hanya dapat dibaca tidak bisa ditulis (karena tersimpan dalam EPROM). Memori program sebesar 64 Kbyte dapat dimasukan dalam EPROM eksternal. Susunan perangkat keras yang menggunakan EPROM eksternal diperlihatkan pada gambar 2.5.

EA=0 EXT EA=1 IN EXT PSEN 0000 FFFFH EXT FFFFH FFH internal 00H 0000H MEMORI DATA PROGRAM MEMORI RD WR

(26)

Gambar 2.5. Susunan Memori Program Eksternal

Memori data internal dipetakan seperti pada gambar 2.6. Ruang memorinya dibagi menjadi tiga blok, yaitu sebagai lower 128, upper 128 dan ruang SFR (special

function register) AT89C51 P0 P1 P3 ALE EA

P2

PSEN

LATCH

Memori Program ekternal INSTR. A D D R E S OE GND

(27)

Gambar 2.6. Memori data eksternal

Mikrokontroler AT89C51 dapat ditambahkan RAM eksternal sebesar 64 Kbyte. Untuk melakukan pembacaan atau penulisan, mikrokontroler akan mengirimkan sinyal RD atau WR. Gambar 2.7 memperlihatkan hubungan mikrokontroler AT89C51 untuk mengakses RAM eksternal.

FFH 80H 7FH

00H UPPER LOWER FFH 80H AT89C51 P0

P1 ALE EA

RD P3 P2 WR

LATCH

Memori Data ekternal DATA. A D D R E S WE OE VCC I/O

(28)

Gambar 2.7. Menghubungkan AT89C51 dengan RAM eksternal

2.3.3. Pewaktuan CPU

Mikrokontroler AT89C51 memiliki oscilator internal (on chip oscillator) yang dapat digunakan sebagai sumber clock bagi CPU. Untuk menggunakan oscilator internal diperlukan sebuah kristal atau resonator keramik antara pin XTAL1 dan pin XTAL2 dan sebuah kapasitor ke ground seperti terlihat pada gambar 2.8.

(29)

2.3.4. Special Function Register (SFR)

Mikrokontroler AT89C51 memiliki special function register (SFR) yaitu register-register khusus yang mempunyai fungsi tertentu. Masing-masing register ditunjukan dalam table berikut:

Tabel 2.2. Special function register.

Simbol Nama Alamat

ACC B PSW DPTR P0 P1 P2 P3 IP IE TMOD TCON TH0 Akumulator B register

Program Status Word

Data Pointer 16 Bit DPL Byte rendah DPH Byte tinggi Port 0 Port 1 Port 2 Port 3

Interupt Priority Control Interupt Enable Control Timer/Counter Mode Control Timer/Counter Control Timer/Counter 0 High Byte

E0H F0H D0H 82H 83H 80H 90H A0H B0H B8H A8H 89H 88H 8CH

(30)

TL0 TH1 TL1 SCON SBUF PCON

Timer/Counter 0 Low Byte Timer/Counter 1 High Byte Timer/Counter 1 High Byte Serial Control

Serial Data Buffer Power Control 8AH 8DH 8BH 98H 99H 87H

2.3.5. Timer/Counter

Mikrokontroler AT89C51 mempunyai dua buah timer/counter yang dapat diatur melalui perangkat lunak, yaitu timer/counter 0 dan timer/counter 1.

Pengontrolan kerja timer/counter adalah register timer/counter (TCON). Adapun definisi dari bit-bit pada timer/counter adalah sebagai berikut:

TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0

(31)

TR1 TCON.6 Bit untuk menjalankan timer1.

Diset/clear oleh software untuk membuat timer on atau off.

TF0 TCON.5 Timer 0 overflow flag. Diset

Oleh perangkat keras.

TR0 TCON.4 Bit untuk menjalankan timer 0.

Di-set/clear oleh software untuk membuat timer on atau off.

IE1 TCON.3 Eksternal interrupt 1 edge flag.

IT1 TCON.2 Interupt 1 type control bit.

Set/clear oleh software untuk

Menspesifikasikan sisi turun/level rendah trigger dari int eksternal.

IE0 TCON.1 Eksternal interrupt 0 edge flag.

IT0 TCON.0 Interupt 0 type control bit.

Pengontrolan pemilihan mode oprasi timer/counter adalah register timer mode (TMOD) yang difinisi bit-bitnya adalah sebagai berikut.

(32)

2.3.6. Program status Word (PSW)

Program ststus word berisi beberapa bit status yang menunjukan keadaan

mikrokontroler. Definisi dari bit-bit PSW adalah sebagai berikut:

CY AC F0 RS1 RS0 OV - P

Simbol Posisi Fungsi

CY PSW.7 Carry Flag

AC PSW.6 Auxilary carry flag

F0 PSW.5 Flag 0 untuk kegunaan umum

RS1 PSW.4 Bit pemilih bank register

RS0 PSW.3 Bit pemilih bank register

OV PSW.2 Overflow flag

- PSW.1 Flag didefinisikan oleh pemakai

(33)

Tabel 2.3. Pemilihan bank register.

RS1 RS0 Bank Lokasi Memori

0 0 1 1 0 1 0 1 0 1 2 3 00H-07H 08H-0FH 10H-17H 18H-1FH

2.3.7. Power Control Register (PCON)

Power control register tidak dapat dialamati per bit. Bit-bit dalam register PCON adalah sebagai berikut.

SMOD - - - GF1 GF0 PD0 IDL

Simbol Fungsi

SMOD Bila timer 1 digunakan untuk menghasilkan baudrate dan SMOD=1, baud rate akan dikalikan dua ketika

port serial akan digunakan dalam mode 1, 2 dan 3.

- tidak dipakai

GF1 Bit flag serbaguna

GF0 Bit flag serbaguna

PD Bit power down

(34)

2.3.8. Perangkat lunak mikrokontroler AT89C51

Sebuah mikrokontroler hanya akan bekerja bila diberi program terlebih dahulu. Program tersebut akan memberi tahu mikrokontroler apa yang harus dilakukan.

Intruksi-intruksi perangkat lunak berbeda untuk tiap mikrokontroler. Instruksi-instruksi ini hanya bisa dipahami oleh jenis mikrokontroler yang bersangkutan. Sebuah mikrokontroler tidak dapat memahami instruksi-instruksi yang berlakau pada mikrokontroler lain.

Bentuk umum instruksi dalam assembler AT89C51 : [label:] mnemonic [operan] [,operan] [,operan];[komentar] Jumlah operan tergantung pada type mnemonik.

Label harus diletakan pada awal statement dan berfungsi sebagai tujuan loncat. Mnemonik merupakan bentuk instruksi yang dinyatakan dalam kata-kata singkat.

2.3.8.1. Mode pengalamatan

Pada mikrokontroler AT89C51 dekenal beberapa mode pengalamatan, diantaranya:

(35)

Perintah ini menyebabkan register A dimuati dengan isi memori dengan alamat 5FH.

2. Mode pengalamatan tidak langsung (indirect addressing)

Pengalamatan tidak langsung menggunakan isi lokasi penyimpanan untuk menunjuk ke alamat yang dituju. Alamat yang disimpan dapat berjumlah 8 bit atau 16 bit.

Contoh: MOV A,@R1 ; A ? (R1)

Perintah ini menyebabkan register A dimuati oleh isi memori yang alamatnya ditunjukan register R1.

3. Mode pengalamatan register (Register Addressing)

Pengalamatan register memungkinkan untuk memindahkan data antar register internal dalam prosessor.

Contoh: MOV B,A ; B ? (A)

Perintah ini menyebabkan register B dimuati isi register A. 4. Mode pengalamatan Immediate Constant

Mode pengalamatan immediate dilakukan dengan memberikan nilai (data) kedalam suatu register secara langsung. Untuk melaksanakan hal ini digunakan tanda #.

Contoh: MOV A,#0FFH

(36)

Secara umum perangkat instruksi mikrokontroler AT89C51 dapat dibagi kedalam lima kelompok sebagai berikut:

1. Instruksi Transfer Data

Instruksi ini memindahkan data antara register-register, memori-memori, register-memori, antar muka-register dan antar muka-memori.

2. Instruksi Aritmetik

Instruksi ini melaksanakan instruksi aritmetik yang meliputi penjumlahan, pengurangan, penambahan satu (increment), pengurangan satu (decrement), perkalian dan pembagian.

3. Instruksi Logika dan manipulasi bit

Melaksanakan oprasi logika AND, OR, XOR, perbandingan, pergeseran, dan komplemen data.

4. Instruksi percabangan

Instruksi ini merubah urutan normal pelaksanaan suatu program. Dengan instruksi ini program yang sedang dilaksanakan akan mencabang kesuatu alamat tertentu. Instruksi percabangan dibedakan atas instruksi percabangan bersyarat dan instruksi percabangan tanpa syarat.

(37)

LCD (Liquid Cristal Display) tersedia dalam beragam ukuran, mulai dari 1 baris kali 16 karakter sampai 4 baris kali 24 karakter. Setiap karakter terdiri dari 5X8 atau 5X10 titik, sehingga yang ditampilkan bukan hanya angka desimal tetapi juga huruf latin dan lambang lainnya.

Salah satu standar LCD yang dapat berkomunikasi dengan prosesor adalah HD44780U. Standar LCD ini cukup pupuler digunakan untuk display pada beragam sistem prosesor, termasuk mikrokontroler 89C51. Untuk dapat berkomunikasi dengan modul LCD jenis ini mikrokontroler 89C51 hanya membutuhkan 7 atau 11 pin input/output berapapun ukuran LCD-nya.

2.4.1. Standar LCD HD44780

Tabel 2.4. memperlihatkan fungsi pin pada konektor antara LCD dengan sistem prosesor, kolom pertama adalah nomor pin pada konektor tersebut, kolom kedua adalah simbol atau nama pin tersebut, kolom ketiga adalah level digital untuk mengaktifkannya, yaitu 0 atau low, 1 atu high dan 1? 0 atau peralihan dari high ke

low. Kolom ke empat adalah arah komunikasi, yaitu sebagai input, output atau bidirectional (dua arah). Sedangkan kolom kelima adalah keterangan fungsi pin.

Tabel 2.4. Fungsi pin konektor LCD

1 2 3 4 5

(38)

1 Vss - - Power supply (GND)

2 Vcc - - Power supply (+5V)

3 Vee - - Contras adjust

4 RS 0/1 I 0 = instruction input

1 = data input

5 R/W 0/1 I 0 = write to LCD modul

1 = read from LCD modul

6 E 1?0 I/O Enable signal

7 DB0 0/1 I/O Data bus line 0

8 DB1 0/1 I/O Data bus line 1

9 DB2 0/1 I/O Data bus line 2

10 DB3 0/1 I/O Data bus line 3

11 DB4 0/1 I/O Data bus line 4

12 DB5 0/1 I/O Data bus line 5

13 DB6 0/1 I/O Data bus line 6

14 DB7 0/1 I/O Data bus line 7

(39)

instruksi atau data. Jika RS = low berarti informasi biner tersebut adalah instruksi, tetapi jika RS = high berarti informasi tersebut adalah data. Pin R/W digunakan oleh sistem prosesor untuk memberitahu LCD, apakah prosesor ingin mengirim (R/W =

low) atau membaca (R/W = high) data dari LCD. Pin E digunakan oleh sistem

prosesor untuk memberitahu LCD agar mulai memproses sinyal yang diberikan oleh prosesor, ditandai oleh peralihan kondisi pin E dari high menjadi low.

Khusus untuk pin DB7 selain untuk transfer informasi biner, pin ini juga dapat berfungsi untuk memberitahu sistem prosesor bahwa LCD masih sibuk, belum siap menerima instruksi berikutnya. Jika prosesor mengirimkan perintah ‘Get LCD status’ maka setelah itu prosesor harus menunggu kabar dari pin DB7, jika DB7 = low berarti LCD tidah dalam keadaan sibuk, siap menerima perintah atau data berikutnya.

2.4.2. Inisialisasi LCD

Saat sistem prosesor baru saja ON, prosesor harus melakukan serangkaian inisialisasi, misalnya timer, sistem interupsi, sistem komunikasi serial dan lain-lain. Termasuk inisialisasi device seperti LCD. Untuk setandar HD44780, berikut ini salah satu urutan inisialisasi yang diperlukan sebelum LCD digunakan.

(40)

Gambar 2.9. Urutan inisialisasi untuk koneksi data 8 bit.

Power On Wait for more than 15 ms

After Vcc rise to 4.5 V

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0 0 1 1 * * * *

Wait more than 41 ms

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0 0 1 1 * * * *

Wait more than 100ms

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0 0 1 1 * * * * RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0 0 1 1 N * * * 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 0

(41)

kendali. Antara saat LCD dihidupkan dengan byte pertama yang dikirimkan kepadanya tidak boleh kurang dari 15 ms.

2.4.3. Pengiriman data/instruksi ke LCD

Informasi biner yang dikirimkan ke LCD dapat berupa data maupun instruksi. Jika prosesor ingin memberitahu LCD bahwa informasi yang diletakannya di saluran 8-pin data/instruksi adalah instruksi, maka pin RS dibuat low, sedangkan jika pin RS ini dibuat high, berarti informasi biner tersebut adalah data.

Setiap pengiriman 1 byte informasi dari prosesor ke modul LCD harus ditandai dengan peralihan kondisi pin E dari high menjadi low. Segera setelah peralihan pin E ini, modul LCD akan memproses informasi biner tersebut. Karena modul LCD memerlukan waktu tertentu untuk memproses kiriman data/instruksi dari prosesor, maka sebelum pengiriman informasi tersebut prosesor harus memastikan kesiapan modul LCD untuk menerima kiriman byte baru. Kecuali saat pengiriman 4 byte pertama saat inisialisasi, kesiapan LCD menerima kiriman informasi biner dapat diketahui dengan pembacaan DB7.

2.5. EEPROM

(42)

teknologi tersebut, jumlah I/O yang digunakan untuk mengakses memori makin sedikit. Hal ini sangat bermanfaat bagi sebuah sistem yang memerlukan banyak I/O. Penggunaan I/O yang semakin sedikit untuk mengakses memori, akan menyediakan lebih banyak I/O yang dapat digunakan untuk keperluan lain.

Gambar 2.10. Susunan pin IC 24CXX

Inter Integrated Circuit (I2C) adalah standar komunikasi serial dua arah

(43)

Gambar 2.11. Menghubungkan 24C64 dengan mikrokontroler

Serial EEPROM berdasarkan pengalamatannya terdiri dari dua jenis, yaitu pengalamatan 8 bit yang digunakan untuk serial EEPROM dengan kapasitas memori sebesar 128 byte hingga 2 Kb dan pengalamatan 16 bit untuk serial EEPROM 4Kb hingga 512 Kb.

Gambar 2.12. Pengalamatan serial EEPROM SDA 24C64 SCL

MIKROKONTROLER DATA CLOCK

(44)

Pada pengalamatan 16 bit terdapat tiga buah paket 8 bit data yang harus dikirimkan ke serial EEPROM, yaitu control byte, high byte address dan low byte

address, sedangkan pada pengalamatan 8 bit hanya diperlukan dua buah paket 8 bit

data yaitu control byte dan byte address saja. Control byte terdiri dari slave address,

device select bus bit-bit pengatur alamat dari serial EEPROM dalam satu jalur bus,

R/W bit penentu proses penulisan atau pembacaan data dari serial EEPROM.

2.5.1. Akses data Serial EEPROM

Pembacaan maupun penulisan data ke dalam serial EEPROM, selalu diawali dengan pengiriman control byte dan address byte. Hanya pada penulisan data akan dilanjutkan dengan pengiriman data 8 bit, sedangkan sebaliknya pada pembacaan akan dilanjutkan dengan pengambilan data 8 bit. Bit R/W pada control byte akan berlogika 1 untuk pembacaan data dan berlogika 0 untuk penulisan data.

2.5.2. Penulisan data

Penulisan data pada serial EERROM I2C dapat dilakukan secara byte maupun secara page. Pada penulisan secara byte dilakukan dengan mengirimkan control byte,

(45)

Gambar 2.13. Penulisan secara byte

Gambar 2.14. Penulisan secara page

2.5.3. Pembacaan data

Pembacaan data dapat dilakukan secara current addess read (pembacaan alamat saat ini) maupun random read (pembacaan secara acak). Pada current addres read, data yang dibaca adalah data pada alamat yang terakhir kali diakses sa itu, sedangkan pada pembacaan secara acak dilakukan dengan mengirimkan control byte dan alamat tujuan terlebih dahulu. Untuk pembacaan secara sequential, dilakukan dengan

control byte dan dilanjutkan dengan data-data yang berada mulai dari alamat yang

(46)

Gambar 2.15. Pembacaan secara Current Read

(47)

BAB III

PERANCANGAN

3.1. Tujuan perancangan

Tahap pertama yang harus dilakukan dalam merealisasikan ide untuk membuat suatu alat adalah melakukan perancangan. Tujuan dilakukan perancangan yaitu untuk menentukan spesifikasi alat yang akan dibuat.

Hal-hal yang harus diperhatikan dalam melakukan perancangan, antaralain : - Keterbatasan ilmu pengetahuan yang dikuasai penulis.

- Ketersediaan komponen yang ada dipasaran. - Keterbatasan waktu.

- Keterbatasan peralatan

Dengan memperhatikan hal-hal tersebut diatas maka diharapkan kesulitan dalam merealisasikan alat dapat dihindari.

3.2. Tahap-tahap perancangan

Tahap-tahap yang harus dilakukan dalam melakukan suatu perancangan diantaranya:

1. Membuat blok diagram sesuai dengan ide yang telah ditetapkan sebelumnya. 2. Menterjemahkan blok diagram kedalam bentuk rangkaian elektronik.

(48)

3. Memilih komponen yang cocok dengan terlebih dahulu mempelajari karakteristiknya serta memastikan bahwa komponen tersebut ada dan mudah diperoleh dipasaran.

4. Melakukan percobaan pada protoboard.

5. Membuat PCB (Printed Circuit Board) dan melakukan perakitan komponen. 6. Mengetes rangkaian pada PCB.

7. Membuat perangkat lunak (software). 8. Melakukan pengetesan akhir.

9. Membuat perangkat mekanik.

3.3. Diagram Blok dan Rangkaian Sistem

Bagian utama diagram blok rangkaian ‘Phone book telepon dengan menggunakan mikrokontroler AT89C51’ terdiri dari:

- Blok sistem minimum mikrokontroler AT89C51 - Rangkaian DTMF

- Rangkaian pendeteksi dering - Rangkaian pendeteksi hook

(49)

Diagram blok rangkaian diperlihatkan pada gambar berikut ini.

Gambar 3.1. Diagram blok rangkaian

Dari diagram blok tersebut diatas dapat dilihat gambaran umum prinsip kerja rangkaian.

Mikrokontroler berfungsi sebagai pengontrol sistem yang memproses data input

Mikrokontroler AT 89C51 Display (LCD) Pendeteksi dering Switch Line telepon Line telepon Hand set Pendeteksi Hook Rangkaian DTMF Memori EEPROM

(50)

Rangkaian DTMF akan mendeteksi sinyal DTMF pada saluran telepon jika ada yang menekan tombol pesawat telepon. Pendeteksi ring berfungsi mendeteksi nada dering apabila ada pesawat telepon lain yang masuk (melakukan panggilan). Pendeteksi hook berfungsi untuk mendeteksi posisi gagang telepon, apakah posisinya dalam keadaan deletakan (on hook) atau dalam keadaan diangkat (off hook). Switch line telepon digunakan untuk menyambungkan atau memutuskan saluran telepon. EEPROM digunakan untuk menyimpan nomor telepon. Sebagai tampilan untuk memonitor dapat dilihat pada display berupa LCD.

Berikut adalah rangkaian lengkap Phone book telepon dengan menggunakan mikrokontroler AT89C51:

(51)

1 2 3 4 A B C D 4 3 2 1 D C B A Title Number Revision Size A4

Date: 19-Jan-2007 Sheet of File: G:\TA2007\PONEBUK\PONEBUK.SCH Drawn By:

TF1 TRAFO C1 100nF C2 1uF/60V R1 100K/1% R2 22K/1% R3 390 X1 3,579 MHz C3 100N D0 D1 D2 D3 1 2 3 4 JP1 LINE TLP TR1 828 R4 10K D1 IN4001 RL2A Relay5VVCC Bloking R5 220 R6 220 +12V T IP _ P R IN G _P 1 2 3 4 JP2 PHONE C4 470nF/63Volt R7 220 IC1 TLP521 HOOK + 1 AC 2 AC 3 - 4 B1 BRIDGE IN+ 1 IN-2 GS 3 Vref 4 GND 5 OSC1 6 OSC2 7 TONE 8 WR 9 CS 10 RS0RD 11 12 IRQ 13 D0 14 D1 15 D2 16 D3 17 ESt 18 St/GT 19 VCC 20 U1 MT8888 VCC IRQDTMF RDDTMF RSDTMF CSDTMF WRDTMF TONEDTMF R13 3K3 P1.0/T2 1 P1.1/T2EX 2 P1.2/RXD1 3 P1.3/TXD1 4 P1.4/INT2 5 P1.5/INT3 6 P1.6/INT4 7 P1.7/INT5 8 RST 9 P3.0/RXD0 10 P3.1/TXD0 11 P3.2/INT0 12 P3.3/INT1 13 P3.4/T0 14 P3.5/T1 15 P3.6/WR 16 P3.7/RD 17 XTAL2 18 XTAL1 19 A8/P2.0 21 A9/P2.1 22 A10/P2.2 23 A11/P2.3 24 A12/P3.4 25 A13/P3.5 26 A14/P2.6 27 A15/P2.7 28 PSEN 29 ALE/PROG 30 EA/Vpp 31 AD7/P0.7 32 AD6/P0.6 33 AD5/P0.5 34 AD4/P0.4 35 AD3/P0.3 36 AD2/P0.2 37 AD1/P0.1 38 AD0/P0.0 39 U2 AT89S8252 XTAL2 RST PROG PSEN XTAL1 P0.5 P0.6 P0.7 D1 D0 LD1 P0.3 SDA Bloking Ringon HOOK BUZZ IRQDTMF P2.6 RS EN P2.3 P1.4 P1.5 P1.6 P1.7 P0.0 P0.1 CSDTMF WRDTMF RSDTMF P0.2 RDDTMF SCL C5 33p C6 33p C7 10uF/50V R10 10K X2 11,059MHz VCC VCC SW1 SW-PB D3 P0.4 D2 1 2 3 4 5 6 7 8 9 J1 CON9 VCC R15 1K C8 100N TONEDTMF TONE TONE D2 1N4002 D3 1N4002 1 2 3 JP3 CON3 C9 1000uF/50V D4 1N4002 D5 1N4002 +12V Vin 1 G N D 2 +5V 3 U5 LM7805CT VCC LD1 LED R16 1K VCC LD1 LD2 LED R17 1K GND R18 10 Q1 TIP42 TIP RING R8 220 IC2 TLP521 VCC Ringon R19 6K8 C10 1uF R20 10K Ring Detektor + 1 AC 2 AC 3 - 4 B2 BRIDGE C11 100uF R21 10K VCC GND TR1 C828 SP1 BUZZER VCC BUZZ R9 4K7 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 J1 DSP VCC GND RS GND EN P1 5K VCC P0.4 P0.5 P0.6 P0.7 VCC R4 1K P0.3 P0.2 P0.1 P0.0 1 2 3 4 5 6 7 8 U2 AT24C08 SCL SDA VCC GND GND

(52)

3.4. Perancangan perangkat keras (Hardware)

Perancangan perangkat keras rangkaian “Phone book telepon dengan menggunakan mikrokontroler AT89C51” dapat dibagi menjadi beberapa rangkaian, yaitu:

3.4.1. Perancangan sistem minimum AT89C51

Rangkaian sistem minimum AT89C51 berfungsi untuk melakukan pengolahan/pemroses data. Rangkaian ini menggunakan komponen utama mikrokontroler AT89C51.

Sebagai sumber detak menggunakan oscillator internal dengan cara menambahkan resonator kristal 11 MHz diantara kaki-kaki XTAL1 dan XTAL2.

(53)

P1.0/T2 1 P1.1/T2EX 2 P1.2/RXD1 3 P1.3/TXD1 4 P1.4/INT2 5 P1.5/INT3 6 P1.6/INT4 7 P1.7/INT5 8 RST 9 P3.0/RXD0 10 P3.1/TXD0 11 P3.2/INT0 12 P3.3/INT1 13 P3.4/T0 14 P3.5/T1 15 P3.6/WR 16 P3.7/RD 17 XTAL2 18 XTAL1 19 A8/P2.0 21 A9/P2.1 22 A10/P2.2 23 A11/P2.3 24 A12/P3.4 25 A13/P3.5 26 A14/P2.6 27 A15/P2.7 28 PSEN 29 ALE/PROG 30 EA/Vpp 31 AD7/P0.7 32 AD6/P0.6 33 AD5/P0.5 34 AD4/P0.4 35 AD3/P0.3 36 AD2/P0.2 37 AD1/P0.1 38 AD0/P0.0 39 U2 AT89C51 XTAL2 RST PROG PSEN XTAL1 P0.5 P0.6 P0.7 D1 D0 LD1 P0.3 SDA Bloking Ringon HOOK IRQDTMF P2.6 RS EN P2.3 P1.4 P1.5 P1.6 P1.7 P0.0 P0.1 CSDTMF WRDTMF RSDTMF P0.2 RDDTMF SCL C5 33p C6 33p C7 10uF/50V R10 10K X2 11,059MHz VCC VCC SW1 SW-PB D3 P0.4 D2 1 2 3 4 5 6 7 8 9 T O L C D VCC 1 2 T O E E P R O M 1 2 3 K O N T R O L L C D 1 2 3 4 T O D A T A D T M F 1 2 3 4 5 K O N T R O L D T M F 1 DETEKSI HOOK 1 SWITCH LINE 1 DETEKSI DERING

Gambar 3.3. Rangkaian sistem minimum mikrokontroler AT89C51

Didalam mikrokontroler AT89C51 tedapat berbagai fasilitas seperti yang telah disebutkan pada bab landasan teori sebelumnya, namun dalam rangkaian yang dibuat ini hanya beberapa fasilitas saja yang akan digunakan.

Pada rangkaian ini port 0 (P0.0-P0.7) digunakan untuk saluran data yang akan menampilkan display ke LCD. Sebagai saluran kontrolnya (kontrol LCD) digunakan (P2.0-P2.3). Sementara EEPROM dihubungkan melalui P2.1 dan P2.2.

Port 1 low byte (P1.0-P1.3) difungsikan sebagai saluran untuk menerima atau

(54)

Port 3 digunakan untuk saluran kontrol DTMF, mendeteksi sinyal yang masuk

dari rangkaian pendeteksi dering dan pendeteksi hook, selain itu juga digunakan untuk mengontrol rangkaian pemutus line telepon (switch line).

3.4.2. Rangkaian DTMF

Rangkaian DTMF mempunyai fungsi untuk mendeteksi sinyal DTMF yang masuk saat tombol pesawat telepon ditekan. Sinyal yang masuk tersebut kemudian diubah menjadi kode biner yang akan diambil sebagai data input mikrokontroler. Selain itu, rangkaian ini juga dapat mengirim/membangkitkan sinyal DTMF. Pada rangkaian ini saluran data biner (D0-D3) dihubungkan ke mikrokontroler melalui

port 1 (P1.0-P1.3) TF1 TRAFO C1 100nF C2 1uF/60V R1 100K/1% R2 22K/1% R3 390 X1 3,579 MHz C3 100N D0 D1 D2 D3 IN+ 1 IN-2 GS 3 Vref 4 GND 5 OSC1 6 OSC2 7 TONE 8 WR 9 CS 10 RS0 11 RD 12 IRQ 13 D0 14 D1 15 D2 16 D3 17 ESt 18 St/GT 19 VCC 20 U1 MT8888 VCC IRQDTMF RDDTMF RSDTMF CSDTMF WRDTMF TONEDTMF R13 3K3 TONE GND R15 1K 1 2 3 4 T O M IK R O K O N T R O L E R 1 2 3 4 LINE TELEPON P3.2 P3.1 P3.3 P3.5 P3.4 P1.0 P1.1 P1.2 P1.3

(55)

Komponen utama rangkaian DTMF adalah IC MT8888. Sebagai sumber clock (oscillator) menggunakan kristal 3.57 MHz. Kapasitor pada input DTMF berfungsi untuk memblokir tegangan DC dan melewatkan sinyal DTMF.

MT8888 mempunyai beberapa register, diantaranya transmit data register yang berfungsi mengirim data DTMF, receive data register untuk menerima nada DTMF, register control yang berfungsi untuk mengatur tata kerja MT8888 dan status register yang berfungsi untuk memantau keadaan/status MT8888. Untuk mengaktifkan register-register tersebut harus terlebih dahulu mengatur saluran kontrol dari register tersebut, yaitu saluran register slect (RS0), read (RD), write (WR) dan chip select (cs). Pada rangkaian ini saluran-saluran kontrol tersebut terhubung ke mikrokontroler melalui pin P3.3 (terhubung ke RS0), P3.5 (terhubung ke CS), P3.4 (terhubung ke WR) dan P3.1 (terhubung ke RD).

Berikut adalah fungsi dari saluran kontrol:

RS0 WR RD FUNGSI

0 0 1 Menulis data ke transmit data register 0 1 0 Membaca data dari receive data register 1 0 1 Menulis data ke control register

1 1 0 Membaca data dari status register

IRQ digunakan untuk memantau data pada IC MT8888. Saat ada sinyal DTMF yang terdeteksi rangkaian DTMF, IRQ akan berlogika 0. Bila tidak ada sinyal DTMF

(56)

yang terdeteksi, IRQ akan berlogika 1. Pada rangkaian ini IRQ terhubung ke mikrokontroler melalui kaki P3.2.

3.4.3. Rangkaian pendeteksi dering

Rangkaian pendeteksi dering berfungsi untuk mendeteksi sinyal dering saat ada telepon yang masuk (melakukan panggilan). Bila ada nada dering yang masuk, keluaran dari tegangan sinyal pulsa pada rangkaian pendeteksi dering adalah sebesar 0 Volt dan bila tidak ada sinyal dering maka tegangan keluaran sinyal pulsa dari rangkaian adalah 5 Volt. Output rangkaian pendeteksi dering dihubungkan ke mikrokontroler melalui kaki P3.7.

TIP RING R8 220 IC2 TLP521 VCC Ringon R19 6K8 C10 1uF R20 10K + 1 AC 2 AC 3 - 4 B2 BRIDGE C11 100uF PESAWAT TELEPON LINE TELEPON 1 T O M IK R O K O N T R O L E R P 3. 7

Gambar 3.5. Rangkaian pendeteksi dering

(57)

berfungsi untuk membatasi arus yang masuk ke kaki kolektor transistor pada TLP521.

3.4.4. Rangkaian pendeteksi hook

Rangkaian pendeteksi hook berfungsi untuk mengetahui kondisi gagang pasawat telepon, apakah gagang tersebut dalam posisi diangkat (off hook) atau dalam posisi diletakan (on hook).

Output rangkaian dihubungkan ke mikrokontroler melalui kaki P3.0. C4 470nF/63Volt R7 220 IC1 TLP521 HOOK + 1 AC 2 AC 3 - 4 B1 BRIDGE R21 10K VCC PESAWAT TELEPON LINE TELEPON 1 T O M IK R O K O N T R O L E R P 3. 0

Gambar 3.6. Rangkaian pendeteksi hook

Pada rangkaian pendeteksi hook, apabila gagang telepon di angkat maka arus akan mengalir melalui resistor R7 (220 ? ), sehingga pada resistor timbul tegangan yang akan mengaktifkan opto-coupler (TLP 521), hal ini menyebabkan tegangan keluaran rangkaian menjadi 0 Volt (pulsa 0). Sebaliknya jika gagang telepon dalam

(58)

posisi diletakan arus tidak akan mengalir sehingga opto-coupler tidak aktif dan keluaran rangkaian 5 Volt (pulsa1).

3.4.5. Rangkaian pemutus line telepon

Rangkain pemutus line telepon digunakan untuk menyambungkan atau memutuskan rangkaian dengan line telepon. Rangkaian ini dihubungkan ke mikrokontroler melelui kaki P3.6.

TR1 828 R4 10K D1 IN4001 RL2A Relay5V VCC Bloking R5 220 R6 220 +12V T IP _ P PESAWAT TELEPON LINE TELEPON 1 P3.6 T O MI K R O K O N T R O L E R

(59)

Bila mikrokontroler mengirimkan sinyal pulsa 0, maka transistor berada dalam kondisi cut off , tegangan pada kolektor-emiter transistor (Vce) mendekati tegangan VCC sehingga relay akan off. Jika mikrokontroler memberikan sinyal pulsa 1, maka transistor menjadi saturasi, tegangan pada kolektor-emiter transistor (Vce) mendekati 0 sehingga relay akan menjadi on.

3.5. Perancangan perangkat lunak (software)

Perangkat lunak mikrokontroler akan mengontrol kerja dari perangkat keras rangkaian, sehingga bagian ini sangat menentukan bekerja atau tidaknya sistem secara keseluruhan.

Bahasa pemrograman menggunakan bahasa assembler MCS51.

Tahap perancangan perangkat lunak (software) diawali dengan membuat algoritma dan flowchart terlebih dahulu, dengan cara ini program yang dibuat akan menjadi terstruktur dan terarah.

(60)

Mulai Inisialisasi Check Ring Ada Ring ? Check Hook Hook Detect Aktif ? Aktifkan Relay Tunggu Sampai Telp Ditutup Telp Ditutup ? Matikan Relay Tampilkan Menu Pilih Menu A Masukkan Password Password OK ? B ya ya ya ya tdk tdk tdk tdk

(61)
(62)

A Pilih Menu 1 ? Pilih Menu 2 ? Pilih Menu 3 ? Masukan Nama Masukkan Nomor Pilih Nomor Tujuan Dialling Tunggu Telp Ditutup Telp Ditutup ? Reset Memory Selesai ? B B ya tdk ya ya ya tdk tdk tdk tdk

Gambar 3.8. Flowchart

(63)

3.6. Cara Kerja alat.

Alat dipasang secara paralel dengan line telepon. Ketika power dihidupkan posisi gagang telepon harus dalam keadaan diletakan (on hook)

Proses inisialisasi akan dilakukan saat pertama kali alat dihidupkan (power on). Selanjutnya mikrokontroler akan mengecek nada dering. Jika ada nada dering, maka alat siap untuk menerima panggilan. Jika tidak ada nada dering mikrokontroler akan mengecek kondisi gagang telepon. Apabila gagang telepon tidak diangkat mikrikontroler kembali akan memeriksa nada dering.

Saat gagang telepon diangkat (off hook) mikrokontroler akan mengecek tombol telepon. Apabila saat itu memasukan nomor telepon yang tidak terdaftar dalam list maka akan diminta untuk memasukan pasword (pasword: 2222) jika pasword sudah benar maka panggilan keluar dapat dilakukan, namun jika pasword salah maka tidak dapa melakukan panggilan keluar.

Untuk masuk ke sub menu tekan tombol bintang (*), kemudian masukan pasword (pasword: 1111) jika pasword salah maka tidak dapat masuk ke sub menu. Dalam sub menu terdapat beberapa pilihan, untuk memasukan list telepon baru tekan 1, untuk melihat list telepon/menghapus list telepon tekan 2 sedangkan untuk mereset list telepon tekan 3.

(64)

(65)

PENGUJIAN DAN ANALISA

4.1. Pengujian pendeteksi dering.

Pengujian dilakukan dengan cara menghubungkan input rangkaian pendeteksi dering ke saluran line telepon, kemudian tegangan keluaran rangkaian diukur menggunakan voltmeter. Pengukuran dilakukan saat ada nada dering dan saat tidak ada nada dering. Berikut ini adalah hasil pengukuran.

Kondisi pengukuran Vo (tegangan keluaran)

Tidak ada nada dering 4,3 volt

Ada nada dering 0,2 volt

Tabel 4.1. Hasil pengukuran rangkaian pendeteksi dering

4.2. Pengukuran pendeteksi hook

Pengujian dilakukan dengan cara menghubungkan input rangkaian pendeteksi dering ke saluran line telepon, kemudian tegangan keluaran rangkaian diukur menggunakan voltmeter. Ukur tegangan keluaran saat gagang telepon diletakan (on hook) dan saat gagang telepon diangkat (off hook).

(66)

Berikut ini adalah hasil pengukuran.

Kondisi pengukuran Vo (tegangan keluaran)

Gagang telepon diletakan 4,2 Volt

Gagang telepon diangkat 0,4 Volt

Tabel 4.2. Hasil pengukuran rangkaian pendeteksi hook

4.3. Pengujian Pemutus line (switch line)

Pengujian dilakukan dengan cara mengukur tegangan pada relay sebagai switch telepon. Pengukuran dilakukan ketika input rangkaian diberi logika 0 dan logika 1 oleh mikrokontroler.

Berikut ini adalah hasil pengukuran.

Kondisi Pengukuran Vrelay (tegangan relay)

Diberi logika 0 0,1 Volt

(67)

KESIMPULAN DAN SARAN

5.1. Kesimpulan.

- Alat phone book telepon dapat menyimpan list telepon sampai 100 nomor. Semakin besar kapasitas memori yang digunakan, semakin banyak jumlah nomor telepon yang dapat disimpan.

- Alat hanya dapat digunakan apabila sudah mengetahui/memasukan password terlebih dahulu.

- Alat dapat dipasang secara paralel dengan telepon yang menggunakan sistem dial tone.

5.2. Saran.

Untuk pengembangan lebih lanjut pada alat dapat ditambahkan aplikasi SMS, pembatas pulsa atau pembatas waktu pemanggilan.

(68)

Agianto Eko Putra, 2002, Belajar Mikrokontroler AT89C51/52/55 (Teori dan

aplikasi), Gava Media, Yogyakarta

Suhata ST, 2005, Aplikasi Mikrokontroler sebagai pengendali peralatan elektronik

via line telepon, PT Elex Media Komputindo, Jakarta

Malvino, Barmawi, Prinsip-prinsip elektronika, Erlangga, Jakarta

Atmel, Flash Mikrokontroler: Architektural Overview, Atmel Inc. (http://www. Atmel.com), USA

Atmel, AT89 Series Hardware Descripsion, Atmel Inc. (http://www. Atmel.com), USA

(69)

LAMPIRAN A

(70)

$mod51 ;===========HARDWARE CONFIGURATION======================= ;LCD , data => P0 rs bit P2.5 rw bit P2.6 en bit P2.7

run_led bit P2.4 ;output, program running indicator ;I2C, 2464 serial EEPROM

sda bit P2.2

scl bit P2.1

;Phone interface

ring bit P3.7 ;input,0=ring

relay bit P3.6 ;output,0=supply line ,1=phoneline

hook bit P3.0 ;input,0=offhook

;MT8888

dtmf_port equ p1

irq bit P3.2 ;

wrdtmf bit P3.4 ;active low

cs bit P3.5

rs0dtmf bit P3.3

rddtmf bit P3.1

;==============BUFFERS==================================== ; BIT ADDRESSED :

tone_detect equ 00h ;1=dtmf key tone detected

pw_ok equ 01h ;1=password OK

first_time equ 02h ;1=first time cursor_inc equ 03h ;1=cursor increased ; BYTE :

dtmf_buff equ 30h ;ASCII 0-9,*,# itc_buff equ 31h ;data buffer to be sent/rcv via I2C itc_addrl equ 32h ;Address low byte

itc_addrh equ 33h ;Address high byte ;

(71)

password4 equ 31h ; ;Dial Password password21 equ 32h password22 equ 32h password23 equ 32h password24 equ 32h ;************** BASE PAGE ****************** org 0000h jmp init ; ;************** INISIALISASI *************** init: mov sp,#5fh ;init.stack pointer

setb relay ;main network line call delay_1s

call init_mt8888 clr rw

call init_lcd ;

main: call switch_to_telkom main_loop: jb hook,main_loop

jnb ring,is_it_ring jmp main_dial ;

is_it_ring: call delay_500ms mov b,#0c0h recheck_ring: jnb ring,ring_procedure call delay_5ms djnz b,recheck_ring jmp main_loop ; ;*******************************************

ring_procedure: mov dptr,#msg7 ;db' Incoming Call ... ',0ffh; call line1

;

call delay_2s mov b,#40

ring_loop: call delay_100ms jnb ring,ring_procedure jnb hook,incall_progress djnz b,ring_loop

(72)

;

incall_progress: call delay_1s jnb hook,$ call delay_1s call clr_scr jmp main_loop ; ;******************************************* main_dial: call switch_to_supply

;

mov dptr,#msg0 ;db' Press (*) ',0ffh; call line1

mov dptr,#msg1 ;db' to enter MENU ',0ffh; call line2 ; main_dial_loop: jb hook,main_dial_exit call dtmf_chk jnb tone_detect,main_dial_loop mov a,dtmf_buff cjne a,#'*',direct_dial jmp menu ; main_dial_exit: call clr_scr jmp main ; ;******************************************* direct_dial: call clr_scr mov dptr,#msg8 ;db' OK (#) ',0ffh call line2 ; mov a,#80h call iwr ; call reset_buffer

(73)

; direct_dial_loop: jb hook,direct_dial_exit call dtmf_chk jnb tone_detect,direct_dial_loop mov a,dtmf_buff cjne a,#'#',show_dial_num ;

compare_entry: mov dptr,#msg15 ;db' Please wait ',0ffh; call line2 ; mov itc_addrh,#00h mov itc_addrl,#10h compare_entry2: mov b,#16 mov r0,#general1 clr pw_ok ;

cmpr_nxt_digit: call itc_byte_rd mov a,@r0 cjne a,itc_buff,pcmpr_not_same pcmpr_nxt_dgt2: inc r0 call inc_itc_addr djnz b,cmpr_nxt_digit jnb pw_ok,dial_approved jmp pcmpr_nxt_entry ;

pcmpr_not_same: setb pw_ok

jmp pcmpr_nxt_dgt2 ;

pcmpr_nxt_entry: mov b,#16

cne_loop: call inc_itc_addr djnz b,cne_loop mov a,itc_addrh cjne a,#20h,compare_entry2 ; call password_2 jb pw_ok,dial_approved jnb hook,$ call clr_scr jmp main ;

(74)

call clr_scr jmp main_loop ; direct_dial_exit: call clr_scr jmp main ; ;******************************************* menu: call password

jb pw_ok,menu_ok jnb hook,$

jmp main ;

menu_ok: mov dptr,#msg5 ;db'1.Add New 3.Reset ',0ffh; call line1 mov dptr,#msg6 ;db'2.Call/Erase ',0ffh; call line2 ; menu_loop: jb hook,menu_exit call dtmf_chk jnb tone_detect,menu_loop mov a,dtmf_buff

chk_menu1: cjne a,#'1',chk_menu2 call menu1

jmp menu_ok ;

chk_menu2: cjne a,#'2',chk_menu3 call menu2

jmp menu_ok ;

chk_menu3: cjne a,#'3',menu_exit call menu3

jmp menu_ok ;

(75)

mov a,#0c0h call iwr call blink ; call reset_buffer ; mov prev_key,#0ffh

mov r0,#general1 ;character buffer mov r1,#16 ;maximum char length mov r2,#0c0h ;cursor pointer

time_reload: mov r3,#0c0h ;timeout value (x10ms) ; mov tap_ctr,#00h ; menu1_loop: jb hook,menu1_exit call dtmf_chk jb tone_detect,get_tap_key call delay_10ms djnz r3,menu1_loop mov a,tap_ctr jz time_reload inc r2 mov a,r2 call iwr setb cursor_inc inc r0 djnz r1,time_reload call stopblink call delay_2s jmp edit_number ;

menu1_exit: call stopblink ret

;

get_tap_key: mov a,dtmf_buff

cjne a,prev_key,new_key jmp get_table1

;

new_key: mov prev_key,a

jbc first_time,get_table1 jbc cursor_inc,name_not16

(76)

call iwr inc r0

djnz r1,name_not16 name_ok: call stopblink

call delay_2s jmp edit_number ;

name_not16: mov tap_ctr,#00h ;

get_table1: mov a,dtmf_buff cjne a,#'1',get_table2 mov dptr,#char_1 jmp get_char ;

get_table2: cjne a,#'2',get_table3 mov dptr,#char_2 jmp get_char ;

get_table3: cjne a,#'3',get_table4 mov dptr,#char_3 jmp get_char ;

get_table4: cjne a,#'4',get_table5 mov dptr,#char_4 jmp get_char ;

get_table5: cjne a,#'5',get_table6 mov dptr,#char_5 jmp get_char ;

get_table6: cjne a,#'6',get_table7 mov dptr,#char_6 jmp get_char ;

(77)

mov dptr,#char_9 jmp get_char ;

get_table0: cjne a,#'0',chk_char_ok mov dptr,#char_0 jmp get_char ;

chk_char_ok: cjne a,#'#',chk_name_bs jmp name_ok ; chk_name_bs: inc r1 cjne r1,#17,name_bs_cont mov r1,#16 name_bs_cont: mov @r0,#0ffh dec r0 cjne r0,#general1-1,name_bs_cont2 mov r0,#general1 name_bs_cont2: dec r2 cjne r2,#0bfh,name_bs_cont3 mov r2,#0c0h

name_bs_cont3: setb first_time mov tap_ctr,#00h mov a,r2 call iwr mov a,#' ' call dwr mov a,r2 call iwr jmp menu1_loop ;

get_char: mov a,tap_ctr movc a,@a+dptr

cjne a,#0ffh,get_char_cont mov tap_ctr,#00h

jmp get_char ;

get_char_cont: inc tap_ctr

mov @r0,a call dwr mov a,r2 call iwr

(78)

;

;************************* edit_number: call clr_scr

mov dptr,#msg11 ;db' Phone Number: ',0ffh call line1 ; mov a,#0c0h call iwr ;call blink ;

mov r0,#general1+16 ;character buffer

mov r1,#16 ;maximum char length mov r2,#0c0h ;cursor pointer

; edit_num_loop: jb hook,edit_num_exit call dtmf_chk jnb tone_detect,edit_num_loop mov a,dtmf_buff cjne a,#'#',chk_num_bs ;call stopblink call save_entry jmp edit_num_exit ;

chk_num_bs: cjne a,#'*',valid_num inc r1 cjne r1,#17,num_bs_cont mov r1,#16 num_bs_cont: mov @r0,#0ffh dec r0 cjne r0,#general1+15,num_bs_cont2 mov r0,#general1+16 num_bs_cont2: dec r2 cjne r2,#0bfh,num_bs_cont3 mov r2,#0c0h

(79)

call delay_2s ret

;

valid_num: mov a,dtmf_buff call dwr mov @r0,dtmf_buff inc r0 inc r2 djnz r1,edit_num_loop call save_entry jmp edit_num_exit ; char_1: db' .,?!"*#1',0ffh char_2: db'ABCabc2',0ffh char_3: db'DEFdef3',0ffh char_4: db'GHIghi4',0ffh char_5: db'JKLjkl5',0ffh char_6: db'MNOmno6',0ffh char_7: db'PQRSpqrs7',0ffh char_8: db'TUVtuv8',0ffh char_9: db'WXYZwxyz9',0ffh char_0: db'+-=%&()0',0ffh ;******************************************* reset_buffer: mov r0,#general1

mov b,#32 rst_buff_loop: mov @r0,#0ffh inc r0 djnz b,rst_buff_loop ret ; ;********** Menu2 CALL/ERASE************** menu2: call clr_scr

mov dptr,#msg18 ;db' Dial(0) Erase(5) ',0ffh call line1

mov dptr,#msg19 ;db' Next(*) Prev(#) ',0ffh call line2

;

call delay_2s call clr_scr

mov dptr,#msg15 ;db' Please wait ',0ffh; call line1

(80)

mov itc_addrl,#00h chk_dial_entry: call itc_byte_rd

mov a,itc_buff

cjne a,#0ffh,dsp_entry mov b,#32

find_next_entry: call inc_itc_addr djnz b,find_next_entry mov a,itc_addrh

cjne a,#20h,chk_dial_entry

mov dptr,#msg17 ;db' Data Empty ',0ffh call line2 call delay_2s ret ; dsp_entry: call clr_scr mov a,#80h call iwr mov b,#16 dsp_name_loop: call itc_byte_rd

mov a,itc_buff cjne a,#0ffh,dsp_name_ok mov a,#20h dsp_name_ok: call dwr call inc_itc_addr djnz b,dsp_name_loop ; mov a,#0c0h call iwr call reset_buffer mov r0,#general1 mov b,#16

dsp_num_loop: call itc_byte_rd mov a,itc_buff mov @r0,a

(81)

jnb tone_detect,menu2_loop mov a,dtmf_buff

;

chk_next_dial: cjne a,#'*',chk_prev_dial chk_next_dial2: mov a,itc_addrh

cjne a,#20h,next_entry_ok mov itc_addrh,#00h mov itc_addrl,#00h next_entry_ok: call itc_byte_rd

mov a,itc_buff

cjne a,#0ffh,dsp_entry

mov dptr,#msg15 ;db' Please wait ',0ffh; call line1

mov dptr,#msg20 ;db' ',0ffh; call line2

;

mov b,#32 nxt_dial_loop: call inc_itc_addr

djnz b,nxt_dial_loop jmp chk_next_dial2 ;

chk_prev_dial:cjne a,#'#',chk_start_dial mov b,#64

prev_dial_loop: call dec_itc_addr djnz b,prev_dial_loop call itc_byte_rd mov a,itc_buff

cjne a,#0ffh,dsp_entryt

mov dptr,#msg15 ;db' Please wait ',0ffh; call line1 mov dptr,#msg20 ;db' ',0ffh; call line2 mov b,#32 jmp prev_dial_loop ; dsp_entryt: jmp dsp_entry chk_start_dial: cjne a,#'0',chk_erase jmp dialing ;

(82)

mov b,#32

pre_erase: call dec_itc_addr djnz b,pre_erase mov b,#32

erase_loop: mov itc_buff,#0ffh call itc_byte_wr call inc_itc_addr djnz b,erase_loop jmp search_beginning ;

dialing: mov dptr,#msg9 ;db' Dialing ... ',0ffh call line2 ; call dial ret ; ;******************************************* dial: call switch_to_telkom

call delay_1s ; mov a,#0c0h ; call iwr ; mov b,#16 mov r0,#general1 dialing_loop: mov a,@r0

cjne a,#0ffh,dial_valid jmp skip_dial

;

dial_valid: ; push acc ; call dwr ; pop acc

anl a,#0fh jnz dial_valid2 mov a,#0ah

(83)

; dialing_loop2: jnb hook,$ ret ; ;*************** Menu3 RESET*************** menu3: call clr_scr

mov dptr,#msg12 ;db' Are You Sure ? ',0ffh call line1

mov dptr,#msg13 ;db' Yes(#) No(*) ',0ffh call line2 ; menu3_loop: jb hook,menu3_exit call dtmf_chk jnb tone_detect,menu3_loop mov a,dtmf_buff cjne a,#'#',chk_rst_cancel ; call clr_scr

mov dptr,#msg15 ;db' Please wait ',0ffh; call line1

;

mov itc_addrl,#00h mov itc_addrh,#00h ;

reset_loop: mov itc_buff,#0ffh call itc_byte_wr call inc_itc_addr mov a,itc_addrh cjne a,#20h,reset_loop ; mov dptr,#msg14 ;db' Done ',0ffh; call line1 call delay_1s menu3_exit: call clr_scr ret ;

chk_rst_cancel: cjne a,#'*',menu3_loop jmp menu3_exit ;

;******************************************* password: clr pw_ok

(84)

call line1 ; mov a,#8dh call iwr ; mov b,#4 mov r0,#general1 pw_loop: jb hook,pw_exit call dtmf_chk jnb tone_detect,pw_loop mov @r0,dtmf_buff inc r0 mov a,#'*' call dwr djnz b,pw_loop ; mov r0,#general1 cjne @r0,#password1,invalid_pw inc r0 cjne @r0,#password2,invalid_pw inc r0 cjne @r0,#password3,invalid_pw inc r0 cjne @r0,#password4,invalid_pw setb pw_ok ; mov dptr,#msg3 ;db' Password OK ',0ffh; call line2

pw_exit: call delay_1s call clr_scr ret

;

invalid_pw: clr pw_ok

(85)

call line1 ; mov a,#8dh call iwr ; mov b,#4 mov r0,#general1+20 pw2_loop: jb hook,pw2_exit call dtmf_chk jnb tone_detect,pw2_loop mov @r0,dtmf_buff inc r0 mov a,#'*' call dwr djnz b,pw2_loop ; mov r0,#general1+20 cjne @r0,#password21,invalid_pw2 inc r0 cjne @r0,#password22,invalid_pw2 inc r0 cjne @r0,#password23,invalid_pw2 inc r0 cjne @r0,#password24,invalid_pw2 setb pw_ok ; mov dptr,#msg3 ;db' Password OK ',0ffh; call line2

pw2_exit: call delay_1s call clr_scr ret

; invalid_pw2: clr pw_ok

mov dptr,#msg4 ;db' Invalid Password ! ',0ffh; call line2 call delay_1s call clr_scr ret ; ;******************************************* switch_to_telkom: setb relay

Gambar

Tabel 2.1.  Kombinasi frekuensi pada sistem DTMF
Gambar  2.1. Menghubungkan IC MT8888 dengan mikrokontroler
Gambar 2.7.  Menghubungkan AT89C51 dengan RAM eksternal  2.3.3.  Pewaktuan CPU
Tabel 2.2.  Special function register.
+7

Referensi

Dokumen terkait