Top Banner
HOME /OFFICE SECURITY SYSTEM WITH VOICE ANNOUNCEMENT The aim of this project is implement a system to provide security for home/office. The purpose of this project to provide security for home/offices with prior intimation of disaster. Home/office security system is an embedded system, which collects the data at predefined time intervals from different sensors for different physical parameters like fire, gas, intruder, water level. In stand-alone applications data Acquisition system, the output may be in the form of displays, printer, buzzer, memory storage devices etc. The disadvantages of these products are storage limitation and data analysis. The AT 89 C51, an 8-bit micro controller collects the data from the different sensors. If any sensed parameter is out of pre-defined threshold value indicating by glowing a particular LED on Panel and then announcing a particular message (like fire detected) from voice ic through the speaker attached to it.. The system consists of a micro-controller with an A/D converter interfaced to it, which converts analog signals from sensor to digital signals. METHODOLOGY:
79
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 16.HOME or OFFICE SECURITY System With Voice Announcement

HOME /OFFICE SECURITY SYSTEM WITH VOICE ANNOUNCEMENT

The aim of this project is implement a system to provide security for home/office.

The purpose of this project to provide security for home/offices with prior intimation of disaster.

Home/office security system is an embedded system, which collects the data

at predefined time intervals from different sensors for different physical parameters like

fire, gas, intruder, water level. In stand-alone applications data Acquisition system, the

output may be in the form of displays, printer, buzzer, memory storage devices etc. The

disadvantages of these products are storage limitation and data analysis.

The AT 89 C51, an 8-bit micro controller collects the data from the different

sensors. If any sensed parameter is out of pre-defined threshold value indicating by

glowing a particular LED on Panel and then announcing a particular message (like fire

detected) from voice ic through the speaker attached to it..

The system consists of a micro-controller with an A/D converter interfaced to it,

which converts analog signals from sensor to digital signals.

METHODOLOGY:

BLOCK DIAGRAM:

Page 2: 16.HOME or OFFICE SECURITY System With Voice Announcement

MICRO CONTROLLER 89C51

INTRODUCTION

A Micro controller consists of a powerful CPU tightly coupled with memory, various I/O interfaces such as serial port, parallel port timer or counter, interrupt controller, data acquisition interfaces-Analog to Digital converter, Digital to Analog converter, integrated on to a single silicon chip.

If a system is developed with a microprocessor, the designer has to go for external memory such as RAM, ROM, EPROM and peripherals. But controller is provided all these facilities on a single chip. Development of a Micro controller reduces PCB size and cost of design.

One of the major differences between a Microprocessor and a Micro controller is that a controller often deals with bits not bytes as in the real world application.

Intel has introduced a family of Micro controllers called the MCS-51.

The Major Features:

Compatible with MCS-51 products

4k Bytes of in-system Reprogrammable flash memory

Micro Controller

ADC

Fire Sensor

GasSensor

Intruder

Water level sensor

Power Supply

SpeakerVOICE IC

LED Panel

Page 3: 16.HOME or OFFICE SECURITY System With Voice Announcement

Fully static operation: 0HZ to 24MHZ

Three level programmable clock

128 * 8 –bit timer/counters

Six interrupt sources

Programmable serial channel

Low power idle power-down modes

AT89C51 is 8-bit micro controller, which has 4 KB on chip flash memory, which is just sufficient for our application. The on-chip Flash ROM allows the program memory to be reprogrammed in system or by conventional non-volatile memory Programmer. Moreover ATMEL is the leader in flash technology in today’s market place and hence using AT 89C51 is the optimal solution.

AT89C51 MICROCONTROLLER ARCHITECTURE

The 89C51 architecture consists of these specific features:

Eight –bit CPU with registers A (the accumulator) and B

Sixteen-bit program counter (PC) and data pointer (DPTR)

Eight- bit stack pointer (PSW)

Eight-bit stack pointer (Sp)

Internal ROM or EPROM (8751) of 0(8031) to 4K (89C51)

Internal RAM of 128 bytes:

Thirty –two input/output pins arranged as four 8-bit ports:p0-p3

Two 16-bit timer/counters: T0 and T1

Full duplex serial data receiver/transmitter: SBUF

Control registers: TCON, TMOD, SCON, PCON, IP, and IE

Two external and three internal interrupts sources.

Oscillator and clock circuits.

Page 4: 16.HOME or OFFICE SECURITY System With Voice Announcement

Fig 3: Functional block diagram of micro controller

Types of memory:

The 89C51 have three general types of memory. They are on-chip memory,

external Code memory and external Ram. On-Chip memory refers to physically existing

memory on the micro controller itself. External code memory is the code memory that

resides off chip. This is often in the form of an external EPROM. External RAM is the

Ram that resides off chip. This often is in the form of standard static RAM or flash

RAM.

a) Code memory

Code memory is the memory that holds the actual 89C51 programs that is to be

run. This memory is limited to 64K. Code memory may be found on-chip or off-chip. It

is possible to have 4K of code memory on-chip and 60K off chip memory

simultaneously. If only off-chip memory is available then there can be 64K of off chip

ROM. This is controlled by pin provided as EA.

b) Internal RAM

The 89C51 have a bank of 128 of internal RAM. The internal RAM is found on-

chip. So it is the fastest Ram available. And also it is most flexible in terms of reading

Page 5: 16.HOME or OFFICE SECURITY System With Voice Announcement

and writing. Internal Ram is volatile, so when 89C51 is reset, this memory is cleared. 128

bytes of internal memory are subdivided. The first 32 bytes are divided into 4 register

banks. Each bank contains 8 registers. Internal RAM also contains 128 bits, which are

addressed from 20h to 2Fh. These bits are bit addressed i.e. each individual bit of a byte

can be addressed by the user. They are numbered 00h to 7Fh. The user may make use of

these variables with commands such as SETB and CLR.

Flash memory is a nonvolatile memory using NOR technology, which allows the

user to electrically program and erase information. Flash memory is used in digital

cellular phones, digital cameras, LAN switches, PC Cards for notebook computers,

digital set-up boxes, embedded controllers, and other devices.

Fig 5: - Pin diagram of AT89C51

Pin Description:

VCC: Supply voltage.

GND: Ground.

Port 0:

Page 6: 16.HOME or OFFICE SECURITY System With Voice Announcement

Port 0 is an 8-bit open-drain bi-directional I/O port. As an output port, each pin

can sink eight TTL inputs. When 1sare written to port 0 pins, the pins can be used as high

impedance inputs. Port 0 may also be configured to be the multiplexed low order

address/data bus during accesses to external program and data memory. In this mode P0

has internal pull-ups. Port 0 also receives the code bytes during Flash programming, and

outputs the code bytes during program verification. External pull-ups are required during

program verification.

Port 1:

Port 1 is an 8-bit bi-directional I/O port with internal pull-ups. The Port 1 output

buffers can sink/source four TTL inputs. When 1s are written to Port 1 pins they are

pulled high by the internal pull-ups and can be used as inputs. As inputs, Port 1 pins that

are externally being pulled low will source current (IIL) because of the internal pull-ups.

Port 1 also receives the low-order address bytes during Flash programming and

verification.

Port 2:

Port 2 is an 8-bit bi-directional I/O port with internal pull-ups. The Port 2 output

buffers can sink/source four TTL inputs. When 1s are written to Port 2 pins they are

pulled high by the internal pull-ups and can be used as inputs. As inputs, Port 2 pins that

are externally being pulled low will source current (IIL) because of the internal pull-ups.

Port 3:

Port 3 is an 8-bit bi-directional I/O port with internal pull-ups. The Port 3 output

buffers can sink/source four TTL inputs. When 1s are written to Port 3 pins they are

pulled high by the internal pull-ups and can be used as inputs. As inputs, Port 3 pins that

are externally being pulled low will source current (IIL) because of the pull-ups.

Port 3 also serves the functions of various special features of the AT89C51 as listed

below:

Page 7: 16.HOME or OFFICE SECURITY System With Voice Announcement

Tab 6.2.1 Port pins and their alternate functions

RST:

Reset input. A high on this pin for two machine cycles while the oscillator is

running resets the device.

ALE/PROG:

Address Latch Enable output pulse for latching the low byte of the address during

accesses to external memory. This pin is also the program pulse input (PROG) during

Flash programming. In normal operation ALE is emitted at a constant rate of 1/6the

oscillator frequency, and may be used for external timing or clocking purposes. Note,

however, that one ALE pulse is skipped during each access to external Data Memory.

If desired, ALE operation can be disabled by setting bit 0 of SFR location 8EH. With the

bit set, ALE is active only during a MOVX or MOVC instruction. Otherwise, the pin is

weakly pulled high. Setting the ALE-disable bit has no effect if the micro controller is in

external execution mode.

PSEN:

Program Store Enable is the read strobe to external program memory. When the

AT89C51 is executing code from external program memory, PSEN is activated twice

each machine cycle, except that two PSEN activations are skipped during each access to

external data memory.

EA/VPP:

External Access Enable. EA must be strapped to GND in order to enable the

device to fetch code from external program memory locations starting at 0000H up to

FFFFH.

Page 8: 16.HOME or OFFICE SECURITY System With Voice Announcement

Note, however, that if lock bit 1 is programmed, EA will be internally latched on

reset. EA should be strapped to VCC for internal program executions. This pin also

receives the 12-volt programming enable voltage (VPP) during Flash programming, for

parts that require 12-volt VPP.

XTAL1:

Input to the inverting oscillator amplifier and input to the internal clock operating

circuit.

XTAL2:

Output from the inverting oscillator amplifier.

Oscillator Characteristics:

XTAL1 and XTAL2 are the input and output, respectively, of an inverting

amplifier, which can be configured for use as an on-chip oscillator, as shown in Figs 6.1

Either a quartz crystal or ceramic resonator may be used. To drive the device from an

external clock source, XTAL2 should be left unconnected while XTAL1 is driven as

shown in Figure 6.2. There are no requirements on the duty cycle of the external clock

signal, since the input to the internal clocking circuitry is through a divide-by-two flip-

flop, but minimum and maximum voltage high and low time specifications must be

observed.

Fig 6.1 Oscillator Connections Fig 6.2 External Clock Drive Configuration

REGISTERS:

In the CPU, registers are used to store information temporarily. That information

could be a byte of data to be processed, or an address pointing to the data to be fetched.

The vast majority of 8051 registers are 8–bit registers.

D7 D6 D5 D4 D3 D2 D1 D0

Page 9: 16.HOME or OFFICE SECURITY System With Voice Announcement

The most widely used registers of the 8051 are A(accumulator), B, R0, R1, R2,

R3, R4, R5, R6, R7, DPTR(data pointer), and PC(program counter). All of the above

registers are 8-bits, except DPTR and the program counter. The accumulator, register A,

is used for all arithmetic and logic instructions.

SFRs (Special Function Registers)

In the 8051, registers A, B, PSW and DPTR are part of the group of registers commonly referred to

as SFR (special function registers). The SFR can be accessed by the names (which is much easier) or by

their addresses. For example, register A has address E0h, and register B has been ignited the address

F0H, as shown in table.

The following two points should note about the SFR addresses.

1. The Special function registers have addresses between 80H and FFH. These addresses are

above 80H, since the addresses 00 to 7FH are addresses of RAM memory inside the 8051.

2. Not all the address space of 80H to FFH is used by the SFR. The unused locations 80H to

FFH are reserved and must not be used by the 8051 programmer.

Symbol Name Address

ACC Accumulator 0E0H

B B register 0F0H

PSW Program status word 0D0H

SP Stack pointer 81H

DPTR Data pointer 2 bytes

DPL Low byte 82H

DPH High byte 83H

P0 Port0 80H

P1 Port1 90H

P2 Port2 0A0H

P3 Port3 0B0H

IP Interrupt priority control 0B8H

IE Interrupt enable control 0A8H

TMOD Timer/counter mode control 89H

TCON Timer/counter control 88H

T2CON Timer/counter 2 control 0C8H

T2MOD Timer/counter mode2 control 0C9H

Page 10: 16.HOME or OFFICE SECURITY System With Voice Announcement

TH0 Timer/counter 0high byte 8CH

TL0 Timer/counter 0 low byte 8AH

TH1 Timer/counter 1 high byte 8DH

TL1 Timer/counter 1 low byte 8BH

TH2 Timer/counter 2 high byte 0CDH

TL2 Timer/counter 2 low byte 0CCH

RCAP2H T/C 2 capture register high byte 0CBH

RCAP2L T/C 2 capture register low byte 0CAH

SCON Serial control 98H

SBUF Serial data buffer 99H

PCON Power control 87H

Table: 8051 Special function register Address

A Register (Accumulator):

This is a general-purpose register, which serves for storing intermediate results during operating. A number

(an operand) should be added to the accumulator prior to execute an instruction upon it. Once an

arithmetical operation is preformed by the ALU, the result is placed into the accumulator

B Register

B register is used during multiply and divide operations which can be performed only upon numbers stored

in the A and B registers. All other instructions in the program can use this register as a spare accumulator

(A).

Registers (R0-R7)

Page 11: 16.HOME or OFFICE SECURITY System With Voice Announcement

Fig7: Memory organization of RAM

This is a common name for the total 8 general purpose registers (R0, R1, R2 ...R7). Even they are not true

SFRs, they deserve to be discussed here because of their purpose. The bank is active when the R registers

it includes are in use. Similar to the accumulator, they are used for temporary storing variables and

intermediate results. Which of the banks will be active depends on two bits included in the PSW Register.

These registers are stored in four banks in the scope of RAM.

8051 Register Banks and StackRAM memory space allocation in the 8051

There are 128 bytes of RAM in the 8051. The 128 bytes of RAM inside the 8051

are assigned addresses 00 to7FH. These 128 bytes are divided into three different groups

as follows:

1. A total of 32 bytes from locations 00 to 1FH hex are set aside for register

banks and the stack.

2. A total of 16 bytes from locations 20 to 2FH hex are set aside for bit-

addressable read/write memory.

3. A total of 80 bytes from locations 30H to 7FH are used for read and write

storage, or what is normally called Scratch pad. These 80 locations of RAM

are widely used for the purpose of storing data and parameters nu 8051

programmers.

Default register bank

Register bank 0; that is, RAM locations 0, 1,2,3,4,5,6, and 7 are accessed with the

names R0, R1, R2, R3, R4, R5, R6, and R7 when programming the 8051.

Page 12: 16.HOME or OFFICE SECURITY System With Voice Announcement

FIG 8: RAM Allocation in the 8051

PSW Register (Program Status Word)

This is one of the most important SFRs. The Program Status Word (PSW) contains several status bits that

reflect the current state of the CPU. This register contains: Carry bit, Auxiliary Carry, two register bank select

bits, Overflow flag, parity bit, and user-definable status flag. The ALU automatically changes some of

register’s bits, which is usually used in regulation of the program performing.

P - Parity bit. If a number in accumulator is even then this bit will be automatically set (1), otherwise it will

be cleared (0). It is mainly used during data transmission and receiving via serial communication.

OV Overflow occurs when the result of arithmetical operation is greater than 255 (decimal), so that it cannot

be stored in one register. In that case, this bit will be set (1). If there is no overflow, this bit will be cleared

(0).

RS0, RS1 - Register bank select bits. These two bits are used to select one of the four register banks in

RAM. By writing zeroes and ones to these bits, a group of registers R0-R7 is stored in one of four banks in

RAM.

RS1 RS2 Space in RAM

0 0 Bank0 00h-07h

0 1 Bank1 08h-0Fh

1 0 Bank2 10h-17h

Page 13: 16.HOME or OFFICE SECURITY System With Voice Announcement

1 1 Bank3 18h-1Fh

F0 - Flag 0. This is a general-purpose bit available to the user.

AC - Auxiliary Carry Flag is used for BCD operations only.

CY - Carry Flag is the (ninth) auxiliary bit used for all arithmetical operations and shift instructions.

DPTR Register (Data Pointer)

These registers are not true ones because they do not physically exist. They consist of two separate

registers: DPH (Data Pointer High) and (Data Pointer Low). Their 16 bits are used for external memory

addressing. They may be handled as a 16-bit register or as two independent 8-bit registers. Besides, the

DPTR Register is usually used for storing data and intermediate results, which have nothing to do with

memory locations.

SP Register (Stack Pointer)

The stack is a section of RAM used by the CPU to store information temporily. This information

could be data or an address. The CPU needs this storage area since there are only a limited number of

registers.

How stacks are accessed in the 8051

If the stack is a section of RAM, there must be registers inside the CPU to point to it. The register

used to access the stack is called the SP (Stack point) Register. The stack pointer in the 8051 is only 8 bits

wide; which means that it can take values of 00 to FFH. When the 8051 is powered up, the SP register

contains value 07. This means that RAM location 08 is the first location used for the stack by the 8051. The

Page 14: 16.HOME or OFFICE SECURITY System With Voice Announcement

storing of a CPU register in the stack is called a PUSH, and pulling the contents off the stack back into a

CPU register is called a POP. In other words, a register is pushed onto the stack to save it and popped off

the stack to retrieve it. The job of the SP is very critical when push and pop actions are performed.

Program counter:

The important register in the 8051 is the PC (Program counter). The program counter points to the

address of the next instruction to be executed. As the CPU fetches the opcode from the program ROM, the

program counter is incremented to point to the next instruction. The program counter in the 8051 is 16bits

wide. This means that the 8051 can access program addresses 0000 to FFFFH, a total of 64k bytes of

code. However, not all members of the 8051 have the entire 64K bytes of on-chip ROM installed, as we will

see soon.

TIMERS

On-chip timing/counting facility has proved the capabilities of the micro

controller for implementing the real time application. These includes pulse counting,

frequency measurement, pulse width measurement, baud rate generation, etc,. Having

sufficient number of timer/counters may be a need in a certain design application. The

8051 has two timers/counters. They can be used either as timers to generate a time delay

or as counters to count events happening outside the micro controller.

TIMER 0 REGISTERS

The 16-bit register of Timer 0 is accessed as low byte and high byte. the low byte

register is called TL0(Timer 0 low byte)and the high byte register is referred to as

TH0(Timer 0 high byte).These register can be accessed like any other register, such as

A,B,R0,R1,R2,etc.

TIMER 1 REGISTERS

Page 15: 16.HOME or OFFICE SECURITY System With Voice Announcement

Timer 1 is also 16-bit register is split into two bytes, referred to as TL1 (Timer

1 low byte) and TH1 (Timer 1 high byte). These registers are accessible n the same way

as the register of Timer 0.

TMOD (timer mode) REGISTER

Both timers 0 and 1 use the same register, called TMOD, to set the various timer

operation modes. TMOD is an 8-bit register in which the lower 4 bits are set aside for

Timer 0 and the upper 4 bits for Timer 1.in each case; the lower 2 bits are used to set the

timer mode and the upper 2 bits to specify the operation.

GATE Gate control when set. The timer/counter is enabled only

while the INTx pin is high and the TRx control pin is

set. When cleared, the timer is enabled.

C/T Timer or counter selected cleared for timer operation

(Input from internal system clock).set for counter

operation (input TX input pin).

M1 M0 MODE Operating Mode 0 0 0 13-bit timer mode

8-bit timer/counter THx with TLx as

5-bit prescaler.

0 1 1 16-bit timer mode

16-bit timer/counters THx with TLx are

cascaded; there is no prescaler

1 0 2 8-bit auto reload

8-bit auto reload timer/counter;THx

Holds a value that is to be reloaded into

TLx each time it overflows.

1 1 3 Split timer mode.

C/T (clock/timer):

Page 16: 16.HOME or OFFICE SECURITY System With Voice Announcement

This bit in the TMOD register is used to decide whether the timer is used as a delay

generator or an event counter. If C/T=0, it is used as a timer for time delay generation.

The clock source for the time delay is the crystal frequency of the 8051.this section is

concerned with this choice. The timer’s use as an event counter is discussed in the next

section.

Serial Communication:

Serial data communication uses two methods, asynchronous and synchronous.

The synchronous method transfers a block of data at a time, while the asynchronous

method transfers a single byte at a time.

In data transmission if the data can be transmitted and received, it is a duplex

transmission. This is in contrast to simplex transmissions such as with printers, in which

the computer only sends data. Duplex transmissions can be half or full duplex,

depending on whether or not the data transfer can be simultaneous. If data is transmitted

one way at a time, it is referred to as half duplex. If the data can go both ways at the

same time, it is full duplex. Of course, full duplex requires two wire conductors for the

data lines, one for transmission and one for reception, in order to transfer and receive data

simultaneously.

Asynchronous serial communication and data framing

The data coming in at the receiving end of the data line in a serial data transfer is

all 0s and 1s; it is difficult to make sense of the data unless the sender and receiver agree

on a set of rules, a protocol, on how the data is packed, how many bits constitute a

character, and when the data begins and ends.

Start and stop bits

Asynchronous serial data communication is widely used for character-oriented

transmissions, while block-oriented data transfers use the synchronous method. In the

asynchronous method, each character is placed between start and stop bits. This is called

framing. In the data framing for asynchronous communications, the data, such as ASCII

characters, are packed between a start bit and a stop bit. The start bit is always one bit,

but the stop bit can be one or two bits. The start bit is always a 0 (low) and the stop bit

(s) is 1 (high).

Data transfer rate

Page 17: 16.HOME or OFFICE SECURITY System With Voice Announcement

The rate of data transfer in serial data communication is stated in bps (bits per

second). Another widely used terminology for bps is baud rate. However, the baud and

bps rates are not necessarily equal. This is due to the fact that baud rate is the modem

terminology and is defined as the number of signal changes per second. In modems a

single change of signal, sometimes transfers several bits of data. As far as the conductor

wire is concerned, the baud rate and bps are the same, and for this reason we use the bps

and baud interchangeably.

RS232 Standards

To allow compatibility among data communication equipment made by various

manufacturers, an interfacing standard called RS232 was set by the Electronics Industries

Association (EIA) in 1960. In 1963 it was modified and called RS232A. RS232B AND

RS232C were issued in 1965 and 1969, respectively. Today, RS232 is the most widely

used serial I/O interfacing standard. This standard is used in PCs and numerous types of

equipment. However, since the standard was set long before the advert of the TTL logic

family, its input and output voltage levels are not TTL compatible. In RS232, a 1 is

represented by -3 to -25V, while a 0 bit is +3 to +25V, making -3 to +3 undefined. For

this reason, to connect any RS232 to a micro controller system we must use voltage

converters such as MAX232 to convert the TTL logic levels to the RS232 voltage levels,

and vice versa. MAX232 IC chips are commonly referred to as line drivers.

RS232 pins

RS232 cable, commonly referred to as the DB-25 connector. In labeling, DB-25P refers to the plug connector (male) and DB-25S is for the socket connector (female). Since not all the pins are used in PC cables, IBM introduced the DB-9 Version of the serial I/O standard, which uses 9 pins only, as shown in table.

DB-9 pin connector

1 2 3 4 5

6 7 8 9

Page 18: 16.HOME or OFFICE SECURITY System With Voice Announcement

Fig 10: DB-9 pin connector

(Out of computer and exposed end of cable)

Pin Functions:

Pin Description

1 Data carrier detect (DCD)

2 Received data (RXD)

3 Transmitted data (TXD)

4 Data terminal ready(DTR)

5 Signal ground (GND)

6 Data set ready (DSR)

7 Request to send (RTS)

8 Clear to send (CTS)

9 Ring indicator (RI)

Note: DCD, DSR, RTS and CTS are active low pins.

The method used by RS-232 for communication allows for a simple connection of three

lines: Tx, Rx, and Ground. The three essential signals for 2-way RS-232

Communications are these:

TXD: carries data from DTE to the DCE.

RXD: carries data from DCE to the DTE

SG: signal ground

8051 connection to RS232

The RS232 standard is not TTL compatible; therefore, it requires a line driver

such as the MAX232 chip to convert RS232 voltage levels to TTL levels, and vice versa.

The interfacing of 8051 with RS232 connectors via the MAX232 chip is the main topic.

The 8051 has two pins that are used specifically for transferring and receiving

data serially. These two pins are called TXD and RXD and a part of the port 3 group

(P3.0 and P3.1). pin 11 of the 8051 is assigned to TXD and pin 10 is designated as RXD.

Page 19: 16.HOME or OFFICE SECURITY System With Voice Announcement

These pins are TTL compatible; therefore, they require a line driver to make them RS232

compatible. One such line driver is the MAX232 chip.

Since the RS232 is not compatible with today’s microprocessors and

microcontrollers, we need a line driver (voltage converter) to convert the RS232’s signals

to TTL voltage levels that will be acceptable to the 8051’s TXD and RXD pins. One

example of such a converter is MAX232 from Maxim Corp. The MAX232 converts

from RS232 voltage levels to TTL voltage levels, and vice versa.

Fig 11: Interfacing of MAX-232 to controller

INTERRUPTS

A single micro controller can serve several devices. There are two ways to do that: INTERRUPTS or POLLING.

INTERRUPTS vs POLLING:

The advantage of interrupts is that the micro controller can serve many devices (not

all the same time, of course); each device can get the attention of the micro controller

based on the priority assigned to it. The polling method cannot assign priority since it

checks all devices in round-robin fashion. More importantly, in the interrupt method

the micro controller can also ignore (mask) a device request for service. This is again

not possible with the polling method. The most important reason that the interrupt

method is preferable is that the polling method wastes much of the micro controller’s

time by polling devices that do not need service. So, in order to avoid tying down the

micro controller, interrupts are used.

Page 20: 16.HOME or OFFICE SECURITY System With Voice Announcement

INTERRUPT SERVICE ROUTINE

For every interrupt, there must be an interrupt service routine (ISR), or interrupt handler.

When an interrupt is invoked, the micro controller runs the interrupts service routine. For

every interrupt, there is a fixed location in memory that holds the address of its ISR. The

group of memory location set aside to hold the addresses of ISRs is called the interrupt

vector table. Shown below:

Interrupt Vector Table for the 8051:

INTERRUPT ROM

LOCATION (HEX) PIN FLAG CLEARING

Reset 0000 9 Auto

External hardware

Interrupt 0 0003 P3.2 (12) Auto

Timers 0 interrupt (TF0) 000B Auto

External hardware 0013 P3.3 (13) Auto

Interrupt 1(INT1)

Timers 1 interrupt (TF1) 001B Auto

Serial COM (RI and TI) 0023 Programmer

Clears it

Six Interrupts in the 8051:

In reality, only five interrupts are available to the user in the 8051, but many

manufacturers’ data sheets state that there are six interrupts since they include reset .the

six interrupts in the 8051 are allocated as above.

1. Reset. When the reset pin is activated, the 8051 jumps to address location

0000.this is the power-up reset.

2. Two interrupts are set aside for the timers: one for Timer 0 and one for Timer

1.Memory location 000BH and 001BH in the interrupt vector table belong to

Timer 0 and Timer 1, respectively.

3. Two interrupts are set aside for hardware external harder interrupts. Pin number

12(P3.2) and 13(P3.3) in port 3 is for the external hardware interrupts INT0 and

INT1, respectively. These external interrupts are also referred to as EX1 and

Page 21: 16.HOME or OFFICE SECURITY System With Voice Announcement

EX2.Memory location 0003H and 0013H in the interrupt vector table are assigned

to INT0 and INT1, respectively.

4. Serial communication has a single interrupt that belongs to both receive and

transmit. The interrupt vector table location 0023H belongs to this interrupt.

Interrupt Enable Register

D7 D6 D5 D4 D3 D2 D1 D0

EA IE.7 disables all interrupts. If EA=0, no interrupts is acknowledged.

If EA=1, each interrupt source is individually enabled disabled

By setting or clearing its enable bit.

-- IE.6 Not implemented, reserved for future use.*

ET2 IE.5 Enables or disables Timer 2 overflow or capture interrupt (8052

only).

ES IE.4 Enables or disables the serial ports interrupt.

ET1 IE.3 Enables or disables Timers 1 overflow interrupt

EX1 IE.2 Enables or disables external interrupt 1.

ET0 IE.1 Enables or disables Timer 0 overflow interrupt.

EX0 IE.0 Enables or disables external interrupt 0.

EA -- ET2 ES ET1 EX1 ET0 EX0

Page 22: 16.HOME or OFFICE SECURITY System With Voice Announcement

SERIAL COMMUNICATION

THEORY:

In order to connect micro controller to a modem or a pc to modem a serial port is used.

Serial is a very common protocol for device communication that is standard on almost every PC.

Most computers include two RS-232 based serial ports. Serial is also a common communication

protocol that is used by many devices for instrumentation; numerous GPIB-compatible devices

also come with an RS-232 port. Furthermore, serial communication can be used for data

acquisition in conjunction with a remote sampling device.

The concept of serial communication is simple. The serial port sends and receives bytes

of information one bit at a time. Although this is slower than parallel communication, which

allows the transmission of an entire byte at once, it is simpler and can be used over longer

distances. For example, the IEEE 488 specifications for parallel communication state that the

cabling between equipment can be no more than 20 meters total, with no more than 2 meters

between any two devices. Serial, however, can extend as much as 1200 meters.

Typically, serial is used to transmit ASCII data. Communication is completed using 3

transmission lines: (1) Ground, (2) Transmit, and (3) Receive. Since serial is asynchronous, the

port is able to transmit data on one line while receiving data on another. Other lines are

available for handshaking, but are not required. The important serial characteristics are baud

rate, data bits, stop bits, and parity. For two ports to communicate, these parameters must

match.

Baud rate:

It is a speed measurement for communication. It indicates the number of bit

transfers per second. For example, 300 baud is 300 bits per second. When a clock cycle is

referred it means the baud rate. For example, if the protocol calls for a 4800 baud rate,

then the clock is running at 4800Hz. This means that the serial port is sampling the data

line at 4800Hz. Common baud rates for telephone lines are 14400, 28800, and 33600.

Page 23: 16.HOME or OFFICE SECURITY System With Voice Announcement

Baud rates greater than these are possible, but these rates reduce the distance by which

devices can be separated. These high baud rates are used for device communication

where the devices are located together, as is typically the case with GPIB devices.

Data bits:

measurement of the actual data bits in a transmission. When the computer sends a

packet of information, the amount of actual data may not be a full 8 bits. Standard values

for the data packets are 5, 7, and 8 bits. Which setting chosen depends on what

information transferred? For example, standard ASCII has values from 0 to 127 (7 bits).

Extended ASCII uses 0 to 255 (8 bits). If the data being transferred is simple text

(standard ASCII), then sending 7 bits of data per packet is sufficient for communication.

A packet refers to a single byte transfer, including start/stop bits, data bits, and parity.

Since the number of actual bits depends on the protocol selected, the term packet is used

to cover all instances.

Stop bits:

sed to signal the end of communication for a single packet. Typical values are 1,

1.5, and 2 bits. Since the data is clocked across the lines and each device has its own

clock, it is possible for the two devices to become slightly out of sync. Therefore, the stop

bits not only indicate the end of transmission but also give the computers some room for

error in the clock speeds. The more bits that are used for stop bits, the greater the lenience

in synchronizing the different clocks, but the slower the data transmission rate.

Parity:

simple form of error checking that is used in serial communication. There are

four types of parity: even, odd, marked, and spaced. The option of using no parity is also

available. For even and odd parity, the serial port sets the parity bit (the last bit after the

data bits) to a value to ensure that the transmission has an even or odd number of logic

high bits. For example, if the data is 011, then for even parity, the parity bit is 0 to keep

the number of logic-high bits even. If the parity is odd, then the parity bit is 1, resulting in

3 logic-high bits. Marked and spaced parity does not actually check the data bits, but

simply sets the parity bit high for marked parity or low for spaced parity. This allows the

Page 24: 16.HOME or OFFICE SECURITY System With Voice Announcement

receiving device to know the state of a bit to enable the device to determine if noise is

corrupting the data or if the transmitting and receiving device clocks are out of sync.

WHAT IS RS –232C

RS-232 (ANSI/EIA-232 Standard) is the serial connection found on IBM-compatible PCs.

It is used for many purposes, such as connecting a mouse, printer, or modem, as well as

industrial instrumentation. Because of improvements in line drivers and cables, applications

often increase the performance of RS-232 beyond the distance and speed listed in the standard.

RS-232 is limited to point-to-point connections between PC serial ports and devices. RS-232

hardware can be used for serial communication up to distances of 50 feet .

DB-9 pin connector

1 2 3 4 5

6 7 8 9

(Out of computer and exposed end of cable)

Pin Functions:

Data: TxD on pin 3, RxD on pin 2

Handshake: RTS on pin 7, CTS on pin 8, DSR on pin 6,

CD on pin 1, DTR on pin 4

Common: Common pin 5(ground)

Other: RI on pin 9

The method used by RS-232 for communication allows for a simple connection of three lines: Tx,

Rx, and Ground. The three essential signals for 2 way RS-232

Communications are these:

TXD: carries data from DTE to the DCE.

RXD: carries data from DCE to the DTE

SG: signal ground

Connection Diagram:

Page 25: 16.HOME or OFFICE SECURITY System With Voice Announcement

SFRs Used for Serial Communication:

SCON:

TMOD:

T1:

BAUD RATE CALCULATION:

Internal timer stages are as follows

Divided by X box can be replaced with T1 timer so that by changing the value of timer we can obtain the required baud rate.

Let XClk = 11.0592 Mhz

Baud Rate = (XClk / 12 / 16 / 2 / X )

Page 26: 16.HOME or OFFICE SECURITY System With Voice Announcement

For attaining 9600 baud Rate

X can be calculated = 11.0592 x 106 / 12 / 16 / 2 / 9600 = 3

So set the 2’s Complement of 3 in Timer 1 so that we can achieve 9600 baud rates.

Note: Assuming 8-bit Auto reload mode and 8-bit variable baud rate modes.

FLOW CHART:

TX Loop:

RX Loop:

Page 27: 16.HOME or OFFICE SECURITY System With Voice Announcement

MAX 232Introduction:

Serial RS-232 (V.24) communication works with voltages (-15V ... -3V for high [sic]) and +3V ...

+15V for low [sic]) which are not compatible with normal computer logic voltages. On the other hand, classic

TTL computer logic operates between 0V ... +5V (roughly 0V ... +0.8V for low, +2V ... +5V for high). Modern

low-power logic operates in the range of 0V ... +3.3V or even lower.

o, the maximum RS-232 signal levels are far too high for computer logic electronics, and the

negative RS-232 voltage for high . Therefore, to receive serial data from an RS-232 interface the voltage

has to be reduced, and the low and high voltage level inverted. In the other direction (sending data from

some logic over RS-232) the low logic voltage has to be "bumped up", and a negative voltage has to be

generated, too.

Logic Voltages

ll this can be done with conventional analog electronics, e.g. a particular power supply and a couple

of transistors or the once popular 1488 (transmitter) and 1489 (receiver) ICs. However, since more than a

decade it has become standard in amateur electronics to do the necessary signal level conversion with an

integrated circuit (IC) from the MAX232 family (typically a MAX232A or some clone). In fact, it is hard to find

some

The MAX232 & MAX232A

Page 28: 16.HOME or OFFICE SECURITY System With Voice Announcement

he MAX 232 translates RS232 voltages to TTL voltages. RS232 represent a binary 1 or HI

anywhere between –3V to –12V, a zero logic or LOW, between 3V and 12V. TTL in the other hand responds

to 0 to 2.1V as logic zero and 2.8V to 5V as a HI. The MAX 232 provides voltage translation so the TTL PIC

16F84 can understand the messages sent to it from the computer. A serial cable is also provided to connect

the MAX232 to the PC and jumper cables to connect the MAX232 to the micro controller.

he MAX232 from Maxim was the first IC which in one package contains the necessary drivers (two)

and receivers (also two), to adapt the RS-232 signal voltage levels to TTL logic. It became popular, because

it just needs one voltage (+5V) and generates the necessary RS-232 voltage levels (approx. -10V and +10V)

internally. This greatly simplified the design of circuitry. Circuitry designers no longer need to design and

build a power supply with three voltages (e.g. -12V, +5V, and +12V), but could just provide one +5V power

supply, e.g. with the help of a simple 78x05 voltage converter.

MAX232 (A) DIP Package

DIP Package of MAX 232A

A Typical Application

The MAX232 (A) has two receivers (converts from RS-232 to TTL voltage levels) and two drivers (converts

from TTL logic to RS-232 voltage levels). This means only two of the RS-232 signals can be converted in

each direction. The old MC1488/1498 combo provided four drivers and receivers.

Typically a pair of a driver/receiver of the MAX232 is used for

TX and RX and the second one for

CTS and RTS.

There are not enough drivers/receivers in the MAX232 to also connect the DTR, DSR, and DCD signals.

Usually these signals can be omitted when e.g. communicating with a PC's serial interface. If the DTE really

requires these signals either a second MAX232 is needed, or some other IC from the MAX232 family can be

used (if it can be found in consumer electronic shops at all). An alternative for DTR/DSR is also given below.

Page 29: 16.HOME or OFFICE SECURITY System With Voice Announcement

Maxim's data sheet explains the MAX232 family in great detail, including the pin configuration and how to

connect such an IC to external circuitry. This information can be used as-is in own design to get a working

RS-232 interface. Maxim's data just misses one critical piece of information: How exactly to connect the RS-

232 signals to the IC. So here is one possible example:

MAX232 to RS232 DB9 Connection as a DCE

MAX232 Pin Nbr. MAX232 Pin Name Signal Voltage DB9 Pin

7 T2out CTS RS-232 7

8 R2in RTS RS-232 8

9 R2out RTS TTL n/a

10 T2in CTS TTL n/a

11 T1in TX TTL n/a

12 R1out RX TTL n/a

13 R1in RX RS-232 2

14 T1out TX RS-232 3

15 GND GND 0 5

Connections between MAX 232 & RS 232

In addition one can directly wire DTR (DB9 pin 4) to DSR (DB9 pin 6) without going through any circuitry.

This gives automatic (brain dead) DSR acknowledgement of an incoming DTR signal.

Sometimes pin 6 of the MAX232 is hard wired to DCD (DB9 pin 1). This is not recommended. Pin 6 is the

raw output of the voltage pump and inverter for the -10V voltage. Drawing currents from the pin leads to a

rapid breakdown of the voltage, and as a consequence to a breakdown of the output voltage of the two RS-

232 drivers. It is better to use software which doesn't care about DCD, but does hardware-handshaking via

CTS/RTS only. The circuitry is completed by connecting five capacitors to the IC as it follows. The MAX232

needs 1.0µF capacitors, the MAX232A needs 0.1µF capacitors. MAX232 clones show similar differences. It

is recommended to consult the corresponding data sheet. At least 16V capacitor types should be used. If

electrolytic or tantalic capacitors are used, the polarity has to be observed. The first pin as listed in the

following table is always where the plus pole of the capacitor should be connected to. External Capacitors

The 5V power supply is connected to+5V: Pin 16 GND: Pin 15

MAX232(A) external Capacitors

Page 30: 16.HOME or OFFICE SECURITY System With Voice Announcement

Capacitor + Pin - Pin Remark

C1 1 3

C2 4 5

C3 2 16

C4 GND 6

This looks non-intuitive, but because pin 6 is

on -10V, GND gets the + connector, and not the

-

C5 16 GND

Drawbacks of MAX232:

The MAX-232 chip receives data from the receiver, and converts it to the

standard RS-232 data format that can be read in by a serial port on a personal

computer or workstation.

For the RS-232 interface, a standard MAX232 chip is used for level conversion.

Both use the on chip USART and thus the same firmware.

CONNECTIONS IN MAX 232:

If you wanted to do a general RS-232 connection, you could take a bunch of long wires and solder

them directly to the electronic circuits of the equipment you are using, but this tends to make a big mess and

often those solder connections tend to break and other problems can develop. To deal with these issues,

and to make it easier to setup or take down equipment, some standard connectors have been developed

that is commonly found on most equipment using the RS-232 standards.

These connectors come in two forms: A male and a female connector. The female connector has

holes that allow the pins on the male end to be inserted into the connector.

This is a female "DB-9" connector (properly known as DE9F):

Page 31: 16.HOME or OFFICE SECURITY System With Voice Announcement

Fig.6.5.1 Female Connector

The female DB-9 connector is typically used as the "plug" that goes into a typical PC. If you see

one of these on the back of your computer, it is likely not to be used for serial communication, but rather for

things like early VGA or CGA monitors (not SVGA) or for some special control/joystick equipment.

And this is a male "DB-9" connector (properly known as DE9M):

Fig 6.5.2 Male Connector

This is the connector that you are more likely to see for serial communications on a "generic" PC.

Often you will see two of them side by side (for COM1 and COM2). Special equipment that you might

communicate with would have either connector, or even one of the DB-25 connectors listed below.

The wiring of RS-232 devices involves first identifying the actual pins that are being used. Here is

how a female DB-9 connector is numbered:

If the numbers are hard to read, it starts at the top-right corner as "1", and goes left until the end of

the row and then starts again as pin 6 on the next row until you get to pin 9 on the bottom-left pin. "Top" is

defined as the row with 5 pins.

Page 32: 16.HOME or OFFICE SECURITY System With Voice Announcement

The male connector (like what you have on your PC) is simply this same order, but reversed from

right to left.

Here each pin is usually defined as:

9-pin 25-pin pin definition1 8 DCD (Data Carrier Detect)2 3 RX (Receive Data)3 2 TX (Transmit Data)4 20 DTR (Data Terminal Ready)5 7 GND (Signal Ground)6 6 DSR (Data Set Ready)7 4 RTS (Request To Send)8 5 CTS (Clear To Send))9 22 RI (Ring Indicator)

Tab 6.5.4 Pin Definition of Connectors

One thing to keep in mind when discussing these pins and their meaning is that they are very

closely tied together with modems and modem protocols. Often you don't have a modem attached in the

loop, but you still treat the equipment as if it were a modem on a theoretical level.

BAUD RATES:

I'm going to go on a bit of a rant here. Baud and BPS (Bits Per Second) are usually not the same

thing, although they are often used interchangeable, particular in marketing literature. Only originally they

were the same. There are several ways to determine what the actual data rate of a particular piece of

equipment is, but in popular marketing literature, or even general reference texts, they will almost always

refer to "Baud Rate", even if they are referring to bits per second.

Language purists and engineers who know what they are talking about will go into a more literal

definition of Baud meaning the number of changes to the transmission media per second in a modulated

signal. If each transmission event contains more than one bit of information, than Baud and BPS are not the

same. E.g. if each event contains two bits (two bits modulated in an event), then the BPS of such a

transmission would be twice as large as the Baud rate. This is not a theoretical case. Typical "high speed"

modems use sophisticated modulation on the telephone line, were the bit rate and Baud rate differ

significantly on the line. It is important to know this when you build measurement equipment, decoders

(demodulators), encoders (modulators), and all sorts of transmission equipment for a particular protocol.

However, software developers typically like to ignore the difference of bit rate and baud rate,

because in their small world, a bit can either have the value true or false - an "event" (a bit) always only has

two possible states. They have no basic unit which can e.g. hold four different states. In other words, on the

software site the modulation has already been flattened by the demodulator. If a modulation was used which

Page 33: 16.HOME or OFFICE SECURITY System With Voice Announcement

can e.g. transmit 8 bits in an event, the software developer sees them already as a series of 8 consecutive

bits, each either true or false. The demodulator took care of that. When it got an event it turned the single 8-

bit event into eight single-bit events. Software developers don't see the original single entity with 256

different states (voltages, phases). Since the modulation has been flattened they don't experience the

difference between Baud rate and bit rate any more. This is not the fault of the people who defined a Baud

or a BPS. It is just a (welcome) limitation of digital computer hardware.

Baud is actually a shortened term named in honor of Émile Baudot, a French inventor of early

teleprinter machines that replaced the telegraph key using Morse Code. Basically two typewriters that could

be connected to each other with some wires. He came up with some of the first digital character encoding

schemes, and the character codes were transmitted with a serial data connection. Keep in mind this was

being done largely before computers were invented. Indeed, some of these early tele-printer devices were

connected to the very first computers like the ENIAC or UNIVAC, simply because they were relatively cheap

and mass produced at that point.

In order for serial data communication to happen, you need to agree on a clock signal, or baud

rate, in order to get everything to be both transmitted and received properly. This is where the language

purists get into it, because it is this clock signal that actually drives the "baud rate". Let's start more at

Tele printers evolved, and eventually you have Western Union sending tele-printer "cablegrams" all

around the world. If you hear of a TELEX number, this is the relic of this system, which is still in use at the

present time, even with the internet. By rapidly glossing over a whole bunch of interesting history, you end

up with the United States Department of Justice (DOJ) in a lawsuit with AT&T. Mind you this was an earlier

anti-trust lawsuit prior to the famous/infamous 1982 settlement. The reason this is important is because the

DOJ insisted that Western Union got all of the digital business (cable grams... and unfortunately this got to

be read as computer equipment as well), and AT&T got modulated frequencies, or in other words, you could

talk to your mother on Mother's Day on their equipment. When computers were being built in the 1950s,

people wanted some way to connect different pieces of computer equipment together to "talk" to each other.

This finally resulted in the RS-232 standard that we are discussing on this page.

While Western Union was permitted to carry digital traffic, often the connections weren't in or near

computer centers. At this time AT&T found a loophole in the anti-trust settlement that could help get them

into the business of being a "carrier" of computer data. They were also offering to transmit computer data at

rates considerably cheaper than Western Union was going to charge. Hence, the modem was born.

Interrupts:

As the name implies, an interrupt is some event which interrupts normal program

execution. As stated earlier, program flow is always sequential, being altered only by

those instructions which expressly cause program flow to deviate in some way. However,

interrupts give us a mechanism to "put on hold" the normal program flow, execute a

subroutine, and then resume normal program flow as if we had never left it. This

subroutine, called an interrupt handler, is only executed when a certain event (interrupt)

Page 34: 16.HOME or OFFICE SECURITY System With Voice Announcement

occurs. The event may be one of the timers "overflowing," receiving a character via the

serial port, transmitting a character via the serial port, or one of two "external events."

The 8051 may be configured so that when any of these events occur the main program is

temporarily suspended and control passed to a special section of code which presumably

would execute some function related to the event that occurred. Once complete, control

would be returned to the original program. The main program never even knows it was

interrupted.

The ability to interrupt normal program execution when certain events occur

makes it much easier and much more efficient to handle certain conditions. If it were not

for interrupts we would have to manually check in our main program whether the timers

had overflows, whether we had received another character via the serial port, or if some

external event had occurred. Besides making the main program ugly and hard to read,

such a situation would make our program inefficient since we’d be burning precious

"instruction cycles" checking for events that usually don’t happen.

We can configure the 8051 so that any of the following events will cause an interrupt:

• Timer 0 Overflow.

• Timer 1 Overflow.

• Reception/Transmission of Serial Character.

• External Event 0.

• External Event 1.

bviously we need to be able to distinguish between various interrupts and

executing different code depending on what interrupt was triggered. This is accomplished

by jumping to a fixed address when a given interrupt occurs as shown below.

By consulting the above chart we see that whenever Timer 0 overflows (i.e., the

TF0 bit is set), the main program will be temporarily suspended and control will jump to

000BH. It is assumed that we have code at address 000BH that handles the situation of

Timer 0 overflowing.

Page 35: 16.HOME or OFFICE SECURITY System With Voice Announcement

Setting up Interrupts:

By default at power up, all interrupts are disabled. This means that even if, for

example, the TF0 bit is set, the 8051 will not execute the interrupt. Your program must

specifically tell the 8051 that it wishes to enable interrupts and specifically which

interrupts it wishes to enable.

Your program may enable and disable interrupts by modifying the IE SFR (A8h):

As you can see, each of the 8051’s interrupts has its own bit in the IE SFR. You enable a

given interrupt by setting the corresponding bit.

However, before enabling any interrupt, you must set bit 7 of IE. Bit 7, the Global

Interrupt Enable/Disable, enables or disables all interrupts simultaneously. That is to say,

if bit 7 is cleared then no interrupts will occur, even if all the other bits of IE are set.

Setting bit 7 will enable all the interrupts that have been selected by setting other bits in

IE. This is useful in program execution if you have time-critical code that needs to

execute. In this case, you may need the code to execute from start to finish without any

interrupt getting in the way. To accomplish this you can simply clear bit 7 of IE (CLR

EA) and then set it after your time-critical code is done.

Interrupt priorities:

The 8051 automatically evaluates whether an interrupt should

occur after every instruction. When checking for interrupt conditions, it

checks them in the following order:

• External 0 Interrupt

• Timer 0 Interrupt

• External 1 Interrupt

• Timer 1 Interrupt

• Serial Interrupt

Page 36: 16.HOME or OFFICE SECURITY System With Voice Announcement

This means that if a Serial Interrupt occurs at the exact same instant

that an External 0 Interrupt occurs, the External 0 Interrupt will be

executed first and the Serial Interrupt will be executed once the

External 0 Interrupt has completed.

The 8051 offers two levels of interrupt priority: high and low. By using interrupt

priorities you may assign higher priority to certain interrupt conditions. Interrupt

priorities are controlled by the IP SFR (B8h). The IP SFR has the following format:

When considering interrupt priorities, the following rules apply:

Nothing can interrupt a high-priority interrupt--not even another high priority

interrupt.

A high-priority interrupt may interrupt a low-priority interrupt.

A low-priority interrupt may only occur if no other interrupt is l ready executing.

If two interrupts occur at the same time, the interrupt with higher priority will

execute first. If both interrupts are of the same priority the interrupt which is

serviced first by polling sequence will be executed first.

When an interrupt is triggered, the following actions are taken automatically by the

microcontroller:

The current Program Counter is saved on the stack, low-byte first.

Interrupts of the same and lower priority are blocked.

In the case of Timer and External interrupts, the corresponding interrupt flag is

cleared.

Program execution transfers to the corresponding interrupt handler

vector address.

The Interrupt Handler Routine executes.

Page 37: 16.HOME or OFFICE SECURITY System With Voice Announcement

Take special note of the third step: If the interrupt being handled is a Timer or

External interrupt, the microcontroller automatically clears the interrupt flag before

passing control to your interrupt handler routine. This means it is not necessary that you

clear the bit in your code.

Power supply

The power supply are designed to convert high voltage AC mains electricity to a suitable low voltage supply for electronics circuits and other devices. A power supply can by broken down into a series of blocks, each of which performs a particular function. A d.c power supply which maintains the output voltage constant irrespective of a.c mains fluctuations or load variations is known as “Regulated D.C Power Supply”

For example a 5V regulated power supply system as shown below:

Fig 22: Functional Block Diagram of Power supply

Transformer:

A transformer is an electrical device which is used to convert electrical power from one

electrical circuit to another without change in frequency.

Page 38: 16.HOME or OFFICE SECURITY System With Voice Announcement

Transformers convert AC electricity from one voltage to another with little loss of power. Transformers work only with AC and this is one of the reasons why mains electricity is AC. Step-up transformers increase in output voltage, step-down transformers decrease in output voltage. Most power supplies use a step-down transformer to reduce the dangerously high mains voltage to a safer low voltage. The input coil is called the primary and the output coil is called the secondary. There is no electrical connection between the two coils; instead they are linked by an alternating magnetic field created in the soft-iron core of the transformer. The two lines in the middle of the circuit symbol represent the core. Transformers waste very little power so the power out is (almost) equal to the power in. Note that as voltage is stepped down current is stepped up. The ratio of the number of turns on each coil, called the turn’s ratio, determines the ratio of the voltages. A step-down transformer has a large number of turns on its primary (input) coil which is connected to the high voltage mains supply, and a small number of turns on its secondary (output) coil to give a low output voltage.

Fig 23: An Electrical Transformer

Turns ratio = Vp/ VS = Np/NS

Power Out= Power In

VS X IS=VP X IP

Vp = primary (input) voltage

Np = number of turns on primary coil

Ip  = primary (input) current    

RECTIFIER: A circuit, which is used to convert a.c to dc, is known as RECTIFIER. The process of conversion a.c to d.c is called “rectification”

TYPES OF RECTIFIERS: Half wave Rectifier

Page 39: 16.HOME or OFFICE SECURITY System With Voice Announcement

Full wave rectifier1. Center tap full wave rectifier.2. Bridge type full bridge rectifier.

Comparison of rectifier circuits:

Parameter Type of Rectifier

Half wave Full wave BridgeNumber of diodes

1 2

3

PIV of diodes Vm

2Vm

Vm

D.C output voltage Vm/

2Vm/

2Vm/

Vdc, at no-load

0.318Vm

0.636Vm 0.636Vm

Ripple factor 1.21

0.482

0.482

Ripple frequency

f

2f

2f

Rectification efficiency

0.406

0.812

0.812

Transformer Utilization Factor(TUF)

0.287 0.693 0.812

RMS voltage Vrms Vm/2 Vm/√2 Vm/√2

Full-wave Rectifier:

From the above comparisons we came to know that full wave bridge rectifier as more

advantages than the other two rectifiers. So, in our project we are using full wave bridge

rectifier circuit.

Bridge Rectifier: A bridge rectifier makes use of four diodes in a bridge

arrangement to achieve full-wave rectification. This is a widely used configuration,

both with individual diodes wired as shown and with single component bridges

where the diode bridge is wired internally.

A bridge rectifier makes use of four diodes in a bridge arrangement as shown in

fig(a) to achieve full-wave rectification. This is a widely used configuration, both with

Page 40: 16.HOME or OFFICE SECURITY System With Voice Announcement

individual diodes wired as shown and with single component bridges where the diode

bridge is wired internally.

Fig(24.A):

Operation:

During positive half cycle of secondary, the diodes D2 and D3 are in forward biased

while D1 and D4 are in reverse biased as shown in the fig(b). The current flow direction

is shown in the fig (b) with dotted arrows.

Fig(24.B)

During negative half cycle of secondary voltage, the diodes D1 and D4 are in forward

biased while D2 and D3 are in reverse biased as shown in the fig(c). The current flow

direction is shown in the fig (c) with dotted arrows.

Fig(24.C)

Page 41: 16.HOME or OFFICE SECURITY System With Voice Announcement

Filter: A Filter is a device, which removes the a.c component of rectifier output

but allows the d.c component to reach the load.

Capacitor Filter:

We have seen that the ripple content in the rectified output of half wave rectifier is

121% or that of full-wave or bridge rectifier or bridge rectifier is 48% such high

percentages of ripples is not acceptable for most of the applications. Ripples can be

removed by one of the following methods of filtering:

(a) A capacitor, in parallel to the load, provides an easier by –pass for the ripples voltage

though it due to low impedance. At ripple frequency and leave the d.c.to appears the load.

(b) An inductor, in series with the load, prevents the passage of the ripple current (due to

high impedance at ripple frequency) while allowing the d.c (due to low resistance to d.c)

(c) various combinations of capacitor and inductor, such as L-section filter section

filter, multiple section filter etc. which make use of both the properties mentioned in (a)

and (b) above. Two cases of capacitor filter, one applied on half wave rectifier and

another with full wave rectifier.

Filtering is performed by a large value electrolytic capacitor connected across the DC supply to act as a reservoir, supplying current to the output when the varying DC voltage from the rectifier is falling. The capacitor charges quickly near the peak of the varying DC, and then discharges as it supplies current to the output. Filtering significantly increases the average DC voltage to almost the peak value (1.4 × RMS value).

To calculate the value of capacitor(C),

C = ¼*√3*f*r*Rl

Where,

f = supply frequency,

r = ripple factor,

Rl = load resistance

Page 42: 16.HOME or OFFICE SECURITY System With Voice Announcement

Note: In our circuit we are using 1000microfarads.

Regulator:

Voltage regulator ICs is available with fixed (typically 5, 12 and 15V) or variable output

voltages. The maximum current they can pass also rates them. Negative voltage

regulators are available, mainly for use in dual supplies. Most regulators include some

automatic protection from excessive current ('overload protection') and overheating

('thermal protection'). Many of the fixed voltage regulator ICs have 3 leads and look like

power transistors, such as the 7805 +5V 1A regulator shown on the right. The LM7805 is

simple to use. You simply connect the positive lead of your unregulated DC power

supply (anything from 9VDC to 24VDC) to the Input pin, connect the negative lead to

the Common pin and then when you turn on the power, you get a 5 volt supply from the

output pin.

Fig 25: A Three Terminal Voltage Regulator

78XX:

The Bay Linear LM78XX is integrated linear positive regulator with three

terminals. The LM78XX offer several fixed output voltages making them useful in wide

range of applications. When used as a zener diode/resistor combination replacement, the

LM78XX usually results in an effective output impedance improvement of two orders of

magnitude, lower quiescent current. The LM78XX is available in the TO-252, TO-220 &

TO-263packages,

Features:

Page 43: 16.HOME or OFFICE SECURITY System With Voice Announcement

• Output Current of 1.5A

• Output Voltage Tolerance of 5%

• Internal thermal overload protection

• Internal Short-Circuit Limited

• No External Component

• Output Voltage 5.0V, 6V, 8V, 9V, 10V, 12V, 15V, 18V, 24V

• Offer in plastic TO-252, TO-220 & TO-263

• Direct Replacement for LM78XX

SOFTWARE DESCRIPTION

ABOUT SOFTWARE

Software used:*Keil software for c programming

ABOUT KEIL SOFTWARE:

It is possible to create the source files in a text editor such as Notepad, run the Compiler on each C source file, specifying a list of controls, run the Assembler on each Assembler source file, specifying another list of controls, run either the Library Manager or Linker (again specifying a list of controls) and finally running the Object-HEX Converter to convert the Linker output file to an Intel Hex File. Once that has been completed the Hex File can be downloaded to the target hardware and debugged. Alternatively KEIL can be used to create source files; automatically compile, link and covert using options set with an easy to use user interface and finally simulate or perform debugging on the hardware with access to C variables and memory. Unless you have to use the tolls on the command line, the choice is clear. KEIL Greatly simplifies the process of creating and testing an embedded application.

Projects:

The user of KEIL centers on “projects”. A project is a list of all the source files required to build a single application, all the tool options which specify exactly how to build the application, and – if required – how the application should be simulated. A project contains enough information to take a set of source files and generate exactly the binary code required for the application. Because of the high degree of flexibility required from the tools, there are many options that can be set to configure the tools to operate in a specific manner. It would be tedious to have to set these options up every time the application is being built; therefore they are stored in a project file. Loading the project file into KEIL informs KEIL which source files are required, where they are, and how to configure the tools in the correct way. KEIL can then execute each tool with the

Page 44: 16.HOME or OFFICE SECURITY System With Voice Announcement

correct options. It is also possible to create new projects in KEIL. Source files are added to the project and the tool options are set as required. The project can then be saved to preserve the settings. The project is reloaded and the simulator or debugger started, all the desired windows are opened. KEIL project files have the extension Simulator/Debugger:

The simulator/ debugger in KEIL can perform a very detailed simulation of a micro controller along with external signals. It is possible to view the precise execution time of a single assembly instruction, or a single line of C code, all the way up to the entire application, simply by entering the crystal frequency. A window can be opened for each peripheral on the device, showing the state of the peripheral. This enables quick trouble shooting of mis-configured peripherals. Breakpoints may be set on either assembly instructions or lines of C code, and execution may be stepped through one instruction or C line at a time. The contents of all the memory areas may be viewed along with ability to find specific variables. In addition the registers may be viewed allowing a detailed view of what the microcontroller is doing at any point in time. The Keil Software 8051 development tools listed below are the programs you use to compile your C code, assemble your assembler source files, link your program together, create HEX files, and debug your target program. µVision2 for Windows™ Integrated Development Environment: combines Project Management, Source Code Editing, and Program Debugging in one powerful environment. C51 ANSI Optimizing C Cross Compiler: creates relocatable object modules from

your C source code, A51 Macro Assembler: creates relocatable object modules from your 8051

assembler source code, BL51 Linker/Locator: combines relocatable object modules created by the compiler

and assembler into the final absolute object module, LIB51 Library Manager: combines object modules into a library, which may be used

by the linker, OH51 Object-HEX Converter: creates Intel HEX files from absolute object modules.

What's New in µVision3?

µVision3 adds many new features to the Editor like Text Templates, Quick Function Navigation, and Syntax Coloring with brace high lighting Configuration Wizard for dialog based startup and debugger setup. µVision3 is fully compatible to µVision2 and can be used in parallel with µVision2.

What is µVision3?

µVision3 is an IDE (Integrated Development Environment) that helps you write, compile, and debug embedded programs. It encapsulates the following components:

A project manager. A make facility. Tool configuration. Editor. A powerful debugger.

To help you get started, several example programs (located in the \C51\Examples, \C251\Examples, \C166\Examples, and \ARM\...\Examples) are provided.

HELLO is a simple program that prints the string "Hello World" using the Serial Interface.

MEASURE is a data acquisition system for analog and digital systems.

Page 45: 16.HOME or OFFICE SECURITY System With Voice Announcement

TRAFFIC is a traffic light controller with the RTX Tiny operating system. SIEVE is the SIEVE Benchmark. DHRY is the Dhrystone Benchmark. WHETS is the Single-Precision Whetstone Benchmark.

Additional example programs not listed here are provided for each device architecture.

Building an Application in µVision2

To build (compile, assemble, and link) an application in µVision2, you must:1. Select Project -(forexample,166\EXAMPLES\HELLO\HELLO.UV2).2. Select Project - Rebuild all target files or Build target.

µVision2 compiles, assembles, and links the files in your project

Creating Your Own Application in µVision2

To create a new project in µVision2, you must:1. Select Project - New Project.2. Select a directory and enter the name of the project file.3. Select Project - Select Device and select an 8051, 251, or C16x/ST10 device from

the Device Database™.4. Create source files to add to the project.5. Select Project - Targets, Groups, Files. Add/Files, select Source Group1, and add

the source files to the project.6. Select Project - Options and set the tool options. Note when you select the target

device from the Device Database™ all special options are set automatically. You typically only need to configure the memory map of your target hardware. Default memory model settings are optimal for most applications.

7. Select Project - Rebuild all target files or Build target.

Debugging an Application in µVision2

To debug an application created using µVision2, you must:1. Select Debug - Start/Stop Debug Session.2. Use the Step toolbar buttons to single-step through your program. You may enter

G, main in the Output Window to execute to the main C function.3. Open the Serial Window using the Serial #1 button on the toolbar.

Debug your program using standard options like Step, Go, Break, and so on.Starting µVision2 and Creating a ProjectµVision2 is a standard Windows application and started by clicking on the program icon. To create a new project file select from the µVision2 menuProject – New Project…. This opens a standard Windows dialog that asks youfor the new project file name.We suggest that you use a separate folder for each project. You can simply usethe icon Create New Folder in this dialog to get a new empty folder. Thenselect this folder and enter the file name for the new project, i.e. Project1.µVision2 creates a new project file with the name PROJECT1.UV2 which containsa default target and file group name. You can see these names in the ProjectWindow – Files.Now use from the menu Project – Select Device for Target and select a CPUfor your project. The Select Device dialog box shows the µVision2 devicedatabase. Just select the micro controller you use. We are using for our examples the Philips 80C51RD+ CPU. This selection sets necessary tooloptions for the 80C51RD+ device and simplifies in this way the tool Configuration

Page 46: 16.HOME or OFFICE SECURITY System With Voice Announcement

Building Projects and Creating a HEX FilesTypical, the tool settings under Options – Target are all you need to start a newapplication. You may translate all source files and line the application with aclick on the Build Target toolbar icon. When you build an application withsyntax errors, µVision2 will display errors and warning messages in the OutputWindow – Build page. A double click on a message line opens the source fileon the correct location in a µVision2 editor window.Once you have successfully generated your application you can start debugging.

After you have tested your application, it is required to create an Intel HEX file to download the software into an EPROM programmer or simulator. µVision2 creates HEX files with each build process when Create HEX files under Options for Target – Output is enabled. You may start your PROM programming utility after the make process when you specify the program under the option Run User Program #1.CPU Simulation:µVision2 simulates up to 16 Mbytes of memory from which areas can bemapped for read, write, or code execution access. The µVision2 simulator trapsand reports illegal memory accesses.In addition to memory mapping, the simulator also provides support for theIntegrated peripherals of the various 8051 derivatives. The on-chip peripheralsof the CPU you have selected are configured from the Device.Database selection:you have made when you create your project target. Refer to page 58 for moreInformation about selecting a device. You may select and display the on-chip peripheral components using the Debug menu. You can also change the aspects of each peripheral using the controls in the dialog boxes.Start Debugging:You start the debug mode of µVision2 with the Debug – Start/Stop DebugSession command. Depending on the Options for Target – DebugConfiguration, µVision2 will load the application program and run the startupcode µVision2 saves the editor screen layout and restores the screen layout of the last debug session. If the program execution stops, µVision2 opens aneditor window with the source text or shows CPU instructions in the disassembly window. The next executable statement is marked with a yellow arrow. During debugging, most editor features are still available. For example, you can use the find command or correct program errors. Program source text of your application is shown in the same windows. The µVision2 debug mode differs from the edit mode in the following aspects:_ The “Debug Menu and Debug Commands” described on page 28 areAvailable. The additional debug windows are discussed in the following._ The project structure or tool parameters cannot be modified. All buildCommands are disabled.

Disassembly WindowThe Disassembly window shows your target program as mixed source and assembly program or just assembly code. A trace history of previously executed instructions may be displayed with Debug – View Trace Records. To enable the trace history, set Debug – Enable/Disable Trace Recording.

Page 47: 16.HOME or OFFICE SECURITY System With Voice Announcement

If you select the Disassembly Window as the active window all program step commands work on CPU instruction level rather than program source lines. You can select a text line and set or modify code breakpoints using toolbar buttons or the context menu commands. You may use the dialog Debug – Inline Assembly… to modify the CPU instructions. That allows you to correct mistakes or to make temporary changes to the target program you are debugging.

Software components

About Keil

Page 48: 16.HOME or OFFICE SECURITY System With Voice Announcement

1. Click on the Keil u Vision Icon on Desktop

2. The following fig will appear

3. Click on the Project menu from the title bar

4. Then Click on New Project

5. Save the Project by typing suitable project name with no extension in u r own folder sited in either C:\ or D:\

Page 49: 16.HOME or OFFICE SECURITY System With Voice Announcement

6. Then Click on Save button above.

7. Select the component for u r project. i.e. Atmel……

8. Click on the + Symbol beside of Atmel

9. Select AT89C51 as shown below

Page 50: 16.HOME or OFFICE SECURITY System With Voice Announcement

10. Then Click on “OK”

11. The Following fig will appear

12. Then Click either YES or NO………mostly “NO”

13. Now your project is ready to USE

Page 51: 16.HOME or OFFICE SECURITY System With Voice Announcement

14. Now double click on the Target1, you would get another option “Source

group 1” as shown in next page.

15. Click on the file option from menu bar and select “new”

16. The next screen will be as shown in next page, and just maximize it by double

clicking on its blue boarder.

Page 52: 16.HOME or OFFICE SECURITY System With Voice Announcement

17. Now start writing program in either in “C” or “ASM”

18. For a program written in Assembly, then save it with extension “. asm” and

for “C” based program save it with extension “ .C”

19. Now right click on Source group 1 and click on “Add files to Group Source”

Page 53: 16.HOME or OFFICE SECURITY System With Voice Announcement

20. Now you will get another window, on which by default “C” files will appear.

21. Now select as per your file extension given while saving the file

22. Click only one time on option “ADD”

23. Now Press function key F7 to compile. Any error will appear if so happen.

Page 54: 16.HOME or OFFICE SECURITY System With Voice Announcement

24. If the file contains no error, then press Control+F5 simultaneously.

25. The new window is as follows

26. Then Click “OK”

27. Now Click on the Peripherals from menu bar, and check your required port as

shown in fig below

Page 55: 16.HOME or OFFICE SECURITY System With Voice Announcement

28. Drag the port a side and click in the program file.

29. Now keep Pressing function key “F11” slowly and observe.

30. You are running your program successfully

Embedded C:

Data Types:

Page 56: 16.HOME or OFFICE SECURITY System With Voice Announcement

U people have already come across the word “Data types” in C- Language. Here

also the functionality and the meaning of the word is same except a small change in the

prefix of their labels. Now we will discuss some of the widely used data types for

embedded C- programming.

Data Types Size in Bits Data Range/Usage

unsigned char 8-bit 0-255

signed char 8-bit -128 to +127

unsigned int 16-bit 0 to 65535

signed int 16-bit -32,768 to +32,767

sbit 1-bit SFR bit addressable only

Bit 1-bit RAM bit addressable only

Sfr 8-bit RAM addresses 80-FFH

only

Unsigned char:

The unsigned char is an 8-bit data type that takes a value in the range of 0-255(00-

FFH). It is used in many situations, such as setting a counter value, where there is no

need for signed data we should use the unsigned char instead of the signed char.

Remember that C compilers use the signed char as the default if we do not put the key

word

Signed char:

The signed char is an 8-bit data type that uses the most significant bit (D7 of D7-

D0) to represent the – or + values. As a result, we have only 7 bits for the magnitude of

the signed number, giving us values from -128 to +127. In situations where + and – are

Page 57: 16.HOME or OFFICE SECURITY System With Voice Announcement

needed to represent a given quantity such as temperature, the use of the signed char data

type is a must.

Unsigned int:

The unsigned int is a 16-bit data type that takes a value in the range of 0 to 65535

(0000-FFFFH). It is also used to set counter values of more than 256. We must use the int

data type unless we have to. Since registers and memory are in 8-bit chunks, the misuse

of int variables will result in a larger hex file. To overcome this we can use the unsigned

char in place of unsigned int.

Signed int:

Signed int is a 16-bit data type that uses the most significant bit (D15 of D15-D0)

to represent the – or + value. As a result we have only 15 bits for the magnitude of the

number or values from -32,768 to +32,767.

Sbit (single bit):

The sbit data type is widely used and designed specifically to access single bit

addressable registers. It allows access to the single bits of the SFR registers.

HARDWERE USED:

1. Micro controller2. Fire sensor

DOOR SYSTEM

Page 58: 16.HOME or OFFICE SECURITY System With Voice Announcement

3. intruder sensor4. Gas sensor5. Water level sensor6. ADC7. Voice ic8. speaker9. POWER SUPPLY

RESULT:

Hence by this project home/office safety is maintained by providing a system with well-equipped sensors.