欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2164|回復: 1
打印 上一主題 下一主題
收起左側(cè)

關(guān)于單片機程序的修改

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:758810 發(fā)表于 2020-5-27 12:21 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
按下按鈕1(p1.3),led1(p2.0)小燈持續(xù)亮1秒,若無其他操作繼續(xù)執(zhí)行該程序。按下按鈕2(p1.4)執(zhí)行循跡(已經(jīng)編好),循跡停止(即p1.0=0,p1.1=0,p1.2=0),led2(p2.1)亮4秒,小車返回(還是用循跡的程序,使電機反轉(zhuǎn)即可),循跡停止(即p1.0=0,p1.1=0,p1.2=0),繼續(xù)檢測按鈕1是否按下。能幫忙把程序改成可以實現(xiàn)以上功能嗎。

#include<reg51.h>#define uchar unsigned char
#define uint unsigned int
unsigned char zkb1=0;    //**左邊電機的占空比**//
unsigned char zkb2=0 ;    //**右邊電機的占空比**//
unsigned char t=0;        //**定時器中斷計數(shù)器**//
sbit led1=P1^0;
sbit led2=P1^1;
sbit led3=P1^2;
sbit IN1=P0^0;
sbit IN2=P0^1;
sbit IN3=P0^2;
sbit IN4=P0^3;
sbit ENA=P0^4;
sbit ENB=P0^5;
//****************延時函數(shù)****************//

//**********初始化定時器,中斷***********//
void init()
{  TMOD=0x01;
   TH0=(65536-100)/256;
   TL0=(65536-100)%256;
   EA=1;
   ET0=1;
   TR0=1;
}
//***********中斷函數(shù)+脈寬調(diào)制***********//
void timer0() interrupt 1
{ if(t<zkb1)
     ENA=1;
  else
     ENA=0;
  if(t<zkb2)
      ENB=1;
  else
      ENB=0;
            t++;
  if(t>=100)
    {t=0;}
}
//******************直行******************//
void qianjin()
{  zkb1=30;
    zkb2=30;
}
//***************左轉(zhuǎn)函數(shù)1***************//
void turn_left1()
{  zkb1=0;
    zkb2=40;
}
//***************左轉(zhuǎn)函數(shù)2***************//
void turn_left2()
{  zkb1=0;
    zkb2=60;
}
//***************右轉(zhuǎn)函數(shù)1***************//
void turn_right1()
{  zkb1=40;
    zkb2=0;
}
//***************右轉(zhuǎn)函數(shù)2***************//
void turn_right2()
{  zkb1=60;
    zkb2=0;
}
//**************停止********************//
void stop()
{  
    zkb1=0;
    zkb2=0;
                }
//***************循跡函數(shù)*****************//
void xunji()
{ uchar flag;
  if((led1==1)&&(led2==0)&&(led3==1))
    { flag=0; }//*******直行*******//
   else  if((led1==1)&&(led2==0)&&(led3==0))
    { flag=1;} //***左偏1,右轉(zhuǎn)1***//
   else  if((led1==1)&&(led2==1)&&(led3==0))
    { flag=2;} //***左偏2,右轉(zhuǎn)2***//
   else if((led1==0)&&(led2==0)&&(led3==1))
    { flag=3; }//***右偏1,左轉(zhuǎn)1***//
  else if((led1==0)&&(led2==1)&&(led3==1))
    { flag=4; }//***右偏2,左轉(zhuǎn)2***//
        else if((led1==0)&&(led2==0)&&(led3==0))
    { flag=5; }//停止
  switch (flag)
     {  case 0:qianjin();
              break;
        case 1:turn_right1();
              break;
        case 2:turn_right2();
              break;
        case 3:turn_left1();
              break;
        case 4 :turn_left2();
              break;
            case 5 :stop();
              break;
        default:break;
      }
}
//****************主程序****************//
void main()
{ init();
  zkb1=30;
  zkb2=30;
  while(1)
  {  IN1=1; //******給電機加電啟動******//
     IN2=0;
     IN3=1;
     IN4=0;
     ENA=1;
     ENB=1;
        while(1)
     {  xunji(); //*********尋跡**********//
     }
    }
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:758810 發(fā)表于 2020-5-27 12:21 | 只看該作者
求大神救命。。。。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表