ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:96.54KB ,
资源ID:4269001      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4269001.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机交通灯课程设计.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单片机交通灯课程设计.docx

1、单片机交通灯课程设计课程设计报告2013 2014学年第 1学期课程名称 51单片机交通灯程序设计设计题目 交通灯 学生姓名 学 号 专业班级 指导教师 一前言3二功能概述3三设计思路3四硬件介绍4五软件程序设计7六电路图及仿真实现10七总结11八源程序12参考文献14 一前言近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的就

2、是交通信号灯的自动指挥系统。交通信号灯控制方式很多,在学习了单片机的有关知识之后,运用相关知识来设计完成交通信号灯。二功能概述2.1设计任务:交通灯的硬件和软件设计2.2设计目的1.进一步熟悉和掌握单片机的结构和工作原理。2.掌握单片机的接口技术及相关外围芯片的外特性,控制方法。3.通过课程设计,掌握以单片机为核心的电路设计的基本方法和技术,了解有关电路参数的计算方法。4.通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。5.通过完成一个包括电路设计和程序开发的完整过程,为我们今后从事相应工作打下基础。三设计思路交通灯的变化规律按照常规我们假设一个十字路口为东西南北走向(支干道)。

3、初始状态为状态1,南北方向(主干道)绿灯通车,东西方向红灯。经过过一段时间(30S)转换状态2,南北方向绿灯闪几次转亮黄灯,延时5S,东西方向仍然红灯。再转换到状态3,东西方向绿灯通车,南北方向红灯。过一段时间(20S)转换到状态4,东西方向绿灯闪几次转亮黄等,延时5S,南北方向仍然红灯。最后循环至南北绿灯,东西红灯。在这些状态下,有时钟倒数计时。四硬件介绍基础知识交通灯控制器实例主要使用了89C51单片机的定时器计数器,基础知识主要包括交通灯的变化规律、定时器计数器的概念、定时器计数器的相关寄存器、定时器计数器的4种工作方式、以及定时器计数器的变成。4.1定时器/计数器定时器计数器是单片机中

4、最常用、最重要的功能模块之一,本节通过交通灯控制器实例来演示定时器的使用,并复习如何使用散转程序。首先介绍交通灯以及定时器计数器的基础知识,接着介绍本实例的硬件电路构成,然后逐步分析定时器的变成以及程序的全貌,最后总结一下本实例的技巧与注意点。4.2定时器计数器的概念89C51单片机内有两个可编程的定时器计数器T0、T1。当定时器计数器用作“定时器”时,每经过1个机器周期(12个时钟周期),计数器加1。当定时器计数器用作“计数器”时,计数器在对应的外部输入管脚(T0为P3.4引脚,T1为P3.5引脚)上每发生一次1到0的跳变时加1。使用“计数器”功能时,外部输入每个机器周期被采样一次。当某一周

5、期管脚状态采样为高电平而下一周期采样为低电平时,计数器加1。由于检测下降沿跳变需要两个机器周期(24个时钟周期)的时间,所以技术频率最大值只能为时钟周期的124。计数器对外部输入信号的占空比并无限制,但为了保证给定的电平信号在其改变之前至少被采样一次,外部输入信号必须至少保持一个完整的机器周期。4.3定时器计数器的相关寄存器与定时器计数器相关的寄存器有定时器计数器工作方式寄存器(TMOD)、定时器计数器控制寄存器(TCON)。TCON已经在2.5节受控输出实例中介绍过,因此,在本例中主要介绍TMOD寄存器。定时器计数器工作方式寄存器(TMOD),字节地址89H,不可进行位寻址。定时器计数器工作

6、方式寄存器(TMOD)的8位分为两组,高4位控制T1,低4位控制T0。TMOD每一位的功能如下。GATE:门控位。GATE0,仅由运行控制位TRX(X0,1)1来启动定时器计数器运行;GATE1,由运行控制位TRX(X0,1)1和外部中断引脚上的高电平共同来启动定时器计数器运行。CT:定时器模式和计数器模式选择位。CT0,为定时器模式;CT1,为计数器模式。M1、M0:工作方式选择位。M1、M0的4中编码对应4种工作方式,对应关系见表210。4.5定时器计数器的4种工作方式定时器计数器的4种工作方式下的逻辑结构如表所示。M1M2工作方式00方式0,为13位定时器/计数器01方式1,为16位定时

7、器/计数器10方式2,为初值自动重装的8位定时器/计数器11方式3,仅T0有效,将T0分为两个8位定时器/计数器(1)方式0。定时器计数器的工作方式0称为13位定时器计数器的。它由TLX的低5位和TLX的8位构成13位的计数器,此时TLX的高3位未使用。改工作方式是为了和48系列单片机兼容而设计的一种工作方式,一般情况不使用方式0进行定时计数。方式0的控制方式与方式1完全相同,下面重点介绍方式1的控制方式 。(2)方式1定时器计数器的工作方式1称为16位定时器计数器。它由TLX和THX构成,TLX计数溢出向THX进位,THX计数溢出置位TCON中溢出标志位TFX。GATE位的状态定时器计数器运

8、行控制取决于TRX一个条件还是TRX和INTX引脚这两个条件。当GATE=0时,则只要TRX被置为1,定时器计数器即被允许计数(定时器计数器的计数控制仅由TRX的状态确定,TRX=1计数,TRX=0停止计数)。当GATE=1时,定时器计数器是否计数由INTX输入的电平和TRX的状态共同确定:当TRX=1,且INTX=1时,才允许定时器计数器计数(定时器计数器的计数控制由TRX和INTX两个条件控制)。(3)方式2定时器计数器的工作方式0和方式1再计数溢出后,计数器的值为0,需要通过程序重新装入计数初值。定时器计数器的工作方式1称为初值自动重装的8位定时器计数器。在该工作方式下,TLX作为计数器

9、,当TLX计数溢出时,在置1溢出标志TFX的同时,还自动的将THX中的常数送至TLX,使TLX从该常数开始重新计数。这种工作方式可以省去用户软件中重装常数的程序,简化定时常数的计算方法(确定计数初值),可以相当精确地确定定时时间。(4)方式3工作方式3仅对定时器计数器0有效,在该工作方式之下,定时器计数器的0被拆成2个独立的定时器计数器:TL0、TF1。TL0使用T0的状态控制CT、GATE、TR0、INT0,而TH0被固定位一个8位定时器(不能作外部计数方式),并使用定时器计数器1的状态控制位TR1、和TF1,同时占用定时器T1的中断源。此时,定时器计数器1可设定为方式0、方式1和方式2,作

10、为串行口的波特率发生器。4.5 定时器计数器的编程(1)初始化定时器计数器的初始化编程包括以下几个部分。根据要求给定时器计数器方式寄存器(TMOD)送一个方式控制字,以设定定时器计数器的工作方式。根据需要给TH和TL寄存器送初值,以确定需要的定时时间或计数的初值。根据需要给中断允许寄存器(IE)送中断控制字,以开放相应的中断和设定中断优先级。给TCON寄存器送命令字以启动或禁止定时计数器的运行。(2)定时器计数器初值的计算。计数器初值:设计算器的模值位M,所需的计数值为C,计数初值设定为TC,则TC=M-C (M等于2的13次方,16次方,8次方)。定时器初值:设定时器的模值为M,需要的定时时

11、间为T,定时器的初值设定为TC,则TC=M-T/t(M等于2的13次方,16次方,8次方)。五软件程序设计交通灯控制器实例使用了89C51单片机的定时器/计数器,首先分定时器初始化,定时器中断服务程序两个部分介绍定时器计数器的软件编程,其次在画出程序流程图的基础上编写软件程序,并给出完整的交通灯控制器程序实例。5.1定时器初始化1.定时25s(包括20s主干道红灯且支干道绿灯、主干道红灯变绿灯前5s黄灯亮)为了使定时器时间准确,避免因为定时器重装而引起的累计误差,应将定时器设置为初值自动装置的8位定时器/计数器,即定时器工作在工作方式2。在12MHz晶振条件下,8位定时器的最长定时时间是0.2

12、56ms,取定 时时间为0.25ms,所以,定时0.5s需要定时器中断2000次。下面计算定时器的初值。定时器初值TC=M-T/t=256-250/1=6,因此TH0=06H,TL0=06H。定时器初始化程序如下,定时器T0设定为工作方式2,初始值为06H,自动重装入值为06H。T0-INIT; MOV TMOD,#00000010B ; 定时器T0工作方式2MOV TL0,#06H ; 设定时器T0的初始值 MOV TH0,#06H ; 设定时器T0的自动重装值 MOV TCON,#00010000B ; 定时器T0的使能 SETB EA ;中断允许总控制位使能 SETB ET0 ;T0中断

13、使能RET2. 定时35s(包括30s支干道红灯且主干道绿灯、支干道红灯变绿灯前5s黄灯亮)计算定时器的初值:因为方式2,最大计数为256,长度不够,使用方式0计数。方式0最大计数值为8192。定时器初值TC=M-T/t=256-350/1=1EA2H。由于TL0的高3位不用,所以计数初值为:F502H定时器初始化程序如下,定时器T0设定为工作方式0,初始值为高八位0F5H,低八位02H。T0-INIT; MOV TMOD,#00000000B ; 定时器T0工作方式2MOV TH0,#0F5H ; 设定时器T0的高八位初始值 MOV TL0,#02H ; 设定时器T0的低八位初始值 MOV

14、TCON,#00010000B ; 定时器T0的使能 SETB EA ;中断允许总控制位使能 SETB ET0 ;T0中断使能RET3. 定时5s(5s黄灯)下面计算定时器的初值。定时器初值TC=M-T/t=256-50/1=206,因此TH0=0CEH,TL0=0CEH。定时器初始化程序如下,定时器T0设定为工作方式2,初始值为0CEH,自动重装入值为0CEH。T0-INIT; MOV TMOD,#00100000B ; 定时器T1工作方式2MOV TH0,#0CEH ; 设定时器T1的初始值 MOV TH0,#0CEH ; 设定时器T1的自动重装值 MOV TCON,#01000000B

15、; 定时器T1的使能 SETB EA ;中断允许总控制位使能 SETB ET1 ;T1中断使能RET5.2定时器中断服务程序T0-INIT; DJNZ TIME-COUNT0,T0-INT-EXIT MOV TIME-COUNT0,#250DJNZ TIME-COUNT1, T0-INT-EXITMOV TIME-COUNT1,#8SETB SECOND-FLAG ;T0-INT-EXIT; RETI每0.25ms定时器中断发生,程序跳转到中断服务程序T0-INT开始执行。中断服务程序每次将定时器中断计数变量减1,但定时器中断计数变量为0时,0.5s定时时间到,将位变量SECOND-FLAG置

16、为1.定时器中断服务程序通过RETI指令返回,程序将跳转到进入中断前的断点继续执行。5.3程序流程图 程序较为简单,可以直接进行程序的编写,但本实例的程序流程比较复杂,在编写程序前,应当先画出程序流程图。程序流程图是描述程序运行流程的一种图表。它不仅描绘程序从头到尾的运行顺序,也描述程序运行过程中的所有可能发生的状况。Y六电路图及仿真设计6.1设计完成原理图如下在电路连接完成后,将写好的程序放入单片机,运行。6.2实验multisim仿真结果(1)在初始状态南北绿灯,东西方向(支干道)红灯,南北方向(主干道)绿灯持续时间为30s(2)南北(主干道)跳转到黄灯5s,东西仍为红灯(3)在南北转换为

17、红灯的同时,东西灯转换到绿灯持续20s;东西转换为黄灯持续5s,南北红灯不变;如此循环,从而实现交通灯的作用。七总结回顾起此次单片机课程设计,我仍感慨颇多,学到了很多的东西。同时不仅巩固了以前所学过的知识,而且还学到了很多在书本上所没有学到过的知识。在实际设计中才发现,书本上理论性的东西与在实际运用中的还是有一定的出入的,所以有些问题不但要深入地理解,而且要不断地更正以前的错误思维。一切问题必须要靠自己一点一滴的解决,而在解决的过程当中你会发现自己在飞速的提升。对于单片机设计,其硬件电路是比较简单的,主要是解决程序设计中的问题,而程序设计是一个很灵活的东西,它反映了你解决问题的逻辑思维和创新能

18、力,它才是一个设计的灵魂所在。因此可以说单片机的设计是软件和硬件的结合,二者是密不可分的。通过这次课程设计我发现单片机原理应用行很强,只有老师的讲解不行,只看也不中,只有自己动手去做才会发现自己确实有太多的不足,许多的原理,程序看似简单,真正去做才知道知识并没有自己想象的那样扎实。从而懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。树立了对自己工作能力的信心,相信会对今后的学习工作生活有非常重要的影响。而且大大提高了动手的能力,使我充分体会到了在创造过程中探索的艰

19、难和成功时的喜悦。八源程序ORG 0000H SJMP A3 ORG 0030H A3: MOV SP,#60H ;设栈指针初值 MOV A, #24H MOV P1, A SETB P3.2 CLR P3.3CLR P3.4SETB P3.5 ;全部红灯亮 MOV R4,#00H ;显示0秒 MOV R7,#00H ;显示0秒 MOV R2,#03H LCALL XI ;调用子程序A2 : MOV A,#0CHMOV P1,A SETB P3.2SETB P3.3CLR P3.4 CLR P3.5 ;东西红灯,南北绿灯 MOV R4,#1EH ; 显示30秒LOOP2 : MOV R2,#0

20、3H LCALL XIDJNZ R4,LOOP2 ;判断30秒显示时间到否 MOV R2,#03H LCALL XILOOP8: MOV R2,#03H ;南北黄灯闪3次 LCALL XIMOV R4,#05H ;设南北黄灯亮长显示5秒SETB P3.2CLR P3.3A1: MOV A,#14H MOV P1 ,A SETB P3.4 CLR P3.5 ;东西红灯,南北黄灯 MOV R2,#01H ;定时 LCALL DELAY ;调用延时子程序 MOV A ,#04H MOV P1 ,A CLR P3.4 CLR P3.5 ;东西红灯,南北不亮即意思要南北黄灯闪烁 MOV R2 ,#01H

21、 ;定时 LCALL DELAY DJNZ R4,LOOP8 ;判断南北黄灯闪烁,显示5秒到否? MOV A, #61H MOV P1,A CLR P3.2CLR P3.3CLR P3.4 SETB P3.5 ;东西绿灯,南北红灯 MOV R4,#14H ;显示20秒LOOP3: MOV R2,#03H LCALL XI DJNZ R4,LOOP3 ;判断20秒显示时间到否MOV R7,#05H ;设东西黄灯亮长显示5秒 SETB P3.5A0: MOV A,#0A2H MOV P1,A CLR P3.2CLR P3.3CLR P3.4 ;东西黄灯,南北红灯 MOV R2,#01H ;定时 L

22、CALL DELAY MOV A,#20H ; MOV P1,A CLR P3.2CLR P3.3CLR P3.4 ;南北红灯,东西不亮即意思要东西黄灯闪烁 MOV R2,#01H ;定时 LCALL DELAY DJNZ R7,A0 ;判断东西黄灯闪烁,显示5秒到否? LJMP A2 ;循环回状态1,即东西红灯,南北黄灯DELAY: PUSH 2 PUSH 1 PUSH 0 ;进栈DELAY1: MOV 1,#00HDELAY2:MOV 0,#0B2H DJNZ 0,$ ;判断是否运行完0B2H DJNZ 1,DELAY2 DJNZ 2,DELAY1 POP 0 POP 1 POP 2 ;出

23、栈 DJNZ R2 ,DELAY ; 判断R2是否运行完 RET ;返回主程序XI: MOV A,R4 MOV B,#10 DIV AB MOV R6,A MOV DPTR,#TAB MOV A,B MOVC A,A+DPTR MOV SBUF,A MOV R7,#0FHH55S: DJNZ R7,H55S MOV A,R6 MOVC A,A+DPTR MOV SBUF,A MOV R7,#0FHH55S1: DJNZ R7,H55S1 LCALL DELAY RET TAB:DB 0fch,60h,0dah,0f2h,66h,0b6h,0beh,0e0h DB 0feh,0f6h,0eeh,3eh,9ch,7ah,9eh,8eh END参考文献【1】单片机的C语言应用程序设计 马忠梅 籍顺心 北京航空航天大学出版社2007【2】51单片机应用开发案例精选 王为青 邱文勋 人民邮电出版社 2007【3】51系列单片机设计实例 楼然苗 李广飞 北京航空航天大学出版社 2003【4】单片机原理与接口技术 胡汉才 清华大学出版社 2006【5】单片机原理与应用 丁元杰 机械工业出版社 2007

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1