欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    基于单片机交通信号灯设计说明.doc

    • 资源ID:42289470       资源大小:4.44MB        全文页数:22页
    • 资源格式: DOC        下载积分:9金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于单片机交通信号灯设计说明.doc

    .单片机系统课 程 设 计成绩评定表设计课题 : 基于单片机的交通信号灯设计 学院名称 : 电气工程学院 专业班级 : 电气F1206 学生 : 学 号 : 指导教师 : 设计地点 : 31-510 设计时间 : 2014-12-292015-01-09 指导教师意见:成绩: 签名: 年 月 日20 / 22单片机系统课 程 设 计课程设计名称: 基于单片机的交通信号灯设计 专 业 班 级 : 电气F1206 学 生 姓 名 : 学 号 : 指 导 教 师 : 课程设计地点: 31-510 课程设计时间: 2014-12-292015-01-09 单片机系统 课程设计任务书学生专业班级电气F1206学号题 目基于单片机的交通信号灯设计课题性质工程设计课题来源自拟指导教师主要容(参数)利用89C51单片机设计交通信号灯系统,实现以下功能1、在正常的工作情况下,系统的红、黄、绿灯交替进行转换,而且在对应的LED显示器上可以以到计时的方式显示剩余时间。2、在紧急的情况下,两组交通灯同时为红灯,禁止所有的车辆通行,只允许特殊的车辆通过,当紧急的车辆通过后系统要可以通过手动按钮恢复以前的正常工作情况方式。任务要求(进度)第1-2天:熟悉课程设计任务与要求,查阅技术资料,确定设计方案。第3-4天:按照确定的方案设计单元电路。要求画出单元电路图,元件与元件参数选择要有依据,各单元电路的设计要有详细论述。第5-6天:软件设计,编写程序。第7-8天:实验室调试。第9-10天:撰写课程设计报告。要求容完整、图表清晰、文理流畅、格式规、方案合理、设计正确,篇幅不少于6000字。主要参考资料1 迎新单片微型计算机原理、应用与接口技术(第2版)M:国防工业,20042 晶 主编 Prote199高级应用 人民邮电,2000 3 于海生 编著 微型计算机控制技术 清华大学2003.44 志良 编著 单片机原理与控制技术M 机械工业,20055 蒋方君 编著 在论循环时序电路的简便设计J 机电一体化,20056 徐维祥.单片微型机原理与应用 理工大学,2006审查意见系(教研室)主任签字: 年 月 日 目 录1 绪论31.1 交通信号灯概况31.2 本文研究容32 总体方案设计33 硬件电路53.1 时钟电路设计53.2 复位电路设计63.3 显示电路设计63.3.1 倒计时器电路设计63.3.2 红绿灯显示电路设计74 软件设计84.1 软件实现功能综述84.2 流程图设计84.2.1 主程序流程图设计84.2.2 中断流程图设计85 仿真电路96 总结12参考文献13附录A 系统原理图14附录B 源程序151 绪论 1.1 交通信号灯概况十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊,那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。由于传统的交通灯控制管理系统一般有数字电路构成,电路复杂,体积大,成本高。而本系统采用单片机为主控元件,能够简单,方便的实现交通灯的控制管理。系统适应于十字路口道路。在正常的工作情况下,系统的红、黄、绿灯交替进行转换,而且在对应的LED显示器上可以以到计时的方式显示剩余时间。在紧急的情况下,两组交通灯同时为红灯,禁止所有的车辆通行,只允许特殊的车辆通过,当紧急的车辆通过后系统要可以通过手动按钮恢复以前的正常工作情况方式。进人正常的工作。因此,该系统设计方便、实用,而且硬件的元件连接又是十分的简单1.2 本文研究容所设计的交通灯管理系统主要有主控摸块(89C51单片机)。译码/驱动电路,时钟电路,交通灯模拟部分,紧急情况手动控制部分与剩余时间显示部分等组成。利用单片机89C51定时功能,是红、黄、绿灯分别点亮和熄灭一段时间,并且通过与显示器的连接可以显示剩余时间。而且当出现特殊或紧急的情况时,可以通过紧急情况手动控制单元的按钮进行特别的处理,而当紧急的情况消失后,系统又可以通过解除按钮恢复正常工作。令其中断方式为1,当定时时间到时则立即执行中断程序,并转向下一个状态,同时调用显示子程序,在LED显示器上显示剩余时间。2 总体方案设计主要设计,通过单片机AT89C51对外设各个硬件进行连接,并通过软件的设计,对十字路口交通信号灯进行模拟控制。时钟电路,产生单片机工作所需要的时钟信号,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格工作。AT89C51通过连接硬件,并对信号做出处理。锁存器,锁存信息。74LS373,外设扩展CPU并行接口。LED,显示剩余时间。交通灯,指示车辆通行。图2.1 交通灯总设计方案框图所设计的交通灯管理系统主要有主控摸块(89C51单片机)。译码/驱动电路,时钟电路,交通灯模拟部分,紧急情况手动控制部分与剩余时间显示部分等组成。2.2AT89C51AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。单片机的引脚除了电源、复位、时钟接入和用户I/O口外,其余引脚都是为了实现系统扩展而设置的。这些引脚构成了三总线结构,即16位地址总线(AB)、8位数据总线(DB)和8位控制总线(CB)。数据总线:DOD7、PA0PA7、PB0PB7、PC0PC7,此32条数据总线均为双向三态,其中D0D7用于传送CPU与74ls373之间的命令与数据,PAOPA7、PB0PB7、PC0PC7分别于ABC3口对应,用于74ls373与外设之间的数据传送数据。控制线:、RESET:读信号,输入信号线,低电平有效。表示CPU对74LS373进行读操作。:写信号,输入信号线,低电平有效。表示CPU对74LS373进行写操作。RESET:复位信号,输入信号线,高电平有效。寻址线:、A0、A1:片选信号,输入信号线,低电平有效。3 硬件电路3.1 时钟电路设计时钟电路由一个晶体振荡器12MHZ和两个33PF的瓷片电容组成。时钟电路产生单片机工作所需要的时钟信号,而时序所研究的是指令执行中各信号之间的相互关系。单片机本身就如一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格工作。单片机芯片部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,输出端为引脚XTAL2,在芯片外部通过两个引脚跨接晶体振荡器和微调电容,形成反馈电路,可得时钟电路图(图3.1)。 图3.1 时钟电路图振荡电路产生的振荡脉冲并不直接使用,而是经分频后再为系统所用振荡脉冲经过二分频后才作为系统的时钟信号。在二分频的基础上再三分频产生ALE信号,再二分频的的基础上再六分频得到机器周期信号。晶振Y1也可以采用6MHz或者11.0592MHz,在正常工作的情况下可以采用更高频率的的晶振,晶振的振荡频率直接影响单片机的处理速度,频率越大单片机处理速度越快。本设计采用11.0592MHz,图中用约等于12MHz。起振电容C1、C2一般采用1533uF,并且电容离晶振越近越好,晶振离单片机越近越好。本设计中C1、C2采用33uF。3.2 复位电路设计单片机在启动时都需要复位,以使CPU与系统各部件处于确定的初始状态,并从初态开始工作。89系列单片机的复位信号是从RST引脚输入到芯片的施密特触发器中的。当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则CPU就可以响应并将系统复位。单片机系统的复位方式有:手动按钮复位和上电复位。采用专用复位电路芯片构成复位电路在实际应用系统中,为了保证复位电路可靠的工作,常将RC电路接施密特电路后再接入单片机复位端;或采用专用的复位电路芯片。复位电路的极性电容C1的大小直接影响单片机的复位时间,一般采用1030uF,容值越大需要的复位时间越短。(如图3.2)图3.2复位电路图3.3 显示电路设计3.3.1 倒计时器电路设计倒计时器的电路原理图主要有CPU核、实时日历时钟芯片和现实与其驱动电路三部分组成。交通信号灯模拟控制的硬件电路如图3.3.1所示。从图中可以看出,交通信号灯的控制通过单片机的P1口实现。当端口给出高电平时,相应的指示灯才亮;而当端口给出低电平时,相应的指示灯处于灭的状态。图3.3.1倒计时器显示电路3.3.2 红绿灯显示电路设计其中在本次设计中,红绿灯显示电路分别由红黄绿三种颜色发光二极管显示,选用共阴极的LED,由于P0口有上拉电阻,所以选用O直接驱动,在共阴极端用NPN型的三极管扩流,简化了电路的复杂度。(如图3.3.2)图3.3.2 红绿信号灯显示电路图4 软件设计4.1 软件实现功能综述交通信号灯模拟控制的软件设计也比较简单。其基本思路是利用软件延时,对相应信号灯的点亮时间加以控制。4.2 流程图设计4.2.1 主程序流程图设计图4.2.1主程序流程图4.2.2 中断流程图设计本设计的中断程序的功能是在有重要车辆通过时,相应车道的信号灯持续为绿灯,而对应车道的信号灯则持续为红灯,直到重要车辆通过后,恢复正常点亮规律图4.2.2 中断程序流程图5 仿真电路本设计通过proteus 仿真节省了大量的做实物的时间,为能够短时间做好设计提供了很大帮助。Proteus ISIS是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机与其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。支持主流单片机系统的仿真。同时支持第三方的软件编译和调试环境,如Keil C51 uVision2等软件。具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。根据功能要求分别仿真各种情况下的亮灯情况,具体如下:如图5.1仿真图所示,正常情况下主干道方向亮绿灯,主干道放行。支干道方向亮红灯,支图5.1红灯仿真图如图5.2所示主干道方向亮黄灯3秒,支干道方向亮红灯:图5.2黄灯仿真图如图5.3仿真图所示,有紧急车通过时按下按键K0时,主、支干道均亮红灯特殊指示灯亮:图5.3特殊指示灯仿真图6 总结在这次设计中遇到了很多实际性的问题,在实际设计中才发现,书本上理论性的东西与在实际运用中的还是有一定的出入的,所以有些问题不但要深入地理解,而且要不断地更正以前的错误思维。一切问题必须要靠自己一点一滴的解决,而在解决的过程当中你会发现自己在飞速的提升。在整个设计过程中大部分时间是用在程序上面的。很多子程序是可以借鉴书本上的,但怎样衔接各个子程序才是关键的问题所在,这需要对系统的结构很熟悉。因此可以说系统的设计是软件和硬件的结合,二者是密不可分的。通过这次课程设计我也发现了自身存在的不足之处,虽然感觉理论上已经掌握,但在运用到实践的过程中仍有意想不到的困惑,经过一番努力才得以解决。这次设计以单片机AT89C51作为城市交通灯的控制核心,模拟定周期交通信号灯的工作状态。以单片机89c51为主,设计连接数据存储器,复位电路,时钟电路。对输入输出接口进行设计连接。本系统就是充分利用了AT89C51的I/O引脚。系统采用51系列的AT89C51单片机和可编程并行I/O接口芯片74ls373为中心器件来设计交通信号灯控制器,实现了AT89C51单片机的设置交通信号灯点亮时间的功能;交通灯的点亮采用了 LED;电源则接220V交流电源,最后对各个程序进行软件的设计编程。并对所设计的容进行仿真,测试。系统设计简便、实用、操作简单、程序设计简便。参考文献1 迎新单片微型计算机原理、应用与接口技术(第2版)M:国防工业,20042 晶 主编 Prote199高级应用 人民邮电,2000 3 于海生 编著 微型计算机控制技术 清华大学2003.44 志良 编著 单片机原理与控制技术M 机械工业,20055 蒋方君 编著 在论循环时序电路的简便设计J 机电一体化,20056 徐维祥.单片微型机原理与应用 理工大学,2006附录A 系统原理图系统原理图附录B 源程序主程序清单ORG 0000H   AJMP MAIN  ORG 00013H   LJMP INT9       跳到跳到特种车辆自动服务程序.数字显示代码. TAB: DB 3FH,6H,5BH,4FH,66H,6DH,7DH,7H,7FH,6FH /*主程序*/            ORG 0300H    MAIN: MOV 25H,#60   南北通行时间初始值,存到25H单元        MOV 26H,#30   东西通行时间初始值,存到26H单元   SETB IT0          外部中断一边沿触发   MOV IE,#8FH       开中断 .南北绿灯东西红灯.  NBLD: MOV R1,25H   为南北方向显示时间做准备 NBLD1:  MOV 20H,R1  南北通行时间60秒(25h)=60(NBLD即东西绿灯)    MOV P2,#1EH     点亮南北绿灯东西红灯  MOV A,R1               ADD A,#3               MOV 21H,A     为东西方向显示时间做准备   LCALL DISP1      显示通行所剩时间,其中有0.5秒延时    LCALL DISP1  再次显示以便数码管不闪,且再延时0.5秒以便凑够一秒  DJNZ R1,NBLD1    判断60秒是否已完,若未完则从新显示、延时  .南北黄灯闪东西红灯. ShanHD: MOV R2,#3       黄灯闪亮3秒 HD:  MOV P2,#1DH       点亮黄灯   MOV 22H,R2       为显示时间做准备   LCALL DISP2       黄灯闪亮剩时显示其中延时0.5秒  MOV P2,#1FH       熄灭黄灯  LCALL DISP2       显时,且再延时0.5秒以便凑够1秒  DJNZ R2,HD    判断3秒是否已完,若未完则从新闪灭、延时和显示 .南北红灯东西绿灯. DXLD: MOV R3,26H     东西通行30秒(26H)=30, (DXLD即东西绿灯)DXLD1: MOV P2,#33H       点亮南北红灯东西绿灯  MOV 24H,R3       为东西方向显示时间做准备  MOV A,R3              ADD A,#3              MOV 23H,A         为南北方向显示时间做准备 LCALL DISP3       时间显示其中有0.5秒延时 LCALL DISP3       凑够1秒时间 DJNZ R3,DXLD1     判断30秒是否已完 .南北红灯东西黄灯闪. ShanHD1: MOV R2,#3       转入黄灯闪亮3秒  HD1: MOV 22H,R2        为显示做准备  MOV P2,#2BH       点亮南北红灯东西黄灯   LCALL DISP2       显示时间,并延时0.5秒   MOV P2,#3BH       点亮南北红灯关闭东西黄灯  LCALL DISP2       显时,且再延时0.5秒以便凑够1秒   DJNZ R2,HD1      判断3秒是否到,若未到继续闪灭东西黄灯  AJMP  NBLD        主程序到此完.延时程序. .  DELAY3: MOV R6,#1 5ms延时(5ms=50*50*2us)  DE61: MOV R0,#1   DE71: DJNZ R0,DE71      DJNZ R6,DE61    RET    DELAY:   ACALL DELAY1      10ms延时  ACALL DELAY1   RET   DELAY1: MOV R6,#50 5ms延时,(5ms=50*50*2us)  DE6: MOV R0,#50   DE7: DJNZ R0,DE7   DJNZ R6,DE6  RET .南北通行的时间显示子程序.  DISP1: MOV P0,#0        熄灭数码管    MOV R7,#25        以下调用四次5毫秒延时程序,故25*4*5毫秒=0.5秒  RP1: MOV A,20H        南北方向要显示时间移到寄存器A       MOV DPTR,#TAB      要显示的数字代码表首地址  MOV B,#10    DIV AB          要显示的时间与10相除,求出十位和个位  MOVC A,A+DPTR    找到十位的显示代码  MOV P1,#00001110B; 选择南北数码管十位片  MOV P0,A          送出十位显示代码  LCALL DELAY1      延时5ms以点亮数码管  MOV A,B           把个位数移到寄存器A   MOVC A,A+DPTR    找到个位数显代码  MOV P1,#00001101B  选择南北数码管个位片  MOV P0,A          送出个位数显示代码 LCALL DELAY1      延时5ms以点亮数码管  MOV A,21H         东西方向要显时间移到寄存器A  MOV DPTR,#TAB     要显示的数字代码表首地址 MOV B,#10   DIV AB           要显示的时间与10相除,求出十位和个位 MOVC A,A+DPTR    找到十位的显示代码 MOV P1,#00001011B; 选择东西数码管的十位片 MOV P0,A          送出十位显示代码 LCALL DELAY1        延时5ms以点亮数码管 MOV A,B           把个位数移到寄存器A  MOVC A,A+DPTR    找到个位的显示代码 MOV P1,#00000111B  选择东西数码管的个位片 MOV P0,A          送出个位显示码 LCALL DELAY1   DJNZ R7,RP1       是否已循环25次  RET  .黄灯的时间显示子程序.  DISP2: MOV P0,#0         熄灭数码管    MOV R7,#25        以下调用两次0.01秒延时程序, RP2: MOV A,22H        要显示的时间移到寄存器A     MOV DPTR,#TAB     要显示的数字代码表首地址   MOV B,#10      DIV AB         要显示的时间与10相除,求十位和个位  MOVC A,A+DPTR    找到十位的显示代码   MOV P1,#00001010B; 选择南北数码管十位片和东西数码管十位片   MOV P0,A          送出十位显示代码 LCALL DELAY      延时10ms以点亮数码管  MOV P1,#00000101B  选择东西南北数码管个位片   MOV A,B           把个位数移到寄存器A     MOVC A,A+DPTR    找到个位数显示代码  MOV P0,A          送出个位数显示代码 LCALL DELAY       延时10ms一点亮数码管 DJNZ R7,RP2  RET  .东西通行的时间显示子程序.DISP3: MOV P0,#0         熄灭数码管  MOV R7,#25        以下调用4次调用延时程序, RP3: MOV A,23H        要南北方向显示的时间移到寄存器A   MOV DPTR,#TAB     要显示的数字代码表首地址   MOV B,#10      DIV AB        要显示的时间与10相除,求出十位和个位  MOVC A,A+DPTR    找到十位的显示代码 MOV P1,#00001110B; 选择南北数码管十位片   MOV P0,A          送出十位显示代码  LCALL DELAY1      延时5ms以点亮数码管   MOV A,B           把个位数移到寄存器A  MOVC A,A+DPTR    找到个位数显示代码 MOV P1,#00001101B; 选择南北道数码管个位片 MOV P0,A       送出个位数显示代码  LCALL DELAY1      延时5ms一点亮数码管 MOV A,24H      要东西方向显示的时间移到寄存器A   MOV B,#10   DIV AB       要显示的时间与10相除,求出十位和个位 MOVC A,A+DPTR    找到十位的显示代码 MOV P1,#00001011B    MOV P0,A          送出十位显示代码 LCALL DELAY1      延时5ms以点亮数码管 MOV A,B  MOVC A,A+DPTR   MOV P1,#00000111B  选择东西数码管个位片 MOV P0,A           送出个位显示代码 LCALL DELAY1  DJNZ R7,RP3  RET  .特殊车辆通过的时间显示子程序.  DISP4: MOV P0,#0         熄灭数码管  MOV R7,#50        以下调用两次0.01秒延时程序, RP4:CLR P3.0   MOV A,27H         要显示的时间移到寄存器A  MOV DPTR,#TAB     要显示的数字代码表首地址 MOV B,#10   DIV AB     要显示的时间与10相除,求出十位和个位 MOVC A,A+DPTR    找到十位的显示代码 MOV P1,#00001010B; 选择南北、东西数码管十位片 MOV P0,A          送出十位显示代码 LCALL DELAY       延时10ms以点亮数码管 MOV A,B           把个位数移到寄存器A  MOVC A,A+DPTR    找到个位数显示代码 MOV P1,#00000101B; 选择南北、东西数码管的个位片 MOV P0,A          送出个位数显示代码 LCALL DELAY       延时10ms一点亮数码管 DJNZ R7,RP4  RET  .特殊车辆通过,中断服务程序.  INT9:  PUSH P0     PUSH ACC     CLR P3.0      MOV P2,#1BH       点亮东西南北红灯  MOV R4,#15       特殊车辆通过时间15秒 QHD:  MOV 27H,R4        为显示做准备  LCALL DISP4       显示时间  MOV R5,#5   BEEP: CLR P3.1  LCALL DELAY3  SETB P3.1   DJNZ R5, BEEP   LCALL DELAY3  DJNZ R4,QHD   SETB P3.0   POP ACC   POP P0   RETI  END 

    注意事项

    本文(基于单片机交通信号灯设计说明.doc)为本站会员(可****阿)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开