mach do an.doc
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