1、交通灯系统设计 0 0 引言引言 交通在人们日常生活中占有重要的地位,交通信号灯的出现,使交通得以有效管制,对 于疏导交通流量、 提高道路通行能力, 减少交通事故有明显效果。 本系统采用单片机 AT89S52 为中心器件来设计交通灯控制器,系统实用性强、操作简单、扩展性强。本设计就是采用单 片机模拟十字路口交通灯的各种状态显示以及倒计时时间。 1 1 系统基本组成及工作原理系统基本组成及工作原理 1.1 1.1 系统基本组成系统基本组成 系统以 AT89C51 作为控制交通灯系统的核心,分为数码管显示,模拟交通信号灯显示, 外接石英晶体和微调电容,复位电路四部分,总体设计结构如图 1 所示。其
2、中数码管显示部 分包含了东西向和南北向各一个数码管, 以及用于驱动数码管显示的 74LS14 和 74LS245 等。 交通信号灯部分包含了 12 个发光二极管和 12 个 0.1K 电阻。外接石英晶体采用的是一个 12MHZ 的晶振和两个 22uF 电容,用于为内部时钟电路提供脉冲。复位电路部分采用的是微 分型复位电路。 图 1:总体设计结构图 1.2 1.2 系统工作原理系统工作原理 两个数码管分别作为南北向和东西向的倒计时显示数码管, 四个方向, 每个方向均有红 色,绿色,黄色发光二级管各一个。开始是东西向禁行,南北向通行,因此东西向亮红灯, 南北向亮绿灯,同时东西向数码管开始 25 秒
3、倒计时,南北向开始 30 秒倒计时。当东西向数 码管倒数到 0 时, 此时南北向数码管恰好倒数到 5 秒, 接下来两个数码管同时进行 4 秒倒数, 同时南北向绿灯灭,黄灯闪烁,东西向依旧红灯,代表南北向即将进入禁行状态。待两个数 码管均倒数到 0 以后,此时交通灯切换,变成东西向绿灯,南北向红灯,同时东西向数码管 进行 30 秒倒计时,南北向数码管进行 25 秒倒计时。同样是待南北向数码管倒数到 0 时,两 数码管同时进行 4 秒倒计时,同时东西向绿灯熄灭,黄灯闪烁,南北向依旧红灯,代表东西 向即将进入禁行状态。以此过程为一周期,周而复始的运行。 2 2 系统硬件设计系统硬件设计 2.1 2.
4、1 数码管显示数码管显示电路设计电路设计 利用单片机的 P0 口作为两个两位数码管的段选口,P2.0,P2.1 作为南北向两位数码管 的位选口,P2.6,P2.7 作为东西向两位数码管的位选口。为了点亮数码管,P0 口还需加上上 A T89C51 数码管显示 信号灯显示 晶振 复位电路 拉电阻,同时驱动数码管显示还得加上 74LS14 和 74LS245 以及 10k 排阻。4 个 74LS14 分 别连到数码管的位选端,74LS245 和排阻相连,两边分别连到 P0 口和数码管的段选口。电 路图如图 2 所示: 图 2:数码管显示模块电路图 2.22.2 复位电路复位电路 i=u%10; /
5、暂存个位 P0=led_seg_codei; P2=0x80; delay(5); /延时 P0=0;/数码管灯灭 i=u%100/10; /暂存十位 P0=led_seg_codei; P2=0x40; delay(5); /延时 P0=0; i=v%10; /暂存个位 P0=led_seg_codei; P2=0x01; delay(5); /延时 P0=0; i=v%100/10; /暂存十位 P0=led_seg_codei; P2=0x02; delay(5); /延时 P0=0; 图 6:数码管显示模块框图 查询东西向记数值u 将 u 对 10 求余 东西向数码管个位段选开,并且显
6、示数值 将 u 对 100 求余再除 10 东西向数码管十位段选开, 并且显示数值 短暂延时,熄灭数码管 短暂延时, 熄灭数码管 查询南北向记数值 v 南北向数码管个位段选开,并且显示数值 将 u 除 10 取余 短暂延时,熄灭数码管 南北向数码管十位段选开,并且显示数值 将 v 对 100 求余再除 10 短暂延时,熄灭数码管 3.2.23.2.2 中断中断 / 设置定时器初值(定时 50ms) TL0 = 0xb0; T0_cnt+; if(T0_cnt=20) /如果计数=20, 计时 1s T0_cnt=0; if (cnt_sn!=0) /南北方向计时 cnt_sn-; else state_val_sn+; 初始化 Case1: 南 北 向 黄 灯闪。 Case1: 东西向 绿灯 亮,数 码管 29 秒倒计 时开始 Case2: 东西向 黄灯 闪。 T0 计数自加 1 将 T0 计数清零 根据南北向状态值来确定南北向交 通信号灯显示和计时状态 南北 向计 时减