单片机简单交通灯课程设计.docx

上传人:b****6 文档编号:6081120 上传时间:2023-01-03 格式:DOCX 页数:10 大小:312.67KB
下载 相关 举报
单片机简单交通灯课程设计.docx_第1页
第1页 / 共10页
单片机简单交通灯课程设计.docx_第2页
第2页 / 共10页
单片机简单交通灯课程设计.docx_第3页
第3页 / 共10页
单片机简单交通灯课程设计.docx_第4页
第4页 / 共10页
单片机简单交通灯课程设计.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

单片机简单交通灯课程设计.docx

《单片机简单交通灯课程设计.docx》由会员分享,可在线阅读,更多相关《单片机简单交通灯课程设计.docx(10页珍藏版)》请在冰豆网上搜索。

单片机简单交通灯课程设计.docx

单片机简单交通灯课程设计

摘要

1引言

世界上最先使用交通信号灯的是英国伦敦。

1868年12月10日,在伦敦布里奇大街和警察厅拐角处一根7米高的钢柱上,装上了一套交通信号灯,这套装置是由铁路信号工程师奈特发明的。

它有红绿两种颜色,红色示意“停止”,绿色示意“当心”。

由于这种信号灯燃烧煤气,因而很不安全,在它安装使用后的第23天就发生了爆炸,负责转灯的警察也因此丧生。

1879年爱迪生发明了白炽灯,从此,电气照明迅速进入到各个领域。

第一个电动红绿交通信号灯于1914年8月5日在美国的俄亥俄州投入使用。

灯柱上还安装了一个电铃,当红绿灯转换颜色时会自动鸣响。

现代的红、黄、绿三色交通信号灯于1918年出现在美国纽约,它安装在交通岗亭上,用人工控制。

20世纪20年代后,自动变换颜色的交通信号灯开始在全世界的大小市镇安家落户。

现在,世界各国一般都采用红、黄、绿三种颜色作为交通信号。

信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。

2.1设计目的1

4.1程序流程图3

1.交通管理的方案论证

东西、南北两干道交于一个十字路口,各干道有一组红、黄、绿三色的指示灯,指挥车辆和行人安全通行。

红灯亮禁止通行,绿灯亮允许通行。

黄灯亮提示人们注意红、绿灯的状态即将切换,且黄灯燃亮时间为东西、南北两干道的公共停车时间。

设东西道比南北道的车流量大,指示灯燃亮的方案

2.课程设计的题目及要求

(1)设计目的

1.熟悉单片机控制系统,并了解系统设计的一般规律。

2.掌握8255芯片的结构及编程方法。

3.熟悉模拟交通灯控制的实现方法。

(2)设计任务及要求

设计一个交通灯控制系统,该控制系统工作后,交通灯按照下列规律变化:

初始态东南西北均为红灯,持续时间为2s;然后转为状态1(10s),为东西红、南北绿;状态2(3s)东西红灯不变、南北绿灯灭、黄灯闪烁三次;状态3(15s),为东西绿、南北红;状态4(3s),为东西绿灯灭、黄灯闪烁三次、南北红灯不变;最后回到状态1,依此循环。

如遇到特殊情况,可拨动应急开关,使各向均为红灯,特殊车辆不受红灯限制,待其顺利通过后将开关拨回原位,系统恢复原状态运行。

3.硬件设计

(1)系统设计总框图

图1系统硬件框图

(2)系统引脚图

图2系统引脚图图

4.软件设计

(1)程序流程图

根据设计要求,程序框图如图3所示。

软件可由汇编语言完成。

软件设计可以分为以下几个功能模块:

1.主程序:

初始化及键盘监控。

2.计时程序模块:

为定时器的中断服务子程序,完成时间定时。

3.如遇到特殊情况,可拨动应急开关,使各向均为红灯,特殊车辆不受红灯限制,待其顺利通过后将开关拨回原位,系统恢复原状态运行。

图3程序流程图

(2)程序清单

ORG0000H;主程序的入口地址

LJMPMAIN;跳转到主程序的开始处

ORG0003H;外部中断0的中断程序入口地址

ORG000BH;定时器0的中断程序入口地址

LJMPT0_INT;跳转到中断服务程序处

ORG0013H;外部中断1的中断程序入口地址

MAIN:

MOVSP,#50H

MOVIE,#8EH;CPU开中断,允许T0中断,T1中断和外部中断1中断

MOVTMOD,#51H;设置T1为计数方式,T0为定时方式,且都工作于模式1

MOVTH1,#00H;T1计数器清零

MOVTL1,#00H

SETBTR1;启动T1计时器

SETBEX1;允许INT1中断

SETBIT1;选择边沿触发方式

MOVDPTR,#0003H

MOVA,#80H;给8255赋初值,8255工作于方式0

MOVX@DPTR,A

AGAIN:

JBP3.1,N0;判断是否要设定东西方向红绿灯时间的初值,若P3.1为1则跳转

MOVA,P1

JBP1.7,RED;判断P1.7是否为1,若为1则设定红灯时间,否则设定绿灯时间

MOVR0,#00H;R0清零

MOVR0,A;存入东西方向绿灯初始时间

MOVR3,A

LCALLDISP1

LCALLDELAY

AJMPAGAIN

RED:

MOVA,P1

ANLA,#7FH;P1.7置0

MOVR7,#00H;R7清零

MOVR7,A;存入东西方向红灯初始时间

MOVR3,A

LCALLDISP1

LCALLDELAY

AJMPAGAIN

;-------------------------------------------

N0:

SETBTR0;启动T0计时器

MOV76H,R7;红灯时间存入76H

N00:

MOVA,76H;东西方向禁止,南北方向通行

MOVR3,A

MOVDPTR,#0000H;置8255A口,东西方向红灯亮,南北方向绿灯亮

MOVA,#0DDH

MOVX@DPTR,A

N01:

JBP2.0,B0

N02:

SETBP3.0

CJNER3,#00H,N01;比较R3中的值是否为0,不为0转到当前指令处执行

;------黄灯闪烁5秒程序------

N1:

SETBP3.0

MOVR3,#05H

MOVDPTR,#0000H;置8255A口,东西,南北方向黄灯亮

MOVA,#0D4H

MOVX@DPTR,A

N11:

MOVR4,#00H

N12:

CJNER4,#7DH,$;黄灯持续亮0.5秒

N13:

MOVDPTR,#0000H;置8255A口,南北方向黄灯灭

MOVA,#0DDH

MOVX@DPTR,A

N14:

MOVR4,#00H

CJNER4,#7DH,$;黄灯持续灭0.5秒

CJNER3,#00H,N1;闪烁时间达5秒则退出

;------------------------------------------------------------

N2:

MOVR7,#00H

MOVA,R0;东西通行,南北禁止

MOVR3,A

MOVDPTR,#0000H;置8255A口,东西方向绿灯亮,南北方向红灯亮

MOVA,#0EBH

MOVX@DPTR,A

N21:

JBP2.0,T03

N22:

CJNER3,#00H,N21

;------黄灯闪烁5秒程序------

N3:

MOVR3,#05H

MOVDPTR,#0000H;置8255A口,东西,南北方向黄灯亮

MOVA,#0E2H

MOVX@DPTR,A

N31:

MOVR4,#00H

CJNER4,#7DH,$;黄灯持续亮0.5秒

N32:

MOVDPTR,#0000H;置8255A口,南北方向黄灯灭

MOVA,#0EBH

MOVX@DPTR,A

N33:

MOVR4,#00H

CJNER4,#7DH,$;黄灯持续灭0.5秒

CJNER3,#00H,N3;闪烁时间达5秒则退出

SJMPN00

;------闯红灯报警程序------

B0:

MOVR2,#03H;报警持续时间3秒

B01:

MOVA,R3

JZN1;若倒计时完毕,不再报警

CLRP3.0;报警

CJNER2,#00H,B01;判断3秒是否结束

SJMPN02

;------1秒延时子程序-------

N7:

RETI

T0_INT:

MOVTL0,#9AH;给定时器T0送定时10ms的初值

MOVTH0,#0F1H

INCR4

INCR5

CJNER5,#0FAH,T01;判断延时是否够一秒,不够则调用显示子程序

MOVR5,#00H;R5清零

DECR3;倒计时初值减一

DECR2;报警初值减一

T01:

ACALLDISP;调用显示子程序

RETI;中断返回

;------显示子程序------

DISP:

JNBP2.4,T02

DISP1:

MOVB,#0AH

MOVA,R3;R3中值二转十显示转换

DIVAB

MOV79H,A

MOV7AH,B

DIS:

MOVA,79H;显示十位

MOVDPTR,#TAB

MOVCA,@A+DPTR

MOVDPTR,#0002H

MOVX@DPTR,A

MOVDPTR,#0001H

MOVA,#0F7H

MOVX@DPTR,A

LCALLDELAY

DS2:

MOVA,7AH;显示个位

MOVDPTR,#TAB

MOVCA,@A+DPTR

MOVDPTR,#0002H

MOVX@DPTR,A

MOVDPTR,#0001H

MOVA,#0FBH

MOVX@DPTR,A

RET

;------东西方向车流量检测程序------

T03:

MOVA,R3

SUBBA,#00H;若绿灯倒计时完毕,不再检测车流量

JZN3

JBP2.0,T03

INCR7

CJNER7,#64H,E1

MOVR7,#00H;中断到100次则清零

E1:

SJMPN22

;------东西方向车流量显示程序------

T02:

MOVB,#0AH

MOVA,R7;R7中值二转十显示转换

DIVAB

MOV79H,A

MOV7AH,B

DIS3:

MOVA,79H;显示十位

MOVDPTR,#TAB

MOVCA,@A+DPTR

MOVDPTR,#0002H

MOVX@DPTR,A

MOVDPTR,#0001H

MOVA,#0F7H

MOVX@DPTR,A

LCALLDELAY

DS4:

MOVA,7AH;显示个位

MOVDPTR,#TAB

MOVCA,@A+DPTR

MOVDPTR,#0002H

MOVX@DPTR,A

MOVDPTR,#0001H

MOVA,#0FBH

MOVX@DPTR,A

LJMPN7

;------延时4MS子程序----------

DELAY:

MOVR1,#0AH

LOOP:

MOVR6,#64H

NOP

LOOP1:

DJNZR6,LOOP1

DJNZR1,LOOP

RET

;------字符表------

TAB:

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

END

5.调试及性能分析

(1)软件调试

软件调试主要是利用proteus仿真软件完成电路的搭建,运行以发现设计中的错误及时改正。

(2)硬件调试

硬件调试主要是检测硬件电路是否有短路、断路、虚焊等。

具体步骤及测试结果如下:

(1)检查电源与地线是否全部连接上,用万用表对照电路原理图测试各导线是否完全连接,对未连接的进行修复。

(2)参照原理图,检查各个器件之间的连接是否连接正确,是否存在虚焊,经测试,各连接不存在问题。

(3)以上两项检查并修复完后,给该硬件电路上电,电源指示灯点亮。

 

6.课程设计心得

这次单片机课程设计历时一个学期的时间,在这次设计过程里我们体验了从设计、画板、编程、焊板到调试的整个过程。

对于交通灯这个题目,由于以前学单片机这个课程时,做过类似相关的实验,觉得这个比较简单而且做出的东西也比较直观,在确定题目之后,查阅了大量的资料,初步完成了电路设计方案。

通过这次课设,对以前学过的知识进行了巩固,加深了理解,提高了应用的能力,而且提高了我们的发现、分析、解决问题的能力。

经历了从最初的设计到最后做出产品的开发过程,提高了对专业的认识及兴趣,对于我们工科来说,对以后就业有及其重大的影响。

由于本设计设计到的知识面比较广,就爱上本人在相关领域知识的缺乏,所以本设计的性能指标还是有待改善的,然而,模拟仿真证明了本设计的基本设计思想和设计方法以及基本功能是现实可行的。

参考文献

1刘守义等.单片机技术基础[M].西安电子科技大学出版社,2007.

2李平等.单片机入门与开发[M].机械工业出版社,2008

.

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

当前位置:首页 > 自然科学

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

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