DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 100|回复: 0
打印 上一主题 下一主题

基于RTX51实时操作系统的交通灯控制系统的设计

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-16 17:01:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

                    ???? 0 引言
  一个高效的单片机智能控制系统, 不仅要求系统能够同时执行多个任务,对每个任务作出实时响应, 而且要求系统能够及时响应随机发生的外部事件, 并对其作出快速处理。对于这样的系统应用,采用实时操作系统 RTOS( Rea l ti m e Operati ng SySTe m )作为系统软件设计平台是一个良好的选择,它可以灵活地安排系统资源,简化复杂的软件设计,加快软件的开发效率,大大缩短了项目的开发周期。道路交通灯是最常见的一种多任务控制系统, 本文以此为例, 详细阐述了 51嵌入式实时操作系统 RTX51开发软件的方法和步骤。
  1 系统硬件电路设计
  交通信号灯控制系统主要实现以下三个功能:
  ( 1) 信号灯指示,即完成十字路口红、 黄、 绿交通信号灯的控制。
  ( 2) 时间显示, 各个信号灯持续的时间显示。
  ( 3) 紧急情况响应, 当系统出现故障或者有紧急情况是能够及时响应。
  根据以上功能要求, 完整的交通灯控制系统硬件电路如图 1所示, 主要由三部分模块组成:单片机最小系统模块、 红绿色显示模块、 倒计时显示模块、 紧急中断模块。




图 1 系统原理图.
  ?( 1) 单片机最小系统: 包括时钟电路和开关复位电路单片机选用 具有成本 低廉 且具有 串口 ISP下 载功能 的S TC89C52单片机,晶振选用 12MH z 。
  ( 2) 信号灯指示电路: 东西南北四个方向分别有红、 绿黄三个状态指示的灯,其中南北方向的红绿黄发光二极管分别连接到 P1 . 0" P1 . 2 , 东西方向的红绿黄发光二极管分别连接到 P1 . 3" P1 . 5。
  ( 3) 倒计时显示:每个交通灯状态倒计时时间由两位共阳数码管显示,八位段码分别连接到 P0 . 0" P2 . 7 , 两位位选通过反向器分别连接到 P3 . 4 、P3 . 5。
  ( 4) 紧急中断:开关 K1为紧急中断开关, 当有特殊情况时按下 K1 , K1连接到单片机 P3 . 2外部中断 0输入端。
  2 基于 RTX51的软件设计
  近年来,利用嵌入式实时操作系统来开发嵌入式系统的软件已是大势所趋。这是因为传统的这类设计中, 大多采用了中断结合单任务的顺序机制进行, 这种设计方法虽然比较直观,但是也带来了诸如稳定性差、 不便于调试等问题。尤其是当系统比较复杂、 实时性要求比较高时, 这种单任务机制的缺陷更为明显。利用嵌入式实时操作系统, 程序开发者可以将复杂的系统分成多个相对独立的任务, 从而分而治之,降低了系统的复杂性; 通过对不同的任务赋以不同的优先级,从而能够保证系统的实时性; 同时, 由于软件系统有多个任务组成, 所以其模块化程度好, 提高了系统的可维护性。因此,这里利用实时操作系统 RTX51来进行软件系统的设计。
  2 . 1 RTX51实时操作系统介绍
  RTX 51是美国 Ke il公司开发的一种运行于 8051单片机环境中的实时多任务操作系统 ( RTOS), 其常用于处理复杂的多任务控制系统。 8051单片机支持典型的 RTX51 T i ny和 RTX 51 Fu ll实时多任务操作系统。在 Ke il V i sON3集成开发环境中提供了 RTX51实时操作系统的编译和仿真调试支持。
  在多任务嵌入式系统中, 合理的任务调度必不可少。单纯通过提高处理器速度无法达到目的, 这样就要求嵌入式系统的软件必须具有多任务调度能力。在微控制器应用系统中通常可以分解为多个相互独立的功能模块, 在 RTX51嵌入式实时操作系统中将这些模块划分为任务, 引入多任务机制管理。依据系统功能优先级分配不同的任务, 多个任务分别在各自的时间片内访问 CPU, 从而产生了微观上轮流运行、 宏观上并行运行的多任务效果, 保证了对外界的信息足够快的速度进行响应处理, 又能并行运行多个任务, 因此能很好完成对多个信息的实时测量、 处理并进行响应的多个实时控制。
  2 . 2 任务分配
  在本系统中,依据交通灯控制系统功能的分析, 将整个软件系统分解为以下三个任务, 系统初始化、 红绿黄灯显示、倒计时显示。具体情况如下:
  任务 0 : 用于系统初始化,开外部中断 0 ; 启动任务 1和任务 2 。
  任务 1 :红绿黄信号指示灯控制, 实现红绿黄灯的五种状态控制。状态 0 : 东西方向红灯亮, 同时南北方向绿灯亮, 亮的时间为 30 S ; 状态 1 : 东西方向红灯亮,南北方向黄灯闪烁,时间为 3 S ; 状态 2 : 东西方向绿灯亮, 同时南北方向红灯亮,时间为 30 S ; 状态 3 : 东西方向黄灯闪烁,南北方向红灯亮, 时间为 3 S ;状态 4 : 当紧急开关按下时, 响应紧急状况或者故障状态,东西南北四个方向红灯均亮,时间为 10 S。
  任务 2 :各个状态指示灯倒计时显示。两个数码管采用动态扫描显示, 实时显示当前交通指示灯状态的倒计时时间。
  2 . 3 程序设计
  依据任务分配, 将三个任务分别规划为 _task _0 , _task _1 , _task_2 , 由于完整的程序较大, 这里不便给出, 只给出部分代码,如下所示。

















  3 结束语
  本文以道路交通灯控制系统为例, 详细介绍了 RTX51实时操作系统在单片机程序设计中的应用。系统实际运行结果表明, RTX51实时操作系统既能保证对外界的信息以足够快的速度进行处理,又能并行运行多个任务, 具有实时性和并行性的特点, 因此能很好地完成对多个信息的实时测量、 处理和进行相应的多个实时控制。此外, 使用 RTX51实时操作系统,降低了软件编写的复杂度, 提高了产品的开发效率,方便了系统的维护和功能扩展。
            
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2025-11-10 06:31 , 耗时 0.093563 秒, 19 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表