智能循迹小车___设计报告

合集下载

智能循迹小车___设计报告

智能循迹小车___设计报告

智能循迹小车___设计报告设计报告:智能循迹小车一、设计背景智能循迹小车是一种能够通过感知地面上的线条进行导航的小型机器人。

循迹小车可以应用于许多领域,如仓库管理、物流配送、家庭服务等。

本设计旨在开发一款功能强大、性能稳定的智能循迹小车,以满足不同领域的需求。

二、设计目标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。

智能循迹小车___设计报告

智能循迹小车___设计报告

智能循迹小车___设计报告智能循迹小车设计专业:自动化班级:自动化132姓名:罗植升莫柏源梁桂宾指导老师:2014年4月——2010年6月本课题是基于STC89C52单片机的智能小车的设计与实现,小车完成的主要功能是能够自主识别黑色引导线并根据黑线走向实现快速稳定的寻线行驶。

小车系统以 STC89C52单片机为系统控制处理器;采用红外传感获取赛道的信息,来对小车的方向和速度进行控制。

此外,对整个控制软件进行设计和程序的编制以及程序的调试,并最终完成软件和硬件的融合,实现小车的预期功能。

当今世界,传感器技术和自动控制技术正在飞速发展,机械、电气和电子信息已经不再明显分家,自动控制在工业领域中的地位已经越来越重要,“智能”这个词也已经成为了热门词汇。

现在国外的自动控制和传感器技术已经达到了很高的水平,特别是日本,比如日本本田制作的机器人,其仿人双足行走已经做得十分逼真,而且具有一定的学习能力,还据说其智商已达到6岁儿童的水平。

作为机械行业的代表产品—汽车,其与电子信息产业的融合速度也显著提高,呈现出两个明显的特点:一是电子装置占汽车整车(特别是轿车)的价值量比例逐步提高,汽车将由以机械产品为主向高级的机电一体化方向发展,汽车电子产业也很有可能成为依托整车制造业和用车提升配置而快速成为新的增长点;二是汽车开始向电子化、多媒体化和智能化方向发展,使其不仅作为一种代步工具、同时能具有交通、娱乐、办公和通讯等多种功能。

无容置疑,机电一体化人才的培养不论是在国外还是国内,都开始重视起来,主要表现在大学生的各种大型的创新比赛,比如:亚洲广播电视联盟亚太地区机器人大赛(ABU ROBCON)、全国大学生“飞思卡尔”杯智能汽车竞赛等众多重要竞赛都能很好的培养大学生对于机电一体化的兴趣与强化机电一体化的相关知识。

但很现实的状况是,国内不论是在机械还是电气领域,与国外的差距还是很明显的,所以作为机电一体化学生,必须加倍努力,为逐步赶上国外先进水平并超过之而努力。

智能循迹小车课程设计报告

智能循迹小车课程设计报告

智能循迹小车课程设计报告一、课程设计目标:本次智能循迹小车课程设计的目标是让学生了解智能硬件的基础知识,掌握基本电子元器件的原理及使用方法,学习控制系统的组成和运行原理,并通过实践操作设计出一款功能齐全的智能循迹小车。

二、课程设计内容及步骤:1. 调研与分析——首先要对市面上现有的智能循迹小车进行调研与分析,了解各种类型的循迹小车的特点和优缺点,为后续的设计提供参考。

2. 硬件选型——根据课程设计目标和实际需要,选择合适的主控芯片、电子元器件和传感器等硬件。

3. 原理图设计——根据硬件选型,设计出对应的原理图,并在硬件上进行布局与焊接。

4. 程序设计——先在电路板上测试硬件是否正常,随后进行程序设计,根据传感器的反馈控制小车的运动,让小车能够沿着黑线自动循迹行驶,同时加入避障功能和自动寻迹功能。

5. 调试与优化——完成程序设计后,要对小车进行全面验收测试,发现问题及时解决并优化相关程序。

三、设计思路:本次课程设计基于树莓派电路板,利用循迹模块实现小车的自动循迹和自动寻迹。

同时将超声波模块结合避障算法实现小车的自动避障。

小车的外壳采用3D打印技术制作,操作简单实用。

四、课程设计效果:通过本课程设计,学生们从理论到实践,了解了智能硬件的基础知识,掌握了基本电子元器件的原理及使用方法,学习了控制系统的组成和运行原理。

同时,实践操作过程中,学生们培养了动手能力和实际操作的技能。

通过制作一台智能循迹小车,学生们对智能硬件的认识更加深入,并获得了较高的设计满足感。

五、课程设计展望:智能循迹小车是智能硬件应用领域的一项重要发明,具有广泛的应用前景。

未来,可以将循迹小车应用于快递、物流等行业,实现自动化送货、配送。

同时可以将遥控技术与循迹技术相结合,设计出更加高效、实用的智能循迹小车,推动智能化生产和工作环境。

2024年度-智能循迹小车设计

2024年度-智能循迹小车设计

智能循迹小车设计目录•项目背景与意义•系统总体设计•循迹算法研究•控制系统设计•调试与测试•项目成果展示•总结与展望01项目背景与意义智能循迹小车概述定义智能循迹小车是一种基于微控制器、传感器和执行器等技术的自主导航小车,能够按照预定路径进行自动循迹。

工作原理通过红外、超声波等传感器感知周围环境信息,将感知数据传输给微控制器进行处理,微控制器根据预设算法控制执行器调整小车行驶状态,实现循迹功能。

随着工业自动化的发展,智能循迹小车在生产线、仓库等场景中的应用需求不断增加。

自动化需求教育领域需求娱乐领域需求智能循迹小车作为教学实验平台,在高等教育、职业教育等领域具有广泛应用前景。

智能循迹小车可以作为玩具或模型车进行娱乐竞技活动,满足消费者休闲娱乐需求。

030201市场需求分析通过本项目的研究与实践,掌握智能循迹小车的核心技术,包括传感器技术、微控制器技术、控制算法等。

技术目标将智能循迹小车应用于实际场景中,提高生产效率、降低成本、提升产品品质等方面的效益。

应用目标通过智能循迹小车的研发与教学应用,培养学生动手实践能力、创新精神和团队协作能力。

教育意义推动智能循迹小车相关产业的发展,促进就业和经济增长,提升国家科技竞争力。

社会意义项目目标与意义02系统总体设计主控制器传感器模块电机驱动模块电源管理模块总体架构设计01020304负责接收和处理传感器数据,控制小车运动。

包括红外传感器、超声波传感器等,用于感知环境和障碍物。

驱动小车前进、后退、转弯等动作。

为整个系统提供稳定可靠的电源。

硬件选型及配置选用高性能、低功耗的微控制器,如STM32系列。

选用高灵敏度、低误差的传感器,如红外反射式传感器、超声波测距传感器等。

选用高效、稳定的电机驱动器,如L298N电机驱动板。

选用合适的电池和电源管理芯片,确保系统长时间稳定运行。

主控制器传感器模块电机驱动模块电源管理模块初始化模块传感器数据处理模块运动控制模块调试与测试模块软件功能划分负责系统启动时的初始化工作,包括硬件初始化、参数设置等。

智能循迹小车实验报告

智能循迹小车实验报告

智能循迹小车实验报告第一篇:智能循迹小车实验报告摘要本设计主要有单片机模块、传感器模块、电机驱动模块以及电源模块组成,小车具有自主寻迹的功能。

本次设计采用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 传感器模块方案一:使用光敏电阻组成光敏探测器采集路面信息。

阻值经过比较器输出高低电平进行分析,但是光照影响很大,不能稳定工作。

方案二:使用光电传感器来采集路面信息。

智能循迹小车设计报告

智能循迹小车设计报告

电子作品设计报告项目名称:智能小车学院:机电工程学院专业:应用电子技术班级:09应电(1)班组别: 第三组姓名:杨磊赖焕宁梁广生指导老师:杨青勇玉宁目录摘要: (3)关键词: (3)引言: (3)一、系统设计 (3)1。

1设计要求 (4)1。

2车体方案认证与选择 (4)二、硬件设计及说明 (5)2.1原理图设计 (5)2。

1。

1稳压电源 (5)2。

1.2基本系统 (5)2。

1。

3电机驱动 (5)2。

1.4液晶显示部分 (6)2。

1。

5RS485数据总线 (6)2。

1.6循迹部分 (7)2.2PCB设计 (7)2.2。

1主板PCB (7)2.2.2循迹板PCB (8)三、软件设计及说明 (8)四、系统测试过程 (10)五、总结 (11)六、附录 (11)附录一:系统元器件清单 (11)附件二:系统测试源程序 (12)摘要:本组的智能小车是采用凌阳的车架,是以两个电机来驱动小车,主板部分自行设计。

通过接收器MAX1483来采集信息,传送进主控芯片PIC16F886单片机,进行数据处理后,送进驱动芯片L293D以完成相应的操作。

采用反射式红外光电传感器ST178来实现小车自动循迹功能,并且整个过程采用液晶显示屏RT1602来显示相应的数据。

关键词:PIC16F886 L293D 反射式红外光电传感器ST178 自动循迹引言:近现代,随着电子科技的迅猛发展,人们对技术也提出了更高的要求。

汽车的智能化在提高汽车的行驶安全性,操作性等方面都有巨大的优势,在一些特殊的场合下也能满足一些特殊的需要。

智能小车系统涉及到自动控制,车辆工程,计算机等多个领域,是未来汽车智能化是一个不可避免的大趋势。

本文设计的小车以PIC16f886 为控制核心,用反射式红外光电传感器作为检测元件实现小车的自动循迹前行,并显示等功能.一、系统设计本组智能小车的硬件主要有以PIC16f886 作为核心的主控器部分、自动循迹部分、显示部分、电机驱动部分。

智能循迹小车___设计报告

智能循迹小车___设计报告

智能循迹小车设计专业:自动化班级: 0804班姓名:指导老师:2010年8月——2010年10月摘要:本课题是基于AT89C52单片机的智能小车的设计和实现,小车完成的主要功能是能够自主识别黑色引导线并根据黑线走向实现快速稳定的寻线行驶。

小车系统以 AT89S52 单片机为系统控制处理器;采用红外传感获取赛道的信息,来对小车的方向和速度进行控制。

此外,对整个控制软件进行设计和程序的编制以及程序的调试,并最终完成软件和硬件的融合,实现小车的预期功能。

引言当今世界,传感器技术和自动控制技术正在飞速发展,机械、电气和电子信息已经不再明显分家,自动控制在工业领域中的地位已经越来越重要,“智能”这个词也已经成为了热门词汇。

现在国外的自动控制和传感器技术已经达到了很高的水平,特别是日本,比如日本本田制作的机器人,其仿人双足行走已经做得十分逼真,而且具有一定的学习能力,还据说其智商已达到6岁儿童的水平。

作为机械行业的代表产品—汽车,其和电子信息产业的融合速度也显著提高,呈现出两个明显的特点:一是电子装置占汽车整车(特别是轿车)的价值量比例逐步提高,汽车将由以机械产品为主向高级的机电一体化方向发展,汽车电子产业也很有可能成为依托整车制造业和用车提升配置而快速成为新的增长点;二是汽车开始向电子化、多媒体化和智能化方向发展,使其不仅作为一种代步工具、同时能具有交通、娱乐、办公和通讯等多种功能。

无容置疑,机电一体化人才的培养不论是在国外还是国内,都开始重视起来,主要表现在大学生的各种大型的创新比赛,比如:亚洲广播电视联盟亚太地区机器人大赛(ABU ROBCON)、全国大学生“飞思卡尔”杯智能汽车竞赛等众多重要竞赛都能很好的培养大学生对于机电一体化的兴趣和强化机电一体化的相关知识。

但很现实的状况是,国内不论是在机械还是电气领域,和国外的差距还是很明显的,所以作为机电一体化学生,必须加倍努力,为逐步赶上国外先进水平并超过之而努力。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

智能循迹小车设计专业:自动化班级:自动化132姓名:罗植升莫柏源梁桂宾指导老师:2014年4月——2010年6月摘要:本课题是基于STC89C52单片机的智能小车的设计与实现,小车完成的主要功能是能够自主识别黑色引导线并根据黑线走向实现快速稳定的寻线行驶。

小车系统以 STC89C52单片机为系统控制处理器;采用红外传感获取赛道的信息,来对小车的方向和速度进行控制。

此外,对整个控制软件进行设计和程序的编制以及程序的调试,并最终完成软件和硬件的融合,实现小车的预期功能。

引言当今世界,传感器技术和自动控制技术正在飞速发展,机械、电气和电子信息已经不再明显分家,自动控制在工业领域中的地位已经越来越重要,“智能”这个词也已经成为了热门词汇。

现在国外的自动控制和传感器技术已经达到了很高的水平,特别是日本,比如日本本田制作的机器人,其仿人双足行走已经做得十分逼真,而且具有一定的学习能力,还据说其智商已达到6岁儿童的水平。

作为机械行业的代表产品—汽车,其与电子信息产业的融合速度也显著提高,呈现出两个明显的特点:一是电子装置占汽车整车(特别是轿车)的价值量比例逐步提高,汽车将由以机械产品为主向高级的机电一体化方向发展,汽车电子产业也很有可能成为依托整车制造业和用车提升配置而快速成为新的增长点;二是汽车开始向电子化、多媒体化和智能化方向发展,使其不仅作为一种代步工具、同时能具有交通、娱乐、办公和通讯等多种功能。

无容置疑,机电一体化人才的培养不论是在国外还是国内,都开始重视起来,主要表现在大学生的各种大型的创新比赛,比如:亚洲广播电视联盟亚太地区机器人大赛(ABU ROBCON)、全国大学生“飞思卡尔”杯智能汽车竞赛等众多重要竞赛都能很好的培养大学生对于机电一体化的兴趣与强化机电一体化的相关知识。

但很现实的状况是,国内不论是在机械还是电气领域,与国外的差距还是很明显的,所以作为机电一体化学生,必须加倍努力,为逐步赶上国外先进水平并超过之而努力。

为了适应机电一体化的发展在汽车智能化方向的发展要求,提出简易智能小车的构想,目的在于:通过独立设计并制作一辆具有简单智能化的简易小车,获得项目整体设计的能力,并掌握多通道多样化传感器综合控制的方法。

所以立“智能循迹小车”一题作为尝试。

此项设计是在以杨老师提供的小车为基础上,采用AT89C52单片机作为控制核心,实现能够自主识别黑色引导线并根据黑线走向实现快速稳定的寻线行驶。

一、实验目的:通过设计进一步掌握51单片机的应用,特别是在嵌入式系统中的应用。

进一步学习51单片机在系统中的控制功能,能够合理设计单片机的外围电路,并使之与单片机构成整个系统。

二、设计方案:该智能车采用红外传感器对赛道进行道路检测,单片机根据采集到的信号的不同状态判断小车当前状态,通过电机驱动芯片L9110发出控制命令,控制电机的工作状态以实现对小车姿态的控制。

三、报告内容安排:本技术报告主要分为三个部分。

第一部分是对整个系统实现方法的一个概要说明,主要内容是对整个技术原理的概述;第二部分是对硬件电路设计的说明,主要介绍系统传感器的设计及其他硬件电路的设计原理等;第三部分是对系统软件设计部分的说明,主要内容是智能模型车设计中主要用到的控制理论、算法说明及代码设计介绍等。

技术方案概要说明本模型车的电路系统包括电源管理模块、单片机模块、传感器模块、电机驱动模块。

工作原理:利用红外采集模块中的红外发射接收对管检测路面上的轨迹 将轨迹信息送到单片机单片机采用模糊推理求出转向的角度和行走速度,然后去控制行走部分最终完成智能小车可以按照路面上的轨迹运行。

硬件电路的设计1、最小系统:小车采用STC89C52单片机作为控制芯片,图1是其最小系统电路。

主要包括:时钟电路、电源电路、复位电路。

其中各个部分的功能如下:1、时钟电路:给单片机提供一个外接的12MHz的石英晶振。

2、电源电路:给单片机提供5V电源。

3、复位电路:在电压达到正常值时给单片机一个复位信号。

图1 单片机最小系统原理图2、电源电路设计:模型车通过自身系统,采集赛道信息,获取自身速度信息,加以处理,由芯片给出指令控制其前进转向等动作,各部分都需要由电路支持,电源管理尤为重要。

在本设计中,51单片机使用5V电源,电机及舵机使用6V电源。

考虑到电源为充电电池组,额定电压为7.2V,实际充满电后电压则为 6.5-6.8V,所以单片机及传感器模块采用7805稳压后的5V电源供电,舵机及电机直接由电池供电。

3、传感器电路:光电寻线方案一般由多对TCRT5000红外收发管组成,通过检测接收到的反射光强,判断黑白线。

原理图由红外对管和电压比较器两部分组成,红外对管输出的模拟电压通过电压比较器转换成数字电平输出到单片机。

图2 赛道检测原理图:4、电机驱动电路:电机驱动芯片L9110,内部包含4通道逻辑驱动电路。

是一种二相和四相电机的专用驱动器,即内含二个H桥的高电压大电流双全桥式驱动器,接收标准TTL逻辑电平信号,可驱动46V、2A以下的电机。

其引脚排列如图1中U4所示,1脚和15脚可单独引出连接电流采样电阻器,形成电流传感信号。

L9110可驱动2个电机,OUT1、OUT2和OUT3、OUT4之间分别接2个电动机。

5、7、10、12脚接输入控制电平,控制电机的正反转,ENA,ENB接控制使能端,控制电机的停转。

也利用单片机产生PWM信号接到ENA,ENB端子,对电机的转速进行调节。

L9110的逻辑功能:表1 SHARP GP2D12实物图外形及封装:图3 L9110实物图L9110电路原理图:由于一片L298N可以直接驱动两个电机,但是为了加大驱动力,我们采用两路并联的方式来驱动电机。

图3.3 L9110电路图软件系统的实现小车循迹规则:若小车偏左的时候,车轮将向右偏转;若小车偏右,车轮将向左偏转;若没有偏移,小车将继续向前;若小车完全偏离黑色轨迹,小车后退以寻找黑色轨迹。

小车程序:#include <AT89X52.h> //调用51单片机的头文件#include <intrins.h>#include <math.h>#define uchar unsigned char//宏定义#define uint unsigned int//宏定义sbit you1=P1^3;//定义单片机控制右边电机的引脚sbit you2=P1^4;//定义单片机控制右边电机的引脚sbit zuo1=P1^5;//定义单片机控制左边电机的引脚sbit zuo2=P1^6;//定义单片机控制左边电机的引脚sbit z=P1^1;//定义单片机连接循迹板左边光电管的引脚sbit y=P1^0;//定义单片机连接循迹板右边光电管的引脚sbit q=P1^2;//定义单片机连接循迹板前边光电管的引脚sbit chongshua=P3^6;//定义单片机控制冲刷的引脚sbit tuodi=P3^7;//定义单片机控制拖地的引脚//---------------------------------------//1602液晶相关I/O设置sbit E=P2^3; //1602液晶的E脚接在P2.3口上sbit RW=P2^4; //1602液晶的RW脚接在P2.4口上sbit RS=P2^5; //1602液晶的RS脚接在P2.5口上//HC-SR04相关I/O设置sbit TIRG=P3^4; //定义IO口,具体可以去查看原理图sbit ECHO=P3^2; //定义IO口,具体可以去查看原理图bit flag =0;uchar k;uchar a=0;//定义一个变量a,用来读取串口的数据void delay(uint z)//一个带参数的延时程序{int i,j;//定义两个变量for(i=10;i>0;i--)for(j=z;j>0;j--);//将参数z赋值给j}void init()//初始化子程序{TMOD=0x20;//设置定时器T1为工作方式2TH1=0xfd;TL1=0xfd;//T1定时器装初值TR1=1;//启动定时器T1REN=1;//允许串口接收SM0=0;SM1=1;//设置串口工作方式1EA=1;//开总中断ES=1;//开串口中断}void qian()//左右轮协同前进子函数{you1=0;you2=1;zuo1=0;zuo2=1;delay(6);//pwm调速此为pwm有效值you1=1;you2=1;zuo1=1;zuo2=1;delay(4);}void zuo()//左右轮协同左转子函数{you1=0;you2=1;zuo1=1;zuo2=0;delay(9);//pwm调速此为pwm有效值you1=1;you2=1;zuo2=1;delay(1);}void mzuo()//左右轮协同左转子函数{you1=0;you2=1;zuo1=1;zuo2=0;delay(10);//pwm调速此为pwm有效值you1=1;you2=1;zuo1=1;zuo2=1;delay(5);}void you()//左右轮协同右转子函数{you1=1;you2=0;zuo1=0;delay(9);//pwm调速此为pwm有效值you1=1;you2=1;zuo1=1;zuo2=1;delay(1);}void myou()//左右轮协同右转子函数{you1=1;you2=0;zuo1=0;zuo2=1;delay(10);//pwm调速此为pwm有效值you1=1;you2=1;zuo1=1;zuo2=1;delay(5);}void hou()//左右轮协同前进子函数{you1=1;you2=0;zuo1=1;zuo2=0;delay(9);//pwm调速此为pwm有效值you1=1;you2=1;zuo1=1;zuo2=1;delay(1);}void ting()//左右轮都停止转动{you1=1;you2=1;zuo1=1;zuo2=1;}void Delay1602(unsigned int t){unsigned int k; //定义一个16位寄存器用来做延时用for(k=0;k<t;k++); //延时}void LCD1602_busy(void){P0_7=1; //将P0.7置1,为读状态做准备RS=0; //RS=0、RW=1、E=1时,忙信号输出到DB7,由P0.7读入RW=1; //RS=0、RW=1、E=1时,忙信号输出到DB7,由P0.7读入E=1; //RS=0、RW=1、E=1时,忙信号输出到DB7,由P0.7读入while(P0_7==1); //由P0.7读入1,表示1602液晶忙,需要等待 E=0; //读完以后,恢复E的电平}void LCD1602_Write_com(unsigned char combuf){RS=0; //选择指令寄存器RW=0; //选择写状态P0=combuf; //将命令字通过P0口送至DBE=1; //E高电平将命令字写入1602液晶 E=0; //写完以后,恢复E的电平}void LCD1602_Write_com_busy(unsigned char combuf){LCD1602_busy(); //调用忙检测函数LCD1602_Write_com(combuf); //调用忙检测函数}void LCD1602_Write_data_busy(unsigned char databuf){LCD1602_busy(); //调用忙检测函数RS=1; //选择数据寄存器RW=0; //选择写状态P0=databuf; //将命令字通过P0口送至DBE=1; //E高电平将命令字写入1602液晶E=0; //写完以后,恢复E的电平}void LCD1602_Write_address(unsigned char x,unsigned char y){x&=0x0f; //列地址限制在0-15间y&=0x01; //行地址限制在0-1间if(y==0) //如果是第一行LCD1602_Write_com_busy(x|0x80); //将列地址写入else //如果是第二行LCD1602_Write_com_busy((x+0x40)|0x80); //将列地址写入}void LCD1602_init(void){Delay1602(1500); //调用延时函数LCD1602_Write_com(0x38); //8位数据总线,两行显示模式,5*7点阵显示Delay1602(500); //调用延时函数LCD1602_Write_com(0x38); //8位数据总线,两行显示模式,5*7点阵显示Delay1602(500); //调用延时函数LCD1602_Write_com(0x38); //8位数据总线,两行显示模式,5*7点阵显示LCD1602_Write_com_busy(0x38); //8位数据总线,两行显示模式,5*7点阵显示LCD1602_Write_com_busy(0x08); //显示功能关,无光标LCD1602_Write_com_busy(0x01); //清屏LCD1602_Write_com_busy(0x06); //写入新的数据后,光标右移,显示屏不移动LCD1602_Write_com_busy(0x0C); //显示功能开,无光标}void LCD1602_Disp(unsigned char x,unsigned char y,unsigned char buf) {LCD1602_Write_address(x,y); //先将地址信息写入LCD1602_Write_data_busy(buf); //再写入要显示的数据}void Timer0(void) interrupt 1{flag=0;}void xunji(){qian();//调用前进子函数,使小车光电管不满足以下几个条件时都处于前进状态while((z==0)&&(y==1)&&(q==1))//判断当左边光电管遇到黑线,{ //右边和前边的光电管遇到白线时左转zuo();//调用左转函数zd=1;}while((z==1)&&(y==0)&&(q==1))//判断当右边光电管遇到黑线,{ //左边和前边的光电管遇到白线时右转you();//调用右转函数yd=1;}while((z==0)&&(y==0)&&(q==1))//判断当左边光电管遇到黑线,右边光电管也遇到黑线{ //前边的光电管遇到白线时停止ting();//调用停止函数hd=1;}while((z==0)&&(y==0)&&(q==0))//判断当左边、右边、前边光电管同时遇到黑线{ //即遇到十字路口,小车前进qian();//调用前进函数}}void csb(){long S;unsigned int i;unsigned int Timeout;LCD1602_init(); //调用1602液晶初始化函数//***定时器Timer0初始化***TMOD&=0xF0; //将TMOD的低4位定时器0控制部分清零TMOD|=0x01; //设置定时器0为方式1TMOD=0x01;TL0=0; //设置定时器0初值低8位TH0=0; //设置定时器0初值高8位TR0=0; //停止定时器0ET0=1; //Timer0中断允许//***开全局中断设置****//定时器Timer0设置了中断允许,此处要开全局中断EA=1; //开全局中断TIRG=1; //发一个脉冲触发信号i=4; //维持约17US,符合不低于10US的要求while(i>0) //维持约17US,符合不低于10US的要求 i--; //维持约17US,符合不低于10US的要求TIRG=0; //撤销触发信号TR0=0; //关闭定时器TL0=0; //设置定时器0初值低8位为0 TH0=0; //设置定时器0初值高8位为0k=0; //清除溢出标志flag=0;Timeout=0;while((ECHO==0)&&((Timeout++)<50000)); //等待回响高电平TR0=1; //回响高电平来后启动定时器Timeout=0;while((ECHO==1)&&((Timeout++)<50000)); //等待回响高电平结束后TR0=0; //关闭定时器S=((TH0*256+TL0)*1)/58;if(flag==1||S>400) //超出测量范围显示“-”{LCD1602_Disp(0, 0, '-'); //显示百位-LCD1602_Disp(1, 0, '-'); //显示十位-LCD1602_Disp(2, 0, '-'); //显示个位-LCD1602_Disp(3, 0, 'C'); //显示CLCD1602_Disp(4, 0, 'M'); //显示M}else{LCD1602_Disp(0, 0, S%1000/100+'0'); //显示百位LCD1602_Disp(1, 0, S%1000%100/10+'0'); //显示十位LCD1602_Disp(2, 0, S%1000%100%10+'0'); //显示个位LCD1602_Disp(3, 0, 'C'); //显示CLCD1602_Disp(4, 0, 'M'); //显示M}i=18000; //维持约77400US,符合不低于60MS的要求 while(i>0) //维持约77400US,符合不低于60MS的要求i--; //维持约77400US,符合不低于60MS的要求}void main()//主程序{init();//调用初始化子程序while(1)//死循环{switch(a)//判断a从串口读取到的数据{case 0x00://如果是0x1f就前进xunji();break;case 0x01://如果是0x2f就后退qian();break;case 0x02://如果是0x3f就左转break;case 0x03://如果是0x4f就右转mzuo();zd=1;break;case 0x04://如果是0x00就停止hou();break;case 0x05://如果是0xa0车灯打开myou();yd=1;break;case 0x06://如果是0xb0车灯关闭chongshua=1;break;case 0x07://如果是0xc0蜂鸣器鸣响hd=1;break;case 0x08://如果是0xc0蜂鸣器鸣响tuodi=1;break;}}}void chuan() interrupt 4//串口中断服务程序{RI=0;//软件清除串口响应a=SBUF;//读取单片机串口接受的蓝牙模块发送的数据}结论根据本次设计要求,我们小组系统地阅读了大量的资料,并认真分析了设计课题的需求,还系统学习了51系列单片机的工作原理及其使用方法,并独自设计智能小车的整个项目。

相关文档
最新文档