循迹小车报告

合集下载

智能循迹小车___设计报告

智能循迹小车___设计报告

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

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

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

二、设计目标1.实现循迹功能:小车能够准确地识别地面上的线条,并按照线条进行导航。

2.提供远程控制功能:用户可以通过无线遥控器对小车进行控制,包括前进、后退、转向等操作。

3.具备避障功能:小车能够识别和避开遇到的障碍物,确保行驶安全。

4.具备环境感知功能:小车能够感知周围环境,包括温度、湿度、光照等参数,并将数据传输给用户端。

5.高稳定性和可靠性:设计小车的硬件和软件应具备较高的稳定性和可靠性,以保证长时间的工作和使用。

三、设计方案1.硬件设计:(1) 采用Arduino控制器作为主控制单元,与传感器、驱动器等硬件模块进行连接和交互。

(2)使用红外传感器作为循迹传感器,通过检测地面上的线条来实现循迹功能。

(3)使用超声波传感器来检测小车前方的障碍物,以实现避障功能。

(4)添加温湿度传感器和光照传感器,以提供环境感知功能。

(5)将无线模块与控制器连接,以实现远程控制功能。

2.软件设计:(1) 使用Arduino编程语言进行程序设计,编写循迹、避障和远程控制的算法。

(2)设计用户界面,通过无线模块将控制信号发送给小车,实现远程控制。

(3)编写数据传输和处理的程序,将环境感知数据发送到用户端进行显示和分析。

四、实施计划1.硬件搭建:按照设计方案中的硬件模块需求,选购所需元件并进行搭建。

2.软件开发:根据设计方案中的软件设计需求,编写相应的程序并进行测试。

3.功能调试:对小车的循迹、避障、远程控制和环境感知功能进行调试和优化。

4.性能测试:使用不同场景和材料的线条进行测试,验证小车的循迹性能。

5.用户界面开发:设计用户端的界面,并完成与小车的远程控制功能的对接。

循迹小车设计总结及心得

循迹小车设计总结及心得

循迹小车设计总结及心得嘿,朋友们!今天来和你们聊聊循迹小车设计这个超有趣的事儿。

你们知道吗,设计循迹小车就像是打造一个迷你的智能探险家!它能沿着特定的路线前进,就好像有了自己的小目标一样。

在设计的过程中啊,那可真是充满了各种挑战和乐趣。

首先得选好各种零件,这就好比给小车挑选合身的装备,要是零件不咋地,那小车跑起来也不得劲呀!然后就是电路的设计,就像给小车搭建了神经系统,得让它能灵敏地感知和反应。

说到传感器,那可太重要啦!它就像是小车的眼睛,能敏锐地察觉到路线的变化。

要是传感器不灵,小车不就像个无头苍蝇一样乱撞啦?这可不行!所以得精心挑选和调试传感器。

还有编程呢,这可真是个神奇的环节。

通过编程,我们能让小车按照我们的想法行动,就好像给它注入了灵魂一样。

看着自己编写的代码让小车乖乖听话,那种成就感,哎呀,真的没法形容!设计循迹小车可不只是技术活,还得有耐心和细心。

有时候一个小细节没注意到,小车可能就罢工啦!这就好像盖房子,一块砖没放好可能就影响整个房子的稳固。

在不断尝试和改进的过程中,会遇到很多问题。

但这有啥可怕的呢?每解决一个问题,就感觉自己又厉害了一点。

就像打怪升级一样,充满了刺激和挑战。

想想看,当你看到自己设计的循迹小车在地上欢快地跑着,那感觉多棒啊!就好像看着自己的孩子学会了走路一样开心。

它能精准地沿着你设定的路线前进,那场面,真的太让人自豪啦!而且啊,通过设计循迹小车,还能学到好多知识呢。

什么电子电路、编程思维、机械原理,统统都能掌握。

这可都是实实在在的本事呀,以后说不定啥时候就能派上用场呢!所以啊,朋友们,别犹豫,快来加入循迹小车设计的大家庭吧!让我们一起享受这个充满挑战和乐趣的过程,打造属于自己的智能小宝贝!不用怀疑,你绝对能行!原创不易,请尊重原创,谢谢!。

智能循迹小车实验报告

智能循迹小车实验报告

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

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

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

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

循迹小车的装调实训报告

循迹小车的装调实训报告

一、实训背景随着科技的飞速发展,智能机器人技术逐渐成为研究的热点。

循迹小车作为一种典型的智能机器人,具有简单、实用、成本低等优点,是学习和研究智能控制技术的重要工具。

本实训旨在通过组装和调试循迹小车,使学生掌握智能控制系统的基本原理和装调方法,提高学生的动手能力和创新意识。

二、实训目的1. 熟悉循迹小车的结构和工作原理;2. 学会循迹小车的组装和调试方法;3. 培养学生的团队协作能力和创新意识;4. 提高学生对智能控制技术的认识和应用能力。

三、实训内容1. 循迹小车简介循迹小车是一种能够在特定路径上自动行驶的智能小车。

它通过检测地面上的线条或标记,根据反馈信号调整行驶方向,实现自动循迹。

循迹小车主要由以下几个部分组成:(1)车体:包括车身、轮子、支架等;(2)传感器:用于检测地面上的线条或标记;(3)控制器:根据传感器信号控制小车行驶;(4)驱动器:将控制器输出的信号转换为电机转速,驱动小车行驶;(5)电源:为小车提供电能。

2. 循迹小车组装(1)准备工作:准备好组装所需的材料、工具和电路板;(2)组装车体:将车身、轮子、支架等组装成小车;(3)安装传感器:将传感器安装在车体上,确保传感器能够检测到地面上的线条或标记;(4)连接电路:将传感器、控制器、驱动器和电源等电路连接起来;(5)调试电路:检查电路连接是否正确,确保电路正常工作。

3. 循迹小车调试(1)调试传感器:调整传感器位置,使传感器能够准确检测到地面上的线条或标记;(2)调试控制器:调整控制器参数,使小车能够根据传感器信号准确调整行驶方向;(3)调试驱动器:调整驱动器参数,使电机转速与小车行驶速度相匹配;(4)测试循迹性能:将小车放置在特定路径上,观察小车是否能够自动循迹。

四、实训结果与分析1. 实训结果通过本次实训,学生成功组装和调试了一辆循迹小车,小车能够在特定路径上自动循迹。

2. 实训分析(1)组装过程中,学生学会了如何使用工具,提高了动手能力;(2)调试过程中,学生学会了如何调整传感器、控制器和驱动器参数,提高了对智能控制技术的认识;(3)团队合作方面,学生学会了相互协作、沟通和解决问题,提高了团队协作能力;(4)创新意识方面,学生在实训过程中积极思考,提出了一些改进方案,提高了创新意识。

循迹小车的实验报告

循迹小车的实验报告

循迹小车的实验报告循迹小车的实验报告引言:循迹小车是一种基于光电传感器的智能机器人,能够通过感知地面上的黑线,实现自主导航。

本次实验旨在探索循迹小车的工作原理及其应用,并对其性能进行评估。

一、实验背景循迹小车作为一种智能机器人,广泛应用于工业自动化、仓储物流、智能家居等领域。

其基本原理是通过光电传感器感知地面上的黑线,根据传感器信号控制电机的转动,从而实现沿着黑线行进。

二、实验过程1. 实验器材准备本次实验所需器材有循迹小车、黑线地毯、计算机等。

通过连接计算机和循迹小车,可以实现对小车的控制和数据传输。

2. 实验步骤(1)将黑线地毯铺设在实验场地上,并保证地毯表面光滑清洁。

(2)将循迹小车放置在地毯上,确保其底部的光电传感器与黑线接触。

(3)通过计算机控制循迹小车的启动,观察小车是否能够准确跟踪黑线行进。

(4)记录小车在不同条件下的行进速度、转弯半径等数据,并进行分析。

三、实验结果1. 循迹性能评估通过实验观察和数据记录,我们发现循迹小车在较为平整、光线充足的黑线地毯上表现较好,能够准确跟踪黑线行进。

然而,在黑线不明显、光线较暗的情况下,小车的循迹性能会有所下降。

2. 行进速度与转弯半径根据实验数据分析,循迹小车的行进速度受到多种因素的影响,包括地面摩擦力、电机功率等。

在实验中,我们发现增加电机功率可以提高小车的行进速度,但同时也会增大转弯半径。

3. 应用前景循迹小车作为一种智能机器人,具有广泛的应用前景。

在工业自动化领域,循迹小车可以用于物料搬运、装配线操作等任务;在仓储物流领域,循迹小车可以实现货物的自动分拣、运输等功能;在智能家居领域,循迹小车可以作为家庭服务机器人,提供家居清洁、送餐等服务。

四、实验总结通过本次实验,我们深入了解了循迹小车的工作原理和应用前景。

循迹小车的循迹性能受到地面条件和光线影响,需要进一步优化。

在实际应用中,循迹小车可以广泛应用于工业自动化、仓储物流和智能家居等领域,为人们的生活和工作带来便利。

循迹小车报告

循迹小车报告

循迹小车设计报告学校:定西师范高等专科学校产品名称:循迹小车日期:二〇一一年八月十八日摘要:本设计是一种基于单片机控制的简易自动寻迹小车系统,包括小车系统构成软硬件设计方法。

小车以AT89C51 为控制核心, 用单片机产生PWM波,控制小车速度。

利用红外光电传感器对路面白色轨迹进行检测,并将路面检测信号反馈给单片机。

单片机对采集到的信号予以分析判断,及时控制驱动电机以调整小车转向,从而使小车能够沿着白色轨迹自动行驶,实现小车自动寻迹的目的。

循迹小车的电路系统包括电源模块、单片机模块、传感器模块、电机驱动模块。

一、工作原理:1.利用红外采集模块中的红外发射接收对管检测路面上的轨迹将轨迹信息送到单片机2.单片机通过输入的信息分别控制小车左右两个电机的转速,用来控制小车的方向3.最终完成智能小车可以按照路面上的白色轨迹运行二、设计方案该车采用红外传感器对白色路面进行道路检测,把采集到的信号传给AT89C51单片机,AT89C51单片机根据收到的信号判断小车当前状态,通过电机驱动芯片L298N发出控制命令,控制电机的工作状态以实现对小车姿态的控制。

三、硬件模块设计:3.1 电源模块:电源采用自制直流稳压电源,通过对220V的交流电压的变压,整流、滤波、稳压,分别输出12V和5V的直流电压。

用来给小车各模块供给所需电压。

电源电路如图:3.2电机驱动模块:电机驱动芯片L298N是SGS公司的产品,内部包含4通道逻辑驱动电路。

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

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

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

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

循迹小车实习总结

循迹小车实习总结

循迹小车实习总结1. 引言本文是对我在ABC科技公司实习期间参与的循迹小车项目进行总结和回顾。

循迹小车是一种能够根据指定轨迹自动行驶的智能小车,通过感应地面上的黑线来调整行进方向。

在实习期间,我参与了该项目的设计、搭建和调试工作。

2. 项目背景循迹小车项目是ABC科技公司为了提高生产效率和降低人力成本而推出的一项智能化解决方案。

该小车可以在工厂车间内自动巡航,根据预定的线路完成指定任务,如搬运物料、检测设备等。

3. 设计与搭建在项目开始之前,我与团队成员共同制定了小车的设计和功能需求。

我们决定使用Arduino开发板作为控制器,并选择了红外传感器作为检测黑线的装置。

在搭建过程中,我按照设计要求购买了所需零件,并亲自组装了小车的机械结构。

经过反复测试和调整,我们最终得到了一个紧凑且稳定的小车平台。

4. 程序设计为了实现小车的循迹功能,我编写了一段基于Arduino的程序。

首先,我们需要通过红外传感器检测地面上的黑线,然后根据检测结果调整电机的转动方向。

我通过编写函数和模块化的方法,使得程序结构清晰,易于理解和维护。

在实际运行过程中,我发现红外传感器的精度和环境因素对循迹效果有一定影响。

通过不断优化程序和调整传感器的位置,我最终解决了这个问题,并获得了较为稳定的循迹效果。

5. 调试与优化在完成小车搭建和程序设计之后,我们进行了一系列的调试工作。

通过调整电机的转速和响应时间,我们使得小车能够在不同的运行速度下准确地循迹。

同时,我们还对传感器进行了灵敏度的调整,并增加了一些异常情况的处理逻辑。

调试的过程充满了挑战,但也让我学到了很多解决问题的方法和技巧。

经过不断的尝试和优化,我最终使得小车实现了预期的功能,并达到了较高的稳定性和可靠性。

6. 实习总结通过参与循迹小车项目的实习经历,我获得了丰富的实践经验和技术知识。

在项目中,我学会了如何将理论知识应用于实际项目中,并与团队成员合作解决问题。

通过与工程师们的交流和学习,我了解了业界对于智能小车的需求和发展趋势。

循迹小车研究报告

循迹小车研究报告

循迹小车研究报告1. 引言循迹小车是一种能够根据特定路线上的黑线进行自动导航的智能机器人。

该研究报告旨在探讨循迹小车的工作原理、应用领域以及未来发展趋势。

循迹小车在工业自动化、教育培训和娱乐等领域具有广泛的应用前景。

本报告将深入研究循迹小车的算法、传感器技术以及控制系统,并分析其在实际应用中的优势和局限性。

2. 工作原理循迹小车通过搭载在车身下方的红外传感器,来检测路线上的黑线。

传感器会发射红外光束,当红外光束碰触到黑线时,传感器会接收到反射回来的光束。

基于这个原理,通过检测反射光强的变化,循迹小车可以判断当前车辆所处的位置和方向。

3. 系统设计循迹小车的系统设计涵盖硬件和软件两个方面。

下面将分别讨论这两个方面的关键设计要素。

3.1 硬件设计循迹小车的硬件设计包括车身结构和传感器模块。

车身结构应具备稳定性和灵活性,以适应不同路面的运动需求。

传感器模块通常采用红外线传感器阵列,以提高检测精度和鲁棒性。

3.2 软件设计循迹小车的软件设计主要包括控制算法和用户界面。

控制算法用于处理传感器数据,判断小车应如何运动以跟随黑线。

用户界面则提供了交互操作的接口,用户可以通过界面实时监控车辆状态和调整路径规划。

4. 应用领域循迹小车在工业自动化、教育培训和娱乐领域都有广泛的应用。

4.1 工业自动化循迹小车可以在工厂流水线上配备传感器阵列,用于自动化物流和生产线控制。

它可以通过追踪黑线,识别并搬运特定物品,极大提高生产效率和减少人力成本。

4.2 教育培训循迹小车作为一种教育工具,可以帮助学生理解基本控制原理和编程思维。

学生可以通过编写控制程序,让循迹小车按照设定的路径行驶,提高对编程和算法的理解能力。

4.3 娱乐循迹小车的智能导航功能使其成为一种有趣的玩具。

用户可以通过操控界面,让小车在复杂迷宫中自动寻找最快捷的路径。

这不仅增加了娱乐性,还可以锻炼空间思维和逻辑推理能力。

5. 优势和局限性循迹小车作为一种智能机器人,具有以下优势和局限性。

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

摘要本组的智能小车采用的是益智公司的车架,以两个直流电机来驱动小车,主板部分根据现有的电路板进行改装。

通过红外发射对管ST178作为轨道采集器,传送进主控芯片STC89C52RC单片机,进行数据处理后,送进驱动芯片L9110H以完成相应的操作。

并且小车具有车灯模拟功能,红外接收功能,报警功能,数码显示功能和声控功能。

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

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

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

本文设计的小车以STC89C52RC为控制核心,用反射式红外光电传感器作为检测元件实现小车的自动循迹前行,并兼具报警和车灯模拟等功能。

一、系统介绍本组智能小车的硬件主要有以STC89C52RC作为核心的主控器模块、轨道探测模块、电机驱动模块、辅助照明模块以及报警模块等五个模块。

其中,电机驱动模块采用L9110H芯片驱动两个直流电机实现。

小车硬件结构示意图如下:设计要求(1)基本要求:实现小车的前进后退,左转右转(按照程序预设)(2)发挥部分:实现小车的自动循迹功能,壁障功能二、各模块的硬件介绍2.1电源系统的硬件结构图电源系统采用4节五号电池为系统供电,方便更换。

10uF的极性电容在此起稳压作用。

2.2主控模块的硬件结构图如图所以,主控模块采用STC89C52RC单片机。

该单片机有32个I/O口,支持最高振荡频率为80MHz。

2.3电机驱动模块硬件结构图L9110 是为控制和驱动电机设计的两通道推挽式功率放大专用集成电路器件,将分立电路集成在单片IC 之中,使外围器件成本降低,整机可靠性提高。

该芯片有两个TTL/CMOS兼容电平的输入,具有良好的抗干扰性;两个输出端能直接驱动电机的正反向运动,它具有较大的电流驱动能力,每通道能通过800mA 的持续电流,峰值电流能力可达1.5A;同时它具有较低的输出饱和压降;内置的钳位二极管能释放感性负载的反向冲击电流,使它在驱动继电器、直流电机、步进电机或开关功率管的使用上安全可靠。

L9110 被广泛应用于玩具汽车电机驱动、脉冲电磁阀门驱动,步进电机驱动和开关功率管等电路上。

2.4轨道探测模块的硬件结构图根据原理图可知,红外发射管V1、V3、V6始终处于红外发射状态。

只需要读取红外接收管V2、V4、V5的接收状态即可得到轨道探测的结果。

当单片机相应管脚检测到低电平信号时即接收管处于导通状态,及接收管接收到反射管的反射信号。

根据此原理,即可探测出小车相对于轨道的位置,经过程序处理和电机运转控制即可使小车完成循迹功能。

2.5模拟车灯模块的硬件结构图通过单片机的P2.0和P0.7管脚模拟控制小车的左右车灯。

当某个管脚给低电平时,相应的发光二极管点亮,当某个管脚给高电平时,相应的发光二极管熄灭。

2.6报警模块的硬件结构图如图所示,单片机上电后各管脚默认状态为高电平,三极管不导通。

当需要执行报警时,单片机P0.6管脚出现低电平信号,三极管导通驱动蜂鸣器报警。

2.7声控模块的硬件结构图如图所示,麦克的阻值随接收到声音信号强度的变化而变化,在电容正端产生变化的电压信号,经电容C5耦合和基本共射极三极管V3的电压反向放大,通过单片机P0.4引脚采集和处理即可实现小车的声控功能。

正常情况下P0.4管脚采集到的是高电平信号,当麦克接收到强度足够的声音后,三极管导通后P0.4管脚变为低电平。

2.8光敏模块的硬件结构图如图所示,光敏电阻RL1的阻值是随它接收到光照强度的变化而变化的,6V电压经R1和RL1分压,单片机P0.5管脚可采集到RL1两端电压的开关量。

当光照强度增加时,RL1阻值减小,P0.5管脚可采集到一个低电平信号,经程序处理即可完成智能小车的光控功能。

2.9数码管显示模块的硬件结构图该数码管是共阳极结构。

当某一段需要显示时,拉底单片机相应管脚即可。

配合单片机的各个管脚即可实现丰富的显示功能。

实现部分功能的C语言程序程序状态指示灯演示程序#include <AT89x51.h> //包含头文件#define LED P1 //宏定义显示端口号void Delay(unsigned int DelayTime) //定义可变延时函数{while(DelayTime--); //延时函数进入倒计时}void main() //程序主函数码{unsigned int CountData=0; //定义一个整形变量,用于闪动次数++ while(1) //主程序循环体开始{if(CountData<30) //判断闪动次数是否位于0-30之间{Delay(60000); //用60000作为基数开始延时函数}else if(CountData<60) //判断闪动次数是否位于30-60之间{Delay(30000); //用30000作为基数开始延时函数}else if(CountData<90) //判断闪动次数是否位于60-90之间{Delay(10000); //用10000作为基数开始延时函数}else if(CountData<120) //判断闪动次数是否位于90-120之间 {CountData=0; //仅进行一次操作即可退出.}CountData=CountData+1; //闪动次数基数++LED=~LED; //将显示端口进行取反操作}}按键中断查询演示程序#include <at89x51.h> //包含S51地址头文件typedef unsigned char uchar; //重定义无符号字符型typedef unsigned int uint; //重定义无符号整型sbit S1=P3^2; //定义S1变量sbit S2=P3^4; //定义S2变量uchar DataCount=0; //定义全局计数器uchar code LedShowData[]={0x9F,0x25,0x0D,0x99,0x49, //定义固定存储显示字符0x41,0x1F,0x01,0x19,0x03};//1,2,3,4,5,6,7,8,9,0void KeyDelay() //定义键盘防抖子程序{ uint KeyTime=20000; //定义防抖时间变量 while(KeyTime--); //防抖延时开始return;}void S1_Break() interrupt 0 //定义S1(INT0)外部中断0{while(0==S1); //判断S1按键键值DataCount--; //计数器数值减1 if(DataCount>9) //判断计数器是否到最小值{DataCount=9; //显示数字0}return;}void main() //主程序开始{ET0=1; //设定外部中断触发方式(1->低电平触发)EX0=1; //开启外部中断0 EA=1; //开记总中断while(1) //程序主循环{if(0==S2) //通过查询判断键值{KeyDelay(); //键盘防抖动开延时子程序开始DataCount++; //计数器加1}if(DataCount>9) //判断当前计数器 {DataCount=0; //将计数器置0 }P2=LedShowData[DataCount]; //通过端口显示计数器数值}}串口通信程序演示#include <at89x51.h> //包含51单片机相关头文件#define RunLed P1 //定义运行指示灯显示端口#define ShowPort P2 //定义数码管显示端口unsigned char code LedShowData[]= //定义数码管显示数据变量{0x03,0x9F,0x25,0x0D,0x99,0x49, //定义固定存储显示字符0x41,0x1F,0x01,0x19};//1,2,3,4,5,6,7,8,9,0void ComBreak() interrupt 4 //定义串口通信子程序{unsigned char RecvData; //定义串口数据接收变量if(RI==1) //判断是否接收数据{ RecvData=SBUF; //将接收到的数据放入暂时变量if(RecvData<10) //判断接收到的数据是否小于10{ShowPort=LedShowData[RecvData];//将接收到的数据通过数码管显示出来 }SBUF=RecvData; //向电脑返回当前接收到的数据RI=0; //清除接收中断标志位}if(TI==1) //判断是否是发送中断{TI=0; //清除发送中断标志位}}void main() //主程序入口{unsigned int FlashTime=8000; //程序运行指示灯延时变量SCON=80; //设置串口模式为8位数据TMOD=32; //设置定时/计数器模式TH1=0xFD; //给定时器1高八位初始化初值TL1=0xFD; //给定时器1低八位初始化初值TR1=1; //开启定时器1ES=1; //开启串口通信功能REN=1; //开启接收中断标志EA=1; //总中断开启while(1) //程序主循环{ while(FlashTime--); //延时子循环,用于运行闪灯效果FlashTime=8000; //对指示灯延时初始化RunLed=~RunLed; //将指示灯显示端口取反}}寻迹功能探头调试子程序#include <at89x51.h> //包含51相关的头文件typedef unsigned char uchar; //重定义char数据类型typedef unsigned int uint; //重定义int数据类型#define ShowPort P2 //定义数码管显示端口uchar code LedShowData[]={0x03,0x9F,0x25,0x0D,0x99, //定义数码管显示数据0x49,0x41,0x1F,0x01,0x19};//0,1,2,3,4,5,6,7,8,9static unsigned int RecvData; //定义接收红外数据变量static unsigned char CountData; //定义红外个数计数变量static unsigned char AddData; //定义自增变量static unsigned int LedFlash; //定义闪动频率计数变量unsigned char HeardData; //定义接收到数据的高位变量bit RunFlag=0; //定义运行标志位bit EnableLight=0; //定义指示灯使能位/***********完成基本数据变量定义**************/sbit S1State=P1^0; //定义S1状态标志位sbit S2State=P1^1; //定义S2状态标志位sbit B1State=P1^2; //定义B1状态标志位sbit IRState=P1^3; //定义IR状态标志位sbit RunStopState=P1^4; //定义运行停止标志位sbit FontIRState=P1^5; //定义FontIR状态标志位sbit LeftIRState=P1^6; //定义LeftIR状态标志位sbit RightIRState=P1^7; //定义RightIRState状态标志位/*************完成状态指示灯定义*************/sbit S1=P3^2; //定义S1按键端口sbit S2=P3^4; //定义S2按键端口/*************完成按键端口的定义*************/sbit LeftLed=P2^0; //定义前方左侧指示灯端口sbit RightLed=P0^7; //定义前方右侧指示灯端口/*************完成前方指示灯端口定义*********/sbit LeftIR=P3^5; //定义前方左侧红外探头sbit RightIR=P3^6; //定义前主右侧红外探头sbit FontIR=P3^7; //定义正前方红外探头/*************完成红外探头端口定义***********/sbit M1A=P0^0; //定义电机1正向端口sbit M1B=P0^1; //定义电机1反向端口sbit M2A=P0^2; //定义电机2正向端口sbit M2B=P0^3; //定义电机2反向端口/*************完成电机端口定义***************/sbit B1=P0^4; //定义话筒传感器端口sbit RL1=P0^5; //定义光敏电阻端口sbit SB1=P0^6; //定义蜂鸣端口/*********完成话筒,光敏电阻,蜂鸣器.端口定义**/sbit IR1=P3^3; //定义红外接收端口/*********完成红外接收端口的定义*************/void Delay() //定义延时子程序{ uint DelayTime=30000; //定义延时时间变量while(DelayTime--); //开始进行延时循环return; //子程序返回}void main(void) //主程序入口{while(1){LeftLed=LeftIR; //左边的指示灯状态为左边的红外探头 RightLed=RightIR; //右边的指示灯状态为右边的红外探头Delay(); //延时}}。

相关文档
最新文档