基于proteus的交通信号灯设计与仿真Word文档下载推荐.docx

上传人:b****4 文档编号:13973513 上传时间:2022-10-16 格式:DOCX 页数:13 大小:772.37KB
下载 相关 举报
基于proteus的交通信号灯设计与仿真Word文档下载推荐.docx_第1页
第1页 / 共13页
基于proteus的交通信号灯设计与仿真Word文档下载推荐.docx_第2页
第2页 / 共13页
基于proteus的交通信号灯设计与仿真Word文档下载推荐.docx_第3页
第3页 / 共13页
基于proteus的交通信号灯设计与仿真Word文档下载推荐.docx_第4页
第4页 / 共13页
基于proteus的交通信号灯设计与仿真Word文档下载推荐.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

基于proteus的交通信号灯设计与仿真Word文档下载推荐.docx

《基于proteus的交通信号灯设计与仿真Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于proteus的交通信号灯设计与仿真Word文档下载推荐.docx(13页珍藏版)》请在冰豆网上搜索。

基于proteus的交通信号灯设计与仿真Word文档下载推荐.docx

再转换到状态3,东西方向绿灯通车,南北方向红灯。

过一段时间(25S)转换到状态4,东西方向绿灯闪几次转亮黄等,延时5S,南北方向仍然红灯。

最后循环至南北绿灯,东西红灯。

在这些状态下,有时钟倒数计时。

(35分)

附加功能得分(15分)

如按键、蜂鸣器等

1.1实验目的

●掌握MCS-51单片机定时器/计数器、外部中断、LED数码管显示及I/O口的综合应用。

●了解交通灯的工作原理及设计方法。

●掌握单片机应用系统分析、设计、调试方法。

1.2实验原理图

图1交通灯电路原理图

(1)

图2交通灯电路原理图

(2)

二、软件设置

图3软件仿真

三、硬件原理图

图4硬件模块

图5硬件连接

四、软件流程图

五、设计结果(仿真+实物)

5、1状态一

状态1:

南北方向绿灯通车,东西方向红灯。

经过一段时间(25S),倒计时。

图6状态一

5、2状态二

状态2,南北方向绿灯闪几次转亮黄灯,延时5S,东西方向仍然红灯。

图7状态二

5、2状态三

状态3,东西方向绿灯通车,南北方向红灯,过一段时间(25S)倒计时。

图8状态三

5、2状态四

状态4,东西方向绿灯闪几次转亮黄等,延时5S,南北方向仍然红灯。

图9状态四

六、个人心得

通过keil与proteus与硬件的联合使用,对交通灯综合考虑,实现了红灯30s,绿灯25s,3s绿灯闪烁,2s黄灯亮的交通功能设计。

七、附件

#include<

reg51、h>

#defineucharunsignedchar

#defineuintunsignedint

//uintFUNC=1;

//0:

数码管功能,1:

红绿灯功能

uintT_Count=0;

uintnumber=0;

uinta=0,a1=0,a2=0;

uintb=0,b1=0,b2=0;

sbitLED=P1^0;

intLEDSHOW[10]={0xC0,0xF9,0xA4,0xB0,0X99,0X92,0X82,0XF8,0X80,0x90};

//#defineLEDP1^0

//延时

voidDelayMS(uintx)

{

uchari;

while(x--)

{

for(i=0;

i<

120;

i++);

}

}

//主程序

voidmain()

//定时器0中断初始化代码

TMOD=0x00;

//定时器0工作方式0

TH0=(8192-5000)/32;

//5ms定时

TL0=(8192-5000)%32;

IE=0x82;

//允许T0中断

TR0=1;

//开始循环

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=LEDSHOW[a1];

DelayMS(5);

P2=0X02;

//00001101//南北2

P0=LEDSHOW[a2];

P2=0X04;

//00001011//东西1

P0=LEDSHOW[b1];

P2=0X08;

//00000111//东西2

P0=LEDSHOW[b2];

}

if(number>

25&

number<

=30)//状态2

{//南北绿闪烁几次转黄灯,东西继续红灯东西红黄绿南北红黄绿

=28)

if(number%2==1)

elseP1=0xfe;

}

28&

=30)

P1=0Xee;

a=30-number+1;

//显示

30&

=55)//状态3

{//东西绿南北红

P1=0xf3;

//东西红黄绿南北红黄绿

a=55-number+1;

b=60-number+1;

55&

=60)//状态4

{//东西方向绿灯闪几次转亮黄等,延时5S,南北方向仍然红灯东西红黄绿南北红黄绿

=58)

elseP1=0xf7;

}

58&

60)

P1=0Xf5;

a=60-number+1;

//T0中断函数

voidLED_Flash()interrupt1

//恢复初值

if(++T_Count==200)//1s开关一次LED

number++;

60)

number=1;

//FUNC=++FUNC%2;

//LED=~LED;

T_Count=0;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教学研究 > 教学计划

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

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