• 大小: 15KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-11
  • 语言: 其他
  • 标签:

资源简介

这是一个用四个键进行调速与转弯的程序,它可以向前转,向后转,前进加速,后退减速等一系列操作。很实用

资源截图

代码片段和文件信息

#include 
#define uchar unsigned char 
#define uint unsigned int
sbit s1=P1^0;
sbit s2=P1^1;
sbit s3=P1^2;
sbit s4=P1^3;
sbit motor1=P2^0;
sbit motor2=P2^1;
sbit motor3=P2^2;
sbit motor4=P2^3;
uchar mazhi_duan[]={0x3f0x060x5b0x4f
0x660x6d0x7d0x230x1C
0x700x46};
void display(uchar duanl)
{
P0=mazhi_duan[duanl];
}
void delayl(uint n)
{
uint ij;
for(i=n;i>0;i--)
for(j=114;j>0;j--);
}
void speed(uchar motoruchar speed)
{
if(motor==1)
{

speed=3;
motor1=1;
delayl(7);
motor1=0;
delayl(3);

}
if(motor==3)
{

speed=3;
motor3=1;
delayl(7);
motor3=0;
delayl(3);

}
}

uchar keyscan()
{
uchar temp;
P1=0x00;
temp=P1&0x0f;
if(temp!=0x00)
{
delayl(5);
temp=P1&0x0f;
if(temp!=0x00)
{
temp=P1&0x0f;
switch(temp)
{
case 0x01:temp=1;break;
case 0x02:temp=2;break;
case 0x04:temp=3;break;
case 0x08:temp=4;break;
case 0x05:temp=5;break;  
case 0x09:temp=6;break;
case 0x06:temp=7;break;
case 0x0A:temp=8;break;
default:temp=0;break;
}
return temp;
}
else 
return 0;
}
else 
return 0;

}
/****************************************
说明:
第一,
*****************************************/
void main()
{
uchar keynumgo=0beh=0kk=0tempprep;
while(1)
{
keynum=keyscan();
switch(keynum)
{
case 1:display(7);P2=0x05;break;
case 2:P2=0x0A;display(8);break;
case 3:P2=0x04;speed(13);display(9);break;
case 4:P2=0x01;speed(33);display(10);break;
case 5:go=kk;go++;delayl(200);if(go>4)go=1;break;
case 6:go=kk;go--;delayl(200);if(go==0)go=4;break;
case 7:beh=kk;beh++;delayl(200);if(beh>4)beh=1;break;
case 8:beh=kk;beh--;delayl(200);if(beh==0)beh=4;break;
default:P2=0x00;break;
}
switch(go)
{

case 1:temp=1;kk=go;
while(temp)
{
display(4);
P2=0x05;delayl(9);
P2=0x00;delayl(1);
prep=keyscan();
if((prep==0)||(prep==1))
{
    temp=0;
go=0;
}
}break;
case 2:temp=1;kk=go;
while(temp)
{
display(3);
P2=0x05;delayl(4);
P2=0x00;delayl(1);
prep=keyscan();
if((prep==0)||(prep==1))
{
    temp=0;
   go=0;
}


}break;
case 3:temp=1;kk=go;
while(temp)
{
display(2);
P2=0x05;delayl(7);
P2=0x00;delayl(3);
prep=keyscan();
if((prep==0)||(prep==1))
{
    temp=0;
go=0;
}
}break;
case 4:temp=1;kk=go;
while(temp)
{
     display(1);
P2=0x05;delayl(3);
P2=0x00;delayl(2);
prep=keyscan();
if((prep==0)||(prep==1))
{
    temp=0;
go=0;
}
}break;
default:break;
}
switch(beh)
{

case 1:temp=1;kk=beh;
while(temp)
{
display(4);
P2=0x0A;delayl(9);
P2=0x00;delayl(1);
prep=keyscan();
  

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        345  2010-10-07 09:03  汽车调速\1.plg

     文件       3890  2010-10-07 09:03  汽车调速\1.c

     文件         34  2010-10-07 09:03  汽车调速\1.lnp

     文件      12195  2010-10-07 09:03  汽车调速\1.M51

     文件       2812  2010-10-07 09:03  汽车调速\1.hex

    .......         0  2010-10-06 11:48  汽车调速\1_Uv2.Bak

     文件       2092  2010-10-06 17:51  汽车调速\1.Uv2

    .......       973  2010-10-06 23:10  汽车调速\1_Opt.Bak

     文件        973  2010-10-07 09:01  汽车调速\1.Opt

     文件      12920  2010-10-07 09:03  汽车调速\1.LST

     文件      11000  2010-10-07 09:03  汽车调速\1.OBJ

     文件       9509  2010-10-07 09:03  汽车调速\1

     目录          0  2010-10-06 11:48  汽车调速

----------- ---------  ---------- -----  ----

                56743                    13


评论

共有 条评论

相关资源