日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

循迹避障智能小车c语言程序,智能循迹避障小车完整程序lpar;亲测好使rpar;

發布時間:2023/12/31 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 循迹避障智能小车c语言程序,智能循迹避障小车完整程序lpar;亲测好使rpar; 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

/*******************************************

//利用51定時器產生PWM波來調節電機速度

//速度變化范圍從0-100可調

//使用三路做尋跡使用,哪一路檢測在黑線哪一路為

//高電平

//沒檢測到黑線表示有反射 對應輸出低電平信號

*********************************************/

#include

#define uint unsigned int

#define uchar unsigned char

/*電機四個接口定義*/

sbit in1=P0^0;

sbit in2=P0^1;

sbit in3=P0^2;

sbit in4=P0^3;

/*計時器*/

uchar j,k,i,a,A1,A2,second,minge,minshi;

sbit dula=P2^6;

sbit wela=P2^7;

uchar code table[]={0x3f,0x06,0x5b,0x4f,

0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,

0x39,0x5e,0x79,0x71};

uchar code table2[]={0xbf,0x86,0xdb,0xcf,

0xe6,0xed,0xfd,0x87,

0xff,0xef,0xf7,0xfc,

0xb9,0xde,0xf9,0xf1};

void delay(uchar i)

{

for(j=i;j>0;j--)

for(k=110;k>0;k--);

}

void display(uchar sh_c,uchar g_c,uchar min_ge,uchar min_shi)

{

dula=1;

P0=table[sh_c];

dula=0;

P0=0xff;

wela=1;

P0=0xfb;

wela=0;

delay(5);

dula=1;

P0=table[g_c];

dula=0;

P0=0xff;

wela=1;

P0=0xf7;

wela=0;

delay(5);

dula=1;

P0=table[min_shi];

dula=0;

P0=0xff;

wela=1;

P0=0xfe;

wela=0;

delay(5);

dula=1;

P0=table2[min_ge];

dula=0;

P0=0xff;

wela=1;

P0=0xfd;

wela=0;

delay(5);

}

/*左、中、右三路循跡傳感器接口定義*/

sbit zuo=P1^0;

sbit zhong=P1^1;

sbit you=P1^2;

/*避障接口定義*/

sbit bz_zuo=P1^3;

sbit bz_zhong=P1^4;

sbit bz_you=P1^5;

uchar count = 0;

/*利用定時器0定時中斷,產生PWM波*/

void Init_timer()

{

TH0 = (65535-10)/256;

TL0 = (65535-10)%256;

TMOD = 0x01;

TR0 = 1;

ET0 = 1;

EA = 1;

}

/*左輪速度調節程序*/

void zuolun(uchar speed)

{

} if(count

void youlun(uchar speed) //同上

{

if(count

{

in3 = 1;

in4 = 0;

}

else

{

in3 = 0;

in4 = 1;

}

}

void Inline() //檢測黑線信號

{

uchar temp;

temp =P1;

switch(temp)

{

case 0x01:zuolun(0); youlun(90);break; //左側循跡傳感器壓線,小車向左前修正 case 0x02:zuolun(100);youlun(100);break; //中間循跡傳感器壓線,保持直走 此處兩值使電機速度保持相同

case 0x04:zuolun(90); youlun(0);break; //右側循跡傳感器壓線,小車向右前修正 case 0x08:zuolun(90); youlun(0);break; //左側避障傳感器有信號小車右轉 case 0x10:zuolun(90); youlun(0);break; //中間避障傳感器有信號小車左轉 case 0x20:zuolun(90); youlun(0);break; //右側避障傳感器有信號小車左轉

}

/*

if(zuo==1)

{

zuolun(10);

youlun(50);

}

else if(zhong==1)

{

zuolun(99);

youlun(99);

}

else if(you==1)

{

zuolun(50);

youlun(10);

} */

}

void main() //主函數

{

Init_timer(); //調用函數

while(1)

{

Inline();

minge=0;

minshi=0;

second++;

if(second==60)

second=0,minge++;

A1=second/10;

A2=second%10;

if(minge==10)

minge=0,minshi++;

for(a=200;a>0;a--)

{

display(A1,A2,minge,minshi);

};

}

}

void Timer0_int()interrupt 1 //定時器中斷計數 {

TH0 = (65535-10)/256;

TL0 = (65535-10)%256;

count ++;

if(count >= 100)

{

count = 0;

}

}

總結

以上是生活随笔為你收集整理的循迹避障智能小车c语言程序,智能循迹避障小车完整程序lpar;亲测好使rpar;的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。