单片机的交通灯控制系统.docx

上传人:b****6 文档编号:16436297 上传时间:2023-07-13 格式:DOCX 页数:15 大小:294.23KB
下载 相关 举报
单片机的交通灯控制系统.docx_第1页
第1页 / 共15页
单片机的交通灯控制系统.docx_第2页
第2页 / 共15页
单片机的交通灯控制系统.docx_第3页
第3页 / 共15页
单片机的交通灯控制系统.docx_第4页
第4页 / 共15页
单片机的交通灯控制系统.docx_第5页
第5页 / 共15页
单片机的交通灯控制系统.docx_第6页
第6页 / 共15页
单片机的交通灯控制系统.docx_第7页
第7页 / 共15页
单片机的交通灯控制系统.docx_第8页
第8页 / 共15页
单片机的交通灯控制系统.docx_第9页
第9页 / 共15页
单片机的交通灯控制系统.docx_第10页
第10页 / 共15页
单片机的交通灯控制系统.docx_第11页
第11页 / 共15页
单片机的交通灯控制系统.docx_第12页
第12页 / 共15页
单片机的交通灯控制系统.docx_第13页
第13页 / 共15页
单片机的交通灯控制系统.docx_第14页
第14页 / 共15页
单片机的交通灯控制系统.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

单片机的交通灯控制系统.docx

《单片机的交通灯控制系统.docx》由会员分享,可在线阅读,更多相关《单片机的交通灯控制系统.docx(15页珍藏版)》请在冰点文库上搜索。

单片机的交通灯控制系统.docx

单片机的交通灯控制系统

基于单片机的交通灯控制系统

1、实验方案论证:

进行十字路口的交通信号灯控制电路设计,画出电路原理图及实验电路图,进行软件编程、以及使用说明文档的建立等一整套工作任务。

进行十字路口的交通信号灯控制程序设计,提交一个符合上述功能要求的十字路口的交通信号灯控制系统设计。

2、控制流程分析:

对设计要求进行分析后可得出以下交通工作状态表:

3、硬件设计概要:

根据设计要求,可用6个LED灯分别模拟东西、南北的交通灯。

具体接法如下:

AT89C51的P1口接LED灯,P1.0、P1.1、P1.2分别接东西方向红、绿、黄交通灯,P1.3、P1.4、P1.5分别接南北方向的红、绿、黄交通灯。

P1口和LED灯之间要接限流保护电阻。

两位数码管段选接P2口,位选接P0口低两位,P0口低两位接上拉电阻使其可以输出高电平。

紧急情况按钮一端接地,另一端与外中断1引脚相连;恢复正常按钮一端接地,另一端与外中断0引脚相连。

 

三、原理图设计

1、LED显示部分电路设计:

把单片机AT89C51的P1口作为红黄绿灯显示部分,用6个LED灯分别模拟东西、南北的交通灯。

P1.0、P1.1、P1.2各通过一个300Ω的限流保护电阻接东西方向的红、绿、黄LED灯;P1.3、P1.4、P1.5各通过一个300Ω的限流保护电阻接南北方向的红、绿、黄LED灯。

LED灯的一端接电源,另一端经电阻接P1口,因此当P1口引脚输出低电平时LED灯发光,即此方案采取低电平驱动方式。

具体电路如下:

 

2、紧急情况处理电路设计:

紧急情况按钮一端接地,另一端与外中断1引脚相连;恢复正常按钮一端接地,另一端与外中断0引脚相连。

在程序设计时,我会将其设置为下降沿触发方式。

具体电路如下:

3、数字显示电路设计:

选用共阴极两位数码管。

两位数码管A~G引脚各通过一个300Ω的限流保护电阻分别接P2.0~P2.6,位选1引脚和2引脚分别接P0.0口低两位,P0口低两位接5kΩ的上拉电阻使其可以输出高电平。

 

4、其他部分电路:

XTAL1端和XTAL2端之间接一个12MHz的晶振,再各接一个30pF的普通电容后接地;RST复位端一端经10uF的电解电容接+5V电源,一端经一个10K的电阻接地。

具体电路如下:

 

4、系统电路总图:

 

四、程序设计:

1、定时器初值的计算:

由于要求定时时间相当精确,我用定时器T0进行定时。

根据公式可知若已知要求的定时时间为t,则定时器的初值为x(其中fosc=12MHz):

需要定时器的定时时间为50ms,根据公式计算得出X=15536,因此定时器初值的低位TL0=(0B0H),高位TH0=(3CH)。

2、程序流程图:

2.1主程序流程

主程序主要是对单片机进行初始化。

初始化首先要开放总中断、定时器T0中断以及外部中断0和外部中断1。

其次是设置中断优先级,把外中断0设置为高优先级,外中断1设置为低优先级。

再次是给定时器T0装顶初值,然后后是启动定时器,是使定时器开始定时。

最后是等待中断。

 

2.2紧急情况中断处理流程

紧急情况中断处理包括两部分,第一部分是出现紧急情况可以手动使东西、南北方向红灯全亮,而且直到紧急状况解除后才能恢复正常通车。

这就要求紧急状况解除前不能退出外中断1处理程序,因此要在外中断1处理程序处设置一无限循环。

第二部分是紧急状况解除。

为了使外中断1处理程序退出无限循环,可用中断嵌套使机器转去执行外中断0处理程序,而外中断0处理程序修改了寄存器R2的值,中断返回后由于寄存器R2的值的改变使外中断1处理程序跳循环。

2.2.1外中断1处理程序(低优先级)

 

2.2.2外中断0处理程序(高优先级)

 

1.3定时器中断处理流程

3、程序源代码:

ORG0000H

AJMPSTART

ORG0003H;外中断0入口

AJMPSERV0

ORG000BH;外中断1入口

AJMPSERV1

ORG0013H;定时器中断入口

AJMPSERV2

ORG0030H

START:

MOVIE,#87H

MOVIP,#01H;设置中断优先级

MOVTMOD,#01H

MOVTCON,#05H

MOVTH0,#3CH

MOVTL0,#0B0H;装定时器初值

MOVDPTR,#TAB;装表首地址

MOVP1,#0F6H

MOVR0,#20

MOVR5,#00H

MOVR6,#00H

SETBTR0;启动定时器

LOOP1:

MOVP0,#02H;循环动态显示,由10秒开始倒计时

MOVA,R6

MOVCA,@A+DPTR

MOVP2,A

ACALLD10MS

MOVP0,#01H

MOVA,R5

MOVCA,@A+DPTR

MOVP2,A

ACALLD10MS

AJMPLOOP1

SERV0:

MOVR2,#0FFH;正常状态恢复程序,使R0的值不为0

RETI

SERV1:

DJNZR0,NEXT;未到1秒,则转到NEXT

CJNER5,#01,DHE0

AJMPDHE3

DHE0:

CJNER5,#00H,DHE1

CJNER6,#00H,DHE2

MOVR5,#00H

MOVR6,#01H

MOVP1,#0F5H

AJMPOUT0

DHE1:

DECR5;减1秒

AJMPOUT0

DHE2:

MOVR6,#00H

MOVR5,#09H

OUT0:

MOVR0,#20

RETI

DHE3:

MOVP0,#00H

MOVP2,#3FH;显示为0

MOVA,P1

MOVR1,#05H

JNBACC.0,CHE0;东西方向红灯亮,则转到CHE0

YELL0:

SETBP1.0

SETBP1.1;东西方向绿灯灭

CLRP1.2

ACALLDMS

SETBP1.2

ACALLDMS

DJNZR1,YELL0;东西方向黄灯闪烁5次

MOVP1,#0EEH;东西方向红灯亮,南北方向绿灯亮

SJMPNEXT1

CHE0:

JNBACC.3,CHE1

YELL1:

SETBP1.3

SETBP1.4;南北方向绿灯灭

CLRP1.5

ACALLDMS

SETBP1.5

ACALLDMS

DJNZR1,YELL1;南北方向黄灯闪烁5次

CHE1:

MOVP1,#0F5H;南北方向红灯亮,东西方向绿灯亮

NEXT1:

MOVR0,#20

MOVR5,#00H

MOVR6,#01H;重置显示为10秒

NEXT:

MOVTH0,#3CH;重装定时器初值

MOVTL0,#0B0H

RETI

SERV2:

MOVP0,#00H

MOVP2,#3FH;显示为0

MOVR5,#00H

MOVR6,#00H

MOVR2,#00H;紧急状况服务程序,使R2的值为0

MOVP1,#0F6H

LOOP3:

CJNER2,#00H,OUT1;R2的值为0,则无限循环,直到执行SERV0状

MOVR3,#02H;态恢复程序,使R0的值不为0才返回

DJNZR3,LOOP3

OUT1:

RETI

DMS:

MOV32H,#4;延时子程序,延时0.4秒

DL0:

MOV31H,#200

DL1:

MOV30H,#250

DL2:

DJNZ30H,DL2

DJNZ31H,DL1

DJNZ32H,DL0

RET

D10MS:

MOV33H,#50;延时子程序,延时10毫秒

DL3:

MOV34H,#100

DL4:

DJNZ34H,DL4

DJNZ33H,DL3

RET

TAB:

DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH

END

五、仿真结果与分析

在PROTEUS软件仿真中的结果如下:

1、初始状态

2、东西路口的绿灯亮,南北路口的红灯亮

3、东西路口绿灯灭,黄灯闪烁

4、东西路口红灯亮,南北路口的绿灯亮

5、南北路口绿灯灭,黄灯闪烁

由以上仿真结果可以看出,电路图和源程序设计完全满足设计要求。

六、课程设计总结与体会

通过这次课程设计我巩固和加深课堂所学知识;掌握一般软硬件的设计方法和查询、运用资料的能力;掌握通过定时器进行定时的基本方法、中断控制的原理和方法以及LED控制的方法。

这次课程设计,我将课本上的理论知识和实际的应用有机的结合起来,提高分析和解决问题的实际能力,通过对汇编语言程序代码的设计、编写、修改以提高自己实际编程能力。

总的来说,这次课程设计的难度不算大,整个设计、调试任务都有我独立完成。

而在PROTEUS软件仿真中的结果可以看到我的设计完全符合要求。

在设计过程中我还认识到,遇到问题时应回到书本,查找实际问题所需的理论知识,将理论和实际结合起来。

这样,在解决问题的同时还能提高我对理论知识的理解。

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

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2