Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

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.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top