基于proteus的交通信号灯设计与仿真_第1页
基于proteus的交通信号灯设计与仿真_第2页
基于proteus的交通信号灯设计与仿真_第3页
基于proteus的交通信号灯设计与仿真_第4页
基于proteus的交通信号灯设计与仿真_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

1、 宁波理工学院专业综合课程实习课程论文 题 目 基于proteus的交通信号灯设计与仿真 项目成员 沈 毅 专业班级 电气101 指导教师 裘 君 分 院 信 息 完成日期 20013. 7.14 目 录一、题目及要求41.1实验目的41.2实验原理图4二、软件设置5三、硬件原理图6四、软件流程图7五、设计结果(仿真+实物)85.1状态一85.2状态二85.2状态三95.2状态四10六、个人心得10七、附件10 基于proteus的交通信号灯设计与仿真一、 题目及要求实现一个如下基本功能的交通灯:按照常规我们假设一个十字路口为东西南北走向。初始状态为状态1,南北方向绿灯通车,东西方向红灯。经过

2、一段时间(25S)转换状态2,南北方向绿灯闪几次转亮黄灯,延时5S,东西方向仍然红灯。再转换到状态3,东西方向绿灯通车,南北方向红灯。过一段时间(25S)转换到状态4,东西方向绿灯闪几次转亮黄等,延时5S,南北方向仍然红灯。最后循环至南北绿灯,东西红灯。在这些状态下,有时钟倒数计时。(35分) 附加功能得分(15分) 如按键、蜂鸣器等 1.1 实验目的l 掌握MCS-51单片机定时器/计数器、外部中断、LED数码管显示及I/O口的综合应用。l 了解交通灯的工作原理及设计方法。l 掌握单片机应用系统分析、设计、调试方法。1.2 实验原理图 图1 交通灯电路原理图(1)图2交通灯电路原理图(2)二

3、、 软件设置图3 软件仿真三、 硬件原理图图4 硬件模块图5硬件连接四、 软件流程图开始初始化中断初始化中断触发Y状态一0<N<=251s中断NNumber+1状态二Y25<N<=30NNN>60状态三YYY30<N<=55N状态四YN=1N55<N<=60五、 设计结果(仿真+实物)5.1状态一状态1:南北方向绿灯通车,东西方向红灯。经过一段时间(25S),倒计时。图6 状态一5.2状态二状态2,南北方向绿灯闪几次转亮黄灯,延时5S,东西方向仍然红灯。图7 状态二5.2状态三状态3,东西方向绿灯通车,南北方向红灯,过一段时间(25S)倒计

4、时。图8 状态三5.2状态四状态4,东西方向绿灯闪几次转亮黄等,延时5S,南北方向仍然红灯。图9 状态四六、 个人心得通过keil与proteus和硬件的联合使用,对交通灯综合考虑,实现了红灯30s,绿灯25s,3s绿灯闪烁,2s黄灯亮的交通功能设计。七、附件#include<reg51.h> #define uchar unsigned char #define uint unsigned int /uint FUNC = 1 ; /0:数码管功能, 1:红绿灯功能uint T_Count= 0;uint number=0;uint a=0,a1=0,a2=0;uint b=0,

5、b1=0,b2=0;sbit LED=P10; int LEDSHOW10 = 0xC0,0xF9,0xA4,0xB0,0X99,0X92,0X82,0XF8,0X80,0x90;/#define LED P10 /延时void DelayMS(uint x) uchar i; while(x-) for(i=0;i<120;i+); /主程序 void main() /定时器0中断初始化代码 TMOD=0x00; /定时器0 工作方式0 TH0=(8192-5000)/32; /5ms 定时 TL0=(8192-5000)%32; IE=0x82; /允许T0 中断 TR0=1; /开

6、始循环 while(1) if(number<=25&&number>0)/状态一 /南北绿灯,东西红灯 东西 红黄绿 南北 红黄绿 P1=0xde; /显示倒计时 b=30-number+1; b1=b/10; b2=b%10; a=25-number+1; a1=a/10; a2=a%10; P2 = 0X01; /00001110 /南北1 P0 = LEDSHOWa1; DelayMS(5); P2 = 0X02; /00001101 /南北2 P0 = LEDSHOWa2; DelayMS(5); P2 = 0X04; /00001011 /东西1 P0

7、= LEDSHOWb1; DelayMS(5); P2 = 0X08; /00000111 /东西2 P0 = LEDSHOWb2; DelayMS(5); if(number>25&&number<=30)/状态2 /南北绿闪烁几次转黄灯,东西继续红灯 东西 红黄绿 南北 红黄绿 if(number>25&&number<=28) if(number%2=1) P1=0xde; else P1=0xfe; if(number>28&&number<=30) P1=0Xee; a=30-number+1; /显

8、示 a1=a/10; a2=a%10; P2 = 0X01; P0 = LEDSHOWa1; DelayMS(5); P2 = 0X02; P0 = LEDSHOWa2; DelayMS(5); P2 = 0X04; P0 = LEDSHOWa1; DelayMS(5); P2 = 0X08; P0 = LEDSHOWa2; DelayMS(5); if(number>30&&number<=55)/状态3 /东西绿 南北红 P1=0xf3; /东西 红黄绿 南北 红黄绿 a=55-number+1; /显示 a1=a/10; a2=a%10; b=60-numbe

9、r+1; b1=b/10; b2=b%10; P2 = 0X01; P0 = LEDSHOWb1; DelayMS(5); P2 = 0X02; P0 = LEDSHOWb2; DelayMS(5); P2 = 0X04; P0 = LEDSHOWa1; DelayMS(5); P2 = 0X08; P0 = LEDSHOWa2; DelayMS(5); if(number>55&&number<=60)/状态4 /东西方向绿灯闪几次转亮黄等,延时5S,南北方向仍然红灯 东西 红黄绿 南北 红黄绿 if(number>55&&number<

10、;=58) if(number%2=1) P1=0xf3; else P1=0xf7; if(number>58&&number<60) P1=0Xf5; a=60-number+1; /显示 a1=a/10; a2=a%10; P2 = 0X01; P0 = LEDSHOWa1; DelayMS(5); P2 = 0X02; P0 = LEDSHOWa2; DelayMS(5); P2 = 0X04; P0 = LEDSHOWa1; DelayMS(5); P2 = 0X08; P0 = LEDSHOWa2; DelayMS(5); /T0 中断函数 void LED_Flash() inter

温馨提示

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

评论

0/150

提交评论