73
CELLPHONE OPERATED ROBOT A Project Report Submitted by B.VINOD KUMAR (2210409106) G.PRATAP VAMSI (2210409143) At ECIL-ECIT (Electronic Corporation of India Limited) Under the esteemed guidance of Mr.P.B.RAMAKRISNA (SDGM, CED) ELECTRONICS AND COMMUNICATIONS DEPARTMENT At GITAM UNIVERSITY DECLARATION I hereby declare that the project entitled “CELLPHONE OPERATED ROBOT” submitted for the ELECTRONICS AND COMMUNICATION DEPARTMENT. This dissertation is our original work and the project has not formed the basis for the award of any degree, associate ship, fellowship or any other similar titles and no part of it has been published or sent for publication at the time of submission. By B.VINOD KUMAR (2210409106) G.PRATAP VAMSI (2210409143)

Cellphone Operated Robotcv

Embed Size (px)

Citation preview

Page 1: Cellphone Operated Robotcv

CELLPHONE OPERATED ROBOTA Project Report

Submitted by

B.VINOD KUMAR (2210409106)

G.PRATAP VAMSI (2210409143)

At

ECIL-ECIT

(Electronic Corporation of India Limited)

Under the esteemed guidance of

Mr.P.B.RAMAKRISNA (SDGM, CED)

ELECTRONICS AND COMMUNICATIONS DEPARTMENT

At

GITAM UNIVERSITY

DECLARATION

I hereby declare that the project entitled “CELLPHONE OPERATED ROBOT” submitted for the ELECTRONICS AND COMMUNICATION DEPARTMENT. This dissertation is our original work and the project has not formed the basis for the award of any degree, associate ship, fellowship or any other similar titles and no part of it has been published or sent for publication at the time of submission.

By

B.VINOD KUMAR (2210409106)

G.PRATAP VAMSI (2210409143)

Page 2: Cellphone Operated Robotcv

ECIL PROFILE

ECIL was setup under the Department of Atomic Energy on 11th April, 1967 with a view

to generate a strong indigenous capability in the field of professional grade electronics. The

initial accent was on total self-reliance and ECIL was engaged in the design development,

Manufacture and Marketing of several products with emphasis on three technology lines viz.

Computers, Control Systems and Communications. Over the years, ECIL pioneered the

development of various complex electronics products without any external technology help and

scored several ‘firsts’ in this fields prominent among them being country’s

First Digital Computer

First Solid State TV

First Control & Instrumentation of Nuclear Power Plants

First Earth Station Antenna

First Computerized Operator Information System

First radiation Monitoring & Detection System

First Automatic Message Switching System

First Operation & Maintenance Center for E-108 Exchange

First Programmable Logic Controller

First Solid state Cockpit Voice Recorder

First Electronics Voting Machines

The company played a very significant role in the training and growth of high caliber

technical and managerial man power especially in the fields of Computer and Information

Technology. Though the initial thrust was on meeting the Control & Instrumentation

requirements of the Nuclear Power Program, the expand scope of self-reliance pursued by ECIL

enabled the company to develop various products to cater to the needs of Defense, Civil

Aviation, Information & Broadcasting, Telecommunications, Insurance, banking, Police and

Para-Military Forces, Oil & Gas, Power, Space Education, Health, Agriculture Steel and Coal

Sectors and various user departments in the Government domain. ECIL thus evolved as multi-

product company serving multiple sectors of Indian economy with emphasis on import of

country substitution and development of products & services that are of economic and strategic

significance to the country.

Page 3: Cellphone Operated Robotcv

Established: 1967

Location: Hyderabad, India

In addition to its primary focus on chosen areas like Strategic Electronics and IT, the

Company took upon itself certain areas with a view to sub serve certain obligations of

enterprises. Mostly, they are confined to the societal and rural sectors focusing on the health care,

education, agriculture and such related areas.

ABSTRACT

Most of Artificial Intelligence will eventually lead to robotics. Most neural networking,

natural language processing, image recognition, speech recognition/synthesis research aims at

eventually incorporating their technology into the epitome of robotics – the creation of a fully

humanoid robot.

The field of robotics has been around nearly as long as Artificial Intelligence – but the

field has made little progress. This is only natural, since the field not only attempts to conquer

intelligence, but also the body that embodies it – a formidable task. Robotics, though, is not just

about humanoid robots; but also about their commercial applications in manufacturing, safety

and hundreds of other fields.

It is only relatively recently that robots have started to employ a degree of Artificial

Intelligence in their work – many robots required human operators, or precise guidance

throughout their missions. Slowly, robots are becoming more and more autonomous. Robotics is

an absolutely fascinating field that interests most people. Robot is a system that contains sensors,

control systems, manipulators, power supplies and software all working together to perform a

task. Robot should have Sensing, Movement, Energy and Intelligence characteristics.

This project deals with one of the application of robotics. In this project one moving

object is developed such that it is moved as per commands given by master through Mobile

phone and that command is received by mobile phone which is placed on the robot and give

information to the DTMF IC which is connected to the microcontroller.

This project is equipped with DC motor GSM mobile phone, DTMF IC, Micro controller

along with the Power supply unit. Robot finds it applications in the real time in Defense

Page 4: Cellphone Operated Robotcv

applications, Satellite system, Flight tracking system, car race and Cerebella control.

TOPICS INDEX

1. INTRODUCTION

1.1. How to build Cell phone Operated Robot

1.2. Block Diagram

2. INTRODUCTION TO MICROCONTROLLER

2.1. Major features of Microcontrollers

2.1.1. Why AT89S52?

2.2. AT89S52 Microcontroller Architecture

2.3. Pin Description

2.3.1. AT89S52 Oscillator and Clock

2.4. Special Function Registers

2.4.1. SFR Types

2.4.2. SFR Descriptions

2.5. Conclusion

3. LIQUID CRYSTAL DISPLAY

3.1. Specifications of LCD

3.1.1.16*2 Alphanumeric LCD module features

3.2. Types of LCD’s

3.3. Interfacing LCD to 8051 Microcontroller

3.4. Schematic Diagram of LCD

Page 5: Cellphone Operated Robotcv

3.5. Circuit Description

4. INTRODUCTION TO EMBEDDED SYSTEMS

4.1. Introduction

4.1.1. Definition of Embedded system

4.1.2. Features of Embedded system

4.1.3. Characteristics of Embedded system

4.1.4. Overview of Embedded system Architecture

4.1.5. Applications of Embedded system

4.2. Types of Embedded system

4.2.1. Standalone Embedded system

4.2.2. Real time embedded system

4.2.3. Networked information appliances

4.2.4. Mobile devices

4.3. Programming Language

5. HARDWARE DESCRIPTION

5.1. Schematic Block diagram

5.2. DTMF (Dual Tone Multi frequency)

5.2.1. Introduction

5.2.2. HT917D/B features

5.2.3. Pin Description

5.2.4. Circuit Diagram

5.3. Motor Driver (L293D)

5.3.1. Introduction

5.3.2. Pin Description

5.3.3. Circuit description

5.4. DC Motor

5.4.1. DC motor features

Page 6: Cellphone Operated Robotcv

6. REGULATED POWER SUPPLY

6.1. Introduction

6.1.1. Transformer

6.1.2. Rectifier

6.1.3. Filter

6.1.4. Regulator

7. KEIL SOFTWARE

7.1. Introduction

7.1.1. Keil Software Program Procedure

8. FUTURE SCOPE

9. CONCLUSION

10. REFERENCES

Page 7: Cellphone Operated Robotcv

FIGURES INDEX

2.1. Functional Block Diagram of AT89S52

2.2. Pin Diagram of AT89S52

2.3. Oscillator & Timing Circuit

2.4. Special Function Register Address Range

2.5.16-bit Registers

2.6. Special Function Registers

2.6.1. PCON Register

2.6.2. TCON Register

2.6.3. TMOD Register

2.6.4. SCON Register

2.6.5. IE Register

2.6.6. IP Register

3.1. Interfacing LCD to 8051 Microcontroller

3.2. Schematic Diagram of LCD

3.3.2*16 Character LCD with Backlighting

3.4. Typical pin out on a display with 1*16 pin connector

3.5. Circuit Diagram of LCD

4.1. Overview of an embedded system Architecture

4.2. Basic form of ALP

5.1. Schematic Block Diagram

5.2. General Block Diagram

5.3. Pin Diagram of HT9170D/B

Page 8: Cellphone Operated Robotcv

5.4. Circuit diagram of HT9170d/B

5.5. Pin Diagram of L293D

5.6. Robot Directions

5.7. Circuit Diagram of L293D

5.8. Figure of DC motor

6.1. Circuit Diagram of Power Supply

6.2. Electrical Transformer

6.3. Bridge Rectifier Circuit

6.4. Positive half cycle operation

6.5. Negative half cycle operation

6.6. Three Terminal Voltage Regulator 78xx

Page 9: Cellphone Operated Robotcv

TABLE INDEX

2.1. Port pins and their alternate functions

2.2. SFR’s

2.2.1. TCON Register

2.2.2. TMOD Register

2.2.3. SCON Register

3.1. Pin Description of LCD

5.1. Pin Description of HT9170D/B

5.2. Pin Description of L293D

1. INTRODUCTION

Page 10: Cellphone Operated Robotcv

In this project the robot, is controlled by a mobile phone that makes call to the mobile phone attached to the robot in the course of the call, if any button is pressed control corresponding to the button pressed is heard at the other end of the call. This tone is called dual tone multi frequency tome (DTMF) robot receives this DTMF tone with the help of phone stacked in the robot The received tone is processed by the atmega16 microcontroller with the help of DTMF decoder MT8870 the decoder decodes the DTMF tone in to its equivalent binary digit and this binary number is send to the microcontroller, the microcontroller is preprogrammed to take a decision for any give input and outputs its decision to motor drivers in order to drive the motors for forward or backward motion or a turn. The mobile that makes a call to the mobile phone stacked in the robot acts as a remote. So this simple robotic project does not require the construction of receiver and transmitter units. DTMF signaling is used for telephone signaling over the line in the voice frequency band to the call switching center. The version of DTMF used for telephone dialing is known as touch tone. DTMF assigns a specific frequency (consisting of two separate tones) to each key s that it can easily be identified by the electronic circuit. The signal generated by the DTMF encoder is the direct al-gebric submission, in real time of the amplitudes of two sine (cosine) waves of different frequencies, i.e. ,pressing 5 will send a tone made by adding 1336hz and 770hz to the other end of the mobile.

1.1.How to build cell phone operated Robot ?

Robot, is controlled by a mobile phone that makes call to the mobile phone attached to the robot in the course of the call, if any button is pressed control corresponding to the button pressed is heard at the other end of the call. This tone is called dual tone multi frequency tome (DTMF) robot receives this DTMF tone with the help of phone stacked in the robot,The received tone is processed by the Arduino with the help of DTMF decoder HT7190D the

Page 11: Cellphone Operated Robotcv

decoder decodes the DTMF tone in to its equivalent binary digit and this binary number is send to the Arduino, the Arduino is preprogrammed to take a decision for any give input and outputs its decision to motor drivers in order to drive the motors for forward or backward motion or a turn. The mobile that makes a call to the mobile phone stacked in the robot acts as a remote. So you do not require the construction of receiver and transmitter units.DTMF signaling is used for telephone signaling over the line in the voice frequency band to the call switching center. The version of DTMF used for telephone dialing isknown as touch tone. DTMF assigns a specific frequency to each keys that it can easily be identified by the electronic circuit. The signal generated by the DTMF encoder is the direct al-gebric submission, in real time of the amplitudes of two sine waves of different frequencies, i.e., pressing 5 will send a tone made by adding 1336 Hz and 770 Hz to the other end of the mobile.

This output is connected to the second port of the Microcontroller. With the help of port3 special function pins, to which motor driver L293D is connected will drive the motors and move the Robot in indicated direction.

1.2. BLOCK DIAGRAM

Power Supply:

The power supply unit is used to provide a constant 5V supply to different IC’s this is a

standard circuits using external 12VDC adapter and fixed 3-pin voltage regulator. Diode is added

in series to avoid Reverse voltage.

Micro controller:

The 89C51 is a low cost Micro controller from either ATMEL or PHILIPS. It has a 40-pin

configuration and other components are interfaced to its ports. The entire functionality of the

CLIP device is under the control of Micro controller. The Micro controller takes input from the

external sources and routes them to the appropriate devices as programmed in it to Controls the

direction of the robot.

GSM:

GSM (Global System for Mobile communication) is a digital mobile telephone system

that is widely used in Europe and other parts of the world. GSM uses a variation of time division

multiple access (TDMA) and is the most widely used of the three digital wireless telephone

technologies (TDMA, GSM, and CDMA). GSM digitizes and compresses data, then sends it

Page 12: Cellphone Operated Robotcv

down a channel with two other streams of user data, each in its own time slot. It operates at

either the 900 MHz or 1800 MHz frequency band.

DTMF transceiver:

The MT8888C/C-1 is a monolithic DTMF transceiver with call progress filter. The

transceiver consists of transmitter and receiver. The DTMF signals are transmitted through

transmitter over the telephone lines and can be received and decoded using a DTMF

receiver/decoder IC’s.

Motors:

By far the vast majority of robots use electric motors, of which there are several kinds.

DC motors, which are familiar to many people, spin rapidly when electric current is passed

through them. They will spin backwards if the current is made to flow in the opposite direction.

2. INTRODUCTION TO MICRO CONTROLLER

Introduction to Microcontroller 89S52:

A Micro controller consists of a powerful CPU tightly coupled with memory, various I/O

Page 13: Cellphone Operated Robotcv

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.

Criteria for Choosing Microcontroller:

The first and foremost criterion for choosing a Microcontroller is that if Microcontroller

based project we must first see whether an 8-bit, 16-bit or 32-bit.

Microcontroller can best handle the computing needs of the task most effectively.

Among other consideration in this category are:

• Cost: The cost of the part, Microcontrollers are usually very cheap, sometimes even less

than $1 each.

• Speed: The frequency clock often stated in megahertz or gigahertz. Microcontrollers are

typically slow, less than 20MHz.

• Bits: This usually means the number of bits that can be processed at one time by each

instruction. Microcontrollers are almost always 8 bit or maybe 16 bit devices.

The second criterion in choosing a Microcontroller is how easy it is to develop products

around it. Key considerations include the availability of an assembler, debugger, a code efficient

C language complier, emulator, technical support and both in hose and outside expertise.

The third criterion in choosing Microcontrollers is its ready availability in needed qualities

both now and in future. For some designers this is even more important that first two criteria.

Currently, of leading 8 bit Microcontrollers, the MS-51 family has the largest number of

diversified suppliers. By Suppliers meant a producer besides the originator of Microcontroller in

the case of the MS- 51, which was originator by INTEL; several companies are also currently

producing the MS-51: INTEL, ATMEL.

2.1. THE MAJOR FEATURES OF MICRO CONTROLLER:

Page 14: Cellphone Operated Robotcv

• Compatible with MCS-51 Products

• 8K Bytes of In-System Programmable (ISP) Flash Memory

• Endurance: 10,000 Write/Erase Cycles

• 4.0V to 5.5V Operating Range

• Fully Static Operation: 0 Hz to 33 MHz

• Three-level Program Memory Lock

• 256 x 8-bit Internal RAM

• 32 Programmable I/O Lines

• Three 16-bit Timer/Counters

• Eight Interrupt Sources

• Full Duplex UART Serial Channel

• Low-power Idle and Power-down Modes

• Interrupt Recovery from Power-down Mode

• Fast Programming Time

• Flexible ISP Programming (Byte and Page Mode)

2.1.1 Why AT89S52?

The system requirements and control specifications clearly rule out the use of 16, 32 or

64 bit micro controllers or microprocessors. Systems using these may be earlier to implement

due to large number of internal features. They are also faster and more reliable but, 8-bit micro

controller satisfactorily serves the above application. Using an inexpensive 8-bit Microcontroller

will doom the 32-bit product failure in any competitive market place.

Coming to the question of why to use AT89S52 of all the 8-bit microcontroller available

in the market the main answer would be because it 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

Page 15: Cellphone Operated Robotcv

ATMEL is the leader in flash technology in today’s market place and hence using AT 89S52 is

the optimal solution.

2.2 AT89S52 MICRO CONTROLLER ARCHITECHTURE:

The 89S52 architecture consists of these specific features:

FIGURE 2.1 FUNCTIONAL BLOCK DIAGRAM OF AT89S52

Page 16: Cellphone Operated Robotcv

2.3 PIN DESCRIPTION:

FIGURE 2.2: PIN DIAGRAM OF AT89S52

• VCC: Supply voltage.

• GND: Ground.

• Port 0:

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 one’s are 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. 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. Port 2 also receives the high-order address bits and

some control signals during Flash programming and verification.

• 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. Port 3 also receives some control signals for Flash

Page 17: Cellphone Operated Robotcv

programming and verification

Port 3 also serves the functions of various special features of the AT89S52.as listed below

TABLE 2.1: PORT3 PINS AND THEIR ALTERNATE FUNCTIONS

• RST(Reset):

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.

Setting the ALE-disable bit has no effect if the microcontroller is in external execution mode.

• PSEN:

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

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.

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:

Page 18: Cellphone Operated Robotcv

It is the Output from the inverting oscillator amplifier.

2.3.1 AT89S52 Oscillator and Clock:

The heart of the 89S52 circuitry that generates the clock pulses by which all internal

operations are synchronized. Pins XTAL1 and XTAL2 is provided for connecting a resonant

network to form an oscillator. Typically a quartz crystal and capacitors are employed. The crystal

frequency is the basic internal clock frequency of the microcontroller. The manufacturers make

89S52 designs that run at specific minimum and maximum frequencies typically 1 to 16 MHz’s

XTAL1 and XTAL2 are the input and output, respectively, of an inverting amplifier which can be

configured for use as an on-chip oscillator. 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.

.

FIGURE 2.3: OSILLATOR AND TIMING CIRCUIT

2.4 SPECIAL FUNCTION REGISTER’S:

The 8051 is a flexible microcontroller with a relatively large number of modes of

operations. Your program may inspect and/or change the operating mode of the 8051 by

manipulating the values of the 8051's Special Function Registers (SFRs).

SFRs are accessed as if they were normal Internal RAM. The only difference is that

Internal RAM is from address 00h through 7Fh whereas SFR registers exist in the address range

of 80h through FFh.Each SFR has an address (80h through FFh) and a name. The following chart

provides a graphical presentation of the 8051's SFRs, their names, and their address.

FIG 2.4: SPECIAL FUNCTION REGISTERS ADDRESS RANGE

As you can see, although the address range of 80h through FFh offers 128 possible

addresses, there are only 21 SFRs in a standard 8051. All other addresses in the SFR range (80h

through FFh) are considered invalid. Writing to or reading from these registers may produce

Page 19: Cellphone Operated Robotcv

undefined values or behaviour.

Programming Tip: It is recommended that you not read or write to SFR addresses that have not

been assigned to an SFR. Doing so may provoke undefined behaviour and may cause your

program to be incompatible with other 8051-derivatives that use the given SFR for some other

purpose.

2.4.1. SFR Types:

As mentioned in the chart itself, the SFRs that have a blue background are SFRs

related to the I/O ports. The 8051 has four I/O ports of 8 bits, for a total of 32 I/O lines. Whether

a given I/O line is high or low and the value read from the line are controlled by the SFRs in

green. The SFRs with yellow background are SFRs which in some way control the operation or

the configuration of some aspect of the 8051. For example, TCON controls the timers, SCON

controls the serial port.

The remaining SFRs, with green backgrounds, are "other SFRs." These SFRs can be

thought of as auxiliary SFRs in the sense that they don't directly configure the 8051 but

obviously the 8051 cannot operate without them. For example, once the serial port has been

configured using SCON, the program may read or write to the serial port using the SBUF

register.

Programming Tip: The SFRs whose names appear in red in the chart above are SFRs that may

be accessed via bit operations (i.e., using the SETB and CLR instructions). The other SFRs

cannot be accessed using bit operations. As you can see, all SFRs that whose addresses are

divisible by 8 can be accessed with bit operations.

2.4.2. SFR Descriptions:

This section will endeavour to quickly overview each of the standard SFRs found in the

above SFR chart map. It is not the intention of this section to fully explain the functionality of

each SFR--this information will be covered in separate chapters of the tutorial. This section is to

just give you a general idea of what each SFR does.

P0 (Port 0, Address 80h, Bit-Addressable): This is input/output port 0. Each bit of this SFR

corresponds to one of the pins on the microcontroller. For example, bit 0 of port 0 is pin P0.0, bit

Page 20: Cellphone Operated Robotcv

7 is pin P0.7. Writing a value of 1 to a bit of this SFR will send a high level on the corresponding

I/O pin whereas a value of 0 will bring it to a low level.

Programming Tip: While the 8051 has four I/O port (P0, P1, P2, and P3), if your hardware uses

external RAM or external code memory (i.e., your program is stored in an external ROM or

EPROM chip or if you are using external RAM chips) you may not use P0 or P2. This is because

the 8051 uses ports P0 and P2 to address the external memory. Thus if you are using external

RAM or code memory you may only use ports P1 and P3 for your own use.

SP (Stack Pointer, Address 81h): This is the stack pointer of the microcontroller. This SFR

indicates where the next value to be taken from the stack will be read from in Internal RAM. If

you push a value onto the stack, the value will be written to the address of SP + 1. That is to say,

if SP holds the value 07h, a PUSH instruction will push the value onto the stack at address 08h.

This SFR is modified by all instructions which modify the stack, such as PUSH, POP, and

LCALL, RET, RETI, and whenever interrupts are provoked by the microcontroller.

Programming Tip: The SP SFR, on start-up, is initialized to 07h. This means the stack will start

at 08h and start expanding upward in internal RAM. Since alternate register banks 1, 2, and 3 as

well as the user bit variables occupy internal RAM from addresses 08h through 2Fh, it is

necessary to initialize SP in your program to some other value if you will be using the alternate

register banks and/or bit memory. It's not a bad idea to initialize SP to 2Fh as the first instruction

of every one of your programs unless you are 100% sure you will not be using the register banks

and bit variables.

DPL/DPH (Data Pointer Low/High, Addresses 82h/83h): The SFRs DPL and DPH work

together to represent a 16-bit value called the Data Pointer. The data pointer is used in operations

regarding external RAM and some instructions involving code memory. Since it is an unsigned

two-byte integer value, it can represent values from 0000h to FFFFh (0 through 65,535 decimal).

Programming Tip: DPTR is really DPH and DPL taken together as a 16-bit value. In reality,

you almost always have to deal with DPTR one byte at a time. For example, to push DPTR onto

the stack you must first push DPL and then DPH. You can't simply plush DPTR onto the stack.

Additionally, there is an instruction to "increment DPTR." When you execute this instruction, the

two bytes are operated upon as a 16-bit value. However, there is no instruction those decrements

DPTR. If you wish to decrement the value of DPTR, you must write your own code to do so.

Page 21: Cellphone Operated Robotcv

DPL

DPH

DPTR

PC

PC (Program counter)

FIG 2.5: 16BIT REGISTERS

PCON (Power Control, Addresses 87h): The Power Control SFR is used to control the 8051's

power control modes. Certain operation modes of the 8051 allow the 8051 to go into a type of

"sleep" mode which requires much less power. These modes of operation are controlled through

PCON. Additionally, one of the bits in PCON is used to double the effective baud rate of the

8051's serial port.

SMOD ------- -------- -------- GF1 GF0 PD IDL

FIG: 2.6.1. PCON REGISTER

TCON (Timer Control, Addresses 88h, Bit-Addressable): The Timer Control SFR is used to

configure and modify the way in which the 8051's two timers operate. This SFR controls whether

each of the two timers is running or stopped and contains a flag to indicate that each timer has

overflowed. Additionally, some non-timer related bits are located in the TCON SFR. These bits

are used to configure the way in which the external interrupts are activated and also contain the

external interrupt flags which are set when an external interrupt has occurred.

Page 22: Cellphone Operated Robotcv

Bit Addressable

TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0

FIG: 2.6.2. TCON REGISTER

The lower 4 bits

Are set aside for

Controlling the

Interrupts

Interrupt bits.

The upper four

Bits are used to

Store the TF and TR bits of both Timer 0 and 1.

TF1 Timer1 overflow flag. Set by hardware when the Timer/Counter 1 overflows.

Cleared by hardware as processor vectors to the interrupt service routine.

TR1 Timer 1 run control bit. Set/cleared by software to turn Timer/Counter 1

ON/OFF.

TF0 Timer0 overflow flag. Set by hardware when the Timer/Counter 0

overflows. Cleared by hardware as processor vectors to the service routine

Page 23: Cellphone Operated Robotcv

TR0 Timer 0 run control bit. Set/cleared by software to turn Timer/Counter 0

ON/OFF.

IE1 External Interrupt 1 edge flag. Set by hardware when External interrupt

edge is detected. Cleared by hardware when interrupt is processed.

IT1 Interrupt 1 type control bit. Set/cleared by software to specify falling

edge/low level triggered External Interrupt.

IE0 External Interrupt 0 edge flag. Set by hardware when External Interrupt

edge is detected. Cleared by hardware when interrupt is processed.

IT0 Interrupt 0-type control bit. Set/cleared by software to specify falling

edge/low level triggered External Interrupt.

TABLE: 2.2.1.TCON REGISTER

TMOD (Timer Mode, Addresses 89h): The Timer Mode SFR is used to configure the mode of

operation of each of the two timers. Using this SFR your program may configure each timer to

be a 16-bit timer, an 8-bit auto-reload timer, a 13-bit timer, or two separate timers. Additionally,

you may configure the timers to only count when an external pin is activated or to count "events"

that are indicated on an external pin.

Not Bit Addressable.

GATE C/T M1 M0 GATE C/T M1 M0

Timer 1 Timer 0

FIG: 2.6.3. TMOD REGISTER

GATE When TRx (in TCON) is set and GATE=1, Timer/Counter will run only while INTx

pin is high (hardware control). When GATE=0, Timer/Counter will run only while

TRx=1 (software control).

Page 24: Cellphone Operated Robotcv

C/T Timer or Counter selector. Cleared for Timer operation (input from internal system

clock). Set for Counter operation (input from TX input pin).

M1 Mode selector bit.

M0 Mode selector bit.

TABLE: 2.2.2.TMOD REGISTER

M1 M0 Mode Operating Mode

0 0 0 13-bit Timer (8048 compatible) (TH1).

0 1 1 16-bit Timer/Counter.

1 0 2 8-bit Auto-Reload Timer/Counter (TL1).

Reloaded from TH1 at overflow.

1 1 3 timer 1 halted. Retains count.

1 1 3 (Timer 1) Timer/Counter 1 stopped.

TL0/TH0 (Timer 0 Low/High, Addresses 8Ah/8Ch): These two SFRs, taken together,

represent timer 0. Their exact behaviour depends on how the timer is configured in the TMOD

SFR; however, these timers always count up. What is configurable is how and when they

increment in value.

TL1/TH1 (Timer 1 Low/High, Addresses 8Bh/8Dh): These two SFRs, taken together,

represent timer 1. Their exact behaviour depends on how the timer is configured in the TMOD

SFR; however, these timers always count up. What is configurable is how and when they

increment in value.

P1 (Port 1, Address 90h, and Bit-Addressable): This is input/output port 1. Each bit of this

SFR corresponds to one of the pins on the microcontroller. For example, bit 0 of port 1 is pin

P1.0, bit 7 is pin P1.7. Writing a value of 1 to a bit of this SFR will send a high level on the

corresponding I/O pin whereas a value of 0 will bring it to a low level.

SCON (Serial Control, Addresses 98h, Bit-Addressable):

Page 25: Cellphone Operated Robotcv

The Serial Control SFR is used to configure the behaviour of the 8051's on-board serial port.

This SFR controls the baud rate of the serial port, whether the serial port is activated to receive

data, and also contains flags that are set when a byte is successfully sent or received.

Programming Tip:

To use the 8051's on-board serial port, it is generally necessary to initialize the following SFRs:

SCON, TCON, and TMOD. This is because SCON controls the serial port. However, in most

cases the program will wish to use one of the timers to establish the serial port's baud rate. In this

case, it is necessary to configure timer 1 by initializing TCON and TMOD.

SM0 SM1 SM2 REN TB8 RB8 TI RI

FIG: 2.6.4.SCON REGISTER

Bit Name Bit Address Explanation of function

7 SM0 9FH Serial port mode bit 0.

6 SM1 9EH Serial port mode bit 1.

5 SM2 9DH Multiprocessor communications Enable (explained later).

4 REN9CH

Receiver Enable. This bit must be set in order to receive characters.

3 TB8 9BH Transmit bit 8. The 9th bit to transmit in mode 2 and 3.

2 RB8 9AH Receive bit 8. The 9th bit received in mode 2 and 3.

1 TI99H

Transmit flag. Set when a byte has been completely transmitted.

0 RI 98H Receive flag. Set when a byte has been completely received.

TABLE 2.2.3: SCON REGISTER

Mode0: transmitted/received (LSB first). The baud rate is fixed at 1/12 the oscillator frequency.

Mode 1: 10 bits are transmitted (through TxD) or received (through RxD): a start bit (0), 8 data

bits (LSB first), and a stop bit (1). On receive; the stop bit goes into RB8 in Special Function

Register SCON. The baud rate is variable.

Mode 2: 11 bits are transmitted (through TxD) or received (through RxD): start bit (0), 8 data

Page 26: Cellphone Operated Robotcv

bits (LSB first), a programmable 9th data bit, and a stop bit (1). On Transmit, the 9th data bit

(TB8 in SCON) can be assigned the value of 0 or 1. Or, for example, the parity bit (P, in the

PSW) could be moved into TB8. On receive; the 9th data bit goes into RB8 in Special Function

Register SCON, while the stop bit is ignored. The baud rate is programmable to either 1/32 or

1/64 the oscillator frequency.

Mode 3: 11 bits are transmitted (through TxD) or received (through RxD): a start bit (0), 8 data

bits (LSB first), a programmable 9th data bit, and a stop bit (1). In fact, Mode 3 is the same as

Mode 2 in all respects except baud rate. The baud rate in Mode 3 is variable. In all four modes,

transmission is initiated by any instruction that uses SBUF as a destination register. Reception is

initiated in Mode 0 by the condition RI = 0 and REN = 1. Reception is initiated in the other

modes by the incoming start bit if REN = 1.

SM2:

Enables the multiprocessor communication feature in Modes 2 and 3. In Mode 2 or 3, if SM2 is

set to 1, then Rl will not be activated if the received 9th data bit (RB8) is 0. In Mode 1, if SM2=1

then RI will not be activated if a valid stop bit was not received. In Mode 0, SM2 should be 0.

REN: Enables serial reception. Set by software to enable reception. Clear by software to disable

reception.

TB8: The 9th data bit that will be transmitted in Modes 2 and 3. Set or clear by software as

desired.

RB8: In Modes 2 and 3, is the 9th data bit that was received. In Mode 1, it SM2=0, RB8 is the

stop bit that was received. In Mode 0, RB8 is not used.

TI (Transmit Interrupt): This is an extremely important flag bit in the SCON register. When

the 8051 finishes the transfer of the 8-bit character it raises the TI flag to indicate that it is ready

to transfer another byte. The TI bit is raised at the beginning of the stop bit.

RI (Receive Interrupt): This is an extremely important flag bit in the SCON register. When the

8051 receives data serially via RxD, it gets rid of the start and stop bits and places the byte in the

SBUF register. Then it raises the RI flag bit to indicate that a byte has been received and could be

picked up before it is lost.

SBUF (Serial Control, Addresses 99h): The Serial Buffer SFR is used to send and receive data

via the on-board serial port. Any value written to SBUF will be sent out the serial port's TXD

pin. Likewise, any value which the 8051 receives via the serial port's RXD pin will be delivered

Page 27: Cellphone Operated Robotcv

to the user program via SBUF. In other words, SBUF serves as the output port when written to

and as an input port when read from.

P2 (Port 2, Address A0h, Bit-Addressable): This is input/output port 2. Each bit of this SFR

corresponds to one of the pins on the microcontroller. For example, bit 0 of port 2 is pin P2.0, bit

7 is pin P2.7. Writing a value of 1 to a bit of this SFR will send a high level on the corresponding

I/O pin whereas a value of 0 will bring it to a low level.

Programming Tip: While the 8051 has four I/O port (P0, P1, P2, and P3), if your hardware uses

external RAM or external code memory (i.e., your program is stored in an external ROM or

EPROM chip or if you are using external RAM chips) you may not use P0 or P2. This is because

the 8051 uses ports P0 and P2 to address the external memory. Thus if you are using external

RAM or code memory you may only use ports P1 and P3 for your own use.

IE (Interrupt Enable, Addresses A8h): The Interrupt Enable SFR is used to enable and disable

specific interrupts. The low 7 bits of the SFR are used to enable/disable the specific interrupts,

where as the highest bit is used to enable or disable ALL interrupts. Thus, if the high bit of IE is

0 all interrupts are disabled regardless of whether an individual interrupt is enabled by setting a

lower bit.

EA ---------- ET2 ES ET1 EX1 ET0 EX0

FIG: 2.6.5.IE REGISTER

P3 (Port 3, Address B0h, Bit-Addressable): This is input/output port 3. Each bit of this SFR

corresponds to one of the pins on the microcontroller. For example, bit 0 of port 3 is pin P3.0, bit

7 is pin P3.7. Writing a value of 1 to a bit of this SFR will send a high level on the corresponding

I/O pin whereas a value of 0 will bring it to a low level.

IP (Interrupt Priority, Addresses B8h, Bit-Addressable): The Interrupt Priority SFR is used to

specify the relative priority of each interrupt. On the 8051, an interrupt may either be of low (0)

priority or high (1) priority. An interrupt may only interrupt interrupts of lower priority. For

example, if we configure the 8051 so that all interrupts are of low priority except the serial

interrupt, the serial interrupt will always be able to interrupt the system, even if another interrupt

is currently executing. However, if a serial interrupt is executing no other interrupt will be able to

interrupt the serial interrupt routine since the serial interrupt routine has the highest priority.

--------- -------- PT2 PS PT1 PX1 PT0 PX0

FIG: 2.6.6.IP REGISTER

Page 28: Cellphone Operated Robotcv

ACC (Accumulator, Addresses E0h, Bit-Addressable): The Accumulator is one of the most-

used SFRs on the 8051 since it is involved in so many instructions. The Accumulator resides as

an SFR at E0h, which means the instruction MOV A,#20h is really the same as MOV E0h,#20h.

However, it is a good idea to use the first method since it only requires two bytes whereas the

second option requires three bytes.

B (B Register, Addresses F0h, Bit-Addressable): The "B" register is used in two instructions:

the multiply and divide operations. The B register is also commonly used by programmers as an

auxiliary register to temporarily store values.

PSW (Program Status Word, Addresses D0h, Bit-Addressable): The Program Status Word is

used to store a number of important bits that are set and cleared by 8051 instructions. The PSW

SFR contains the carry flag, the auxiliary carry flag, the overflow flag, and the parity flag.

Additionally, the PSW register contains the register bank select flags which are used to select

which of the "R" register banks are currently selected.

Programming Tip: If you write an interrupt handler routine, it is a very good idea to always

save the PSW SFR on the stack and restore it when your interrupt is complete. Many 8051

instructions modify the bits of PSW. If your interrupt routine does not guarantee that PSW is the

same upon exit as it was upon entry, your program is bound to behave rather erradically and

unpredictably--and it will be tricky to debug since the behavior will tend not to make any sense

PSW register, also referred to as the flag register, is an 8 bit register Only 6 bits are used These

four are CY (carry), AC (auxiliary carry), P (parity), and OV (overflow)

They are called conditional flags, meaning that they indicate some conditions that resulted after

an instruction was executed. The PSW3 and PSW4 are designed as RS0 and RS1, and are used to

change the bank. The two unused bits are user-definable

CY AC F0 RS1 RS0 OV -- P

CY PSW.7 Carry flag

AC PSW.6 Auxiliary carry flag.

F0 PSW.5 Available to the user for general purpose.

Page 29: Cellphone Operated Robotcv

RS1 PSW.4 Register bank selector bit1.

RS0 PSW.3 Register bank selector bit0.

OV PSW.2 Overflow flag.

-- PSW.1 User definable bit.

P PSW.0 Parity flag. Set/cleared by hardware each instruction Cycle

to indicate an odd/even number of 1 bit in the

accumulator.

2.5. CONCLUSION:

A highly integrated chip that contains all the components comprising a controller. Typically this includes a CPU, RAM, some form of ROM, I/O ports, and timers.

Unlike a general-purpose computer, which also includes all of these components, a microcontroller is designed for a very specific task -- to control a particular system.

As a result, the parts can be simplified and reduced, which cuts down on production costs.

Microcontrollers are sometimes called embedded microcontrollers, which just mean that they are part of an embedded system -- that is, one part of a larger device or system.

The 8051 is a flexible microcontroller with a relatively large number of modes of operations. Your program may inspect and/or change the operating mode of the 8051 by manipulating the values of the 8051's Special Function Registers (SFRs).

SFRs are accessed as if they were normal Internal RAM. The only difference is that Internal RAM is from address 00h through 7Fh whereas SFR registers exist in the address range of 80h through FFh.

Page 30: Cellphone Operated Robotcv

3.LIQUID CRYSTAL DISPLAY

LCD a type of display used in digital watches and many portable computers. LCD displays utilize two sheets of polarizing material with a liquid crystal solution between them. An electric current passed through the liquid causes the crystals to align so that light cannot pass through them. Each crystal, therefore, is like a shutter, either allowing light to pass through or blocking the light. Monochrome LCD images usually appear as blue or dark gray images on top of a grayish-white background. Color LCD displays use two basic techniques for producing

color: Passive matrix is the less expensive of the two technologies.

The other technology, called thin film transistor (TFT) or active-matrix, produces color images that are as sharp as traditional CRT displays, but the technology is expensive.

Recent passive-matrix displays using new CSTN and DSTN technologies produce sharp colors rivaling active-matrix displays. Most LCD screens used in notebook computers are backlit, or transmissive, to make them easier to read. In our project we 16*2 character type of LCD.

3.1. SPECIFICATION OF LCD:

Important factors to consider when evaluating an LCD:

Resolution versus range: Fundamentally resolution is the granularity (or number of levels) with which a performance feature of the display is divided. Resolution is often confused with range or the total end-to-end output of the display. Each of the major features of a display has both a resolution and a range that are tied to each other but very different. Frequently the range is an inherent limitation of the display while the resolution is a function of the electronics that make the display work.

Spatial performance: LCDs come in only one size for a variety of applications and a variety of resolutions within each of those applications. LCD spatial performance is also sometimes described in terms of a "dot pitch". The size (or spatial range) of an LCD is always described in terms of the diagonal distance from one corner to its opposite. This is an historical remnant from the early days of CRT television when CRT screens were manufactured on the bottoms of glass

Page 31: Cellphone Operated Robotcv

bottles, a direct extension of cathode ray tubes used in oscilloscopes. The diameter of the bottle determined the size of the screen. Later, when televisions went to a squarer format, the square screens were measured diagonally to compare with the older round screens.

Temporal/timing performance: Contrary to spatial performance, temporal performance is a feature where smaller is better. Specifically, the range is the pixel response time of an LCD, or how quickly you can change a sub-pixel's brightness from one level to another. For LCD monitors, this is measured in btb (black to black) or gtg (gray to gray). These different types of measurements make comparison difficult. Further, this number is almost never published in sales advertising.

Color performance: There are many terms to describe color performance of an LCD. They include color gamut which is the range of colors that can be displayed and color depth which is the color resolution or the resolution or fineness with which the color range is divided. Although color gamut can be expressed as three pairs of numbers, the XY coordinates within color space of the reddest red, greenest green, and bluest blue, it is usually expressed as a ratio of the total area within color space that a display can show relative to some standard such as saying that a display was "120% of NTSC". NTSC is the National Television Standards Committee, the old standard definition TV specification. Color gamut is a relatively straight forward feature. However with clever optical techniques that are based on the way humans see color, termed color stretch, colors can be shown that are outside of the nominal range of the display. In any case, color range is rarely discussed as a feature of the display as LCDs are designed to match the color ranges of the content that they are intended to show. Having a color range that exceeds the content is a useless feature.

Color depth or color support is sometimes expressed in bits, either as the number of bits per sub-pixel or the number of bits per pixel. This can be ambiguous as an 8-bit color LCD can be 8 total bits spread between red, green, and blue or 8 bits each for each color in a different display. Further, LCDs sometimes use a technique called dithering which is time averaging colors to get intermediate colors such as alternating between two different colors to get a color in between. This doubles the number of colors that can be displayed; however this is done at the expense of the temporal performance of the display. Dithering is commonly used on computer displays where the images are mostly static and the temporal performance is unimportant.

Brightness and contrast ratio: Contrast ratio is the ratio of the brightness of a full-on pixel to a full-off pixel and, as such, would be directly tied to brightness if not for the invention of the blinking backlight (or burst dimming). The LCD itself is only a light valve, it does not generate light; the light comes from a backlight that is either a florescent tube or a set of LEDs. The blinking backlight was developed to improve the motion performance of LCDs by turning the backlight off while the liquid crystals were in transition from one image to another. However, a side benefit of the blinking backlight was infinite contrast. The contrast reported on most LCDs is what the LCD is qualified at, not its actual performance. In any case, there are two large

Page 32: Cellphone Operated Robotcv

caveats to contrast ratio as a measure of LCD performance.

3.1.1.16 x 2 Alphanumeric LCD Module Features:

Intelligent, with built-in Hitachi HD44780 compatible LCD controller and RAM providing simple interfacing.

61 x 15.8 mm viewing area.

5 x 7 dot matrix format for 2.96 x 5.56 mm characters, plus cursor line.

Can display 224 different symbols.

Low power consumption (1 mA typical).

Powerful command set and user-produced characters.

TTL and CMOS compatible.

Connector for standard 0.1-pitch pin headers.

3.2 TYPES OF LCD DISPLAY:

There are three LCD display types: segment (or alphanumeric), dot matrix (or character) and graphic LCD.

Segment LCD (or Alphanumeric LCD): Segment LCD can display Arabic numbers represented by 7 segments or Arabic numbers and Roman letters represented by 14 segments. Symbols, such as plus/minus signs, measurement units and any custom icons, can also be displayed. Each symbol is treated as one segment. Segment LCD is widely used on the displays of scientific instruments. It is easy to control and most cost-effective to develop. Segment LCD is limited to displaying numbers, Roman letters and fixed symbols. If you need to display anything else, you have to use either the dot matrix display or graphic display.

Dot Matrix LCD (or Character LCD): Dot matrix LCD is used to display a number of lines of characters. The most commonly used dot matrix LCD displays 1 to 4 lines of 16 to 40 characters. Each character is represented by 5x7 dots plus cursor (actually 5x8 dots including the cursor). Each character block is addressed separately and can form numbers, Roman letters, character in other languages and a limited number of symbols. Dot matrix LCD is used when you need to display more characters than those in English alphabet. It is relatively simple to control and also inexpensive than graphic models.

Graphic LCD: Graphic LCD provides users with a greater degree of flexibility. They are composed of pixels arranged in rows and columns. Each pixel can be addressed individually for text, graphics or any combination of the two. Graphic LCD is used in applications when the use needs to have total control of the whole viewing area. However, flexibility also comes with the difficulty in designing the control circuitry. Fortunately there are special controller chips

Page 33: Cellphone Operated Robotcv

available for this purpose.

3.3. INTERFACING LCD TO 8051MICROCONTROLLER:

To send any of the commands from given table to the LCD,make pin RS=0.For data,make RS=1,then send a high to low pulse to the E pin to enable the internal latch of the LCD.As shown in figure for LCD connections

P0.7

P0.6

P0.5

8051 MICRO CONTROLLER P0.4

(AT89C51ED2) P0.3

P0.2

P0.1

P0.0

P2.2

P2.1

P2.0

D7

D6

D5

D4

D3

D2

D1

D0

E

R/W

RS

Page 34: Cellphone Operated Robotcv

HELLO WORLD

FIG 3.1: INTERFACING LCD TO 8051MICROCONTROLLER

Pin Number

Symbol Level I/O Function

1 Vss - - Power supply(GND)

2 Vcc - - Power supply(+5v)

3 Vee - - Contrast adjust

4 RS I/O I 0=Instruction input

1=Data input

5 R/W 0/1 I 0=write to LCD module

1=Read from LCD module

6 E 1,1->0 I Enable signal

7 DB0 0/1 I/O Data bus line 0(LSB)

8 DB1 0/1 I/O Data bus line 1

9 DB2 0/1 I/O Data bus line 2

Page 35: Cellphone Operated Robotcv

10 DB3 0/1 I/O Data bus line 3

11 DB4 0/1 I/O Data bus line 4

12 DB5 0/1 I/O Data bus line 5

13 DB6 0/1 I/O Data bus line 6

14 DB7 0/1 I/O Data bus line 7

TABLE 3.1: PIN DESCRIPTION

3.4. SCHEMATIC DIAGRAM OF LCD DISPLAY:

1 2 3

7 8 9 10 11 12 13 14 4 5 6

7 8 9 10 11 12 13 14 4 5 6

1

Page 36: Cellphone Operated Robotcv

G +5V -5V

11

D0 D1 D2

D3 D4 D5 D6 D7 RS R\W EN

FIG:3.2 SCHEMATIC DIAGRAM OF LCD DISPLAY:

BIT RS R/W D7 D6 D5 D4 D3 D2 D0 Function

0 0 0 0 0 0 0 0 0 1 Clear LCD and memory, home cursor

0 0 0 0 0 0 0 0 1 0 Clear and home cursor only

0 0 0 0 0 0 0 1 1/0 S Screen action as display character written

S=1/0: Shift screen/cursor

I/O=1/0: cursor R/L, screen L/R

0 0 0 0 0 0 1 D C B D=1/0: Screen on/off

Page 37: Cellphone Operated Robotcv

C=1/0: Cursor on/off

B=1/0: Cursor blink/no blink

0 0 0 0 0 1 S/C R/L 0 0 S/C: 1/0: Screen/Cursor

R/L: Shift one space R/L

0 0 0 0 1 DL N F 0 0 DL=1/0:8/4 Bits per Character

N=1/0; 2/1 Rows of Characters

F=1/0; 5*10/5*7Dots/Character

0 0 0 1

Character address Write to character RAM address after this

0 0 1 Display data address Write to display RAM address after this

0 1 BF Current address BF=1/0: busy/Notbusy

1 0 Character type Write byte to last RAM chosen

1 1 Character type Read byte from last RAM chosen

FIG3.3.2X16 CHARACTER LCD WITH BACKLIGHTING.

FIG3 FIG:

3.4.TYPICAL PINOUT ON A DISPLAY WITH 1X16 PIN CONNECTOR

Page 38: Cellphone Operated Robotcv

3.5. CIRCUIT DESCRIPTION:

FIG 3.5: CIRCUIT DIAGRAM OF LCD

It is very important to keep a track of the working of almost all the automated and semi-automated devices, be it a washing machine, an autonomous robot or anything else. This is achieved by displaying their status on a small display module. LCD   (Liquid Crystal Display) screen is such a display module and a 16x2 LCD module is very commonly used. These modules are replacing seven segments and other multi segment LEDs for these purposes. The reasons being: LCDs are economical, easily programmable, have no limitation of displaying special & even custom characters (unlike in seven segments), animations and so on. LCD can be easily interfaced with a microcontroller to display a message or status of a device.

4.INTRODUCTION TO EMBEDDED SYSTEMS

4.1.INTRODUCTION:

Each day, our lives become more dependent on 'embedded systems', digital information

technology that is embedded in our environment. More than 98% of processors applied today are

in embedded systems, and are no longer visible to the customer as 'computers' in the ordinary

sense. An Embedded System is a special-purpose system in which the computer is completely

encapsulated by or dedicated to the device or system it controls. Unlike a general-purpose

computer, such as a personal computer, an embedded system performs one or a few pre-defined

tasks, usually with very specific requirements. Since the system is dedicated to specific tasks,

design engineers can optimize it, reducing the size and cost of the product. Embedded systems

are often mass-produced, benefiting from economies of scale. The increasing use of PC hardware

is one of the most important developments in high-end embedded systems in recent years.

Page 39: Cellphone Operated Robotcv

Hardware costs of high-end systems have dropped dramatically as a result of this trend, making

feasible some projects which previously would not have been done because of the high cost of

non-PC-based embedded hardware. But software choices for the embedded PC platform are not

nearly as attractive as the hardware.

Typically, an embedded system is housed on a single microprocessor board with the

programs stored in ROM. Virtually all appliances that have a digital interface -- watches,

microwaves, VCRs, cars -- utilize embedded systems. Some embedded systems include an

operating system, but many are so specialized that the entire logic can be implemented as a

single program.

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.

In terms of complexity embedded systems can range from very simple with a single

microcontroller chip, to very complex with multiple units, peripherals and networks mounted

inside a large chassis or enclosure.

4.1.1 Definition of an Embedded System: An Embedded system is defined as,

for a particular/specific application implementing the software code to interact directly with that

particular hardware what we built. Software is used for providing features and flexibility,

Hardware = {Processors, ASICs, Memory...} is used for Performance (& sometimes security).

(Or)

An embedded system is a special-purpose computer system designed to perform one or a few dedicated functions, often 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.

(Or)

An embedded system is a single-purpose computer built into a larger system for the

purposes of controlling and monitoring the system. A specialized computer system that is part of

a larger system or machine.

4.1.2 Features of an Embedded System:

The versatility of the embedded computer system lends itself to utility in all kinds of

enterprises, from the simplification of deliverable products to a reduction in costs in their

Page 40: Cellphone Operated Robotcv

development and manufacture. Complex systems with rich functionality employ special

operating systems that take into account major characteristics of embedded systems. Embedded

operating systems have minimized footprint and may follow real-time operating system

specifics.

The special computers system is usually less powerful than general-purpose systems,

although some expectations do exist where embedded systems are very powerful and

complicated. Usually a low power consumption CPU with a limited amount of memory is used

in embedded systems. Many embedded systems use very small operating systems; most of these

provide very limited operating system capabilities.

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.

Some embedded systems have to operate in extreme environment conditions such as very

high temperature & humidity.

For high volume systems such as portable music players or mobile phones, minimizing

cost is usually the primary design consideration. Engineers typically select hardware that is just

“good enough” to implement the necessary functions.

For low volume or prototype embedded systems, general purpose computers may be

adapted by limiting the programs or by replacing the operating system with a real-time operating

system.

4.1.3 Characteristics of an Embedded System:

An Embedded computing systems generally exhibit rich functionality complex

functionality is usually the reason for introducing CPUs into the design. However, they also

exhibit many non-functional requirements that make the task especially challenging:

• Real-time deadlines that will cause system failure if not met;

• Multi-rate operation;

• In many cases, low power consumption;

• Low manufacturing cost, which often means limited code size.

Workstation programmers often concentrate on functionality. They may consider the

Page 41: Cellphone Operated Robotcv

performance characteristics of a few computational kernels of their software, but rarely analyze

the total application. They almost never consider power consumption and manufacturing cost.

The need to juggle all these requirements makes embedded system programming very

challenging and is the reason why embedded system designers need to understand computer

architecture.

4.1.4 Overview of an Embedded System Architecture:

Every Embedded system consists of a custom-built hardware built around a central

processing unit. This hardware also contains memory chips onto which the software is loaded.

Fig: 4.1: Overview of embedded system architecture

The operating system runs above the hardware and the application software runs above

the operating system. The same architecture is applicable to any computer including desktop

computer. However these are significant differences. It is not compulsory to have an operating

system in every embedded system. For small applications such as remote control units, air

conditioners, toys etc.

4.1.5 Applications of Embedded Systems:

Page 42: Cellphone Operated Robotcv

Some of the most common embedded systems used in everyday life are

Small embedded controllers: 8-bit CPUs dominate, simple or no operating system

(e.g., thermostats)

Control systems: Often use DSP chip for control computations

(e.g., automotive engine control)

Distributed embedded control: Mixture of large and small nodes on a real-time

Embedded networks

(e.g., cars, elevators, factory automation)

System on chip: ASIC design tailored to application area

(e.g., consumer electronics, set-top boxes)

Network equipment: Emphasis on data movement/packet flow

(e.g., network switches; telephone switches)

Critical systems: Safety and mission critical computing

(e.g., pacemakers, automatic trains)

Signal processing: Often use DSP chips for vision, audio, or other signal

Processing (e.g., face recognition)

Robotics: Uses various types of embedded computing (especially

Vision and control) (e.g., autonomous vehicles)

Computer peripherals: Disk drives, keyboards, laser printers, etc.

Wireless systems: Wireless network-connected “sensor networks” and

“Motes” to gather and report information

Embedded PCs: Palmtop and small form factor PCs embedded into

Equipment

Command and control: Often huge military systems and “systems of systems”

(e.g., a fleet of warships with interconnected

Computers)

Home Appliances, intercom, telephones, security systems, garage door openers, answering

Page 43: Cellphone Operated Robotcv

machines, fax machines, home computers, TVs, cable TV tuner, VCR, camcorder, remote

controls, video games, cellular phones, musical instruments, sewing machines, lighting control,

paging, camera, pinball machines, toys, exercise equipment

Office Telephones, computers, security systems, fax machines, microwave, copier, laser printer,

color printer, paging

Auto Trip computer, engine control, air bag, ABS, instrumentation, security system, transmission

control, entertainment, climate control, cellular phone, keyless entry.

4.2. TYPES OF EMBEDDED SYSTEMS:

Based on functionality and performance embedded systems categorized as 4 types

1. Stand alone embedded systems

2. Real time embedded systems

3. Networked information appliances

4. Mobile devices

4.2.1 Stand alone embedded systems:

As the name implies, stand alone systems work in stand alone mode. They take i/p,

process them and produce the desire o/p. The i/p can be an electrical signal from transducer or

temperature signal or commands from human being. The o/p can be electrical signal to drive

another system an led or LCD display

Ex digital camera, microwave oven, CD player, Air conditioner etc

4.2.2 Real time embedded systems:In this type of an embedded system a specific work has to be complete in a particular

period of time.

Hard Real time systems: - embedded real time used in missiles

Soft Real time systems: - DVD players

4.2.3 Networked information appliances: Embedded systems that are provided

with n/w interfaces and accessed by n/w such as local area n/w or internet are called Network

Information Appliances.

Page 44: Cellphone Operated Robotcv

Ex: A web camera is connected to the internet. Camera can send pictures in real time to any

computers connected to the internet

4.2.4 Mobile devices: Actually it is a combination of both VLSI and Embedded System.

Mobile devices such as Mobile phone, Personal digital assistants, smart phones etc are special

category of embedded systems

4.3 PROGRAMMING LANGUAGE USED:

BASIC FORM OF ASSEMBLY LANGUAGE PROGRAM

Now that the basic form of an assembly language program has been given, the next question is:

how it is created, assembled and made ready to run? The steps to create an executable assembly

language program are outlined as follows.

IMPLEMENTATION

FIG4.2 BASIC FORM OF ALP

• First we use an editor to type in a program similar to program. Many excellent editors or

word processors are available that can be used to create and/or edit the program. A

widely used editor is the MS-DOS EDIT program .which comes with all Microsoft

operating systems. Notice that the editor must be able to produce an ASCII file. For

many assemblers, the file names follow the usual DOS conventions, but the source file

Page 45: Cellphone Operated Robotcv

has the extension "ASM "or "SRC ", depending on which assembler you are using.

Check your assembler for the convention. The "asm ", extension for the source file is

used by an assembler in the next step.

• The "ASM "source file containing the program code is created in step 1 is fed to an 8051

assembler. The assembler converts the instructions into machine code. The assembler

will produce an object file and a list file. The extension for the object file is "OBJ "by the

extension for the list file is "1ST ".

• Assemblers require a third step calling linking. The link program takes one or more

objects files and produces an absolute object file with the extension "ABS". 8051 trainers

that have a monitor program use this ABS file.

• next the "ABS "file is fed into a program called "OH "(Object to Hex Converter) which

creates a file with extension "HEX "that these ready to burn into ROM. This program

comes with all 8051 assemblers. Recent Windows-based assemblers combine steps 2

through 4 into one step.

5.HARDWARE DESCRIPTION

5.1.SCHEMATIC BLOCK DIAGRAM:

fig:5.1.SCHEMATIC BLOCK DIAGRAM

5.2 DTMF(DUAL TONE MULTIPLE FREQUENCY):

5.2.1.Introduction:Dual-tone multi-frequency (DTMF) signaling is used for

telecommunication signaling over analog telephone lines in the voice-frequency band between

telephone handsets and other communications devices and the switching center.

Page 46: Cellphone Operated Robotcv

Telephone Keypad: The contemporary keypad is laid out in a 3×4grid, although the original

DTMF keypad had an additional column for four now-defunct menu selector keys. When used to

dial a telephone number, pressing a single key will produce a pitch consisting of two

simultaneous pure tone sinusoidal frequencies. The row in which the key appears determines the

low frequency, and the column determines the high frequency. For example, pressing the '1' key

will result in a sound composed of both a 697 and a 1209 hertz (Hz) tone. The original keypads

had levers inside, so each button activated two contacts. The multiple tones are the reason

for calling the system multifrequency. These tones are then decoded by the switching center to

determine which key was pressed.

Fig:5.2

General Description:

The HT9170B/D are Dual Tone Multi Frequency (DTMF) receivers integrated with digital decoder and band split filter functions as well as power-down mode and inhibit mode operations. Such devices use digital counting techniques to detect and decode all the 16 DTMF tone pairs into a 4-bit code output.

Highly accurate switched capacitor filters are implemented to divide tone signals into low and high group signals. A built-in dial tone rejection circuit is provided to eliminate the need for pre-filtering.

DTMF (dual-tone multi-frequency) signals

1209 Hz 1336 Hz 1477 Hz 1633 Hz

697 Hz 1 2 3 A

770 Hz 4 5 6 B

852 Hz 7 8 9 C

941 Hz * 0 # D

5.2.2.HT9170D\B Features:

Page 47: Cellphone Operated Robotcv

• Operating voltage: 2.5V~5.5V• Minimal external components• No external filter is required• Low standby current (on power down mode)• Excellent performance• Tristate data output for MCU interface• 3.58MHz crystal or ceramic resonator• 1633Hz can be inhibited by the INH pin• HT9170B: 18-pin DIP package

• T9170D: 18-pin SOP package

5.2.3.Pin Description:

HT9170B HT9170D

DIP-A SOP-A

Pin Name I/O Internal

ConnectionDescription

VP I Operational

AmplifierOperational amplifier non-inverting input

VN I Operational amplifier inverting input

GS O Operational amplifier output terminal

VREEF O VREF Reference voltage output, normally VDD/2

X1 I Oscillator The system oscillator consists of an inverter, a bias resistor and the necessary load capacitor on chip.

X2 O A standard 3.579545MHz crystal connected to X1 and X2 terminals implementsThe oscillator function.

PWDN I CMOS IN

Pull-low

Active high. This enables the device to go into power down mode and inhibits the oscillator. This pin input is internally pulled down.

INH I CMOS IN

Pull-low

Logic high. This inhibits the detection of tones representing characters A, B, C and D. This pin input is internally pulled down.

Page 48: Cellphone Operated Robotcv

VSS _ _ Negative power supply,

OE I CMOS IN

Pull-High

D0~D3 output enable, high

D0-D3 O CMOS OUT Receiving data output terminalsOE=_H_: Output enableOE=_L_: High impedance

DV O CMOS OUT Data valid outputWhen the chip receives a valid tone (DTMF) signal, the DV goes high; otherwiseit remains low.

EST O CMOS OUT Early steering output (see Functional Description)

RT/GT I/O CMOS

IN/OUT

Tone acquisition time and release time can be set through connection with external resistor and capacitor.

VDD _ Positive power supply, 2.5V~5.5V for normal

TABLE: 5.1.PIN DESCRIPTION OF HT9170D\B5.2.4. Circuit Diagram:

FIG: 5.3.Circuit diagram

The important components of this robot are a DTMF decoder, microcontroller and motor driver. A CM8870 series DTMF decoder is used here. All types of theCM8870 series use digital counting techniques to detect and decode all the 16 DTMF tone pairs into a 4-bit code output. The built-in dial tone rejection circuit eliminates the need of pre-filtering. When the input signals are given at pins 1(IN+)& 2(IN-) , a differential input configuration is recognized to be effective, the correct 4-bit decode signal of the DTMF tone is transferred to (pin11) through (pin14) outputs. The pin11 topin14 of DTMF decoder are connected to the pins of microcontroller (P1.4 to P1.7).The 89V51RD2 is a 8-bit 80C51, 5V low power64 kB Flash microcontroller with 1 kB RAM. it provides the following features: 64 kB of on-chip Flash program memory with ISP (In-System Programming) and IAP (In-Application Programming), Four 8-bit I/O ports with three high-current Port 1 pins (16 mA each),Three 16-bit timers/counters.

Outputs from port pins P0.0 through P0.3 andP0.7 of the microcontroller are fed to the inputs IN1 throughIN4 and enable pins (EN1 and EN2) of motor driver L293D IC, respectively to drive two geared dc motors. Switch S1 is used for manual reset. The microcontroller output is not sufficient to drive the dc motors, so current drivers are required for motor rotation. The L293D is a quad, high-current, half-h driver designed to provide bidirectional drive currents of up to600mA at voltages from 4.5V to 36V. It makes it easier to drive the dc motors. The L293D consists of four drivers. Pins IN1through IN4 and OUT1 through OUT4 are the input and output pins, respectively of driver 1 through driver 4. Drivers 1 and 2, and driver 3 and 4 are enabled by enable pin 1(EN1) and pin 9(EN2), respectively. When enable input EN1 (pin1) is

Page 49: Cellphone Operated Robotcv

high, drivers 1 and 2 are enabled and the outputs corresponding to their inputs are active. Similarly, enable input EN2 (pin9)enables drivers 3 and 4.The motors are rotated according to the status of IN1 to IN4 pins of L293D which in turn are depending on output pins of microcontroller, viz., P0.0 - P0.3.

5.3.MOTOR DRIVER(L293D):5.3.1.Introduction:L293D is a dual H-bridge motor driver integrated circuit (IC). Motor drivers act as current

amplifiers since they take a low-current control signal and provide a higher-current signal. This

higher current signal is used to drive the motors.

L293D contains two inbuilt H-bridge driver circuits. In its common mode of operation, two DC

motors can be driven simultaneously, both in forward and reverse direction. The motor

operations of two motors can be controlled by input logic at pins 2 & 7 and 10 & 15. Input logic

00 or 11 will stop the corresponding motor. Logic 01 and 10 will rotate it in clockwise and

anticlockwise directions, respectively.Enable pins 1 and 9 (corresponding to the two motors)

must be high for motors to start operating. When an enable input is high, the associated driver

gets enabled. As a result, the outputs become active and work in phase with their inputs.

Similarly, when the enable input is low, that driver is disabled, and their outputs are off and in the

high-impedance state.

5.3.2.pindescription: FIG:5.4

Pin No Function Name1 Enable pin for Motor 1; active high Enable 1,22 Input 1 for Motor 1 Input 13 Output 1 for Motor 1 Output 14 Ground (0V) Ground5 Ground (0V) Ground6 Output 2 for Motor 1 Output 27 Input 2 for Motor 1 Input 28 Supply voltage for Motors; 9-12V (up to 36V) Vcc 2

9 Enable pin for Motor 2; active high Enable 3,410 Input 1 for Motor 1 Input 311 Output 1 for Motor 1 Output 312 Ground (0V) Ground13 Ground (0V) Ground14 Output 2 for Motor 1 Output 415 Input2 for Motor 1 Input 416 Supply voltage; 5V (up to 36V) Vcc 1

TABLE: 5.2.PIN DESCRIPTIONBased on which key is pressed, the robot will be able to interpret the tone and activate relays and

such to turn on motors and move about.

The 16-lane output will drive a set of trabsustirs, which will in turn drive a set of much

Page 50: Cellphone Operated Robotcv

larger automotive relays, to switch a pair of drill motors, as well as motors that will rotate the

camera-equipped head left and right.

Speed will be controlled in steps using a few high-load resistors taken from the drills.

Three speed settings should be plenty.

Fig: 5.5.Robot directions

5.3.3.Circuit Description:

Fig: 5.6

Page 51: Cellphone Operated Robotcv

5.4.DC MOTOR:

By far the vast majority of robots use electric motors, of which there are several kinds.

DC motors, which are familiar to many people, spin rapidly when electric current is passed

through them. They will spin backwards if the current is made to flow in the opposite direction.

Fig: 5.7

100RPM 12V DC geared motors for robotics applications. Very easy to use and available

In standard size. Nut and threads on shaft to easily connect and internal threaded shaft for

Easily connecting it to wheel.

5.4.1.DC motor Features:• 100RPM 12V DC motors with Gearbox

• 3000RPM base motor

• 6mm shaft diameter with internal hole

• 125gm weight

• Same size motor available in various rpm

• 1.2kgcm torque

• No-load current = 60 mA(Max), Load current = 300 mA(Max)

6.REGULATED POWER SUPPLY:

6.1.INTRODUCTION:

The power supplies are designed to convert high voltage AC mains electricity to a suitable low

Page 52: Cellphone Operated Robotcv

voltage supply for electronic circuits and other devices. A RPS (Regulated Power Supply) is the

Power Supply with Rectification, Filtering and Regulation being done on the AC mains to get a

Regulated power supply for Microcontroller and for the other devices being interfaced to it.

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:

FIGURE 6.1: CIRCUIT DIAGRAM OF POWER SUPPLY

6.1.1Transformer:

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

Electrical circuit to another without change in frequency.

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.

FIGURE: 6.2. ELECTRICAL TRANSFORMER

Page 53: Cellphone Operated Robotcv

6.1.2 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

• Full wave rectifier

1. Centre tap full wave rectifier.

2. Bridge type full wave rectifier.

Full-wave Rectifier:

From the above comparison 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 as shown in figure 2.11 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.

FIGURE: 6.3.BRIDGE RECTIFIER CIRCUIT

Operation of bridge rectifier:

Page 54: Cellphone Operated Robotcv

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 2.12. The current flow direction is shown in the

fig (2.12) with dotted arrows.

FIGURE: 6.4. POSITIVE HALF CYCLE OPERATIONDuring 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(2.13). The current flow direction is

shown in the fig (2.13) with dotted arrows.

FIGURE: 6.5NEGATIVE HALF CYCLE OPERATION

6.2.3: 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

6.2.4: 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 regulators 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.

FIGURE : 6.6.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.

Page 55: Cellphone Operated Robotcv

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 of 78XX:

• Output Current of 1.5A

• Output Voltage Tolerance of 5%

• Internal thermal overload protection

• Internal Short-Circuit Limited

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

7. KEIL SOFTWARE

7.1 INTRODUCTION:

KEIL SOFTWARE PROGRAMING PROCEDURE

How to write Embedded C Program in Keil Software.

Procedure Steps

Step-1:

Install Keil MicroVision-2 in your PC, Then after Click on that “Keil UVision-2” icon. After opening the window go to toolbar and select Project Tab then close previous project.

Page 56: Cellphone Operated Robotcv

Step-2: Next select New Project from Project Tab.

Step-3: Then it will open “Create New Project” window. Select the path where you want to save project and edit project name.

Step-4: Next it opens “Select Device for Target” window, It shows list of companies and here you can select the device manufacturer company.

Step-5

Step-5:

For an example, for your project purpose you can select the chip as 89C51/52 from Atmel Group. Next Click OK Button, it appears empty window here you can observe left side a small window i.e., “Project Window”. Next create a new file.

Step-6: From the Main tool bar Menu select “File” Tab and go to New, then it will open a window, there you can edit the program.

Step-7:

Here you can edit the program as which language will you prefer either Assembly or C.

Step-8: After editing the program save the file with extension as “.c” or “.asm”, if you write a program in Assembly Language save as “.asm” or if you write a program in C Language save as “.c” in the selected path. Take an example and save the file as “test.c”.

Page 57: Cellphone Operated Robotcv

Step-9: Then after saving the file, compile the program. For compilation go to project window select “source group” and right click on that and go to “Add files to Group.

Step-10: Here it will ask which file has to add. For an example here you can add “test.c” as you saved before.

Step-11: After adding the file, again go to Project Window and right click on your “c file” then select “Build target” for compilation. If there is any “Errors or Warnings” in your program you can check in “Output Window” that is shown bottom of the Keil window.

Step-12: Here in this step you can observe the output window for “errors and warnings”.

Step-13: If you make any mistake in your program you can check in this slide for which error and where the error is by clicking on that error.

Step-14: After compilation then next go to Debug Session. In Tool Bar menu go to “Debug” tab and select “Start/Stop Debug Session”.

Step-15: Here a simple program for “Leds Blinking”. LEDS are connected to PORT-1. You can observe the output in that port.

Step-16:To see the Ports and other Peripheral Features go to main toolbar menu and select peripherals.

Page 58: Cellphone Operated Robotcv

Step-17: In this slide see the selected port i.e., PORT-1.

Step-18:Start to trace the program in sequence manner i.e., step by step execution and observe the output in port window.

Step-19: After completion of Debug Session Create an Hex file for Burning the Processor. Here to create a Hex file goes to project window and right click on Target next select “Option for Target”.

Step-20: It appears one window; here in “target tab” modify the crystal frequency as you connected to your microcontroller.

Step-21: Next go to “Output’ tab. In that Output tab click on “Create HEX File” and then click OK.

Step-22: Finally Once again compile your program. The Created Hex File will appear in your path folder.

7.2 DEVICES SUPPORT OF KEIL SOFTWARE

µVision Simulator

The Keil µVision Debugger accurately simulates on-chip peripherals (I²C, CAN, UART, SPI, Interrupts, I/O Ports, A/D Converter, D/A Converter, and PWM Modules) of your ARM device. Simulation helps you understand hardware configurations and avoids time wasted on setup problems. Additionally, with simulation, you can write and test applications before target hardware is available.

8051 Development tools

Page 59: Cellphone Operated Robotcv

Keil Software development tools for the 8051 support every level of software developer from the professional applications engineer to the student just learning about embedded software development. The industry-standard Keil tools support ALL 8051 derivatives and help you get your projects completed on schedule.

Xc16x/C16x/ST10 Development tools

Keil Software development tools for the C16x, ST10, and XC16x support every level of developer from the professional applications engineer to the student just learning about embedded software development. The industry-standard Keil C Compilers, Macro Assemblers, Debuggers, Real-time Kernels, and Single-board Computers support ALL C16x derivatives and help you get your projects completed on schedule.

Evaluation Boards / Development kits

Evaluation boards (or single-board computers) help you quickly get started with new microcontroller architecture. Keil Software supports all evaluation boards that work with the following microcontroller families:

ARM

MCS® 251

8051

C16x/ST10

7.3 ADVANTAGE OF KEIL SOFTWARE

The Keil Embedded C++ Compiler supports the Infineon C16x/XC16x and STMicroelectronics ST10 microcontroller families. Embedded C++ is a subset of the C++ programming language that is easy for C programmers to understand and use. Embedded C++ provides upward compatibility with Standard C++ while retaining the major advantages of C++.

The Embedded C++ Language satisfies the requirements of embedded software designs and avoids the overhead that is introduced with full C++ implementations (since EC++ avoids features unsuited for embedded systems).

The primary benefits of the Keil Embedded C++ Compiler are:

Small language specification that retains object-oriented features.

Avoids excessive memory consumption.

Produces predictable run-time requirements.

Generates ROMable code.

Removes nonstandard extensions to C++. Language features that are not authorized by ANSI/ISO are eliminated. When starting a new project, simply select the microcontroller you use from the Device Database and the µVision IDE sets all compiler, assembler, linker, and memory

Page 60: Cellphone Operated Robotcv

options for you.

Numerous example programs are included to help you get started with the most popular embedded 8051 devices.

The Keil µVision Debugger accurately simulates on-chip peripherals (I²C, CAN, UART, SPI, Interrupts, I/O Ports, A/D Converter, D/A Converter, and PWM Modules) of your 8051 device. Simulation helps you understand hardware configurations and avoids time wasted on setup problems. Additionally, with simulation, you can write and test applications before target hardware is available.

When you are ready to begin testing your software application with target hardware, use the MON51, MON390, MONADI, or FlashMON51 Target Monitors, the ISD51 In-System Debugger, or the ULINK USB-JTAG Adapter to download and test program code on your target system.

7.4 POSSIBLE MEMORY MODELS OF KEIL SOFTWARE

The most significant impact on code size and execution speed is the selected memory model. Compiling in the small model always generates the smallest, fastest code possible.

The SMALL directive instructs the compiler to use the small memory model. In this memory model, all variables are stored in the internal memory of the 8051 .Memory access to internal data memory is very fast (typically performed in 1 or 2 clock cycles), and the code generated is much smaller than that generated for the compact or large models.

In small model, the variable i is maintained in internal data memory. The instructions to access i, MOV A,i and INC i, require only two bytes each of code space. In addition, each of these instructions executes in only one clock cycle.

In large model, the variable i is maintained in external data memory. To access i, the compiler must first load the data pointer and then perform an external memory access (see offset 0001h through 0004h in the above listing). These two instructions alone take 4 clock cycles. The code to increment i is found from offset 0011h to offset 0016h. This operation consumes 6 bytes of code space and takes 7 clock cycles to execute.

Page 61: Cellphone Operated Robotcv

8.FUTURE SCOPE

1. IR Sensors:IR sensors can be used to automatically detect &avoid obstacles if the robot goes beyond line of sight. This avoids damage to the vehicle if we are maneuvering it from a distant place.

2. Password Protection:Project can be modified in order to password protect the robot so that it can be operated only if correct password is entered. Either cell phone should be password protected or necessary modification should be made in the assembly language code. This introduces conditioned access &increases security to a great extent.

3. Alarm Phone Dialer:By replacing DTMF Decoder IC CM8870 by a'DTMF Transceiver IC’ CM8880, DTMF tones can be generated from the robot. So, a project called 'Alarm Phone Dialer' can be built which will generate necessary alarms for something that is desired to be monitored (usually by triggering a relay). For example, a high water alarm, low temperature alarm, opening of back window, garage door, etc.When the system is activated it will call a number of programmed numbers to let the user know the alarm has been activated. This would be great to get alerts of alarm conditions from home when user is at work.

4. Adding a Camera:If the current project is interfaced with a camera (e.g. a Webcam) robot can be driven beyond line-of-sight &range becomes practically unlimited as GSM networks have a very large rang

9. CONCLUSION

Wireless-controlled robots use RF circuits, which have the drawbacks of limited working range, limited frequency range and the limited control. Use of a mobile phone for robotic control can overcome these limitations. It provides the advantage of robust control, working range as large as the coverage area of the service provider, no interference with other controllers and up to twelve

Page 62: Cellphone Operated Robotcv

controlles.

I believe this can change entire world of Robotics

10.REFERENCES

• Ayala, Kenneth J. (1996), The 8051 Microcontroller- Architecture, Programming and Applications, Delmar Publishers, Inc. India Reprint Pernam.

• www.wikipedia.org

• Raj Kamal (2004), Embedded Systems - Architecture, Programming and Design, International Edition, New Delhi: McGraw-Hill.

• WWW.atmel.com

• Barr, Micheal (1999), Programming Embedded systems in C and C++, Sebastopol, C.A: O Reilly.

• www.8051projects.com

Page 63: Cellphone Operated Robotcv

• Calcutt, M.C.F.J Cowan, and G.H. Parchizadeh (1998), 8051 Micro controllers- Hardware and Software Applications, Arnold (and also John Wiley).

• www.embedded-computing .com

• Mazidi, M. Ali and J. G. Mazidi (2000), the 8051 Microcontroller and Embedded Systems, Pearson Education.

• www.e-insite.net/edmag/

• www.mcjournal.com

• Nagaraja, B., Rayappa,R., Mahesh, M., Patil,c., Manjunath,T.: Design & Development of a GSM Based Vehicle Theft Control System, in: 2009 International Conference on Digital Object Identifier, pp. 148-152(2009).