智能循迹小车设计报告
智能循迹小车___设计报告

智能循迹小车___设计报告设计报告:智能循迹小车一、设计背景智能循迹小车是一种能够通过感知地面上的线条进行导航的小型机器人。
循迹小车可以应用于许多领域,如仓库管理、物流配送、家庭服务等。
本设计旨在开发一款功能强大、性能稳定的智能循迹小车,以满足不同领域的需求。
二、设计目标1.实现循迹功能:小车能够准确地识别地面上的线条,并按照线条进行导航。
2.提供远程控制功能:用户可以通过无线遥控器对小车进行控制,包括前进、后退、转向等操作。
3.具备避障功能:小车能够识别和避开遇到的障碍物,确保行驶安全。
4.具备环境感知功能:小车能够感知周围环境,包括温度、湿度、光照等参数,并将数据传输给用户端。
5.高稳定性和可靠性:设计小车的硬件和软件应具备较高的稳定性和可靠性,以保证长时间的工作和使用。
三、设计方案1.硬件设计:(1) 采用Arduino控制器作为主控制单元,与传感器、驱动器等硬件模块进行连接和交互。
(2)使用红外传感器作为循迹传感器,通过检测地面上的线条来实现循迹功能。
(3)使用超声波传感器来检测小车前方的障碍物,以实现避障功能。
(4)添加温湿度传感器和光照传感器,以提供环境感知功能。
(5)将无线模块与控制器连接,以实现远程控制功能。
2.软件设计:(1) 使用Arduino编程语言进行程序设计,编写循迹、避障和远程控制的算法。
(2)设计用户界面,通过无线模块将控制信号发送给小车,实现远程控制。
(3)编写数据传输和处理的程序,将环境感知数据发送到用户端进行显示和分析。
四、实施计划1.硬件搭建:按照设计方案中的硬件模块需求,选购所需元件并进行搭建。
2.软件开发:根据设计方案中的软件设计需求,编写相应的程序并进行测试。
3.功能调试:对小车的循迹、避障、远程控制和环境感知功能进行调试和优化。
4.性能测试:使用不同场景和材料的线条进行测试,验证小车的循迹性能。
5.用户界面开发:设计用户端的界面,并完成与小车的远程控制功能的对接。
智能寻迹小车设计报告

目录1.项目设计目的 (1)2.项目设计正文 (3)2。
1.项目分析及方案制定 (3)2。
2.设计步骤及流程图 (4)2。
2.1.寻迹设计步骤 (4)2。
2。
2.流程图 (4)2.3.主要模块介绍 (4)2。
3。
1.LM393 (4)2。
3.1.1 LM393的主要特点 (4)2.3。
1。
2 LM393引脚图及内部框图 (5)2。
3。
1.3 LM393 功能简介 (5)2。
3。
2.89C2051 (5)2.3.2。
1 89C2051简介 (5)2.3.2.2 89C2051 主要性能参数 (5)2.3。
2.3 89C2051 功能特性概述 (6)2.4.电路设计及PCB绘制 (6)2。
4。
1.电源电路 (6)2.4。
2.红外收发电路 (6)2。
4.3.电机驱动电路 (7)2。
4。
4.单片机最小系统 (7)2。
4。
5. 整体电路 (8)2。
4.6。
PCB板的绘制 (8)2.5. 成品展示 (9)3.项目设计总结 (9)4.参考文献 (10)智能寻迹小车——CDIO三级项目王君杰(电子信息工程1501 150070116)一、项目设计目的在科技飞速发展的今天,智能化的概念已经渗入到各行各业,自动控制系统也出现在生活的方方面面,早到工厂的机械化生产,近到目前的自动驾驶.越来越多的领域涉及到电控制技术。
特别是使用单片机一类的MCU的控制,在生活中越来越常见。
因此,基于单片机控制的电路的学习和时间对于我们来说就显得尤为重要。
同时,对于单片机作为软件主控单元,结合模电数电的硬件电路支持的综合项目开发,也是作为大学生需要了解并且熟练运用的基础。
掌握了这些知识,对于我们以后的职业发展也有着莫大的帮助。
二、项目设计正文2.1、项目分析及方案制定首先对于“智能寻迹小车”这个标题而言,我们可以分为两个部分:小车和智能寻迹。
“小车"决定了硬件电路的大致构成:电源、电容、电阻、开关、电机、LED.而“智能”则决定了一些高级电路的选用:MCU、传感器、电机驱动、电位器及一些IC。
智能循迹小车课程设计报告

智能循迹小车课程设计报告一、课程设计目标:本次智能循迹小车课程设计的目标是让学生了解智能硬件的基础知识,掌握基本电子元器件的原理及使用方法,学习控制系统的组成和运行原理,并通过实践操作设计出一款功能齐全的智能循迹小车。
二、课程设计内容及步骤:1. 调研与分析——首先要对市面上现有的智能循迹小车进行调研与分析,了解各种类型的循迹小车的特点和优缺点,为后续的设计提供参考。
2. 硬件选型——根据课程设计目标和实际需要,选择合适的主控芯片、电子元器件和传感器等硬件。
3. 原理图设计——根据硬件选型,设计出对应的原理图,并在硬件上进行布局与焊接。
4. 程序设计——先在电路板上测试硬件是否正常,随后进行程序设计,根据传感器的反馈控制小车的运动,让小车能够沿着黑线自动循迹行驶,同时加入避障功能和自动寻迹功能。
5. 调试与优化——完成程序设计后,要对小车进行全面验收测试,发现问题及时解决并优化相关程序。
三、设计思路:本次课程设计基于树莓派电路板,利用循迹模块实现小车的自动循迹和自动寻迹。
同时将超声波模块结合避障算法实现小车的自动避障。
小车的外壳采用3D打印技术制作,操作简单实用。
四、课程设计效果:通过本课程设计,学生们从理论到实践,了解了智能硬件的基础知识,掌握了基本电子元器件的原理及使用方法,学习了控制系统的组成和运行原理。
同时,实践操作过程中,学生们培养了动手能力和实际操作的技能。
通过制作一台智能循迹小车,学生们对智能硬件的认识更加深入,并获得了较高的设计满足感。
五、课程设计展望:智能循迹小车是智能硬件应用领域的一项重要发明,具有广泛的应用前景。
未来,可以将循迹小车应用于快递、物流等行业,实现自动化送货、配送。
同时可以将遥控技术与循迹技术相结合,设计出更加高效、实用的智能循迹小车,推动智能化生产和工作环境。
2024年度-智能循迹小车设计

智能循迹小车设计目录•项目背景与意义•系统总体设计•循迹算法研究•控制系统设计•调试与测试•项目成果展示•总结与展望01项目背景与意义智能循迹小车概述定义智能循迹小车是一种基于微控制器、传感器和执行器等技术的自主导航小车,能够按照预定路径进行自动循迹。
工作原理通过红外、超声波等传感器感知周围环境信息,将感知数据传输给微控制器进行处理,微控制器根据预设算法控制执行器调整小车行驶状态,实现循迹功能。
随着工业自动化的发展,智能循迹小车在生产线、仓库等场景中的应用需求不断增加。
自动化需求教育领域需求娱乐领域需求智能循迹小车作为教学实验平台,在高等教育、职业教育等领域具有广泛应用前景。
智能循迹小车可以作为玩具或模型车进行娱乐竞技活动,满足消费者休闲娱乐需求。
030201市场需求分析通过本项目的研究与实践,掌握智能循迹小车的核心技术,包括传感器技术、微控制器技术、控制算法等。
技术目标将智能循迹小车应用于实际场景中,提高生产效率、降低成本、提升产品品质等方面的效益。
应用目标通过智能循迹小车的研发与教学应用,培养学生动手实践能力、创新精神和团队协作能力。
教育意义推动智能循迹小车相关产业的发展,促进就业和经济增长,提升国家科技竞争力。
社会意义项目目标与意义02系统总体设计主控制器传感器模块电机驱动模块电源管理模块总体架构设计01020304负责接收和处理传感器数据,控制小车运动。
包括红外传感器、超声波传感器等,用于感知环境和障碍物。
驱动小车前进、后退、转弯等动作。
为整个系统提供稳定可靠的电源。
硬件选型及配置选用高性能、低功耗的微控制器,如STM32系列。
选用高灵敏度、低误差的传感器,如红外反射式传感器、超声波测距传感器等。
选用高效、稳定的电机驱动器,如L298N电机驱动板。
选用合适的电池和电源管理芯片,确保系统长时间稳定运行。
主控制器传感器模块电机驱动模块电源管理模块初始化模块传感器数据处理模块运动控制模块调试与测试模块软件功能划分负责系统启动时的初始化工作,包括硬件初始化、参数设置等。
智能寻迹小车实验报告

智能寻迹小车实验报告
实验目的:
设计一个智能寻迹小车,能够依据环境中的黑线自主行驶,并避开障碍物。
实验材料:
1. Arduino开发板
2. 电机驱动模块
3. 智能车底盘
4. 红外传感器
5. 电源线
6. 杜邦线
7. 电池
实验步骤:
1. 按照智能车底盘的说明书将车底盘组装起来。
2. 将Arduino开发板安装在车底盘上,并与电机驱动模块连接。
3. 连接红外传感器到Arduino开发板上,以便检测黑线。
4. 配置代码,使小车能够依据红外传感器检测到的黑线自主行驶。
可以使用PID控制算法来控制小车的速度和方向。
5. 测试小车的寻迹功能,可以在地面上绘制黑线,观察小车是否能够准确地跟随黑线行驶。
6. 根据需要,可以添加避障功能。
可以使用超声波传感器或红外避障传感器来检测障碍物,并调整小车的行驶路线。
实验结果:
经过实验,可以发现小车能够依据红外传感器检测到的黑线自主行驶,并能够避开障碍物。
小车的寻迹功能和避障功能能够实现预期的效果。
实验总结:
本次实验成功设计并实现了智能寻迹小车。
通过使用Arduino 开发板、电机驱动模块和红外传感器等材料,配合合适的代码配置,小车能够准确地跟随黑线行驶,并能够避开障碍物。
该实验展示了智能小车的基本原理和应用,为进一步研究和开发智能车提供了基础。
智能循迹小车实验报告

智能循迹小车实验报告第一篇:智能循迹小车实验报告摘要本设计主要有单片机模块、传感器模块、电机驱动模块以及电源模块组成,小车具有自主寻迹的功能。
本次设计采用STC公司的89C52单片机作为控制芯片,传感器模块采用红外光电对管和比较器实现,能够轻松识别黑白两色路面,同时具有抗环境干扰能力,电机模块由L298N芯片和两个直流电机构成,组成了智能车的动力系统,电源采用7.2V的直流电池,经过系统组装,从而实现了小车的自动循迹的功能。
关键词智能小车单片机红外光对管 STC89C52 L298N 1 绪论随着科学技术的发展,机器人的设计越来越精细,功能越来越复杂,智能小车作为其的一个分支,也在不断发展。
在近几年的电子设计大赛中,关于小车的智能化功能的实现也多种多样,因此本次我们也打算设计一智能小车,使其能自动识别预制道路,按照设计的道路自行寻迹。
设计任务与要求采用MCS-51单片机为控制芯片(也可采用其他的芯片),红外对管为识别器件、步进电机为行进部件,设计出一个能够识别以白底为道路色,宽度10mm左右的黑色胶带制作的不规则的封闭曲线为引导轨迹并能沿该轨迹行进的智能寻迹机器小车。
方案设计与方案选择3.1 硬件部分可分为四个模块:单片机模块、传感器模块、电机驱动模块以及电源模块。
3.1.1 单片机模块为小车运行的核心部件,起控制小车的所有运行状态的作用。
由于以前自己开发板使用的是ATMEL公司的STC89C52,所以让然选择这个芯片作为控制核心部件。
STC89C52是一种低损耗、高性能、CMOS八位微处理器,片内有4k字节的在线可重复编程、快速擦除快速写入程序的存储器,能重复写入/擦除1000次,数据保存时间为十年。
其程序和数据存储是分开的。
3.1.2 传感器模块方案一:使用光敏电阻组成光敏探测器采集路面信息。
阻值经过比较器输出高低电平进行分析,但是光照影响很大,不能稳定工作。
方案二:使用光电传感器来采集路面信息。
自动循迹智能小车设计报告

一、设计目标通过设计进一步掌握51单片机的应用,特别是在控制系统中的应用。
进一步学习51单片机在系统中的控制功能,能够合理设计单片机的外围电路,并使之与单片机构成整个系统。
二、总体方案设计该智能车采用红外传感器对赛道进行道路检测,单片机根据采集到的信号的不同状态判断小车当前状态,通过电机驱动芯片L298N发出控制命令,控制电机的工作状态以实现对小车姿态的控制,绕跑到行驶一周。
三、软硬件设计硬件电路的设计1、最小系统:小车采用atmel公司的AT89C52单片机作为控制芯片,图1是其最小系统电路。
主要包括:时钟电路、电源电路、复位电路。
其中各个部分的功能如下:(1)、电源电路:给单片机提供5V电源。
(2)、复位电路:在电压达到正常值时给单片机一个复位信号。
图1 单片机最小系统原理图2、电源电路设计:模型车通过自身系统,采集赛道信息,获取自身速度信息,加以处理,由芯片给出指令控制其前进转向等动作,各部分都需要由电路支持,电源管理尤为重要。
在本设计中,51单片机使用5V电源,电机及舵机使用5V电源。
考虑到电源为电池组,额定电压为4.5V,实际充满电后电压则为4-4.5V,所以单片机及传感器模块采用最小系统模块稳压后的5V电源供电,舵机及电机直接由电池供电。
3、传感器电路:光电寻线方案一般由多对红外收发管组成,通过检测接收到的反射光强,判断黑白线。
原理图由红外对管和电压比较器两部分组成,红外对管输出的模拟电压通过电压比较器转换成数字电平输出到单片机。
图2 赛道检测原理图:4、电机驱动电路:电机驱动芯片L298N是SGS公司的产品,内部包含4通道逻辑驱动电路。
是一种二相和四相电机的专用驱动器,即内含二个H桥的高电压大电流双全桥式驱动器,接收标准TTL逻辑电平信号,可驱动46V、2A以下的电机。
其引脚排列如图1中U4所示,1脚和15脚可单独引出连接电流采样电阻器,形成电流传感信号。
L298可驱动2个电机,OUT1、OUT2和OUT3、OUT4之间分别接2个电动机。
智能循迹小车实验报告

智能循迹小车实验报告一、实验目的本次实验旨在设计并实现一款能够自主循迹的智能小车,通过传感器检测路径信息,控制小车的运动方向,使其能够沿着预定的轨迹行驶。
通过本次实验,深入了解自动控制、传感器技术和单片机编程等方面的知识,提高实际动手能力和问题解决能力。
二、实验原理1、传感器检测本实验采用红外传感器来检测小车下方的黑线轨迹。
红外传感器由红外发射管和接收管组成,当发射管发出的红外线照射到黑色轨迹时,反射光较弱,接收管接收到的信号较弱;当照射到白色区域时,反射光较强,接收管接收到的信号较强。
通过比较接收管的信号强度,即可判断小车是否偏离轨迹。
2、控制算法根据传感器检测到的轨迹信息,采用 PID 控制算法(比例积分微分控制算法)来计算小车的转向控制量。
PID 算法通过对误差(即小车偏离轨迹的程度)进行比例、积分和微分运算,得到一个合适的控制输出,使小车能够快速、准确地回到轨迹上。
3、电机驱动小车的动力由直流电机提供,通过电机驱动芯片(如 L298N)来控制电机的正反转和转速。
根据控制算法计算出的转向控制量,调整左右电机的转速,实现小车的转向和前进。
三、实验器材1、硬件部分单片机开发板(如 STM32 系列)红外传感器模块直流电机及驱动模块电源模块小车底盘及车轮杜邦线、面包板等2、软件部分Keil 等单片机编程软件串口调试助手四、实验步骤1、硬件搭建将红外传感器模块安装在小车底盘下方,使其能够检测到黑线轨迹。
将直流电机与驱动模块连接,并安装在小车底盘上。
将单片机开发板、传感器模块、驱动模块和电源模块通过杜邦线连接起来,搭建好实验电路。
2、软件编程使用单片机编程软件,编写传感器检测程序、控制算法程序和电机驱动程序。
通过串口调试助手,将编写好的程序下载到单片机开发板中。
3、调试与优化启动小车,观察其在轨迹上的行驶情况。
根据小车的实际行驶情况,调整 PID 控制算法的参数,优化小车的循迹性能。
不断测试和改进,直到小车能够稳定、准确地沿着轨迹行驶。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
电子作品设计报告项目名称:智能小车学院:机电工程学院专业:应用电子技术班级:09应电(1)班组别:第三组姓名:杨磊赖焕宁梁广生指导老师:杨青勇玉宁目录关键词: (3)引言: (3)车体方案认证与选择 (4)二、硬件设计及说明2.1.5RS485数据总线 (6)摘要:本组的智能小车是采用凌阳的车架,是以两个电机来驱动小车,主板部分自行设计。
通过接收器MAX1483来采集信息,传送进主控芯片PIC16F886单片机,进行数据处理后,送进驱动芯片L293D以完成相应的操作。
采用反射式红外光电传感器ST178来实现小车自动循迹功能,并且整个过程采用液晶显示屏RT1602来显示相应的数据。
关键词:PIC16F886 L293D 反射式红外光电传感器ST178 自动循迹引言:近现代,随着电子科技的迅猛发展,人们对技术也提出了更高的要求。
汽车的智能化在提高汽车的行驶安全性,操作性等方面都有巨大的优势,在一些特殊的场合下也能满足一些特殊的需要。
智能小车系统涉及到自动控制,车辆工程,计算机等多个领域,是未来汽车智能化是一个不可避免的大趋势。
本文设计的小车以PIC16f886 为控制核心,用反射式红外光电传感器作为检测元件实现小车的自动循迹前行,并显示等功能。
一、系统设计本组智能小车的硬件主要有以PIC16f886 作为核心的主控器部分、自动循迹部分、显示部分、电机驱动部分。
其中电机驱动部分和其他部分分别由两个不同的电源分开供电。
小车硬件系统结构示意图如下:设计要求:(1)基本要求:实现小车的前进后退,左转右转(按照程序预设)(2)扩展部分:实现小车自动循迹功能,避障功能。
车体方案论证与选择:方案一:自己动手制作电动车,一方面材料缺少,另一方面制作过程要花费大量的时间,而且同学中手艺也不好,制作出来的小车还可能机械性能不好。
考虑到时间与性能这两方面,我们放弃了这一方案方案二:购买凌阳小车,购买的凌阳小车具有组装完整的车架车轮、电机及其驱动电路。
易改装,好控制。
机械性能有保障。
其小车图片如下:综合考虑,我们选择了方案一二、硬件设计及说明原理图设计2.1.1 稳压电源:电源电路为系统提供了基准电源,是整个系统工作稳定性关键所在,同时又考虑到节省空间的问题,所以我们选用了来稳定电压输出(5V),使用了电解电容C1、C2来作为滤波电容。
其原理图如下:2.1.2 基本系统:基本系统控制电路采用单片机PIC16F886作为主控单元,负责整个电路的资源分配以及对各路信号的采集、分析和处理。
配置了20MHZ的外部晶振以及蜂鸣器。
同时还配置了四个端口作功能扩展。
(可以用来连接小车循迹模块)单片机控制电路原理图如所示:2.1.3 电机驱动:驱动电路主要采用驱动芯片L293D来直接驱动电机,L293D为单块集成电路、高电压、高电流、四通道驱动,其额定工作电流为1A,最大可达 1.5A,Vss 电压最小,最大可达36V,可直接的对电机进行控制,无须隔离电路。
L293D 从主控单片机PIC16F886那里接受指令来直接控制电机的工作状态。
可以对电机进行正反转,停止的操作,非常方便。
发光二极管作为电源的指示灯。
其驱动电路原理图如下所示:2.1.4 液晶显示部分:主要用RT1602来显示数据,二极管1N4148用来调节显示器的对比度,电阻R2用来调节显示器的背光亮度。
(LCD液晶具有功耗低、显示内容丰富、清晰,显示信息量大,显示速度较快等特点)2.1.5 RS485数据总线主要用到的接收器是MAX1483由于MAX1483是用于RS-485和RS-422通信的低功耗收发器。
这种类型的摆率限制的驱动器,能够减小EMI和由于不恰当的电缆端接所引起的反射。
保证数据速率高达250kbps。
MAX1483仅绘制的供应电流为20μA。
此外,还有一个低电流关断模式,仅消耗μA。
这两种模式都工作在+5 V单电源。
驱动器具有短路电流限制,并通过将驱动器输出设置为高阻抗状态的热功耗关断电路来保护功耗不会过大。
当输入为开路,接收器输入具有失效保护功能,保证了逻辑高电平输出。
MAX1483具有1/8单位负载输入阻抗,保证总线上多达256个收发器。
2.1.6 循迹部分主要由四个反射式红外光电传感器ST178和四个电位器组成。
采用ST178型光电管完成系统循迹任务,循迹电路是用以实现小车沿着场地的黑色弧形引导轨迹进行前进和位置校正的,且小车不能偏离该轨迹。
在本设计中采用ST178型反射式红外光电传感器完成系统循迹任务,硬件电路实现比较简单,其灵敏度可以通过调节多圈电位器来实现。
其电路原理图如下:PCB设计2.2.1 主板PCB图如下:图1.主板PCB图2.2.2 循迹板PCB图2.循迹板PCB图三、软件设计及说明系统软件流程图如下图所示:(系统程序的具体代码见附录2)主程序流程图循迹子函数流程图四、系统测试过程测试工具:仪器名称用途电脑调试及下载程序数字万用表测量各种电路工作情况测试过程:1.我们尝试着先用PIC12F683来控制小车的前进、后退、左右转向。
结果试验成功,小车能正常的跑动起来。
这个小试验,是为了检测小车的机械性能。
达到了我们预期目的。
2.制作主板3.主板通电前检查:电路安装完毕,我们首先直观检查电路各部分生产线是否正确,检查电源、地线、信号线、元器件引脚之间有无短路,器件有无接错。
结果发现L293芯片的5和12管脚没有接地,查看发现原来是原理图没注意改正才导致的。
4.通电检查:给电机通电,观察电机是否工作正常。
电机正常工作时,后驱工作电流为320 mA,电压为;前驱电机工作电流为180mA,电压为。
给主板通电,观察电路各部分器件有无异常现象。
5.主板安装调试(主控芯片用PIC16F886),在调试的过程中我们发现了原理图中有一个小小的错误。
这个错误导致小车的稳压芯片过热。
一起讨论之后决定,修改原理图,调换小车驱动芯片的位置。
改动之后,小车电源稳压芯片过热现象消失。
小车也能实现了基本的功能。
(由于我们没能在制板之前发现这个问题,导致了主板在修整后变得不太美观了。
)6.制作并调试小车循迹板,传感器采用反射式红外传感器ST178,当Vcc=5V时,工作电流为17mA,VR1=,VD=,RD=欧。
电路图如下:在调试的过程中却发现小车不循迹,经过了4天的努力,终于发现了问题的所在,原来是焊错了一个电阻导致(错将1K电阻当成220欧的来用)。
改正后调试,终于也能实现了循迹功能。
五、总结测试结果表明:本组智能小车能很好的完成了基本功能和循迹功能,跑道是由黑色胶布在白色地面上拉线完成,小车可以从O型跑道的任何段为起点,跑完全程。
本组智能小车目前只能完成在没有任何交叉路口的跑道上,要想跑在有“十”字路口的跑道上,还须要对循迹程序进行补充和修改。
我们保留了各种硬件接口和软件子程序接口,方便以后的扩展和进一步的开发。
六、附录附录一:系统元器件清单如表1所示主板元件清单循迹板元件清单附件二:系统测试源程序#include <>#fuses HS,NOWDT,NOPROTECT,PUT,NOBROWNOUT,MCLR#use delay(clock=20M)#zero_ram#use fast_io(A) //IO直接操作#use fast_io(B) //IO直接操作#use fast_io(C) //IO直接操作#define PORTA 0x05#define PORTB 0x06#define PORTC 0x07//======电机定义======#bit M1=#bit M2=#bit M3=#bit M4=#bit PWM1=#bit PWM2=//=====循迹定义======#bit IN1=#bit IN2=#bit PGC=#bit PGD=//=====液晶屏定义=====#bit EN=#bit RW=#bit RS=////========宏定义=======#define TIME 1000 //动作延时#define MAX 200 //占空比设定#define MED 185#define MIN 170//定义I0端口检测#define SENSE1 bit_test(*PORTB,4) #define SENSE2 bit_test(*PORTB,5) #define SENSE3 bit_test(*PORTB,6) #define SENSE4 bit_test(*PORTB,7)#include ""void init(){set_tris_C(0X00);set_tris_B(0xf0);set_tris_A(0x10);port_b_pullups(0xff); //关闭B口内部弱上拉setup_timer_2(T2_DIV_BY_1,200,1); //set t2setup_ccp1(ccp_pwm); //set cpp --pwm modesetup_ccp2(ccp_pwm);lcd_init();}//传感检测结果表达void sense_detect(){lcd_gotoxy(1,1);lcd_putc(" NCVT ");lcd_gotoxy(7,2); //指定开始显示的坐标if(SENSE1) lcd_putc("1");else lcd_putc("0");if(SENSE2) lcd_putc("1");else lcd_putc("0");if(SENSE3) lcd_putc("1");else lcd_putc("0");if(SENSE4) lcd_putc("1");else lcd_putc("0");}//前进void go(){M1=0;M2=1;M3=0;M4=0;set_pwm2_duty(0); //set pwm 占空比set_pwm1_duty(MAX);}//后退void back(){M1=1;M2=0;M3=0;M4=1;set_pwm2_duty(MAX); //set pwm 占空比set_pwm1_duty(MAX);delay_ms(100);}//停止void stop(){M1=0;M2=0;M3=0;M4=0;set_pwm1_duty(0); //set pwm 占空比set_pwm2_duty(0);}//右小转void run_MIN_right(){M1=0;M2=1;M3=0;M4=1;set_pwm1_duty(MAX); //set pwm 占空比set_pwm2_duty(MIN);}//右中转void run_MED_right(){M1=0;M2=1;M3=0;M4=1;set_pwm1_duty(MAX); //set pwm 占空比set_pwm2_duty(MED);}//右大转void run_MAX_right(){M1=0;M2=1;M3=0;M4=1;set_pwm1_duty(MAX); //set pwm 占空比set_pwm2_duty(MAX);}//左小转void run_MIN_left(){M1=0;M2=1;M3=1;M4=0;set_pwm1_duty(MAX); //set pwm 占空比set_pwm2_duty(MIN);}//左中转void run_MED_left(){M1=0;M2=1;M3=1;M4=0;set_pwm1_duty(MAX); //set pwm 占空比set_pwm2_duty(MED);}//左大转void run_MAX_left(){M1=0;M2=1;M3=1;M4=0;set_pwm1_duty(MAX); //set pwm 占空比set_pwm2_duty(MAX);}//寻迹判断void trace(){if((IN1==0)&&(IN2==0)&&(PGC==1)&&(PGD==0)) //左小转run_MIN_left();if((IN1==0)&&(IN2==0)&&(PGC==1)&&(PGD==1)) //左中转run_MED_left();if((IN1==0)&&(IN2==1)&&(PGC==0)&&(PGD==0)) //右小转run_MIN_right();if((IN1==0)&&(IN2==1)&&(PGC==1)&&(PGD==0)) //前进go();if((IN1==0)&&(IN2==0)&&(PGC==0)&&(PGD==1)) //左大转run_MAX_left();if((IN1==1)&&(IN2==1)&&(PGC==0)&&(PGD==0)) //右中转run_MED_right();if((IN1==1)&&(IN2==0)&&(PGC==0)&&(PGD==0)) //右大转run_MAX_right();if((IN1==1)&&(IN2==1)&&(PGC==1)&&(PGD==1)) //停stop();if((IN1==0)&&(IN2==0)&&(PGC==0)&&(PGD==0)) //后退back();}void main(){init();while(1){sense_detect();trace();}}21。