In Association with Amazon.com

 

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)

 

World of Electronics

The Masterpiece

 


2002 Roland Michael A. dela Peņa. Last updated 03-10-02.