项目训练二简易交通信号灯.pptxVIP

  • 0
  • 0
  • 约3.5千字
  • 约 22页
  • 2023-04-25 发布于江苏
  • 举报
工程训练二简易交通信号灯一、任务目标 设计一个简易的交通信号灯控制器,其设计任务如下。 某交通十字路口,南北向为主干道,东西向为支道。每个道口安装一组信号灯,每组信号灯有红、黄、绿3种信号,各信号灯按以下规那么循环显示交通信号指挥交通,见表1。 显示信号共有4种状态,称为四相。表1 交通信号灯显示规那么25s5s15s5s东西向绿灯黄灯红灯红灯南北向红灯红灯绿灯黄灯要求使用单片机控制发光二极管完成表1的显示功能。二、硬件1、显示器件 显示状态共有红、黄、绿3种颜色,可以使用红、黄、绿色发光二极管,每组信号灯使用3只发光二极管,两个方向的道口各使用1组。控制系统需要6个开关量控制发光二极管,见图1。6只发光二极管的显示规那么见表2。图1 信号灯显示电路表2 发光二极管显示规那么方向东西向南北向 发光二极管时间/sD1D2D3D4D5D6红黄绿红黄绿25灭灭亮亮灭灭5灭亮灭亮灭灭15亮灭灭灭灭亮5亮灭灭灭亮灭2、驱动电路 为了提高89S51的驱动能力,89S51的端口经驱动器件ULN2803驱动发光二极管。3、控制电路 选用89S51的P0口驱动ULN2803时必须接上拉电阻,为了简化电路使用P2口输出。交通信号灯电路见图7-2。4.控制方法 根据显示规那么,6只发光二极管一共有4种显示状态,每一种状态对应的P2口的输出状态见表3。需要改变输出时只需将P2口各位的状态组成一个字节发送到P2口即可,这样一个用于控制输出的数值称为控制字。四种状态的控制字见表3。图2 交通信号灯电路表3 信号灯控制方法P2.5南北绿P2.4南北黄P2.3南北红P2.2东西绿P2.1东西黄P2.O东西红控制字P2东西向信号灯南北向信号灯O011000CH绿色 红色0O101O0AH黄色 红色1000012lH 红色 绿色0100O11lH 红色 黄色 三、软件 1、算法分析 (1) 定时时间 根据规那么,信号灯显示时间的单位为秒(s),系统采用12MHz晶振时定时计数器的最长定时时间为65ms。为了计算方便,定时计数器设定为定时50ms。采用中断方式,中断程序中设置一个计数器(S1),每计数20次(1s)后设定时间标志(SBZ)通知主程序。 (2) 定时计数器设置 选用定时计数器0,模式1,定时计数器控制字为01H,见图3。图 3 定时计数器控制字12×10612定时计数器0初值计算: X=216- ×50×10-3解得:X=15536。可以利用汇编语言的运算功能计算出TH0与TL0的初值。TH0=15536/256 操作符“/〞表示整除运算:取商,截去余数。TL0=15536 MOD 256 操作符“MOD〞表示取模运算:取余数,截去商。(3)定时计数器中断程序 定时计数器中断程序需完成的任务:每次中断后计数,当计数到达20次时设置标志SBZ通知主程序定时时间到,同时恢复计数器重新开始计数。中断程序框图见图4。(4)主程序 为了使程序具有通用性,将控制规那么存放在数据区中,称为规那么表(GZB),见图5。规那么表中数据的存放方法如下。CTC0: PUSH ACC MOV TH0,#CTH MOV TL0,#CTL INC S1 MOV A,S1 CJNE A,#20,CTC1 MOV S1,#0 SETB SBZ CTC1: POP ACC RETI图4 中断程序框图与程序GZB: DB 25,0CH ;25s,控制字0CH DB 5, 0AH ;5s, 控制字0AH DB 15, 21H ;15s, 控制字21H DB 5, 11H ;5s, 控制字11H DB 0 ;结束标志图5 规那么表① 那么表每行对应一相规那么,四相规那么共有4行。② 那么表每行有两项数据,第一项为延时时问,第二项为输出控制字。③ 那么表最后存放一个“0〞,用做规那么表结束标志。 主程序将第一项数据读出后存放在存放器中用做计时器,并将第二项数据由P2口送出,控制显示状态。每当SBZ=1(定时ls时间到)时将计时器减1。当计时器减到“0〞时,说明本相显示时间到,再读出规那么表中下一行数据,如此重复。当从规那么表中读出时间值为“0’’(结束标志)时,调整数据指针从规那么表第一行重新开始读数据,实现循环显示。 这样当需要调整显示规那么时只需修改规那么表数据,而不必修改程序,从而使程序具有一定的通用性。 主程序框图见图6。 ORG 0000H AJMP MAIN ORG 000BH AJMP

文档评论(0)

1亿VIP精品文档

相关文档