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

0 Anggota dan 1 Pengunjung sedang melihat topik ini.

Offline isurganteng

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





    thanks sebelumnya buat para master ....


     corong1
    gdshost.net
    ym : yadi_arfm
    tukangsapu.net, isurganteng.wordpress.com, Elektronika.web.id, Gdsapp.net

    Offline isurganteng

    • Isurganteng
    • Administrator
    • Hero Member
    • ********
    • Tulisan: 2653
    • Keseharianku Melawan Waktu
      • Keseharianku Melawan Waktu
    Re:DTMF Encoder dan Decoder
    « Jawab #1 pada: Januari 12, 2011, 03:10:10 AM »
  • Publish
  • 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
    gdshost.net
    ym : yadi_arfm
    tukangsapu.net, isurganteng.wordpress.com, Elektronika.web.id, Gdsapp.net

    Offline purwanto-amm

    • Administrator
    • Hero Member
    • ********
    • Tulisan: 1065
    • Nikola Tesla
      • purwanto-apriana
    Re:DTMF Encoder dan Decoder
    « Jawab #2 pada: Januari 12, 2011, 06:49:56 AM »
  • Publish
  • 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 isurganteng

    • Isurganteng
    • Administrator
    • Hero Member
    • ********
    • Tulisan: 2653
    • Keseharianku Melawan Waktu
      • Keseharianku Melawan Waktu
    Re:DTMF Encoder dan Decoder
    « Jawab #3 pada: Januari 12, 2011, 08:33:52 AM »
  • Publish
  • 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 ....
    gdshost.net
    ym : yadi_arfm
    tukangsapu.net, isurganteng.wordpress.com, Elektronika.web.id, Gdsapp.net

    Offline isurganteng

    • Isurganteng
    • Administrator
    • Hero Member
    • ********
    • Tulisan: 2653
    • Keseharianku Melawan Waktu
      • Keseharianku Melawan Waktu
    Re:DTMF Encoder dan Decoder
    « Jawab #4 pada: Januari 12, 2011, 12:19:45 PM »
  • Publish
  • bener opo salah yo ???
    gdshost.net
    ym : yadi_arfm
    tukangsapu.net, isurganteng.wordpress.com, Elektronika.web.id, Gdsapp.net

    Offline Fredi

    • Full Member
    • ****
    • Tulisan: 133
    Re:DTMF Encoder dan Decoder
    « Jawab #5 pada: Januari 12, 2011, 09:13:58 PM »
  • Publish
  • 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 isurganteng

    • Isurganteng
    • Administrator
    • Hero Member
    • ********
    • Tulisan: 2653
    • Keseharianku Melawan Waktu
      • Keseharianku Melawan Waktu
    Re:DTMF Encoder dan Decoder
    « Jawab #6 pada: Januari 12, 2011, 09:24:21 PM »
  • Publish
  • 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 ...
    gdshost.net
    ym : yadi_arfm
    tukangsapu.net, isurganteng.wordpress.com, Elektronika.web.id, Gdsapp.net

    Offline lei-yo

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

    Offline isurganteng

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




  • jalan ngga ya ????  nunggu1 nunggu1 nunggu1
    gdshost.net
    ym : yadi_arfm
    tukangsapu.net, isurganteng.wordpress.com, Elektronika.web.id, Gdsapp.net

    Offline isurganteng

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


  • gdshost.net
    ym : yadi_arfm
    tukangsapu.net, isurganteng.wordpress.com, Elektronika.web.id, Gdsapp.net

    Offline Busan

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

    Offline isurganteng

    • Isurganteng
    • Administrator
    • Hero Member
    • ********
    • Tulisan: 2653
    • Keseharianku Melawan Waktu
      • Keseharianku Melawan Waktu
    Re:DTMF Encoder dan Decoder
    « Jawab #11 pada: Januari 23, 2011, 08:02:19 PM »
  • Publish
  •  belum bos ... lagi pelajari asemblernya .... masih binun perintah2nya ... untuk pic nya ...
    gdshost.net
    ym : yadi_arfm
    tukangsapu.net, isurganteng.wordpress.com, Elektronika.web.id, Gdsapp.net

    Offline Busan

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

    Offline isurganteng

    • Isurganteng
    • Administrator
    • Hero Member
    • ********
    • Tulisan: 2653
    • Keseharianku Melawan Waktu
      • Keseharianku Melawan Waktu
    Re:DTMF Encoder dan Decoder
    « Jawab #13 pada: Januari 23, 2011, 09:17:24 PM »
  • Publish
  • 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 ...
    gdshost.net
    ym : yadi_arfm
    tukangsapu.net, isurganteng.wordpress.com, Elektronika.web.id, Gdsapp.net

    Offline isurganteng

    • Isurganteng
    • Administrator
    • Hero Member
    • ********
    • Tulisan: 2653
    • Keseharianku Melawan Waktu
      • Keseharianku Melawan Waktu
    Re:DTMF Encoder dan Decoder
    « Jawab #14 pada: Januari 23, 2011, 10:42:48 PM »
  • Publish
  • 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
    gdshost.net
    ym : yadi_arfm
    tukangsapu.net, isurganteng.wordpress.com, Elektronika.web.id, Gdsapp.net

     


    Facebook Comments