您当前的位置:五五电子网电子知识应用领域交通控制指示基于PIC单片机十字路口红绿灯的控制 正文
基于PIC单片机十字路口红绿灯的控制

基于PIC单片机十字路口红绿灯的控制

点击数:7512 次   录入时间:03-04 11:50:32   整理:http://www.55dianzi.com   交通控制指示

  下左图a是一种由红色高亮LED组成的学形指示图案,路口显示该图案,表示此时该方向禁止行人通过。下左图b、下左图c分别是用绿色高亮LED组成的仿人形和仿自行车形的指示图案,在路口显示该图案,表示此时允许人们通行。下右图是由红、绿色两种颜色的高亮LED组成的圆形指示图案(红、绿色分时显示),以提示是否允许机动车辆通行。上述指示图案均设在交通路口,以分时方式交替显示,各指示图案显示时间的长短,是根据不同路口的车流和人流的实际情况来设定的,一般在80秒~140秒之间(特殊路口可长达180秒,甚至更久)。

7845699

  利用PIC16F877或PIC16F876单片机的端口位,加上相应的驱动电路,去分别驱动指示图案的各个高亮红、绿色LED,使之按所需时序进行显示,便可实现上述功能。把它们用箱体装好,安装在交通路口的指定地点,就能够进行路口的交通管理了。

  1.硬件电路和功能
  
  (1)硬件电路
  
  按照上述交通路口红绿灯指示图案显示的要求,用PIC16F877设计的硬件电路如下图所示。

基于PIC单片机十字路口红绿灯的控制电路

  从图可知,PIC16F877有40个引脚,其I/O口比PIC16F84A多,完全可以满足分时显示上述交通指示图案的要求。

  需要说明的是,我们在前面的连载文章中介绍C语言程序时,都是以18脚的PIC16F84A单片机为例的,通过本实例大家会看到,只要熟悉了PIC16F84A.会很容易掌握其他多引脚PIC单片机的使用方法的。

  由于PIC单片机I/O端口每一位的输出电流有限,即≤20mA,且PORTA、PORTB和PORTE口输出电流的总和不得大于200mA,PORTC和PORTD口输出电流的总和亦不得大干200mA,而从图57可以看出,PIC16F877单片机的PORTB的PBO~PB7口和PCO、PC1口外接的高亮度LED从十余只到数十只不等,所以对于所有外接有高亮度LED的I/O口,我们都增加了功率管输出驱动接口电路,且外接高亮度LED数量不同(即电流大小的不同),驱动电路亦有所不同。

  (2)PIC16F877端口功能位分配
  
  ①管理手掌形红色高亮LED指示灯的端口位
  
  利用PIC16F877的RBO位,外接单向可控硅SCRl(2A)和多个红色高亮LED(通过布线使多个LED组成图55a所示的手掌图形),采用静止显示方式。通常,组成交通灯的手掌图形大约需要60只~70只LED,在我们的设计中.RBO口外接的SCR1回路可接多达100只高亮LED.足以满足设计要求。而RB1位则外接一只PNP型功率三极管V1(2A)和限流电阻RO、偏置电阻Rl,组成+24V开关电路,由C程序控制RBO口和RB1口同步定时工作,通过V1的导通或截止来控制是否为SCR1提供+24V工作电压,从而达到令SCR1回路中的红色高亮LED定时点亮或关闭的目的。

  ②管理仿人形绿色高亮LED指示灯的端口位
  
  利用PIC16F877的RB2位,外接单向可控硅SCR2(2A)和多个红色高亮LED(通过布线使多个LED组成图55b所示的仿人形图形),采用静止显示方式。组成该图形大约需要70只LED。而RB3位则外接一只PNP型功率三极管V2(2A)和电阻R2、R3,组成+24V开关电路。

  该电路的工作模式与前面介绍的手掌形指示灯完全相似,此处不再赘述。

  ⑨管理仿自行车形绿色高亮LED指示灯的端口位
  
  利用RCO、RC1~RC7位,外接NPN型功率三极管V5~V12和若干绿色高亮LED(通过布线使之组成图55c所示的可控制自行车动态显示的图形。该电路工作时,通过控制排列在自行车车轮上的LED分时亮灭,来使人看到好象自行车在转动似的图像,以提示人或非机动车可以通行。

  ④管理圆形绿色高亮LED的端口位
  
  利用RB4和RB5外接的单向可控硅SCR3及V3等相关电路,控制如下右图所示的绿色高亮LED圆形指示灯,以提示运行机动车通行。

  ⑤管理圆形红色高亮LED的端口位
  
  利用RB6和RB7外接的单向可控硅SCR4及V4等相关电路,控制如下右图所示的红色高亮LED圆形指示灯,以提示禁止机动车通行。

  需要说明的是,下右图中的圆形图案是红、绿灯共用的。布线时,应将红、绿色高亮LED相间排列,利用C语言程序,控制红、绿灯LED分时显示即可。

  上述各I/O口的工作,全部受软件(C语言程序)控制。由程序按照各交通路口的规范,控制各高亮LED指示灯图案分时工作,使交通路口的行人、车辆安全有序地通行。

  2.C语言程序流程图和C程序
  
  按照硬件电路,我们可以绘制出城市交通路口直行方向的红、绿灯显示C语言程序流程如下图所示。横行方向的红、绿灯显示C语言程序流程与之相同。此流程图可为大家编辑C语言程序提供思路。

7482111

  根据流程图编辑的交通路口红绿灯管理C程序清单如下(程序名pic08.c):

  说明:上述交通路口红、绿灯C程序,是观察到交通路口的红绿灯图案,编辑该程序的目的,是帮助大家学习C语言程序。对于程序中的延时函数值,可以根据需要进行调整,以将其用于其他C程序中,作为可任意改变时间的延时函数值。




本文关键字:单片机  红绿灯  十字路口  交通控制指示应用领域 - 交通控制指示