Need help with mt8889ce

Status
Not open for further replies.

ashmanee

Newbie level 1
Joined
Sep 8, 2010
Messages
1
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Activity points
1,303
I am using AN MT8889CE CHIP for an alarm phone dialer.I have initialised it and written the program using its datasheet in microbasic but i don't know if the program is good and if im transmitting the dtmf tones.can anyone check my program for transmitting a '1'?


program DTMF

' Declarations section

'WRITING AND DIALING NUMBER 1 USING MT8889CE

main:
' Main program
'INITIALISATION
'DTMF_R/W-PORTD.0
'DTMF_RS0-PORTD.1
'DTMF_CS-PORTD.2
'DTMF_IRQ-PORTB.4
'ALARM-PORTB.7
'DATA PINS D3-D0-portD.0-PORTD-3
TRISD=$A0
TRISB=$FF
PORTD.1=1 'RSO=1
PORTD.2=1 'CS=1,INACTIVATE MT8889CE

DELAY_ms(100)

TRISB=$F0
PORTB=$00 'write to CRA
PORTD.1=1 'RSO=1
PORTD.0=0 'CHOOSE WRITE
PORTD.2=0 'CS=1,ACTIVATE MT8889CE
PORTD.2=1 'CS=1,INACTIVATE MT8889CE to complete write instruction

PORTB=$08 'write to CRA
PORTD.1=1 'RSO=1
PORTD.0=0 'CHOOSE WRITE
PORTD.2=0 'CS=1,ACTIVATE MT8889CE
PORTD.2=1 'CS=1,INACTIVATE MT8889CE to complete write instruction

PORTB=$00 'write to CRB
PORTD.1=1 'RSO=1
PORTD.0=0 'CHOOSE WRITE
PORTD.2=0 'CS=1,ACTIVATE MT8889CE
PORTD.2=1 'CS=1,INACTIVATE MT8889CE to complete write instruction

PORTB=$04 'write to CRA ENABLE IRQ
PORTD.1=1 'RSO=1
PORTD.0=0 'CHOOSE WRITE
PORTD.2=0 'CS=1,ACTIVATE MT8889CE
PORTD.2=1 'CS=1,INACTIVATE MT8889CE to complete write instruction


'READ STATUS REGISTER TO CLEAR IRQ
TRISB=$FF

PORTD.1=1 'RSO=1
PORTD.0=1 'CHOOSE READ
PORTD.2=0 'CS=1,ACTIVATE MT8889CE
PORTD.2=1 'CS=1,INACTIVATE MT8889CE to complete READ instruction



RESTART:

PORTD.2=1

IF PORTB.7=1 THEN


TRISB=$F0
PORTB=$0D 'WRITE TO CONTROL REGISTER A

PORTD.0=0 'select WRITE
PORTD.1=1 'RSO=1
PORTD.2=0 'ACTIVATE CS
PORTD.2=1 'DEACTIVATE CS

PORTB=$00 'WRITE TO CONTROL REGISTER B
PORTD.1=1 'RSO=1
PORTD.0=0 'CHOOSE WRITE
PORTD.2=0 'CS=1,ACTIVATE MT8889CE
PORTD.2=1 'CS=1,INACTIVATE MT8889CE to complete write instruction



'WRITE TO TX REGISTER
PORTD.1=0 'RSO=0
PORTB=$01 'SENDING A '1' TO MT8889CE
PORTD.0=0 'CHOOSE WRITE
PORTD.2=0 'CS=1,ACTIVATE MT8889CE
PORTD.2=1 'CS=1,INACTIVATE MT8889CE to complete write instruction



TRISB=$FF
PORTD.1=1 'RSO=1
PORTD.2=0 'ACTIVATE CS

END_TONE:
PORTD.0=1 'CHOOSE READ



IF PORTB.0=1 THEN
PORTD.2=1

TRISB=$FF 'CLR IRQ
PORTD.1=1 'RS0=1
PORTD.2=0 'CS ACTIVE
PORTD.0=1 'CHOOSE READ
PORTD.2=1 'INACTIVATE MT8889


else
goto END_TONE
end if

else
goto RESTART
END IF
end.
 

Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…