Discussion in "Project Doubts" started by    gautya123    Jul 25, 2007.
Wed Jul 25 2007, 11:35 AM
#1
so i have created a new thread.........
so sir could u plz give me an overview of the circuit diagram.....
and the project is directly connected to the telephone line...
Wed Jul 25 2007, 01:29 PM
#2
First of all talking about the circuit. I will give a brief description of the ICs used.
1. MT8870: A DTMF decoder IC, parallel o/p.
2. AT89C2051: 8051 Controller
3. LCD: For display
4. MCT 2E: Opto coupler to check the receiver is picked or not.

Now Software..
The code is really simple, at the top is ports definition. Defining the MT8870 interface as..

STD		EQU	P3.2
Q1			EQU	P3.0
Q2			EQU	P3.3
Q3			EQU	P3.4
Q4			EQU	P3.5


To check the receiver is off hook or not this in is used

PHONE EQU P3.7


After that LCD ports are defined. i think i don't need to explain that. LCD is used in 4-bit mode.
Now let me take you to the "ORG 0H"

		ORG     00H    ; Reset
		MOV PSW,#RB0      	; Select register bank 0
 		MOV SP,#25H
 		
 		CALL RESETLCD4
		CALL INITLCD4

MAINS1:CALL TITLE1
		CALL DELAY
		CALL DELAY


first two three instructions are clear, we call the routine to initialize the LCD and then display the title on the LCD. The subroutine TITLE1 is defined at the bottom you can see in the code.

Now comes this part

MAINS:
   	SETB PHONE
   	SETB STD
   	JNB PHONE,DISP_NUM
   	JB STD,DISP_CALLER
		AJMP MAINS


first we make PHONE and STD pin as i/p, i have already explained why these pins are used for. To know the detailed use of STD pin please refer to MT8870 datasheet.
in the third instruction we are checking if the phone is off-hook or not. if the phone is off-hook then call the routine DISP_NUM
i.e. Display the number which is being dialed by the user.
if the phone is not picked then, check if the STD pin is high, which means incoming call is there.. so call the subroutine DISP_CALLER
i.e. display the caller's number.

Now lastly the explanation of two routines DISP_NUM and DISP_CALLER

DISP_NUM:
		CALL PLZDIAL
		SETB STD
		SETB PHONE
UPP1:	JB PHONE,MAINS1
		JNB STD,UPP1
		CALL GET_NUMBER
		MOV A,FLAGS
		ADD A,#30H
		MOV R4,A
		CALL WRLCDDATA
		JB STD,$
		SETB STD
		SETB PHONE
		AJMP UPP1


This routine is to display number which is being dialed by the user. So first instruction call the routine PLZDIAL. which will display "please dial..." message on the LCD.
then we make STD and PHONE pin as i/p
then we check if the phone is still off hook or not... if PHONE is set means its on-hook, so go back to label "MAINS1"
if its off-hook i.e. if PHONE bit is clear, then wait for the user to dial a number, means we wait for STD for set. and if the STD is set, then get the number from MT8870, and display it on the LCD. and wait for STD to go low, and ready to get the second DTMF decoded value. and loop goes on till phone is off-hooked.

now comes DISP_CALLER subroutine, this is very much similar to that of DISP_NUM.

DISP_CALLER:
		CALL DISP_CALL
		CALL GET_NUMBER
		MOV A,FLAGS
		ADD A,#30H
		MOV R4,A
		CALL WRLCDDATA
		JB STD,$
		
		SETB PHONE
		SETB STD
UPP2:	JNB PHONE,MAINS12
		JNB STD,UPP2
		CALL GET_NUMBER
		MOV A,FLAGS
		ADD A,#30H
		MOV R4,A
		CALL WRLCDDATA
		JB STD,$
		SETB STD
		SETB PHONE
		AJMP UPP2


first instruction will display the string "Incoming call..."
second string with display the first digit of the number obtained from MT8870 on the LCD. And check the phone is off-hooked or not.. after that working is similar to that of DISP_NUM.

Now i have explained you the core routines above, other subroutines like GET_NUMBER, initializing LCD and displaying data etc you can understand them easily. still if you feel any problem you can ask anytime.
 gautya123 like this.
Tags caller id project using AT89C2051AT89C2051 projectsworking of caller id projectmicrocontroller based caller ID projectAT89C2051 based Caller id project
Wed Jul 25 2007, 02:16 PM
#3
thanx a ton..this will help a lot....lets see if our coll approves this proj.....
one more doubt can we bulid the MT 8870 IC(dtmf decoder) ourselves...........
Wed Jul 25 2007, 02:30 PM
#4
well.. nothing is impossible.. in the download section "8051 codes" i have DTMF decoding code there. you can download it. and try it out.. that will need a little bit of more workout. try if that code is giving you right results. then you can replace the MT8870 IC and also you might need to rewrite the whole code.. for caller id as many things are going to change

Get Social

Information

Powered by e107 Forum System

Conversation

ExperimenterUK
Sat Oct 12 2019, 10:23 PM
Log in.. then post your code in the 8051 forum
Sat Oct 12 2019, 10:18 AM
Bhadra Sajikumar
i am doing a countdown timer with 8051 for my project, unfortunately our professor had to take a leave of absence before he could teach us most of it.. can someone explain the .asm code of it for me?
Mon Sep 23 2019, 07:37 AM
Nathaniel
I am doing a project for my schools wireless security system with cameras,sensors and spot lights using 8051 micro controller, could you help me out with the design and its source code.
Wed Sep 18 2019, 08:48 PM
Caryn Kover
Thank you for your time,
ExperimenterUK
Mon Aug 05 2019, 07:09 PM
@Ismail ..post in forum, give details
Mon Aug 05 2019, 04:33 PM
Ismail balghmi
Hello. Please I won't download
ExperimenterUK
Wed Jul 24 2019, 12:47 AM
@BUSTER123 Please post in the forum
Tue Jul 23 2019, 06:13 PM
BUSTER123
hello! newbie here. i am kind of a guy who hates using ready - made existing libraries, so this helped a lot as i was trying to control and write to a character lcd display. however, i can't figure out how to set the cursor position. for example, i want to set it to the 5th column in the first row, so position 5. so according to the table, i am sending 10000101 on the 8 data lines of the lcd (register select pulled low). the cursor does not move there however. and i cant move the cursor left or right too. is it something wrong that i am doing? thank you.
ExperimenterUK
Thu Jul 11 2019, 07:55 PM
@ramos https://www.theengineeringprojects.com/2017/09/l298-motor-driver-library-proteus.html
ExperimenterUK
Thu Jul 11 2019, 07:44 PM
@praveen123. Can you give a link to the project ?

Downloads

Comments

Casmir
Wed Nov 13 2019, 06:25 AM
DeepakBGattani
Mon Nov 11 2019, 01:31 PM
Jeanbusatta
Sun Nov 10 2019, 04:42 AM
mdayaz
Sat Nov 09 2019, 03:41 PM
baoyen123
Fri Nov 08 2019, 10:06 AM
xiwang
Fri Nov 08 2019, 07:28 AM
ilylily07
Tue Oct 15 2019, 04:32 PM
hientran123
Tue Oct 15 2019, 02:27 AM

Online

Guests: 38, Members: 1 ...
ilylily07 viewing chatbox_menu.php

most ever online: 182184
(Members: , Guests: 182184) on 06 Aug 2010: 05:37 AM

Members: 38103
Newest member: Casmir
Forum Activity
Jeanbusatta Avatar
Posted By Jeanbusatta
Sun Nov 10 2019, 04:43 AM
ty, really needed it
ExperimenterUK Avatar
Posted By ExperimenterUK
Tue Oct 22 2019, 05:18 AM
wimac Avatar
Posted By wimac
Mon Oct 21 2019, 09:18 AM
I’ve been following this thread and looking at the...
s_dinesh40@yahoo.com Avatar
Posted By [email protected]
Sun Oct 20 2019, 03:09 PM
s_dinesh40@yahoo.com Avatar
Posted By [email protected]
Sun Oct 20 2019, 03:02 PM
sir, when i on display ,sometime 3rd display is no...
s_dinesh40@yahoo.com Avatar
Posted By [email protected]
Sun Oct 20 2019, 02:53 PM
sir, when i on display ,sometime 3rd display is no...
ExperimenterUK Avatar
Posted By ExperimenterUK
Sun Oct 20 2019, 12:21 AM
Your code seems okay on my simulationTry my code o...
s_dinesh40@yahoo.com Avatar
Posted By [email protected]
Sat Oct 19 2019, 07:13 PM
please find video attachment. 3rd & 4th displa...
s_dinesh40@yahoo.com Avatar
Posted By [email protected]
Sat Oct 19 2019, 07:05 PM
sir, 3rd and 4th dot matrix display flickering, ...
ExperimenterUK Avatar
Posted By ExperimenterUK
Fri Oct 18 2019, 09:18 PM
Hopefully you understand some of the program.Which...