红外线控制的遥控小车

合集下载

全国青少年机器人等级考试四级

全国青少年机器人等级考试四级
}
//必备函数 在程序运行时,往复执行,通常放置主执行程序 //舵机库功能函数,该函数功能是设定舵机旋转角度,角度范围0°-180°
02
超声波的介绍
Goodmaker创客工作室
器件介绍
超声波传感器是利用超声波的特性研制而成的传感器。超声波接收到触发信号后, 模块自动发出8个40kHz的方波,同时开始计时并自动检测是否有信号返回,通 过记录超声波从开始发送到接收到回波的时间间隔,来判断前方障碍物的距离。
编码的红外波。红外遥控器有多种编码方式,最常见的红外遥控器大多使用NEC编码。
红外接收模块:红外接收模块由红外接收头组成,红外接收头是一个一体
化的红外接收电路,包含了红外监测二极管、放大器、滤波器、积分电路、 比较器等。其功能是接收红外信号并还原成发射端的波形信号。红外接收器 接收38kHz左右的红外信号。
//将results的值以十六进制输出
switch(){ case 0xFFA25D;
//如果接收到信号是遥控器的数字1,点亮led灯
{
digitalWrite(ledPin1,HIGH);
break;
} case 0xFF629D;
//如果接收到信号是遥控器的数字2,熄灭led灯Pin1,LOW);
void setup(){ pinMode(ledPin,OUTPUT); irRecv.enableIRIn(); Serial.begin(9600);
}
//必备函数 只执行一次,通常放置程序的初始化语
//启动红外接收功能 enableIRln()红外类库的成员函数:功能是初始化接收器 //初始化串口波特率为9600
示例程序
注释说明:红色本节需掌握,蓝色机器人考级4级基础知识,黑色示例说明

运水小车 (2)

运水小车 (2)

运水机器人摘要本设计以低功耗单片机STC89C52为控制核心,通过红外反射式光电传感器TCRT5000实现小车运水过程中的循迹功能,利用微型水泵实现A区的给水以及小车的自动贮水功能,在此基础上,增加红外遥控、实时测温等功能,并通过液晶显示运水量、运水时间、日期时间、温度、转弯避障提示。

本系统主要有自动给水模块、小车运水模块、红外遥控模块以及测温模块。

小车运水模块包括小车循迹、液位测试、自动贮水、液晶显示等功能。

红外遥控模块采用发光二极管与1838接收器实现小车的自动寻迹以及手动行驶的切换功能。

测温模块采用集成温度传感器AD590与TLC1549芯片实现小车的实时测温功能。

关键词:STC89C52 给水运水小车 TCRT5000 微型水泵SummaryThis design with low consumption MCU STC89C52 as control core, reflecting photoelectric sensor by infrared TCRT5000 achieve car in the process of water cycle and micro motion function realization of A water pump and the function of automatic car water, on this basis, the infrared remote real-time, increasing temperature and so on the function, and through liquid crystal display shipped water, water time, date, time, temperature, turning obstacle-avoiding tip. This system mainly have automatic water supply module, car water module, infrared remote module and temperature measurement modules. Car water module mark, including car followed level test, automatic storage, liquid crystal display function. Infrared remote module USES light emitting diode and the realization of automatic 1838 receiver car tracing and manual driving switch function. Temperature measurement modules using integrated with temperature sensor AD590 to realize real-time TLC1549 chip temperature function of the car.Key word:STC89C52 water supply water transporting electrocarTCRT5000 micro-pump目录一、方案设计与论证 (3)1 、小车循迹方案选择 (3)2 、液位测试方案选择 (3)二、系统电路及程序设计 (3)1、系统整体框图设计 ......................................................... .32、红外模块 (4)3 、循迹模块 (6)4 、测温模块 (6)5 、液晶模块 (6)6 、液位测试模块 (6)三、测试分析 (7)1 、测试步骤 (7)2 、测试结果 (7)四、总结 (8)附件一:主要程序 (9)附件二:液晶及驱动原理图 (15)一、方案选择与论证本设计主要需要完成运水小车在A-C之间运水任务。

遥控小车毕业设计

遥控小车毕业设计

遥控小车毕业设计遥控小车毕业设计随着科技的不断进步,遥控小车成为了人们生活中常见的一种智能设备。

它不仅可以提供娱乐,还可以应用于各种领域,如工业、医疗等。

本文将探讨一种遥控小车的毕业设计方案。

一、设计目标在开始设计之前,我们首先需要明确设计的目标。

本设计旨在开发一款功能强大、操作简便的遥控小车,以满足用户对于远程控制的需求。

该小车应具备较高的机动性和稳定性,能够适应各种地形和环境。

二、硬件设计1. 控制模块遥控小车的核心是控制模块。

我们可以选择使用Arduino等单片机作为控制模块,通过编程实现对小车的控制。

此外,还需要配备无线通信模块,以实现与遥控器之间的数据传输。

2. 电源系统为了保证小车的正常运行,我们需要设计一个稳定可靠的电源系统。

可以选择使用锂电池作为小车的电源,通过充电器进行充电。

此外,还需要考虑电源管理模块,以避免电池过放或过充的情况。

3. 传感器为了增加小车的智能化程度,我们可以添加一些传感器,如红外线传感器、超声波传感器等。

这些传感器可以用于检测障碍物、测量距离等功能,从而实现小车的自主避障和定位。

4. 机械结构小车的机械结构应该具备足够的稳定性和灵活性。

我们可以选择使用金属或塑料材料制作车身,同时考虑到小车的重量和外形设计。

此外,还需要设计合适的轮子和悬挂系统,以提供良好的行驶性能。

三、软件设计1. 远程控制程序为了实现对小车的远程控制,我们需要编写一套远程控制程序。

可以选择使用C/C++等编程语言,通过串口或无线通信模块与小车进行数据交互。

在程序中,可以定义各种指令,如前进、后退、转向等,以实现对小车的精确控制。

2. 自主避障算法为了增加小车的智能化程度,我们可以编写一套自主避障算法。

该算法可以根据传感器的数据判断前方是否有障碍物,并采取相应的措施进行避障。

例如,当传感器检测到障碍物时,小车可以自动停下或改变方向,以避免碰撞。

3. 数据处理与显示为了方便用户对小车的控制和监控,我们可以设计一个数据处理与显示模块。

智能循迹小车的设计与实现

智能循迹小车的设计与实现

本系统循迹采用 了8组 红外对管来循迹黑色路径 ,红外
小车控制板 上的WiFi模块 ,WiFi模 块将数据 以串行方式发 发射 管发射红外线到地面上 ,如果遇到黑色循迹线 ,则被吸
送 给¥5PV210微控制器,¥5PV210微控制器根据控制命令驱 收,不能反 射给 红外接 收管,当遇 到循迹线外的其余 白色 区
一 66 —
第 5期 2018年 3月
无 线 互 联 科 技 ·设 计分 析
NO.5 MarCh,20l8
内定 时 器 开 始 计 时 ,超 声波 在 遇 到 障碍 物 时 会立 刻 反 射 回 定 时器 记 录 的 时 间差 确 定与 障 碍 物 距 离 。超 声 波 发射 电 路 来,超声波接 收传感 器接收到反射波 ,同时停止计 时。通过 原 理 如 图 3所 示 。
第 5期 2018年 3
无 线互 联科 技
Wire1ess Internet Technology
智能循 迹小 车 的设 计与 实现
No.5 March,2018
过 怡 ,王云宝 ,董亚萍
(苏州市职业大学 计算机 工程 学院,江苏 苏州 215104)
摘 要 :文章设计一种基于Andorid移动终端控制的智能小车系统 ,小车采用四轮 结构 ,8组 红外对 管对黑 色轨 迹 进行循 迹 ,利用超声波传感器进行避 障。S5PV210微控制器系统进行传感器控制及小车循迹 。Andorid移动终端通i ̄WiFi模块与 S5PV210微控制器进行数据 通信,实现 小车的灵活控制和信息的实时采集。 关 键 词 :循 迹 ;Andorid;S5PV210;WiFi
能小车 ,然后将小车放到场地中运行,一旦小车开始运行,无 PLL/看 门狗等片上外设[21。完全可以满足本系统WiFi数据 的

智能循迹小车的设计与实现

智能循迹小车的设计与实现

智能循迹小车的设计与实现作者:过怡王云宝董亚萍来源:《无线互联科技》2018年第05期摘要:文章设计一种基于Andorid移动终端控制的智能小车系统,小车采用四轮结构,8组红外对管对黑色轨迹进行循迹,利用超声波传感器进行避障。

S5PV210微控制器系统进行传感器控制及小车循迹。

Andorid移动终端通过WiFi模块与S5PV210微控制器进行数据通信,实现小车的灵活控制和信息的实时采集。

关键词:循迹;Andorid:S5PV210:WiFi智能小车的应用领域十分广泛,目前智能小车的设计和研发过程中通常通过串行口与PC 连接进行数据的传递,PC机上的上位机软件系统通过串行方式将控制数据传递给智能小车,然后将小车放到场地中运行,一旦小车开始运行,无法根据小车实际运行情况实时改变参数和获得小车的运行参数。

部分智能小车虽然可以通过无线遥控方式控制移动小车动作,但是局限于特定环境并且上位机系统无法获得实时运动情形[1]。

这样对小车的调试和设计带来困难,延长了小车设计调试的时间。

本文采用无线WiFi模块将智能小车与移动终端(Android手机、平板电脑等)相连,利用移动终端良好的图像界面,便于携带,随处移动等特性,代替传统PC机的上位机系统,可以遥控智能小车的运动,并根据小车的实际运行状态随时发送修改参数,并获得智能小车的参数信息,大大提高了智能小车调试测试的效率。

1 系统整体结构移动终端上运行上层控制软件,用户在上层控制软件上设置相应参数,移动终端将控制命令通过WiFi发送给智能小车控制板上的WiFi模块,WiFi模块将数据以串行方式发送给S5PV210微控制器,S5PV210微控制器根据控制命令驱动电机控制车轮以一定速度行进,S5PV210微控制器底层代码定时获取红外传感器和车轮码盘数据以调整车轮转向和速度,实现沿黑线循迹,同时定时获得超声波传感器数据实现避障。

用户需要查看小车的参数时,可以在上层控制软件上选择显示信息,S5PV210微控制器将采集到的超声波、光照、码盘等信息发送给移动终端并显示在上层软件界面上。

课设报告基于Arduino单片机的实物设计

课设报告基于Arduino单片机的实物设计

基于Arduino单片机的实物设计题目:基于Arduino的智能小车(乌龟)设计姓名:学院:专业:班级:学号:指导教师:设计时间:目录一、任务设计及要求错误!未定义书签。

二、 Arduino32。

1 Arduino简介32.2参数说明3三、硬件设计43。

1所需硬件清单43.2硬件设计说明43.3电机驱动模块43.3。

1 L298N说明43。

3.2 L298N连接图43。

4循迹模块4第1页3。

4.1寻线功能43.4.2寻线传感器与实验连接图43.5避碰模块63。

5。

1 超声波模块63。

5.2 实验连接图63.6红外模块63。

6.1红外模块说明63。

6。

2实物图6四、模块软件设计64。

1循迹模块程序64.2 红外模块程序84。

3避碰模块程序9五、综合设计与调试95.1流程图95.2软件设计9六、总结126.1遇到问题及解决办法121、硬件问题122、软件问题126。

2个人感悟12一、任务设计及要求第2页利用Arduino设计智能小车(乌龟)其功能:1、实现循迹(利用TCRT5000 红外对管);2、避碰功能(利用超声波);3、红外遥控功能;4、综合以上功能实现自动循迹、避障、红外控制的智能小车;二、 Arduino2。

1 Arduino简介ARDUINO 智能小乌龟是一款单片机学习应用开发系统,以arduino 单片机系列atmega—328为核心.完成寻线,避障,红外遥控和蓝牙遥控的功能,。

套件包含了大量的趣味程序,并可扩展外置的电路模块,从而增加小车的使用功能。

旨在让使用者在学习ARDUINO 单片机时能脱离枯燥的理论知识,在玩乐中获取单片机系统开发的能力。

2。

2参数说明1.电机参数:电压范围:1.5-12V,电机轴长10mm,转速100rpm/min。

2.控制电机选用L298N驱动模块,与单片机真正隔离.3。

三组寻线模块,检测黑白线,精度更高,也可用与防跌落控制。

4.红外遥控通信模块,组成智能小车遥控系统。

自动跟随小车原理

自动跟随小车原理

自动跟随小车原理随着科技的不断进步,越来越多的智能设备被广泛应用于生活中。

其中,自动跟随小车就是一种非常有趣的智能设备。

它可以自动跟随人们行走的轨迹,帮助人们搬运物品,缓解人们的劳动压力。

那么,自动跟随小车的原理是什么呢?下面就来详细介绍一下。

一、硬件部分自动跟随小车的硬件部分主要包括以下几个方面:1.传感器传感器是自动跟随小车的核心部件之一,它可以感知周围环境,实现小车的自动跟随。

常用的传感器包括红外线传感器、超声波传感器、激光雷达等。

其中,红外线传感器是最常用的一种传感器,它可以检测到人体的红外线辐射,并根据信号判断人体的位置。

2.电机控制模块电机控制模块是自动跟随小车的另一个核心部件,它可以控制小车的运动方向和速度。

在小车的两侧分别配备了两个电机,通过电机控制模块可以实现小车的左右转向和前后运动。

3.电池电池是自动跟随小车的能量来源,它可以提供小车所需的电能。

一般来说,小车采用锂电池或镍氢电池,具有较高的能量密度和长时间的使用寿命。

4.控制电路板控制电路板是自动跟随小车的核心控制部件,它可以接收传感器和遥控器的信号,并根据信号控制电机控制模块的工作,实现小车的自动跟随。

二、软件部分自动跟随小车的软件部分主要包括以下几个方面:1.算法算法是自动跟随小车的核心部分,它可以实现小车的自动跟随。

常用的算法包括PID控制算法、神经网络算法等。

其中,PID控制算法是最常用的一种算法,它可以根据传感器的信号实时调整电机控制模块的输出,使小车能够实现精准的自动跟随。

2.控制程序控制程序是自动跟随小车的软件核心部分,它可以根据算法的结果控制电机控制模块的输出,实现小车的自动跟随。

控制程序一般使用C语言编写,具有较高的效率和稳定性。

3.用户界面用户界面是自动跟随小车的交互界面,它可以实现用户与小车的交互。

用户界面一般使用图形化界面,具有较高的易用性和友好性。

三、应用场景自动跟随小车可以应用于以下几个方面:1.物流行业自动跟随小车可以应用于物流行业,帮助人们搬运货物。

智能小车循迹模块

智能小车循迹模块

智能小车红外循迹巡线传感器原理与应用电路2011-09-27 11:24智能小车是指由单片机控制的,可以修改程序的,在程序的控制下,能够自由移动,自动完成特定功能的小车。

它集计算机技术,软件编程,自动控制,传感器技术,机械结构于一体,是学习信息技术,机器人的最佳载体。

小车循迹指的是小车在白色地板上循黑线行走,通常采取的方法是红外探测法。

也可用CCD,CMOS 摄像头方案,光电优点:1.电路设计相对简单2.检测信息速度快3.成本低缺点:1.道路参数检测精度低、种类少2.检测距离短3.耗电量大4、容易受外界光线干扰摄像头优点:1.检测前瞻距离远2.检测范围宽3.检测道路参数多缺点:1.电路相对设计复杂2.检测信息更新速度慢3.软件处理数据较多红外探测法,即利用红外线在不同颜色的物体表面具有不同的反射强度的特点,在小车行驶过程中不断地向地面发射红外光,当红外光遇到白色纸质地板时发生漫反射,反射光被装在小车上的接收管接收;如果遇到黑线则红外光被吸收,小车上的接收管接收不到红外光。

单片机就是否收到反射回来的红外光为依据来确定黑线的位置和小车的行走路线。

常用的红外探测元件有红外发光管,红外接收管,红外接收头,一体化红外发射接收管。

红外线是不可见光线。

所有高于绝对零度(-273.15℃)的物质都可以产生红外线。

人的眼睛能看到的可见光按波长从长到短排列,依次为红、橙、黄、绿、青、蓝、紫。

其中红光的波长范围为0.62~0.76μm;紫光的波长范围为0.38~0.46μm。

比紫光波长还短的光叫紫外线,比红光波长还长的光叫红外线。

红外发光二极管:外形和普通发光二极管LED相似,发出红外光。

管压降约1.4v,工作电流一般小于20mA。

为了适应不同的工作电压,回路中常常串有限流电阻。

红外线发射管有三个常用的波段,850NM、875NM、940NM。

根据波长的特性运用的产品也有很大的差异,850NM波长的主要用于红外线监控设备,875NM主要用于医疗设备,940NM波段的主要用于红外线控制设备。

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

平顶山工学院本科生毕业设计目录摘要 (I)ABSTRACT (II)第1章绪论 (1)1.1概述 (1)1.2设计要求及主要功能介绍 (1)1.3AT89C52系列单片机简介 (1)第2章系统总体设计 (3)2.1系统功能模块的划分 (3)2.2单片机数目的选定 (3)2.3系统原理框图 (3)2.4系统软件主要特色 (4)1、软件分层结构 (4)2、多任务结构 (4)3、消息驱动结构 (8)2.5本章小结 (9)第3章各模块的详细设计 (10)3.1红外遥控模块的设计 (10)1、遥控模块的功能需求 (10)2、红外遥控的编码标准简介 (10)3、编解码芯片的选型 (13)4、TX-2/RX-2编解码芯片功能简介: (13)5、遥控模块原理图 (14)3.2工作状态指示灯及转向灯的设计 (16)3.3声音提示功能的设计 (16)3.4前轮转向模块的设计 (17)1、前轮转向的机械结构设计 (17)2、前轮转向中点校准功能的设计 (17)3、步进电机原理简介 (17)4、步进电机驱动芯片KA2821D功能简介 (19)5、步进电机驱动芯片的连接 (20)3.5后轮驱动模块的设计 (22)1、直流电机驱动芯片L298N功能简介 (22)2、直流电机驱动芯片的连接 (22)3.6本章小结 (23)第4章系统软件的设计 (24)4.1单片机的C语言程序设计简介 (24)4.2系统主程序的设计 (24)1、系统主程序流程图的设计 (24)2、系统主程序清单 (25)3、编码解码程序的设计 (27)4.3本章小结 (31)结论 (32)致谢 (33)参考文献 (34)附图1 (35)平顶山工学院本科生毕业设计摘要根据题目要求,本次设计是针对玩具车的遥控系统,所以,要求设计简单易于操作,基于这样的一种设计理念,本次设计我采用一片AT89C52单片对电动车的各种功能进行控制,实现电动车的前进,后退,左转,右转等功能。

红外遥控部分采用遥控车模专用编、解码芯片TX-2/RX-2,提高控制的可靠性;采用步进电机对小车的转向进行精确的控制,同时用红外传感器对转向的角度进行校正。

本次设计基于完备的软硬件系统,很好的实现了所要求的功能,用单片机进行控制,可靠性强,实时性好。

特别是红外遥控器,相比与以前的电磁波遥控器,提高了遥控器的反应速度,抗干扰能力远远高于电磁波遥控器。

关键词:单片机;TX-2/RX-2编码/解码芯片;红外遥控;步进电机;I平顶山工学院本科生毕业设计AbstractAccording to subject requirements, this design is for the toy car remote control system. Therefore, the design should be simple and easy to operate. Based on this design concept, this design I used a single AT89C52 for electric vehicles to control the various functions,and realized turn forward,back, left, right, and other functions.The infrared remote part used a special remote control for the cars---decoder chip TX-2/RX-2.This control improve reliability of the systemy. The stepper motor vehicle used to carry out the precise control and use infrared sensors to the point of view correction.The design is based on a complete hardware and software systems, achieved a very good requested by the function. Using SCM control, reliability, real-time is very good. In particular, infrared remote control compared with the previous electromagnetic remote control raising the remote control of the reaction rate, and far higher than that of electromagnetic interference capability remote control.Key words: SCM;TX-2/RX-2 encoding / decoding chips;infrared remote control;stepper motor;II平顶山工学院本科生毕业设计第1章绪论1.1 概述单片机以其强大的控制能力已经被广泛应用于诸多领域,配以各种接口传感器可以实现系统的智能化。

无论是在工业控制领域、医疗卫生领域、还是在国防军事领域、航天航空领域,微控制器都起着举足轻重的作用。

从最初的8位控制器到现在的16位、32位控制器都还有很大的发展和应用空间。

目前在市场上的玩具车都采用单片机进行控制,只不过是功能有的多有的少而已,功能多的相对价格贵一点,而功能少的价格会低一些。

1.2 设计要求及主要功能介绍我所设计的功能就是遥控车的最基本的功能,通过红外遥控实现小车的前进,后退,左转,右转,停止功能。

利用软件对这些功能实现更快,更好的控制。

1.3 AT89C52系列单片机简介AT89C52单片机的基本结构如图1.1所示,其基本结构包括:● 8字节可重擦写Flash闪速存储器;●三级加密程序存储器;● 32根I/O口线;●256×8字节内部RAM;● 3个16位定时器/计数器;● 8个中断源;●可编程串行UART通道;●低功耗和掉电模式;1平顶山工学院本科生毕业设计2图1.1 AT89C52单片机结构框图AT89C52提供一下标准功能:8K 字节Flash 闪速存储器,256字节内部RAM ,32个I/O 口线,3个16为定时/计数器,一个6向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。

同时,AT89C52可降至0Hz 静态逻辑操作,并支持两种软件可选的节点工作模式。

空闲方式停止CPU 的工作,但允许RAM ,定时/计数器,串行通信口及中断系统继续工作。

掉电方式保存RAM 中的内容,但振荡器停止工作并禁止其他所有部件工作直到下一个硬件复位。

AT89C52单片机有4个8位的并行接口,记作P0,P1,P2和P3,共32根口线。

平顶山工学院本科生毕业设计第2章系统总体设计2.1系统功能模块的划分按照设计要求,系统可以分为以下几个基本功能模块:遥控模块、前轮转向模块、后轮驱动模块.有些模块的功能是由硬件完成,有些模块的功能由软、硬件配合完成,有些模块则是由软件、硬件、机械三部分共同完成。

将系统拆分成以上的这些基本功能模块后,再根据各个模块所要完成的功能分别去设计,也就是按照“逐步求精”的思想去设计本系统,这将使设计工作细化,也有助于制定进度安排。

2.2单片机数目的选定由于系统需要完成的功能较少,CPU的负荷也不是很重,但考虑到使系统具有良好的功能扩展性,在本次设计中我采用一片AT89C52单片机。

2.3系统原理框图系统原理框图如图2.1所示:图2.1 系统原理框图3平顶山工学院本科生毕业设计42.4系统软件主要特色软件在一个智能系统中扮演着举足轻重的作用,软件设计的好坏直接关系着整个系统的性能。

目前已经有很多种嵌入式实时多任务操作系统,如:Linux 、RTX51及UC/OS 等,可以更有效的利用系统的各种资源,简化编程,缩短开发周期。

签于本系统采用AT89C52单片机为控制器,本身的各种资源都很有限,引入一个操作系统代价太大,所以考虑直接来优化系统的软件结构,同样可以达到“多任务”、“实时”等要求。

1、软件分层结构为了便于编程,将逻辑控制层和具体的硬件相分离开是很有必要的。

硬件驱动层的软件负责直接操作硬件,并且给上层的软件提供一定的接口,这样有助于上层的软件实现更复杂的功能,并且系统的硬件有所改动时也只需改动相应的驱动模块即可。

本系统中的前轮转向模块、后轮驱动模块都做成了一些独立的模块,并且给外部提供了一些接口函数,来实现对这些硬件或机械部件的高级操作。

分层结构如图2.2所示: 软件的分层结构是很多系统中普遍采用的一种软件结构,比如TCP/IP 协议就是一种典型的分层结构。

WINDOWS 、LINUX 等系统中也几乎把所有的系统硬件进行了抽象,这样上层的软件就不必关心硬件的细节,可以调用相应的模块提供的服务即可,这样可把更多的精力放在高级功能的实现上。

2、多任务结构为了充分利用单片机的CPU ,内存等资源,实现更强大的功能,本系统中可以引入多任务的软件结构,即从宏观上来看单片机同时在做多件事情。

分析一般的多任务系统的软件结构,系统的核心是任务调度器,在适当的时图2.2 软件分层结构示意图平顶山工学院本科生毕业设计候任务调度器将保存当前任务的现场,并且恢复将要运行的任务的场,并让其投入运行。

简单的说,一般的多任务系统是任务调度器循环的调用各个需要执行的任务,进而可以更有效的利用系统的各种资源。

从这里得到启发,可以用定时器每隔一定的时间中断一次,在中断处理函数中依次调用一次各个任务所对应的函数,并且各个函数都能在一个较短的时间内返回,这样在某段时间内,各个任务所对应的函数都能够被执行到,就好像多个任务同时运行了。

还有一点需要说明,就是各个任务是由一些函数和一些静态变量组成。

函数由定时器中断处理函数定期的调用一次,并且有个前提就是这个函数能够在较短的时间内返回,否则其他任务将不能及时的被调用到,也就达不到“实时”这一要求。

静态变量保存该任务的各种状态,并且其他模块和该任务进行通信也是通过置取这些静态变量来实现的。

如果要实现更强大的扩展功能,系统中软件的多任务结构可以设计成如图2.3所示:可以说定时器中断处理函数就是本设计中多任务的核心,即任务调度器。

以下是定时器0中断处理函数的程序清单://定时器0中断处理函数//每4毫秒中断一次//产生时钟节拍//负责维护一个系统时间变量和任务调度/////////////////////////////////////////////////////#define TIME_OVERLOAD 3960 //定时器计数初值图2.3 多任务结构示意图平顶山工学院本科生毕业设计{//记录时间的结构的定义typedef structuchar t_ms; //毫秒数0-99uchar t_100ms; //100毫秒数0-9uchar t_sec; //秒数0-59uchar t_min; //分钟数,0-255}TIME;TIME time; //记录系统时间的全局变量void timer0(void) interrupt 1{//重装定时器0的计数初值TH0=(65536-TIME_OVERLOAD)/256;TL0=(65536-TIME_OVERLOAD)%256;//维护系统时间time.t_ms+=4;if(time.t_ms>99){time.t_ms=0;if(++time.t_100ms>9){time.t_100ms=0;if(++time.t_sec>59){time.t_sec=0; time.t_min++; }}}//并且只有在需要发声时才调用6平顶山工学院本科生毕业设计//n_beep全局变量表示需要发出几声if((n_beep)&&(!(time.t_ms%52)))beep2();led_disp();//每16毫秒调用一次后轮直流电机驱动程序if(!(time.t_ms&0x0f))dianji();if(!(time.t_ms&0x1f))licheng();//每16ms调用一次前轮转向电机驱动函数if(!(time.t_ms&0x0f))gw_dianji();}以上的这段程序代码就是实现了任务的调度,和一般的多任务系统相比较有几点不同:(1) 任务之间的切换是通过函数的调用与返回实现的,当以上的这几个任务全调用一次之后将进入主任务执行,主任务即main()函数所对应的任务。

相关文档
最新文档