- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
坦克循迹计时测速综合程序
#includereg52.h
unsigned int i=0;
sbit P36=P3^6;
sbit P10=P1^0; //循迹口,单片机P10口接循迹板的Q0
sbit P11=P1^1; //单片机P11口接循迹板的Q1
sbit P12=P1^2; //单片机P12口接循迹板的Q2
sbit P14=P1^4; //单片机控制电机口,单片机P14口接右侧B57692那边的A1
sbit P15=P1^5; //单片机P15口接右侧B57692那边的A2
sbit P16=P1^6; //单片机P16口接右侧B57692那边的B1
sbit P17=P1^7; //单片机P17口接右侧B57692那边的B2
//ENA和ENB短路冒不用拔它,如果想用单片机某个口去控制它也可以换成单片机控制,那才要拔掉,可以作为急停控制。
unsigned char j,time;
unsigned int kop,dr;
unsigned char a[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
unsigned char c[4]={0xff,0xff,0xff,0xff},d[4];
void delay(unsigned char z) //延时子程序
{
unsigned char j;
while(z--)
for(j=123;j0;j--);
}
void main()
{
TMOD=0x15; // 打开定时器和计数器
TH0=0x00;
TL0=0x00;
TH1=0XFc; //1ms
TL1=0X18;
EA = 1;
ET0=1;
ET1=1;
TR1 = 1;
TR0 = 1;
while(1)
{
if(P10==0P11==0P12==0)
{
TR0=0; //显示时间 停
P0=d[0];
P2=0XFE;
delay(1);
P0=d[3];
P2=0XFB;
delay(3);
P0=d[2]; //显示测速 停
P2=0XFD;
delay(3);
P0=d[3];
P2=0XF7;
delay(3);
P14=1;P15=1;P16=1; P17=1;
}
}
}
void timer1() interrupt 3 //中断 服务程序
{
unsigned int qq=0,ww=0;
TH1=0XFc;
TL1=0X18;//1ms
i++;
switch(i%4)
{
case 0:P0=c[0],P2=0XFE;d[0]=c[0];break;
case 1:P0=c[1],P2=0XFD;d[1]=c[1];break;
case 2:P0=c[2],P2=0XFB;d[2]=c[2]; break;
case 3:P0=c[3],P2=0XF7;d[3]=c[3]; break;
default:break;
}
P14=1;P15=1;P16=1; P17=1;
if(P10==0P11==0P12==0) //全测到
dr=0;
if(P10==1P11==0P12==1) //中间测到
dr=1;
if(P10==0P11==1P12==1) //左边测到
dr=2;
if(P10==1P11==1P12==0) //右边测到
dr=3;
if(P10==0P11==0P12==1) //左两测到
dr=4;
if(P10==1P11==0P12==0) //右两测到
dr=5;
switch(dr)
{
case 0:P14=1,P15=1,P16=1,P17=1,TR1=0;break; //全测到 停
case 1:P14=0,P15=1,P16=0,P17=1;break; //直走
case 2:P14=1,P15=1,P16=0,P17=1,w
文档评论(0)