at89s52交通灯设计论文.doc

  1. 1、本文档共70页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
at89s52交通灯设计论文

PAGE PAGE 10基于51单片机的交通灯设计1 前言近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。交通信号灯控制方式很多,在学习了单片机的有关知识之后,运用相关知识来设计完成交通信号灯。2 功能概述2.1设计任务:通灯的硬件和软件设计2.2设计目的1.进一步熟悉和掌握单片机的结构和工作原理。2.掌握单片机的接口技术及相关外围芯片的外特性,控制方法。3.通过课程设计,掌握以单片机为核心的电路设计的基本方法和技术,了解有关电路参数的计算方法。4.通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。5.通过完成一个包括电路设计和程序开发的完整过程,为我们今后从事相应工作打下基础。3 设计思路按照常规我们假设一个十字路口为东西南北走向。初始状态为状态1,南北方向绿灯通车,东西方向红灯。经过过一段时间(55S)转换状态2,南北方向由绿灯转亮黄灯,延时5S,东西方向仍然红灯。再转换到状态3,东西方向绿灯通车,南北方向红灯。过一段时间(55S)转换到状态4,东西方向由绿灯转亮黄灯,延时5S,南北方向仍然红灯。最后循环至南北绿灯,东西红灯。在这些状态下,有时钟倒数计时。当按下S1键时,进入绿灯时间设置模式,第二次按下S1键,进入黄灯设置模式,第三次按下S1键,设置时间结束。4 芯片介绍   HYPERLINK /datasheet/atmel/At89c52_cn.pdf \t _blank AT89S52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89S52单片机可为您提供许多较复杂系统控制应用场合。AT89S52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89S52可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。 主要功能特性: ? 兼容MCS51指令系统 ? 8k可反复擦写(1000次)Flash ROM ? 32个双向I/O口 ? 256x8bit内部RAM ? 3个16位可编程定时/计数器中断 ? 时钟频率0-24MHz ? 2个串行中断 ? 可编程UART串行通道 ? 2个外部中断源 ? 共6个中断源 ? 2个读写中断口线 ? 3级加密位 ? 低功耗空闲和掉电模式 ? 软件设置睡眠和唤醒功能5 硬件设计6 软件程序设计6.1定时器初始化定时器/计数器是单片机中最常用、最重要的功能模块之一,本次实训通过交通灯控制器实例来演示定时器的使用。首先介绍交通灯以及定时器/计数器的基础知识,接着介绍本实例的硬件电路构成,然后逐步分析定时器的编程以及程序的全貌。定时器/计数器的4种工作方式下的逻辑结构如表所示。M1M2工作方式00方式0,为13位定时器/计数器01方式1,为16位定时器/计数器10方式2,为初值自动重装的8位定时器/计数器11方式3,仅T0有效,将T0分为两个8位定时器/计数器定时器工作在工作方式1,是初值自动重装的16位定时器/计数器,在12MHz晶振条件下,16位定时器的最长定时时间是65.535ms,为了方便计算取定时时间为1ms,所以,定时1s需要定时器中断100次。下面计算定时器的初值。定时器初值TC=M-T/t=65535-1000/1=64535,因此TH0=d8H,TL0=f0H.定时器初始化程序如下,定时器T0设定为工作方式1,初始值为d8f0H,自动重装入值为d8f0H。TMOD|=0x01;//定时器T0设置 10ms in 12M crystalTH0=0xd8;// 设定时器T0的初始值,并自动重载TL0=0xf0;ET0=1; //打开中断

文档评论(0)

mmrs369 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档