基於C語言的避障系統程式

2021-09-24 02:21:53 字數 2574 閱讀 8250

基於c語言的避障小車程式

因為最近在做一些小專案,我就把我寫的程式分享給大家,一起學習

#include

#include

#define uchar unsigned char

#define uint  unsigned int

sbit trig=p3^0;

sbit echo=p3^3;

sbit control=p3^5;

uint 

dis,flag=0,timeh,timel,succeed_flag,time;

void   tran_ret();

void  delay_nus(uint n);

void  delay_ms(long int m);

void  delay_n100us(uint n);

void  run();

//void  backrun();

//void  freestop();

void  turnleft();

void  turnright ();

void  sturnround();

void  nturnround();

void  servo_turn(int gao);

//主函式

void

main()

tmod=0x01;

ea=1;

et0=1;

it1=0;

trig=0;

servo_turn(0);

delay_ms(5000);

while(1)

tran_ret();

if(dis>30)

run();

else

p1=0xff;

servo_turn(-90);

delay_ms(5000);

tran_ret();

if(dis>30)

turnleft();

p1=0xff;

servo_turn(0);

delay_ms(5000);

run();

else

p1=0xff;

servo_turn(90);

delay_ms(5000);

tran_ret();

if (dis>30)

turnright();

servo_turn(0);

delay_ms(5000);

run();

else

nturnround ();

servo_turn(0);

delay_ms(5000);

run();

//子函式

//全速前進

void run()

p1=0xaa;

//delay_ms(60);

//p1=0xff;

/*//全速後退

void  backrun()

{     p1=0x55;

delay_ms(19);

p1=0x00;

delay_ms(1);

//自由停止

/*void freestop ()

p1=0x00;

delay_ms(20);

//左轉

void  turnleft()

p1=0x0a;

delay_ms(100);

//p1=0xff;

//右轉

void  turnright()

p1=0xa0;

delay_ms(100);

//     p1=0xff;

/*//原地順時針打轉

void  sturnround()

p1=0xa0;

delay_ms(40);

p1=0x00;

delay_ms(1);

//原地逆時針打轉

void  nturnround ()

p1=0x0a;

delay_ms(100);

//     p1=0x00;

//發射

void tran_ret()

ea=0; //關總中斷

trig=1; //超聲波輸入端

delay_nus(20);//延時20us

trig=0; //產生乙個20us的脈衝

while(echo==0); //等待echo回波引腳變高電平

succeed_flag=0; //清測量成功標誌

ea=1;

ex1=1; //開啟外部中斷0

th0=0;//定時器1清零

tl0=0; //定時器1清零

tf0=0; //計數溢位標誌

et0=1;

tr0=1; //啟動定時器1

delay_ms(20); //等待測量的結果

tr0=0; //關閉定時器1

ex1=0; //關閉外部中斷0

if(succeed_flag==1)

time=timeh*256+timel;

dis=time*0.0182; //cm

智慧型避障小車學習筆記(基於Wemos的避障小車)

一 開發環境及硬體 arduino平台 wemos d1 板載無線網絡卡 支援ap 路由 sta 上網裝置 模式 特性基於esp 8266ex arduino相容,使用rduino ide來程式設計 11 x i o 引腳 1 x adc 引腳 輸入範圍0 3.3v 板載5v 1a開關電源 高輸入電...

基於Wemos的wifi避障小車的專案實現

專案實現 手機操控小車行動,遇到障礙物自動後退。專案所需模組 wemos d1 wifi esp8266開發版,超聲波模組,繼電器 實現 include define zhuan1 d6 define zhuan2 d7 define dong1 d4 define dong2 d5 define ...

基於C 語言的程式呼叫

由於葉綠素反演系統並不是我乙個人的成果,未經隊友們的同意,無法上傳相關 因此對c ae構建系統的相關介紹就到這裡,接下來為大家提供一些我初學c 時覺得比較有意思的 此篇文章為大家介紹下如何給予c 語言對程式進行巢狀呼叫。不長,也不難,但重在理解,本程式是基於vs的窗體實現,其布局如下,主要由乙個gr...