c语言版交通灯课程设计

上传人:正** 文档编号:41716750 上传时间:2018-05-30 格式:DOC 页数:18 大小:315.10KB
返回 下载 相关 举报
c语言版交通灯课程设计_第1页
第1页 / 共18页
c语言版交通灯课程设计_第2页
第2页 / 共18页
c语言版交通灯课程设计_第3页
第3页 / 共18页
c语言版交通灯课程设计_第4页
第4页 / 共18页
c语言版交通灯课程设计_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《c语言版交通灯课程设计》由会员分享,可在线阅读,更多相关《c语言版交通灯课程设计(18页珍藏版)》请在金锄头文库上搜索。

1、0微机控制微机控制课程设计报告课程设计报告 课程名称 基于 C 语言单片机交通灯学生姓名 张 万 双 学号 51102022004专业班级 电子信息科学与技术 2 班指导老师 2013 年 12 月 5 日1目录目录 一一.前言前言.3 二二.功能概述功能概述 .3 三三.设计思路设计思路4 四四.硬件介绍硬件介绍4 五五.软件程序设计软件程序设计.9 六六.电路图及仿真实现电路图及仿真实现.12七七.总结总结.14 八八.源程序源程序.15九九.参考文献参考文献.18 2一一.前言前言近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控 制检测技术日益更新。在实时检测和自动控制

2、的单片机应用系统中,单片机往往 作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构 软硬件结合,加以完善。 十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什 么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。交通信号灯控制 方式很多,在学习了单片机的有关知识之后,运用相关知识来设计完成交通信号灯。二功能概述二功能概述 2.1 设计任务:交通灯的硬件和软件设计 2.2 设计目的 1.进一步熟悉和掌握单片机的结构和工作原理。 2.掌握单片机的接口技术及相关外围芯片的外特性,控制方法。 3.通过课程设计,掌握以单片机为核心的电路设计的基本方法和技术,了解

3、有关电路参数的计算方法。 4.通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。 35.通过完成一个包括电路设计和程序开发的完整过程,为我们今后从事相应 工作打下基础。 三设计思路三设计思路 交通灯的变化规律 按照常规我们假设一个十字路口为东西南北走向。初始状态为状态 1,南北 方向绿灯通车,东西方向红灯。经过过一段时间(25S)转换状态 2,南北方向 绿灯闪几次转亮黄灯,延时 5S,东西方向仍然红灯。再转换到状态 3,东西方向 绿灯通车,南北方向红灯。过一段时间(25S)转换到状态 4,东西方向绿灯闪 几次转亮黄等,延时 5S,南北方向仍然红灯。最后循环至南北绿灯,东西红灯。在这

4、些状态下,有时钟倒数计时。四硬件介绍四硬件介绍 基础知识 交通灯控制器实例主要使用了 89C51 单片机的定时器计数器,基础知识主 要包括交通灯的变化规律、定时器计数器的概念、定时器计数器的相关寄存 器、定时器计数器的 4 种工作方式、以及定时器计数器的变成。 4.1 定时器/计数器 定时器计数器是单片机中最常用、最重要的功能模块之一,本节通过交通灯控 制器实例来演示定时器的使用,并复习如何使用散转程序。 4首先介绍交通灯以及定时器计数器的基础知识,接着介绍本实例的硬件电路构 成,然后逐步分析定时器的变成以及程序的全貌,最后总结一下本实例的技巧与 注意点。4.2 定时器计数器的概念 89C51

5、 单片机内有两个可编程的定时器计数器 T0、T1。 当定时器计数器用作“定时器”时,每经过 1 个机器周期(12 个时钟周期) , 计数器加 1。 当定时器计数器用作“计数器”时,计数器在对应的外部输入管脚(T0 为 P3.4 引脚,T1 为 P3.5 引脚)上每发生一次 1 到 0 的跳变时加 1。使用“计数器”功 能时,外部输入每个机器周期被采样一次。当某一周期管脚状态采样为高电平而 下一周期采样为低电平时,计数器加 1。由于检测下降沿跳变需要两个机器周期(24 个时钟周期)的时间,所以技术频率最大值只能为时钟周期的 124。计数器对外部输入信号的占空比并无限制,但为了保证给定的电平信号在

6、其改变之前 至少被采样一次,外部输入信号必须至少保持一个完整的机器周期。4.3 定时器计数器的相关寄存器 与定时器计数器相关的寄存器有定时器计数器工作方式寄存器(TMOD) 、定 时器计数器控制寄存器(TCON) 。TCON 已经在 2.5 节受控输出实例中介绍过, 因此,在本例5中主要介绍 TMOD 寄存器。 定时器计数器工作方式寄存器(TMOD) ,字节地址 89H,不可进行位寻址。定时器计数器工作方式寄存器(TMOD)的 8 位分为两组,高 4 位控制 T1,低 4 位控制 T0。TMOD 每一位的功能如下: GATE:门控位。 GATE0,仅由运行控制位 TRX(X0,1)1 来启动定

7、时器计数器运行; GATE1,由运行控制位 TRX(X0,1)1 和外部中断引脚上的高电平共同来 启动定时器计数器运行。 CT:定时器模式和计数器模式选择位。 CT0,为定时器模式; CT1,为计数器模式。 M1、M0:工作方式选择位。M1、M0 的 4 中编码对应 4 种工作方式,对应关系见 表 210。 4.5 定时器计数器的 4 种工作方式 定时器计数器的 4 种工作方式下的逻辑结构如表所示。M1M2工作方式00方式 0,为 13 位定时6器/计数器01方式 1,为 16 位定时器/计数器1 0方式 2,为初值自动重装的 8 位定时器/计数器1 1方式 3,仅 T0 有效,将 T0 分为

8、两个 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。 7GATE

9、位的状态定时器计数器运行控制取决于 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,需要通 过程序

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

11、,而 TH0 被固定位一个 8 位定时器(不能作外部计数方式) ,并 使用定时器计数器 1 的状态控制位 TR1、和 TF1,同时占用定时器 T1 的中断源。 此时,定时器计数器 1 可设定为方式 0、方式 1 和方式 2,作为串行口的波特率发生器。 4.5 定时器计数器的编程 (1)初始化 定时器计数器的初始化编程包括以下几个部分。 根据要求给定时器计数器方式寄存器(TMOD)送一个方式控制字,以设定定时 器计数器的工作方式。 根据需要给 TH 和 TL 寄存器送初值,以确定需要的定时时间或计数的初值。根据需要给中断允许寄存器(IE)送中断控制字,以开放相应的中断和设定中断 优先级。 给 T

12、CON 寄存器送命令字以启动或禁止定时计数器的运行。(2)定时器计数器初值的计算。 计数器初值: 设计算器的模值位 M,所需的计数值为 C,计数初值设定为 TC,则 TC=M-C (M 等于 2 的 13 次方,16 次方,8 次方)。 定时器初值: 9设定时器的模值为 M,需要的定时时间为 T,定时器的初值设定为 TC,则 TC=M-T/t (M 等于 2 的 13 次方,16 次方,8 次方) 。五软件程序设计五软件程序设计 交通灯控制器实例使用了 89C51 单片机的定时器/计数器,首先分定时器初 始化,定时器中断服务程序两个部分介绍定时器计数器的软件编程,其次在画出 程序流程图的基础上

13、编写软件程序,并给出完整的交通灯控制器程序实例。 5.1 定时器初始化 为了使定时器时间准确,避免因为定时器重装而引起的累计误差,应将定时 器设置为初值自动装置的 8 位定时器/计数器,即定时器工作在工作方式 2.在 12MHz 晶振条件下,8 位定时器的最长定时时间是 0.256ms,为了方便计算取定 时时间为 0.25ms,所以,定时 0.5s 需要定时器中断 2000 次。下 面 计 算 定 时 器 的 初 值 。 定 时 器 初 值 TC=M-T/t=256-250/1=6 , 因 此 TH0=06H,TL0=06H. 定时器初始化程序如下,定时器 T0 设定为工作方式 2,初始值为

14、06H,自动 重装入值为 06H。 T0 -INIT;MOV TMOD,#00000010B ; 定时器 T0 工作方式 2MOV TL0,#06H ; 设定时器 T0 的初始值10MOV TH0,#06H ; 设定时器 T0 的自动重装值MOV TCON,#00010000B ; 定时器 T0 的使能SETB EA ;中断允许总控制位使能SETB ET0;T0 中断使能RET 5.2 定时器中断服务程序T0 -INIT;DJNZ TIME-COUNT0,T0-INT-EXITMOVTIME-COUNT0,#250DJNZ TIME-COUNT1, T0-INT-EXITMOVTIME-COU

15、NT1,#8SETB SECOND-FLAG;T0-INT-EXIT; RETI 每 0.25ms 定时器中断发生,程序跳转到中断服务程序 T0-INT 开始执行。中 断服务程序每次将定时器中断计数变量减 1,但定时器中断计数变量为 0 时,0.5s 定时时间到,将位变量 SECOND-FLAG 置为 1.定时器中断服务程序通过 RETI 指令 返回,程序将跳转到进入中断前的断点继续执行。 5.3 程序流程图 程序较为简单,可以直接进行程序的编写,但本实例的程序流程比较复杂, 在编写程序前,应当先画出程序流程图。11程序流程图是描述程序运行流程的一种 图表。它不仅描绘程序从头到尾的运行顺序,也描述程序运行过程中的所有可能 发生的状况。 六电路图及仿真设计六电路图及仿真设计 6.1 设计完成原理图如下 12在电路连接完成后,将写好的程序放入单片机,运行。 6.2 在初始状态南北绿灯,东西红灯,持续时间为 25s 6.3 南北跳转到黄灯 5s,东西仍为红灯13在南北转换为红灯的同时,东西灯转换到绿灯持续

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号