Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

Counting In Coming Pulses on controller

Status
Not open for further replies.

waqar

New Member
Ok People,,
Talking about the same program as i have posted before, but now i have made only one change is that, that is the Make and Break Ratio are same i.e. 40 Milli Seconds..
Now this is also not working in a proper order but it is doing something which is:-

By pressing signal digit i get following result considering the what is in CJNE command:-

1 or 2 if pressed and in CJNE command i R7=1 then it work

3 or 4 if pressed and in CJNE command i have used R7=2 then it work

5 or 6 if pressed and in CJNE command i have used R7=3 then it work

7 or 8 if pressed and in CJNE command i have used R7=4 then it work

9 or 0 if pressed and in CJNE command i have used R7=5 then it work

At preset two digits represent same number of pulses, i think the problem is clear to all of you..now can some one make out a relation out of this
and provide the correct solution , a solution that is valid for any pulse dialing telephone.

Is it possible that if some how the program is made in such a fashion that instead of counting
the pulses it counts how much time it took for number of pulses to arrive and then compare it with time interval already stored in the memory.


like

Digit Time (seconds)
0 1 second for 10 pulse
9 9/10
8 8/10
7 7/10
6 6/10
5 5/10
4 4/10
3 3/10
2 2/10
1 1/10

please suggest a way out..






; CHECKING ONE TELEPHONE LINE WITH MT8816 AND AT89C52
; P2.0 FOR DETECTING OFF HOOK (1) AND ON HOOK (0)
; SLIC TO X2 PIN31 OF MT8816
; ADDRESS LINE + DATA PIN OF MT8816 WITH P1
; DIAL TONE IS ON Y0 PIN 31 OF MT8816



ORG 00H
LJMP MAIN


ORG 0030H
MAIN:
MOV P0,#00000000B ;port IS CLEARED
MOV P3,#00000000B ;STROBE IS CLEARED
MOV P2,#00000000B ;RESETING THE PIN
MOV P1,#00000000B ;RESETING THE PIN
OFF: JNB P2.0,OFF ;WAITING FOR OFF-HOOK
CALL DELAY
MOV P1,#10010000B ;ADDRESS LINE TO CONNECT Y0 WITH X2 FOR DIAL TONE
SETB P3.7 ;STROBE IS SET HIGH
ON: JB P2.0,ON
MOV R7,#00D
J: CALL DELAY_40MS
INC R7
CALL DELAY_40MS
JNB P2.0,J
JB P2.0,CHECK3
CHECK3: CJNE R7,#05D,DO ;this will detect digit 9 and 0
CLR P1.7
CLR P3.7
DO: JNB P2.0,MAIN
SJMP DO


DELAY_60MS:
MOV R0,#05D
L2: MOV R1,#53D
L1: MOV R2,#250D
DJNZ R2,$
DJNZ R1,L1
DJNZ R0,L2
RET


DELAY_40MS:
MOV R0,#05D
A2: MOV R1,#49D
A1: MOV R2,#180D
DJNZ R2,$
DJNZ R1,A1
DJNZ R0,A2
RET

DELAY_800MS:
MOV R0,#80D
U2: MOV R1,#94D
U1: MOV R2,#100D
DJNZ R2,$
DJNZ R1,U1
DJNZ R0,U2
RET


DELAY:
MOV R0,#05D
C2: MOV R1,#10D
C1: MOV R2,#200D
DJNZ R2,$
DJNZ R1,C1
DJNZ R0,C2
RET
END
 
Status
Not open for further replies.

Latest threads

New Articles From Microcontroller Tips

Back
Top