交通灯课程设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录

1 设计方案 (1)

1.1 技术要求 (1)

1.2 方案原理图及其说明 (2)

2设计总体框图 (3)

3. 设计单元电路 (3)

3.1 单片机芯片AT89C51 (3)

3.2 数码管芯片7seg-mpx2-ca (5)

4 电路原理说明 (6)

4.1 主程序框图 (6)

4.2 程序说明 (7)

4.2.1 初始化程序 (7)

4.2.2 交通灯点亮程序 (7)

4.2.3 显示中断程序 (8)

4.2.4 一秒控制中断程序 (8)

4.2.5 紧急中断程序 (9)

4.2.6 等待时间加一中断程序 (9)

5 设计心得 (9)

6 参考文献 (10)

附录 (11)

附录一:调试报告......................................... 错误!未定义书签。附录二:元器件清单. (11)

模拟交通指示灯的控制

1 设计方案

1.1 技术要求

虽然本次课程设计的要求是设计东南两个方向的指示灯转换情况,但实际生活中通常遇到东南西北四个路口的指示灯,为了使本次课设更贴近生活,我加深了难度,不仅设计四个路口,而且还增加了等待时间数码管和遇到各种紧急情况时的按键。

此方案总体分为三个模块:交通灯转换模块、时间显示模块和一秒时间控制模块。现分别叙述如下:

交通灯转换模块:本次设计最初只要求设计东南两个方向的指示灯,如果要增加西北两个方向指示灯,不能只是进行简单的对称增加并同步运行,比方说不能东南两个方向同时允许左拐。所以在设计上我进行了六种状态的轮换,如下图所示:

图1 交通灯轮换图

时间显示模块:由于有四路指示灯,所以需要四个数码管来对等待时间进行显示,每个数码管都是十位数,可以选用7-seg-mpx2-ca ,此数码管是共阳极的,是高电平点亮。

一秒时间控制模块:此模块通过89c51内部的定时器/计数器来精确对一秒时间进行判断,然后判断红绿灯或者数码管是否切换。

除了上述三个模块外,另外还有人行道的红绿灯模块和基于中断的控制模块,红绿灯模块通过硬件电路实现,控制模块通过中断来实现。

1.2 方案原理图及其说明

图2方案原理图

1)正常运行时

首先进入主程序,提取存储在寄存器里面的时间值,进行倒计时预置数,通过秒脉冲源给倒计数器发送秒脉冲,倒计时器开始倒计时,驱动时间显示器显示,并且交通灯也正常运行,当倒计时器计到0时,自动进入到下一个寄存器并提取时间值,同时控制和改变交通灯的显示……如此往复循环。

2)紧急情况时

当按下紧急开关时,倒计时器一直处于清零状态,车辆通行的交通灯四个方向的红灯以及人行道红灯同时亮起。并且在紧急情况过后拨回开关即能恢复正常时的最后状态。

如果路口灯出现不正确显示时,按一下初始化按钮,可以对系统进行初始化操作,所有状态全部复位。另外还有一个对路灯延时的操作,它可以对数码管显示进行加一,并对交通灯延时一秒。

2设计总体框图

图3 设计总体框图

3. 设计单元电路

3.1 单片机芯片AT89C51

在设计之中选取的是C51芯片,芯片包含有一个8位CPU;一个片内振荡器及时钟电路;4KB ROM程序存储器;128B RAM数据存储器;可寻址64KB外部数据存储器和64KB外部程序存储空间的控制电路;32条可编程的I/O线(4个8位并行I/O端口);两个16位的定时/计数器;一个可编程全双工串行口;5个中断源、两个优先级嵌套终端结构。芯片如下图:

图4 单片机芯片AT89C51

AT89C51单片机为40引脚芯片如图2-3所示。

图5 AT89C51引脚图

①I/O口线: P0、P1、P2、P3共四个八位P0口是三态双向口, 通称数据总线口, 因为只有该口能直接用于对外部存储器的读ˆ写操作。P0口也用以输出外部存储器的低8位地

址。由于是分时输出, 故应在外部加锁存器将此地址数据锁存, 地址锁存信号用ALE。P1口是专门供用户使用的I/O口, 是准双向口。P2口是从系统扩展时作高8位地址线用。不扩展外部存储器时, P口也可P2口也是准双向口。P3口是双功能口, 该口的每一位均可独立地定义为第一I/O 功能或第二I/O功能。作为第一功能使用时操作同P1口。

P3口的第二功能如表2-1。

②控制口线: PSEN (片外取控制)、AL E( 地址锁存控制)、EA (片外储器选择)、RE2SET (复位控制) ;

③电源及时钟: CCC、VSS; XTAL 1, XTAL 2

3.2 数码管芯片7seg-mpx2-ca

LED数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,根据LED数码管的驱动方式的不同,可以分为静态式和动态式两类。

A、静态显示驱动:

静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O埠进行驱动,或者使用如BCD码二-十进位*器*进行驱动。

B、动态显示驱动:

动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp "的同名端连在一起,另外为每个数码管的公共极COM增加位元选通控制电路,位元选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位元选通COM端电路的控制。这里选择的是由四个数码管7seg-mpx2-ca,7seg示七段数码管,mpx2-表示是两位,ca是表示共阳极。其芯片如图所示

图6 7seg-mpx2-ca 芯片图4 电路原理说明

4.1 主程序框图

开始

设置定时,设置中断

东南红灯亮,西绿灯亮,北黄灯亮

东西绿灯亮,南北红灯亮

西北红灯亮,东绿灯亮,南黄灯亮

西南红灯亮,北绿灯亮,东黄灯亮

南北绿灯亮,东西红灯亮

东北红灯亮,西绿灯亮,南黄灯亮

图7 主程序框图

相关文档
最新文档