#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
//D0-D7:f,b,a,e,d,h,c,g 共阴 依次编码
//74LS04反相器驱动数码管
uchar code table[10] = {0x5F,0x42,0x9E,0xD6,0xC3,0xD5,0xDD,0x46,0xDF,0xD7};
uchar i = 0; //用于0-3数码管轮流显示
uint j = 0; //计时的次数
uint time=0; //计时
uint pwm=16; //占空比
uint speed; //调制PWM波的当前的值
sbit R=P3^2; //右边传感器 P3^2
sbit L=P3^3; //左边传感器 P3^3
sbit M=P3^4; //中间传感器 p3^4
sbit U=P3^1; //避障传感器 p3^1
//电机驱动口定义
sbit EN2=P1^0; //前轮电机停止控制使能
sbit EN1=P1^1; //后轮控制调速控制端口
sbit IN1=P1^2; //前轮
sbit IN2=P1^3; //前轮
sbit IN3=P1^4; //后轮
sbit IN4=P1^5; //后轮
void Init()
{
TMOD = 0x12; //定时器0用方式2,定时器1用方式1
TH0=(256-200)/256; //pwm
TL0=(256-200)/256;
TH1 = 0x0F8; //定时2ms
TL1 = 0x30;
EA = 1;
ET0 = 1;
ET1 = 1;
TR0 = 1;
TR1 = 1;
}
void tim0(void) interrupt 1 //产生PWM
{
speed ++;
if(speed <= pwm) //pwm 就相当于占100的比例
{
EN1 = 1;
}
else if(speed < 100)
{
EN1 = 0;
}
else
speed = 0;
}
void time1() interrupt 3 //定时2ms
{
TH1 = 0x0F8;
TL1 = 0x30;
i =(i+1) % 4; //0-3循环
j++;
if(i == 0) //显示最低位数码管
{
P0 = 0x00; //段选清零防止乱码
P0 = table[time%10]; //送段码信号
}
if(i == 1)
{
P0 = 0x00;
P0 = table[time/ 10% 10];
}
if(i == 2)
{
P0 = 0x00;
P0 = table[time/ 100% 10];
}
if(i == 3)
{
P0 = 0x00;
P0 = table[time/ 1000% 10];
}
P2 = ( 0x10 << i ); //送位选信号
if(j == 500)
{
time ++; //500次为1秒
j = 0;
}
}
void forward() //前进
{
IN2=1;
IN1=0;
}
void back() //后退
{
IN2=0;
IN1=1;
}
void left() //左转
{
EN2=1; //打开使能
IN3=1;
IN4=0;
}
void right() //右转
{
EN2=1; //打开使能
IN3=0;
IN4=1;
}
void stop() //停止
{
IN2=0;
IN1=0;
IN3=0;
IN4=0;
}
void main()
{
Init(); //定时器初始化
while(1)
{
if(R==0 && L==1 && M==1) //右传感器检测到黑线
{
right(); //右转
forward();
while(R==0 && L==1 && M==1);
}
if(R==1 && L==0 && M==1) //左传感器检测到黑线
{
left();
forward();
while(R==1 && L==0 && M==1);
}
if(R==0 && L==0 && M==0) //都检测到黑线则继续前进
{
forward();
j = 0; //定时器仍在工作,计数时间清空
}
if (U==1)
{
back();
right();
left();
}
else //都没有检测到黑线
{
EN2 = 0; //关闭转向控制
forward();
}
}
}
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEG...
没什么意思,就是未被调用的程序代码比如说前面定义了些什么函数、变量啊,实际上,你没有使用他们,就出现这个警告 本回答由网友推荐 举报| 答案纠错 | 评论(1) 33 5 zk212139 采纳率:37% 擅长: 暂未定制 为您推荐:其他类似问题2012-10-08 keil编译时,出现这样的情况是怎么回事? *** WARN... 9 2013-...