#include

#define uchar unsigned char

#define uint unsigned int

unsigned char zkb1=0;    //**左边电机的占空比**//

unsigned char zkb2=0 ;    //**右边电机的占空比**//

unsigned char t=0;        //**定时器中断计数器**//

sbit RSEN1=P1^0;

sbit RSEN2=P1^1;

sbit LSEN1=P1^2;

sbit LSEN2=P1^3;

sbit IN1=P0^0;

sbit IN2=P0^1;

sbit IN3=P0^2;

sbit IN4=P0^3;

sbit ENA=P0^4;

sbit ENB=P0^5;

//****************延时函数****************//

void delay(int z)

{   while (z--);  }

//**********初始化定时器,中断***********//

void init()

{  TMOD=0x01;

TH0=(65536-100)/256;

TL0=(65536-100)%256;

EA=1;

ET0=1;

TR0=1;

}

//***********中断函数+脉宽调制***********//

void timer0() interrupt 1

{ if(t

ENA=1;

else

ENA=0;

if(t

ENB=1;

else

ENB=0;

t++;

if(t>=100)

{t=0;}

}

//******************直行******************//

void qianjin()

{  zkb1=30;

zkb2=30;

}

//***************左转函数1***************//

void turn_left1()

{  zkb1=0;

zkb2=50;

}

//***************左转函数2***************//

void turn_left2()

{  zkb1=0;

zkb2=60;

}

//***************右转函数1***************//

void turn_right1()

{  zkb1=50;

zkb2=0;

}

//***************右转函数2***************//

void turn_right2()

{  zkb1=60;

zkb2=0;

}

//***************循迹函数*****************//

void xunji()

{ uchar flag;

if((RSEN1==1)&&(RSEN2==1)&&(LSEN1==1)&&(LSEN2==1))

{ flag=0; }//*******直行*******//

else  if((RSEN1==0)&&(RSEN2==1)&&(LSEN1==1)&&(LSEN2==1))

{ flag=1;} //***左偏1,右转1***//

else  if((RSEN1==0)&&(RSEN2==0)&&(LSEN1==1)&&(LSEN2==1))

{ flag=2;} //***左偏2,右转2***//

else if((RSEN1==1)&&(RSEN2==1)&&(LSEN1==0)&&(LSEN2==1))

{ flag=3; }//***右偏1,左转1***//

else if((RSEN1==1)&&(RSEN2==1)&&(LSEN1==0)&&(LSEN2==0))

{ flag=4; }//***右偏2,左转2***//

switch (flag)

{  case 0:qianjin();

break;

case 1:turn_right1();

break;

case 2:turn_right2();

break;

case 3:turn_left1();

break;

case 4 :turn_left2();

break;

default:break;

}

}

//****************主程序****************//

void main()

{ init();

zkb1=30;

zkb2=30;

while(1)

{  IN1=1; //******给电机加电启动******//

IN2=0;

IN3=1;

IN4=0;

ENA=1;

ENB=1;

while(1)

{  xunji(); //*********寻迹**********//

}

}

}

单片机循迹车c语言程序,基于单片机控制的简易自动循迹小车仿真与程序源码...相关推荐

  1. Matlab之在城市环境中基于动态占用网格图的的运动规划仿真(附源码)

    目录 一.介绍 二.设置场景和基于网格的跟踪器 三.设置运动规划器 四.结果 五.总结 六.程序 此示例演示如何使用 Frenet 参考路径在城市驾驶场景中执行动态重新规划.在此示例中,将使用本地环境 ...

  2. 基于Matlab生成并可视化多架飞机轨迹仿真(附源码)

    目录 一.介绍 二.插值器选择 三.航点建设 四.场景生成 4.1 轨迹可视化 4.2 轨迹 1 4.3  轨迹 2 4.4  轨迹 3 4.5  轨迹 4 4.6  轨迹 5 4.7  轨迹 6 五 ...

  3. 基于Matlab多平台雷达网络生成雷达检测仿真(附源码)

    目录 一.带旋转雷达阵列的机载平台 二.带有两个雷达阵列的机载平台 三.带有矩形雷达阵列的地面平台 四.机载目标 五.雷达探测的生成 六.总结 七.程序 此示例演示如何从多平台雷达网络生成雷达检测.该 ...

  4. 基于Matlab使用 System 对象模拟惯性测量单元测量仿真(附源码)

    目录 一.默认参数 二.硬件参数调优 三. 随机噪声参数调谐 四.环境参数调整 五.程序 此示例演示如何使用 System 对象模拟惯性测量单元 (IMU) 测量.IMU 可以包括单个传感器的组合,包 ...

  5. 【电路】基于单片机智能睡眠枕系统设计-基于单片机音乐喷泉制作设计-基于单片机智能温控风扇调速系统设计-基于单片机智能自动循迹小车控制系统设计-基于数字电路的4人投票系统设计(仿真,报告)毕设课设资料

    1620基于单片机智能睡眠枕系统设计-文档+PPT+PCB图+原理图+源码 智能睡眠枕主要由lcd屏幕.蓝牙.压力传感器.蜂鸣器.单片机等等组成,用户可通过四个独立按键进行操控(四个按键从左至右为1. ...

  6. 单片机按键控制数码管c语言程序,基于单片机的按键控制LED数码管共阴极动态显示电路设计报告(毕业论文).doc...

    基于单片机的按键控制LED数码管共阴极动态显示电路设计报告(毕业论文) 物理与电子工程学院2014级课程设计 PAGE IV 物理与电子工程学院 <单片机原理与接口技术> 课程设计报告书 ...

  7. 计算机毕业设计springboot基于疫情背景下的新型点餐送餐系统bpe1s源码+系统+程序+lw文档+部署

    计算机毕业设计springboot基于疫情背景下的新型点餐送餐系统bpe1s源码+系统+程序+lw文档+部署 本源码技术栈: 项目架构:B/S架构 开发语言:Java语言 开发软件:idea ecli ...

  8. nao机器人行走速度_基于PID控制的NAO机器人循线行走技术研究

    基于 PID 控制的 NAO 机器人循线行走技术研究 秦 娇,王向华 [摘 要] 智能机器人的循线行走技术在工业安全领域具有重要意义.选用 NAO 机器人作为研究平台,创新点在于将其在平面上的运动学动 ...

  9. 计算机毕业设计springboot基于大数据的疫情追踪系统的设计和实现rva1s源码+系统+程序+lw文档+部署

    计算机毕业设计springboot基于大数据的疫情追踪系统的设计和实现rva1s源码+系统+程序+lw文档+部署 计算机毕业设计springboot基于大数据的疫情追踪系统的设计和实现rva1s源码+ ...

  10. 基于51单片机的蓝牙控制双色LED点阵显示屏(实物图+原理图+源码+全套资料)

    资料编号:086 采用stm32单片机,可以通过蓝牙app控制点阵显示不同效果, 具体功能请看演示视频,全套资料齐全: 86-基于51单片机的蓝牙控制双色LED点阵显示屏(实物图+原理图+源码+全套资 ...

最新文章

  1. Basic005. Intro to statistics basic terms统计名词介绍
  2. 965. Univalued Binary Tree
  3. jquery json 判断用户是否已注册
  4. 【redis】布隆过滤器详解
  5. Mysql - Binlog
  6. 计算机项目教学法探讨,【计算机教学论文】项目教学法在计算机教学中的应用(共3594字)...
  7. Windows XP 下的 MySQL+Apache+PHP 运行环境架设 (顶)
  8. 运行maven项目整合ssm时的错误笔记
  9. gridview求和
  10. ftps linux 服务器,linux下ftps服务器的搭建总结
  11. 计算机概念图图例,写出统计图的名称和制图什么并标出图例
  12. 文件访问被拒绝XXX 你需要权限才能执行此操作你需要计算机管理员提供的权限才能对此文件进行更改
  13. flink ui含义图解
  14. Android快速开发框架之xUtils---图片模块
  15. usr/bin/ld: i386 architecture of input file XXX.a( xxx.o) is incompatible with i386:x86-64
  16. 最优化技术——单纯形法
  17. iMatrix平台的权限管理系统是一个基于角色的访问控制系统
  18. 无线射频专题《射频单位,功率单位与相对单位,瓦特,毫瓦,分贝,dBi,dBd,dBm》
  19. 广东创建培训促进就业新机制(其二)
  20. 进程携程python_异步携程

热门文章

  1. vue 项目中 zip 压缩包文件下载
  2. python实现雪花飘落的效果_简单说 JavaScript实现雪花飘落效果
  3. 报错:Cannot get Jedis connection; nested exception is redis.clients.jedis.exceptions.
  4. 路由器密码重置(不是适用于所有有些启动顺序数字不一样)
  5. 今日,华为重磅发布6大创新产品及服务!
  6. 学php应该怎么学习数学,数学难学,数学到底该怎么学?
  7. openwrt-wps功能的实现(一)
  8. VisualStudio 如何使用UML呢?(转自简书雨落随风)
  9. 用计算机撩人套路,各种撩人的套路句子40句
  10. C++读入用逗号隔开的数据