Doc90. develop a multiple interface based fire fighting robot

98
DEVELOP A MULTIPLE INTERFACE BASED FIRE FIGHTING ROBOT 0

Transcript of Doc90. develop a multiple interface based fire fighting robot

Page 1: Doc90. develop a multiple interface based fire fighting robot

DEVELOP A MULTIPLE INTERFACE

BASED FIRE FIGHTING ROBOT

0

Page 2: Doc90. develop a multiple interface based fire fighting robot

ABSTRACT

The security of home, laboratory, office, factory and building is

important to human life. We develop an intelligent multi sensor based

security system that contains a fire fighting robot in our daily life.

The need for a device that can detect and extinguish a fire on its

own is long past due. Many house fires originate when someone is either

sleeping or not home. With the invention of such a device, people and

property can be saved at a much higher rate with relatively minimal

damage caused by the fire. Our task as electrical engineers was to design

and build a prototype system that could autonomously detect and

extinguish a fire. Also aims at minimizing air pollution.

In this Project we are using the fire sensor to detect the fire .when

ever fire is occurred then the Robot will go to that particular area and the

blower or LED will on otherwise the blower or LED is in the off state. It is

the Robot that can move through a model structure, find a “burning oil

derrick” (lit candle) and then extinguish it with help of a Blower. This is

meant to simulate the real world operation of a Robot performing a fire

extinguishing function in an oilfield. In this project we are going to use the

8051microcontroller for storing and processing of the data.

1

Page 3: Doc90. develop a multiple interface based fire fighting robot

SOFTWARE: Embedded ‘C’

TOOLS: Keil, Flash magic.

TARGET DEVICE: 8051 microcontroller.

APPLICATIONS: industries, chemical laboratories, homes.

ADVANTAGES: Low cost, automated operation, Low Power

consumption.

REFERENCE: The 8051 micro controller and embedded systems by

Mazidi

2

Page 4: Doc90. develop a multiple interface based fire fighting robot

INDEX

1. Introduction to Embedded Systems

2. 8051 Microcontrollers

3. IR Modules, Fire Sensor, Temperature Sensor, DC Motors

4. Working flow of the project Block diagram and Schematic diagram

5. Source code

6. Keil software

7. Conclusion

8. Bibliography

3

Page 5: Doc90. develop a multiple interface based fire fighting robot

CHAPTER 1

INTRODUCTION TO EMBEDDED SYSTEM

4

Page 6: Doc90. develop a multiple interface based fire fighting robot

CHAPTER 1

INTRODUCTION TO EMBEDDED SYSTEM

1.0 EMBEDDED SYSTEM

An embedded system is a special-purpose computer system designed to

perform one or a few dedicated functions, sometimes with real-time

computing constraints. It is usually embedded as part of a complete device

including hardware and mechanical parts. In contrast, a general-purpose

computer, such as a personal computer, can do many different tasks

depending on programming. Embedded systems have become very

important today as they control many of the common devices we use.

Since the embedded system is dedicated to specific tasks, design

engineers can optimize it, reducing the size and cost of the product, or

increasing the reliability and performance. Some embedded systems are

mass-produced, benefiting from economies of scale.

Physically, embedded systems range from portable devices such as

digital watches and MP3 players, to large stationary installations like

traffic lights, factory controllers, or the systems controlling nuclear power

plants. Complexity varies from low, with a single microcontroller chip, to

very high with multiple units, peripherals and networks mounted inside a

large chassis or enclosure.

In general, "embedded system" is not an exactly defined term, as

many systems have some element of programmability. For example,

Handheld computers share some elements with embedded systems — such

as the operating systems and microprocessors which power them — but

are not truly embedded systems, because they allow different applications

to be loaded and peripherals to be connected.

5

Page 7: Doc90. develop a multiple interface based fire fighting robot

An embedded system is some combination of computer hardware

and software, either fixed in capability or programmable, that is

specifically designed for a particular kind of application device. Industrial

machines, automobiles, medical equipment, cameras, household

appliances, airplanes, vending machines, and toys (as well as the more

obvious cellular phone and PDA) are among the myriad possible hosts of

an embedded system. Embedded systems that are programmable are

provided with a programming interface, and embedded systems

programming is a specialized occupation.

Certain operating systems or language platforms are tailored for

the embedded market, such as Embedded Java and Windows XP

Embedded. However, some low-end consumer products use very

inexpensive microprocessors and limited storage, with the application and

operating system both part of a single program. The program is written

permanently into the system's memory in this case, rather than being

loaded into RAM (random access memory), as programs on a personal

computer are.

1.1 APPLICATIONS OF EMBEDDED SYSTEM

We are living in the Embedded World. You are surrounded with

many embedded products and your daily life largely depends on the

proper functioning of these gadgets. Television, Radio, CD player of your

living room, Washing Machine or Microwave Oven in your kitchen, Card

readers, Access Controllers, Palm devices of your work space enable you

to do many of your tasks very effectively. Apart from all these, many

controllers embedded in your car take care of car operations between the

bumpers and most of the times you tend to ignore all these controllers.

6

Page 8: Doc90. develop a multiple interface based fire fighting robot

In recent days, you are showered with variety of information about

these embedded controllers in many places. All kinds of magazines and

journals regularly dish out details about latest technologies, new devices;

fast applications which make you believe that your basic survival is

controlled by these embedded products. Now you can agree to the fact that

these embedded products have successfully invaded into our world. You

must be wondering about these embedded controllers or systems. What is

this Embedded System?

The computer you use to compose your mails, or create a

document or analyze the database is known as the standard desktop

computer. These desktop computers are manufactured to serve many

purposes and applications.

You need to install the relevant software to get the required

processing facility. So, these desktop computers can do many things. In

contrast, embedded controllers carryout a specific work for which they are

designed. Most of the time, engineers design these embedded controllers

with a specific goal in mind. So these controllers cannot be used in any

other place.

Theoretically, an embedded controller is a combination of a piece of

microprocessor based hardware and the suitable software to undertake a

specific task.

These days designers have many choices in

microprocessors/microcontrollers. Especially, in 8 bit and 32 bit, the

available variety really may overwhelm even an experienced designer.

Selecting a right microprocessor may turn out as a most difficult first step

and it is getting complicated as new devices continue to pop-up very often.

In the 8 bit segment, the most popular and used architecture is Intel's

8031. Market acceptance of this particular family has driven many

semiconductor manufacturers to develop something new based on this

7

Page 9: Doc90. develop a multiple interface based fire fighting robot

particular architecture. Even after 25 years of existence, semiconductor

manufacturers still come out with some kind of device using this 8031

core.

1.1.1 Military and aerospace software applications

From in-orbit embedded systems to jumbo jets to vital battlefield

networks, designers of mission-critical aerospace and defense systems

requiring real-time performance, scalability, and high-availability facilities

consistently turn to the LynxOS® RTOS and the LynxOS-178 RTOS for

software certification to DO-178B.

Rich in system resources and networking services, LynxOS provides

an off-the-shelf software platform with hard real-time response backed by

powerful distributed computing (CORBA), high reliability, software

certification, and long-term support options.

The LynxOS-178 RTOS for software certification, based on the RTCA

DO-178B standard, assists developers in gaining certification for their

mission- and safety-critical systems. Real-time systems programmers get a

boost with LynuxWorks' DO-178B RTOS training courses.

LynxOS-178 is the first DO-178B and EUROCAE/ED-12B certifiable,

POSIX®-compatible RTOS solution.

1.1.2 Communications applications

"Five-nines" availability, CompactPCI hot swap support, and hard

real-time response—LynxOS delivers on these key requirements and more

for today's carrier-class systems. Scalable kernel configurations,

distributed computing capabilities, integrated communications stacks, and

fault-management facilities make LynxOS the ideal choice for companies

looking for a single operating system for all embedded

8

Page 10: Doc90. develop a multiple interface based fire fighting robot

telecommunications applications—from complex central controllers to

simple line/trunk cards.

LynuxWorks Jumpstart for Communications package enables OEMs

to rapidly develop mission-critical communications equipment, with pre-

integrated, state-of-the-art, data networking and porting software

components—including source code for easy customization.

The Lynx Certifiable Stack (LCS) is a secure TCP/IP protocol stack

designed especially for applications where standards certification is

required.

1.1.3 Electronics applications and consumer devices

As the number of powerful embedded processors in consumer devices

continues to rise, the BlueCat® Linux® operating system provides a

highly reliable and royalty-free option for systems designers.

And as the wireless appliance revolution rolls on, web-enabled

navigation systems, radios, personal communication devices, phones and

PDAs all benefit from the cost-effective dependability, proven stability

and full product life-cycle support opportunities associated with BlueCat

embedded Linux. BlueCat has teamed up with industry leaders to make it

easier to build Linux mobile phones with Java integration.

For makers of low-cost consumer electronic devices who wish to

integrate the LynxOS real-time operating system into their products, we

offer special MSRP-based pricing to reduce royalty fees to a negligible

portion of the device's MSRP.

1.1.4 Industrial automation and process control software

9

Page 11: Doc90. develop a multiple interface based fire fighting robot

Designers of industrial and process control systems know from

experience that LynuxWorks operating systems provide the security and

reliability that their industrial applications require.

From ISO 9001 certification to fault-tolerance, POSIX conformance,

secure partitioning and high availability, we've got it all. Take advantage

of our 20 years of experience.

1.2

MICROCONTROLLER VERSUS MICROPROCESSOR

What is the difference between a Microprocessor and

Microcontroller? By microprocessor is meant the general purpose

Microprocessors such as Intel's X86 family (8086, 80286, 80386, 80486,

and the Pentium) or Motorola's 680X0 family (68000, 68010, 68020,

68030, 68040, etc). These microprocessors contain no RAM, no ROM,

and no I/O ports on the chip itself. For this reason, they are commonly

referred to as general-purpose Microprocessors.

A system designer using a general-purpose microprocessor such as

the Pentium or the 68040 must add RAM, ROM, I/O ports, and timers

externally to make them functional. Although the addition of external

RAM, ROM, and I/O ports makes these systems bulkier and much more

expensive, they have the advantage of versatility such that the designer

can decide on the amount of RAM, ROM and I/O ports needed to fit the

task at hand. This is not the case with Microcontrollers.

A Microcontroller has a CPU (a microprocessor) in addition to a

fixed amount of RAM, ROM, I/O ports, and a timer all on a single chip. In

other words, the processor, the RAM, ROM, I/O ports and the timer are all

embedded together on one chip; therefore, the designer cannot add any

10

Page 12: Doc90. develop a multiple interface based fire fighting robot

external memory, I/O ports, or timer to it. The fixed amount of on-chip

ROM, RAM, and number of I/O ports in Microcontrollers makes them

ideal for many applications in which cost and space are critical.

In many applications, for example a TV remote control, there is no

need for the computing power of a 486 or even an 8086 microprocessor.

These applications most often require some I/O operations to read signals

and turn on and off certain bits.

1.3 MICROCONTROLLERS FOR EMBEDDED

SYSTEMS

In the Literature discussing microprocessors, we often see the term

Embedded System. Microprocessors and Microcontrollers are widely used

in embedded system products. An embedded system product uses a

microprocessor (or Microcontroller) to do one task only. A printer is an

example of embedded system since the processor inside it performs one

task only; namely getting the data and printing it. Contrast this with a

Pentium based PC. A PC can be used for any number of applications such

as word processor, print-server, bank teller terminal, Video game, network

server, or Internet terminal. Software for a variety of applications can be

loaded and run. Of course the reason a pc can perform myriad tasks is that

it has RAM memory and an operating system that loads the application

software into RAM memory and lets the CPU run it.

In an Embedded system, there is only one application software that

is typically burned into ROM. An x86 PC contains or is connected to

various embedded products such as keyboard, printer, modem, disk

controller, sound card, CD-ROM drives, mouse, and so on. Each one of

these peripherals has a Microcontroller inside it that performs only one

task. For example, inside every mouse there is a Microcontroller to

11

Page 13: Doc90. develop a multiple interface based fire fighting robot

perform the task of finding the mouse position and sending it to the PC.

Table 1-1 lists some embedded products.

CHAPTER 2

8051 Architecture & Programming

12

Page 14: Doc90. develop a multiple interface based fire fighting robot

2.0 8051 ARCHITECTURE

The generic 8051 architecture supports a Harvard

architecture, which contains two separate buses for both program

and data. So, it has two distinctive memory spaces of 64K X 8 size

for both programmed and data. It is based on an 8 bit central

processing unit with an 8 bit Accumulator and another 8 bit B

register as main processing blocks. Other portions of the

architecture include few 8 bit and 16 bit registers and 8 bit

memory locations.

Each 8051 device has some amount of data RAM built in the

device for internal processing. This area is used for stack operations

and temporary storage of data.

This bus architecture is supported with on-chip peripheral

functions like I/O ports, timers/counters, versatile serial

communication port. So it is clear that this 8051 architecture was

designed to cater many real time embedded needs.

2.1 FEATURES OF 8051 ARCHITECTURE

Optimized 8 bit CPU for control applications and extensive Boolean

processing capabilities.

64K Program Memory address space.

64K Data Memory address space.

128 bytes of on chip Data Memory.

32 Bi-directional and individually addressable I/O lines.

Two 16 bit timer/counters.

13

Page 15: Doc90. develop a multiple interface based fire fighting robot

Full Duplex UART.

6-source / 5-vector interrupt structure with priority levels.

On chip clock oscillator.

Now we may be wondering about the non-mentioning of memory

space meant for the program storage, the most important part of any

embedded controller. Originally this 8051 architecture was

introduced with on-chip, ‘one time programmable’ version of

Program Memory of size 4K X 8. Intel delivered all these

microcontrollers (8051) with user’s program fused inside the

device. The memory portion was mapped at the lower end of the

Program Memory area. But, after getting devices, customers

couldn’t change any thing in their program code, which was

already made available inside during device fabrication.

BLOCK DIAGRAM OF 8051

Figure 2.1 - Block Diagram of the 8051 Core

14

Page 16: Doc90. develop a multiple interface based fire fighting robot

So, very soon Intel introduced the 8051 devices with re-

programmable type of Program Memory using built-in EPROM of

size 4K X 8. Like a regular EPROM, this memory can be re-

programmed many times. Later on Intel started manufacturing these

8031 devices without any on chip Program Memory.

MICROCONTROLLER LOGIC SYMBOL

Figure 2.2 logic diagram of 8051

2.2.1 ALE/PROG: Address Latch Enable output pulse for latching the

low byte of the address during accesses to external memory. ALE is

emitted at a constant rate of 1/6 of the oscillator frequency, for external

timing or clocking purposes, even when there are no accesses to external

memory. (However, one ALE pulse is skipped during each access to

15

Page 17: Doc90. develop a multiple interface based fire fighting robot

external Data Memory.) This pin is also the program pulse input (PROG)

during EPROM programming.

2.2.2 PSEN : Program Store Enable is the read strobe to external

Program Memory. When the device is executing out of external Program

Memory, PSEN is activated twice each machine cycle (except that two

PSEN activations are skipped during accesses to external Data Memory).

PSEN is not activated when the device is executing out of internal

Program Memory.

2.2.3 EA/VPP: When EA is held high the CPU executes out of

internal Program Memory (unless the Program Counter exceeds 0FFFH in

the 80C51). Holding EA low forces the CPU to execute out of external

memory regardless of the Program Counter value. In the 80C31, EA must

be externally wired low. In the EPROM devices, this pin also receives the

programming supply voltage (VPP) during EPROM programming.

2.2.4 XTAL1: Input to the inverting oscillator amplifier.

2.2.5 XTAL2: Output from the inverting oscillator amplifier.

The 8051’s I/O port structure is extremely versatile and flexible. The

device has 32 I/O pins configured as four eight bit parallel ports (P0,

P1, P2 and P3). Each pin can be used as an input or as an output

under the software control. These I/O pins can be accessed directly

by memory instructions during program execution to get required

flexibility.

These port lines can be operated in different modes and all the

pins can be made to do many different tasks apart from their regular

I/O function executions. Instructions, which access external

memory, use port P0 as a multiplexed address/data bus. At the

beginning of an external memory cycle, low order 8 bits of the

address bus are output on P0. The same pins transfer data byte at

the later stage of the instruction execution.

16

Page 18: Doc90. develop a multiple interface based fire fighting robot

Also, any instruction that accesses external Program

Memory will output the higher order byte on P2 during read cycle.

Remaining ports, P1 and P3 are available for standard I/O

functions. But all the 8 lines of P3 support special functions: Two

external interrupt lines, two counter inputs, serial port’s two data

lines and two timing control strobe lines are designed to use P3

port lines. When you don’t use these special functions, you can use

corresponding port lines as a standard I/O. Even within a single port,

I/O operations may be combined in many ways. Different pins can be

configured as input or outputs independent of each other or the same

pin can be used as an input or as output at different times. You can

comfortably combine I/O operations and special operations for Port

3 lines.

All the Port 3 pins are multifunctional. They are not only port pins,

but also serve the functions of various special features as listed below:

Port Pin Alternate Function

P3.0 RxD (serial input port)

P3.1 TxD (serial output port)

2.3 MEMORY ORGANISATION

The alternate functions can only be activated if the corresponding

bit latch in the port SFR contains a 1. Otherwise the port pin remains at

0.All 80C51 devices have separate address spaces for program and data

memory, as shown in Figures 1 and 2. The logical separation of program

and data memory allows the data memory to be accessed by 8-bit

addresses, which can be quickly stored and manipulated by an 8-bit CPU.

Nevertheless, 16-bit data memory addresses can also be generated through

the DPTR register.

Program memory (ROM, EPROM) can only be read, not written

to. There can be up to 64k bytes of program memory. In the 80C51, the

lowest 4k bytes of program are on-chip. In the ROM less versions, all

program memory is external. The read strobe for external program

17

Page 19: Doc90. develop a multiple interface based fire fighting robot

memory is the PSEN (program store enable). Data Memory (RAM)

occupies a separate address space from Program Memory. In the 80C51,

the lowest 128 bytes of data memory are on-chip. Up to 64k bytes of

external RAM can be addressed in the external Data Memory space. In the

ROM less version, the lowest 128 bytes are on-chip. The CPU generates

read and write signals, RD and WR, as needed during external Data

Memory accesses.

External Program Memory and external Data Memory may be

combined if desired by applying the RD and PSEN signals to the inputs of

an AND gate and using the output of the gate as the read strobe to the

external Program/Data memory.

2.4 BASIC REGISTERS

A number of 8052 registers can be considered "basic." Very little

can be done without them and a detailed explanation of each one is

warranted to make sure the reader understands these registers before

getting into more complicated areas of development.

2.4.1 The Accumulator: If you've worked with any other

assembly language you will be familiar with the concept of an

accumulator register.

The Accumulator, as its name suggests, is used as a general

register to accumulate the results of a large number of instructions. It can

hold an 8-bit (1-byte) value and is the most versatile register the 8052 has

due to the sheer number of instructions that make use of the accumulator.

More than half of the 8052's 255 instructions manipulate or use the

Accumulator in some way. For example, if you want to add the number

10 and 20, the resulting 30 will be stored in the Accumulator. Once you

have a value in the Accumulator you may continue processing the value or

you may store it in another register or in memory.

2.4.2 The "R" Registers: The "R" registers are sets of eight registers

that are named R0, R1, through R7. These registers are used as auxiliary

18

Page 20: Doc90. develop a multiple interface based fire fighting robot

registers in many operations. To continue with the above example, perhaps

you are adding 10 and 20. The original number 10 may be stored in the

Accumulator whereas the value 20 may be stored in, say, register R4. To

process the addition you would execute the command:

 ADD A, R4

After executing this instruction the Accumulator will contain the value 30.

You may think of the "R" registers as very important auxiliary, or

"helper", registers. The Accumulator alone would not be very useful if it

were not for these "R" registers.

The "R" registers are also used to store values temporarily. For example,

let’s say you want to add the values in R1 and R2 together and then

subtract the values of R3 and R4. One way to do this would be:

 MOV A, R3                ; Move the value of R3 to accumulator

       ADD A, R4                ; add the value of R4

       MOV R5, A                ; Store the result in R5

       MOV A, R1                ; Move the value of R1 to Acc

       ADD A, R2                ; add the value of R2 with A

       SUBB A, R5                ; Subtract the R5 (which has R3+R4)

As you can see, we used R5 to temporarily hold the sum of R3 and R4. Of

course, this isn't the most efficient way to calculate (R1+R2) - (R3 +R4)

but it does illustrate the use of the "R" registers as a way to store values

temporarily.

As mentioned earlier, there are four sets of "R" registers-register bank 0,

1, 2, and 3. When the 8052 is first powered up, register bank 0 (addresses

00h through 07h) is used by default. In this case, for example, R4 is the

same as Internal RAM address 04h. However, your program may instruct

the 8052 to use one of the alternate register banks; i.e., register banks 1, 2,

or 3. In this case, R4 will no longer be the same as Internal RAM address

04h. For example, if your program instructs the 8052 to use register bank

1, register R4 will now be synonymous with Internal RAM address 0Ch. If

19

Page 21: Doc90. develop a multiple interface based fire fighting robot

you select register bank 2, R4 is synonymous with 14h, and if you select

register bank 3 it is synonymous with address 1Ch.

The concept of register banks adds a great level of flexibility to the

8052, especially when dealing with interrupts (we'll talk about interrupts

later). However, always remember that the register banks really reside in

the first 32 bytes of Internal RAM.

2.4.3 The B Register The "B" register is very similar to the

Accumulator in the sense that it may hold an 8-bit (1-byte) value. The "B"

register is only used implicitly by two 8052 instructions: MUL AB and

DIV AB. Thus, if you want to quickly and easily multiply or divide A by

another number, you may store the other number in "B" and make use of

these two instructions.

Aside from the MUL and DIV instructions, the "B" register are

often used as yet another temporary storage register much like a ninth "R"

register.

2.4.4 The Program Counter: The Program Counter (PC) is a 2-byte

address that tells the 8052 where the next instruction to execute is found in

memory. When the 8052 is initialized PC always starts at 0000h and is

incremented each time an instruction is executed. It is important to note

that PC isn't always incremented by one. Since some instructions are 2 or

3 bytes in length the PC will be incremented by 2 or 3 in these cases.

The Program Counter is special in that there is no way to directly

modify its value. That is to say, you can't do something like PC=2430h.

On the other hand, if you execute LJMP 2430h you've effectively

accomplished the same thing.

It is also interesting to note that while you may change the value of

PC (by executing a jump instruction, etc.) there is no way to read the value

of PC. That is to say, there is no way to ask the 8052 "What address are

you about to execute?" As it turns out, this is not completely true: There is

one trick that may be used to determine the current value of PC. This trick

will be covered in a later chapter.

20

Page 22: Doc90. develop a multiple interface based fire fighting robot

2.4.5 The Data Pointer: The Data Pointer (DPTR) is the 8052ís only

user-accessible 16-bit (2-byte) register. The Accumulator, "R" registers,

and "B" register are all 1-byte values. The PC just described is a 16-bit

value but isn't directly user-accessible as a working register.

DPTR, as the name suggests, is used to point to data. It is used by a

number of commands that allow the 8052 to access external memory.

When the 8052 accesses external memory it accesses the memory at the

address indicated by DPTR.

While DPTR is most often used to point to data in external

memory or code memory, many developers take advantage of the fact that

it's the only true 16-bit register available. It is often used to store 2-byte

values that have nothing to do with memory locations.

2.4.6 The Stack Pointer: The Stack Pointer, like all registers except

DPTR and PC, may hold an 8-bit (1-byte) value. The Stack Pointer is used

to indicate where the next value to be removed from the stack should be

taken from.

When you push a value onto the stack, the 8052 first increments

the value of SP and then stores the value at the resulting memory location.

When you pop a value off the stack, the 8052 returns the value from the

memory location indicated by SP and then decrements the value of SP.

This order of operation is important. When the 8052 is initialized

SP will be initialized to 07h. If you immediately push a value onto the

stack, the value will be stored in Internal RAM address 08h. This makes

sense taking into account what was mentioned two paragraphs above: First

the 8051 will increment the value of SP (from 07h to 08h) and then will

store the pushed value at that memory address (08h).

2.5 ADDRESSING MODES

The addressing modes in the 80C51 instruction set are as follows:

2.5.1 Direct Addressing: In direct addressing the operand is specified

by an 8-bit address field in the instruction. Only internal Data RAM and

SFRs can be directly addressed.

21

Page 23: Doc90. develop a multiple interface based fire fighting robot

2.5.2 Indirect Addressing: In indirect addressing the instruction

specifies a register which contains the address of the operand. Both

internal and external RAM can be indirectly addressed. The address

register for 8-bit addresses can be R0 or R1 of the selected bank, or the

Stack Pointer. The address register for 16-bit addresses can only be the 16-

bit “data pointer” register, DPTR.

2.6 Register Instructions The register banks, containing registers

R0 through R7, can be accessed by certain instructions which carry a 3-bit

register specification within the opcode of the instruction. Instructions that

access the registers this way are code efficient, since this mode eliminates

an address byte. When the instruction is executed, one of the eight

registers in the selected bank is accessed. One of four banks is selected at

execution time by the two bank select bits in the PSW.

2.6.1 Register-Specific Instructions Some instructions are

specific to a certain register. For example, some instructions always

operate on the Accumulator, or Data Pointer, etc., so no address byte is

needed to point to it. The opcode itself does that. Instructions that refer to

the Accumulator as A assemble as accumulator specific opcodes.

Immediate Constants

The value of a constant can follow the opcode in Program Memory. For

example,

MOV A, #100

loads the Accumulator with the decimal number 100. The same number

could be specified in hex digits as 64H.

Indexed Addressing

Only program Memory can be accessed with indexed addressing,

and it can only be read. This addressing mode is intended for reading look-

up tables in Program Memory A 16-bit base register (either DPTR or the

22

Page 24: Doc90. develop a multiple interface based fire fighting robot

Program Counter) points to the base of the table, and the Accumulator is

set up with the table entry number. The address of the table entry in

Program Memory is formed by adding the Accumulator data to the base

pointer. Another type of indexed addressing is used in the “case jump”

instruction. In this case the destination address of a jump instruction is

computed as the sum of the base pointer and the Accumulator data.

CENTRAL PROCESSING UNIT

The CPU is the brain of the microcontrollers reading user’s

programs and executing the expected task as per instructions stored

there in. Its primary elements are an 8 bit Arithmetic Logic Unit

(ALU ) , Accumulator (Acc ) , few more 8 bit registers , B register,

Stack Pointer (SP ) , Program Status Word (PSW) and 16 bit

registers, Program Counter (PC) and Data Pointer Register (DPTR).

The ALU (Acc) performs arithmetic and logic functions on 8

bit input variables. Arithmetic operations include basic addition,

subtraction, and multiplication and division. Logical operations are

AND, OR, Exclusive OR as well as rotate, clear, complement and etc.

Apart from all the above, ALU is responsible in conditional

branching decisions, and provides a temporary place in data transfer

operations within the device.

B-register is mainly used in multiply and divides operations.

During execution, B register either keeps one of the two inputs or

then retains a portion of the result. For other instructions, it can be

used as another general purpose register.

Program Status Word (PSW) keeps the current status of the

ALU in different bits. Stack Pointer (SP) is an 8 bit register. This

pointer keeps track of memory space where the important register

information is stored when the program flow gets into executing a

23

Page 25: Doc90. develop a multiple interface based fire fighting robot

subroutine. The stack portion may be placed in any where in the

on-chip RAM. But normally SP is initialized to 07H after a device

reset and grows up from the location 08H. The Stack Pointer is

automatically incremented or decremented for all PUSH or POP

instructions and for all subroutine calls and returns.

Program Counter (PC) is the 16 bit register giving address of

next instruction to be executed during program execution and it

always points to the Program Memory space. Data Pointer (DPTR)

is another 16 bit addressing register that can be used to fetch any 8

bit data from the data memory space. When it is not being used for

this purpose, it can be used as two eight bit registers.

TIMERS/COUNTERS

8051 has two 16 bit Timers/Counters capable of working in different

modes. Each consists of a ‘High’ byte and a ‘Low’ byte which can

be accessed under software. There is a mode control register and a

control register to configure these timers/counters in number of

ways.

These timers can be used to measure time intervals,

determine pulse widths or initiate events with one microsecond

resolution up to a maximum of 65 millisecond (corresponding to 65,

536 counts). Use software to get longer delays. Working as counter,

they can accumulate occurrences of external events (from DC to 500

KHz) with 16 bit precision.

SERIAL PORTS

Each 8051 microcomputer contains a high speed full duplex

(means you can simultaneously use the same port for both

transmitting and receiving purposes) serial port which is software

configurable in 4 basic modes: 8 bit UART; 9 bit UART; inter

processor Communications link or as shift register I/O expander.

24

Page 26: Doc90. develop a multiple interface based fire fighting robot

For the standard serial communication facility, 8051 can be

programmed for UART operations and can be connected with

regular personal computers, teletype writers, modem at data rates

between 122 bauds and 31 kilo bauds. Getting this facility is made

very simple using simple routines with option to elect even or odd

parity. You can also establish a kind of Inter processor

communication facility among many microcomputers in a distributed

environment with automatic recognition of address/data. Apart from

all above, you can also get super fast I/O lines using low cost

simple TTL or CMOS shift registers.

MICROPROCESSOR

A microprocessor as a term has come to be known is a general-

purpose digital computer central processing unit. Although popularly

known as a computer on a chip.

The microprocessor contains arithmetic and logic unit, program

counter, Stack pointer, some working registers, clock timing circuit and

interrupt circuits.

To make a complete computer one must add memory usually RAM

& ROM, memory decoders, an oscillator and number of I/O devices such

as parallel and serial data ports in addition special purpose devices such as

interrupt handlers and counters.

The key term in describing the design of the microprocessor is

“general purpose”. The hardware design of a microprocessor CPU is

arranged so that a small or very large system can be configured around the

CPU as the application demands.

The prime use of microprocessor is to read data,

perform extensive calculations on that data and store

those calculations in a mass storage device. The programs

used by the microprocessor are stored in the mass storage

25

Page 27: Doc90. develop a multiple interface based fire fighting robot

device and loaded in the RAM as the user directs. A few

microprocessor programs are stored in the ROM. The ROM

based programs are primarily are small fixed programs

that operate on peripherals and other fixed device that are

connected to the system

BLOCK DIAGRAM OF MICROPROCESSOR

MICROCONTROLLER

Micro controller is a true computer on a chip the design incorporates all

of the features found in a microprocessor CPU: arithmetic and logic unit,

stack pointer, program counter and registers. It has also had added

additional features like RAM, ROM, serial I/O, counters and clock circuit.

26

Page 28: Doc90. develop a multiple interface based fire fighting robot

Like the microprocessor, a microcontroller is a general purpose

device, but one that is meant to read data, perform limited calculations on

that data and control it’s environment based on those calculations. The

prime use of a microcontroller is to control the operation of a machine

using a fixed program that is stored in ROM and that does not change over

the lifetime of the system.

The design approach of a microcontroller uses a more limited set of

single byte and double byte instructions that are used to move code and

data from internal memory to ALU. Many instructions are coupled with

pins on the IC package; the pins are capable of having several different

functions depending on the wishes of the programmer.

The microcontroller is concerned with getting the data from and on

to its own pins; the architecture and instruction set are optimized to handle

data in bit and byte size.

FUNCTIONAL BLOCKS OF A MICROCONTROLLER

27

Page 29: Doc90. develop a multiple interface based fire fighting robot

CRITERIA FOR CHOOSING A

MICROCONTROLLER

1. The first and foremost criterion for choosing a microcontroller is that it

must meet task at hands efficiently and cost effectively. In analyzing the

needs of a microcontroller based project we must first see whether it is an

8-bit, 16-bit or 32-bit microcontroller and how best it can handle the

28

Page 30: Doc90. develop a multiple interface based fire fighting robot

computing needs of the task most effectively. The other considerations in

this category are:

(a) Speed: The highest speed that the microcontroller supports

(b) Packaging: Is it 40-pin DIP or QPF or some other packaging format?

This is important in terms of space, assembling and prototyping the

End product.

(c) Power Consumption: This is especially critical for battery-powered

Products.

(d) The amount of RAM and ROM on chip

(e) The number of I/O pins and timers on the chip.

(f) Cost per unit: This is important in terms of final product in which

a microcontroller is used.

2. The second criteria in choosing a microcontroller are how easy it is to

develop products around it. Key considerations include the availability of

an assembler, debugger, a code efficient ‘C’ language compiler, emulator,

technical support and both in house and outside expertise. In many cases

third party vendor support for chip is required.

3. The third criteria in choosing a microcontroller is it readily available in

needed quantities both now and in future. For some designers this is even

more important than first two criteria’s. Currently, of leading 8–bit

microcontrollers, the 89C51 family has the largest number of diversified

(multiple source) suppliers. By suppliers meant a producer besides the

originator of microcontroller in the case of the 89C51, which was

originated by Intel, several companies are also currently producing the

89C51. Viz: INTEL, PHILIPS, These companies include PHILIPS,

SIEMENS, and DALLAS-SEMICONDUCTOR. It should be noted that

Motorola, Zilog and Microchip Technologies have all dedicated massive

resource as to ensure wide and timely availability of their product since

their product is stable, mature and single sourced. In recent years they also

have begun to sell the ASIC library cell of the microcontroller.

29

Page 31: Doc90. develop a multiple interface based fire fighting robot

30

Page 32: Doc90. develop a multiple interface based fire fighting robot

CHAPTER 4

FIRE SENSOR, TEMPERATURE SENSOR, DC

MOTORS

31

Page 33: Doc90. develop a multiple interface based fire fighting robot

FIRE SENSOR: DR 25

Features• Low Leakage

• Low Forward Voltage Drop

• High Current Capability

• High Forward Surge Current Capability

Maximum Ratings• Operating Temperature: -65 ℃ to +175℃

• Storage Temperature: -65 ℃ to +175℃

32

Page 34: Doc90. develop a multiple interface based fire fighting robot

33

Page 35: Doc90. develop a multiple interface based fire fighting robot

34

Page 36: Doc90. develop a multiple interface based fire fighting robot

Fire Al8051

An reverse biased germanium diode is used here as a heat sensor at normal

room temperature the reverse resistance of the diode is very high in the

order of over 10 kilo ohms so it produce no effects on the transistor Q1

35

Page 37: Doc90. develop a multiple interface based fire fighting robot

which conducts and keeps the reset pin 4 of ic 555 at its ground level, and

so the al8051 doesn’t get activated.

When the temperature in the vicinity of the diode (the sensor) increases in

case of fire, the reverse resistance of the germanium diode drops at about

70 degree its resistance drops to a value below 1 kilo ohms this stops Q1

conduction and the 555 ic pin 4 becomes positive through the resistor R1

which activates the al8051.

TEMPERATURE SENSOR

Features

• Calibrated directly in ° Celsius (Centigrade)

• Linear + 10.0 mV/°C scale factor

• 0.5°C accuracy guaranteeable (at +25°C)

• Rated for full -55° to +150°C range

• Suitable for remote applications

• Low cost due to wafer-level trimming

• Operates from 4 to 30 volts

• Less than 60 µA current drain

• Low self-heating, 0.08°C in still air

• Nonlinearity only ±¼°C typical

• Low impedance output, 0.1 Ohm for 1 mA

load

Description

36

Page 38: Doc90. develop a multiple interface based fire fighting robot

The LM35 series are precision integrated-circuit

temperature sensors, whose output voltage is linearly

proportional to the Celsius (Centigrade) temperature. The

LM35 thus has an advantage over linear temperature

sensors calibrated in ° Kelvin, as the user is not required to

subtract a large constant voltage from its output to obtain

convenient Centigrade scaling. The LM35 does not require

any external calibration or trimming to provide typical

accuracies of ±¼°C at room temperature and ±¾°C over a

full -55 to +150°C temperature range. Low cost is assured

by trimming and calibration at the wafer level. The LM35's

low output impedance, linear output, and precise inherent

calibration make interfacing to readout or control circuitry

especially easy. It can be used with single power supplies,

or with plus and minus supplies. As it draws only 60 µA

from its supply, it has very low self-heating, less than 0.1°C

in still air. The LM35 is rated to operate over a -55° to

+150°C temperature range, while the LM35C is rated for a

-40° to +110°C range (-10° with improved accuracy). The

LM35 series is available packaged in hermetic TO-46

transistor packages, while the LM35C, LM35CA, and LM35D

are also available in the plastic TO-92 transistor package.

The LM35D is also available in an 8-lead surface mount

small outline package and a plastic TO-220 package.

Temperature sensor:

An analog temperature sensor is pretty easy to explain, its

a chip that tells you what the ambient temperature is!

These sensors use a solid-state technique to determine the

temperature. That is to say, they dont use mercury (like

37

Page 39: Doc90. develop a multiple interface based fire fighting robot

old thermometers), bimetalic strips (like in some home

thermometers or stoves), nor do they use thermistors

(temperature sensitive resistors). Instead, they use the fact

as temperature increases, the votage across a diode

increases at a known rate. (Technically, this is actually the

voltage drop between the base and emitter - the Vbe - of a

transistor. By precisely amplifying the voltage change, it is

easy to genereate an analog signal that is directly

proportional to temperature. There have been some

improvements on the technique but, essentially that is how

temperature is measured.

Because these sensors have no moving parts, they are

precise, never wear out, don't need calibration, work under

many environmental conditions, and are consistant

between sensors and readings. Moreover they are very

inexpensive and quite easy to use

Some basic stats

These stats are for the temperature in the Adafruit shop,

the Analog Devices TMP36 (-40 to 150C). Its very similar to

the LM35/TMP35 (celsius output) and LM34/TMP34

(farenheit output). The reason we went with the '36 instead

of the '35 or '34 is that this sensor has a very wide range

and doensn't require a negative voltage to read sub-zero

temperatures. Otherwise, the functionality is basically the

same.

Size: TO-92 package (about 0.2" x 0.2" x 0.2") with three

leads

Price: $2.00 at the Adafruit shop

38

Page 40: Doc90. develop a multiple interface based fire fighting robot

Temperature range: -40°C to 150°C / -40°F to 302°F

Output range: 0.1V (-40°C) to 2.0V (150°C) but accuracy

decreases after 125°C

Power supply: 2.7V to 5.5V only, 0.05 mA current draw

Datasheet

Measuring temperature!

Using the TMP36 is easy, simply connect the left pin to

power (2.7-5.5V) and the right pin to ground. Then the

middle pin will have an analog voltage that is directly

proportional (linear) to the temperature. The analog

voltage is independant of the power supply.

To convert the voltage to temperature, simply use the

basic formula:

Temp in °C = [(Vout in mV) - 500] / 10

39

Page 41: Doc90. develop a multiple interface based fire fighting robot

So for example, if the voltage out is 1V that means that the

temperature is ((1000 mV - 500) / 10) = 50 °C

If you're using a LM35 or similar, use line 'a' in the image

above and the formula: Temp in °C = (Vout in mV) / 10

Testing your temperature sensor

Testing these sensors is pretty easy but you'll need a

battery pack or power supply.

Connect a 2.7-5.5V power supply (2-4 AA batteries work

fantastic) so that ground is connected to pin 3 (right pin),

and power is connected to pin 1 (left pin)

Then connect your multimeter in DC voltage mode to

ground and the remaining pin 2 (middle). If you've got a

TMP36 and its about room temperature (25°C), the voltage

should be about 0.75V. Note that if you're using a LM35,

the voltage will be 0.25V

40

Page 42: Doc90. develop a multiple interface based fire fighting robot

The sensor is indicating that the temperature is 26.3°C also

known as 79.3°F

You can change the voltage range by pressing the plastic

case of the sensor with your fingers, you will see the

temperature/voltage rise.

With my fingers on the sensor, heating it up a little, the

temperature reading is now 29.7°C / 85.5°F

41

Page 43: Doc90. develop a multiple interface based fire fighting robot

Or you can touch the sensor with an ice cube, perferrably

in a plastic bag so it doesn't get water on your circuit, and

see the temperature/voltage drop.

I pressed an ice-cube against the sensor, to bring the

temperature down to 18.6°C / 65.5°F

Connecting to your temperature sensor

These sensors have little chips in them and while they're

not that delicate, they do need to be handled properly. Be

careful of static electricity when handling them and make

sure the power supply is connected up correctly and is

between 2.7 and 5.5V DC - so don't try to use a 9V battery!

breadboarded to-92

They come in a "TO-92" package which means the chip is

housed in a plastic hemi-cylinder with three legs. The legs

can be bent easily to allow the sensor to be plugged into a

breadboard. You can also solder to the pins to connect long

wires. If you need to waterproof the sensor, you can see

42

Page 44: Doc90. develop a multiple interface based fire fighting robot

below for an Instructable for how to make an excellent

case.

Project examples

Remote temperature sensor

Video editor that uses biofeedback (body temperature)

How to waterproof a LM35 sensor for use in a Remotely

Operated Vehicle (robot submarine)

43

Page 45: Doc90. develop a multiple interface based fire fighting robot

A "smart coaster" lets you know when your coffee/tea is

safe to drink

Some of these projects use thermistors (resistors that

change their resistance based on temperature), but can

very easily be adapted to to a solid state sensor like the

TMP36

Reading the analog temperature data

Unlike the FSR or photocell sensors we have looked at, the

TMP36 and friends doesn't act like a resistor. Because of

that, there is really only one way to read the temperature

value from the sensor, and that is plugging the output pin

directly into an Analog (ADC) input.

44

Page 46: Doc90. develop a multiple interface based fire fighting robot

Remember that you can use anywhere between 2.7V and

5.5V as the power supply. For this example I'm showing it

with a 5V supply but note that you can use this with a 3.3v

supply just as easily. No matter what supply you use, the

analog voltage reading will range from about 0V (ground)

to about 1.75V.

If you're using a 5V Arduino, and connecting the sensor

directly into an Analog pin, you can use these formulas to

turn the 10-bit analog reading into a temperature:

Voltage at pin in milliVolts = (reading from ADC) *

(5000/1024)

This formula converts the number 0-1023 from the ADC

into 0-5000mV (= 5V)

If you're using a 3.3V Arduino, you'll want to use this:

Voltage at pin in milliVolts = (reading from ADC) *

(3300/1024)

This formula converts the number 0-1023 from the ADC

into 0-3300mV (= 3.3V)

45

Page 47: Doc90. develop a multiple interface based fire fighting robot

Then, to convert millivolts into temperature, use this

formula:

Centigrade temperature = [(analog voltage in mV) - 500] /

10

Simple thermometer

This example code for Arduino shows a quick way to create

a temperature sensor, it simply prints to the serial port

what the current temperature is in both Celsius and

Fahrenheit

46

Page 48: Doc90. develop a multiple interface based fire fighting robot

DC MOTOR

Principles of operation

In any electric motor, operation is based on simple electromagnetism. A

current-carrying conductor generates a magnetic field; when this is then

placed in an external magnetic field, it will experience a force proportional

to the current in the conductor, and to the strength of the external magnetic

field. As you are well aware of from playing with magnets as a kid,

opposite (North and South) polarities attract, while like polarities (North

and North, South and South) repel. The internal configuration of a DC

motor is designed to harness the magnetic interaction between a current-

carrying conductor and an external magnetic field to generate rotational

motion.

Let's start by looking at a simple 2-pole DC electric motor (here red

represents a magnet or winding with a "North" polarization, while green

represents a magnet or winding with a "South" polarization).

Every DC motor has six basic parts -- axle, rotor (a.k.a., 8051ature), stator,

commutator, field magnet(s), and brushes. In most common DC motors

(and all that BEAMers will see), the external magnetic field is produced

by high-strength permanent magnets1. The stator is the stationary part of

the motor -- this includes the motor casing, as well as two or more

permanent magnet pole pieces. The rotor (together with the axle and

47

Page 49: Doc90. develop a multiple interface based fire fighting robot

attached commutator) rotate with respect to the stator. The rotor consists

of windings (generally on a core), the windings being electrically

connected to the commutator. The above diagram shows a common motor

layout -- with the rotor inside the stator (field) magnets.

The geometry of the brushes, commutator contacts, and rotor windings are

such that when power is applied, the polarities of the energized winding

and the stator magnet(s) are misaligned, and the rotor will rotate until it is

almost aligned with the stator's field magnets. As the rotor reaches

alignment, the brushes move to the next commutator contacts, and

energize the next winding. Given our example two-pole motor, the

rotation reverses the direction of current through the rotor winding,

leading to a "flip" of the rotor's magnetic field, driving it to continue

rotating.

In real life, though, DC motors will always have more than two poles

(three is a very common number). In particular, this avoids "dead spots"

in the commutator. You can imagine how with our example two-pole

motor, if the rotor is exactly at the middle of its rotation (perfectly aligned

with the field magnets), it will get "stuck" there. Meanwhile, with a two-

48

Page 50: Doc90. develop a multiple interface based fire fighting robot

pole motor, there is a moment where the commutator shorts out the power

supply (i.e., both brushes touch both commutator contacts

simultaneously). This would be bad for the power supply, waste energy,

and damage motor components as well. Yet another disadvantage of such

a simple motor is that it would exhibit a high amount of torque "ripple"

(the amount of torque it could produce is cyclic with the position of the

rotor).

So since most small DC motors are of a three-pole design, let's tinker with

the workings of one via an interactive animation (JavaScript required):

You'll notice a few things from this -- namely, one pole is fully energized

at a time (but two others are "partially" energized). As each brush

transitions from one commutator contact to the next, one coil's field will

rapidly collapse, as the next coil's field will rapidly charge up (this occurs

within a few microsecond). We'll see more about the effects of this later,

but in the meantime you can see that this is a direct result of the coil

windings' series wiring:

49

Page 51: Doc90. develop a multiple interface based fire fighting robot

There's probably no better way to see how

an average DC motor is put together, than

by just opening one up. Unfortunately this

is tedious work, as well as requiring the

destruction of a perfectly good motor.

Luckily for you, I've gone ahead and done

this in your stead. The guts of a

disassembled Mabuchi FF-030-PN motor

(the same model that Solarbotics sells) are

available for you to see here (on 10 lines /

cm graph paper). This is a basic 3-pole DC

motor, with 2 brushes and three commutator

contacts.

The use of an iron core 8051ature (as in the Mabuchi, above) is quite

common, and has a number of advantages2. First off, the iron core

provides a strong, rigid support for the windings -- a particularly important

consideration for high-torque motors. The core also conducts heat away

from the rotor windings, allowing the motor to be driven harder than

might otherwise be the case. Iron core construction is also relatively

inexpensive compared with other construction types.

50

Page 52: Doc90. develop a multiple interface based fire fighting robot

But iron core construction also has several disadvantages. The iron

8051ature has a relatively high inertia which limits motor acceleration.

This construction also results in high winding inductances which limit

brush and commutator life.

In small motors, an alternative design is often used which features a

'coreless' 8051ature winding. This design depends upon the coil wire itself

for structural integrity. As a result, the 8051ature is hollow, and the

permanent magnet can be mounted inside the rotor coil. Coreless DC

motors have much lower 8051ature inductance than iron-core motors of

comparable size, extending brush and commutator life.

Diagram courtesy of MicroMo

The coreless design also allows manufacturers to build smaller motors;

meanwhile, due to the lack of iron in their rotors, coreless motors are

somewhat prone to overheating. As a result, this design is generally used

just in small, low-power motors. BEAMers will most often see coreless

DC motors in the form of pager motors.

Again, disassembling a coreless motor

can be instructive -- in this case, my

hapless victim was a cheap pager

vibrator motor. The guts of this

disassembled motor are available for you

to see here (on 10 lines / cm graph

paper). This is (or more accurately, was)

51

Page 53: Doc90. develop a multiple interface based fire fighting robot

a 3-pole coreless DC motor.

I disembowel 'em so you don't have to...

To get the best from DC motors in BEAMbots, we'll need to take a closer

look at DC motor behaviors -- both obvious and not.

52

Page 54: Doc90. develop a multiple interface based fire fighting robot

CHAPTER 5

WORKING FLOW

53

Page 55: Doc90. develop a multiple interface based fire fighting robot

BLOCK DIAGRAM:

54

(8051)MICROCONTROLLER

FIRE SENSOR

REGULATED POWER SUPPLY

MOTOR DRIVING UNIT

MOTOR2

BLOWER/FAN/LED

MOTOR1

IR Tx IR Rx

TEMPERATURE SENSOR

Page 56: Doc90. develop a multiple interface based fire fighting robot

BLOCK DAIGRAM EXPLANATION:

Mainly the block diagram consists of following parts:

Regulated Power supply circuit

(8051) Micro controller

IR Modules

Fire Sensor

DC motor driver

DC Motors

WORKING FLOW OF THE PROJECT:

Generally we get 230v of power supply but we need only 3.3v

to generate the micro controller so before giving the power supply

directly to it we will use transformer, capacitive filters , generators to

convert 230v of power supply to the required amount to provide

required supply to the micro controller. Here we are the adjusting the

output voltage to our required amount. Here we are using 8051

micro controller so it requires only 3.3v so we use another module to

get 3.3v supply to the 8051.

This project “Multiple interface based fire fighting robot” use full

for detecting the fire while the robot is moving and whenever the

robot finds any fire that can be detected by using the fire sensor and

accordingly will indicates the occurrence of fire. And controlling of

the robot can also be done by using IR based TV remote.

Schematic Diagram:-

55

Page 57: Doc90. develop a multiple interface based fire fighting robot

REGULATED POWER SUPPLY

A variable regulated power supply, also called a variable bench

power supply, is one where you can continuously adjust the output

voltage to your requirements. Varying the output of the power

supply is the recommended way to test a project after having double

checked parts placement against circuit drawings and the parts

placement guide.

This type of regulation is ideal for having a simple variable bench

power supply. Actually this is quite important because one of the

first projects a hobbyist should undertake is the construction of a

variable regulated power supply. While a dedicated supply is quite

handy ,it's much handier to have a variable supply on hand,

especially for testing.

Mainly the 8051 controller needs 3.3 volt power supply. To use

these parts we need to build a regulated 3.3 volt source. Usually you

start with an unregulated power To make a 3.3 volt power supply, we

use a LM317 voltage regulator IC (Integrated Circuit). The IC is

shown below.

.

CIRCUIT FEATURES:-

56

Page 58: Doc90. develop a multiple interface based fire fighting robot

Vout range 1.25V - 37V

Vin - Vout difference 3V - 40V

Operation ambient temperature 0 - 125°C

Output Imax <1.5A

Minimum Load Currentmax 10mA

A current-limiting circuit constructed with LM317

Part pinout of LM317 showing its constant voltage reference

LM317 is the standard part number for an integrated three-terminal

adjustable linear voltage regulator. LM317 is a positive voltage regulator

supporting input voltage of 3V to 40V and output voltage between 1.25V

and 37V. A typical current rating is 1.5A although several lower and

higher current models are available. Variable output voltage is achieved

by using a potentiometer or a variable voltage from another source to

apply a control voltage to the control terminal. LM317 also has a built-in

current limiter to prevent the output current from exceeding the rated

current, and LM317 will automatically reduce its output current if an

overheat condition occurs under load. LM317 is manufactured by many

companies, including National Semiconductor, Fairchild Semiconductor,

and STMicroelectronics.

Although LM317 is an adjustable regulator, it is sometimes preferred for

high-precision fixed voltage applications instead of the similar LM78xx

devices because the LM317 is designed with superior output tolerances.

57

Page 59: Doc90. develop a multiple interface based fire fighting robot

For a fixed voltage application, the control pin will typically be biased

with a fixed resistor network, a Zener diode network, or a fixed control

voltage from another source. Manufacturer datasheets provide standard

configurations for achieving various design applications, including the use

of a pass transistor to achieve regulated output currents in excess of what

the LM317 alone can provide.

LM317 is available in a wide range of package forms for different

applications including heat sink mounting and surface-mount applications.

Common form factors for high-current applications include TO-220 and

TO-3. LM317 is capable of dissipating a large amount of heat at medium

to high current loads and the use of a heat sink is recommended to

maximize the lifespan and power-handling capability.

LM337 is the negative voltage complement to LM317 and the

specifications and function are essentially identical, except that the

regulator must receive a control voltage and act on an input voltage that

are below the ground reference point instead of above it.

BLOCK DIAGRAM:

58

Page 60: Doc90. develop a multiple interface based fire fighting robot

WE CAN EVEN USE A USB CONNECTOR FOR THE REQUIRED

SUPPLY INSTEAD OF THE ABOVE CIRCUIT

59

Page 61: Doc90. develop a multiple interface based fire fighting robot

CHAPTER 6

SOURCE CODE

60

Page 62: Doc90. develop a multiple interface based fire fighting robot

CHAPTER 7

KEIL SOFTWARE

Introduction to Micro vision Keil (IDE)

61

Page 63: Doc90. develop a multiple interface based fire fighting robot

Keil is a cross compiler. So first we have to understand the concept of

compilers and cross compilers. After then we shall learn how to work with

keil.

Concept of compiler: -

Compilers are programs used to convert a High Level Language to object

code. Desktop compilers produce an output object code for the underlying

microprocessor, but not for other microprocessors. I.E the programs

written in one of the HLL like ‘C’ will compile the code to run on the

system for a particular processor like x86 (underlying microprocessor in

the computer). For example compilers for Dos platform is different from

the Compilers for Unix platform

 

So if one wants to define a compiler then compiler is a program that

translates source code into object code. The compiler derives its name

from the way it works, looking at the entire piece of source code and

collecting and reorganizing the instruction. See there is a bit little

difference between compiler and an interpreter. Interpreter just interprets

whole program at a time while compiler analyzes and execute each line of

source code in succession, without looking at the entire program.

 

The advantage of interpreters is that they can execute a program

immediately. Secondly programs produced by compilers run much faster

than the same programs executed by an interpreter. However compilers

require some time before an executable program emerges. Now as

compilers translate source code into object code, which is unique for each

type of computer, many compilers are available for the same language.

 

Concept of cross compiler: -

62

Page 64: Doc90. develop a multiple interface based fire fighting robot

A cross compiler is similar to the compilers but we write a program for the

target processor (like 8051 and its derivatives) on the host processors (like

computer of x86)

It means being in one environment you are writing a code for another

environment is called cross development. And the compiler used for cross

development is called cross compiler

 

So the definition of cross compiler is a compiler that runs on one computer

but produces object code for a different type of computer. Cross compilers

are used to generate software that can run on computers with a new

architecture or on special-purpose devices that cannot host their own

compilers. Cross compilers are very popular for embedded development,

where the target probably couldn't run a compiler. Typically an embedded

platform has restricted RAM, no hard disk, and limited I/O capability.

Code can be edited and compiled on a fast host machine (such as a PC or

Unix workstation) and the resulting executable code can then be

downloaded to the target to be tested. Cross compilers are beneficial

whenever the host machine has more resources (memory, disk, I/O etc)

than the target. Keil C Compiler is one such compiler that supports a huge

number of host and target combinations. It supports as a target to 8 bit

microcontrollers like Atmel and Motorola etc.

 

Why do we need cross compiler?

There are several advantages of using cross compiler. Some of them are

described as follows

•         By using this compilers not only can development of complex

embedded systems be completed in a fraction of the time, but reliability is

improved, and maintenance is easy.

•         Knowledge of the processor instruction set is not required.

•         A rudimentary knowledge of the 8051’s memory architecture is

desirable but not necessary.

63

Page 65: Doc90. develop a multiple interface based fire fighting robot

•         Register allocation and addressing mode details are managed by the

compiler.

•         The ability to combine variable selection with specific operations

improves program readability.

•         Keywords and operational functions that more nearly resemble the

human thought process can be used.

•         Program development and debugging times are dramatically reduced

when compared to assembly language programming.

•         The library files that are supplied provide many standard routines (such

as formatted output, data conversions, and floating-point arithmetic) that

may be incorporated into your application.

•         Existing routine can be reused in new programs by utilizing the

modular programming techniques available with C.

•         The C language is very portable and very popular. C compilers are

available for almost all target systems. Existing software investments can

be quickly and easily converted from or adapted to other processors or

environments.

 

Now after going through the concept of compiler and cross compilers lets

we start with Keil C cross compiler.

 

Keil C cross compiler: -

Keil is a German based Software development company. It provides

several development tools like

•         IDE (Integrated Development environment)

•         Project Manager

64

Page 66: Doc90. develop a multiple interface based fire fighting robot

•         Simulator

•         Debugger

•         C Cross Compiler, Cross Assembler, Locator/Linker

Keil Software provides you with software development tools for the 8051

microcontrollers. With these tools, you can generate embedded

applications for the multitude of 8051 derivatives. Keil provides following

tools for 8051 development

1.     8051 Optimizing C Cross Compiler,

2.     Macro Assembler,

3.    8051 Utilities (linker, object file converter, library manager),

4.     Source-Level Debugger/Simulator,

5.     µVision for Windows Integrated Development Environment.

The keil 8051 tool kit includes three main tools, assembler, compiler and

linker.

An assembler is used to assemble your 8051 assembly program

A compiler is used to compile your C source code into an object file

A linker is used to create an absolute object module suitable for your in-

circuit emulator.

 

8051 project development cycle: -

These are the steps to develop 8051 project using keil

1. Create source files in C or assembly.

2. Compile or assemble source files.

3. Correct errors in source files.

4. Link object files from compiler and assembler.

5. Test linked application.

65

Page 67: Doc90. develop a multiple interface based fire fighting robot

CHAPTER 8

CONCLUSION

66

Page 68: Doc90. develop a multiple interface based fire fighting robot

CONCLUSSION

The project “DEVELOP A MULTIPLE INTERFACE BASED

FIRE FIGHTING ROBOT” has been successfully designed and

tested. It has been developed by integrating features of all the

hardware components used. Presence of every module has been

reasoned out and placed carefully thus contributing to the best

working of the unit.

Secondly, using highly advanced IC’s and with the help of growing

technology the project has been successfully implemented.

67

Page 69: Doc90. develop a multiple interface based fire fighting robot

CHAPTER 9

BIBLIOGRAPHY

68

Page 70: Doc90. develop a multiple interface based fire fighting robot

BIBLIOGRAPHY

The 8051 Micro controller and Embedded Systems

-Muhammad Ali Mazidi

-Janice Gillispie Mazidi

The 8051 Micro controller Architecture, Programming & Applications

-Kenneth J.Ayala

Fundamentals Of Micro processors and Micro computers

-B.Ram

Micro processor Architecture, Programming & Applications

-Ramesh S.Gaonkar

Electronic Components

-D.V.Prasad

Wireless Communications

- Theodore S. Rappaport

Mobile Tele Communications

- William C.Y. Lee

References on the Web:

www.national.com

www.nxp.com

www.8052.com

www.microsoftsearch.com

www.geocities.com

69

Page 71: Doc90. develop a multiple interface based fire fighting robot

70