Speech Recognition in Robot

May 8th, 2011 by admin No comments »

Introduction:

Think about a creating a car which would be controlled by your voice. By giving a command, the car would drive you to your destination.   The voice recognition algorithm we used could be applied to daily life; for example it would be most helpful to disabled people to perform their daily work. We created a speech controlled car using various electrical and mechanical domains such as digital signal processing, analog circuit design, and interfacing the robot with the computer.

In this project we are controlling the robot based on the speech.

Based on the words we uttered the robot perform the required action. For example if we utter the word “FORWARD” the robot will move in the forward direction.

Goal of the project: The main goal of this project is to control a robot using the speech commands from the user

Development of the project:

1.Speech recognition: speech coding is done in MATLAB.

2.Parallel communication: code is written in MATLAB(PC) and the parallel port of the PC is used.

Initial Problem:

A human can easily recognize a familiar voice however, getting a computer to distinguish a particular voice among others is a more difficult task. Immediately, several problems arise when trying to write a voice recognition algorithm. The majority of these difficulties are due to the fact that it is almost impossible to say a word exactly the same way on two different occasions. Some factors that continuously change in human speech are how fast the word is spoken, emphasizing different parts of the word, etc. In order to analyze two sound files in time domain, the recordings would have to be aligned just right so that both recordings would begin at precisely the same moment.

Requirements:

Hardware requirements:

  • Chassis for robot.
  • DC gear head motors
  • Parallel Port cable and sockets
  • L293D(motor controller IC)

Software requirements:

  • MATLAB 7.0

Actual Hardware

Hardware

State chart description:

Running State: Executing previous command and waiting for new command.

X =Right/ Left/Forward/Back/

Working:

  1. 1. Training Process:

Recognition of orders is based on a dictionary of words. The creation of the dictionary represents the training operation – to determine the specifics of each word, e.g. the way a word is said and save it for later recognition. Training is done by repeating the words and updating the Dictionary after each pronounced command.

The training process is carried out by recording the voice input from the microphone at the sampling rate of 88200 resulting in 44100 voice samples.

2. Analysis:

The recorded speech is analyzed in order to have the parameters that will further be compared to recognize the commands by the user. The analysis process includes the calculation regarding the number of samples crossing the threshold value in the time frame in which the word is spoken. Hence speech part of the recording is extracted and the number of samples crossing the threshold amplitude approximated for the voice commands is calculated and stored in an array.

The same process is carried out for each of four commands. At the same time the plots of the voice commands are obtained as follows :

Magnitude Plots of Voice Commands:

Forward

Left

Right

Basckward

1. Recognition:

Recognition process involves matching the command given by the user to the commands stored in the dictionary and identifying the right word. For the recognition process the voice command is again recorded and then is compared to the previously recorded commands. The value of the samples voice part crossing the threshold value are again counted and compared to the previously recorded commands. The command closely matching is considered as the spoken word. According to the command recognized the output is produced at the parallel port.

2. Implementation:

Now to implement this hardware we required a machine so chosen the easiest i.e. a robot. This robot has got parallel port connector which is used to connect the robot to PC. Now as the recognition of a word or command is complete then the motors of the robot is controlled by sending the respective binary vector through the parallel port again through the MATLAB. And the respective movement is seen in the robot.

Software description:

The code of this project is written in MATLAB, both for speech recognition and robot control via Parallel port. The following files in the voice recognition folder contain the code of the project:

Code Structure:

  1. 1. voicetrain.m

The training part of the process is done by typing the ‘voicetrain’ in the command window. It serves the purpose of taking input from the microphone and replaying it for the user to identify is it correct or not. The similar process is carried out for each of four commands individually. The respective value of each command is stored in an array so that can be used further comparison of the voice.

  1. 2. voicecomp.m

The comparison part of the speech can be carried out by typing ‘voicecomp’ in the command window. This file will again take the recording from the user and will replay it for the user to identify if it is correct or not.  Now this recording is compared with the previously recorded commands and the nearest possible match is considered as the command given by the user. This file also contains the code for initialization and control of the parallel port and hence the respective value of the command is sent to the parallel port and accordingly the motors are controlled.

The general commands used in the code are described as follows:

  1. 1. Wavrecord:

Record sound using a PC-based audio input device.

Syntax:

y = wavrecord(n,Fs)

y = wavrecord(…,ch)

Description:

y = wavrecord(n,Fs) records n samples of an audio signal, sampled at a rate of Fs Hz (samples per second). The default value for Fs is 11025 Hz.

  1. 2. sound :

Convert vector into sound

Syntax:

sound(y,Fs)

Description:

sound(y,Fs) sends the signal in vector y (with sample frequency Fs) to the speaker on PC. Stereo sound is played on platforms that support it when y is an n-by-2 matrix.

  1. 3. Disp:

Display text or array

Syntax:

disp(X)

Description:

disp(X) displays an array, without printing the array name. If X contains a text string, the string is displayed.

  1. Digitalio:

Create digital I/O object

Syntax

DIO = digitalio(‘adaptor’,ID)

Description:

DIO = digitalio(‘adaptor’,ID) creates the digital I/O object DIO for the specified adaptor and for the hardware device with device identifier ID. ID can be specified as an integer or a string.

  1. Addline:

Add hardware lines to digital I/O object

Syntax:

lines = addline(obj,hwline,’direction’)

lines = addline(obj,hwline,port,’direction’)

Description:

lines = addline(obj,hwline,’direction’) adds the hardware lines specified by hwline to the digital I/O object obj. direction configures the lines for either input or output. lines is a row vector of lines.

lines = addline(obj,hwline,port,’direction’) adds the hardware lines specified by hwline from the port specified by port to the digital I/O object obj.

  1. Putvalue:

Write values to lines

Syntax:

putvalue(obj,data)

putvalue(obj.Line(index),data)

Description:

putvalue(obj,data)  writes data to the hardware lines contained by the digital I/O object obj.

putvalue(obj.Line(index),data)  writes data to the hardware lines specified by obj.Line(index)

Other commands used in MATLAB include control statements like while, for, if etc.

Hardware description

Hardware of this project is build using a simple robot body having two DC gear head motors. These gear head motors are controlled by an H-Bridge IC (L293D). This IC is directly driven by parallel port of the PC connected via parallel port cable. The motor movements are controlled through MATLAB by sending the commands through parallel port.

Circuit Diagram:

The hardware components of the projects are:

  1. 1. H-Bridge IC:

The L293D is a quadruple high-current half-H drivers. The L293 is designed to provide bidirectional drive currents of up to 1 A at voltages from 4.5 V to 36 V. The L293D is designed to provide bidirectional drive currents of up to 600-mA at voltages from 4.5 V to 36 V. Both devices are designed to drive inductive loads such as relays, solenoids, dc and bipolar stepping motors, as well as other high-current/high-voltage n loads in positive-supply applications.

This IC contains two H-bridge circuits that can control maximum of two motors. Here the four control inputs of the IC are coupled with the four data pins of the parallel port. The descriptive connection of the motor with the motors is shown in the figure below. Also the figure below shows the detailed pin description of L293D.

Pin Diagram:

The L293D comes in 16 pin DIP package whose pin description is shown below:

Motor connections to L293D:

Controls:

Both Inputs motor      (1  -1 )   halt

first high second low   (1 – 0) motor forward

first low second high   (0 – 1) motor reverse

both low                               (0-0) motor stop

1. Parallel Port

A parallel port is a type of interface found on computers (personal and otherwise) for connecting various peripherals. In computing, a parallel port is a parallel communication physical interface. It is also known as a printer port or Centronics port. The IEEE 1284 standard defines the bi-directional version of the port, which allows the transmission and reception of data bits at the same time.

Parallel port is preferred in our project in order to have an easy interface of our robot with the PC as well as to MATLAB.

Hence the four data pins of the parallel port 2,3,4,5 respectively are connected to the control pins of L293D. The pin numbers 18 to 25 are ground pins and are connected to ground.

Originally designed only for printers, the parallel port turned out to be an amazingly flexible and universal interface for attaching a host of different devices to a variety of PCs. While rather slow, the parallel port has the advantages of being (mostly) standard, and present on virtually every PC. For this reason, it is often used for attaching external devices such as hard disks, CD-ROM drives and tape drives, especially for PCs that lack other expansion alternatives such as notebooks. For many years, I personally used a parallel-port Iomega Zip drive when I was maintaining several dozen PCs that were not networked; it was very helpful for transferring files between machines and doing backups. The parallel port can also be used with special software to connect two PCs together to let them share files.

DC Gear head Motors:

We have used plastic gear head motors as they are economic and light weight. They also consume less power hence battery can last long. Though they can be replaced by iron gear head motors so as to increase torque and minimize the inertial effects.

Motor alignment:

Author

Ajitesh Pandey

Oriental engineering College Jabalpur (MP)

Contact for code-+919770947098

Another propeller using 89c2051

July 6th, 2010 by admin No comments »

This project is made by APOORV CHINCHOLKAR, third year engineering student from

Vidyaprathishthan’s College of Engineering,Baramati.We are thankful for providing us your contribution’s.

This project is a special kind of circular LED display. With the help some mechanical assembly, LED count, hardware requirement, and hence overall cost is cut to very affordable price. Also, maintenance and repairing of the display is so easy, that anyone having a little electronics knowledge, can take care of this. All the synchronizing can be implemented through software.

First of its kind, made using the 20-pin 8051 series microcontroller, this project use the principle of Space Multiplexing. This propeller display is mechanically scanned and displays the characters in digital format. Made from scrap it can be used anywhere and everywhere and the most amazing fact about this display is it’s crystal clear display. This display consists of just 8 bright LEDs which are rotated to show the display.

For building this project, requirement is just a small 20 pin microcontroller, a position encoder, and LEDs. This display can show the messages, which will require a whopping 525 LEDs. So hardware and cost minimization is achieved.

Circuit Diagram

cricuit

propeller

This project was started with a simple principle which is frequently encountered in our everyday life, which is Persistence of Vision. This phenomenon makes one feel fast moving/changing objects to appear continuous. A television is a common example, in which image is re-scanned every 25 times, thereby appear continuous.

Further, a glowing object if rotated in a circle at fast speed, it shows a continuous circle. By modifying this basic idea, 8 LEDs can be rotated in a circle, showing 8 concentric circles. But if these LEDs are switched at precise intervals, a steady display pattern can be shown.

Existing Systems:

Existing systems do employ POV principle, but for displaying each pixel, individual LED is used. This results in a huge number of LEDs even for small sized displays. By using a propeller type display, LED count can be kept to a bare minimum. Even 8 LEDs can perform a task of over 525 LEDs.

Applications:

Applications can find their way into cost effective solutions for large public displays, information systems. It can directly replace Railway station information displays, bus stands and many more places.

  1. 1. Interrupter Module

Interrupter module is our sensor module, consisting of the IR interrupt sensor MOC7811, from Motorola Inc. This sensor was selected from a variety of other alternatives, because of its small size, precise interrupt sensing, and sturdy casing.

One great advantage of using this module is, interfacing it with the microcontroller is just a matter of two resistors and a general purpose transistor. Following is the complete circuit diagram of our interrupter module.

interrupter

2.Microcontroller AT89C2051

This project is based around the microcontroller AT89C2051, which is a derivative of 8051 family, from Atmel Inc. This is a 20 pin IC packaged in DIP package. This small sized IC is used, mainly because of its reduced weight. This improves the performance of the display, because reduced weight gives advantage of increased RPM.

3.LED MODULE

LED module consisting of 8 bright LED is fixed in another side of the arm of our project. These LEDs are connected with each of the port pin of microcontroller, with a series current limiting resistor of 470 ohm.

4.DC Motor

Repeated scanning of the display is must for continuous vision. This task is achieved using circular rotation of the whole circuit assembly. So, we used a DC motor as the prime mover.

5.DC Power Supply

For microcontroller, as well as the DC motor, a regulated DC power supply is required. We have to provide +5V to the microcontroller, while +12V to the motor.

Photo graphs

Analog line tracking robot

May 11th, 2010 by admin No comments »

line tracer

ANALOG Line tracer

Components Used:

  • · IC LM358.
  • · N2907/2n2222 Transistors.
  • · 10k Resistors.
  • · 10k Presets.
  • · Photo Diode with LED Sensor
  • · DC Gear Head Motor.
  • · 9v power supply/battery.

Made By:AtuL Patel

Guided: Mr. Anupam Dubey

components

LM358- Low Power Dual Operational Amplifiers

BASIC CONCEPT:

This line follower is based on the concept of light detection by a photo diode. When the photodiode is introduced with black surface, the light produced by LED is absorbed by the surface and there is no conduction in photo diode, which sets the comparator output to a positive voltage. Due to this positive voltage the transistor gets triggered by this voltage and N2907 transistor comes in on state being a NPN transistor and hence the motor turns ON.

The same mechanism rotates the another motor by the working of another photo diode.Now for the turn or to maintain its path, as soon as any photodiode gets influenced by the light reflected by the white surface the respective motor stops and the another motor automatically turns the line follower to its right path. And again the both motor starts there functioning and the line follower travels in a straight path.

Similarly, when N is replaced by 2N2222, the photodiode turns on in white light. Hence comparator produces negative output, which further triggers the transistor. This turns the motor ON. Rest of the mechanism of turning is same as above.

circuit

General Description

The LM358 series consists of two independent, high gain, internally frequency compensated operational amplifiers which were designed specifically to operate from a single power supply over a wide range of voltages. Operation from split power supplies is also possible and the low power supply current drain is independent of the magnitude of the power supply voltage. Application areas include transducer amplifiers, dc gain blocks and all the conventional op amp circuits which now can be more easily implemented in single power supply systems. For example, the LM358 series can be directly operated off of the standard a5V power supply voltage which is used in digital systems and will easily provide the required interface electronics without requiring the additional g15V power supplies.

Unique Characteristics

  • In the linear mode the input common-mode voltage range includes ground and the output voltage can also swing to ground, even though operated from only a single power supply voltage.
  • The unity gain cross frequency is temperature compensated.
  • The input bias current is also temperature compensated.

Advantages

  • Two internally compensated op amps in a single package
  • Eliminates need for dual supplies
  • Allows directly sensing near GND and VOUT also goes to GND
  • Compatible with all forms of logic
  • Power drain suitable for battery operation

Features

  • Internally frequency compensated for unity gain
  • Large dc voltage gain 100 dB
  • Wide bandwidth (unity gain) 1 MHz (temperature compensated)
  • Wide power supply range: Single supply 3V to 32V or dual supplies g1.5V to g16V
  • Very low supply current drain (500 mA) essentially independent of supply voltage
  • Low input offset voltage 2 mV
  • Input common-mode voltage range includes ground
  • Differential input voltage range equal to the power supply voltage
  • Large output voltage swing 0V to Vab 1.5V.

N2907 Transistor:

The 2N2907 also known as the PN2907 is a small PNP BJT Transistor used for general purpose low power amplifying or switching applications. It is designed for low to medium current, low power; medium voltage and can operate at moderately high speed.

It is a 1amp, 50v, 300mW transistor capable of operating up to 100 MHz it is used in variety of analog application and switching application.

Pin Out Diagram of LM358

ICdata

Bottom view

robot

Alignment of DC gear head Motors

robot2

Top View

robot3

One more by

robotl

Propeller Clock using 8051 microcontroller

August 13th, 2009 by admin No comments »

First of its kind, made using the at89s52 microcontroller.

This propeller clock is mechanically scanned and displays the time

in digital format. Made from scrap it can be used anywhere and
everywhere and the most amazing fact about this clock is it’s
crystal clear display.
It just took  three days to complete this clock. This clock consists
of just 8 bright red LEDS which are rotated to show the display.

Have a look at the screenshots ,these were taken during the

development stage of the clock.

Now , take a look at how we proceeded and ended up making this clock
 a success.propeller clock

First this was just an idea we saw one day on the internet ,it was

Bob Blick who made it first using the PIC 16C84, but I was not
having the same microcontroller so I decided making the same from
the 8051 microcontrollers.
Firstly select a high speed motor, you can select the one from your
old tape recorders, that would be sufficient enough to drive this
clock.


Schematic

Schematic

Then coming to the circuitry part our clock just consist of the
at89S52 microcontroller ,8 bright red led, a perforated PCB,
8 resistances (220 Ω), a photo diode, an infrared transmitter,
 a motor,a pull up ladder,a 10µf cap, 12 volt battery .

The clock is on a spinning piece of pcb, but it must get power so to
 give the required power a 9 volt battery is applied which works
very fine as u can see the results are super fine.

The circuit can be made either by designing the pcb or it can be
made on a zero pcb as we have done , because doing it on a zero pcb
was very much easy.Firstly a 20 pin socket for the AT89C2051 was
attatched,then connecting the power supplies leds and resistances.

The circuit is very easy as it took me only 2 hours and by evening
the clock was running.

For the leds I used the 220 ohms resisors for proper brightness.

A crystal of 11.0592 Mhz was selected to provide the clock to the
microcontroller.

Connect the motor properly between the pcb so as to maintain the
centre of gravity so that the clock does not wobble and the display
is crystal clear.

So much done, now only thing left is programming the microcontroller.

I used the at89s52 microcontroller which belongs to the 8051
family of microcontrollers.so I used the kiel compiler to write the
program code.

The code is written in c language and the code finally burned to the
controller and the clock is running.

Software

For programming the microcontroller you will require a programmer.

You can use a parallel port programmer or make a serial port
programmer as per your requirements and availability.

Use keil compiler to compile the code.
Code have no logic to set the clock variable it will be updated soon.
we are also looking for scrolling message display.

Now as we see what runs this clock….yes the code.

Firstly we generated the look up table for the digits we want to
display on our clock .

These values will be stored in a double dimensional array and timely
called to generate the display.

The clock works using interrupts and timers.

The external interrupt used tells the microcontroleer that a single
revolution is completed and tells the timer to generate the display
and then stop after displaying. One timer i.e. the timer 1 is used
to generate the clock internally

And the external interrupt call the values of this timer everytime
to display the time.

We also use priority , that is priorities are assigned to the
interrupts and timers.
 Timer1 keeps the count of the time and timer0 performs the task of
displaying maintaining appropriate frames that would be displayed
and create a persistence of vision.

Here is the CODE

#include<at89x52.h>

const unsigned char code flook [][5] =

{

{ 0x3E, 0x51, 0x49, 0x45, 0x3E }, // 0

{ 0x00, 0x42, 0x7F, 0x40, 0x00 }, // 1

{ 0x42, 0x61, 0x51, 0x49, 0x46 }, // 2

{ 0x21, 0x41, 0x45, 0x4B, 0x31 }, // 3	  k*

{ 0x18, 0x14, 0x12, 0x7F, 0x10 }, // 4

{ 0x27, 0x45, 0x45, 0x45, 0x39 }, // 5

{ 0x3C, 0x4A, 0x49, 0x49, 0x30 }, // 6

{ 0x01, 0x71, 0x09, 0x05, 0x03 }, // 7

{ 0x36, 0x49, 0x49, 0x49, 0x36 }, // 8

{ 0x06, 0x49, 0x49, 0x29, 0x1E } // 9

};

const unsigned char code colon[]={0x00,0x18,0x00};

unsigned char a,b,c,d,e,f;

bit tog;

void Int0(void) interrupt 0 using 2

{

EX0=0;   // Avoid another INT1* until we are completely finished...

TH0=0xA4;

TR0=1;    // Start timer 0

}

void timer0(void) interrupt 1  using 3

{

static unsigned char i,k;

k++;

if(k==12)

{

k=0;

if(i<5)	  //hours ten digit

{

P0=~(flook[f][i]);

i++;

}

else if(i==5)//space

{

P0=0xFF;

i++;

}

else if(i<11)//space

{

P0=~(flook[(e%10)][i-6]);

i++;

}

else if(i<14)//colon

{

if(tog==1)

{

P0=~(colon[i-11]);

}

else

{

P0=0xFF;

}
i++;
}

else if(i<19)//min tens

{

P0=~(flook[d][i-14]);

i++;

}

else if(i==19)//space

{

P0=0xFF;

i++;

}

else if(i<25)//min one

{

P0=~(flook[c][i-20]);

i++;

}

else if(i<28)//colon

{

if(tog==1)

{

P0=~(colon[i-25]);

}

else

{

P0=0xFF;

}
i++;
}

else if(i<33)//sec tens

{

P0=~(flook[b][i-28]);

i++;

}

else if(i==33)//space

{

P0=0xFF;

i++;

}

else if(i<39)//sec ones

{

P0=~(flook[a][i-34]);

i++;

}

else

{TR0=0;

P0=0xFF;

EX0=1;

i=0;

}

}

}

void delay()

{

int fi,fj;

for(fi=0;fi<160;fi++)

{

for(fj=0;fj<1250;fj++)	;

}

}

void main()

{

TMOD=0x02;

TH0=0xA4;

EX0   = 1;                      /* External interrupt 0 enable              */

IT0   = 1;                      /* External interrupt 0 Edge sesitive       */

ET0   = 1;                      /* Enable Timer 0 interrupts                */

PT0   = 1;                      /* Timer 0 high priority                    */

PX0   = 1;                      /* External interrupt 0 high priority       */

/*-----------------------------------------------

Configure INT0 (external interrupt 0) to generate

an interrupt on the falling-edge of /INT0 (P3.2).

Enable the EX0 interrupt and then enable the

global interrupt flag.

-----------------------------------------------*/

EX0 = 1;   // Enable EX0 Interrupt

EA = 1;    // Enable Global Interrupt Flag

P0=0xFF;

P3=0xFF;

a=0;	  //sec one's

b=0;	  //sec ten's

c=0;	  //min one's

d=0;	  //min ten's

e=0;	  //hr one's

f=0;	  //hr ten's

tog=0;

while(1)

{

delay();

tog=~tog;

a++;

if(a>9)

{

a=0;

b++;

}

if(b>5)

{

b=0;

c++;

}

if(c>9)

{

c=0;

d++;

}

if(d>5)

{

d=0;

e++;

}

if(e>12)

{

e=0;

}

if(e>9)

{

f=1;

}

else

{

f=0;

}

}

}

Digital Code Lock

July 23rd, 2009 by admin No comments »

schematic

We all know about the electronic code locking security system, here is the same concept of electronic code lock using AT89S52 i.e. 8051 family of micro controller. it has a 4×3 keypad for user input of password which will be numeric and a 20×4 alphanumeric LCD is used for user interface.

There are two kind of passwords one is the user password and the other is master password. when any user try to open the lock he must enter the right password which is of 5 digits. the user will be given 3 chances to enter the correct code otherwise he will be asked for the master password which is 10 digits long.

LCD Commands for 20×4 Alphanumeric LCD are as follows:

Goto first line 0×80

Goto second line 0xC0

Goto Third line 0×94

Goto Fourth Line 0xD4

Code for this project includes Keypad interfacing and logic for password check, as well as LCD routines. Download the complete source code as well as schematic for the project

#include<at89x52.h>
#include “lcd.h”

unsigned char pwd[]={1,2,3,4},usr[4];

void delayms()
{
int i,j;
for(i=0;i<120;i++)
{
for(j=0;j<1200;j++);
}
}

unsigned char getkey()
{ unsigned char i,key=0;
for(i=0;i<4;i++)     //row scanning
{
P1=~(0×80>>i);//0111 1111
if(P1_0==0)  //col check
{key=key+0;
while(P1_0!=1);
return key;
}
else if(P1_1==0)
{key=key+1;
while(P1_1!=1);
return key;
}
else if(P1_2==0)
{key=key+2;
while(P1_2!=1);
return key;
}
key=key+3;
}
return ‘x’;
}
void getpassword()
{
unsigned char i;
lcd_com(0xc2);
for(i=0;i<4;i++)
{ usr[i]=getkey();
while(usr[i]==’x')
{usr[i]=getkey();
}

if(usr[i]==10)
{
lcd_com(0×10);
lcd_data(‘ ‘);
lcd_com(0×10);
i=i-2;
}
else
{
lcd_data(0×30+usr[i]);
}
}
}
char checkpwd()
{
unsigned char i,c=0;
for(i=0;i<4;i++)
{
if(pwd[i]==usr[i])
c++;
}
if(c==4)
return 1;
else
return 0;
}
void main()
{ unsigned char t,tries=3;
P1=0xFF;
lcd_init();
lcd_com(0x0c);
lcd_com(0×01);
lcd_puts(“*DIGITAL LOCK*”);

while((tries)&&(t!=1))
{
getpassword();
t=checkpwd();
if(t==1)
{ lcd_com(0×80);
lcd_puts(“Authorised  “);
}
else
{
lcd_com(0×80);
lcd_puts(“wrong entry   “);
delayms();
lcd_com(0×01);
tries–;
lcd_data(0×30+tries);
lcd_puts(” tries-left”);

}
}
if(t==1)
{
lcd_com(0×01);
lcd_puts(“Thankyou”);
P0=0×00;
}
else
{
lcd_com(0×01);
lcd_puts(“Intruder Detected”);
P0=0xFF;
}
while(1){

}

}