| ??? 11/13/01 17:16 Read: times |
#16576 - RE: DTMF MT8888C |
To diagnose "wrong number" problem, you may need this program :
ftp://ftp.simtel.net/pub/simtelnet/msdos/hamradio/dtmff110.zip Connect your MT8888 output to soundblaster input jack, and run the program (press "D" to switch into dtmf mode). The program should be able to decode your tone. As to interfacing to the phone line, the site below, offers a lot of information. http://www.hut.fi/Misc/Elec...rface.html Couple years ago, I wrote a simple test code that send 16 dtmf tones with a customizable duration (thanks to Mr. David P Ryan). ;******************************************************** ;contr. chip : at89c51 ;periph. chip : mt8888 ;assembler : 8051 Cross-Assembler, Version 1.2k ; (c) Copyright 1984-1995 by MetaLink Corporation $mod51 mt88 equ 0f700h ;check wiring please rs_0 equ p1.0 ;check wiring please datavalid equ p1.1 ;check wiring please org 0 ajmp start org 03h ; external interrupt 0 acall dtmf_all reti org 0bh ; timer interrupt 0 reti org 13h ; external interrupt 1 reti org 1bh ; timer interrupt 1 reti org 23h ; serial port interrupt reti dtmf_all: acall dtmf_init acall dtmf_send ret ;******************************* mt88 initialization dtmf_init: ;******************************* clear cra (control register a) mov dptr,#mt88 ;init data pointer to dtmf address setb rs_0 ;set rs_0 mov a,#00h ;clear control regs with 0 movx @dptr,a ;write to mt88 clr rs_0 ;******************************* set cra (bit 4/reg select) to select crb setb rs_0 ;set rs_0 mov a,#1000b ;set bit b3 to write to b reg on next write movx @dptr,a ;write to mt88 clr p1.0 ;******************************* the following write will be directed to crb setb rs_0 mov a,#0 ;clear the b register, movx @dptr,a clr rs_0 ;******************************* read status register setb rs_0 movx a,@dptr ;do a read to clear status register clr rs_0 ;******************************* set cra to b, irq, dtmf, tout setb rs_0 ; mov a,#1101b ;enable irq,tone out,dtmf mode mov a,#1100b ;tone disable movx @dptr,a clr rs_0 ;****************************** set crb to c/r, dual, receiver active, burst setb rs_0 mov a,#0001b ;burst deactivated ; mov a,#0000b ;burst activated movx @dptr,a clr rs_0 ;****************************** ret ;****************************** end of mt88 initialization ;****************************** dtmf output routine dtmf_send: push acc push dph push dpl mov r2, #00h ;start tone mov a, r2 ;******************************* beginning loop again: mov dptr, #mt88 ;init data pointer to mt88 address clr rs_0 setb datavalid movx @dptr, a ;write to mt88 setb rs_0 mov a,#0101b ;tone enabled movx @dptr, a ;write to mt88 acall delay_100ms ;tone duration mov a,#0100b ;tone disabled movx @dptr, a ;write to mt88 inc r2 mov a, r2 cjne a, #010h, again ;will send tone 0 to tone f ;******************************* end loop pop dpl pop dph pop acc ret ;******************************* delay routine delay_100ms: ; 100 millisecond delay ; put ; your ; delay ; code ; here ret start: setb ea ; enable all setb ex0 ; enable ext interrupt 0 setb ex1 ; enable ext interrupt 1 mainloop: ajmp mainloop ; scanning interrupt 0 end ;****************** end of program |
| Topic | Author | Date |
| DTMF MT8888C | 01/01/70 00:00 | |
| RE: DTMF MT8888C | 01/01/70 00:00 | |
| RE: DTMF MT8888C | 01/01/70 00:00 | |
| RE: DTMF MT8888C | 01/01/70 00:00 | |
| RE: DTMF MT8888C | 01/01/70 00:00 | |
| RE: DTMF MT8888C | 01/01/70 00:00 | |
| RE: DTMF MT8888C | 01/01/70 00:00 | |
| RE: DTMF MT8888C | 01/01/70 00:00 | |
| RE: DTMF MT8888C | 01/01/70 00:00 | |
| RE: DTMF MT8888C | 01/01/70 00:00 | |
RE: DTMF MT8888C | 01/01/70 00:00 |



