单片机红绿灯课程设计_第1页
单片机红绿灯课程设计_第2页
单片机红绿灯课程设计_第3页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1 电源提供方案为使模块稳定工作,须有可靠电源。因此考虑了两种电源方案: 方案一: 采用独立的稳压电源。 此方案的优点是稳定可靠, 且有各种成熟 电路可供 选用;缺点是各模块都采用独立电源,会使系统复杂,且可能影响电路电 平。方案二:采用单片机控制模块提供电源。改方案的优点是系统简明扼要, 节约成本;缺点是输出功率不高。 综上所述,选择方案二。2 显示界面方案 该系统要求完成倒计时功能。基于上述原因,我考虑了二种方案: 方案一: 采用数码管显示。 这种方案只显示有限的符号和数码字符, 简单, 方便。 方案二:采用点阵式 LED 显示。这种方案虽然功能强大,并可方 便的显示各种英文字符,汉字,图

2、形等,但实现复杂,成本较高。 综上所述,选择方案一。3 输入方案:设计要求系统能调节灯亮时间, 并可处理紧急情况, 我研究了两种方案: 方 案一:采用 8155 扩展 I/O 口与键盘,显示等。该方案的优点是: 使用灵活可编程, 并且有 RAM, 与计数器。 若用该方案, 可提供较多 I/O 口 ,但操作起来稍显复杂。方案二: 直接在 I/O 口线上接上按键开关。 由于该系统对于交通灯与数码管的控制, 只用单片机本身的 I/O 口就可实 现,且本身的计数器与 RAM 已经够用。综上所述,选择方案二3.1单片机交通控制系统的通行方案设计设在十字路口,分为东西向和南北向,在任一时刻只有一个方向通行

3、,另一方向禁行,持续一定时间,经过短暂的过渡时间,将通行禁行方向对换。其具体状态如下图所示。说明:黑色表示亮,白色表示灭。交通状态从状态1幵始变换,直至状态 6然后循环至状态1,周而复始,即如图2.1所示:红绿貳ceo红绿茜ooeIT绿黄ceo红绿黄00»红绿黄红绿英绿; 黄Itnm21OO 红绿黄00 1红绿黄黄图1交通状态本系统采用MSC-51系列单片机AT89C51作为中心器件来设计交通灯控制器。实现以下功能:初始东西绿灯亮,南北红灯亮,东西路口车通行,时隔24s,黄灯闪烁6次。之后,南北绿灯亮,东西红灯亮,方向幵始通车,时隔24s,南北黄灯闪烁6次,然后又切换成东西方向通车,

4、如此重复。当发生交通意外(中断产生)时,全部亮红灯,进行交通事故的处理。当 事故处理完毕(再次按中断键),重新按上述方式工作。当南北路口的流量大时, 可以增加南北路口亮绿灯的时间,当东西路口的流量大时,可以增加东西路口亮绿灯的时间,结束后调回正常状态。 下面我们可以用图表表示灯状态和行止状态的关系如下S1交通伏态及红绿灯状杰我态1亦态5状杰4东回向導持变换iSIf等持变挾南北冋禁行等持变挽东茴红灯1100001不西町灯00丄0南北杠灯0011南北绿打1000南朮黄灯0100东西南北四个路口均有红绿黄 3灯和数码显示管2个,在任一个路口,遇 红灯禁止通行,转绿灯允许通行,之后黄灯亮警告行止状态将

5、变换。状态 与红绿灯状态如表1所示。说明:0表示灭,1表示亮。3.3单片机智能交通灯控制系统的基本构成与原理单片机设计智能交通灯控制系统,可用单片机直接控制交通信号灯的状态 变化,实现倒计时、紧急情况处理与时间调整等功能。据此,本设计系统以单片机为控制核心,连接成最小系统,由按键设置模块产生输入,信号灯状态模块、LED倒计时模块接受输出。系统的总体框 图如上所示。单片机上电后,系统进入正常工作状态,执行交通灯状态显示控制,同时将时间数据倒计时输入到 LED数码管上实时显示。在此过程中随时通过键 盘调用急停按键和时间调节中断。交通灯系统硬件设计此设计采用的是 AT89C51单片机为内部控制芯片,

6、外部接有按键中断电路以与复位电路以外,还有4个两位数码管,用以倒计时和4个路口的灯, 共12个LED灯。四川信息职业技术学院毕业设计说明书 (论文)第页 5第二章交通灯系统硬件设计此设计采用的是 AT89C51单片机为内部控制芯片,外部接有按键中断电路以与复位电路以外,还有4个两位数码管,用以倒计时和4个路口的灯,共12个LED灯2.1系统框架图电路板一块,AT89S51单片机一片,八段LED数码管四个。发光二极管12个(4个绿的,4个红,4个黄的),8个电阻,2个电容,1个晶振,1个电解电容,1个按键幵关(系统结构框图:图2.1)檯链外部中斷ATS9O1芯片简介MCS-51单片机内部结构80

7、51是MCS-51系列单片机的典型产品,我们以这一代表性的机型进行 系统的讲解。8051单片机包含中央处理器、程序存储器 (ROM)、数据存储器(RAM)、 定时/计数器、并行接口、串行接口和中断系统等几大单元与数据总线、地址总线和控制总线等二大总线,现在我们分别加以说明:中央处理器:中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统 协调的工作,完成运算和控制输入输出功能等操作。-数据存储器(RAM)8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它 们是统一编址的,专用寄存器只能用于存放

8、控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。80518051内部塔构ifsRI 2.2显示数码管八段LED显示器由八个发光二极管组成。 其中7个长条形的发光管排列成 “日”字形,另一个圆点形的放光管在显示器的右下角作为显示小数点用,它能显示各种数字与部分英文字母。LED显示器有两种不同的形式:一种是8个发光二极管的阳极都连在一起的,称为共阳极LED显示器如图2-2所示;另一种是8个发光二极管的阴极都连在一起的,称为共阴极LED显示器3.3晶体振荡器石英晶体振荡器的特点是振荡频率准确、电路结构简单、

9、频率易调整,作 用是为系统提供基本的时钟信号。我们在晶体某一方向加一电场,从而在 与此垂直的方向产生机械振动,有了机械振动,就会在相应的垂直面上产 生电场,从而使机械振动和电场互为因果,这种循环过程一直持续到晶体 的机械强度限制时,才达到最后稳定,这种压电谐振的频率即为晶体振荡 器的固有频率。附录原程序代码#include<reg51.h>#define uint unsigned int/ 宏定义#define uchar unsigned char/ 宏定义uchar aa,cc,NBshi,NBge,DXshi,DXge,NBtemp,DXtemp;/ 定义变量sbit NB

10、R二P39南北红灯sbit NBY 二P3"南北黄灯sbit NBG=P3A4;/南北绿灯sbit DXY 二P3A5;/东西黄灯sbit DXG=P3A6;/东西绿灯sbit DXR=P3A7;/东西红灯uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f; / 数字的代码从 0-9/ 数字的代码从 0-9 void init();/ 初始化子程序的申明void displayNB(uchar NBshi,uchar NBge);/ 显 示 子 程 序 的 申 明 void delay(uint z)

11、;/ 延时子程序的申明void fenjieNB();/ 南北数码管显示数字的分解函数 void fenjieDX();/ 东 西数码管显示数字的分解函数void main()void init();/ 初始化子程序的申明void displayNB(uchar NBshi,uchar NBge);/ 显示子程序的申明void delay(uint z);/ 延时子程序的申明void fenjieNB();/ 南北数码管显示数字的分解函数void fenjieDX();/ 东西数码管显示数字的分解函数void main()init();/ 初始化子程序 while(1) if(cc=82)/

12、循环一次结束 cc=0;/ 从新进行下一次循环void delay(uint z)/ 带参数的延时函数void delay(uint z)/ 带参数的延时函数 uchar x,y;/ 定义两个变量 for(x=z;x>0;x-)/ 循环延时void init()/ 初始化子程序 EA=1;/ 开总中断ET0=1;/ 允许定时器 0 中断 EX0=1;/ 允许外部中断 0 中断 TR0=1;/ 启动定时器 0TMOD=0x01;/ 设置定时器 0 工作方式 1TH0=(65536-50000)/256;/ 给定时器的高 8 为赋初值 TL0=(65536-50000)%256;/ 给定时器

13、的低 8 为赋初值 void fenjieNB()/ 南北数码管显示数字的分解函数 NBshi=NBtemp/10;/ 将要显示的时间的十位赋给变量 NBge=NBtemp%10;/ 将要显示的时间的个位赋给变量 NBtemp-;void fenjieDX()/ 东西数码管显示数字的分解函数 DXshi=DXtemp/10; DXge=DXtemp%10; DXtemp-; void displayNB(uchar NBshi,uchar NBge)/ 带参数的数码管显示函数 / 显示南北十位 P2=0xfe;P0=tableNBshi; delay(5);/ 显示南北个位P2=0xfd;P0

14、=tableNBge; delay(15);void displayDX(uchar DXshi,uchar DXge) / 东西十位P2=0xfb;P1=tableDXshi; delay(5);/ 东西个位P2=0xf7;P1=tableDXge;delay(5);void timer0() interrupt 1/ 定时器 0 的中断函数 重装计数初值TH0=(65536-50000)/256;/ 重装计数初值TL0=(65536-50000)%256;/ aa+;if(aa=20)/ 判断定时 1 分钟是否到aa=0;/ 计数次数清 0if(cc=0)/ 南北亮红灯 40 秒,东西亮黄

15、灯 5 秒DXY=0;/ 东西的黄灯亮DXG=1;/ 东西的绿灯不亮DXR=1;/ 东西的红灯不亮NBY=1;/ 南北的黄灯不亮NBG=1;/ 南北的绿灯不亮NBR=0;/ 南北的红灯亮DXtemp=5;/ 东西的黄灯亮 5 秒NBtemp=40;/ 南北的红灯亮 40 秒else if(cc=6)/ 南北继续亮红灯 40 秒,东西亮绿灯 34 秒 DXY=1;/ 东西的黄灯不亮DXG=0;/ 东西的绿灯亮DXR=1;/ 东西的红灯不亮NBY=1;/ 南北的黄灯不亮NBG=1;/ 南北的绿灯不亮NBR=0;/ 南北的红灯亮DXtemp=34;/ 东西的绿灯亮 34 秒else if(cc=41

16、)/ 南北亮黄灯 5 秒,东西亮红灯 40 秒DXY=1;/ 东西的黄灯不亮DXG=1;/ 东西的绿灯不亮DXR=0;/ 东西的红灯亮NBY=0;/ 南北的黄灯亮NBG=1;/ 南北的绿灯不亮NBR=1;/ 南北的红灯不亮NBtemp=5;/ 南北的黄灯亮 5 秒DXtemp=40;/ 东西的红灯亮 40 秒else if(cc=47)/ 南北亮绿灯 34 秒,东西继续亮红灯 40 秒 DXY=1;/ 东西的黄灯不亮DXG=1;/ 东西的绿灯不亮DXR=0;/ 东西的红灯亮NBY=1;/ 南北的黄灯不亮NBG=0;/ 南北的绿灯亮NBR=1;/ 南北的红灯不亮NBtemp=34;/ 南北的绿灯亮 34 秒DXtemp=34;/ 东西的红灯亮 40 秒fenjieNB();/ 调用南北分解函数 fenjieDX();/ 调用东西分解函数 cc+;/ 判断亮灯的变量自加 1调用 NB 红灯 40 秒的显示程序调用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论