Sunday 2 December 2012

IVRS final year project full description




           Hello Friends, IVRS project was my final year project and I made design. I want to share with all engineers. This is complete description of IVRS with design and coding.

·                   PROJECT TOPIC: IVRS- Interactive Voice Response System
·       
       DESCRIPTION: Interactive voice response (IVR) system is a communication system which provides automated telephone call access to specified computer database information. Interactive Voice Response is a technology that allows computer to detect DTMF (Dual-tone multi-frequency) keypad inputs and generate voice response according to input. Dual-tone multi-frequency signaling (DTMF) is used for telecommunication signaling over analog telephone lines in the voice-frequency band between telephone handsets and other communications devices and the switching center.


       Hardware Used In IVRS
      ICs
Ø  Intel 8051 Microcontroller
Ø  MT  8870 DTMF  Decoder
Ø  MAX 232
Ø  MCT 2E

      COMPONENTS
Ø  RS232 Connector
Ø  16x2 LCD
Ø  Hook Switch
Ø  Crystals
Ø  Resistors & Capacitors
Ø  BC 547 Transistor

        Software Used In IVRS
·                     At Hardware Side
            Ø  Keil Simulator
            Ø  Orcad
            Ø  Multisim
·                  At Computer Side
            Ø   Microsoft Virtual Basic
Ø  Interactive Voice Response.exe

f          BLOCK DIAGRAM

     CIRCUIT DIAGRAM :




    

         BASIC CODING DESIGN :
                         
           1.  Display Coding
                    
 ;P0 IS FOR LCD 8 BIT DATA  OUTPUT
         ;P2.5,P2.6,P2.7  LCD CONTROL SIGNAL AS MAZIDI BOOK
         ;P1.0 BCD 0
         ;P1.1 BCD 1
         ;P1.2 BCD 2
         ;P1.3 BCD 3
         ;P3.2 DATA AVL

   
       ORG 0000H
LJMP MAIN 
         
ORG 0050H


MAIN:  MOV SP,#65H 

MOV TMOD,#20H

             MOV TH1,#-3

             MOV SCON,#50H

             SETB TR1

         

             MOV 41H,#0H

            MOV 42H,#0H

           MOV 43H,#0H

            MOV 44H,#0H

         



ACALL M_DISP 


2. M_DISP Function Coding
     
M_DISP:  MOV     A,#38H     ;init. LCD 2 lines,5x7 matrix

                      ACALL   COMMAND         ;issue command

                     MOV     A,#0CH          ;LCD on, cursor off

                      ACALL   COMMAND         ;issue command

                      MOV     A,#01H          ;clear LCD command

                        ACALL   COMMAND         ;issue command

                        MOV     A,#06H          ;shift cursor right

                        ACALL   COMMAND         ;issue command

       MOV     R0,#80H           ;cursor: line 1, pos. 0

           MOV     DPTR,#L13        ;data from l1 to dptR

       ACALL FLASH

      MOV     R0,#0C0H        ;cursor: line 2, pos. 1

           MOV     DPTR,#L14        ;data from l1 to dptr     

 ACALL FLASH
        RET


 3. Command and Data Display Function Coding: 
     
COMMAND: ACALL   READY          ;is LCD ready?

        MOV     P0,A            ;issue command code

        CLR     P2.5            ;RS=0 for command

        CLR     P2.6            ;R/W=0 to write to LCD

        SETB    P2.7           ;E=1 for H-to-L pulse

        CLR     P2.7            ;E=0 ,latch in

        RET

DATA_DISPLAY:

        ACALL   READY           ;is LCD ready?

        MOV     P0,A            ;issue data 

        SETB    P2.5            ;RS=1 for data

        CLR     P2.6            ;R/W=0 to write to LCD

        SETB    P2.7            ;E=1 for H-to-L pulse

        CLR     P2.7           ;E=0, latch in

        RET
 

   4. Ready Function Coding
     
READY:

     SETB    P0.7               ;make P0.7 input port

     CLR     P2.5          ;RS=0 access command reg

     SETB    P2.6            ;R/W=1 read command reg


;read command reg and check busy flag


BACK1:CLR     P2.7         ;E=1 for H-to-L pulse

      SETB    P2.7          ;E=0 H-to-L pulse

       JB      P0.7,BACK1          ;stay until busy flag=0

       RET

    5. FLASH function Coding
 
FLASH:  MOV A,R0  ;PUT LINE ADDRESS FROM R0 IN TO ACC

   ACALL   COMMAND       ;command subroutine


LOOP:   CLR A

   MOVC A,@A+DPTR

   JZ OUT

   ACALL DATA_DISPLAY

   INC DPTR

   SJMP LOOP


OUT:    RET


DTMF CODING : 
   
 ;P0 IS FOR LCD 8 BIT DATA  OUTPUT

         ;P2.5,P2.6,P2.7  LCD CONTROL SIGNAL AS MAZIDI BOOK

         ;P1.0 BCD 0

         ;P1.1 BCD 1

         ;P1.2 BCD 2

         ;P1.3 BCD 3

         ;P3.2 DATA AVL



   

       ORG 0000H

LJMP MAIN 

         

ORG 0050H


 
MAIN:  MOV SP,#65H 

MOV TMOD,#20H

             MOV TH1,#-3

             MOV SCON,#50H

             SETB TR1

         

             MOV 41H,#0H

            MOV 42H,#0H

           MOV 43H,#0H

            MOV 44H,#0H

         



ACALL M_DISP

 ACALL DELAY_2

 ACALL LCD_SETUP



  Connectivity Coding


AGAIN:   NOP

MP2:

MP1:   JNB P3.2,MP1

           ACALL DELAY

           MOV A,P1

           ANL A,#0FH

           CJNE A,#0CH,MP2

           ACALL CONNT

           MOV A,#01H

           ACALL SEND

            ACALL DELAY_2

           ACALL DELAY_2


MPAB:  MOV A,#02H

           ACALL SEND
           ACALL DELAY_2
   This is basic coding of IVRS. 
   Comment it if you have any doubt. Like it if you like.
   For more information please send me mail prakash.katudia@gmail.com
Thanks for reading.........