Penulis Topik: DTMF Encoder dan Decoder  (Dibaca 7991 kali)

0 Anggota dan 1 Pengunjung sedang melihat topik ini.

Offline isurG_

  • Isurganteng
  • Administrator
  • Hero Member
  • ********
  • Tulisan: 2671
  • Keseharianku Melawan Waktu
    • Keseharianku Melawan Waktu
DTMF Encoder dan Decoder
« pada: Januari 12, 2011, 03:06:15 AM »
cekin dong ... ada yang harus di refisi ndak ya ... sebelum ngerakit ne ... hehehe





thanks sebelumnya buat para master ....


 corong1

fb : isurg
ig : isurg_ , isurganteng
yb : isurcocc
tw : isurg
web : tukangsapu.net, aditama.net, elektronika.web.id

Offline isurG_

  • Isurganteng
  • Administrator
  • Hero Member
  • ********
  • Tulisan: 2671
  • Keseharianku Melawan Waktu
    • Keseharianku Melawan Waktu
Re:DTMF Encoder dan Decoder
« Jawab #1 pada: Januari 12, 2011, 03:10:10 AM »
duh lagi senengnya ne belajar pcb express... dulu cuma bisa skema doang sekarang dah bisa pake netlist ... maklum lah masi cupu .. xixxixi cuma sayang manual ngatur2 kedudukan.. tapi ndak papa lah ... dari pada ndak pande sama sekali hahahaha .. 

elus1
anakayam1

fb : isurg
ig : isurg_ , isurganteng
yb : isurcocc
tw : isurg
web : tukangsapu.net, aditama.net, elektronika.web.id

Offline purwanto-amm

  • Administrator
  • Hero Member
  • ********
  • Tulisan: 1066
  • Nikola Tesla
    • purwanto-apriana
Re:DTMF Encoder dan Decoder
« Jawab #2 pada: Januari 12, 2011, 06:49:56 AM »
duh lagi senengnya ne belajar pcb express... dulu cuma bisa skema doang sekarang dah bisa pake netlist 

PCBExpres ,cara pake netlist gimana bang........ ?
Kontak INBOX ke FB
facebook.com/purwanto.apriana

BLOG
purwanto1987.wordpress.com

Offline isurG_

  • Isurganteng
  • Administrator
  • Hero Member
  • ********
  • Tulisan: 2671
  • Keseharianku Melawan Waktu
    • Keseharianku Melawan Waktu
Re:DTMF Encoder dan Decoder
« Jawab #3 pada: Januari 12, 2011, 08:33:52 AM »
kalo yang pake file belom tau .... cuma yang manula aja hehehee

1. check eror netlist di skema .... kalo ndak da eror aman tu ..
2. konekin skema ke pcb layout ... dah tu masukan komponent2 dan sesuai dengan kode ...
3. nah nanti masing2 pin komponen yang terkoneksi bewarna biru



4. di atur posisinya ... jadi dah .....
5. kalo pake file masi belum ngerti bozzz. .... maklum lah masi cupu .... ngejar bikin pcb cepet aja ....

fb : isurg
ig : isurg_ , isurganteng
yb : isurcocc
tw : isurg
web : tukangsapu.net, aditama.net, elektronika.web.id

Offline isurG_

  • Isurganteng
  • Administrator
  • Hero Member
  • ********
  • Tulisan: 2671
  • Keseharianku Melawan Waktu
    • Keseharianku Melawan Waktu
Re:DTMF Encoder dan Decoder
« Jawab #4 pada: Januari 12, 2011, 12:19:45 PM »
bener opo salah yo ???

fb : isurg
ig : isurg_ , isurganteng
yb : isurcocc
tw : isurg
web : tukangsapu.net, aditama.net, elektronika.web.id

Offline Fredi

  • Full Member
  • ****
  • Tulisan: 133
Re:DTMF Encoder dan Decoder
« Jawab #5 pada: Januari 12, 2011, 09:13:58 PM »
Mas Isur, untuk 8870 pin 10 koq ke C2, kalo saya biasanya pin 10 dan C2 ke +5V. Kalo 5089nya blom pernah nyoba. eh ngomong2 sudah nyampe belum paketnya ?

Offline isurG_

  • Isurganteng
  • Administrator
  • Hero Member
  • ********
  • Tulisan: 2671
  • Keseharianku Melawan Waktu
    • Keseharianku Melawan Waktu
Re:DTMF Encoder dan Decoder
« Jawab #6 pada: Januari 12, 2011, 09:24:21 PM »
bener bos ... tadi sore dikoreksi ada kesalahan pada skema bener itu sebenarnya ke 5volt ...

cepet bos sampe nya ... 2 hari dari bos kirim dah sampe .... malahan yang dari bandung belum sampe2 HT9200 . .. muahal lagi ... 46.000 steres deh hahaha ...

fb : isurg
ig : isurg_ , isurganteng
yb : isurcocc
tw : isurg
web : tukangsapu.net, aditama.net, elektronika.web.id

Offline lei-yo

  • Newbie
  • *
  • Tulisan: 9
Re:DTMF Encoder dan Decoder
« Jawab #7 pada: Januari 14, 2011, 03:53:59 AM »
wuuuih......penggemar MITEL juga toh.....sukses selalu ya....!
 top1

Offline isurG_

  • Isurganteng
  • Administrator
  • Hero Member
  • ********
  • Tulisan: 2671
  • Keseharianku Melawan Waktu
    • Keseharianku Melawan Waktu
Re:DTMF Encoder dan Decoder
« Jawab #8 pada: Januari 19, 2011, 11:24:00 PM »




jalan ngga ya ????  nunggu1 nunggu1 nunggu1

fb : isurg
ig : isurg_ , isurganteng
yb : isurcocc
tw : isurg
web : tukangsapu.net, aditama.net, elektronika.web.id

Offline isurG_

  • Isurganteng
  • Administrator
  • Hero Member
  • ********
  • Tulisan: 2671
  • Keseharianku Melawan Waktu
    • Keseharianku Melawan Waktu
Re:DTMF Encoder dan Decoder
« Jawab #9 pada: Januari 23, 2011, 07:19:31 PM »



fb : isurg
ig : isurg_ , isurganteng
yb : isurcocc
tw : isurg
web : tukangsapu.net, aditama.net, elektronika.web.id

Offline Busan

  • Sr. Member
  • ******
  • Tulisan: 497
    • My Electronic Collections
Re:DTMF Encoder dan Decoder
« Jawab #10 pada: Januari 23, 2011, 07:33:56 PM »
udah jalan apa belum projectnya bang Isur?
RBS FM on

Offline isurG_

  • Isurganteng
  • Administrator
  • Hero Member
  • ********
  • Tulisan: 2671
  • Keseharianku Melawan Waktu
    • Keseharianku Melawan Waktu
Re:DTMF Encoder dan Decoder
« Jawab #11 pada: Januari 23, 2011, 08:02:19 PM »
 belum bos ... lagi pelajari asemblernya .... masih binun perintah2nya ... untuk pic nya ...

fb : isurg
ig : isurg_ , isurganteng
yb : isurcocc
tw : isurg
web : tukangsapu.net, aditama.net, elektronika.web.id

Offline Busan

  • Sr. Member
  • ******
  • Tulisan: 497
    • My Electronic Collections
Re:DTMF Encoder dan Decoder
« Jawab #12 pada: Januari 23, 2011, 09:08:46 PM »
kan tidak harus pake assembler, bisa pakai bahasa yg lain.
RBS FM on

Offline isurG_

  • Isurganteng
  • Administrator
  • Hero Member
  • ********
  • Tulisan: 2671
  • Keseharianku Melawan Waktu
    • Keseharianku Melawan Waktu
Re:DTMF Encoder dan Decoder
« Jawab #13 pada: Januari 23, 2011, 09:17:24 PM »
masi belum paham bos pengaturannya dari out 8870 ... ajarin dong bos .... ne rencana mo memanfaatkan yang ada aja di modifikasi .... masih belum sanggup untuk menciiptakan sendiri .... hex na ... intinya si dari 8870 bisa ngontrol 8 riley ... seperti on *51# sampe  *58# on kan relay .... off *81# sampe  *88# off kan relay padahal keluaran 8870 kan 4 pin ...

fb : isurg
ig : isurg_ , isurganteng
yb : isurcocc
tw : isurg
web : tukangsapu.net, aditama.net, elektronika.web.id

Offline isurG_

  • Isurganteng
  • Administrator
  • Hero Member
  • ********
  • Tulisan: 2671
  • Keseharianku Melawan Waktu
    • Keseharianku Melawan Waktu
Re:DTMF Encoder dan Decoder
« Jawab #14 pada: Januari 23, 2011, 10:42:48 PM »
rencana mo input asm ini ke hex ....

Kode: [Pilih]
; dtmf.asm - tone decoder with relay control.

; reads output from an 8870 DTMF decoder and controls a bank of relays.
; 4 digit security code (abcd) precedes all commands
; Code sequences "*abcd11#" through to "*abcd18#" turn on the corresponding relay
; code sequence "*abcd10#" turns on all relays
; Code sequences "*abcd21#" through to "*abcd28#" turn off the corresponding relay
; Code sequence "*abcd20#" turns off all relays
; Codes "*abcd?9#" through "*abcd?D#" are ignored.\
; Note "oa" is used for "0" in security code not"00"

list p=16f84a
include "p16f84a.inc"
__FUSES _CP_OFF & _XT_OSC  & _WDT_OFF & _PWRTE_ON

OPTREG equ 01
TRIS_A equ 05
TRIS_B equ 06

relays equ 10
mfcode equ 11
cntdown equ 12
timeout equ 13
slocnt1 equ 14
slocnt2 equ 15
numa    equ 16
numb equ 17
numc equ 18
numd equ 19

org 0000 ;tell assembler to start at 000H

init goto start

org 0004 ;interrupt vector

rtc_interrupt
decfsz slocnt1,F ;decrement 1st prescaler
goto rtc_int_1
decfsz slocnt2,F ;decrement 2nd prescaler
goto rtc_int_1
bcf relays,4 ;turn relay 6 off
bcf PORTB,4
rtc_int_1
decfsz cntdown,F ;count down and skip next if = 0
goto counting ;still counting if not reached zero
bsf timeout,0 ;set timed out bit
bcf INTCON,2 ;clear interrupt flag
retfie ;return

counting
bcf timeout,0 ;clear timed out bit
bcf INTCON,2 ;clear interrupt flag
retfie ;return

; subroutines

wait_strobe
btfsc timeout,0 ;see if timed out
goto set_z ;set Z flag if timeout ocurred
btfss PORTA,4 ;see if Strobe is active on RA4
goto wait_strobe ;loop until it is
movfw PORTA ;retreive the code from the 8870
movwf mfcode ;store it in mfcode
bcf mfcode,4 ;ensure strobe isn't seen as data
bcf STATUS,2 ;return with Z=0 if tone decoded
return

set_z bsf STATUS,2 ;return with Z=1 if timed out waiting
return

wait_no_strobe
btfsc PORTA,4 ;see if strobe is active on RA4
goto wait_no_strobe ;loop until it isn't
return

start_timer
movlw H'54' ;software prescaler for 7 seconds
movwf cntdown
return


; Start of setup and decode routines:

start movlw B'00100000' ;select register page 1
movwf STATUS

clrf TRIS_B ;set all port B pins to output mode
movlw B'00011111' ;set all port A pins to input mode
movwf TRIS_A

movlw B'10000111'
movwf OPTREG ;sets: pull-up on port B OFF
; RTCC counts internal clock
; prescaler connected to RTCC
; prescaler divides by 256
; (other bits unimportant)
clrw ;clear the working register
movwf STATUS ;switch back to register page 0
clrf PORTB ;all outputs off
clrf relays
clrf timeout
movlw B'10100000'
movwf INTCON ;global and RTCC interrupts enabled

set_sec movlw H'01' ;put the 4 access codes into memory
movwf numa ;note for a 0 the hex is H'0A'
movlw H'02'
movwf numb
movlw H'03'
movwf numc
movlw H'04'
movwf numd

decode call wait_no_strobe ;start running when no tone present
clrf timeout ;set timeout condition until later
call wait_strobe ;wait for a tone to be received
movlw H'0B' ;0B is the code for DTMF "*"
subwf mfcode,W ;set zero flag if "*" was received
btfsc STATUS,2 ;skip next if it was not a "*"
goto got_star
goto decode ;look for another one

got_star
call start_timer ;start time-out timer
call wait_no_strobe ;wait for second tone
call wait_strobe
btfsc STATUS,2 ;abort if timed out
goto decode
movf numa,W
subwf mfcode,W                  ;set zero flag if second tone was 1
btfsc STATUS,2 ;skip next if it was not a 1
goto got_A
goto get_#

got_A call wait_no_strobe ;wait for third tone
call wait_strobe
btfsc STATUS,2 ;abort if timed out
goto decode
movf numb,W
subwf mfcode,W                  ;set zero flag if second tone was 1
btfsc STATUS,2 ;skip next if it was not a 1
goto got_B
goto get_#

got_B call wait_no_strobe ;wait for third tone
call wait_strobe
btfsc STATUS,2 ;abort if timed out
goto decode
movf numc,W
subwf mfcode,W                  ;set zero flag if second tone was 1
btfsc STATUS,2 ;skip next if it was not a 1
goto got_C
goto get_#

got_C call wait_no_strobe ;wait for third tone
call wait_strobe
btfsc STATUS,2 ;abort if timed out
goto decode
movf numd,W
subwf mfcode,W                  ;set zero flag if second tone was 1
btfsc STATUS,2 ;skip next if it was not a 1
goto got_D
goto get_#


got_D call wait_no_strobe ;wait for third tone
call wait_strobe
btfsc STATUS,2 ;abort if timed out
goto decode

movlw H'01'
subwf mfcode,W                  ;set zero flag if second tone was 1
btfsc STATUS,2 ;skip next if it was not a 1
goto got_1

movlw H'02'
subwf mfcode,W                  ;set zero flag if second tone was 0
btfsc STATUS,2 ;skip next if it was not a 0
goto got_2
goto get_# ;wait for # to end invalid sequence



; to reach here, the tone sequence "*<numa><numb><numc><numd>1" has been found, now decode request
; according to the next 2 tones but don't action it until a "#" is seen.

got_1 call wait_no_strobe
call wait_strobe ;wait for third tone
btfsc STATUS,2 ;abort if timed out
goto decode

call wait_no_strobe ;wait for tone to finish
movf mfcode,W ;pick up keyed digit
addwf PCL,F ;jump ahead to vector
goto decode ;5D (mf code 0000)
goto got_11
goto got_12
goto got_13
goto got_14
goto got_15
goto got_16
goto got_17
goto got_18
goto decode
goto got_10
goto decode ;*
goto decode ;#
goto decode ;5A
goto decode ;5B
goto decode ;5C (mf code 1111)

got_10 movlw B'11111111' ;all outputs on
movwf relays
goto get_#


got_11 bsf relays,0 ;set output 1 on
goto get_#

got_12 bsf relays,1 ;set output 2 on
goto get_#

got_13 bsf relays,3 ;set output 3 on
goto get_#

got_14 bsf relays,2 ;set output 4 on
goto get_#

got_15 bsf relays,5 ;set output 5 on
goto get_#

got_16 bsf relays,4 ;set output 6 on
goto get_#

got_17 bsf relays,6 ;set output 7 on
goto get_#

got_18 bsf relays,7 ;set output 8 on
goto get_#


; to reach here, the tone sequence "*<numa><numb><numc><numd>2" has been found, now decode request
; according to the next 2 tones but don't action it until a "#" is seen.

got_2 call wait_no_strobe
call wait_strobe ;wait for sixth tone
btfsc STATUS,2 ;abort if timed out
goto decode

call wait_no_strobe ;wait for tone to finish
movf mfcode,W ;pick up keyed digit
addwf PCL,F ;jump ahead to vector
goto decode ;5D (mf code 0000)
goto got_21
goto got_22
goto got_23
goto got_24
goto got_25
goto got_26
goto got_27
goto got_28
goto decode
goto got_20
goto decode ;*
goto decode ;#
goto decode ;5A
goto decode ;5B
goto decode ;5C (mf code 1111)

got_20 movlw B'0000000'
movwf relays ;set all outputs off
goto get_#


got_21 bcf relays,0 ;set output 1 off
goto get_#

got_22 bcf relays,1 ;set output 2 off
goto get_#

got_23 bcf relays,3 ;set output 3 off
goto get_#

got_24 bcf relays,2 ;set output 4 off
goto get_#

got_25 bcf relays,5 ;set output 5 Off
goto get_#

got_26 bcf relays,4 ;set output 6 Off
goto get_#

got_27 bcf relays,6 ;set output 7 Off
goto get_#

got_28 bcf relays,7 ;set output 8 Off
goto get_#

get_# call wait_strobe ;wait for 7th tone
btfsc STATUS,2 ;abort if timed out
goto decode

movlw H'0C' ;0C is the DTMF code for "#"
subwf mfcode,W ;if # received set Z flag
btfsc STATUS,2 ;skip next if not a #
goto got_#
call wait_no_strobe
goto get_# ;only # is valid, loop until found
;or timeout

got_#   call wait_no_strobe ;wait for the tone to finish
movfw relays ;use the "relays" variable to set RB
movwf PORTB
goto decode ;all done, check for new sequence

retlw 'v'
retlw '1'
retlw '.'
retlw '3'
retlw '.'
retlw 'W'
retlw 'W'
retlw '2'
retlw 'R'
retlw ' '
retlw 'm'
retlw 'a'
retlw 'y'
retlw '2'
retlw '0'
retlw '0'
retlw '0'

end

fb : isurg
ig : isurg_ , isurganteng
yb : isurcocc
tw : isurg
web : tukangsapu.net, aditama.net, elektronika.web.id