mach do an.doc

Upload: trung-artc

Post on 14-Jan-2016

9 views

Category:

Documents


0 download

TRANSCRIPT

1

n vi iu khin

Bi bo co vi iu khin Robot do ngI. Mch

1. Mch iu khin 89S52a. Mch nguyn l

b. Mch in

2. Mch iu khin ng c IC MC 33486a. Mch nguyn l b. Mch in

3. Mch so snh (IC LM358)

a. Mch nguyn l

b. Mch in

4. Mt d ng

a. Mch nguyn l

b. Mch in

II. CODE Robot d ng

#include //========= nh ngha chiu quay bnh==========

#define go 1

#define back 0//-------------------------------------------------------------------

#define out 0xFF // 0B11111111

//============= nh ngha mt d================

#define R7 0x7F // 0B01111111

#define R6 0x3F // 0B00111111

#define R5 0xBF // 0B10111111

#define R4 0x9F // 0B10011111

#define R3 0xDF // 0B11011111

#define R2 0xAF // 0B11001111

#define R1 0xEF // 0B11101111

#define TT 0xE7 // 0B11100111

#define L1 0xF7 // 0B11110111

#define L2 0xF3 // 0B11110011

#define L3 0xFB // 0B11111011

#define L4 0xF9 // 0B11111001

#define L5 0xFD // 0B11111101

#define L6 0xFA // 0B11111100

#define L7 0xFE // 0B11111110

//-----------------------------------------------------------------

// =========== nh ngha Pin xung PWM, Pin iu khin=======

sbit xung=P2^0;

sbit dk1=P2^1;

sbit dk2=P2^3;

sbit xung2=P2^2;//------------------------------------------------------------------------------------

// khai bounsigned char tocdo1,tocdo2 ;

unsigned char x=0,y=0;

unsigned long int counter0=0;

unsigned char INPUT;// ==============Hm to tr===============void delay(unsigned long int a)

{

unsigned long int i;

for (i=0;i=(counter0*18))

{

INPUT=P1; // mt d ng nhn vo bng PORT 1.

switch (INPUT)

{

case TT:

{

banhphai(50,go);

banhtrai(50,go);

nhophai=0;

nhotrai=0;

break;

}

case L1:

{

banhphai(55,go);

banhtrai(45,go);

nhophai=0;

nhotrai=0;

break;

}

case L2:

{

banhphai(60,go);

banhtrai(40,go);

nhophai=0;

nhotrai=0;

break;

}

case L3:

{

banhphai(65,go);

banhtrai(35,go);

nhophai=0;

nhotrai=0;

break;

}

case L4:

{

banhphai(70,go);

banhtrai(30,go);

nhophai=0;

nhotrai=0;

break;

}

case L5:

{

banhphai(75,go);

banhtrai(25,go);

nhophai=1;

nhotrai=0;

break;

}

case L6:

{

banhphai(80,go);

banhtrai(20,go);

nhophai=1;

nhotrai=0;

break;

}

case L7:

{

banhphai(85,go);

banhtrai(15,go);

nhophai=1;

nhotrai=0;

break;

}

case R1:

{

banhphai(45,go);

banhtrai(55,go);

nhophai=0;

nhotrai=0;

break;

}

case R2:

{

banhphai(40,go);

banhtrai(60,go);

nhophai=0;

nhotrai=0;

break;

}

case R3:

{

banhphai(35,go);

banhtrai(65,go);

nhophai=0;

nhotrai=0;

break;

}

case R4:

{

banhphai(30,go);

banhtrai(70,go);

nhophai=0;

nhotrai=0;

break;

}

case R5:

{

banhphai(25,go);

banhtrai(75,go);

nhophai=0;

nhotrai=1;

break;

}

case R6:

{

banhphai(20,go);

banhtrai(80,go);

nhophai=0;

nhotrai=1;

break;

}

case R7:

{

banhphai(15,go);

banhtrai(85,go);

nhophai=0;

nhotrai=1;

break;

}

case out:

{

if (nhotrai == 1)

{

banhphai(90,go);

banhtrai(10,back);

}

if (nhophai == 1)

{

banhphai(10,back);

banhtrai(90,go);

}

break;

}

default :

{

if(((INPUT!=R1)||(INPUT!=R2)||(INPUT!=R3)||(INPUT!=R4)||(INPUT!=R5)||(INPUT!=R6)||(INPUT!=R7)||(INPUT!=L1)||(INPUT!=L2)||(INPUT!=L3)||(INPUT!=L4)||(INPUT!=L5)||(INPUT!=L6)||(INPUT!=L7)||(INPUT!=out)));

{

banhphai(50,go);

banhtrai(50,go);

}

break;

}

}

}}

//------------------------------------------------------------------------------//================ Hm Stop=============== void stop(void)

{

TR0=0;

TR1=0;

xung=0;

dk1=0;

dk2=0;

xung2=0;

}//------------------------------------------------------------------// Hm chnhvoid main (void)

{

TMOD=0x22;

IE=0x8B;

IT0=1;

IP=0;

while(1)

{

doduong(300); // d ng 3m dng.

stop();

while(1);

}

}

Bi s dng cc ti nguyn ca 89S52 nh sau:

Timer 0,1 ch 8bit to xung dng ngt 1,3

Ngt ngoi 0 m ng bng Encoder

PORT 1 nhn tn hiu t mt d

V Pin I/O iu khin

III. n Robot d ng dng vi iu khin 89S52

Thc hin n:Phm Vn Lng

L Xun nh

Nguyn Trn Cng

Lp: CDT- K9

CDT - K9

3