(bio)}:
bģK(q)С܇ca
[ӡ]
:
haitao4675
rg:
2016-7-7 17:46
(bio)}:
bģK(q)С܇ca
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit D0 = P0^0;
sbit D1 = P0^1;
sbit D2 = P0^2;
sbit D3 = P0^3;
//sbit VT = P0^4;
sbit MD_L1 = P1^0;
sbit MD_L2 = P1^1;
sbit MD_L3 = P1^2;
sbit MD_L4 = P1^3;
sbit MD_R1 = P1^4;
sbit MD_R2 = P1^5;
sbit MD_R3 = P1^6;
sbit MD_R4 = P1^7;
sbit LENA = P2^0;
sbit LENB = P2^1;
sbit RENA = P2^2;
sbit RENB = P2^3;
uchar pwm,num = 0, duty = 0, speed = 0,x=0, x1=0,x2=0,x3=0;
void delay(uint ms)
{
uchar i;
while(ms--)
{
for(i=0;i<200;i++);
}
}
void advance()
{
MD_L1=1;
MD_L2=0;
MD_L3=1;
MD_L4=0;
MD_R1=1;
MD_R2=0;
MD_R3=1;
MD_R4=0;
}
void back()
{
MD_L1=0;
MD_L2=1;
MD_L3=0;
MD_L4=1;
MD_R1=0;
MD_R2=1;
MD_R3=0;
MD_R4=1;
}
void left()
{
MD_L1=0;
MD_L2=0;
MD_L3=0;
MD_L4=0;
MD_R1=1;
MD_R2=0;
MD_R3=1;
MD_R4=0;
}
void left1()
{
MD_L1=0;
MD_L2=1;
MD_L3=0;
MD_L4=1;
MD_R1=0;
MD_R2=0;
MD_R3=0;
MD_R4=0;
}
void left2()
{
MD_L1=0;
MD_L2=1;
MD_L3=0;
MD_L4=1;
MD_R1=1;
MD_R2=0;
MD_R3=1;
MD_R4=0;
}
void right()
{
MD_L1=1;
MD_L2=0;
MD_L3=1;
MD_L4=0;
MD_R1=0;
MD_R2=0;
MD_R3=0;
MD_R4=0;
}
void right1()
{
MD_L1=0;
MD_L2=0;
MD_L3=0;
MD_L4=0;
MD_R1=0;
MD_R2=1;
MD_R3=0;
MD_R4=1;
}
void right2()
{
MD_L1=1;
MD_L2=0;
MD_L3=1;
MD_L4=0;
MD_R1=0;
MD_R2=1;
MD_R3=0;
MD_R4=1;
}
void stop()
{
MD_L1=0;
MD_L2=0;
MD_L3=0;
MD_L4=0;
MD_R1=0;
MD_R2=0;
MD_R3=0;
MD_R4=0;
}
void keyscan()
{
if(D0==0)
{
delay(5);
if(D0==50)
{
if(pwm<32)
{
pwm++;
delay(100);
}
}
}
if(D1==0)
{
delay(50);
if(D1==0)
{
if(pwm>1)
{
pwm--;
delay(100);
}
}
}
if(D2==0)
{
delay(50);
if(D2==0)
{
if(pwm<32)
{
pwm++;
delay(100);
}
}
}
if(D3==0)
{
delay(50);
if(D3==0)
{
if(pwm>1)
{
pwm--;
delay(100);
}
}
}
}
void main(void)
{
TMOD =0x01;
TH0=(65536-500)/256;
TL0=(65536-500)%256;
EA = 1;
ET0=1;
TR0=1;
while(1)
{
if(D0==1)
{
advance();
}
else if(D1==1)
{
back();
}
else if(D2==1)
{
left();
}
else if(D3==1)
{
right();
}
else if(D0&D2==1)
{
void left2();
}
else if(D0&D3==1)
{
void right2();
}
else if(D1&D2==1)
{
back();
left();
}
else if(D1&D3==1)
{
back();
right();
}
else
{
stop();
}
}
}
void int0() interrupt 1
{
num ++;
duty ++;
x++;
x1++;
x2++;
x3++;
if(num <=50)
{
RENA=1;
RENB=1;
}
else
{
RENA=0;
RENB=0;
}
if(num >=52)
{
num = 0;
}
if(x3 <= 100)
{
LENA=1;
LENB=1;
}
else
{
LENA=0;
LENB=0;
}
if(x3 >= 100)
{
x3 = 0;
}
if(D0&D2==1)
{
if(duty<=60)
{
RENA=1;
RENB=1;
}
else
{
RENA=0;
RENB=0;
}
if(duty >= 65)
{
duty = 0;
}
if(x<=20)
{
LENA=1;
LENB=1;
}
else
{
LENA=0;
LENB=0;
}
if(x >= 30)
{
x = 0;
}
}
if(D0&D3==1)
{
if(x1<=60)
{
LENA=1;
LENB=1;
}
else
{
LENA=0;
LENB=0;
}
if(x1 >= 100)
{
x1 = 0;
}
if(x2<=20)
{
RENA=1;
RENB=1;
}
else
{
RENA=0;
RENB=0;
}
if(x2>= 100)
{
x2 = 0;
}
}
}
:
vw
rg:
2016-7-8 17:14
@ô(f)s
:
haitao4675
rg:
2016-7-10 08:26
xxゃ
:
haitao4675
rg:
2016-7-10 14:43
vw l(f) 2016-7-8 17:14
@ô(f)s
Ҫ킀εҿһ
:
haitao4675
rg:
2016-7-10 14:44
vw l(f) 2016-7-8 17:14
@ô(f)s
:
vw
rg:
2016-7-11 19:19
4IobС܇
/**********************************************
ܣ4IobС܇
ƬC(j)STC12C5A60S2
11.0592M
ע bͨ4I315MbӽģK
늙C(j)(q)LM298LM293D(q)Ӱ늙C(j)ʹܶ˽5v
********************************************/
#include <reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
#define A P3_4 //bذIA
#define BB P3_5 //bذIB
#define C P3_6 //bذIC
#define D P3_7 //bذID
sbit in1=P1^0; //С܇˿
sbit in2=P1^1; //С܇˿
sbit in3=P1^2; //С܇˿
sbit in4=P1^3; //С܇˿
sbit P3_4=P3^4;//bذIA
sbit P3_5=P3^5;//bذIB
sbit P3_6=P3^6;//bذIC
sbit P3_7=P3^7;//bذID
sbit xj_l=P2^0;//ѭE
sbit xj_r=P2^1;//ѭE҂
void delay10ms(uint z)
{
uint a,b;
for(a=z;a>0;a--)
for(b=425;b>0;b--);
}
void qianjin()
{
in1 = 0 ;
in2 = 1 ;
in3 = 0;
in4 = 1;
delay10ms(100);
}
void houtui()
{
in1 = 1 ;
in2 = 0 ;
in3 = 1;
in4 = 0;
delay10ms(100);
}
void zuozhuan()
{
in1 = 0 ;
in2 = 1 ;
in3 = 1;
in4 = 0;
delay10ms(100);
}
void youzhuan()
{
in1 = 1 ;
in2 = 0 ;
in3 = 0;
in4 = 1;
delay10ms(100);
}
//********************************************************
//********************************************************
void main()
{
while(1)
{
//ѭEϹ,ѭEĕrт°b
//ϵĕrтb܇ǰ泯ǰb
if(xj_l==1&&xj_r==1)
qianjin();
if(xj_l==0&&xj_r==1)
youzhuan();
if(xj_l==1&&xj_r==0)
zuozhuan();
if(xj_l==0&&xj_r==0)
houtui();
delay10ms(1500);
//obع
/* in1 = 0;
in2 = 0 ;
in3 = 0 ;
in4 = 0;
if(A) //ǰM(jn)
{
in1 = 0 ;
in2 = 1 ;
in3 = 0;
in4 = 1;
delay10ms(100);
}
if(BB) //
{
in1 = 1;
in2 = 0 ;
in3 = 1 ;
in4 = 0;
delay10ms(100);
}
if(C) //D(zhun)
{
in1 = 0;
in2 = 1 ;
in3 = 1 ;
in4 = 0;
delay10ms(100);
}
if(D) //D(zhun)
{
in1 = 1 ;
in2 = 0 ;
in3 = 0 ;
in4 = 1;
delay10ms(100);
}*/
}
}
(f)ƴa
:
haitao4675
rg:
2016-7-12 09:41
vw l(f) 2016-7-11 19:19
4IobС܇
xx߀ҬF(xin)һھnjEijǸ㲻ҿĂEtgЃɂ
Ҍij@ӵҸһԇһx#include<AT89X52.H> //reg52.h
#define uchar unsigned char
#define uint unsigned int
sbit QL1 = P1^0;
sbit QL2 = P1^1; // ǰ߅ ǰM(jn)D(zhun)
sbit HL1 = P1^2; // ǰ߅ ˣD(zhun)
sbit HL2 = P1^3;
sbit QR1 = P1^4;
sbit QR2 = P1^5;
sbit HR1 = P1^6;
sbit HR2 = P1^7;
sbit EN1 = P2^0; // ƽʹ
sbit EN2 = P2^1; // ƽʹ
sbit EN3 = P2^2; // ƽʹ
sbit EN4 = P2^3; // ƽʹ
#define Left_go {QL1=1,QL2=0,HL1=1,HL2=0;} //߅늙C(j)ǰ
#define Left_back {QL1=0,QL2=1,HL1=0,HL2=1;} //߅늙C(j)
#define Left_Stop {QL1=1,QL2=1,HL1=1,HL2=1;} //߅늙C(j)ͣD(zhun)
#define Right_go {QR1=1,QR2=0,HR1=1,HR2=0;} //߅늙C(j)ǰ
#define Right_back {QR1=0,QR2=1,HR1=0,HR2=1;} //߅늙C(j)
#define Right_Stop {QR1=1,QR2=1,HR1=1,HR2=1;} //߅늙C(j)ͣD(zhun)
#define XL P2_3 //
#define XML P2_4 //
#define XMR P2_5 // ҂
#define XR P2_6 // ҂
#define Left_pwm1 P2_0 //PWM̖
#define Left_pwm2 P2_1 //PWM̖
#define Right_pwm1 P2_2 //PWM̖
#define Right_pwm2 P2_3 //PWM̖
uchar pwmleft =0;//׃x
uchar pushleft1 =0;// 늙C(j)1ռձN/20
uchar pushleft2 =0;// 늙C(j)2ռձN/20
uchar pwmright =0;
uchar pushright1=0;// 늙C(j)1ռձN/20
uchar pushright2=0;// 늙C(j)2ռձN/20
bit Right_stop=1;
bit Left_stop =1;
uint time=0;
//ӕr(sh)
void delay(unsigned int k)
{
unsigned int x,y;
for(x=0;x<k;x++)
for(y=0;y<2000;y++);
}
//go
void run(void)
{
pushleft1=7; //ٶ{(dio)(ji)׃ 0-20,0С20
pushleft2=7;
pushright1=7;
pushright2=7;
Left_go ; //늙C(j)ǰ
Right_go ; //늙C(j)ǰ
}
//left
void leftrun(void)
{
pushleft1=7;
pushleft2 =7;
pushright1=7;
pushright2=7;
Right_go ; //늙C(j)ǰ
Left_Stop ; //늙C(j)ֹͣ
}
//right
void rightrun(void)
{
pushleft1=7;
pushleft2=7;
pushright1=7;
pushright2=7;
Left_go; //늙C(j)ǰ
Right_Stop; //늙C(j)ǰ
}
// 늙C(j){(dio)
//{(dio)(ji)push_val_leftֵ׃늙C(j)D(zhun),ռձ
void pwm_out_left(void)
{
if(Left_stop&&Left_stop)
{
if(pwmleft<=pushleft1&&pwmleft<=pushleft2)
{
Left_pwm1=1;
Left_pwm2=1;
}
else
{
Left_pwm1=0;
Left_pwm2=0;
}
if(pwmleft>=20)
pwmleft=0;
}
else
{
Left_pwm1=0;
Left_pwm2=0;
}
}
// 늙C(j){(dio)
void pwm_out_right(void)
{
if(Right_stop)
{
if(pwmright<=pushright1&&pwmright<=pushright2)
{
Right_pwm1=1;
Right_pwm2=1;
}
else
{
Right_pwm1=0;
Right_pwm2=0;
}
if(pwmright>=20)
pwmright=0;
}
else
{
Right_pwm1=0;
Right_pwm2=0;
}
}
void main(void)
{
P1=0X00;
delay(100);
run();
TMOD=0X01;
TH0= 0XFc; //1msr
TL0= 0X18;
TR0= 1;
ET0= 1;
EA = 1; //_Д
while(1)
{
//̖0 ]̖1
if(XL==0&&XR==0&&XML==0&&XMR==0)
run();
else
{
if(XL==1&&XR==0) //߅zyھ
{
leftrun();
}
if(XR==1&&XL==0) //߅zyھ
{
rightrun();
}
}
}
}
//TIMER0Д(w)Ӻ(sh)a(chn)PWM̖
void timer0()interrupt 1 using 2
{
TH0=0XFc; //1Msr
TL0=0X18;
time++;
pwmleft++;
pwmright++;
pwm_out_left();
pwm_out_right();
} C:\Documents and Settings\Administrator\
:
Ƭ
rg:
2018-4-19 21:00
@bõ{(ln)
:
wxxl
rg:
2018-4-19 21:24
Ƭ l(f) 2018-4-19 21:00
@bõ{(ln)
4IbؾͿij10Ԫԃ(ni)
gӭR (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1