• Tidak ada hasil yang ditemukan

de KITS Application Note AN24 - How 2 Use de KITS Phone Interface with DT-51 MinSys ver 3.0

N/A
N/A
Protected

Academic year: 2021

Membagikan "de KITS Application Note AN24 - How 2 Use de KITS Phone Interface with DT-51 MinSys ver 3.0"

Copied!
21
0
0

Teks penuh

(1)

de

KITS

Application Note

AN24 - How 2 Use de KITS Phone Interface with

DT-51 MinSys ver 3.0

oleh: Tim IE & Stevy Suwarno (Universitas Kristen Petra)

A

pplication note ini menjelaskan tentang penggunaan de KITS Phone Interface. AN ini dibuat agar pengguna dapat mengerti bagaimana menggunakan produk ini, bahkan oleh pengguna awam sekalipun. Sebagai mikrokontroler, AN ini menggunakan DT-51 MinSys ver 3.0. tetapi tidak menutup kemungkinan jika ada pengguna yang menggunakan mikrokontroler lain.

Modul-modul yang digunakan adalah: - DT-51 MinSys Ver 3.0

- de KITS Phone Interface

M

ENGHUBUNGKAN de KITS PHONE INTERFACE DENGAN DT-51 MINSYS

1. Hubungkan Data pada de KITS Phone Interface dengan DATA & CS pada DT-51 MinSys ver 3.0 dengan menggunakan kabel pita.

2. Hubungkan Control pada de KITS Phone Interface dengan Control pada DT-51 MinSys ver 3.0 dengan menggunakan kabel pita.

3. Hubungkan Port 1 pada de KITS Phone Interface dengan Port C & Port 1 pada DT-51 MinSys ver 3.0 dengan menggunakan kabel pita.

Hubungan ketiga kabel terdapat pada gambar 1.

(2)

Catatan:

- Jika de KITS Phone Interface dihubungkan dengan DT-51 MinSys ver 3.0, maka tidak diperlukan sumber tegangan eksternal karena sudah mendapat tegangan dari hubungan Port Control de KITS Phone Interface dengan Port Control DT-51 MinSys ver 3.0 (Gambar 1).

- Jika de KITS Phone Interface tidak dihubungkan dengan DT-51 MinSys ver 3.0, maka dibutuhkan sumber tegangan eksternal (Gambar 2).

Gambar 2. Letak konektor untuk sumber tegangan eksternal pada de KITS Phone Interface Perhatikan!

Polaritas tegangan pada de KITS Phone Interface tidak boleh terbalik karena dapat menimbulkan kerusakan pada de KITS Phone Interface.

M

ENGHUBUNGKAN LCD DENGAN DT-51 MINSYS (YANG JUGA TERHUBUNG KE de KITS PHONE INTERFACE)

LCD bersifat opsional. Jika dibutuhkan penggunaan LCD bersamaan dengan de KITS Phone Interface dalam satu DT-51 MinSys, maka LCD tidak bisa langsung dihubungkan dengan Port LCD pada DT-51 MinSys. Oleh karena itu dibutuhkan driver DLCDPPI.ASM agar bisa menggunakan LCD melalui Port PPI. Hubungannya adalah sebagai berikut:

Pin LCD

PORT LCD DT-51 MINSYS PORTA&PORTB DT-51 MINSYS Perhatikan!

Pin LCD tidak selalu sama. Lihatlah Manual PI.TXT untuk melihat alokasi pin-pin LCD. +5 V

GND

1

(3)

M

ODE de KITS PHONE INTERFACE

De KITS Phone Interface memiliki 2 mode yang bisa diatur melalui jumper (posisi jumper terdapat pada gambar 3).

Mode 1:

- Jumper mode tidak terhubung.

- De KITS Phone Interface bekerja dengan bantuan pesawat telepon untuk melakukan off hook. - Mode ini cocok untuk aplikasi antara lain: pengaman telepon dan anti interlokal.

- Untuk melakukan pulse dialing, jumper harus berada pada mode 1. Mode 2:

- Jumper mode terhubung.

- De KITS Phone Interface dapat bekerja dengan atau tanpa pesawat telepon untuk melakukan off hook. - Mode ini cocok untuk aplikasi antara lain: home automation dan home security.

- Mode ini sifatnya lebih general dibandingkan dengan mode 1.

Gambar 3. Letak jumper mode pada de KITS Phone Interface

M

EMPROGRAM de KITS PHONE INTERFACE

Secara garis besar, urutan untuk memprogram de KITS Phone Interface melalui DT-51 Minimum System ver 3.0 adalah seperti flowchart pada gambar 4.

(4)

Gambar 4. Flowchart pemrograman de KITS Phone Interface

P

ENJELASAN SINGKAT

- Inisialisasi de KITS Phone Interface

Awal program diletakkan pada address 4000h. Interupt diletakkan pada address 400Bh.

File PHONEINT.ASM dan DLCDPPI.ASM (jika membutuhkan tampilan LCD) dimasukkan agar rutin-rutin yang tersedia dapat digunakan.

Pada AN ini akan ditambahkan file DSPLYLCD.ASM yang berisi data-data tampilan LCD dan nomor yang akan dipanggil.

- Menentukan Stack Pointer(SP)

Untuk menentukan posisi stack pointer. - Reset MT8888

(5)

Rutin ini harus dijalankan setelah de KITS Phone Interface diberi sumber tegangan dan sebelum rutin-rutin yang lain dijalankan. Untuk keterangan lebih lanjut terdapat di datasheet MT8888 pada file MT8888.pdf.

- Inisialisasi LCD

Untuk mengaktifkan LCD serta menginisialisasi hubungan LCD dengan DT-51 MinSys. - Inisialisasi MT8888

Rutin ini biasanya dijalankan setelah rutin Reset8888 dijalankan dan sebelum rutin-rutin yang lain dijalankan, tetapi bisa juga dijalankan kapan saja jika diinginkan perubahan mode / konfigurasi MT8888. - Program Utama

Bagian ini diisi dengan proses yang diinginkan.

CONTOH LISTING PROGRAM

CONTOH PROG1.ASM: $MOD51 $TITLE(PROG1.ASM) ;MODE1 ;---;Fungsi:Pulse Dialing |

;Rutin: Reset8888, Init8888 | ; CekDialTone,DPDialing |

;---;Program ini akan menunggu gagang dari pesawat telepon diangkat. Setelah mendengar dial tone, maka ;program ini secara otomatis akan menghubungi nomor yang dituju dengan pulse dialing.

CSEG ORG 4000H LJMP Start ORG 400BH LJMP ISR_Tim0 ORG 4100H $INCLUDE(PHONEINT.ASM) $INCLUDE(DLCDPPI.ASM) $INCLUDE(DSPLYLCD.ASM) ;---;MAIN PROGRAM

;---Start: MOV SP,#40H ;Menetapkan stack pointer pada 40h LCALL Reset8888 ;Reset MT8888

LCALL InitLCD ;Inisialisasi LCD MOV Mode,#DTMF1

LCALL Init8888 ;Inisialisasi MT8888

SETB P1.1 ;Set line condition

W4OffHook: JNB P1.1,$ ;Menunggu off hook W4DialTone: ACALL CekDialTone ;Cek dial tone

JNB DTFlag,W4DialTone ;Cek dial tone flag

LCALL DDialtone ;Menampilkan “READY” pada LCD

LCALL LDelay ;Long Delay

LCALL LDelay ;Long Delay

LCALL LDelay ;Long Delay

LCALL HapusLCD ;Menghapus LCD

LCALL DHP ;Menampilkan nomor telepon pada LCD MOV DPTR,#HP ;Isi DPTR dengan #phone

(6)

LCALL DPDialing ;Melakukan DP Dialing AJMP $ ;Berhenti END CONTOH PROG1b.ASM: $MOD51 $TITLE(PROG1b.ASM) ;MODE1 ;---;Fungsi:DTMF Dialing |

;Rutin: Reset8888, Init8888 | ; CekDialTone, DTMFDialing |

; WriteDTMF, ReadStat |

;---;Program ini akan menunggu gagang dari pesawat telepon diangkat. Setelah mendengar dial tone, maka ;program ini secara otomatis akan menghubungi nomor yang dituju dengan DTMF dialing.

CSEG ORG 4000H LJMP Start ORG 400BH LJMP ISR_Tim0 ORG 4100H $INCLUDE(PHONEINT.ASM) $INCLUDE(DLCDPPI.ASM) $INCLUDE(DSPLYLCD.ASM) ;---; MAIN PROGRAM

;---Start: MOV SP,#40H ;Menetapkan stack pointer pada 40h LCALL Reset8888 ;Reset MT8888

LCALL InitLCD ;Inisialisasi LCD MOV Mode,#DTMF1

LCALL Init8888 ;Inisialisasi MT8888

SETB P1.1 ;Memasukkan bit 1 pada port 1.1 W4OffHook: JNB P1.1,$ ;Menunggu off hook

W4DialTone: ACALL CekDialTone ;Cek dial tone

JNB DTFlag,W4DialTone ;Menunggu hingga ada dial tone LCALL HapusLCD ;Menghapus layer LCD

LCALL DHP ;Menampilakan #HP pada LCD

MOV DPTR,#HP ;Memasukkan #HP pada data pointer LCALL DTMFDialing ;Melakukan DTMF Dialing

AJMP $ ;Berhenti END CONTOH PROG2.ASM: $MOD51 $TITLE(PROG2.ASM) ;MODE1 ;---;Fungsi:Deteksi dial tone | ;Rutin: Reset8888, Init8888 |

; CekDialTone |

(7)

;---;Program ini akan menunggu gagang dari pesawat telepon diangkat. Setelah gagang dari pesawat telepon ;diangkat, maka program ini akan mengecek dial tone. Jika terdengar dial tone, maka akan ditampilkan ;”READY” pada LCD. Jika tidak terdengar dial tone, maka akan ditampilkan “NO DIAL TONE” pada LCD.

CSEG ORG 4000H LJMP Start ORG 400BH LJMP ISR_Tim0 ORG 4100H $INCLUDE(PHONEINT.ASM) $INCLUDE(DLCDPPI.ASM) $INCLUDE(DSPLYLCD.ASM)

;---;Print Hexadecimal (2 digit) ;---PH1: CJNE A,#0AH,$+3 JC LTA ADD A,#37H LCALL WriteLCD RET

LTA: ADD A,#30H

LCALL WriteLCD RET

PrintHex: PUSH ACC PUSH ACC SWAP A ANL A,#0FH ACALL PH1 POP ACC ANL A,#0FH ACALL PH1 POP ACC RET ;---;MAIN PROGRAM

;---Start: MOV SP,#40H ;Menetapkan stack pointer pada 40h LCALL Reset8888 ;Reset MT8888

LCALL InitLCD ;Inisialisasi LCD MOV Mode,#DTMF1

LCALL Init8888 ;Inisialisasi MT8888

SETB P1.1 ;Memasukkan bit 1 pada port 1.1 W4OffHook: JNB P1.1,$ ;Menunggu off hook

LCALL LDelay ;Long Delay

LCALL LDelay ;Long Delay

LCALL LDelay ;Long Delay

Ulang: ACALL CekDialTone ;Cek dial tone Chk1: JNB DTFlag,Chk2 ;Cek dial tone flag

LCALL HapusLCD ;Menghapus layar LCD

LCALL DDialtone ;Menampilkan “READY” pada LCD AJMP W4OnHook

Chk2: LCALL HapusLCD ;Menghapus layar LCD

LCALL Dnodialtone ;Menampilkan “NO DIAL TONE” pada layar LCD W4OnHook: JB P1.1,Ulang ;Menunggu on hook

(8)

AJMP W4OffHook END CONTOH PROG3.ASM: $MOD51 $TITLE(PROG3.ASM) ;MODE2 ;---;Fungsi:Pick up Otomatis dengan timer | ;Rutin: Reset8888, Init8888,ROOH,RingDet2 |

;---;Program ini akan pertama-tama akan mendeteksi kondisi line telepon apakah on hook atau off hook setelah ;itu apakah ada ring atau tidak. Jika ada ring, maka program akan menunggu sampai ring yang ke R7 ;sebelum telepon akan di”angkat” secara otomatis. Jika sampai batas waktu yang ditentukan irng belum ;mencapai R7, maka program akan kembali ke awal.

CSEG ORG 4000H LJMP Start ORG 400BH LJMP ISR_Tim0 ORG 4100H $INCLUDE(PHONEINT.ASM) $INCLUDE(DLCDPPI.ASM) $INCLUDE(DSPLYLCD.ASM) ;---; MAIN PROGRAM

;---Start: MOV SP,#40H ;Menetapkan stack pointer pada 40h MOV IE,#00H

LCALL Reset8888 ;Reset MT8888 LCALL InitLCD ;Inisialisasi LCD MOV Mode,#DTMF1

LCALL Init8888 ;Inisialisasi MT8888 Ulang: LCALL HapusLCD ;Menghapus layar LCD

ACALL ROOH ;Cek off hook atau ring JB Ring,DisplayRing ;Cek ring flag

DisplayOH: LCALL DOnhook ;Menampilkan “ON HOOK” pada LCD

LCALL Ldelay ;Long Delay

AJMP Ulang

DisplayRing: LCALL DRingExist ;Menampilkan “RING EXIST” pada LCD MOV R7,#2 ;Memasukkan angka 2 pada register7 ACALL RingDet2 ;Cek ada ring atau tidak dengan limit 3 menit JNB RingExist,Ulang2 ;Cek ring exist flag

SETB P1.2 ;Pick up phone

LCALL HapusLCD ;Menghapus layar LCD

LCALL DOffhook ;Menampilkan ‘OFF HOOK” pada layar LCD

LCALL LDelay ;Long Delay

AJMP $ ;Berhenti

Ulang2: LCALL LDelay ;Long Delay

AJMP Ulang END

(9)

CONTOH PROG3b.ASM: $MOD51 $TITLE(PROG3b.ASM) ;MODE2 ;---;Fungsi:Pick up Otomatis | ;Rutin: Reset8888, Init8888 |

; ROOH, RingDet1 |

;---;Program ini akan pertama-tama akan mendeteksi kondisi line telepon apakah on hook atau off hook setelah ;itu apakah ada ring atau tidak. Jika ada ring, maka program akan menunggu sampai ring yang ke R7 ;sebelum telepon akan di”angkat” secara otomatis.

CSEG ORG 4000H LJMP Start ORG 400BH LJMP ISR_Tim0 ORG 4100H $INCLUDE(PHONEINT.ASM) $INCLUDE(DLCDPPI.ASM) $INCLUDE(DSPLYLCD.ASM) ;---; MAIN PROGRAM

;---Start: MOV SP,#40H ;Menetapkan stack pointer pada 40h MOV IE,#00H

LCALL Reset8888 ;Reset MT8888 LCALL InitLCD ;Inisialisasi LCD MOV Mode,#DTMF1

LCALL Init8888 ;Inisialisasi MT8888

MOV R7,#2 ;Memasukkan nilai 2 pada register 7 Ulang: LCALL HapusLCD ;Menghapus layar LCD

ACALL ROOH ;Cek off hook atau ring JB Ring,DisplayRing ;Cek ring flag

DisplayOH: LCALL DOnhook ;Menampilkan “ON HOOK” pada LCD

LCALL LDelay ;Long Delay

AJMP Ulang

DisplayRing: LCALL DRingExist ;Menampilkan “RING EXIST” pada LCD ACALL RingDet1 ;Menunggu ring hingga R7 kali

JNB RingExist,Ulang2 ;Cek ring exist flag

SETB P1.2 ;Pick up phone

LCALL HapusLCD ;Menghapus layar LCD

LCALL DOffhook ;Menampilkan “OFF HOOK” pada LCD

LCALL LDelay ;Long Delay

AJMP $ ;Berhenti

Ulang2: LCALL LDelay ;Long Delay

AJMP Ulang END

(10)

CONTOH PROG4.ASM: $MOD51

$TITLE(PROG4.ASM) ;MODE1

;---;Fungsi:Cek Call Progress | ;Rutin: Reset8888, Init8888 | ; CekDialTone, DTMFDialing |

; CekCP |

;---;Program ini akan menunggu gagang dari pesawat telepon diangkat. Setalah itu program mendeteksi ;apakah ada dial tone atau tidak. Jika ada dial tone, akan dilakukan DTMF dialing. Terakhir Pengcekan call ;progress. Jika terdengar busy tone, maka akan ditampilkan “BUSY” pada LCD. Jika terdengar ring back, ;maka akan ditampilkan “RING BACK” pada LCD. Jika tidak terdengar keduanya, maka akan ditampilkan ;“FAIL” pada LCD CSEG ORG 4000H LJMP Start ORG 400BH LJMP ISR_Tim0 ORG 4100H $INCLUDE(PHONEINT.ASM) $INCLUDE(DLCDPPI.ASM) $INCLUDE(DSPLYLCD.ASM)

;---;Print Hexadecimal (2 digit) ;---PH1: CJNE A,#0AH,$+3 JC LTA ADD A,#37H LCALL WriteLCD RET

LTA: ADD A,#30H

LCALL WriteLCD RET

PrintHex: PUSH ACC PUSH ACC SWAP A ANL A,#0FH ACALL PH1 POP ACC ANL A,#0FH ACALL PH1 POP ACC RET ;---;MAIN PROGRAM

;---Start: MOV SP,#40H ;Menetapkan stack pointer pada 40h LCALL Reset8888 ;Reset MT8888

LCALL InitLCD ;Inisialisasi LCD MOV Mode,#DTMF1

(11)

SETB P1.1 ;Memasukkan bit 1 pada port 1.1 W4OffHook: JNB P1.1,$ ;Menunggu off hook

Wait4DTExist: ACALL CekDialTone ;Cek dial tone JNB DTFlag,Wait4DTExist ;Cek dial tone flag

LCALL DHP ;Menampilkan #HP pada LCD

MOV DPTR,#HP ;Memasukkan #HP pada data pointer LCALL DTMFDialing ;Melakukan DTMF dialing

Ulang: ACALL CekCP ;Cek call progress

Chk1: JNB BusyFlag,Chk2 ;Cek busy flag

LCALL HapusLCD ;Menghapus layar LCD

LCALL DBusytone ;Menampilkan “BUSY” pada LCD AJMP W4OnHook

Chk2: JNB RBFlag,Chk3 ;Cek ring back flag LCALL HapusLCD ;Menghapus layar LCD

LCALL DRingback ;Menampilkan “RING BACK” pada LCD AJMP W4OnHook

Chk3: LCALL HapusLCD ;Menghapus layar LCD

LCALL DFail ;Menampilkan “FAIL” pada LCD

W4OnHook: JB P1.1,$ ;Menunggu on hook

LCALL HapusLCD ;Menghapus layar LCD AJMP W4OffHook END CONTOH PROG5.ASM: $MOD51 $TITLE(PROG5.ASM) ;MODE1 ;---;Fungsi:Tampilan dial pulse | ;Rutin: Reset8888, Init8888 |

; GetDPNumber |

;---;Program ini akan menunggu gagang dari pesawat telepon diangkat. Setalah itu program mendeteksi ;apakah ada tombol dari pesawat telpon yang ditekan. Jika ada, maka akan ditampilkan angka yang sesuai ;dengan pulse dial yang ditekan pada LCD.

CSEG ORG 4000H LJMP Start ORG 400BH LJMP ISR_Tim0 ORG 4100H $INCLUDE(PHONEINT.ASM) $INCLUDE(DLCDPPI.ASM) ;---;MAIN PROGRAM

;---Start: MOV SP,#40H ;Menetapkan stack pointer pada 40h LCALL Reset8888 ;Reset MT8888

LCALL InitLCD ;Inisialisasi LCD MOV Mode,#DTMF1

(12)

SETB P1.1 ;Memasukkan bit 1 pada port 1.1 W4OffHook: JNB P1.1,$ ;Menunggu off hook

ambil: LCALL GetDPNumber ;Mengecek angka yang ditekan pada pesawat telepon EO_DP: CJNE A,#0AH,Print19 ;apakah angka 0 yang ditekan?

MOV A,#'0' ;Mengisi ‘0’ pada acc AJMP Print

Print19: ADD A,#30H ;Menambah 30h pada acc

Print: LCALL WriteLCD ;Menampilkan angka yang ditekan pada pesawat telepon AJMP ambil AJMP $ ;Berhenti END CONTOH PROG5b.ASM: $MOD51 $TITLE(PROG5b.ASM) ;MODE1 ;---;Fungsi:Tampilan DTMF signal | ;Rutin: Reset8888, Init8888 |

; ReadDTMF |

;---;Program ini akan menunggu gagang dari pesawat telepon diangkat. Setalah itu program mendeteksi ;apakah ada tombol dari pesawat telpon yang ditekan. Jika ada, maka akan ditampilkan angka yang sesuai ;dengan DTMF signal yang ditekan pada LCD.

CSEG ORG 4000H LJMP Start ORG 400BH LJMP ISR_Tim0 ORG 4100H $INCLUDE(PHONEINT.ASM) $INCLUDE(DLCDPPI.ASM) ;---; MAIN PROGRAM

;---Start: MOV SP,#40H ;Menetapkan stack pointer pada 40h MOV IE,#00H

LCALL Reset8888 ;Reset MT8888 LCALL InitLCD ;Inisialisasi LCD MOV Mode,#DTMF1

LCALL Init8888 ;Inisialisasi MT8888

SETB P3.2 ;Set interupt

SETB P1.1 ;Set line condition

W4OffHook: JNB P1.1,$ ;Menunggu off hook MOV A,#'A' ;Memasukkan ‘A’ pada acc LCALL WriteLCD ;Menampilkan pada layar LCD ;Pooling INT0 Pin

W4IRQ: JB P3.2,ChkHook ;Cek interupt AJMP GetDTMF

ChkHook: JB P1.1,W4IRQ ;Cek line condition

MOV A,#'T' ;Memasukkan ‘T’ pada acc LCALL WriteLCD ;Menampilkan pada layar LCD AJMP W4OffHook

(13)

GetDTMF: LCALL ReadStat ;Membaca status dari register MT8888

LCALL ReadDTMF ;Membaca hasil decode DTMF signal berupa DTMF digit ANL A,#0FH ;Menggunakan fungsi AND antara 0FH dengan acc CJNE A,#0CH,ChkDTMF ;Apakah yang ditekan ‘#’?

MOV A,#'#' ;Memasukkan ‘#’ pada acc LCALL WriteLCD ;Menampilkan pada layar LCD AJMP W4IRQ

ChkDTMF: CJNE A,#0AH,CDTMF19 ;Apakah yang ditekan ‘0’?

DTMF0: MOV A,#'0' ;Memasukkan ‘0’ pada acc

LCALL WriteLCD ;Menampilkan pada layar LCD AJMP W4IRQ

CDTMF19: CJNE A,#0BH,DTMF19 ;Apakah yang ditekan ‘*’?

DTMF11: MOV A,#'*' ;Memasukkan ‘*’ pada acc

LCALL WriteLCD ;Menampilkan pada layar LCD AJMP W4IRQ

DTMF19: ADD A,#30H ;Menambah 30h pada acc

LCALL WriteLCD ;Menampilkan pada layar LCD AJMP W4IRQ

END

Program Telepon Otomatis

Program ini akan membantu pemakai yang ingin mencoba program yang lebih kompleks lagi. Pada program telepon otomatis ini phone interface secara automatis akan menganalisa kondisi line telepon, setelah itu mengecek dial tone, menghubungi nomor telepon yang ditunjuk data pointer dan menganalisa call progress, terakhir kembali ke awal. Program ini juga dapat menganalisa dering pada saat phone interface dihubungi dari telepon luar.

Cara kerja program ini:

¾ Pertama-tama akan menganalisa kondisi line telepon, jika gagang dari pesawat telepon masih diletakkan, program akan mendeteksi apakah ada dering atau tidak. Jika tidak ada maka program akan kembali mendeteksi kondisi line telepon.

¾ Jika ada dering akan menunggu telepon diangkat. Setelah batas waktu yang ditentukan, hubungan telepon akan diputuskan secara otomatis dan kembali ke program awal.

¾ Pada saat pengecekan kondisi line telepon, jika gagang dari pesawat telepon diangkat, program akan menganalisa dial tone, dengan hasil:

™ Jika terdengar dial tone, maka akan ditampilkan “READY” pada LCD. ™ Jika tidak terdengar, maka akan ditampilkan “NO DIAL TONE” pada LCD.

¾ Setelah pengecekan dial tone, program akan menampilkan nomor telepon yang akan dihubungi. Kemudian nomor tersebut akan dihubungi dengan DTMF dialing. Selanjutnya program akan mengecek call progress sebagai berikut:

™ Jika terdengar busytone, maka akan ditampilkan “BUSY” pada LCD. ™ Jika terdengar ringback, maka akan ditampilkan “RING BACK” pada LCD. ™ Jika tidak keduanya, maka akan ditampilkan “FAIL” pada LCD.

¾ Setelah penerima mengangkat telepon dari seberang, percakapan dapat berlangsung selama waktu yang ditentukan, setelah itu hubungan akan terputus, program akan menunggu telepon diletakkan dan kembali ke awal pogram.

(14)
(15)
(16)
(17)
(18)
(19)

LISTING PROGRAM BESAR.ASM

$MOD51

$TITLE(BESAR.ASM) ;MODE1

;Program ini akan melakukan pengecekan line condition,

;jika ada telepon masuk maka akan diterima secara otomatis bila

;sampai ring kedua belum diterima. Jika tidak, menunggu telpon diangkat. ;Melakukan pengecekan dial tone, pulse dialing, cek call progress. ;Bila telpon belum ditutup sampai batas waktu yang ditentukan, hubungan ;akan diputus, kembali ke langkah awal.

CSEG ORG 4000H LJMP Start ORG 400BH LJMP ISR_Tim0 ORG 4100H $INCLUDE(PHONEINT.ASM) $INCLUDE(DLCDPPI.ASM) $INCLUDE(DSPLYLCD.ASM)

;---;Print Hexadecimal (2 digit) ;---PH1: CJNE A,#0AH,$+3 JC LTA ADD A,#37H LCALL WriteLCD RET

LTA: ADD A,#30H

LCALL WriteLCD RET

PrintHex: PUSH ACC PUSH ACC SWAP A ANL A,#0FH ACALL PH1 POP ACC ANL A,#0FH ACALL PH1 POP ACC RET ;---; MAIN PROGRAM

;---Start: MOV SP,#40H ;Menetapkan stack pointer pada 40h LCALL Reset8888 ;Reset MT8888

LCALL InitLCD ;Inisialisasi LCD MOV Mode,#DTMF1

LCALL Init8888 ;Inisialisasi MT8888

SETB P1.1 ;Set line condition

W4OnHook: JB P1.1,Terangkat ;Check Line Condition AJMP Taruh

Terangkat: LCALL HapusLCD ;Membersihkan layar LCD LCALL DOffhook ;Display “OFF HOOK” pada LCD

LCALL LDelay ;Long Delay

(20)

Taruh: LCALL HapusLCD ;Membersihkan layar LCD LCALL DOnhook ;Display “ON HOOK” pada LCD

LCALL LDelay ;Long Delay

LCALL LDelay ;Long Delay

LCALL LDelay ;Long Delay

Cekring: JNB P1.0,Yring ;Check Ring or not AJMP Nring

Yring: LCALL HapusLCD ;Membersihkan layar LCD

LCALL Dringexist ;Display “RING EXIST” pada LCD

JNB P1.1,$ ;Menunggu off hook

Lanjut: LCALL HapusLCD ;Membersihkan layar LCD LCALL DOffhook ;Display “OFF HOOK” pada LCD Timerstart: PUSH 05H ;tunggu tutup atau waktu habis

PUSH 06H PUSH 07H MOV R5,#90 LDel2S2: MOV R6,#200 LDel2S1: MOV R7,#250 kurang: DJNZ R7,test AJMP berikut

test: JNB P1.1,tutup ;Bila ditutup, langsung kembali ke awal AJMP kurang berikut: DJNZ R6,LDel2S1 DJNZ R5,LDel2S2 tutup: POP 07H POP 06H POP 05H CLR P1.2 ;Hang up phone AJMP W4OnHook

Nring: LCALL HapusLCD ;Membersihkan layar LCD LCALL DNoring ;Display “NO RING” pada LCD

LCALL LDelay ;Long Delay

JNB P1.1,Cekring ;Cek gagang telepon sudah diletakkan LCALL HapusLCD ;Membersihkan layar LCD

LCALL DOffhook ;Display “OFF HOOK” pada LCD

LCALL LDelay ;Long Delay

LCALL LDelay ;Long Delay

LCALL LDelay ;Long Delay

ACALL CekDialTone ;Cek Dial Tone

JB DTFlag,Ada ;Mengecek dialtoneflag LCALL HapusLCD ;Membersihkan layar LCD

LCALL DNodialtone ;Display “NO DIAL TONE” pada LCD

LCALL LDelay ;Long Delay

AJMP W4OnHook

Ada: LCALL HapusLCD ;Membersihkan layar LCD

LCALL DDialtone ;Display “READY” pada LCD

LCALL Ldelay ;Long Delay

LCALL LDelay ;Long Delay

LCALL LDelay ;Long Delay

LCALL HapusLCD ;Membersihkan layar LCD

LCALL DHP ;Display #HP pada LCD

MOV DPTR,#HP ;Mengisi data pointer dengan #HP LCALL DTMFDialing ;DTMF Call

ACALL CekCP ;Cek Call Progress

JNB P1.1,kembali ;Cek gagang telepon sudah diletakkan Chk1: JNB BusyFlag,Chk2 ;Mengecek busyflag

LCALL HapusLCD ;Membersihkan layar LCD LCALL DBusytone ;Display “BUSY” pada LCD

(21)

LCALL Delay2S ;Delay 2 detik kembali: AJMP W4OnHook

Chk2: JNB RBFlag,Chk3 ;Mengecek ringbackflag LCALL HapusLCD ;Membersihkan layar LCD LCALL DRingback ;Display “RING BACK” pada LCD

LCALL LDelay ;Long Delay

AJMP Timerstart

Chk3: LCALL HapusLCD ;Membersihkan layar LCD LCALL DFail ;Display “FAIL” pada LCD LCALL Delay2S ;Delay 2 detik

AJMP W4OnHook END

TROUBLE SHOOTING

Berikut ini adalah beberapa permasalahan-permasalahan umum seputar penggunaan de KITS Phone Interface dan cara mengatasinya.

1. de KITS Phone Interface tidak aktif.

- Periksa apakah de KITS Phone Interface sudah mendapat supply tegangan yang sesuai.

- Periksa polaritas tegangan pada de KITS Phone Interface kemungkinan ada terbalik antara kutub positif-negatif.

2. Rutin-rutin yang disediakan tidak bisa digunakan ketika program dijalankan.

- Periksa apakah file PHONEINT.ASM pada program sudah dimasukkan (lihat contoh program). - Periksa apakah Reset8888 dan Init8888 sudah dipanggil di awal program.

3. Program tiba-tiba hang setelah dijalankan.

- Cek dulu apakah anda telah menetapkan nilai stack pointer. 4. LCD tidak mau menyala sama sekali.

- Periksa apakah LCD sudah mendapat supply tegangan dan polaritas tegangan tidak terbalik.(lihat keterangan pada bab 4)

- Periksa apakah contrast dari LCD sudah diatur. 5. LCD tidak mau bereaksi ketika program sudah didownload.

- Periksa apakah file DLCDPPI.ASM pada program sudah dimasukkan (lihat contoh program). 6. Tulisan pada LCD kacau ketika program dijalankan.

- Periksa hubungan LCD dengan PORTA&PORTB pada DT-51 MinSys. (lihat keterangan pada bab 4).

7. Contoh program Pulse Dialing tidak dapat dijalankan.

Gambar

Gambar 1. Hubungan de KITS Phone Interface dengan DT-51 MinSys ver 3.0
Gambar 2. Letak konektor untuk sumber tegangan eksternal pada de KITS Phone Interface Perhatikan!
Gambar 3. Letak jumper mode pada de KITS Phone Interface
Gambar 4. Flowchart pemrograman de KITS Phone Interface

Referensi

Dokumen terkait

Hal ini dikarenakan metode yang diterapkan guru masih monoton yaitu guru hanya menggunakan metode ceramah, tanya jawab, dan pemberian tugas pada setiap

Pengujian hipotesis pertama yang menyatakan bahwa laba akuntansi berpengaruh signifikan terhadap return saham, dapat dilihat pada Tabel 12 bahwa variabel laba akuntansi yang

Hal ini berarti bahwa dapat dijelaskan oleh variasi dari variabel kompetensi, pengalaman kerja dan etika auditor dalam kualitas audit, sedangkan sisanya sebesar

Kota Bandar Lampung merupakan salah satu kota di Indonesia yang sedang berkembang saat ini. Perkembangan tersebut akan mempengaruhi bidang kependudukan dan dunia kerja.

Dalam penelitian ini, sertifikat SVLK harus dimiliki perusahaan agar konsumen yakin bahwa bahan baku yang digunakan (kayu) berasal dari hutan dengan tata kelola baik,

Secara umum sarana sanitasi air bersih di Pelabuhan kota Gorontalo memenuhi syarat kesehatan hal ini disebabkan karena sarana yang ada selalu dalam pengawasan

pekerjaannya dan apa yang mereka peroleh. Orang yang paling tidak merasa puas adalah mereka yang mempunyai keinginan paling banyak, namun mendapat yang paling