《道路交通灯多任务控制系统.ppt》由会员分享,可在线阅读,更多相关《道路交通灯多任务控制系统.ppt(10页珍藏版)》请在三一办公上搜索。
1、第20章 道路交通灯多任务控制系统,RTX-51是运行于8051单片机环境中的实时多任务操作系统(RTOS),其常用于处理复杂的多任务控制系统。8051单片机支持典型的RTX-51 Tiny和RTX-51 Full实时多任务操作系统。在Keil Vison3集成开发环境中提供了RTX-51实时操作系统的编译和仿真调试支持。本章通过一个道路交通灯多任务控制系统,来讲解RTX-51 Tiny实时多任务操作系统的设计。最后,还介绍了如何在Keil Vison3集成开发环境中对实时多任务系统仿真调试。,20.1 交通灯多任务控制系统概述,日常生活中常见的道路交通灯示意图,如图20.1所示。其中主路为双
2、向的交通线路,和其垂直的支路可供行人行走。道路交通灯是最常见的一种多任务控制系统。主路上的红绿灯指挥车辆的行驶和停止,支路上的红绿灯指挥行人的通过与禁止,行人通行按钮用于行人过马路时的请求。,道路交通灯示意图,20.2 C51交通灯多任务控制系统,这里采用Atmel公司的AT89S52单片机进行道路交通灯的多任务控制模拟。电路中,采用各种颜色的发光二极管作为红绿灯,按键开关作为行人通行按钮。,20.2.1 电路原理图,道路交通灯多任务控制系统原理图,如图所示。,交通灯控制系统原理图,20.2.2 建立RTX-51 Tiny项目,这里在Keil Vison3集成开发环境中,使用Keil C51语
3、言和RTX-51 Tiny实时多任务系统进行道路交通灯控制系统的设计。首先在Keil Vison3集成开发环境中建立项目,具体操作步骤如下:,选择RTX-51 Tiny操作系统,20.2.3 多任务划分,使用RTX-51 Tiny实时多任务操作系统进行交通灯控制,整个系统将被分成如下所示的几个任务。任务0:用于初始化单片机串口,同时启动所有其他的任务,然后停止本任务;任务1:用于整个系统的串行命令处理;任务2:用于系统时钟计算和控制;任务3:如果系统运行时间在设置的工作时间段之外,黄色灯闪烁,其余灯停止工作;任务4:如果系统运行时间在设置的工作时间段之内,控制交通灯的循环交替变化;任务5:查询
4、行人通行按钮是否按下,如果按钮按下则向任务4发送信号,使主路交通灯变为红灯,行人交通灯变为绿色;任务6:监视串口是否有ESC字符,如果有则向任务1发送一个信号,终止时间显示命令。,20.2.4 多任务程序设计,下面将介绍RTX-51 Tiny实时多任务系统的程序。整个程序由3个程序文件构成,traffic.c用于多任务处理、SERIAL_Communication.c用于串行接口的输入输出、GETCOMMAND.C用于命令的获取。在traffic.c程序文件中,首先需要将头文件rtx51tny.h添加到程序中,并且指明控制交通灯以及行人通行按钮的单片机引脚。,20.2.5 串行通信及命令获取子
5、函数,在SERIAL_Communication.c程序文件中,主要用于处理串行接口的中断数据通信。其中包含了基本的串行口初始化、字符输入输出以及串行中断处理等。,20.2.6 仿真调试,当完成程序设计和编译后,可以在Keil Vison3集成开发环境中对程序进行仿真,以确保程序的正确性。具体操作步骤如下:(1)在Keil Vison3集成开发环境中,选择“Debug”“Start/Stop Debug Session”命令,进入仿真分析状态。(2)选择“Peripherals”“RTX-Tiny Tasklist”命令,打开多任务列表窗口,如图所示。其中列出了所有任务的任务函数以及相关运行信息。,交通灯变化 多任务执行状态,20.3 小结,本章首先介绍了道路交通灯的运行原理,然后详细介绍了如何在51系列单片机硬件环境下,使用RTX-51 Tiny实时多任务操作系统来实现道路交通灯的控制模拟。最后,给出了RTX-51 Tiny实时多任务操作系统的仿真调试方法。通过本章的学习,读者可以进一步掌握RTX-51 Tiny实时多任务操作系统的设计和仿真调试。,