Previous
Call Monitoring -
keep a record of previous consummated dialled numbers,
the date (only the corresponding day), the duration, and
rank of that call in a series of every telephone call
placed. The project worked only for successful phone
calls. This means that once the ringback tone stops (therefore
the called party has gone off-hook) the timer will start
to count. The dialled phone number, the elapsed time of
the call, and the rank of the call in a series will be
recorded from the moment the caller has gone on-hook (this
only means that the call has ended). To identify whether
that call/s was made on first day, second day, etc. of
the current month; the corresponding day for each call
was recorded. For every 24 hours, the day will increment
automatically. Thus, the project had a built-in clock.
When the power failed, just like when the battery of a
wristwatch has gone its life, the clock can be corrected
manually. At the end of the month the date will be reset
manually. The utmost phone number can be dialled would be
for a cellular call, which consist of 11 digits. Maximum
of 330 previous calls can be recorded. 
I used two PIC16F84 microcontrollers
in this project . One was programmed to decide when to
initiate the timer, when to record the dialled number
into the memory, and when to stop the timer to end up the
duration. Also it was programmed to identify whether the
user wants to display the previous calls or reset the
real time clock and it is the one generating the timer
and the real time clock. The other microcontroller was
exclusively programmed for displaying the call
informations on the LCD.
The signals that was indicated
to the microcontroller the status of the called phone (ringing
or busy) and the calling phone (on-hook, off-hook or
sending a number) were the signals coming from the
telephone line. Since these signals are analog, I convert
them into digital signals that would understood by the
microcontroller. The signals detected were the DTMF tones
which generated by the telephone set, the on/off-hook
signals which was actually the current that powers the
telephone given by the CO, busy tone which generated by
the CO indicated that the called phone was in use, and
the ringback tone which also generated by the CO
indicated that the called phone is rang.
The on/off-hook signals can be
detected using a comparator circuit, DTMF signals can be
decoded using a MC145436 DTMF decoder, busy tone and ringback
tone can be detected using the two LM567 tone decoder. These circuits which
provide digital output were connected as inputs of the
microcontroller.
Using 256 x 8-bit EEPROM stored
90 successful previous call information. Because one
successful call information consists of 22 characters,
each character took 1 byte of memory. One successful call
information will consume 22 bytes of memory. I used a 24LC64 8K x 8-bit EEPROM or 8000 bytes EEPROM,
a total of 330 successful previous call information can
be recorded. I dedicate one memory block (256 bytes) for
storing the address of the last previous call. When the
information stored in memory reached its maximum
capacity, the first recorded information was erased
automatically every time a new data entered.
The
Hardware:
Project's
Parts List
Schematic
Diagram Part 1
Schematic
Diagram Part 2
PCB
Layout
The
Firmware:
Flow
Chart Part 1
Flow
Chart Part 2
Flow
Chart Part 3
Source
Code for Main Microcontroller (incomplete TXT for visitors viewing)
Source
Code for the Controller of LCD (incomplete TXT for visitors viewing)
Source
Code for Main Microcontroller (complete ZIP password protected)
Source
Code for the Controller of LCD (complete ZIP password protected)
|