1、循迹小车#include reg52.h#define det_Dist 2.55 /单个脉冲对应的小车行走距离,其值为车轮周长/4#define RD 9 /小车对角轴长度#define PI 3.1415926#define ANG_90 90#define ANG_90_T 102#define ANG_180 189/*=全局变量定义区=*/sbit P10=P10; /控制继电器的开闭sbit P11=P11; /控制金属接近开关sbit P12=P12; /控制颜色传感器的开闭sbit P07=P07; /控制声光信号的开启sbit P26=P26; /接收颜色传感器的信号,白为0
2、,黑为1sbit P24=P24; /左 sbit P25=P25; /右 接收左右光传感器的信号,有光为0unsigned char mType=0; /设置运动的方式,0 向前 1 向左 2 向后 3 向右unsigned char Direction=0; /小车的即时朝向 0 朝上 1 朝左 2 朝下 3 朝右unsigned sX=50; unsigned char sY=0; /小车的相对右下角的坐标 CM(sX,sY)unsigned char StartTask=0; /获得铁片后开始执行返回卸货任务,StartTask置一unsigned char Inter_EX0=0;
3、/ 完成一个完整的任务期间只能有一次外部中断 / Inter_EX0记录外部中断0的中断状态 / 0 动作最近的前一次未中断过, / 1 动作最近的前一次中断过unsigned char cntIorn=0; /铁片数unsigned char bkAim=2; /回程目的地,0为A仓库,1为B仓库,2为停车场, /(在MAIN中接受铁片颜色判断传感器的信号来赋值)unsigned char Light_Flag=0;/进入光引导区的标志(1)unsigned int cntTime_5Min=0;/时间周期数,用于 T0 精确定时unsigned int cntTime_Plues=0; /
4、霍尔开关产生的脉冲数/*=全局变量定义区=*/*-*/*-通用延迟程序-*/*-*/void delay(unsigned int time) / time*0.5ms延时unsigned int i,j;for(j=0;jtime;j+) for(i=0;i=4520) Display(5); P2=(P2&240)|15); EA=0; /停车程序 P07=1;delay(4000);PCON=0X00;while(1); /*外部中断0中断程序: */*发现铁片,发出声光信号并将铁片吸起,发光二极管和蜂鸣器*/*并联在一起(设接在P07). 0为A仓库,1为B仓库,2为停车场*/void
5、 fndIorn(void) interrupt 0 unsigned char i;P10=1; P2=(P2&240)|15); /停车P07=1;delay(1000);/刹车制动 0.5msP07=0;Inter_EX0=1;cntIorn+;Display(cntIorn);for(i=0;i40;i+) P2=P2&249; delay(2); P2=(P2&240)|15); delay(2); P2=P2&249;delay(100);P2=(P2&240)|15); /停车IornColor(); /判断铁片黑白,设置bkAimfor(i=0;i95;i+) P2=P2&24
6、9; delay(3); P2=(P2&240)|15); delay(2); P2=(P2&240)|15); /停车delay(4000); /把铁片吸起来 EX0=0;/*外部中断1中断程序: */*对霍尔开关的脉冲记数,对小车的位置进行记录,以便对小车进行定位*/void stpMove(void) interrupt 2 cntTime_Plues-; if(Direction=0) /向上 if(mType=0) sY+=det_Dist; else if(mType=2) sY-=det_Dist; else if(Direction=1) /向左 if(mType=0) sX+=det_Dist; else if(mType=2) sX-=det_Dist; else if(Direction=2) /向下 if(mType=0) sY-=det_Dist; else if(mType=2) sY+=det_Dist; else if(Direction=3) /向右 if(mType=0) sX-=det_Dist; else if(mType=2) sX+=det_Dist;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1