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
RET3. 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.........