1024手机基地看电影,午夜福利视频导航,国产精品福利在线一区,亚洲欧美日韩另类成人,在线观看午夜日本理论片,成年超爽免费网站,国产精品成人免费,精品动作一级毛片,成人免费观看网站,97精品伊人久久大香蕉
標題:
關于單片機程序的修改
[打印本頁]
作者:
威威我和
時間:
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(); //*********尋跡**********//
}
}
}
作者:
威威我和
時間:
2020-5-27 12:21
求大神救命。。。。
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1