<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          51單片機(jī)wifi小車代碼

          作者: 時(shí)間:2016-11-22 來源:網(wǎng)絡(luò) 收藏
          51單片機(jī)wifi小車代碼

          #include

          本文引用地址:http://www.ex-cimer.com/article/201611/319843.htm

          #include

          #define uchar unsigned char

          #define uint unsigned int

          uchar Buffer =0; //從串口接收的數(shù)據(jù)

          uint i,j;

          uchar flag=0;

          uchar key_stime_counter,hight_votage=15,timeT_counter;

          bit key_stime_ok;

          sbit control_signal=P3^6;

          sbit StatusLight=P2^2;

          sbit MainLight=P2^3;

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

          * 名稱 : Delay_1ms()

          * 功能 : 延時(shí)子程序,延時(shí)時(shí)間為 1ms * x

          * 輸入 : x (延時(shí)一毫秒的個(gè)數(shù))

          * 輸出 : 無

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

          void Delay_1ms(uint i)//1ms延時(shí)

          {

          uchar x,j;

          for(j=0;j

          for(x=0;x<=148;x++);

          }

          void Turn*****tatusLight()

          {

          StatusLight=0;

          }

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

          * 名稱 : Com_Int()

          * 功能 : 串口中斷子函數(shù)

          * 輸入 : 無

          * 輸出 : 無

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

          void Com_Int(void) interrupt 4

          {

          EA = 0;

          if(RI == 1) //當(dāng)硬件接收到一個(gè)數(shù)據(jù)時(shí),RI會(huì)置位

          {

          Buffer = SBUF-48; //這里減去48是因?yàn)閺碾娔X中發(fā)送過來的數(shù)據(jù)是ASCII碼。

          RI = 0;

          }

          EA = 1;

          }

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

          * 名稱 : Com_Init()

          * 功能 : 串口初始化,晶振11.0592,波特率9600,使能了串口中斷

          * 輸入 : 無

          * 輸出 : 無

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

          void Com_Init(void)

          {

          TMOD = 0x21;

          PCON = 0x00;

          SCON = 0x50;

          TH1 = 0xFd; //設(shè)置波特率 9600

          TL1 = 0xFd;

          TR1 = 1; //啟動(dòng)定時(shí)器1

          ES = 1; //開串口中斷

          EA = 1; //開總中斷

          IT0=0;

          EX0=1;

          }

          void TimerInit()

          {

          control_signal=0;

          EA=1; //開總中斷

          ET0=1; //定時(shí)器0中斷允許

          TH0 = 0xFF; //定時(shí)器裝初值

          TL0 = 0xA3;

          TR0=0;

          }

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

          * 名稱 :Moto_Forward()

          * 功能 : 電機(jī)1、2啟動(dòng),都是前進(jìn),整車表現(xiàn)為前進(jìn)。

          * 輸入 : 無

          * 輸出 : 無

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

          void Moto_Forward()

          {

          P1= 0x06;

          Delay_1ms(100);

          }

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

          * 名稱 :Moto_Backward()

          * 功能 : 電機(jī)1、2啟動(dòng),都是后退,整車表現(xiàn)為后退。

          * 輸入 : 無

          * 輸出 : 無

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

          void Moto_Backward()

          {

          P1= 0x05;

          Delay_1ms(100);

          }

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

          * 名稱 :Moto_TurnLeft()

          * 功能 : 電機(jī)1后退,電機(jī)2前進(jìn),整車表現(xiàn)為左轉(zhuǎn)。

          * 輸入 : 無

          * 輸出 : 無

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

          void Moto_TurnLeft()

          {

          P1= 0x09;

          Delay_1ms(100);

          }

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

          * 名稱 :Moto_TurnRight()

          * 功能 : 電機(jī)1前進(jìn),電機(jī)2后退,整車表現(xiàn)為右轉(zhuǎn)。

          * 輸入 : 無

          * 輸出 : 無

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

          void Moto_TurnRight()

          {

          P1= 0x0A;

          Delay_1ms(100);

          }

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

          * 名稱 :Moto_Stop()

          * 功能 : 電機(jī)1停止,電機(jī)2停止,整車表現(xiàn)為停止。

          * 輸入 : 無

          * 輸出 : 無

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

          void Moto_Stop()

          {

          P1= 0x00;

          Delay_1ms(100);

          }

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

          * 名稱 :SteerEngineTurningUp()

          * 功能 : 舵機(jī)向上轉(zhuǎn)。

          * 輸入 : 無

          * 輸出 : 無

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

          void SteerEngineTurningUp()

          {

          ET0=1;

          TR0=1;

          Delay_1ms(40);

          hight_votage-=1;

          if(hight_votage<5)

          hight_votage=5;

          }

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

          * 名稱 :SteerEngineTurningDown()

          * 功能 : 舵機(jī)向下轉(zhuǎn)。

          * 輸入 : 無

          * 輸出 : 無

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

          void SteerEngineTurningDown()

          {

          ET0=1;

          TR0=1;

          Delay_1ms(40);

          hight_votage+=1;

          if(hight_votage>20)

          hight_votage=20;

          }

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

          * 名稱 : SteerEngine()

          * 功能 : 舵機(jī)PWM中斷

          * 輸入 : 無

          * 輸出 : 無

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

          void SteerEngine() interrupt 1

          {

          TH0=0xFF;

          TL0=0xA3;

          if (++key_stime_counter>=200)

          {

          key_stime_counter=0;

          control_signal=1;

          key_stime_ok = 1; // 20ms到

          timeT_counter=0;

          }

          if (key_stime_ok&&(++timeT_counter>=hight_votage))

          {

          key_stime_ok=0;

          timeT_counter=0;

          control_signal=0; // hight_votage*0.1ms到

          }

          }

          void main()

          {

          MainLight=0;

          Delay_1ms(200);

          Com_Init();//串口初始化

          TimerInit();//舵機(jī)初始化

          while(1)

          {

          switch (Buffer) //根據(jù)鍵值不同,執(zhí)行不同的內(nèi)容

          {

          case 0:

          Moto_Stop();

          break;

          case 1:

          Moto_Forward();

          break;

          case 2:

          Moto_Backward();

          break;

          case 3:

          Moto_TurnLeft();

          break;

          case 4:

          Moto_TurnRight();

          break;

          case 5:

          SteerEngineTurningUp();

          break;

          case 6:

          SteerEngineTurningDown();

          break;

          case 8:

          MainLight=1;

          break;

          case 9:

          MainLight=0;

          break;

          default : TR0=0;TR2=0;

          break;

          }

          }

          }

          //紅外壁障

          void extern_int0(void) interrupt 0 using 0

          {

          EX0=0;

          Moto_TurnLeft();

          Buffer=0;

          EX0=1;

          IE0=0;

          }



          關(guān)鍵詞: 51單片機(jī)wifi小車代

          評(píng)論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();