资源简介
自己做的五路循迹,基于51单片机的。能成功寻迹。四路驱动
代码片段和文件信息
#include
#define uchar unsigned char
#define uint unsigned int
#define lcd P0
sbit lcden=P2^7;
sbit lcdrs=P2^6;
sbit lcdrw=P2^5;
uchar code table1[]=“cm/s“;
uchar code table2[]=“s“;
uchar code table3[]=“Speed“;
uchar code table4[]=“Time“;
void delay(uint xms);
sbit ENA=P3^4;//左前pwm使能
sbit ENB=P3^5;//右前电机pwm使能
sbit ENC=P3^6;//左后
sbit END=P3^7;//右后
uchar pwmA=0;//左前轮的占空比
uchar pwmB=0; //右前
uchar pwmC=0;// 左后
uchar pwmD=0;// 右后
sbit left1=P2^0;//四路寻迹左一探头
sbit left2=P2^1;
sbit right1=P2^2;
sbit right2=P2^3;//从左到右依次为左二左一,右一右二
sbit middle=P2^4;
sbit left_front1=P1^0;//四个电机的io口
sbit left_front2=P1^1;
sbit right_front1=P1^2;
sbit right_front2=P1^3;
sbit left_back1=P1^4;
sbit left_back2=P1^5;
sbit right_back1=P1^6;
sbit right_back2=P1^7;
uchar t=0;
uint numz;
long int miao=0;
long int v;
long int M1s;
long int M=0;
uchar baishigebaitshitget;
void T1_init()//用于产生调pwm
{
TMOD=0x10;
TH1=(65536-50)/256;
TL1=(65536-50)%256;
EA=1;
ET1=1;
TR1=1;
}
void timer1() interrupt 3//频率20k,pwm
{
TH1=(65536-50)/256;
TL1=(65536-50)%256;
t++;
if(t else {ENA=0;}
if(t else {ENB=0;}
if(t else {ENC=0;}
if(t else {END=0;}
if(t>=100)
{t=0;}
}
void straight()
{
left_front1=1;
left_front2=0;
pwmA=99;//60
TR1=1;
right_front1=1;
right_front2=0;
pwmB=99;//35
TR1=1;
left_back1=1;
left_back2=0;
pwmC=99;//35
TR1=1;
right_back1=1;
right_back2=0;
pwmD=99;//
TR1=1;
}
void stop()
{
left_front1=1;
left_front2=1;
right_front1=1;
right_front2=1;
left_back1=1;
left_back2=1;
right_back1=1;
right_back2=1;
}
void lefts()//小幅度左转
{
left_front1=0;
left_front2=0;
pwmA=15;
right_front1=1;
right_front2=0;
pwmB=80;
left_back1=0;
left_back2=0;
pwmC=20;
right_back1=1;
right_back2=0;
pwmD=80;
}
void leftq()//大幅度左转
{
left_front1=0;
left_front2=1;
pwmA=15;
right_front1=1;
right_front2=0;
pwmB=50;
left_back1=0;
left_back2=1;
pwmC=15;
right_back1=1;
right_back2=0;
pwmD=50;
}
void rights()
{
left_front1=1;
left_front2=0;
pwmA=60;
right_front1=1;
right_front2=0;
pwmB=25;
left_back1=1;
left_back2=0;
pwmC=60;
right_back1=1;
right_back2=0;
pwmD=20;
}
void rightq()
{
left_front1=1;
left_front2=0;
pwmA=50;
right_front1=0;
right_front2=1;
pwmB=15;
left_back1=1;
left_back2=0;
pwmC=50;
right_back1=0;
right_back2=1;
pwmD=15;
}
void xunji()
{
uchar flag;
if((left1==1)&&(left2==1)&&(middle==0)&&(right1==1)&&(right2==1)||(left1==0)&&(left2==1)&&(middle==0)&&(right1==0)&&(right2==1))
{
flag=1;//直行
}
else if((left1==1)&&(left2==1)&&(middle==1)&&(right1==0)&&(right2==1)||(
- 上一篇:MVC做的小说管理系统
- 下一篇:石材仿形机程序
相关资源
- 基于51单片机的交通灯设计
- 51 教室智能灯 控制系统
- 51单片机125Khz ID卡读卡程序
- 51单片机课程设计内含50多个课程设计
- 51单片机实现蜂鸣器的简易歌曲播放器
- 基于51单片机的智能十字路口交通灯系
- 51单片机编写的标准modbus协议通信模版
- SIM900A通过51单片机拨打电话程序
- at89c51单片机外文翻译
- CW2015 51单片机程序
- 基于51单片机的超声波测距技术实现含
- 基于51单片机射频密码锁设计门禁刷卡
- 基于51单片机的十字路口交通灯Protu
- 32x16LED汉子点阵显示屏
- 收发短信,短信控制LED51单片机例程
- 51单片机智能小车花式,寻迹,红外,
- 五路寻迹模块+寻迹传感器+循迹模块
- 51单片机 音乐彩灯
- 基于51单片机的刷卡签到系统
- 12864多功能万年历
- 郭天祥的GSM与51单片机通信程序一
- MCS-51单片机定时器/计数器常见习题解
- 51单片机实现智能型孵化器的控制系统
- 51单片机7种常见时钟电路图
- 解析51单片机LED系统电路
- 51单片机实现usb鼠标
- 51单片机数码管滚动显示hello
- 16x16点阵程序
- 060 示波器 简易示波器 51单片机 仿真
- 0-999计数器的C51程序
评论
共有 条评论