收藏 分销(赏)

基于单片机的交通灯课设.pdf

上传人:曲**** 文档编号:826806 上传时间:2024-03-26 格式:PDF 页数:25 大小:1,022.67KB
下载 相关 举报
基于单片机的交通灯课设.pdf_第1页
第1页 / 共25页
基于单片机的交通灯课设.pdf_第2页
第2页 / 共25页
基于单片机的交通灯课设.pdf_第3页
第3页 / 共25页
基于单片机的交通灯课设.pdf_第4页
第4页 / 共25页
基于单片机的交通灯课设.pdf_第5页
第5页 / 共25页
点击查看更多>>
资源描述

1、目录 成绩1.概述.11.1 课程设计的背景.11.2 课程设计的目的.11.3 课程设计的要求.11.4 课程设计的环境.32系统总体方案及硬件设计.42.1 系统总体方案.42.2 系统硬件电路的设计.42.2.1 单片机芯片选择.42.2.2 LED 显示器.52.2.3 红绿灯显示电路.62.2.4 外部中断.73系统软件设计.83.1 设计流程图.83.2 主程序.94.验证仿真.115.课程设计总结.15参考文献.16附:程序源程序.17附2:元件清单.24I1.概述1.1 课程设计的背景交通的发达标志着城市的发达相对交通的管理则显得越来越重要。交通灯是 城市交通中的重要指挥系统它

2、与人们日常生活密切相关随着人们生活水平的提 高对交通管制也提出了更高的要求因此提供一个可靠、安全、便捷的多功能交通 灯控制系统有着现实的必要性。对于复杂的城市交通系统为了确保安全保证正常 的交通秩序十字路口的信号控制必需按照一定的规律变化以便于车辆行人能顺 利地通过十字路口。单片机自问世以来性能不断提高和完善 其资源又能满足很 多场合的应川加之单片机具有集成度高、功能强、速度快、体积小、功耗低、使 用方便、性能可靠、价格低廉 其易于产品化、抗干扰能力强、可在各种恶劣环 境下可靠的工作等特点。特别是它强大的面向控制能力使它在工业控制领域 智 能仪表、外设控制、家用电器、机器人、军事装置等方面得到

3、了广泛的应用。考 虑到单片机具有物美价廉、功能强、使用方便灵活、可靠性高等特点拟采用 AT89C 52系列的单片机来实现十字路口交通信号灯的控制。正常情况下十字路口 的红绿灯应交替变换考虑紧急情况下如有救护车或警车到来时应优先让其通过。1.2 课程设计的目的1.熟悉单片机系统综合设计方法。2.掌握数码管的动态显示原理。3.掌握定时/计数器的用法。1.3 课程设计的要求系统基本功能要求:此十字路口交通灯控制系统,分东西道和南北道,设南 北道为A道,东西道为B道。规定:首先,东西路口红灯亮,南北路口绿灯亮,同时开始30s倒计时,以7段数码管显示时间。25s倒计时结束后开始5s倒计 时,南北路口的绿

4、灯闪烁,计时到最后2s时,南北路口黄灯亮。完成1次这样 的循环需要30so 30s结束后,南北路口红灯亮,东西路口绿灯亮,并重新30s 倒计时,依次循环。扩展功能要求:11、若有紧急车辆要求通过时,此系统应能禁止普通车辆,而让紧急车辆通过。2、可调节通行时间基于上面的基本要求设计了十字路口交通灯控制系统方案,具体方案如 下:A、B两干道交于一个十字路口,各干道有一组红、黄、绿三色的指示灯,指 挥车辆和行人安全通行。红灯亮禁止通行,绿灯亮允许通行。黄灯亮提示人们注 意红、绿灯的状态即将切换,且黄灯燃亮时间为A、B两干道的公共停车时间。指示灯燃亮的方案设计见图L1OO 红绿黄图1.1方案设计框图详

5、细规定:首先,东西路口红灯亮,南北路口绿灯亮,同时开始30s倒计时,以7段数码管显示时间。25s倒计时结束后开始5s倒计时,南北路口的绿灯闪 烁,计时到最后2s时,南北路口黄灯亮。完成1次这样的循环需要30s。30s结 束后,南北路口红灯亮,东西路口绿灯亮,并重新30s倒计时,依次循环。2L4课程设计的环境PC 机、PROTEUS 软件、Keil C 51 uVision3 软件。32系统总体方案及硬件设计2.1 系统总体方案单片机交通灯系统可以分为四个环节,分别是单片机捽制系统、时间显示模 块、交通灯闪烁模块和控制紧急车辆通过模块。通过这四个环节的协调工作就可 以完成交通灯相应的交通控制和显

6、示功能。这四个模块可分成如下图连接的方框 图2.1图2.1总体框图2.2 系统硬件电路的设计2.2.1 单片机芯片选择本次我们选择的是AT89c52单片机。AT89c52是一种低电压、高性能C MOS 8 位单片机。片内含8k byte的可反复擦写的Flash只读程序存储器和256bytes 的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技 术生产,兼容标准MC S-51指令系统,片内置通用8位中央处理器和Flash存储 单元。在单芯片上,拥有灵巧的8位C PU和在系统可编程Flash,使得AT89c52 为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT

7、89c52具有以下 标准功能:8k字节Flash,256字节RAM,32位I/O 口线,看门狗定时器,2个4数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工审行口,片内晶振及时钟电路。空闲模式下,C PU停止工作,允许RAM、定时器/计数器、审口、中断继续工作。鉴于以上的优点本系统采用AT89c52作为主控芯片,实现 对整个系统的控制。_U2XTAL1XTAL2RSTihll-PSEN ALE EAP1 0TT2P1 1fT2EXP1.2P1.3 P1 4P1.5 PI 6 P1 7POO/ADO PO1/AD1PO2TAD2 PO3/AD3 PO 4/AD4P0 5TAD5

8、 P0 6TAD6 P07/AD7P20/A8 P2 1/A9P22XA10 P23WM1P2.4/A12 P2 5JIA13P2 6JIA14 P2.7AA15P3(VRXD P31fTXDP3 2flNT0P3 IflNTTP3 4/T0 P3 yHP36JWR P37/RDdi3L-i3ididizizidi10-LLH13=dfHiAT89C52图2.2 AT89C52引脚图如图2.2所示,89c52单片机有4个8位并行I/O端口,称为PO、Pl、P2 和P3。每个端口都是8位准双向口,共占32只引脚。每条I/O线都能独立的用 作输入或输出。每个端口都包括一个锁存器(即特殊功能寄存器P

9、0P3)、一个 输出驱动器和输入缓冲器。作输出时,数据可以所存;作输入时,数据可以缓冲。但这4个通道的功能完全不同,其内部结构也略有不同。在本次设计中,P0和 P1端口分别与数码管的个位和十位相连,P2端口和发光二极管相连。P3端口则 控制红绿灯线路的外部中断。2.2.2 LED显示器LED显示器由8个发光二极管组成,其中7个发光二极管排成八字形,另一 个构成小数点,如图2.3所示,通过8个发光二极管不同的亮灭组合用来显示数 字和字符。LED显示器俗称数码管。在本设计中不要用到小数点,所以,控制小 数点的一端直接接地。本实验总共需要8个共阴极数码管组成4组数码显示管,分别显示东、南、西、北四个

10、方向的倒计时间。如图2.3所示5图2.3 LED灯连接图2.2.3红绿灯显示电路每个路口选用3个发光二极管,分别显示红、黄、绿三种颜色。东西接P2 端口的P2.0,P2.1,P2.2,南北则分接P2.3,P2.4,P2.5,来对交通灯灯进行显 示控制。如图2.4所示图2.4发光二极管接线图62.2.4外部中断由四个按钮组成,分别来控制YELLOW、RED、GREEN灯,还有个是复位控制功能:按下YELLOW键四个路口的黄灯闪烁,暂停计时。按下RED键时,暂 停计时,南北路口绿灯亮,东西红灯亮,让南北通行的紧急车辆通过。按下GREEN 键时东西路口绿灯亮,南北路口红灯亮,让东西的紧急车辆通过。当

11、紧急车辆通 过后按下reset键复位,红绿灯恢复正常,重新开始计时。73系统软件设计系统软件的设置主要包含延迟时间设计、显示程序设计以及中断切换程序设 计。单片机应用系统软件设计一般应从软件总框图的设计开始,总框图主要应用 于表现单片机应用系统软件功能模块的划分以及各软件功能模块之间的关系,接 下来的软件设计则是各软件功能模块的编程实现。对较为复杂的软件功能模块,还需要画出更详细的框图或流程图,作为编写源程序的依据编写。3.1设计流程图(1)当有特殊车辆通过时框图,如图3.13.1中断流程图8(2)总体流程图如图3.2图3.2总框图3.2主程序ORG AJMP ORG LJMP ORG LJM

12、P ORG LJMP ORG MAIN:0000HMAIN 0003H INSER2 0013H INSERI 001BH INSER0030HSETB SETB SETB SETB SETB SETB ORG LJMPEAEXOITOEXIIT1ET10090HSTART9ORG 0100HSTART:MOV TMOD,#61H;置TO为工作方式1MOVTH0,#3CH;置TO定时初值50msMOVTL0,#0B0HMOVTH1,#OFFHMOVTL1,#OFFHCLRTF1CLRTFOSETBTROSETBTRI;启动TOCLRAMOVPl,A;关闭不相关的LEDMOVP0,ALOOP:M

13、OV R2,#20;置Is计数初值,50ms*20=lsMOVR3,#25;红灯亮20sMOVSECOND 1,#30;东西路口计时显示初值25s;南北路口计时显示初值25sLCALLDISPLAY104.验证仿真将汇编程序导入AT89c52中,运行仿真图,数码管开始倒计时,南北绿灯亮,东西红灯亮。如图4.14.1总体验证仿真图正常情况下的交通灯显示状况(南北方向绿灯通行,东西方向红灯禁行):东西方向的 红灯(发光二极管)左端由P2.2输出的高电平,右端为接地输出的低电平,则红灯亮;南 北方向的绿灯(发光二极管)上端由P2.3输出的高电平,下端接地输出的低电平,则绿灯 亮。如图4.211图4.

14、2南北绿灯亮、东西红灯亮电路25s倒计时结束后开始5s倒计时,南北路口的绿灯闪烁,计时到最后2s时,南北路口黄灯亮.如图4.34.3南北黄灯亮、东西红灯亮电路黄灯亮两秒后,东西绿灯亮,南北红灯亮。如图4.4124.4南北红灯亮、东西绿灯亮电路四个外部中断按钮控制特殊车辆通行时的要求,当按下YELLOW键时,P2.1 以及P2.4输出高低电平,当为低电平时,发光二极管无法显示,当输出为高电 平时,发光二极管显示;所以当交替输出高低电平时,发光二极管交替闪烁。如 图4.4图4.5按下YELLOW键后黄灯闪烁13按钮“RED”连接单片机芯片,用来控制使得系统,使得南北方向长久通行,东西方向禁行,并暂

15、停计时。当南北路特殊车辆通过时,由P3.3 口控制如图4.6图4.6按下RED键南北绿灯,东西红灯按钮“GREEN”连接单片机芯片,用来控制使得系统,使得东西方向长久通行,南北方向禁行,并暂停计时。当东西路路特殊车辆通过时,由P3.5 口控制如图 4.7图4.7按下GREEN键,东西绿灯,南北红灯145.课程设计总结通过本次的单片机课程设计,让我进一步认识了有关单片机的一些编程和制 作类软件。在Keil+Proteus6环境下进行元器件之间的连线和编译与仿真,及时 检查元器件的放置、连线是否有错误。综合课程设计让我把以前学习到的知识得到巩固和进一步的提高认识,对已 有知识有了更进一步的理解和认

16、识。在此,由于自身能力有限,在课程设计中碰 到了很多的问题,但通过查阅相关书籍、资料以及和周围同学交流后都得以一一 解决。通过这次毕业设计,使我得到了一次用专业知识、专业技能分析和解决问题 全面系统的锻炼。使我在单片机的基本原理、单片机应用系统开发过程,以及在 常用编程设计思路技巧的掌握方面都能向前迈了一大步,为日后成为合格的应用 型人才打下良好的基础。在此次课程设计过程中,我们把单片机的理论知识用于实践中。使理论与实 践相结合,使我的理论知识的到了巩固。在查资料翻阅资料的过程中也丰富了我 的知识跟阅历。15 16学.。5赫建国主编单片机载电子电路设计中的应用北京清华大4余发山,单片机原理及应

17、用技术北京中国矿业大学.。3孙育才,MC S-51系列单片微型计算机及其应用,东南大学.。2徐仁贵,廖哲智,单片微型计算机应用技术,机械工业.。1李朝青,单片机原理及其接口技术,北京航空航天大学。参考文献附:程序源程序SECOND1 EQU30H;东西路口计时寄存器;南北路口计时寄存器DBUF EQU40H;显示码缓冲区1LED_G1 BITP2.0;显示码缓冲区2;东西路口绿灯LED_Y1 BITP2.1;东西路口黄灯LED_R1 BITP2.2;东西路口红灯LED_G2 BITP2.3;南北路口绿灯LED_Y2 BITP2.4;南北路口黄灯LED_R2 BITP2.5;南北路口红灯ORG0

18、000HAJMPMAINORG0003HLJMPINSER2ORG0013HLJMPINSERIORG001BHLJMPINSERORG0030HMAIN:SETBEASETBEXOSETBITOSETBEXISETBIT1SETBET1ORG 0090HLJMPSTARTORG0100HSTART:MOVTMOD,#61H;置TO为工作方式1MOVTH0,#3CH;置TO定 时初值50msMOVTL0,#0B0HMOVTH1,#OFFHMOVTL1,#OFFHCLRTF1CLRTFOSETBTROSETBTRI;启动TOCLR AMOVPl,A;关闭不相关的LED17MOV P0,ALOOP

19、:MOV R2,#20;置 Is 计数初值,50ms*20=lsMOVR3,#25;红灯亮 20sMOVSECOND 1,#30;东西路口计时显示初值25s;南北路口计时显示初值25sLCALLDISPLAYLCALLSTATE1;调用状态1WAIT1:JNB TFO,WAIT1;查询 50ms 到否CLRTFOMOVTH0,#3CH;恢复TO定时初值50msMOVTL0,#0B0HDJNZR2,WAIT1;判断Is到否?未到继续状态1MOVR2,#20;置50ms计数初值DECSECOND 1;东西路口显示时间减1s;南北路口显示时间减1sLCALLDISPLAYDJNZR3,WAIT1;状

20、态 1 维持 20sMOVR2,#5;置 50ms 计数初值5*4=20MOVR3,#3;绿灯闪3sMOVR4,#4;闪烁间隔200msMOVSECOND 1,#5 冻西路口计时显示初值5s;南北路口计时显示初值5sLCALLDISPLAYWAIT2:LCALL STATE2;调用状态 2JNBTF0,WAIT2;查询 50ms 到否CLRTFOMOVTH0,#3CH:恢复TO定时初值50msMOVTL0,#0B0HDJNZR4,WAIT2;判断200ms到否?未到继续状态2CPLLED_G1 冻西绿灯闪MOVR4,#4;闪烁间隔200msDJNZR2,WAIT2;判Is到否?未到继续状态2M

21、OVR2,#5;置50ms计数初值DECSECOND 1;东西路口显示时间减1s;南北路口显示时间减1sLCALLDISPLAYDJNZR3,WAIT2;状态2维持3sMOVR2,#20;置50ms计数初值MOVR3,#2;黄灯闪2sMOVSECOND 1,#2;东西路口计时显示初值2s;南北路口计时显示初值2sLCALLDISPLAYWAIT3:LCALL STATE3;调用状态 3JNBTF0,WAIT3;查询 100ms 到否18LCALL DISPLAYCLRTFOMOVTH0,#3CH;恢复TO定时初值100msMOVTL0,#0B0HDJNZR2,WAIT3;判断Is到否?未到继续

22、状态3MOVR2,#20;置100ms计数初值DECSECOND1;东西路口显示时间减1s;南北路口显示时间减1sLCALLDISPLAYDJNZR3,WAIT3;状态3维持2sMOVR2,#20;置50ms计数初值MOVR3,#25;红灯闪20sMOVSECOND 1,#30;东西路口计时显示初值25s;南北路口计时显示初值25sLCALLDISPLAYWAIT4:LCALL STATE4;调用状态4JNBTF0,WAIT4渣询100ms到否CLRTFOMOVTH0,#3CH;恢复T0定时初值100msMOVTL0,#0B0HDJNZR2,WAIT4;判断1s到否?未到继续状态4MOVR2,

23、#20;置100ms计数初值DECSECOND1;东西路口显示时间减1s;南北路口显示时间减1sLCALLDISPLAYDJNZR3,WAIT4;状态4维持20sMOVR2,#5;置50ms计数初值MOVR4,#4;红灯闪20msMOVR3,#3;绿灯闪3sMOVSECOND 1,#5;东西路口计时显示初值5s;南北路口计时显示初值5sLCALLDISPLAYWAIT5:LCALL STATE5;调用状态5JNBTF0,WAIT5渣询100ms到否CLRTFOMOVTH0,#3CH;恢复T0定时初值100msMOVTL0,#0B0HDJNZR4,WAIT5;判断200ms到否?未到继续状态5C

24、PLLED_G2;南北绿灯闪MOVR4,#4;闪烁200msDJNZR2,WAIT5;判断1s到否?未到继续状态5MOVR2,#5;置100ms计数初值DECSECOND1;东西路口显示时间减1s;南北路口显示时间减1s19DJNZR3,WAIT5;状态5维持3sMOVR2,#20;置50ms计数初值MOVR3,#2;红灯闪2sMOVSECOND 1,#2;东西路口计时显示初值2s;南北路口计时显示初值2sLCALLDISPLAYWAIT6:LCALL STATE6;调用状态6JNBTF0,WAIT6;查询100ms到否CLRTFOMOVTH0,#3CH;恢复T0定时初值100msMOVTL0

25、,#0B0HDJNZR2,WAIT6;判断Is到否?未到继续状态6MOVR2,#20;置100ms计数初值DECSECOND1;东西路口显示时间减1s;南北路口显示时间减1sLCALLDISPLAYDJNZR3,WAIT6;状态6维持2sLJMPLOOP;大循环STATE 1:;状态1SETBLED_G1;东西路口绿灯亮CLRLED_Y1CLRLED_R1CLRLED_G2CLRLED_Y2SETBLED_R2;南北路口红灯亮RETSTATE2:;状态2CLRLED_Y1CLRLED_R1CLRLED_G2CLRLED_Y2SETBLED_R2;南北路口红灯亮RETSTATE3:;状态3CLR

26、LED_G1CLRLED_R1CLRLED_G2CLRLED_Y2SETBLED_R2;南北路口红灯亮SETBLED_Y1;东西路口绿灯亮RETSTATE4:;状态4CLRLED_G1CLRLED_Y120SETBLED_R1;东西路口红灯亮SETBLED_G2;南北路口绿灯亮CLRLED_Y2CLRLED_R2RETSTATE5:;状态5CLRLED_G1CLRLED_Y1SETBLED_R1;东西路口红灯亮CLRLED_Y2CLRLED_R2RETSTATE6:;状态6CLRLED_G1CLRLED_Y1SETBLED_R1;东西路口红灯亮CLRLED_G2CLRLED_R2SETBLED

27、_Y2;南北路口红灯亮RETDISPLAY:;数码显示MOVA,SECOND 1;东西路口计时寄存器MOVB,#10;16进制数拆成两个10进制数DIVABMOVDBUF+1,AMOVA,BMOVDBUF,A;南北路口计时寄存器;16进制数拆成两个10进制数Loopl:MOV A,DBUFACALLDP10MOVA,DBUF+1ACALLDP11RETDP10:MOV DPTR,#LEDMAPMOVCA,A+DPTRMOVP0,ARETDP11:MOV DPTR,#LEDMAPMOVCA,A+DPTRMOVPl,ARETINSER:PUSHPSWPUSHACC21INSERI:INSER2:S

28、ETB LED_G1CLR LED_Y1CLR LED_R1CLR LED_G2CLR LED_Y2SETB LED_R2MOV DPTR,#LEDMAPMOV A,#17MOVC A,A+DPTRMOV P0,AMOV A,#17MOVC A,A+DPTRMOV Pl,AJB P2.7,INSERPOP ACCPOP PSWRETIPUSH PSWPUSH ACCSETB LED_G2CLR LED_Y1CLR LED_R2CLR LED_G1CLR LED_Y2SETB LED_R1MOV DPTR,#LEDMAPMOV A,#17MOVC A,A+DPTRMOV P0,AMOV A,#1

29、7MOVC A,A+DPTRMOV Pl,AJB P2.7,INSERIPOP ACCPOP PSWRETIPUSH PSWPUSH ACCMOV DPTR,#LEDMAPMOV A,#17MOVC A,A+DPTRMOV P0,AMOV A,#1722MOVCA,A+DPTRMOVPl,AMOVR4,#4MOVR2,#2CLRTFOMOVTMOD,#01HMOVTH0,#3CHMOVTL0,#0B0HDANG1:SETBLED_Y2CLRLED_R1CLRLED_R2CLRLED_G1CLRLED_G2SETBLED_Y1DANG:JNBTFO,DANGCLRTFOMOVTH0,#3CHMOVTL0,#0B0HDJNZR4,DANGMOVR4,#4CPLLED_Y1CPLLED_Y2DJNZR2,DANGJBP2.7,INSER2POPACCPOPPSWRETILEDMAP:ENDDB3FH,06H,5BH,4FH,66H,6DH;o,1,2,3,4,5DB7DH,07H,7FH,6FH,77H,7CH;6,7,8,9,A,BDB58H,5EH,7BH,71H,0,40H;C,D,E,F,-23附2:元件清单单片机(AT89C 52),数码管、发光二极管、电阻电容若干,开关若干。24

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服