⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 无线小车遥控程序.txt

📁 这是一个可用于无线电控制小车运动的程序,通过控制电机的运转情况控制小车动作.
💻 TXT
字号:
//无线小车遥控程序wgj2007.07.21
#include<reg52.h>
#define uchar unsigned char 
#define uint unsigned int 

data uint i,j,k;
 uchar np; 
//步进电机运行数据表 P0为步进电机,P1为遥控输入 P2为速度显示 P3为灯泡输出


const uchar motortb[]={0x11,0x99,0x88,0xcc,0x44,0x66,0x22,0x33}; 
unsigned char dis[]={0xc0,//0
                     0xf9,//1
                     0xa4,//2
                     0xb0,//3
                     0x99,//4
                     0x92,//5
                     0x82,//6
                     0xf8,//7
                     0x80,//8
                     0x90 //9
};
void delay1()
{                 
  TMOD=0x01;                   
  TR0=1; 
  TH0=(65536-50000)/256;                 
  TL0=(65536-50000)%256;
  do{} while(!TF0);            
  TF0=0;                     
}
void delay(uchar t)// 每步延时的子程序 
{ 
uchar i; 
uint j; 
for (i=0;i<t;i++)for (j=0;j<900;j++); 
} 
void a_step(uchar d,uchar t) //步进电机走一步d=0正转d=1反转// 越大走得越慢 
{ 
if (d&0x01) 
{ 
if (np==0) 
np=7; 
else np--; 
} 
else 
{ 
if (np==7) 
np=0; 
else np++; 
} 
P0=motortb[np]; 
delay(t); 
} 
void a_turn(uchar d,uchar t)// 步进电机走一圈 
{ 
 uchar i; 
for (i=0;i<96;i++) 
a_step(d,t); 
} 


delay_50ms(){         //延时50ms
TMOD=0x01;
TR0=1;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
while(!TF0);
TF0=0;
}
 right_run(){		//右转
delay_50ms();
P0=0xc0;
delay_50ms();
P0=0x90;
delay_50ms();
P0=0x30;
delay_50ms();
P0=0x60;
}

 left_run(){		   //左转
delay_50ms();
P0=0x0c;
delay_50ms();
P0=0x09;
delay_50ms();
P0=0x03;
delay_50ms();
P0=0x06;
}

display(uint k )     //显示速度
{
    P2=dis[k];
    for(j=0;j<20;j++)
    delay1();} 

 void main(void)
 {P0=0xff; 
 P0=0x44; 
 np=4; 
 P1=~0x00;   		
 while(1){ 
  for(i=0;i<5;i++){ a_turn(0,2);display(6);P3=0x03;} //前进
  { for(i=0;i<5;i++){left_run();
       display (3);P3=0x01;} for(i=0;i<20;i++)delay_50ms();
       for(i=0;i<5;i++)left_run();for(i=0;i<20;i++)delay_50ms(); 
       }                                                   //左转
  { for(i=0;i<5;i++){right_run();
       display  (2);P3=0x02; }for(i=0;i<20;i++)delay_50ms();
       for(i=0;i<5;i++)right_run();for(i=0;i<20;i++)delay_50ms(); 
       }                                                   //右转
   for(i=0;i<5;i++){a_turn(1,4);display(5);P3=0x00;} //后退
  P1=~0x00;
}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -