红外循迹智能车总程序

#include

#define uchar unsigned char #define uint unsigned int

sbit left=P2^0;

sbit zleft=P2^1;

sbit zright=P2^2;

sbit right=P2^3;

sbit EN12=P3^1;//zuobiandianji sbit EN34=P3^0;//youbiandianji

sbit PWM1=P2^7;//zuobiandianji sbit PWM2=P2^6; //youbiandianji uchar count1=0;

uchar count2=0;

uchar N1=0;

uchar N2=0;

void init()

{

EN12=1;

EN34=1;

TMOD=0x11;

TH0=(65536-20000)/256; TL0=(65536-20000)%256; TH1=(65536-20000)/256; TL1=(65536-20000)%256; EA=1;

ET0=1;

ET1=1;

TR0=1;

TR1=1;

}

void time_1() interrupt 1 {

TH0=(65536-200)/256; TL0=(65536-200)%256; count1++;

if(count1

PWM1=1;

else

PWM1=0;

if(count1>=100)

count1=0;

}

void time_2() interrupt 3 {

TH1=(65536-200)/256; TL1=(65536-200)%256; count2++;

if(count2

PWM2=1;

else

PWM2=0;

if(count2>=100)

count2=0;

}

void dianji(uchar x)

{

switch(x)

{

case 1:N1=100; N2=100; break; case 2:N1=60; N2=80; break; case 3:N1=80; N2=60; break; case 4:N1=0; N2=60; break; case 5:

N1=60; N2=0; break; case 6:N1=100; N2=100; break; case 7:N1=100; N2=100; break; }

}

void signals()

{

if(zleft&&zright==1) {

if(right&&left==1) dianji(7); else dianji(1); }

else

if(zleft||zright==1)

void main()

{

init();

while(1)

signals();

}

{ if(zleft==1) dianji(2); else dianji(3); } else if(left||right==1) {if(left==1) dianji(4); else dianji(5); } else dianji(6); }


© 2024 实用范文网 | 联系我们: webmaster# 6400.net.cn