基于51单片机汇编语言设计的交通灯毕业论文设计

(此文档为word格式,下载后您可任意编辑修改!

)

交通灯的控制

摘 要:本设计以AT89C51单片机为主控模块,主要由按钮开关,数码管,发光二极管组成,利用汇编语言编写程序来模拟对十字路口的交通管理,系统包括左右拐,直行,人行道四个基本的交通等功能。南北方向亮绿灯60s,然后黄灯闪烁3次,每次一秒(亮灭各40ms),红灯40s,同时东西方向红灯65s,绿灯35s,黄灯闪烁3s。各路灯用LED模拟显示,同时用七段数码管显示两路的倒计时时间。利用键盘可修改灯亮时间PC机设置灯亮时间,利用PC与单片机串口通信实现 。为防止出现紧急情况(如119,110通过时),该系统还设置了中断,可通过按键使各个路口为红灯其它车辆禁行,特殊车辆通行的状态,当东西方向为通行状态时,南北方向有突发情况,也可通过手动按键使东西方向为红灯,南北方向为绿灯。

在对系统的分析基础上,提出了几种设计方案,经比较选择各方较好的LED动态循环显示方案进行设计,设计包括硬件和软件两大部分单片机最小系统,时间显示,交通等显示三部分。以AT89C51为控制核心,东西南北各设置3个交通灯,东西,南北方向各设置一个2位的数码管时间显示器,交通灯显示则采用红绿黄三色高亮发光二极管模拟,软件采用模块化的设计方法,主要分为主程序,定时中断服务子程序,倒计时显示子程序,交通灯模拟显示子程序。

软件设计完成,经过对该设计程序模拟测试,可实现对十字路口交通的良好管理,预期目标全部达到,该系统操作简单,实用性强,扩展功能好。

关键词:AT89C51 数码管 光二极管 中断 模拟

目录

1前言 ........................................................ 5

1.1该课程选题背景 ............................................ 5

1.2该课程选题现实意义 ......................................... 5

1.3单片机交通灯研究任务 ....................................... 5

2设计方案 .................................................... 6

2.1方案设计目的 .............................................. 6

2.2方案设计思路 .............................................. 6

2.3方案设计原理 .............................................. 7

3系统硬件设计 ................................................ 8

3.1 AT89C51芯片简介........................................... 8

3.2 74LS47芯片简介 .......................................... 11

3.3系统总框图 ............................................... 12

3.4、交通灯硬件线路 .......................................... 12

3.5、系统工作原理 ............................................ 12

4.软件设计 .................................................. 13

4.1每秒钟的设定 ............................................. 13

4.2秒的方法 .................................................

4.3相应程序代码 .............................................

4.4、键盘显示流程图 ..........................................

4.5、 软件延时 ............................................... 5 Proteus软件仿真 ...........................................

5.1正常运行时状态 ...........................................

5.2黄灯亮时状态 .............................................

5.3应急情况下状态 ........................................... 6 设计心得体会 ............................................... 附录1:源程序代码 ........................................... 附录2:硬件连接图 ........................................... 参考文献 .....................................................

13 13 14 14 15 15 16 16 17 18 23 23

1前言

1.1单片机交通控制系统的选题背景

世界上第一盏正式投入使用的交通信号灯出现在1868年12月10日,这盏身高7米,由德哈特设计的红绿两色煤气灯出现在议会大厦前的十字路口。一位警察手持长杆牵动皮带转换红绿两色:红灯停,绿灯行。

随着人口快速的增多,交通工具的爆炸性的发展,以及道路资源的有限性,交通控制就应运而生,在人类的生活、工作环境中,交通扮演着极其重要的角色,人们的出行都无时不刻与交通打着交道。自18世纪工业革命以来,工业发展带动整个交通运输的发展,从而催生了单独的交通控制学问与管理机构。

道路交通信号灯是交通安全产品中的一个类别,是为了加强道路交通管理,减少交通事故的发生,提高道路使用效率,改善交通状况的一种重要工具。适用于十字、丁字等交叉路口,由道路交通信号控制机控制,指导车辆和行人安全有序地通行。

1.2 单片机交通控制系统选题的现实意义

城市道路交通自动控制系统的发展是以城市交通信号控制技术为前导,与汽车工业并行发展的。在其各个发展阶段,由于交通的各种矛盾不断出现,人们总是尽可能地把各个历史阶段当时的最新科技成果应用到交通自动控制中来,从而促进了交通自动控制技术的不断发展。

交通网络是城市的动脉,象征着一个城市的工业文明水平。交通关系着人们对于财产,安全和时间相关的利益。具有优良科学的交通控制技术对资源物流和人们出行都是十分有价值的,保证交通线路的畅通安全,才能保证出行舒畅,物流准时到位,甚至是生命通道的延伸。

1.3单片机交通控制系统主要研究的内容

基于整个交通控制系统的发展情况,本设计主要进行如下方面的研究:用智能,集成,且功能强大的单片机芯片为控制中心,设计出一套十字路口的交通控制系统,以指挥该路口的实时通行状态。

本设计主要做了如下几方面的工作:

一是确定系统交通控制的总体设计,包括十字路口具体的通行禁行方案设计以及系统应拥有的各项功能,在这里,本设计除了有信号灯状态控制能实现基本的交通功能,还增加了倒计时显示提示,基于实际情况,又要求了对车流量检测及自调整模拟功能,违规检测及处理,紧急状况处理。

二是进行智能传感器的硬件电路,显示电路等的设计对各器件的选择及连接,大 体分配各个器件及模块的基本功能要求。

2方案设计

2.1课程设计目的

2.1.1巩固和加深对单片机原理和接口技术知识的理解;

2.1.2培养根据课题需要选学参考书籍、查阅手册和文献资料的能力;

2.1.4掌握常用仪器、仪表的正确使用方法,学会软、硬件的设计和调试方

法;

2.1.5能按课程设计的要求编写课程设计报告,能正确反映设计和实验成果,

能用计算机绘制电路图和流程图。

2.1.6通过单片机课程设计,熟练掌握汇编语言的编程方法,将理论联系到

实践中去,提高我们的动脑和动手的能力。

2.1.7通过交通信号灯控制系统的设计,掌握定时计数器及中断的使用方法,

和简单程序的编写,最终提高我们的逻辑抽象能力。

2.2设计思路

2.3设计原理

1、首先了解实际交通灯的变化情况和规律。假设一个十字路口如上图所以,为东南西北走向。初始状态0为东西南北都红灯亮。然后转状态1东西红灯亮,南北绿灯亮通行。过一段时间后,转状态2,黄灯亮,东西红灯灭,南北绿灯灭。再转状态3,东西绿灯通车,南北红灯亮。过一段时间后转状态4,黄灯亮,东西绿灯灭南北红灯灭。一段时间后,又循环至状态1。中间可通过中断按钮产生中断,跳入中断程序执行中断。列出交通信号灯的状态表如下:(其中,1代表灯亮,0代表灯灭)

2、对于交通信号灯来说,应该有东西南北共四组灯,但由于同一道上的两组的信号灯的显示情况是相同的,所以只要用两组就行了,因此,采用单片机内部的IO口上的P1口中的6个引脚即可来控制6个信号灯。

3、通过编写程序,实现对发光二极管的控制,来模拟交通信号灯的管理。每延时一段时间,灯的显示情况都会按交通灯的显示规律进行状态转换。

4、通过延时时间送显,可以在原有的交通信号灯系统的基础上,增添其倒

计时间的显示功能,实现其功能的扩展。

5、通过脉冲中断编写中断程序,可实现中断。

3系统硬件设计

选用设备:AT89C51单片机一片,74LS47芯片二片,电阻排RESPACK-7三个,共阴极的七段数码管7SEG-MPX2-CA两个,红、黄、绿交通灯各四个,开关键盘、连线、电阻、电容若干。

3.1、AT89C51芯片简介

AT89C51单片机内部结构

AT89C51单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线。

MCS-51的引脚说明:

MCS-51系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个IO口,中断口线与P3口线复用

经综合对本系统的分析,选用AT89C51单

片机就非常合适,

AT89C51有P0,P1,P2,P3四个外部接口,介

绍如下:

P0 口:P0口是一个8位漏极开路的双向

IO口。作为输出口,每位能驱动8个TTL逻 辑

电平。对P0端口写“1”时,引脚用作高阻抗

输入端用。 在访问外部数据存储器或程序存储器时,P0口被分时转换地址(低8

位)和数据总线复用,在访问期间激活内部上拉电阻。

P1 口:P1 口是一个具有内部上拉电阻的8 位双向IO 口,P1 输出缓冲器能驱动4 个TTL 逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,因为内部存在上拉电阻,某个引脚

被外部信号拉低时会输出一个电流(IIL)。

此外,P1.0和P1.2分别作定时器计数器2的外部计数输入(P1.0T2)和时器计数器2的触发输入(P1.1T2EX),具体如下表所示。在flash编程和校验时,P1口接收低8位地址字节。

P2 口:P2 是一个带有内部上拉电阻的8 位双向IO 口,P2 的输出缓冲级可驱动(吸收或输出电流)4 个TTL逻辑门电路。对端口P2 写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。

P3 口:P3 口是一组带有内部上拉电阻的8 位双向IO 口。P3 口输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。对P3 口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的P3 口将用上拉电阻输出电流。

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

ALEPROG——当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的16输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。

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

EAVPP——外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。

如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。 下图是MCS-51系列单片机的内部结构示意图1。

图1

单片机的复位及初始化如图2:

图2

3.2 74LS47芯片简介

74LS47的端子功能图如下图3:

74LS47的主要功能端如下: 图3

BI为熄灭输入端,低电平有效,当BI=0时,无论其他输入端状态如何,译码器输出七段同时熄灭;BI=1时,不影响译码器正常译码。

LT为测试输入端,低电平有效,用于检查数码管的七段是否正常发光。当LT=0,同时BI=1时,不管输入的B南北码是什么状态,都可使驱动数码管的七段同时点亮。译码器要正常译码,必须LT输入无效电平。

RBI为灭零输入端,低电平有效。设置灭零输入端的目的是为了能将不希望显示的0熄灭,例如一个四位数码显示电路,整数部分两位,小数部分两位,在显示6.4时,将出现06.40的字样,如果将前、后多余的0熄灭,显示的结果更醒目一些。灭零输入端只能对显示的0进行熄灭,而对其他数字没有影响。

在原理图中,译码器与数码管的连接如图4:

图4

3.3系统总框图如下:

3.4、交通灯硬件线路图:

3.5、系统工作原理

(1)开关键盘a、改变数码管显示的时间;b、开关控制十字路口十个方向的灯同时显示红灯且数码管显示00。

(2) 由AT89C51单片机每秒钟通过P0、P2口向74LS47的数据口送信息,由P1口显示红、绿、黄灯的燃亮情况;由7SEG-MPX2-CA显示每个灯的燃亮时间。

(3)AT89C51 P3.3为低电平时,P1口对应的红灯即四个方向的红灯亮,数码显示为00.

(4 AT89C51 P3.2有下降沿触发时,时间暂停,进入时间显示状态,当P3.6为低电平时,时间显示以240ms的速度进行加1;当P3.7为低电平时,时间显示以240ms的速度进行减1;当P1.0为低电平时,时间暂停消除,恢复正常。

(5)初始状态东西方向绿灯60秒南北方向红灯65秒。

(6)当东西方向绿灯60秒倒计时完了。进入下一阶段,东西方向黄灯3秒,且黄灯以40ms的速度闪烁;南北方向红灯5秒。

(7)当东西方向黄灯3秒倒计时完。进入第三阶段,东西方向红灯40秒;南北方向红灯2秒。

(8)当南北方向红灯2秒倒计时完。进入第四阶段,东西方向红灯38秒;

南北方向绿灯35秒。

(9)当南北方向绿灯35秒倒计时完。进入第五阶段,东西方向红灯3秒;南北方向黄灯3秒,且黄灯以40ms的速度闪烁。

(10)东西方向红灯和南北方向黄灯3秒同时倒计时完毕,重新循环。

4.软件设计

4.1、每秒钟的设定

延时方法可以有两种一中是利用AT89C51内部定时器才生溢出中断来确定1秒的时间,另一种是采用软延时的方法。 4.2、秒的方法

我们采用在主程序中设定一个初值为20的软件计数器和使T0定时50毫秒.这样每当T0到50毫秒时CPU就响应它的溢出中断请求,进入他的中断服务子程序。在中断服务子程序中,CPU先使软件计数器减1,然后判断它是否为零。为零表示1秒已到可以返回到输出时间显示程序. 4.3、相应程序代码

(1)主程序

定时器需定时10毫秒,故T0工作于方式1。 初值: T0初值=216-fose12Xt=216-(12X106X0.01)12=55536D=D8F0H ORG 0000H

MAIN: MOV TMOD,#01H MOV TL0,#0F0H MOV TH0,#0D8H SETB EA SETB ET0 SETB TR0

SETB EX0 SETB EX1 SETB IT0 CLR IT1 SETB PT0 (2)中断服务子程序

ORG 000BH

ZHD2: MOV TL0,#0F0H ;重先赋值 MOV TH0,#0D8H CLR P3.4 RETI 4.4、键盘显示流程图

4.5、 软件延时

MCS-51的工作频率为2-12MHZ,我们选用的AT89C51单片机的工作频率为12MHZ。机器周期与主频有关,机器周期是主频的12倍,所以一个机器周期的时间为12*(112M)=1us。我们可以知道具体每条指令的周期数,这样我们就可以通过指令的执行条数来确定1秒的时间。

具体的延时程序分析:

DEL: MOV R7,#40 ; ;延时10ms DEL1: MOV R6,#123 NOP DEL2: DJNZ R6,DEL2

DJNZ R7,DEL1 RET

5 、Proteus软件仿真

5.1交通灯控制系统正常运行时仿真图(见下图)

5.2 交通灯东西方向向南北方向转变,黄灯亮

5.3应急情况下,东西南北方向都为红灯,如下图

6、设计心得体会

通过这次课程设计,使我得到了一次用专业知识、专业技能分析和解决问题全面系统的锻炼。使我在单片机的基本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧(特别是汇编语言)的掌握方面都能向前迈了一大步。本次课程设计的过程是艰辛的,不过收获却是很大的。

在设计过程中,会出现了一些问题,但都是常见的小问题,如:代码中双引号的使用并不是在英语书写状态下,输入字母出错等,在调试时出现异常,不过这些都是经常性错误,经过调试修改都一一解决,程序顺利完成,并实现了其功能。

综合课程设计让我把以前学习到的知识得到巩固和进一步的提高认识,对已有知识有了更进一步的理解和认识。在此,由于自身能力有限,在课程设计中碰到了很多的问题,我通过查阅相关书籍、资料以及和周围同学交流。

由于使用的是单片机作为核心的控制元件,使得电路的可靠性比较高,功能也比较强大,而且可以随时的更新系统,进行不同状态的组合。但是在我们设计和调试的过程中,也发现了一些问题,譬如红灯和绿灯的切换还不够迅速,红绿灯规则不效率还不是很高等等,这需要在实践中进一步完善。

当然,通过这次课程设计,我也发现了自身的很多不足之处,在以后的学习中,我会不断的完善自我。

附录1: 源程序代码

ORG 0000H ;伪指令、程序开始、中断入口地址 LJMP MAIN ORG 0003H LJMP ZHD1 ORG 000BH LJMP ZHD2 ORG 0013H LJMP ZHD3 ORG 1000H ;主程序

MAIN:MOV TMOD,#01H ; MOV TL0,#0F0H ; MOV TH0,#0D8H

SETB EA ; SETB ET0 ; SETB TR0 ; SETB EX0 ; SETB EX1 ; SETB IT0 ; CLR IT1 ; SETB PT0

CYCLE:MOV R0,#60 ;AB MOV R1,#65 ;CD MOV R2,#25 ;;CD红灯 AB绿灯 LOOP1:SETB P3.4 MOV P1,#01H

SETB P1.7 ;设工作方式

设初值 ,单片机晶振12M,定时10ms 开放总中断 开放T0中断 启动T0定时 开放外中断0 开放外中断1

设外中断0为边沿触发 设外中断1为低电平有效 方向绿灯显示时间 方向红灯显示时间 为延时1秒而用 点亮红灯

SETB P1.4 ;点亮绿灯 LCALL DISPLAY ;调用显示程序 DJNZ R2,LOOP1 MOV R2,#25 DEC R1 DJNZ R0,LOOP1

MOV R0,#3 ;AB;CD红灯 AB黄灯 LOOP2:MOV P1,#01H

SETB P1.7 ; SETB P1.3 ;LLJ: LCALL DISPLAY ; CPL P1.3 DJNZ R2,LLJ DEC R1 MOV R2,#25 DJNZ R0,LOOP2

MOV R0,#40 ;AB;CD红灯 AB红灯 LOOP3:MOV P1,#01H

SETB P1.7 ; SETB P1.2 ; LCALL DISPLAY ; DJNZ R2,LOOP3 MOV R2,#25 DEC R0 DJNZ R1,LOOP3

MOV R1,#35 ;CD;CD绿灯 AB红灯

方向黄灯显示时间点亮红灯 点亮黄灯 调用显示程序 方向红灯显示时间点亮红灯 点亮红灯 调用显示程序 方向绿灯显示时间

LOOP4:MOV P1,#01H

SETB P1.5 ;点亮绿灯 SETB P1.2 ;点亮红灯 LCALL DISPLAY ;调用显示程序 DJNZ R2,LOOP4 MOV R2,#25 DEC R0 DJNZ R1,LOOP4

MOV R1,#3 ;CD;CD黄灯 AB红灯 LOOP5:MOV P1,#01H

SETB P1.6 ; SETB P1.2 ;LLJ1: LCALL DISPLAY ; CPL P1.6 DJNZ R2,LLJ1 MOV R2,#25 DEC R0 DJNZ R1,LOOP5 LJMP CYCLE ;键盘中断程序 ZHD1: LCALL DISPLAY JB P3.6,Q2 INC R1 INC R0

CJNE R1,#99,TIAO2 MOV R1,#00H TIAO2:CJNE R0,#99,TIAO3 MOV R0,#00H

方向黄灯显示时间点亮黄灯 点亮红灯 调用显示程序

(此文档为word格式,下载后您可任意编辑修改!

)

交通灯的控制

摘 要:本设计以AT89C51单片机为主控模块,主要由按钮开关,数码管,发光二极管组成,利用汇编语言编写程序来模拟对十字路口的交通管理,系统包括左右拐,直行,人行道四个基本的交通等功能。南北方向亮绿灯60s,然后黄灯闪烁3次,每次一秒(亮灭各40ms),红灯40s,同时东西方向红灯65s,绿灯35s,黄灯闪烁3s。各路灯用LED模拟显示,同时用七段数码管显示两路的倒计时时间。利用键盘可修改灯亮时间PC机设置灯亮时间,利用PC与单片机串口通信实现 。为防止出现紧急情况(如119,110通过时),该系统还设置了中断,可通过按键使各个路口为红灯其它车辆禁行,特殊车辆通行的状态,当东西方向为通行状态时,南北方向有突发情况,也可通过手动按键使东西方向为红灯,南北方向为绿灯。

在对系统的分析基础上,提出了几种设计方案,经比较选择各方较好的LED动态循环显示方案进行设计,设计包括硬件和软件两大部分单片机最小系统,时间显示,交通等显示三部分。以AT89C51为控制核心,东西南北各设置3个交通灯,东西,南北方向各设置一个2位的数码管时间显示器,交通灯显示则采用红绿黄三色高亮发光二极管模拟,软件采用模块化的设计方法,主要分为主程序,定时中断服务子程序,倒计时显示子程序,交通灯模拟显示子程序。

软件设计完成,经过对该设计程序模拟测试,可实现对十字路口交通的良好管理,预期目标全部达到,该系统操作简单,实用性强,扩展功能好。

关键词:AT89C51 数码管 光二极管 中断 模拟

目录

1前言 ........................................................ 5

1.1该课程选题背景 ............................................ 5

1.2该课程选题现实意义 ......................................... 5

1.3单片机交通灯研究任务 ....................................... 5

2设计方案 .................................................... 6

2.1方案设计目的 .............................................. 6

2.2方案设计思路 .............................................. 6

2.3方案设计原理 .............................................. 7

3系统硬件设计 ................................................ 8

3.1 AT89C51芯片简介........................................... 8

3.2 74LS47芯片简介 .......................................... 11

3.3系统总框图 ............................................... 12

3.4、交通灯硬件线路 .......................................... 12

3.5、系统工作原理 ............................................ 12

4.软件设计 .................................................. 13

4.1每秒钟的设定 ............................................. 13

4.2秒的方法 .................................................

4.3相应程序代码 .............................................

4.4、键盘显示流程图 ..........................................

4.5、 软件延时 ............................................... 5 Proteus软件仿真 ...........................................

5.1正常运行时状态 ...........................................

5.2黄灯亮时状态 .............................................

5.3应急情况下状态 ........................................... 6 设计心得体会 ............................................... 附录1:源程序代码 ........................................... 附录2:硬件连接图 ........................................... 参考文献 .....................................................

13 13 14 14 15 15 16 16 17 18 23 23

1前言

1.1单片机交通控制系统的选题背景

世界上第一盏正式投入使用的交通信号灯出现在1868年12月10日,这盏身高7米,由德哈特设计的红绿两色煤气灯出现在议会大厦前的十字路口。一位警察手持长杆牵动皮带转换红绿两色:红灯停,绿灯行。

随着人口快速的增多,交通工具的爆炸性的发展,以及道路资源的有限性,交通控制就应运而生,在人类的生活、工作环境中,交通扮演着极其重要的角色,人们的出行都无时不刻与交通打着交道。自18世纪工业革命以来,工业发展带动整个交通运输的发展,从而催生了单独的交通控制学问与管理机构。

道路交通信号灯是交通安全产品中的一个类别,是为了加强道路交通管理,减少交通事故的发生,提高道路使用效率,改善交通状况的一种重要工具。适用于十字、丁字等交叉路口,由道路交通信号控制机控制,指导车辆和行人安全有序地通行。

1.2 单片机交通控制系统选题的现实意义

城市道路交通自动控制系统的发展是以城市交通信号控制技术为前导,与汽车工业并行发展的。在其各个发展阶段,由于交通的各种矛盾不断出现,人们总是尽可能地把各个历史阶段当时的最新科技成果应用到交通自动控制中来,从而促进了交通自动控制技术的不断发展。

交通网络是城市的动脉,象征着一个城市的工业文明水平。交通关系着人们对于财产,安全和时间相关的利益。具有优良科学的交通控制技术对资源物流和人们出行都是十分有价值的,保证交通线路的畅通安全,才能保证出行舒畅,物流准时到位,甚至是生命通道的延伸。

1.3单片机交通控制系统主要研究的内容

基于整个交通控制系统的发展情况,本设计主要进行如下方面的研究:用智能,集成,且功能强大的单片机芯片为控制中心,设计出一套十字路口的交通控制系统,以指挥该路口的实时通行状态。

本设计主要做了如下几方面的工作:

一是确定系统交通控制的总体设计,包括十字路口具体的通行禁行方案设计以及系统应拥有的各项功能,在这里,本设计除了有信号灯状态控制能实现基本的交通功能,还增加了倒计时显示提示,基于实际情况,又要求了对车流量检测及自调整模拟功能,违规检测及处理,紧急状况处理。

二是进行智能传感器的硬件电路,显示电路等的设计对各器件的选择及连接,大 体分配各个器件及模块的基本功能要求。

2方案设计

2.1课程设计目的

2.1.1巩固和加深对单片机原理和接口技术知识的理解;

2.1.2培养根据课题需要选学参考书籍、查阅手册和文献资料的能力;

2.1.4掌握常用仪器、仪表的正确使用方法,学会软、硬件的设计和调试方

法;

2.1.5能按课程设计的要求编写课程设计报告,能正确反映设计和实验成果,

能用计算机绘制电路图和流程图。

2.1.6通过单片机课程设计,熟练掌握汇编语言的编程方法,将理论联系到

实践中去,提高我们的动脑和动手的能力。

2.1.7通过交通信号灯控制系统的设计,掌握定时计数器及中断的使用方法,

和简单程序的编写,最终提高我们的逻辑抽象能力。

2.2设计思路

2.3设计原理

1、首先了解实际交通灯的变化情况和规律。假设一个十字路口如上图所以,为东南西北走向。初始状态0为东西南北都红灯亮。然后转状态1东西红灯亮,南北绿灯亮通行。过一段时间后,转状态2,黄灯亮,东西红灯灭,南北绿灯灭。再转状态3,东西绿灯通车,南北红灯亮。过一段时间后转状态4,黄灯亮,东西绿灯灭南北红灯灭。一段时间后,又循环至状态1。中间可通过中断按钮产生中断,跳入中断程序执行中断。列出交通信号灯的状态表如下:(其中,1代表灯亮,0代表灯灭)

2、对于交通信号灯来说,应该有东西南北共四组灯,但由于同一道上的两组的信号灯的显示情况是相同的,所以只要用两组就行了,因此,采用单片机内部的IO口上的P1口中的6个引脚即可来控制6个信号灯。

3、通过编写程序,实现对发光二极管的控制,来模拟交通信号灯的管理。每延时一段时间,灯的显示情况都会按交通灯的显示规律进行状态转换。

4、通过延时时间送显,可以在原有的交通信号灯系统的基础上,增添其倒

计时间的显示功能,实现其功能的扩展。

5、通过脉冲中断编写中断程序,可实现中断。

3系统硬件设计

选用设备:AT89C51单片机一片,74LS47芯片二片,电阻排RESPACK-7三个,共阴极的七段数码管7SEG-MPX2-CA两个,红、黄、绿交通灯各四个,开关键盘、连线、电阻、电容若干。

3.1、AT89C51芯片简介

AT89C51单片机内部结构

AT89C51单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线。

MCS-51的引脚说明:

MCS-51系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个IO口,中断口线与P3口线复用

经综合对本系统的分析,选用AT89C51单

片机就非常合适,

AT89C51有P0,P1,P2,P3四个外部接口,介

绍如下:

P0 口:P0口是一个8位漏极开路的双向

IO口。作为输出口,每位能驱动8个TTL逻 辑

电平。对P0端口写“1”时,引脚用作高阻抗

输入端用。 在访问外部数据存储器或程序存储器时,P0口被分时转换地址(低8

位)和数据总线复用,在访问期间激活内部上拉电阻。

P1 口:P1 口是一个具有内部上拉电阻的8 位双向IO 口,P1 输出缓冲器能驱动4 个TTL 逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,因为内部存在上拉电阻,某个引脚

被外部信号拉低时会输出一个电流(IIL)。

此外,P1.0和P1.2分别作定时器计数器2的外部计数输入(P1.0T2)和时器计数器2的触发输入(P1.1T2EX),具体如下表所示。在flash编程和校验时,P1口接收低8位地址字节。

P2 口:P2 是一个带有内部上拉电阻的8 位双向IO 口,P2 的输出缓冲级可驱动(吸收或输出电流)4 个TTL逻辑门电路。对端口P2 写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。

P3 口:P3 口是一组带有内部上拉电阻的8 位双向IO 口。P3 口输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。对P3 口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的P3 口将用上拉电阻输出电流。

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

ALEPROG——当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的16输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。

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

EAVPP——外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。

如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。 下图是MCS-51系列单片机的内部结构示意图1。

图1

单片机的复位及初始化如图2:

图2

3.2 74LS47芯片简介

74LS47的端子功能图如下图3:

74LS47的主要功能端如下: 图3

BI为熄灭输入端,低电平有效,当BI=0时,无论其他输入端状态如何,译码器输出七段同时熄灭;BI=1时,不影响译码器正常译码。

LT为测试输入端,低电平有效,用于检查数码管的七段是否正常发光。当LT=0,同时BI=1时,不管输入的B南北码是什么状态,都可使驱动数码管的七段同时点亮。译码器要正常译码,必须LT输入无效电平。

RBI为灭零输入端,低电平有效。设置灭零输入端的目的是为了能将不希望显示的0熄灭,例如一个四位数码显示电路,整数部分两位,小数部分两位,在显示6.4时,将出现06.40的字样,如果将前、后多余的0熄灭,显示的结果更醒目一些。灭零输入端只能对显示的0进行熄灭,而对其他数字没有影响。

在原理图中,译码器与数码管的连接如图4:

图4

3.3系统总框图如下:

3.4、交通灯硬件线路图:

3.5、系统工作原理

(1)开关键盘a、改变数码管显示的时间;b、开关控制十字路口十个方向的灯同时显示红灯且数码管显示00。

(2) 由AT89C51单片机每秒钟通过P0、P2口向74LS47的数据口送信息,由P1口显示红、绿、黄灯的燃亮情况;由7SEG-MPX2-CA显示每个灯的燃亮时间。

(3)AT89C51 P3.3为低电平时,P1口对应的红灯即四个方向的红灯亮,数码显示为00.

(4 AT89C51 P3.2有下降沿触发时,时间暂停,进入时间显示状态,当P3.6为低电平时,时间显示以240ms的速度进行加1;当P3.7为低电平时,时间显示以240ms的速度进行减1;当P1.0为低电平时,时间暂停消除,恢复正常。

(5)初始状态东西方向绿灯60秒南北方向红灯65秒。

(6)当东西方向绿灯60秒倒计时完了。进入下一阶段,东西方向黄灯3秒,且黄灯以40ms的速度闪烁;南北方向红灯5秒。

(7)当东西方向黄灯3秒倒计时完。进入第三阶段,东西方向红灯40秒;南北方向红灯2秒。

(8)当南北方向红灯2秒倒计时完。进入第四阶段,东西方向红灯38秒;

南北方向绿灯35秒。

(9)当南北方向绿灯35秒倒计时完。进入第五阶段,东西方向红灯3秒;南北方向黄灯3秒,且黄灯以40ms的速度闪烁。

(10)东西方向红灯和南北方向黄灯3秒同时倒计时完毕,重新循环。

4.软件设计

4.1、每秒钟的设定

延时方法可以有两种一中是利用AT89C51内部定时器才生溢出中断来确定1秒的时间,另一种是采用软延时的方法。 4.2、秒的方法

我们采用在主程序中设定一个初值为20的软件计数器和使T0定时50毫秒.这样每当T0到50毫秒时CPU就响应它的溢出中断请求,进入他的中断服务子程序。在中断服务子程序中,CPU先使软件计数器减1,然后判断它是否为零。为零表示1秒已到可以返回到输出时间显示程序. 4.3、相应程序代码

(1)主程序

定时器需定时10毫秒,故T0工作于方式1。 初值: T0初值=216-fose12Xt=216-(12X106X0.01)12=55536D=D8F0H ORG 0000H

MAIN: MOV TMOD,#01H MOV TL0,#0F0H MOV TH0,#0D8H SETB EA SETB ET0 SETB TR0

SETB EX0 SETB EX1 SETB IT0 CLR IT1 SETB PT0 (2)中断服务子程序

ORG 000BH

ZHD2: MOV TL0,#0F0H ;重先赋值 MOV TH0,#0D8H CLR P3.4 RETI 4.4、键盘显示流程图

4.5、 软件延时

MCS-51的工作频率为2-12MHZ,我们选用的AT89C51单片机的工作频率为12MHZ。机器周期与主频有关,机器周期是主频的12倍,所以一个机器周期的时间为12*(112M)=1us。我们可以知道具体每条指令的周期数,这样我们就可以通过指令的执行条数来确定1秒的时间。

具体的延时程序分析:

DEL: MOV R7,#40 ; ;延时10ms DEL1: MOV R6,#123 NOP DEL2: DJNZ R6,DEL2

DJNZ R7,DEL1 RET

5 、Proteus软件仿真

5.1交通灯控制系统正常运行时仿真图(见下图)

5.2 交通灯东西方向向南北方向转变,黄灯亮

5.3应急情况下,东西南北方向都为红灯,如下图

6、设计心得体会

通过这次课程设计,使我得到了一次用专业知识、专业技能分析和解决问题全面系统的锻炼。使我在单片机的基本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧(特别是汇编语言)的掌握方面都能向前迈了一大步。本次课程设计的过程是艰辛的,不过收获却是很大的。

在设计过程中,会出现了一些问题,但都是常见的小问题,如:代码中双引号的使用并不是在英语书写状态下,输入字母出错等,在调试时出现异常,不过这些都是经常性错误,经过调试修改都一一解决,程序顺利完成,并实现了其功能。

综合课程设计让我把以前学习到的知识得到巩固和进一步的提高认识,对已有知识有了更进一步的理解和认识。在此,由于自身能力有限,在课程设计中碰到了很多的问题,我通过查阅相关书籍、资料以及和周围同学交流。

由于使用的是单片机作为核心的控制元件,使得电路的可靠性比较高,功能也比较强大,而且可以随时的更新系统,进行不同状态的组合。但是在我们设计和调试的过程中,也发现了一些问题,譬如红灯和绿灯的切换还不够迅速,红绿灯规则不效率还不是很高等等,这需要在实践中进一步完善。

当然,通过这次课程设计,我也发现了自身的很多不足之处,在以后的学习中,我会不断的完善自我。

附录1: 源程序代码

ORG 0000H ;伪指令、程序开始、中断入口地址 LJMP MAIN ORG 0003H LJMP ZHD1 ORG 000BH LJMP ZHD2 ORG 0013H LJMP ZHD3 ORG 1000H ;主程序

MAIN:MOV TMOD,#01H ; MOV TL0,#0F0H ; MOV TH0,#0D8H

SETB EA ; SETB ET0 ; SETB TR0 ; SETB EX0 ; SETB EX1 ; SETB IT0 ; CLR IT1 ; SETB PT0

CYCLE:MOV R0,#60 ;AB MOV R1,#65 ;CD MOV R2,#25 ;;CD红灯 AB绿灯 LOOP1:SETB P3.4 MOV P1,#01H

SETB P1.7 ;设工作方式

设初值 ,单片机晶振12M,定时10ms 开放总中断 开放T0中断 启动T0定时 开放外中断0 开放外中断1

设外中断0为边沿触发 设外中断1为低电平有效 方向绿灯显示时间 方向红灯显示时间 为延时1秒而用 点亮红灯

SETB P1.4 ;点亮绿灯 LCALL DISPLAY ;调用显示程序 DJNZ R2,LOOP1 MOV R2,#25 DEC R1 DJNZ R0,LOOP1

MOV R0,#3 ;AB;CD红灯 AB黄灯 LOOP2:MOV P1,#01H

SETB P1.7 ; SETB P1.3 ;LLJ: LCALL DISPLAY ; CPL P1.3 DJNZ R2,LLJ DEC R1 MOV R2,#25 DJNZ R0,LOOP2

MOV R0,#40 ;AB;CD红灯 AB红灯 LOOP3:MOV P1,#01H

SETB P1.7 ; SETB P1.2 ; LCALL DISPLAY ; DJNZ R2,LOOP3 MOV R2,#25 DEC R0 DJNZ R1,LOOP3

MOV R1,#35 ;CD;CD绿灯 AB红灯

方向黄灯显示时间点亮红灯 点亮黄灯 调用显示程序 方向红灯显示时间点亮红灯 点亮红灯 调用显示程序 方向绿灯显示时间

LOOP4:MOV P1,#01H

SETB P1.5 ;点亮绿灯 SETB P1.2 ;点亮红灯 LCALL DISPLAY ;调用显示程序 DJNZ R2,LOOP4 MOV R2,#25 DEC R0 DJNZ R1,LOOP4

MOV R1,#3 ;CD;CD黄灯 AB红灯 LOOP5:MOV P1,#01H

SETB P1.6 ; SETB P1.2 ;LLJ1: LCALL DISPLAY ; CPL P1.6 DJNZ R2,LLJ1 MOV R2,#25 DEC R0 DJNZ R1,LOOP5 LJMP CYCLE ;键盘中断程序 ZHD1: LCALL DISPLAY JB P3.6,Q2 INC R1 INC R0

CJNE R1,#99,TIAO2 MOV R1,#00H TIAO2:CJNE R0,#99,TIAO3 MOV R0,#00H

方向黄灯显示时间点亮黄灯 点亮红灯 调用显示程序


相关文章

  • 基于单片机控制交通灯控制电路设计任务书
  • 基于单片机控制交通灯控制电路设计任务书 课题名称 基于89c51单片机控制交通灯毕业设计 课题性质 工学 适宜专业 电子.机电.计控.楼宇 专业 班 级 学生姓名 学号 指导教师 教研室主任 系部主任 发放日期 20年x 月x 日 一. 课 ...查看


  • 电子信息工程毕业设计题目大全
  • 1 压力容器液位测量 2 多功能遥控小车 3基于RS232的仓库多点温度.湿度.气 4压检测系统 5自动控制升降旗系统 6基于RS485的温度报警系统 7基于模糊算法的水温控制系统的设计 8多分机电话交换机 9简易火灾自动报警系统 10基于 ...查看


  • 基于单片机的循迹小车的设计
  • 毕业论文 题目院系 专业学生姓名 学号指导教师 职称 目录 1绪论....................................................................................... ...查看


  • 电子信息类毕业设计课题
  • 电子信息类毕业设计课题 [电子通讯] 出租车计价系统 [过程控制] 基于单片机实现单回路智能调节.. [电子通讯] 脉冲数字频率计 [机床仪表] 仪表机床数控系统的设计(论文.. 磁流体发电论文 [电子通讯] 基于VC++6.0的PC 机与 ...查看


  • 交通灯毕业论文
  • 广州城建职业学院 毕业设计 题目_____________交通灯模型_______________ 所 在 系____ 信息系___________ _ 专业班级___09嵌入式技术班___________ 学生姓名 ___ 李源佳____ ...查看


  • 基于单片机的交通信号灯控制系统设计完整版
  • 重庆大学网络教育学院 毕业设计(论文) 题目 基于单片机的交通信号灯 控制系统设计 学生所在校外学习中心 四川南充校外学习中心 批次 层次 专业 092 专科起点本科 电气工程及其自动化 学 号 W09205801 学 生 邓力 指 导 教 ...查看


  • 编译原理毕业论文设计_基于新型规则的可编程交通控制系统
  • <基于新型规则的可编程交通控制系统> 参赛队员: 摘要: 随着社会的发展,人们的消费水平不断的提高,私人车辆不断的增加.人多.车多道路少的道路交通状况已经很明显了.我国是13亿多人口的大国,到2004年,全国的机动车保有量超过了 ...查看


  • 最新电子信息工程毕业论文题目参考
  • 1. 家庭防盗报警系统 2. 单片机实现单步进电机及8位流水灯控制的设计 3. 篮球竞赛计时系统 4. 单片机89C51在直流调速控制系统中的应用 5. 八路数字抢答器 6. 基于51机的直流电机设计 7. 基于51单片机的步进电机控制系统 ...查看


  • 基于单片机的交通灯控制器设计
  • The traffic light controller design based on single chip microcomputer Abstract This design is designed for intersection ...查看


热门内容