obstacle robot

79
OBSTACLE AVOIDING ROBOT ABSTRACT AIM: The main objective of this project is to develop an embedded system, which will automatically stop when an obstacle is detected using ultrasonic sensor. IMPLEMENTATION: This project is implemented 8051 based At89s52 developed board interfaced with Ultrasonic sensor, H-Bridge driver motors. BLOCK DIAGRAM: MICROCONTROLLER AT89S52 RPS L293D INFRARED SENSOR CRYSTAL ROBOTIC PLATFORM ULTRASONIC SENSOR

Upload: venu10462834

Post on 11-Mar-2015

506 views

Category:

Documents


9 download

TRANSCRIPT

Page 1: Obstacle Robot

OBSTACLE AVOIDING ROBOT

ABSTRACT

AIM:

The main objective of this project is to develop an embedded system, which will

automatically stop when an obstacle is detected using ultrasonic sensor.

IMPLEMENTATION:

This project is implemented 8051 based At89s52 developed board interfaced with

Ultrasonic sensor, H-Bridge driver motors.

BLOCK DIAGRAM:

POWER SUPPLY:

MICROCONTROLLER AT89S52

RPSL293D

INFRARED SENSOR

CRYSTAL ROBOTICPLATFORM

ULTRASONIC SENSOR

Page 2: Obstacle Robot

DESCRIPTION:

A robot can talk, walk, run and do anything as per logic embedded in it even

though the robot can do the above things. It seems a useless thing if it is uncontrollable.

Here controlling a robot is main task has to consider while designing any robot.

In this project an ultrasonic sensor is used to detect any obstruction and in turn

signals to the microcontroller and same displays on the LCD. An ultrasonic sensor is a

dual communication means transmitting and receiving. According to received data

vehicle will stop automatically.

Since robotic platform is equipped with two motors for the drive, controlling the

motors, i.e. When making a right turn, the right wheel can be stopped i.e. Power to the dc

motor is switched off. The left wheel is driven i.e. Left dc motor is on. This causes the

system to take a right turn. Similarly for left turn.

The detector circuitry consists of two ultrasonic integrated detection. The detector

houses the transmitter as well as receiver. The detectors are positioned accurately either

side. Once the detector recognizes any obstruction, the microcontroller signals the vehicle

to stop.

The system uses a compact circuitry built around flash version of at89s52

microcontroller with a non-volatile memory capable of retaining the password data for

over ten years. Programs are developed in embedded c using ride compiler. Isp is used to

dump the code into the microcontroller.

Step DownTransformer

BridgeRectifier

FilterCircuit Regulator

section

Page 3: Obstacle Robot

SOFTWARE:

Embedded ‘C’

RIDE to write code

ISP to burn the chip

HARDWARE:

At89s52 based our own developed board

Power Supply

Ultrasonic Sensor

H-Bridge driver motors

LCD

ADVANTAGES: Low cost, automated operation, Low Power consumption.

REFERENCES

1. The 8051 micro controller and embedded systems by Mazidi.

2. www.wikipedia.org

3. WWW.ATMEL.COM

4. WWW.8051PROJECTS.COM

5. Embedded systems with 8051 by kenith j ayala

Page 4: Obstacle Robot

OBSTACLE AVOIDING ROBOT

Chapter 1Embedded Systems1.1 INTRODUCTION TO EMBEDDED SYSTEMS

Page 5: Obstacle Robot

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.

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.

Definition of an Embedded System

Page 6: Obstacle Robot

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.

There are many definitions of embedded system but all of these can be combined

into a single concept. An embedded system is a special purpose computer system that is

used for particular task.

Features of Embedded Systems

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

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

Page 7: Obstacle Robot

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.

Characteristics of Embedded Systems

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

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

analyze the total application. They almost never consider power consumption and

Page 8: Obstacle Robot

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.

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.

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.

Applications of Embedded Systems

APPLICATION SOFTWAREOPERATING SYSTEM

H/W

Page 9: Obstacle Robot

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 informationEmbedded PCs: Palmtop and small form factor PCs embedded into EquipmentCommand 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 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

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

Page 10: Obstacle Robot

3. Networked information appliances

4. Mobile devices

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

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

3. Networked information appliances:-

Embedded systems that are provided with n/w interfaces and accessed by n/w's such as

local area n/w or internet are called Network Information Appliances

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

any computers connected to the internet

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

Page 11: Obstacle Robot

2.2 Introduction to Microcontroller

Based on the Processor side Embedded Systems is mainly divided into 3 types

1. Micro Processor : - are for general purpose eg: our personal computer

2. Micro Controller:- are for specific applications, because of cheaper cost we will go for these

3. DSP ( Digital Signal Processor ):- are for high and sensitive application purpose

MICROCONTROLLER VERSUS MICROPROCESSOR

A system designer using a general-purpose microprocessor such as the Pentium or the

68040 must add RAM, ROM, I/O ports, and timers externally to make them functional.

Although the addition of external RAM, ROM, and I/O ports makes these systems

bulkier and much more expensive, they have the advantage of versatility such that the

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

hand.

A Microcontroller has a CPU (a microprocessor) in addition to a fixed amount of

RAM, ROM, I/O ports, and a timer all on a single chip. In other words, the processor, the

RAM, ROM, I/O ports and the timer are all embedded together on one chip; therefore,

the designer cannot add any external memory, I/O ports, or timer to it. The fixed amount

of on-chip ROM, RAM, and number of I/O ports in Microcontrollers makes them ideal

for many applications in which cost and space are critical.

Page 12: Obstacle Robot
Page 13: Obstacle Robot

CPU platform:

Embedded processors can be broken into two distinct categories: microprocessors (μP)

and microcontrollers (μC). Microcontrollers have built-in peripherals on the chip,

reducing size of the system.

There are many different CPU architectures used in embedded designs such as ARM,

MIPS, Coldfire/68k, PowerPC, x86, PIC, 8051, Atmel AVR, Renesas H8, SH, V850,

FR-V, M32R, Z80, Z8, etc. This in contrast to the desktop computer market, which is

currently limited to just a few competing architectures.

PC/104 and PC/104+ are a typical base for small, low-volume embedded and ruggedized

system design. These often use DOS, Linux, NetBSD, or an embedded real-time

operating system such as QNX or VxWorks.

A common configuration for very-high-volume embedded systems is the system on a

chip (SoC), an application-specific integrated circuit (ASIC), for which the CPU core was

purchased and added as part of the chip design. A related scheme is to use a field-

programmable gate array (FPGA), and program it with all the logic, including the CPU.

Page 14: Obstacle Robot

Embedded systems are based on the concept of the microcontroller, a single integrated

circuit that contains all the technology required to run an application. Microcontrollers

make integrated systems possible by combining several features together into what is

effectively a complete computer on a chip, including:

* Central Processing Unit

* Input/Output interfaces (such as serial ports)

* Peripherals (such as timers)

* ROM, EEPROM or Flash memory for program storage

* RAM for data storage

* Clock generator

By integrating all of these features into a single chip it is possible to greatly reduce the

number of chips and wiring necessary to control an electronic device, dramatically

reducing its complexity, size and cost.

* Size & Weight: Microcontrollers are designed to deliver maximum performance for

minimum size and weight. A centralized on-board computer system would greatly

outweigh a collection of microcontrollers.

* Efficiency: Microcontrollers are designed to perform repeated functions for long

periods of time without failing or requiring service.

MICRO CONTROLLER: is a chip through which we can connect many other devices

and also those are controlled by the program the program which burn into that chip

INTRODUCTION TO 8051

Intel Corporation introduced an 8 bit micro controller called the 8051 in 1981. While the

time of introduction, Intel was given some specific features and particular name as

MCS-51

Page 15: Obstacle Robot

Features:-

ROM ---- 4 K bytes of Memory

RAM ----- 128 bytes

Timers------2

4 ports --- 32 I/O ports ( each 8 bit wide )

Interrupts-----6

serial port-----1

all on a single chip

Many semiconductor manufacturers started either manufacturing the 8051 devices as

such (Intel was liberal in giving away license to whoever asked) or developing a new

kind of microcontrollers based on 8051 core architecture. Manufacturers modified the

basic 8051 architecture and added many new peripheral functions to make them attractive

to the designers.

After that so many industries are come into picture to introduce 8051 again wit some

extra features. This has led to many versions of the 8051 with different speeds and

amounts of on-chip ROM marketed by more manufactures those are

Dallas ------ DS4700

Zilog---------Z

Motrolla

Freescale

Atmel ------- AT89C51/52, AT89S51/52

Phillips ----- P89C51RD2Fn

Before these industries came into picture 8051 chips are made with CMOs technology.

ATmel was introduced with ISP (In System Programming)

Page 16: Obstacle Robot

In System Programming (ISP):-

In-System Programming (ISP) is the ability of some PROGRAMMABLE LOGIC

DEVICES, MICROCONTROLLERS, and other programmable electronic chips to be

programmed while installed in a complete system, rather than requiring the chip to be

programmed prior to installing it into the system. (or) In-system programming is a

valuable feature that allows system firmware to be upgraded without disassembling the

embedded system to physically replace memory. Most Maxim 8051-based

microcontrollers can be reprogrammed from a PC or laptop via an inexpensive RS-232

serial interface and a few logic gates

The primary advantage of this feature is that it allows manufacturers of electronic devices

to integrate programming and testing into a single production phase, rather than requiring

a separate programming stage prior to assembling the system. This may allow

manufacturers to program the chips in their own system's production line instead of

buying preprogrammed chips from a manufacturer or distributor, making it feasible to

apply code or design changes in the middle of a production run.

2.3 AT89S52 MICROCONTROLLER

The AT89S52 is a low-power, high-performance CMOS 8-bit microcontroller with 8K

bytes of in-system programmable Flash memory. The device is manufactured using

Atmel’s high-density nonvolatile memory technology and is compatible with the

industry-standard 80C51 instruction set and pin out. The on-chip Flash allows the

program memory to be reprogrammed in-system or by a conventional nonvolatile

memory programmer. By combining a versatile 8-bit CPU with in-system programmable

Flash on a monolithic chip, the Atmel AT89S52 is a powerful microcontroller which

provides a highly-flexible and cost-effective solution to many embedded control

applications.

8051 PIN DIAGRAM

Page 17: Obstacle Robot

AT89S52 Architecture consists of these specific features:

8 bit CPU with registers A (Accumulator) and B

16 bit Program Counter(PC) and Data Pointer (DPTR)

8 bit Program Status Word (PSW)

8 bit Stack Pointer (SP)

Internal ROM of 8k

Internal RAM of 128 bytes

Four Register banks each containing eight registers

Sixteen bytes, which may be addressed at the bit level

Eighty bytes of general purpose data memory

32 I/O pins arranged as four 8-bit ports: P0,P1,P2,P3

Page 18: Obstacle Robot

Two 16-bit Timers/Counters: T0 and T1

Full duplex serial data Receiver/Transmitter : SBUF

Control Registers: TCON, TMOD, SCON, SMOD, PCON, IP and IE.

Two external and three internal interrupt sources.

Oscillator and Clock circuits.

Pin Description

Pin ( 32 – 39 ) Port 0: Port 0 is an 8-bit open drain bidirectional port. As an open drain

output port, it can sink eight LS TTL loads. Port 0 pins that have 1s written to them float,

and in that state will function as high impedance inputs. Port 0 is also the multiplexed

low-order address and data bus during accesses to external memory. In this application it

uses strong internal pull ups when emitting 1s. Port 0 emits code bytes during program

verification. In this application, external pull ups are required.

Pin ( 1- 8 ) Port 1: Port 1 is an 8-bit bidirectional I/O port with internal pull ups. Port 1

pins that have 1s written to them are pulled high by the internal pull ups, and in that state

can be used as inputs. As inputs, port 1 pins that are externally being pulled low will

source current because of the internal pull ups.

Alternate Functions of Port 1 used for In system Programmable

P.5 MOSI --------- Instruction Input

P.6 MISO ---------- Data Output

P.7 SCK ----------- Clk in

Pin ( 21 – 28 ) Port 2: Port 2 is an 8-bit bidirectional I/O port with internal pull ups.

Port 2 emits the high-order address byte during accesses to external memory that use 16-

bit addresses. In this application, it uses the strong internal pull ups when emitting 1s.

Page 19: Obstacle Robot

Pin (10 – 17) Port 3: Port 3 is an 8-bit bidirectional I/O port with internal pull ups. It

also serves the functions of various special features of the 80C51 Family as follows:

Port Pin Alternate Function

P3.0- RxD (serial input port)

P3.1 -TxD (serial output port)

P3.2 -INT0 (external interrupt 0)

P3.3- INT1 (external interrupt 1)

P3.4 -T0 (timer 0 external input)

P3.5 -T1 (timer 1 external input)

P3.6 -WR (external data memory write strobe)

P3.7 -RD (external data memory read strobe)

Pin 40 VCC: -Supply voltage

Pin 20 VSS: -Circuit ground potential

Pin 29 PSEN: Program Store Enable is the read strobe to external Program Memory.

When the device is executing out of external Program Memory, PSEN is activated twice

each machine cycle (except that two PSEN activations are skipped during accesses to

external Data Memory). PSEN is not activated when the device is executing out of

internal Program Memory.

Pin 30 ALE/PROG: Address Latch Enable output pulse for latching the low byte of the

address during accesses to external memory. ALE is emitted at a constant rate of 1/6 of

the oscillator frequency, for external timing or clocking purposes, even when there are no

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

Page 20: Obstacle Robot

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

programming.

Pin 31 EA/VPP: When EA is held high the CPU executes out of internal Program

Memory. Holding EA low forces the CPU to execute out of external memory regardless

of the Program Counter value. In the 80C31, EA must be externally wired low. In the

EPROM devices, this pin also receives the programming supply voltage (VPP) during

EPROM programming.

Pin 18 XTAL1: Input to the inverting oscillator amplifier.

Pin 19 XTAL2: Output from the inverting oscillator amplifier.

REGISTERS

8051 is a collection of 8 and 16 bit registers and 8 bit memory locations. These registers

and memory locations can be made to operate using the software instructions. The

program instructions control the registers and digital data paths that are contained inside

the 8051, as well as memory locations that are located outside the 8051.

Register are used to store information temporarily, while the information could be a byte

of data to be processed, or an address pointing to the data to be fetched. The vast majority

of 8051 register are 8-bit registers.

Generally there are two types of registers. They are General purpose Registers (GPR’s)

and Special Function Registers (SFR’s)

General Purpose Register

The 8 bits of a register are shown from MSB D7 to the LSB D0. With an 8-bit data type, any data larger than 8 bits must be broken into 8-bit chunks before it is processed.

Page 21: Obstacle Robot

The most widely used registers A (Accumulator) For all arithmetic and logic instructions B, R0, R1, R2, R3, R4, R5, R6, R7 DPTR (data pointer), and PC (program counter)

16 – bit General Purpose Register are Data Pointer (DPTR) and Program Counter (PC)

The program counter points to the address of the next instruction to be executed. DPTR.

As the name suggests, is used to point the data. It is used by a number of commands

which allows the microcontroller to access external memory. When the microcontroller

access external memory it will access at the address indicated by DPTR.

Page 22: Obstacle Robot

There are 128 bytes of RAM in the 8051

The 128 bytes are divided into three different groups as follows:

1) A total of 32 bytes from locations 00 to 1F hex are set aside for register banks and the

stack

2) A total of 16 bytes from locations 20H to 2FH are set aside for bit-addressable

read/write memory

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

called scratch pad

Special Function Registers

The program status word (PSW)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

Page 23: Obstacle Robot

2.4 Timer/Counters

The Atmel 80C51 Microcontrollers implement two general purpose, 16-bit timers/

counters. They can be used either as timers to generate a time delay or as a counter to

count events happening outside the microcontroller. The microcontroller has two 16-bit

wide timers. They are identified as Timer 0 and Timer 1, and can be independently

configured to operate in a variety of modes as a timer or as an event counter. When

operating as a timer, the timer/counter runs for a programmed length of time, then issues

an interrupt request. When operating as a counter, the timer/counter counts negative

transitions on an external pin. After a preset number of counts, the counter issues an

Page 24: Obstacle Robot

interrupt request. Register pairs (TH0, TL0), (TH1, TL1), and (TH2, TL2) are the 16-bit

counting registers for Timer/Counters 0, 1, and 2, respectively.

Timer 0 Register

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

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

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

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

Timer 1 Register

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

( Timer 1 low byte ) and TH1 ( Timer 1 high byte ). These registers are accessible in the

same way as the registers of timer 0.

TMOD Register (timer mode)

TMOD: Timer/Counter Mode Control Register.

Not Bit Addressable.

Timer 1 Timer 0

GATE When TRx (in TCON) is set and GATE=1, Timer/CounterX will

run only while INTx pin is high (hardware control). When

GATE=0, Timer/Counter will run only while TRx=1 (software

control).

Page 25: Obstacle Robot

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.

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.

TCON: Timer/Counter Control Register

Bit Addressable.

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.

THE LOWER 4 BITS

THE UPPER FOUR BITS ARE USED TO

Page 26: Obstacle Robot

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 terrupt

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.

2.5 SERIAL COMMUNICATION

The 8051 serial port is full duplex. In other words, it can transmit and receive data at the

same time. Unlike any other register in the 8051, SBUF is in fact two distinct registers - the

write-only register and the read-only register. Transmitted data is sent out from the write-

only register while received data is stored in the read-only register. There are two separate

data lines, one for transmission (TXD) and one for reception (RXD). Therefore, the serial

port can be transmitting data down the TXD line while it is at the same time receiving data

on the RXD line.   The TXD line is pin 11 of the microcontroller (P3.1) while the RXD line

is on pin 10 (P3.0)

Serial data communication uses two methods, asynchronous and synchronous. The

synchronous method transfers a block of data (characters) at a time, while the asynchronous

method transfers a single byte at a time. It is possible to write software to use either of these

methods, but the programs can be tedious and long. For this reason, there are special IC chips

made by many manufacturers for serial data communications. These chips can be commonly

referred to as UART (Universal Asynchronous Receiver-transmitter) and USART

( Universal Synchronous Asynchronous Receiver-Transmitter). The 8051 chip has a built-in

UART.

Asynchronous Serial Communication and Data Framing

Page 27: Obstacle Robot

Start Bits and Stop Bits  

In the asynchronous method is character is placed between start and stop bits, this is called

data framing. In asynchronous communication, at least two extra bits are transmitted with the

data word; a start bit and a stop bit. Therefore, if the transmitter is using an 8-bit system, the

actual number of bits transmitted per word is ten.   In most protocols the start bit is a logic 0

while the stop bit is logic 1. Therefore, when no data is being sent the data line is

continuously HIGH.   The receiver waits for a 1 to 0 transition. In other words, it awaits a

transition from the stop bit (no data) to the start bit (logic 0). Once this transition occurs the

receiver knows a data byte will follow.   Since it knows the data rate (because it is defined in

the protocol) it uses the same clock as frequency as that used by the transmitter and reads the

correct number of bits and stores them in a register. For example, if the protocol determines

the word size as eight bits, once the receiver sees a start bit it reads the next eight bits and

places them in a buffer. Once the data word has been read the receiver checks to see if the

next bit is a stop bit, signifying the end of the data. If the next bit is not a logic 1 then

something went wrong with the transmission and the receiver dumps the data.   If the stop bit

was received the receiver waits for the next data word, ie; it waits for a 1 to 0 transition.

Baud Rates in the 8051

GOES OUT FIRST

XTAL OSCILLATOR

÷ 12 ÷ 32BY UART

MACHINE CYCLE FREQUENCY

28800 HZ

TO TIMER 1 TO SET THE BAUD RATE

921.6 KHZ

11.0592 MHZ

TIMER 1

Page 28: Obstacle Robot

XTAL = 11.0592 MHz:

The frequency of system clock = 11.0592 MHz / 12 = 921.6 kHz

The frequency sent to timer 1 = 921.6 kHz/ 32 = 28,800 Hz

(a) 28,800 / 3 = 9600 where -3 = FD (hex) is loaded into TH1

(b) 28,800 / 12 = 2400 where -12 = F4 (hex) is loaded into TH1

(c) 28,800 / 24 = 1200 where -24 = E8 (hex) is loaded into TH1

SBUF

SBUF is an 8-bit register used solely for serial communication in the 8051. For a byte of

data to be transferred via the TxD line, it must be placed in the SBUF register. Similarly,

SBUF holds the byte of data when it is received by the 8051’s RxD line. SBUF can be

accessed like any other register in the 8051.

The moment a byte is written into SBUF, it is framed with the start and stop bits and

transferred serially via the TxD pin. Similarly, when the bits are received serially via

RxD, the 8051 deframes it by eliminating the stop and start bits, making a byte out of the

data received, and then placing it in the SBUF.

DATA TRANSMISSION: -

Transmission of serial data bits begins anytime data is written to sbuf. " TI "

(SCON) set to 1 when data has been transmitted and signifies that " SBUF " is empty and

that another data byte can be sent.

DATA RECEPTION: -

Page 29: Obstacle Robot

Reception of serial data will begin if the receive enable bit (REN) in SCON is set

to ' 1 ' for all modes. For mode ' 0 ' only RI must be cleared to 0. Receiver interrupt flag '

RI ' (in SCON) is set after data has been received in all modes. Setting of ' REN ' bit is a

direct program control that limits the reception of unexpected data.

SCON ( Serial Control ) Register

SM0 SM1 SM2 REN TB8 RB8 TI RI

Mode 0: Serial data enters and exits through RxD. TxD outputs the shift clock. 8 bits are 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.

Page 30: Obstacle Robot

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

data 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

Page 31: Obstacle Robot

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

be picked up before it is lost.

INTERRUPTS

An interrupt is a special feature which allows the 8051 to provide the illusion of "multi-

tasking," although in reality the 8051 is only doing one thing at a time. The word

"interrupt" can often be substituted with the word "event."

An interrupt is triggered whenever a corresponding event occurs. When the event occurs,

the 8051 temporarily puts "on hold" the normal execution of the program and executes a

special section of code referred to as an interrupt handler. The interrupt handler performs

whatever special functions are required to handle the event and then returns control to the

8051 at which point program execution continues as if it had never been interrupted.

Interrupt Service Routine

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

When an interrupt is invoked, the microcontroller runs the interrupt service routine. For

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

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

vector table.

Six Interrupts in 8051

1. Reset : When the reset pin is activated, the 8051 jumps to address location 00002. Two interrupts are set aside for the timers: one for the Timer 0 and one for

Timer1.

3. Two interrupts are set aside for hardware external interrupts : one for INT0 and one for INT1

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

Page 32: Obstacle Robot

Enabling Interrupt (IE) Register

All interrupt are disabled after reset

We can enable and disable them bye IE

EA -- ET2 ES ET1 EX1 ET0 EX0

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

If EA=1, each interrupt source is individually enabled or disabled by setting or clearing its enable bit.

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

ET2 IE.5 Enables or disables Timer2 overflow or capture interrupt

(8052 only)

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

ET1 IE.3 Enables or disables Timer 1 overflow interrupt.

EX1 IE.2 Enables or disables external interrupt 1.

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

EX0 IE.0 Enables or disables external interrupt 0.

Interrupt Priority (IP) Register

0= lower priority, 1= higher priority, reset IP=00H

Lower priority ISR can be interrupted by a high priority interrupt.

A high priority ISR can not be interrupted.

Low-priority interrupt wait until 8051 has finished servicing the high-priority interrupt.

-- -- PT2 PS PT1 PX1 PT0 PX0

Page 33: Obstacle Robot

-- IP.7 Reserved

-- IP.6 Reserved

PT2 IP.5 Timer2 interrupt priority bit (8052 only)

PS IP.4 serial port interrupt priority bit.

PT1 IP.3 Timer 1 interrupt priority bit.

PX1 IP.2 external interrupt 1 priority bit.

PT0 IP.1 Timer 0 interrupt priority bit.

PX0 IP.0 external interrupt 0 priority bit.

BASIC REQUIRMENT

The following are the basic five requirements of microcontroller

Page 34: Obstacle Robot

1. Power Supply

2. Crystal Oscillator

3. Reset

4. SIP Resistor

5. Resistor for EA Pin

1. Regulated Power Supply

In mains-supplied electronic systems the AC input voltage must be converted into a DC

voltage with the right value and degree of stabilization. The common DC voltages that

are required to power up the devices are generally in the range of 3 VDC to 30 VDC.

Typically the fixed types of DC voltages are 5V, 9V, 12V, 15V and 18V DC.

POWER SUPPLY MODULES:

STEP DOWN TRANSFORMER

BRIDGE RECTIFIER WITH FILTER

VOLTAGE REGULATORS

Page 35: Obstacle Robot

Transformer

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 voltage, step-down transformers reduce voltage.

A step down power transformer is used to step down the AC voltage from the LINE

VOLTAGE

of 110 VAC or 220 VAC i.e, it converts higher voltage at the input side to a lower voltage at the output.

Rectifier

There are several ways of connecting diodes to make a rectifier to convert AC to DC. The

BRIDGE RECTIFIER is the most important and it produces full-wave varying DC

Page 36: Obstacle Robot

Bridge rectifier Output: full-wave varying DC

Alternate pairs of diodes conduct, changing over (using all the AC wave)

the connections so the alternating directions of

AC are converted to the one direction of DC.

Filter

Filtering is performed by a large value electrolytic capacitor connected across the DC

supply to act as a reservoir, supplying current to the output when the varying DC voltage

from the rectifier is falling. The diagram shows the unfiltered varying DC (dotted line)

and the filtered DC (solid line). The capacitor charges quickly near the peak of the

varying DC, and then discharges as it supplies current to the output.

Typically 1000 μf capacitor is used

Regulator

This is a simple DC regulated supply project using 7805 voltage regulator to obtain a

variable DC voltage range from 5V to 15V

Page 37: Obstacle Robot

Pin out of the 7805 regulator IC.

1. Unregulated voltage in

2. Ground

3. Regulated voltage out

If you need other voltages than +5V, you can modify the circuit by replacing the 7805

chips with another regulator with different output voltage from regulator 78xx chip

family. The last numbers in the the chip code tells the output voltage. Remember that the

input voltage must be at least 3V greater than regulator output voltage ot otherwise the

regulator does not work well.

Crystal Oscillator

The 8051 uses the crystal for precisely that: to synchronize it’s operation. Effectively, the

8051 operates using what are called "machine cycles." A single machine cycle is the

minimum amount of time in which a single 8051 instruction can be executed. although

many instructions take multiple cycles.  8051 has an on-chip oscillator. It needs an

external crystal that decides the operating frequency of the 8051. The crystal is connected

to pins 18 and 19 with stabilizing capacitors. 12 MHz (11.059MHz) crystal is often used

and the capacitance ranges from 20pF to 40pF.

A cycle is, in reality, 12 pulses of the crystal. That is to say, if an instruction takes one

machine cycle to execute, it will take 12 pulses of the crystal to execute. Since we know

the we can calculate how many instruction cycles the 8051 can execute per second:

11,059,000 / 12 = 921,583

Page 38: Obstacle Robot

11.0592 MHz crystals are often used because it can be divided to give you exact clock

rates for most of the common baud rates for the UART, especially for the higher speeds

(9600, 19200).

Reset RESET is an active High input  When RESET is set to High, 8051 goes back to the

power on state.The 8051 is reset by holding the RST high for at least two machine cycles

and then returning it low. Initially charging of capacitor makes RST High, When

capacitor charges fully it blocks DC.

SIP Resistor

Sip Resistor is a single in pack Resistor (i.e.,) 8 resistors connected in series. Basically

SIP resistor is a 9 pin connector first pin is for power supply to the entire 8 resistors in

SIP.

Generally SIP Resistor is used to close the open drain connections of Port 0.

Page 39: Obstacle Robot

BLOCK DIAGRAM:

POWER SUPPLY:

Step DownTransformer

BridgeRectifier

FilterCircuit Regulator

section

MICROCONTROLLER AT89S52

RPSL293D

INFRAREDSENSOR

CRYSTAL ROBOTICPLATFORM

Page 40: Obstacle Robot

DESCRIPTION:

A robot can talk, walk, run and do anything as per logic embedded in it even

though the robot can do the above things. It seems a useless thing if it is uncontrollable.

Here controlling a robot is main task has to consider while designing any robot.

In this project an ultrasonic sensor is used to detect any obstruction and in turn

signals to the microcontroller and same displays on the LCD. An ultrasonic sensor is a

dual communication means transmitting and receiving. According to received data

vehicle will stop automatically.

Since robotic platform is equipped with two motors for the drive, controlling the

motors, i.e. When making a right turn, the right wheel can be stopped i.e. Power to the dc

motor is switched off. The left wheel is driven i.e. Left dc motor is on. This causes the

system to take a right turn. Similarly for left turn.

The detector circuitry consists of two ultrasonic integrated detection. The detector

houses the transmitter as well as receiver. The detectors are positioned accurately either

side. Once the detector recognizes any obstruction, the microcontroller signals the vehicle

to stop.

The system uses a compact circuitry built around flash version of at89s52

microcontroller with a non-volatile memory capable of retaining the password data for

over ten years. Programs are developed in embedded c using ride compiler. Isp is used to

dump the code into the microcontroller.

Page 41: Obstacle Robot

INFRARED SENSOR

As the infrared sensor device, PZT(Lead[Pb:Plumbum] Zirconate Titanate) is used. This

material has the nature that the electric charge in the surface is divided into the positive

electric charge and the negative electric charge in the usual condition.(Spontaneous

polarization)

The distribution of the electric charge is disordered when the infrared rays lash this

material and the voltage occurs. The infrared sensor outputs the change of this voltage.

The infrared sensor has the kinds such as the single type, the dual type, the quad type.

The dual type is often used to detect the move of the person, vehicle or the animal.

The two identical shape elements are used

for the dual-type sensor. And, it is put for

the pole of the element to become

opposite. When the change of the infrared

quantity occurs, being simultaneous with

the element which was put in this way,

because the occurring voltage is opposite,

it denies each other and the voltage doesn't appear in the output. The output voltage

changes only when there is a difference in the quantity of the infrared rays which enter

both elements. Because the same change occurs to both elements even if the infrared

quantity of the background in the place to detect with the sensor changes, little change of

the output occurs even if it occurs. When the person or the animal crosses the sensor, the

quantity of the infrared rays which enter both elements becomes not equal and the change

of the voltage appears in the output.

The body of the human being or the animal is emitting the infrared rays. This circuit is the

Page 42: Obstacle Robot

circuit to detect the change of the infrared rays by the infrared sensor and to work the

relay. Because the Fresnel lens is put to the infrared sensor, the move of the person in the

very narrow range can be detected. The important part is the pyroelectric infrared sensor. I

used the pyroelectric infrared sensor(RE814S) which is made by the NIPPON CERAMIC

company.

AT THIS DETECTION EQUIPMENT, FOLLOWING DEVICE

IS DONE TO MAKE DETECT ONLY THE MOVE OF THE

PERSON OR THE ANIMAL AS MUCH AS POSSIBLE.

It uses the dual element type as the infrared sensor and it makes to detect the change

of the infrared rays in the background little.

It makes the object place to detect using the Fresnel lens narrow.

It is using the band pass filter for the amplifier and it makes to detect the change

which was slowly or the too quick change little.

It uses the window comparator and the movement where little change occurs makes

not detect.

IR LED

A new range of broadband IR LEDs is now distributed by Scitec Instruments.

Typical emission bandwidth is 0.5 mm and power levels at 10s to 100s of microwatts

depending on duty cycle etc.

An electroluminescent IR LED is a product which requires care in use. IR LEDs are

fabricated from narrow band heterostructures with energy gap from 0.25 to 0.4 eV.

That's why the bias used to initiate current flow is low compared to the well known

visible or NIR LEDs. Typical forward bias is V~0.1- 1 V only for mid-IR LEDs!

Page 43: Obstacle Robot

Applications Remote Control Night Vision Traffic Automotive Lighting Switch Home Lighting Switch

Features Infrared with Large angle Low Power Consumption Longer Life Time I.C. Compatible

Typical Electrical & Optical Characteristics (Ta=25 Deg. C) DC forward voltage : VF (IF =20mA) 1.2V-1.4 Typ, 1.6VMax DC reverse current : IR (VR =5V) 100uA Power Output(Po) : Iv (IF =20mA) BI01 : 15 +/- 10mW Wavelength : Iv (IF =20mA) 940nm Outer Dimension: 5mm

MOTOR

Whenever a motorics hobbyist talk about making a motor, the first thing

comes to his mind is making the motor move on the ground. And there are

always two options in front of the designer whether to use a DC motor or a

stepper motor. When it comes to speed, weight, size, cost... DC motors are

always preffered over stepper motors. There are many things which you can

do with your DC motor when interfaced with a microcontroller. For example

Page 44: Obstacle Robot

you can control the speed of motor, you can control the direction of rotation,

you can also do encoding of the rotation made by DC motor i.e. keeping

track of how many turns are made by your motors etc. So you can see DC

motors are no less than a stepper motor.

In this part of project we will learn to interfacing a DC motor with a

microcontroller. Usually H-bridge is preffered way of interfacing a DC

motor. These days many IC manufacturers have H-bridge motor drivers

available in the market like L293D is most used H-Bridge driver IC. H-

bridge can also be made with the help of trasistors and MOSFETs etc. rather

of being cheap, they only increase the size of the design board, which is

somtimes not required so using a small 16 pin IC is preffered for this

purpose.

Working Theory of H-Bridge

The name "H-Bridge" is derived from the actual shape of the switching

circuit which control the motoion of the motor. It is also known as "Full

Bridge". Basically there are four switching elements in the H-Bridge as

shown in the figure below.

Page 45: Obstacle Robot

As you can see in the figure above there are four switching elements named

as "High side left", "High side right", "Low side right", "Low side left".

When these switches are turned on in pairs motor changes its direction

accordingly. Like, if we switch on High side left and Low side right then

motor rotate in forward direction, as current flows from Power supply

through the motor coil goes to ground via switch low side right. This is

shown in the figure below.

Page 46: Obstacle Robot

Similarly, when you switch on low side left and high side

right, the current flows in opposite direction and motor

rotates in backward direction. This is the basic working of H-

Bridge. We can also make a small truth table according to

the switching of H-Bridge explained above.

As already said, H-bridge can be made with the help of trasistors as well as

MOSFETs, the only thing is the power handling capacity of the circuit. If

motors are needed to run with high current then lot of dissipation is there. So

head sinks are needed to cool the circuit.

Page 47: Obstacle Robot

LIQUID CRYSTAL DISPLAY

INTRODUCTION:

An LCD or a liquid crystal display consists of liquid crystals between electrodes.

The arrangement consists of polarization filters which are aligned perpendicular to each

other. This arrangement doesn’t allow any visible light if there was no liquid crystal

between the filters. This arrangement is aligned in between transparent conductors.

When sufficient voltage is applied to a certain pixel, the crystal at that pixel aligns

such that no light passes through it. Therefore that particular pixel appears dark. If such

an electric field is applied for a longer period, the alignment of the crystal change and

the quality of LCD degrades. In a bigger LCD display, to provide voltage sources to

each pixel, the rows and column lines are multiplexed.

PIN DESCRIPTION OF THE LCD:

Page 48: Obstacle Robot

TABLE: 4.1 PIN DESCRIPTION OF LCD

LCD INTERFACE WITH MICROCONTROLLER

INTERFACING LCD TO MICROCONTROLLER

MICROCONTROLLER

PORTPINS

Page 49: Obstacle Robot

The LCD is generally interfaced in 8-bit mode or 4-bit mode. in this project LCD is

connected in 4-bit mode the interface connections of LCD with microcontroller are as

follows

RS of LCD is connected to p0.0 of microcontroller

EN of LCD is connected to p0.1 of microcontroller

D4 of LCD is connected to p0.4 of microcontroller

D5 of LCD is connected to p0.5 of microcontroller

D6 of LCD is connected to p0.6 of microcontroller

D7 of LCD is connected to p0.7 of microcontroller

In 8-bit mode, the complete ASCII code is sent at once along with the control

signals. But in 4-bit mode, the data is divided into two parts, i.e. MSB & LSB, and are

called upper nibble & lower nibble.

The control signals are RS, R/W & E. RS is used to select the internal registers i.e.

data register & command register. R/W is used to set the mode of LCD to read mode or

write mode. E is used as chip select and is used to push the data internally to the

corresponding registers.

To transfer the data/command in 8-bit mode, the data is written to the 8-bit data bus

after selecting the required register and setting the mode to write mode. The E signal pin

is then given a high to low signal to transfer the data.

To transfer the data/command in 4-bit mode, the higher nibble is first written to the

MSB of the data port and the E is given a high to low signal. After a little delay or when

the LCD is not busy, the lower nibble is transferred in the same procedure.

LCD COMMANDS

Page 50: Obstacle Robot

Chapter 4

Software implementation

4.1 RIDE

Please note that in this page RIDE will reference to RIDE6 software which

supports 8051, XA and other derivates. For ARM, ST7 and STM8 family the software is

RIDE7.

RIDE is a fully featured Integrated Development Environment (IDE) that

provides seamless integration and easy access to all the development tools. From editing

to compiling, linking, debugging and back to the start, with a Simulator, ICE, Rom

Monitor or other debugging tools, RIDE conveniently manages all aspects of the

Embedded Systems development with a single user interface.

Page 51: Obstacle Robot

Fig: RIDE

Multi-file Editor

RIDE is based on a fast multi-document editor designed to meet the specific

needs of programming. The various methods, menus, commands, and shortcuts are all

fully compliant with the Microsoft® specifications for Windows 2000, XP and NT.

Classic commands, such as string search and block action are integrated. Advanced

features such as Matching Delimiter (parenthesis, brackets), Grep (multi-file search) and

Indenter are integrated as well. The customizable color-highlighting feature is very useful

to indicate specific syntactic elements as they appear in the source file: keywords,

comments, identifiers, operators, and so on. The color-highlighting feature is

automatically keyed to the intrinsic file type (which means, it works differently for C and

assembler).This permits the user to identify quickly and easily those parts of the code

responsible for syntax errors.

HTTP://WWW.RAISONANCE.COM/PRODUCTS/INFO/RIDE.PHP - TOP

Project Manager:

The project manager creates links between the various files that includes a project

and the tools necessary to create that project. A project is dedicated to a particular target:

8051, XA, or other microcontrollers. The linker manages object and library files, and

output format conversion as necessary.

Page 52: Obstacle Robot

Fig Project Manager

Tree-structured projects ease the management of the most complex applications

(bank switching, flash, multi-processor, multi-module...). The ‘Project Make’ command

directs the integrated "make" utility to build or rebuild the target programs for the current

project. To avoid wasting time, each source file will be translated by its associated tool

only if any of its dependencies are found to be out of date. Dependency analyses, even

directly or indirectly included files, are automatic.

Options can be defined as global (for all the files) or as local (for a specific node or file).

Individual attributes can be set for any file in the project. Similarities between the

different tools make migration from one processor family to another immediate and easy,

permitting multi-processor projects.

HTTP://WWW.RAISONANCE.COM/PRODUCTS/INFO/RIDE.PHP-TOP.

The Message Window and the On-line Help:

The message window displays all warning, error, and progress messages

generated during the processing of files associated with each project.

Clicking on an error string in the message window automatically positions the cursor at

the point of that error in the source code window.

The Online help system is context-sensitive and provides information on nearly

all aspects of RIDE. A specific help file is supplied with each tool driven by the IDE ('C'

Page 53: Obstacle Robot

Compiler, Assembler, Linker, and RTOS). Online menu hints appear on the status line

whenever you select a menu command.

Fig Message

HTTP://WWW.RAISONANCE.COM/PRODUCTS/INFO/RIDE.PHP-TOP.

The Script Language:

Most RIDE commands can be run from a script file. Scripts are written in a C-like

language, and are interpreted at execution time. With the script language, most repetitive

tasks can be done automatically thus speeding up operations and reducing the probability

of errors. Scripts are very useful for Hardware Testing (board, emulator) and to initialize

the system to a known status, but can also be conveniently used for other tasks such as

creating very complex breakpoints or redirecting some output to a file to run a 'batch'

debug session.

HTTP://WWW.RAISONANCE.COM/PRODUCTS/INFO/RIDE.PHP-TOP.

Context Saving:

When a project is closed, the whole associated context is saved (open file list,

window size and position etc.). Settings associated with the debugger are also saves such

as breakpoints, watches etc...

HTTP://WWW.RAISONANCE.COM/PRODUCTS/INFO/RIDE.PHP-TOP

Integrated High-level Debug:

Page 54: Obstacle Robot

RIDE provides a fully integrated source-level debugging environment. All

information necessary is derived from the translators used to accomplish each step of the

process. This includes mundane aspects such as "path names", and source code specific

information such as details of complex data types.

With the simple click of a mouse button, the user can select among several

powerful capabilities: simulate, monitor, or emulate. The fast smooth integration given by

RIDE promotes a feeling of familiarity and ease of use, while providing a level of

comfort and efficiency that reduces the most difficult and complex applications to tasks

that are easily managed. This seamless progression of the "code-translate-link-debug-

test" cycle is the result of perfect communication between the programming tools and the

debugger. This is the heart of RIDE.

Fig : Debugger

Integral Simulation:

RIDE includes simulation engines for most 8051, and XA derivatives. The

simulator/debugger is cleanly integrated into the presentation Windows. A wide range of

'views' can be selected to provide flexible direct examination of all memory spaces as

well the all internal peripherals. The simulation engines perform detailed and faithful

simulations (including IDLE or Power down modes), of all peripherals (including

interrupt and watchdog events) present on the selected component.

Page 55: Obstacle Robot

Advanced Features

RIDE provides a rich variety of 'views' into an application. These views or

windows are associated with control commands like complex breakpoints or high level

trace recording.

HTTP://WWW.RAISONANCE.COM/PRODUCTS/INFO/RIDE.PHP - TOP

4.2 ISP 3.0

Introduction

This ISP Programmer can be used either for in-system programming or as a stand-

alone spi programmer for Atmel  

ISP   programmable   devices.  The   programming   interface   is   compatibe

to   STK200   ISP programmer hardware so the users of STK200 can also use the

software which can program both the 8051 and AVR series devices.

Hardware

The power to the interface is provided by the target system. The 74HCT541 IC

isolates and buffers the parallel port signals. It is necessary to use the HCT type IC in

order to make sure the programmer should also work with 3V type parallel port.

The printer port buffer interface is same as shown in figure 1.For the u-

controllera40pinZIFsocketcanbe used. This  programmer  circuit  can be use to program

the 89S series  devices and the AVR series device switches are  pin  compatible  to  8051,

like  90S8515.  For other AVR series devices the user can make an adapter board for 20,

Page 56: Obstacle Robot

28 and 40 pin devices. The pin numbers shown in brackets correspond to PC parallel port

connector.

Software

The ISP-30a.zip file contains the main program and the i/o port driver. Place all

files in the same folder. The main screen view of the program is shown in figure 3.

Also   make   sure   do   not   program    the    RSTDISBL    fuse   in   ATmega8,  

ATtiny26  and  ATtiny2313 otherwise  further  spi  programming  is  disable  and  you 

will  need  a  parallel  programmer  to  enable  the

spi  programming.  For the fuses setting consult the datasheet of the respective device.

For the auto hardware detection it is necessary to short pin 2 and 12 of

DB25connector, otherwise the software uses the default parallel port i.e. LPT1.

Following are the main features of this software,

Read and write the Intel Hex file.

Read signature, lock and fuse bits.

Clear and Fill memory buffer.

Verify with memory buffer.

Reload current Hex file.

Display buffer checksum.

Program selected lock bits & fuses.

Auto detection of hardware.

Note: The  memory  buffer  contains  both  the  code  data  and  the   eeprom  data 

for the  devices which have eeprom  memory. The  eeprom  memory  address 

in  buffer is  started  after he code memory, so it is necessary the hex file should contains 

Page 57: Obstacle Robot

the eeprom start address after the end of code memory last address i.e. for 90S2313 the

start address for eeprom memory is 0x800.

The software   does   not    provide    the     erase    command     because    th

s   function   is   performed automatically during device programming.  If you

are required to erase the controller, first use the clear

buffer command then program the controller, this will erase the controller and also set the

AVR device fuses to default setting.

Fig  Main screen of the program ISP-Pgm Ver 3.0a

4.3 EMBEDDED ‘C’

Ex: Hitec – c, Keil – c

HI-TECH Software makes industrial-strength software development tools and C

compilers that help software developers write compact, efficient embedded processor

code.

Page 58: Obstacle Robot

For over two decades HI-TECH Software has delivered the industry's most

reliable embedded software development tools and compilers for writing efficient and

compact code to run on the most popular embedded processors. Used by tens of

thousands of customers including General Motors, Whirlpool, Qualcomm, John Deere

and many others, HI-TECH's reliable development tools and C compilers, combined with

world-class support have helped serious embedded software programmers to create

hundreds of breakthrough new solutions.

Whichever embedded processor family you are targeting with your software,

whether it is the ARM, PICC or 8051 series, HI-TECH tools and C compilers can help

you write better code and bring it to market faster.

HI-TECH PICC is a high-performance C compiler for the Microchip PIC micro

10/12/14/16/17 series of microcontrollers. HI-TECH PICC is an industrial-strength ANSI

C compiler - not a subset implementation like some other PIC compilers. The PICC

compiler implements full ISO/ANSI C, with the exception of recursion. All data types are

supported including 24 and 32 bit IEEE standard floating point. HI-TECH PICC makes

full use of specific PIC features and using an intelligent optimizer, can generate high-

quality code easily rivaling hand-written assembler. Automatic handling of page and

bank selection frees the programmer from the trivial details of assembler code.

Embedded C Compiler

ANSI C - full featured and portable.

Reliable - mature, field-proven technology.

Multiple C optimization levels.

An optimizing assembler.

Full linker, with overlaying of local variables to minimize RAM usage.

Comprehensive C library with all source code provided.

Includes support for 24-bit and 32-bit IEEE floating point and 32-bit long data

types.

Page 59: Obstacle Robot

Mixed C and assembler programming.

Unlimited number of source files.

Listings showing generated assembler.

Compatible - integrates into the MPLAB IDE, MPLAB ICD and most 3rd-party

development tools.

Runs on multiple platforms: Windows, Linux, UNIX, Mac OS X, and Solaris.

Embedded Development Environment.

PICC can be run entirely from the. This environment allows you to manage all of

your PIC projects. You can compile, assemble and link your embedded application with a

single step.

Optionally, the compiler may be run directly from the command line, allowing

you to compile, assemble and link using one command. This enables the compiler to be

integrated into third party development environments, such as Microchip's MPLAB IDE.

Page 60: Obstacle Robot