/****************************************************************************

简单寻迹程序:接法

EN1 EN2 PWM输入端,本程序不输入PWM,直接使插上跳线帽,使能输出,这样就能全速运行

P1_0 P1_1 接IN1 IN2 当 P1_0=1,P1_1=0; 时左上电机正转 左上电机接驱动板子输出端(蓝色端子OUT1 OUT2)

P1_0 P1_1 接IN1 IN2 当 P1_0=0,P1_1=1; 时左上电机反转

P1_0 P1_1 接IN1 IN2 当 P1_0=0,P1_1=0; 时左上电机停转

P1_2 P1_3 接IN3 IN4 当 P1_2=1,P1_3=0; 时左下电机正转 左下电机接驱动板子输出端(蓝色端子OUT3 OUT4)

P1_2 P1_3 接IN3 IN4 当 P1_2=0,P1_3=1; 时左下电机反转

P1_2 P1_3 接IN3 IN4 当 P1_2=0,P1_3=0; 时左下电机停转

P1_4 P1_5 接IN5 IN6 当 P1_4=1,P1_5=0; 时右上电机正转 右上电机接驱动板子输出端(蓝色端子OUT5 OUT6)

P1_4 P1_5 接IN5 IN6 当 P1_4=0,P1_5=1; 时右上电机反转

P1_4 P1_5 接IN5 IN6 当 P1_4=0,P1_5=0; 时右上电机停转

P1_6 P1_7 接IN7 IN8 当 P1_6=1,P1_7=0; 时右下电机正转 右下电机接驱动板子输出端(蓝色端子OUT7 OUT8)

P1_6 P1_7 接IN7 IN8 当 P1_6=0,P1_7=1; 时右下电机反转

P1_6 P1_7 接IN7 IN8 当 P1_6=0,P1_7=0; 时右下电机停转

P3_2接四路寻迹模块接口第一路输出信号即中控板上面标记为OUT1

P3_3接四路寻迹模块接口第二路输出信号即中控板上面标记为OUT2

P3_4接四路寻迹模块接口第三路输出信号即中控板上面标记为OUT3

P3_5接四路寻迹模块接口第四路输出信号即中控板上面标记为OUT4

四路寻迹传感器有信号(白线)为0 没有信号(黑线)为1

四路寻迹传感器电源+5V GND 取自于单片机板靠近液晶调节对比度的电源输出接口

关于单片机电源:本店驱动模块内带LDO稳压芯片,当电池输入6V时时候可以输出稳定的5V

分别在针脚标+5 与GND 。这个输出电源可以作为单片机系统的供电电源。

****************************************************************************/

#include

#define Left_moto_pwm P3_6 //PWM输出本寻迹小车不用

#define Right_moto_pwm P3_7 //PWM输出本寻迹小车不用

#define Left_1_led P3_2 //P3_2接四路寻迹模块接口第一路输出信号即中控板上面标记为OUT1

#define Left_2_led P3_3 //P3_3接四路寻迹模块接口第二路输出信号即中控板上面标记为OUT2

#define Right_1_led P3_4 //P3_4接四路寻迹模块接口第三路输出信号即中控板上面标记为OUT3

#define Right_2_led P3_5 //P3_5接四路寻迹模块接口第四路输出信号即中控板上面标记为OUT4

#define Left_moto_go {P1_0=1,P1_1=0,P1_2=1,P1_3=0;} //左边两个电机向前走

#define Left_moto

_back {P1_0=0,P1_1=1,P1_2=0,P1_3=1;} //左边两个电机向后转

#define Left_moto_Stop {P1_0=0,P1_1=0,P1_2=0,P1_3=0;} //左边两个电机停转

#define Right_moto_go {P1_4=1,P1_5=0,P1_6=1,P1_7=0;} //右边两个电机向前走

#define Right_moto_back {P1_4=0,P1_5=1,P1_6=0,P1_7=1;} //右边两个电机向前走

#define Right_moto_Stop {P1_4=0,P1_5=0,P1_6=0,P1_7=0;} //右边两个电机停转

unsigned char pwm_val_left =0;

unsigned char push_val_left =1;// 左电机占空比10/40

unsigned char pwm_val_right =0;

unsigned char push_val_right=1;// 右电机占空比10/40

bit Right_moto_stop=1;

bit Left_moto_stop =1;

/************************************************************************/

//延时函数

void delay(unsigned int k)

{

unsigned int x,y;

for(x=0;x

for(y=0;y

}

/************************************************************************/

//前速前进

void run(void)

{

//push_val_left =4;

//push_val_right =4;

Left_moto_go ;

Right_moto_go ;

}

/************************************************************************/

/* PWM调制电机转速 */

/************************************************************************/

/* 左电机调速 */

/*调节push_val_left的值改变电机转速,占空比 */

void pwm_out_left_moto(void)

{

if(Left_moto_stop)

{

if(pwm_val_left

Left_moto_pwm=1;

else

Left_moto_pwm=0;

if(pwm_val_left>=10)

pwm_val_left=0;

}

else Left_moto_pwm=0;

}

/******************************************************************/

/* 右电机调速 */

void pwm_out_right_moto(void)

{

if(Right_moto_stop)

{

if(pwm_val_right

Right_moto_pwm=1;

else

Right_moto_pwm=0;

if(pwm_val_right>=10)

pwm_val_right=0;

}

else Right_moto_pwm=0;

}

/***************************************************/

/*TIMER0中断服务子函数*/

void timer0()interrupt 1 using 2

{

TH0=0XF8; //1Ms定时

TL0=0X30;

pwm_val_left++;

pwm_val_right++;

pwm_out_left_moto();

pwm_out_right_moto();

}

/*********************************************************************/

/*--主函数--*/

void main(void)

{

TMOD=0X01;

TH0= 0XF8; //1ms定时

TL0= 0X30;

TR0= 1;

ET0= 1;

EA = 1;

delay(100);

run();

while(1) /*无限循环*/

{

//有信号为0 没有信号为1

if(Left_2_led==0&&Right_1_led==0)

run();

else

{

if(Left_2_led==1&&Right_1_led==0) //右边检测到黑线

{

Left_moto_go; //左边两个电机正转

Right_moto_back; //右边两

个电机反转

}

if(Right_1_led==1&&Left_2_led==0) //左边检测到黑线

{

Right_moto_go; //右边两个电机正转

Left_moto_back; //左边两个电机反式开始转

}

}

}

}

c语言小车程序,循迹小车程序C语言相关推荐

  1. c语言小车程序,循迹小车的C语言程序(带注释)

    循迹小车的C语言程序附带详细的注释 以便在阅读程序时 方便理解 另外 此程序是与FPGA板的VHDL液晶显示和音乐播放程序相互联系的... /*****循迹小车的制作与设计--单片机 C语言与 FPG ...

  2. 智能小车红外循迹原理

    循迹电路 循迹电路由收发一体的红外收发管P1,P2:电位器R18,R29:发光二极管D6,D7和芯片LM324等组成.一共有两路,对应的红外电位器用于调节灵敏度.LM234用于信号的比较,并产生比较结 ...

  3. 基于arduino的循迹小车(含有PID算法)

           循迹小车一般分为两方面:一方面是简单的闭环赛道只有直道和弯道,另一方面是毕设类型的包括一些元素:90度弯道.十字道路.S形弯道等. 1.CSDN下载: 含有PID:https://dow ...

  4. c32循迹小车c语言程序,stm32篇--小车循迹

    小车的循迹算法 循迹小车使用红外对射寻黑线,根据轨道的不同,我使用了两种不同算法: (1)第一种是在轨道外有影响的,比如轨道外有黑色,车出去一点就会碰到黑色,那就是检测到歪了之后除非检测它 回来了,否 ...

  5. arduino黑线循迹小车程序_循迹小车:给我一条线,我能自己走完全程

    在老少通吃的智能小车到底是什么呢?科普来喽!一文中,我们介绍了智能小车的分类及组成,为什么循迹小车能够追踪黑线轨迹呢? 智能小车在画有黑线的白纸 "路面"上行驶,由于黑线和白纸对光 ...

  6. 循迹小车程序编程_电子编程?其实很容易!

    7月17日至18日,重庆大学分营第八组的部分成员在重庆大学A区第八教学楼参加了"科创生活之初体验"活动.在老师的指导下,营员们拼接电子硬件,使用智能电子编程软件完成了呼吸灯.调速风 ...

  7. RISC_V循迹小车程序(自用)

    RISC_V循迹小车程序 C程序 C程序 因为用的时perfv已经集成好的IDE,里面H文件已经包含好了,所以只有C. 位置在E:\project\car_1\car_1\src /********* ...

  8. STM32、51循迹小车 【STM32入门控制必会 含51全部程序】

    目录 前言 方案设计 逻辑分析 程序编写 C51程序-模块化便于移植 STM32程序 添加串口程序变身STM32遥控小车 结语 前言 故事的由来的从给学弟学妹门辅导一次单片机综合实验课开始,由于笔者比 ...

  9. c语言小车寻迹实训报告,循迹小车项目实训报告.doc

    循迹小车项目实训报告 寻迹小车的设计与制作实训报告 课程名称: C51程序设计 EDA技术 专业班级: 应电0935班 指导老师: 方跃春 谭刚林 小组成员: 黄春桥 汤政 孙巍明 阳毅 实训项目要求 ...

  10. 小车c语言实训报告,循迹小车实训报告.doc

    循 迹 小 车 实 训 报 告 系别班级:应电0932班 组员:谭威(30)李军(17号) 陈红梅(27)廖萍萍(18号) 指导老师:孟洋.张艳阳 时间:2011年6月20日 目录 一.项目总体方案- ...

最新文章

  1. python学习 爬取亚马逊网页,失败后。修改HTTP报文头部后成功!
  2. Hibernate Tools for Eclipse的使用
  3. c语言 链表 删除节点,C语言实现单链表节点的删除(不带头结点)
  4. linux 串口工具_会C++就能开发Linux/Android应用!这款Yoxios X3串口屏火了...
  5. 对象存储,为什么那么火?
  6. ionic 禁止横屏处理
  7. spring作用域单例和global_面试必备 | 69道Spring面试题
  8. 关于如何在视频中合成声音
  9. ThinkPHP的A方法,R方法,M方法,D方法区别
  10. c#编程实战宝典 付强_C#编程实战宝典(光盘内容另行下载,地址见书封底)
  11. websocket 发送数据大于0xFFFF(65535)的处理
  12. Java中的gvm_深入浅出GVM之GC
  13. 介绍主密钥,传输秘钥,工作秘钥
  14. 老师讲的真棒!Java高级程序员面试集合,你还看不懂吗?
  15. 日服人物一览(按实装版本倒序)
  16. Spring系列(五)Spring的多线程
  17. hint: Updates were rejected because a pushed branch tip is behind its remote
  18. os error os5_汽车OS竞赛
  19. Android实现图片 高斯模糊,以及图片镜像 翻转。
  20. 世界上一共有多少种编程语言?

热门文章

  1. 程序员入门:三本必看的书
  2. 如何免费下载付费音乐
  3. Flexsim 强化学习
  4. ShipConstructor.2006v1.00.rar
  5. Linux 抓包还不会?这篇文章赶紧收藏
  6. CAPL学习之路-以太网函数
  7. 权重的计算(熵权法)
  8. php抽奖实现-概率算法
  9. UG NX 12 坐标系的操作
  10. java od_OD使用教程