十字路口交通信号灯控制电路设计(单片机)

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

毕业设计说明书(论文)
课题名称
交通信号灯控制电路设计(单片机)
航空电子设备维修专业081331班
学生姓名张辉学号28
指导老师贺国灿技术职称______________ 2011年3月16日
毕业设计(论文)任务书
学生姓名:张辉班级:081331
1.毕业设计(论文)题目:
交通信号灯控制电路设计(单片机)
2.毕业设计(论文)使用的原始资料数据及设计技术要求:单片机应用系统设计
1、单片机实验与实践教程
2、MCS-51系列单片机实用接口技术
3、单片机课程设计指导
4、单片机典型模块设计实例导航
交通管理先进性、科学化. 分析应用单片机实现智能交通灯管制的控制系统,以及该系统软、硬件设计方法,系统实现要求简单、经济,能够有效地疏导交通,提高交通路口的通行能力.
3.毕业设计(论文)工作内容及完成时间:
设计前要先对各部分电路设计方案进行选择,本章对采用哪种方案及如何选择芯片做出了具体的说明,并最终给出了总体框图和设计思路。

(1)单片机基本系统电路设计;
(2)显示、按键电路设计;
(3)电源电路设计;(系统电源为+5v)
(4)软件设计。

日期:自2010年12月25日至2011年3月16日
指导老师评语:
________________________________________________________________________________ ________________________________________________________________________________ ________________________________________________________________________________ ________________________________________
指导老师:贺国灿系主任:姚卫华
目录
摘要 (1)
关键词: (1)
一、课题研究的主要内容 (2)
二、本论文主要工作 (2)
三、总体方案设计 (3)
3.1、本课题研究主要内容 (3)
3.2、本课题的设计思路 (3)
3.3、总体方案组成和说明 (4)
四、硬件电路设计及描述 (4)
4.1、 AT89S51单片机简介 (4)
4.2、AT89S51芯片内部结构简介 (5)
4.3、主要引脚功能 (6)
4.4、按键接口电路的设计 (8)
4.5、指示电路的设计 (9)
4.6、显示电路的设计 (10)
4.7、电源电路设计 (11)
五、软件设计 (12)
5.1、软件流程图 (12)
5.2、按键扫描处理子程序的设计 (13)
软件程序清单 (14)
总原理图 (25)
原件清单 (25)
总结 (26)
参考文献 (27)
致谢 (28)
摘要
在今天,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。

目前,大部分城市的十字路口的交通控制灯,通常的做法是:事先经过车辆流量的调查,利用传统的方法设计好红绿灯的延时,然而,实际上的车流量是不断变化的,有的路口在不同的时间段车流量的大小甚至有很大的差异,所以说,统计的方法己不能适应迅速发展的交通现状。

交通信号灯在科学化、自动化上不断地更新、发展和完善。

但是,随着
社会的不断进步,传统的交通灯的缺陷也日益出现,其中设计过于死板,达
不到道路的最大通行效率是最明显的问题,红绿灯交替变换时间过于程式
化。

国内的交通灯一般设在十字路门,在醒目位置用红、绿、黄三种颜色的指
示灯。

加上一个倒计时的显示计时器来控制行车。

对于一般情况下的安全行车,
车辆分流尚能发挥作用,但根据实际行车过程中出现的情况,还存在以下缺点:
1.两车道的车辆轮流放行时间相同且固定,在十字路口,经常一个车道为主干道,车辆较多,放行时间应该长些;另一车道为副干道,车辆较少,放行时间应该短些。

2.没有考虑紧急车通过时,两车道应采取的措施,臂如,消防车执行紧急任务通过时,两车道的车都应停止,让紧急车通过。

基于传统交通灯控制系统设计过于死板,红绿灯交替是间过于程式化的缺点,智能交通灯控制系统的设计就更显示出了它的研究意义,它能根据道路交通拥护,交叉路口经常出现拥堵的情况。

利用单片机控制技术.提出了软件和硬件设计方案,能够实现道路的最大通行效率。

关键词:交通灯单片机AT89S51
一、课题研究的主要内容
国内的交通灯一般设在十字路门,在醒目位置用红、绿、黄三种颜色的指示灯。

加上一个倒计时的显示计时器来控制行车。

对于一般情况下的安全行车,车辆分流尚能发挥作用,但根据实际行车过程中出现的情况,还存在以下缺点:1.两车道的车辆轮流放行时间相同且固定,在十字路口,经常一个车道为主干道,车辆较多,放行时间应该长些;另一车道为副干道,车辆较少,放行时间应该短些。

2.没有考虑紧急车通过时,两车道应采取的措施,臂如,消防车执行紧急任务通过时,两车道的车都应停止,让紧急车通过。

基于传统交通灯控制系统设计过于死板,红绿灯交替是间过于程式化的缺点,智能交通灯控制系统的设计就更显示出了它的研究意义,它能根据道路交通拥护,交叉路口经常出现拥堵的情况。

利用单片机控制技术.提出了软件和硬件设计方案,能够实现道路的最大通行效率。

二、本论文主要工作
本文为了实现交通道路的管理,力求交通管理先进性、科学化. 分析应用了单片机实现智能交通灯管制的控制系统,以及该系统软、硬件设计方法,实验证明该系统实现简单、经济,能够有效地疏导交通,提高交通路口的通行能力.
首先对智能交通灯的研究意义和智能交通灯的研究现状进行了分析,指出了现状交通灯存在的缺点,并提出了改进方法。

智能交通灯控制系统通常要实现自动控制和在紧急情况下能够手动切换信号灯让特殊车辆优先通行。

本文还对AT89S51单片机的结构特点和重要引脚功能进行了介绍,同时对智能交通灯控制系统的设计进行了详细的分析。

针对以上要求,着重要完成以下几个方面的工作:
对于系统的硬件设计,主要包括:
(1)单片机基本系统电路设计;
(2)显示、按键电路设计;
(3)电源电路设计;
对于系统的软件设计,主要包括:
(1)系统主程序的设计;
(2)系统几个中断子程序的设计;
(3)系统软件流程图;
针对本次设计中所存在的问题,提出部分改进意见和下一步所要研究的目标。

三、总体方案设计
本设计的重点是交通灯的现实电路的设计,另外还包含了单片机的最小系统,电源电路以及设计的核心单元单片机。

在设计前要先对各部分电路设计方案进行选择,本章对采用哪种方案及如何选择芯片做出了具体的说明,并最终给出了总体框图和设计思路。

3.1、本课题研究主要内容
(1)单片机基本系统电路设计;
(2)显示、按键电路设计;
(3)电源电路设计;(系统电源为+5v)
(4)软件设计。

3.2、本课题的设计思路
交叉字路口是城市交通运输的咽喉,如何使各种交通流顺畅地通过是城市交通信号控制系统成功与否的关键。

随着现代城市的发展,交通流量的增加,现在的大中城市都以六车道居多,本方案即以六车道为控制对象,其结构如图1所示:
图1 交叉路口结构图
本设计主要是关于交通灯的智能控制,车辆行驶时共有直行、左转、右转三个方向,通过数码管对倒计时间的显示和红、绿、黄三色灯的指示,以达到交通顺畅通行的目的。

同时,可以通过按键来控制倒计时的长短,实现智能控制人流高峰和低谷时,交通灯运行的状态。

单片机的特点:
(1)控制系统在线作用。

单片机的控制作用可分为两个方面:一是离线控制,二是在线控制。

(2)软硬件结合。

单片机的引入使控制系统大大“软化”,相比其他计算机应用问题,单片机控制应用中的硬件内容较多,所以单片机控制应用有软硬结
合的特点。

(3)应用现场环境恶劣。

通常单片机应用现场的环境比较恶劣,电磁干扰、电源波动、冲击振动、高低温等因素都会影响系统的工作的稳定。

综上所述,单片机的稳定性,可靠性都有着很好的保证,它也具有一定的精度,且低电压、低功耗。

从经济方面考虑,也最为合适。

所以此次设计选用
单片机为核心控制器。

在本系统的开发和设计中,选择ATMEL 公司的AT89S51
单片机最合适。

3.3、总体方案组成和说明
单片机模块是整个系统的核心部分,在这样一个模拟交通灯系统中,需要有时钟电路模块提供基准震荡频率以及单片机基本系统、指示电路、显示电路、
键盘电路、电源电路、下载线电路设计。

四、硬件电路设计及描述
4.1、 AT89S51单片机简介
AT89S51是美国ATMEL公司生产的低功耗,高性能CMOS8位单片机,片内含4k bytes的可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高
密度、非易失性存储技术生产,兼容标准8051指令系统及引脚。

它集Flash程
序存储器既可在线编程(ISP)也可用传统方法进行编程及通用8位微处理器
于单片芯片中,ATMEL公司的功能强大,低价位AT89S51单片机可为您提供许
多高性价比的应用场合,可灵活应用于各种控制领域。

4.2、AT89S51芯片内部结构简介
·中央处理器:
中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的
工作,完成运算和控制输入输出功能等操作。

·数据存储器(内部RAM):
数据存储器用于存放变化的数据。

AT89S51中数据存储器的地址空间为256个RAM单元,但其中能作为数据存储器供用户使用的仅有前面128个,后128
个被专用寄存器占用。

·程序存储器(内部ROM):
程序存储器用于存放程序和固定不变的常数等。

通常采用只读存储器,且其又多种类型,在89系列单片机中全部采用闪存。

AT89S51内部配置了4KB闪存。

·定时/计数器(ROM):
定时/计数器用于实现定时和计数功能。

AT89S51共有2个16位定时/计数器。

·并行输入输出(I/O)口:
AT89S51共有4组8位I/O口(P0、P1、P2或P3),用于对外部数据的传输。

每个口都由1个锁存器和一个驱动器组成。

它们主要用于实现与外部设备中数
据的并行输入与输出,有些I/O口还有其他功能。

·全双工串行口:
A89S51内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。

·时钟电路:
时钟电路的作用是产生单片机工作所需要的时钟脉冲序列。

·中断系统:
中断系统的作用主要是对外部或内部的终端请求进行管理与处理。

AT89S51共有5个中断源,其中又2个外部中断源和3个内部中断源。

AT89S51的内部结构图如下图2所示:
图2
4.3、主要引脚功能
·P0口:P0口是一组8位漏极开路型双向I/0口,也即地址/数据总线复用口。

作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写“l”可作为高阻抗输入端用。

在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。

·P1口:Pl 是一个带内部上拉电阻的8位双向I/O口,Pl的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

对端口写“l”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。

作输入口使用时,某个引脚被外部信号拉低时会输出一个电流。

Flash编程和程序校验期间,Pl接收低8位地址。

如下表1所示:
表一
·P2 口:P2 是一个带有内部上拉电阻的8 位双向I/O 口,P2 的输出缓冲级可驱动(吸收或输出电流)4 个TTL逻辑门电路。

对端口写“1”,通过内部
的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL )。

在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX @DPTR 指令)时,P2口送出高8位地址数据。

在访问8 位地址的外部数据存储器(如执行MOVX @Ri 指令)时,P2 口线上的内容(也即特殊功能寄存器(SFR )区中P2寄存器的内容),在整个访问期间不改变。

Flash 编程或校验时,P2亦接收高位地址和其它控制信号。

·P3 口:P3 口是一组带有内部上拉电阻的8 位双向I /0 口。

P3 口输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。

对P3口写入“l”时,它们被内部上拉电阻拉高并可作为输入端口。

作输入端时,被外部拉低的P3口将用上拉电阻输出电流(IIL )。

P3口除了作为一般的I /0口线外,更重要的用途是它的第二功能,如下表2所示:
表二
P3口还接收一些用于Flash 闪速存储器编程和程序校验的控制信号。

·RST :复位输入。

当振荡器工作时,RST 引脚出现两个机器周期以上高电平将使单片机复位。

WDT 溢出将使该引脚输出高电平,设置SFR AUXR 的DISRT0 位(地址8EH )可打开或关闭该功能。

DISRT0位缺省为RESET 输出高电平打开状态。

·ALE /PROG ————
:当访问外部程序存储器或数据存储器时,ALE (地址锁存允许)输出脉冲用于锁存地址的低8位字节。

即使不访问外部存储器,ALE 仍以
时钟振荡频率的1/6 输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。

要注意的是:每当访问外部数据存储器时将跳过一个ALE 脉冲。

对F1ash 存储器编程期间,该引脚还用于输入编程脉冲(PROG )。

如有必要,可通过对特殊功能寄存器(SFR )区中的8EH 单元的D0 位置位,可禁止ALE 操作。

该位置位后,只有一条M0VX 和M0VC 指令ALE 才会被激活。

此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE 无效。

·PSEN ————程序储存允许(PSEN ————
)输出是外部程序存储器的读选通信号,当AT89C51 由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN ————有效,即输出两个脉冲。

当访问外部数据存储器,没有两次有效的PSEN ————信号。

4.4、按键接口电路的设计
单片机使用的键盘分为独立式和矩阵式两种。

一:矩阵式键盘适用于按键数量较多的场合,它有行线和列线组成,按键位于行、列的交叉点上。

行、列线分别连接到按键开关的两端,而有键按下时,行线电平状态将由与此行线相连的列线电平决定,列线电平如果为低,则行线电平为低;反之,则为高。

矩阵式键盘各按键彼此将相互发生影响,所以必须将行、列线信号配合起来并作适当的处理,才能确定闭合键的位置。

二:矩阵式键盘也称行列式键盘,因为键的数目较多,所以键按行列组成矩阵。

独立式键盘就是各按键相互独立,每个按键各接一根输入线,一根输入线上的按键工作状态不会影响其他输入线上的工作状态。

独立式按键电路配置灵活,软件结构简单。

但每个按键需占用一根输入口线,此种按键电路适用于按键较少或操作速度教高的场合独立式实际上就是一组相互独立的按键,这些按键可直接与单片机的I/O 口连接,连接方法就是每个按键独立一条口线,各按键之间状态不会影响且接口简单。

考虑到这个控制器中,设定的按键不多,为了使系统简单明了,在这里选择独立式按键。

如图3所示:
*[SET]键用来设置倒计时时间,
*[SELECT]用来选择“+”“—”。

图3
4.5、指示电路的设计
指示很简单,采用LED(发光二极管),考虑到单片机端口常态是高电平,设计采用低电平点亮发光管,如图4所示。

I/O口的灌电流最大30mA左右,假设每根线20mA,S系列都低于20mA,假设单个发光管耐压2V(不同的管子不同,相差不多),系统采用5V供电。

实际选择200Ω,实验发现发光二极管显示正常。

通过程序来控制指示灯红、绿、黄的通断来模拟交通灯的指示作用。

其电路图如图4所示。

图4
4.6、显示电路的设计
数码管显示电路有多种方式,按照数据传输方式有两种:并行形式和串行形式,下面针对两种方式进行说明。

本设计采用单片机设计,由于口线不足,而需要多位数码管显示,因此,为了更大的利用资源,节省地址线,本设计采用74LS164串行形式来控制数码管显示。

74LS164是8位移位寄存器,采用串行输入,并行输出, 当清除端(CLEAR)为低电平时,输出端(QA-QH)均为低电平。

串行数据输入端(A,B)可控制数据。

当A、B 任意一个为低电平,则禁止新数据输入,在时钟端(CLOCK)脉冲上升沿作用下Q0 为低电平。

当A、B 有一个为高电平,则另一个就允许输入数据,并在CLOCK 上升沿作用下决定Q0 的状态。

其真值表如表3所示:
表3
单片机接口电路硬件连接图如图5所示:
图5
4.7、电源电路设计
本设计对电源部分的要求不是太高,因此对于电源的设计就是普通的5V电源,利用了典型的三端稳压管7805,来得到5V的直流稳压电源用于给整个系统几各个芯片供电。

其电路原理图形如图6下:
图6
五、软件设计
5.1、软件流程图
按交通灯的功能,系统程序必须具备按键扫描处理、实时数码管显示等任务。

系统在上电复位后,先对档位寄存器赋默认值,并进行清除超时标志位,设置定时器及中断系统的工作方式等初始化工作。

如图7所示:
5.2、按键扫描处理子程序的设计
按键扫描处理子程序负责设置东西、南北走向的等待时间按,若有键按下,则作出相应处理。

图8所示为按键扫描子程序流程图。

图8
软件程序清单SECOND1 EQU 30H ;东西路口计时寄存器SECOND2 EQU 31H ;南北路口计时寄存器DBUF EQU 40H ;显示码缓冲区1
TEMP EQU 44H ;显示码缓冲区2
KEY_SET BIT P3.2 ;按键定义
KEY_SET1 BIT P3.3 ;按键定义
LED_G1 BIT P2.1 ;东西路口绿灯
LED_Y1 BIT P2.2 ;东西路口黄灯
LED_R1 BIT P2.3 ;东西路口红灯
LED_G2 BIT P2.4 ;南北路口绿灯
LED_Y2 BIT P2.5 ;南北路口黄灯
LED_R2 BIT P2.6 ;南北路口红灯
ORG 0000H
LJMP START
ORG 0003H
LJMP INT_INT0
ORG 0100H
START: MOV TMOD,#01H ;置T0为工作方式1 MOV TH0,#3CH ;置T0定时初值50ms
MOV TL0,#0B0H
SETB EA ;开总中断
SETB EX0 ;外中断0允许
CLR TF0
SETB TR0 ;启动T0
CLR A
MOV P1,A ;关闭不相关的LED
;*************************************
LOOP: MOV R2,#20 ;置1s计数初值,50ms*20=1s
MOV R3,#20 ;红灯亮20s
MOV SECOND1,#25 ;东西路口计时显示初值25s
MOV SECOND2,#25 ;南北路口计时显示初值25s
LCALL DISPLAY
LCALL STATE1 ;调用状态1
W AIT1: JNB TF0,W AIT1 ;查询50ms到否CLR TF0
MOV TH0,#3CH ;恢复T0定时初值50ms
MOV TL0,#0B0H
DJNZ R2,W AIT1 ;判断1s到否?未到继续状态1
MOV R2,#20 ;置50ms计数初值
DEC SECOND1 ;东西路口显示时间减1s
DEC SECOND2 ;南北路口显示时间减1s
LCALL DISPLAY
DJNZ R3,W AIT1 ;状态1维持20s
;******************************************* MOV R2,#5 ;置50ms计数初值5*4=20
MOV R3,#3 ;绿灯闪3s
MOV R4,#4 ;闪烁间隔200ms
MOV SECOND1,#5 ;东西路口计时显示初值5s
MOV SECOND2,#5 ;南北路口计时显示初值5s
LCALL DISPLAY
W AIT2: LCALL STATE2 ;调用状态2
JNB TF0,W AIT2 ;查询50ms到否
CLR TF0
MOV TH0,#3CH ;恢复T0定时初值50ms
MOV TL0,#0B0H
DJNZ R4,W AIT2 ;判断200ms到否?未到继续状态2 CPL LED_G1 ;东西绿灯闪
MOV R4,#4 ;闪烁间隔200ms
DJNZ R2,W AIT2 ;判1s到否?未到继续状态2
MOV R2,#5 ;置50ms计数初值
DEC SECOND1 ;东西路口显示时间减1s
DEC SECOND2 ;南北路口显示时间减1s
LCALL DISPLAY
DJNZ R3,W AIT2 ;状态2维持3s
;**************************************** MOV R2,#20 ;置50ms计数初值
MOV R3,#2 ;黄灯闪2s
MOV SECOND1,#2 ;东西路口计时显示初值2s
MOV SECOND2,#2 ;南北路口计时显示初值2s
LCALL DISPLAY
W AIT3: LCALL STATE3 ;调用状态3 JNB TF0,W AIT3 ;查询100ms到否
CLR TF0
MOV TH0,#3CH ;恢复T0定时初值100ms
MOV TL0,#0B0H
DJNZ R2,W AIT3 ;判断1s到否?未到继续状态3 MOV R2,#20 ;置100ms计数初值
DEC SECOND1 ;东西路口显示时间减1s
DEC SECOND2 ;南北路口显示时间减1s
LCALL DISPLAY
DJNZ R3,W AIT3 ;状态3维持2s
;******************************************* MOV R2,#20 ;置50ms计数初值
MOV R3,#20 ;红灯闪20s
MOV SECOND1,#25 ;东西路口计时显示初值25s MOV SECOND2,#25 ;南北路口计时显示初值25s
LCALL DISPLAY
W AIT4: LCALL STATE4 ;调用状态4
JNB TF0,W AIT4 ;查询100ms到否
CLR TF0
MOV TH0,#3CH ;恢复T0定时初值100ms
MOV TL0,#0B0H
DJNZ R2,W AIT4 ;判断1s到否?未到继续状态4
MOV R2,#20 ;置100ms计数初值
DEC SECOND1 ;东西路口显示时间减1s
DEC SECOND2 ;南北路口显示时间减1s
LCALL DISPLAY
DJNZ R3,W AIT4 ;状态4维持20s
;******************************************* MOV R2,#5 ;置50ms计数初值
MOV R4,#4 ;红灯闪20ms
MOV R3,#3 ;绿灯闪3s
MOV SECOND1,#5 ;东西路口计时显示初值5s
MOV SECOND2,#5 ;南北路口计时显示初值5s
LCALL DISPLAY
W AIT5: LCALL STATE5 ;调用状态5
JNB TF0,W AIT5 ;查询100ms到否
CLR TF0
MOV TH0,#3CH ;恢复T0定时初值100ms
MOV TL0,#0B0H
DJNZ R4,W AIT5 ;判断200ms到否?未到继续状态5 CPL LED_G2 ;南北绿灯闪
MOV R4,#4 ;闪烁200ms
DJNZ R2,W AIT5 ;判断1s到否?未到继续状态5
MOV R2,#5 ;置100ms计数初值
DEC SECOND1 ;东西路口显示时间减1s
DEC SECOND2 ;南北路口显示时间减1s
LCALL DISPLAY
DJNZ R3,W AIT5 ;状态5维持3s
;**************************************** MOV R2,#20 ;置50ms计数初值
MOV R3,#2 ;红灯闪2s
MOV SECOND1,#2 ;东西路口计时显示初值2s
MOV SECOND2,#2 ;南北路口计时显示初值2s
LCALL DISPLAY
W AIT6: LCALL STATE6 ;调用状态6 JNB TF0,W AIT6 ;查询100ms到否
CLR TF0
MOV TH0,#3CH ;恢复T0定时初值100ms
MOV TL0,#0B0H
DJNZ R2,W AIT6 ;判断1s到否?未到继续状态6 MOV R2,#20 ;置100ms计数初值
DEC SECOND1 ;东西路口显示时间减1s
DEC SECOND2 ;南北路口显示时间减1s
LCALL DISPLAY
DJNZ R3,W AIT6 ;状态6维持2s
LJMP LOOP ;大循环
;*************************************
;;外中断处理程序,用来设置交通等待时间
;*************************************
INT_INT0: PUSH ACC
PUSH PSW
CLR E A
LOOP1: MOV A,P3
CJNE A,#0FFH,LP0 ;键盘去抖
JMP LOOP1
LP0: ACALL DELAY1
MOV A,P3
CJNE A,#0FFH,LP1
JMP LOOP1
LP1: JNB P3.2,SSET
JNB P3.3,SSET1
JMP INT_RETI
;设置东西走向的等待时间SSET: ACALL DELAY1
JNB P3.2,ET
JNB P3.3,SET1
JMP SSET
ET: I NC SECOND1
MOV A,SECOND1
CJNE A,#100,SSET
MOV SECOND1,#0
JMP SSET
SET1: JMP INT_RETI
;设置南北走向的等待时间
SSET1: ACALL DELAY1 JNB P3.2,INT_RETI
JNB P3.3,ETT1
JMP SSET1
ETT1: INC SECOND2
MOV A,SECOND1
CJNE A,#100,SSET1
MOV SECOND2,#0
JMP SSET1
INT_RETI: LCALL DISPLAY
SETB EA
SETB EX0
POP PSW
POP ACC
RETI
;********************************************** STATE1:;状态1
SETB LED_G1;东西路口绿灯亮
CLR LED_Y1
CLR LED_R1
CLR LED_G2
CLR LED_Y2
SETB LED_R2;南北路口红灯亮
RET
STATE2:;状态2
CLR LED_Y1
CLR LED_R1
CLR LED_G2
CLR LED_Y2
SETB LED_R2;南北路口红灯亮
RET
STATE3: ;状态3
CLR LED_G1
CLR LED_R1
CLR LED_G2
CLR LED_Y2
SETB LED_R2 ;南北路口红灯亮
SETB LED_Y1;东西路口绿灯亮RET
STATE4:;状态4
CLR LED_G1
CLR LED_Y1
SETB LED_R1;东西路口红灯亮SETB LED_G2;南北路口绿灯亮CLR LED_Y2
CLR LED_R2
RET
STATE5:;状态5
CLR LED_G1
CLR LED_Y1
SETB LED_R1;东西路口红灯亮CLR LED_Y2
CLR LED_R2
RET
STATE6: CLR LED_G1;状态6
CLR LED_Y1
SETB LED_R1;东西路口红灯亮CLR LED_G2
CLR LED_R2
SETB LED_Y2;南北路口红灯亮RET
DISPLAY:
MOV DBUF+1,A
MOV A,B
MOV DBUF,A
MOV R0,#DBUF
MOV R1,#TEMP
MOV R7,#4;数码显示
MOV A,SECOND1 ;东西路口计时寄存器
MOV B,#10 ;16进制数拆成两个10进制数DIV AB
MOV DBUF+3,A
MOV A,B
MOV DBUF+2,A
MOV A,SECOND2 ;南北路口计时寄存器
MOV B,#10 ;16进制数拆成两个10进制数DIV AB
DP10: MOV DPTR,#LEDMAP
MOV A,@R0
MOVC A,@A+DPTR
MOV @R1,A
INC R0
INC R1
DJNZ R7,DP10
MOV R0,#TEMP
MOV R1,#4
DP12: MOV R7,#8
MOV A,@R0
DP13: RLC A
MOV P3.0,C
CLR P3.1
SETB P3.1
DJNZ R7,DP13
INC R0
DJNZ R1,DP12
RET
DELAY1: MOV R3,#60
D2: MOV R4,#248
DJNZ R4,$
DJNZ R3,D2
RET
LEDMAP:
DB 3FH,06H,5BH,4FH,66H,6DH ;0,1,2,3,4,5 DB 7DH,07H,7FH,6FH,77H,7CH ;6,7,8,9,A,B DB 58H,5EH,7BH,71H,0,40H ;C,D,E,F,,-
END
总原理图
原件清单
单片机AT89S51一个
74LS164一片
两位数码管4个
晶体管(6M)一个
三极管4个
按钮两个
发光二极管红、绿、黄各四个
电容10uF、1000uF、470uF各一个
电阻2k八个、10k一个、470k一个、200欧6个、1k 两个
7805稳压电源一个(二极管五个,熔断器1个)
总结
毕业设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要体现,是对学生实际工作能力的具体训练和考察过程.随着科
学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在,因此作为二十一世纪的大学来说掌握单片机的开
发技是十分重要的。

回顾起此次单片机毕业设计,感慨颇多,不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。

通过这次毕业设计我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

在设计的过程中遇到了许许多多的问题,可以说得是困难重重,这毕竟是第一次做这种系统化的设计,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说对一些元器件还不能够灵活的使用,对单片机汇编语言编程掌握得不够深刻等。

为此我很感谢给予我很多指导的贺国灿老师还有帮助我解决困难的同学们!这次历经千辛的毕业设计真让我受益匪浅!
参考文献
[1]李华MCS-51系列单片机实用接口技术(第2版).北京航空航天大学出版社,2001.
[2]单片机实验与实践教程,北京航空航天大学出版社,何立民等2004年7月.
[3]求是科技.单片机典型模块设计实例导航(第2版).人民邮电出版社,2008.
[4]韩志军等编著.单片机应用系统设计[M].北京:机械工业出版社,2005.1.
[5]李广弟等编著.单片机基础[M].北京:北京航空航天大学出版社,2001.7.
[6]楼然苗,李光飞编著.单片机课程设计指导[M].北京: 北京航空航天大学出
版社,2007.7.
致谢
通过这次的毕业设计,让对单片机有了更深一层的了解,也体会了单片机在现实生活中的重要性。

在这次实习中,我能顺利完成交通灯的设计,要感谢授予我知识的老师和帮助我的同学们!我在设计中遇到的很多问题,都应该感谢贺国灿老师在理论方面的指导和同学的热心帮助,我才能顺利地完成,也让我学到了很多知识。

同时也要对帮助过我的同学表示谢意。

在以后的学习中,定会更加地努力,以更好的成绩去回报学校及老师的栽培。

28。

相关文档
最新文档