您好, 访客   登录/注册

交通信号灯的新构思

来源:用户上传      作者: 何汁艳 刘惠娟

  摘要:学校实施目标管理深化内部管理1体制改革,努力创办高水平有特色的地方综合性大学。文章以单片机课程中的“8155控制交通灯实验”为素材,结合小城市交通信号灯的实际,指出传统设计方案的不足,并从系统总体方案确定、硬件和软件设计方面诠释作者在实施个人目标管理过程中基于实验教学的思考。
  关键词:单片机看门狗定时器 集成开发环境IDE
  
  1 引言
  
  为深人学习实践科学发展观,我校自2009年开始实施目标管理。学校下达指标到学院,学院职能部门拟订本部门的专项目标,教师个人在学期开始撰写个人计划,年终作为学校对学院和教师个人的考核依据。这种激励机制变被动工作为创造性地开展工作。2009~8月,学院成功筹办第24届中国自动化学会青年学术年会,资深的自动化领域知名院士、海外学者引领教师接触科技和知识前沿;9月,学院被授权为控制理论与控制工程专业博士点立项建设单位,目前的主要工作是以学科建设为重点的专业建设和进一步完善学院的二级管理体制机制。在这样的背景下,作者本人以《单片机原理及应用》课程实验环节中的“8155控制交通灯实验”为切入点,谈谈在实施个人目标管理过程中对于交通信号灯设计的构想。
  
  2 现状分析
  
  调研发现,某些小城市十字路口的交通灯运行控制系统,会出现某一方向全灭而只有另一方向通车或交通灯的指示与既定的状态切换次序不一致,无法正常指示交通通车的故障现象。这种可靠性待提高和更新的系统,初步分析存在两方面问题:1、沿用传统的设计思路,将状态孤立地赋给输出端,没有建立起输出端之间的相互联系;2、系统缺乏保护措施,当受到外界环境干扰或由于系统自身长期反复运行导致程序“跑飞”或陷入死循环时,系统无法恢复正常运行。作为嵌入式系统的初学者,作者从系统的总体设计方案、硬件和软件设计、系统可靠性方面阐述自己的设计思路。
  
  3 任务分析
  
  系统性能及工作原理:起始红灯亮3秒,作为程序运行的起始,东西方向通车40秒,东西方向左转弯15秒,南北方向通车40秒,南北方向左转弯15秒。这样设计通车顺序的好处是:当东西方向对直通车时'不妨碍东西方向的右转弯,当切换为东西方向左转弯时,东西向已几乎不存在右转弯的车辆。避免了先左转弯设计中东西方向左转弯时西侧左转弯的车辆与东侧右转弯车辆同时通车的冲突。提高了十字路口的通车效率。依据以上分析:十字路口四侧各需要3只指示灯,且自左向右的次序依次为:左转向绿灯A、禁止对直方向通车红灯、对直通车绿灯B。总计需要的交通灯个数为12个,需要由两个8位的单片机并口承担。由于交通灯具有这样的特点:在正常交通通车过程中的任一时刻:东西方向东侧和西侧的指示灯状态相同・南北方向南侧和北侧指示灯状态相同,所以可以只考虑东西方向东侧和南北方向南侧,这样任务就减少了一半。将该两侧的状态作为一个整体赋给一个并口输出端,只需要软件中的一次写外部I/O端口,就可以实现四侧状态的演示。
  
  4 系统构成
  
  系统在硬件实现上需要以下部件:1、微控制器MCu单片机,负责对整个系统的控制。2、专用的可编程RAM/IO芯片Intel8155扩展单片机的并行接口,扩展的A口和B口作为交通灯信号的输出端口・3、驱动显示装置; 4、带有看门狗定时器的监控电路监控程序运行4外部硬件电路设计
  
  4.1 可编程扩展并行I/O接口和驱动显示模块设计
  为了便于系统的功能扩展,我们将单片机固有的并口Pl留出,使用IntelSl55可编程RAM/IO芯片扩展并口A和井口B。驱动显示装置选用共阳极连接的红绿双色发光二极管,当给输入端输入低电平时,将会点亮相应的LED发光二极管。为防止LED导通时的电流损坏并口引脚,我们使用7407芯片进行隔离缓冲,增强端口的驱动能力。
  
  4.2 看门狗、电源复位电路模块设计
  影响系统稳定性的因素是多方面的。我们采取硬件看门狗措施监控系统运行。专用看门狗集成电路芯片IMP813L兼有系统上电、掉电及供电电压低于门限电压时复位输出的功能。其实质是软件与硬件结合实现的监视技术,若在看门狗规定的时间内没有检测到输入端电平的变化,看门狗就会输出复位脉冲,复位单片机。
  
  5 软件设计
  
  5.1 主程序模块设计
  依据系统总体硬件设计方案分配Intel8155的命令/状态寄存器,数据端口A和B的口地址。依据8155的工作模式确定其命令字各位的状态,依据程序的功能分配内存单元和寄存器并赋初值。主程序的功能包括:1、赋8155的命令字及各内存单元和寄存器的初值; 2、设定定时器的工作模式和中断优先级别,赋定时器定时初值并启动定时器运行,由于同时使用了定时器TO和Tl,为避免两者发生冲突,设定Tl的优先级别为高。3、主循环程序的功能是将从定时器中断服务程序中获得的出口参数送并口输出端显示,通过设立位标记20H.O使得主程序的一次循环与一个显示状态一致,当位标记满足条件时,清零标志位并转人下一轮循环,不满足条件盹循环等待。
  
  5.2 秒延时程序设计
  很多延时程序是通过使用NOP和gDJNZ指令的软延时来实现的,这对于使用电源的系统是一种消耗。一种行之有效的办法是使用内部定时器实现对cPu定时。目标硬件提供的TO工作在方式1时为16位定时器/计数器,使用的晶振频率为11.0592MHz,定时时间最大值~7lms。系统同时使用定时器TO和Tl使软件程序设计大大得到简化。将TO工作在方式1,T1工作在外部事件计数方式,TO定时50ms时间到,对P1.0引脚状态取反,实现该引脚输出周期为100ms的方波信号。定时器T1对PI.O端口脉冲计满10个,取反P1.5引脚的状态,可以使该引脚输出周期为2秒的方波信号。为确保P1.5引脚输出的方波半个周期满1秒。设定P1.0输出起始状态为低电平。
  
  5.3 定时器中断服务程序设计
  TO定时中断服务程序用于定时50ms,井在P1,O端口输出100ms周期的方波信号;定时器Tl中断服务程序用于产生1秒定时信号并在P1.5端口输出周期为2秒的方波信号,同时还实现交通灯状态保持时间的判断,此处是利用工作寄存器R6内容加1实现实际记录的1秒个数,与理论设定的1秒个数相比较,秒个数未到不改变位标记20H.0,秒数到则清空R6并置1位标记20H.0并查表获得下一个输出状态送存储单元30H,供cPu在主程序中查询。由于送给主程序的显示


转载注明来源:https://www.xzbu.com/2/view-425228.htm