program for 8870 dtmf interfacing with 8051

Status
Not open for further replies.

niranjan23

Member level 5
Joined
Jan 22, 2012
Messages
94
Helped
3
Reputation
6
Reaction score
2
Trophy points
1,288
Activity points
2,109
I want to interface 8870 dtmf ic with 8051

what is the program for ....this when we press 1, 2... like this


thankyou
 

I want to interface 8870 dtmf ic with 8051

what is the program for ....this when we press 1, 2... like this


thankyou


Can be more specific ?

You need to decode DTMF using 8051 and show number on 7-seg LED or LCD ?




Interfacing 8870 DTMF decoder with 8051
https://www.dnatechindia.com/Tutorial/8051-Tutorial/INTERFACING-8870-DTMF-DECODER.html


8870 with 89S51/52 decode DTMF on 7-seg
**broken link removed**

This section describes how to interface an DTMF decoder to the microcontroller AT89C51/52
and to display the digits over the seven segment display. The circuit also has an Ring sensor which is not used in the program.



Code:
INCLUDE reg_52.pdf

       STD   EQU   P3.0    ;DTMF OUTPUT
       Q3                EQU        P3.1
       Q2                EQU        P3.2
       Q1                EQU        P3.3
       Q0                EQU        P3.4
       
       RING        EQU        P3.5

       DIS_A        EQU        P0.0        
       DIS_B        EQU        P0.1
       DIS_C        EQU        P0.2
       DIS_D        EQU        P0.3
       DIS_E        EQU        P0.4
       DIS_F        EQU        P0.5
       DIS_G        EQU        P0.6
                                   
DSEG            ; This is internal data memory
ORG     20H     ; Bit adressable memory

       DTMF:  DS  1
       D0 BIT   DTMF.0
       D1        BIT        DTMF.1
       D2        BIT        DTMF.2
       D3        BIT        DTMF.3        
CSEG            ; Code begins here
;---------==========----------==========---------=========---------
;              PROCESSOR INTERRUPT AND RESET VECTORS 
;---------==========----------==========---------=========---------
                ORG     00H    ; Reset
          MOV SP,#60H
          MOV R2,#15H
       CALL DISP        ;Display - symbol on display
          SETB STD        ;Make STD pin as input
                 
TOP:        JNB STD,$        ;wait for new data
       CALL READ        ;Read Data
       MOV R2,DTMF                                
       CALL DISP        ;Display Dialled Data
       JB STD,$                ;Wait until the key is released
       AJMP TOP        ;Repeat the function                                        
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
;                READ DTMF TONES
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                
READ:
       MOV DTMF,#00H
       SETB Q0
       SETB Q1
       SETB Q2
       SETB Q3
       JNB Q0,VB1
       SETB D0
VB1:        JNB Q1,VB2
       SETB D1                
VB2:        JNB Q2,VB3
       SETB D2
VB3:        JNB Q3,VB4
       SETB D3
VB4:        RET                
;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
;        7 SEGMENT DISPLAY ROUTINE
;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
DISP:
       CJNE R2,#00H,AAS1
       CLR DIS_A
       CLR DIS_B
       CLR DIS_C
       CLR DIS_D
       CLR DIS_E
       CLR DIS_F
       SETB DIS_G
       RET
AAS1:        CJNE R2,#01H,AS2
       CLR DIS_B
       CLR DIS_C
       SETB DIS_A
       SETB DIS_D
       SETB DIS_E
       SETB DIS_F
       SETB DIS_G
       RET
AS2:        CJNE R2,#02H,AS3
       CLR DIS_A
       CLR DIS_B
       CLR DIS_D
       CLR DIS_E
       CLR DIS_G
       SETB DIS_C
       SETB DIS_F
       RET
AS3:        CJNE R2,#03H,AS4
       CLR DIS_A   
       CLR DIS_B
       CLR DIS_C
       CLR DIS_D
       CLR DIS_G
       SETB DIS_E
       SETB DIS_F
       RET
AS4:        CJNE R2,#04H,AS5
       CLR DIS_B
       CLR DIS_C
       CLR DIS_F
       CLR DIS_G
       SETB DIS_A
       SETB DIS_D
       SETB DIS_E
       RET
AS5:        CJNE R2,#05H,AS6
       CLR DIS_A
       CLR DIS_C
       CLR DIS_D
       CLR DIS_F
       CLR DIS_G
       SETB  DIS_B
       SETB DIS_E
       RET
AS6:        CJNE R2,#06H,AS7
       CLR DIS_A
       CLR DIS_C
       CLR DIS_D
       CLR DIS_E
       CLR DIS_F
       CLR DIS_G
       SETB DIS_B
       RET
AS7:        CJNE R2,#07H,AS8
       CLR DIS_A
       CLR DIS_B
       CLR DIS_C
       SETB DIS_D
       SETB DIS_E
       SETB DIS_F
       SETB DIS_G
       RET
AS8:        CJNE R2,#08H,AS9
       CLR DIS_A
       CLR DIS_B
       CLR DIS_C
       CLR DIS_D
       CLR DIS_E
       CLR DIS_F
       CLR DIS_G
       RET
AS9:        CJNE R2,#09H,AS10
       CLR DIS_A
       CLR DIS_B
       CLR DIS_C
       CLR DIS_D
       CLR DIS_F
       CLR DIS_G
       SETB DIS_E
       RET
AS10:        CJNE R2,#15H,AS11                ;symbol for -
       SETB DIS_A
       SETB DIS_B
       SETB DIS_C
       SETB DIS_D
       SETB DIS_E
       SETB DIS_F
       CLR DIS_G
       RET
AS11:        
       CJNE R2,#16H,AS12                ;switch off all disp
       SETB DIS_A
       SETB DIS_B
       SETB DIS_C
       SETB DIS_D
       SETB DIS_E
       SETB DIS_F
       SETB DIS_G
       RET
AS12:        
       RET
;**********************************************************        
       END
 
Last edited:

Status
Not open for further replies.

Similar threads

Cookies are required to use this site. You must accept them to continue using the site. Learn more…