交通灯课程设计.docx
《交通灯课程设计.docx》由会员分享,可在线阅读,更多相关《交通灯课程设计.docx(14页珍藏版)》请在冰豆网上搜索。
交通灯课程设计
城市交道口交通灯控制系统的设计
一.系统功能的确定:
1)每个街口有左拐、右拐、直行及行人四种指示灯。
每个灯有红、绿两种颜色。
自行车与汽车共用左拐、右拐和直行灯。
2)共有四种通行方式:
①车辆南北直行、各路右拐,南北向行人通行。
南北向通行时间为1分钟,各路右拐比直行滞后10秒钟开放。
②南北向左拐、各路右拐,行人禁行。
通行时间为1分钟。
③东西向直行、各路右拐,东西向行人通行。
东西向通行时间为1分钟,各路右拐比直行滞后10秒钟开放。
④东西向左拐、各路右拐。
行人禁行。
通行时间为1分钟。
3)在通行结束前10秒钟,绿灯闪烁直至结束。
1,基本部分:
按照上述控制要求,用发光二极管代替交通灯,用PROTEUS绘制电路图,并仿真调试实现之。
2,发挥部分
有倒计时时间显示。
二.方案论证:
2.1在完成倒计时、状态信息等的显示功能上,我们考虑了以下三种方案:
方案一:
完全采用数码管显示。
这种方案只能显示有限的符号和数码字符,无法胜任题目要求。
方案二:
完全采用点阵式LED显示。
此显示方案功能强大,可方便地显示各种英文字符,汉字,图形等,但这种方案实现复杂,且须完成大量的软件工作。
方案三:
采用双色发光管、数码管、LED点阵相结合的方法,双色发光管用来显示交通信息,数码管用来显示倒计时时间。
我们选的是方案三
总体方框图:
三:
系统硬件的设计:
电路图:
本次设计的单片机使用的是AT89C51芯片作为数据处理和控制器件,显示器用的是2联共阳极的数码管,单片机的P2口与数码管的字形口相连,单片机的P1口通过与双色二极管相连用来显示南北方向的交通状况,单片机的P3口通过与双色二极管相连用来显示东西方向的交通状况,单片机的P0.0~P0.1通过与显示器的位选口相连,用来显示倒计时。
本次实验选的是共阳极7段数码管。
程序实现说明:
(按直行、左拐、右拐、人行从下到上排列)
第一分钟的状态分析:
南北灯:
绿红红绿(01101001,96H);10秒后,绿红绿绿(10011010,9AH);
最后10秒,灭红灭灭(00010000,10H)
东西灯:
红红红红(01010101,55H),10秒后,红红绿红(01011001,59H);
最后10秒,红红灭红(01010001,51H)
第二分钟的状态分析:
南北灯:
红绿绿红(01101001,69H);最后10秒,红灭灭红(01000001,41H);
东西灯:
红红绿红(01011001,59H);最后10秒,红红灭红(01010001,51H)
第三分钟的状态分析:
南北灯:
红红红红(01010101,55H),10秒后,红红绿红(01011001,59H);
最后10秒,红红灭红(01010001,51H)
东西灯:
绿红红绿(10010110,96H),10秒后,绿红绿绿(10011010,9AH);
最后10秒,灭红灭灭(00010000,10H)
第四分钟的状态分析:
南北灯:
红红绿红(01011001,59H),最后10秒,红红灭红(01010001,51H)
东西灯:
红绿绿红(01101001,69H),最后10秒,红灭灭红(01000001,41H)
四.系统软件的设计
五.系统调试
软件调试在medwin编译软件,再将源程序编译及仿真调试应分段或以子程序为单位一个一个进行,最后可结合硬件实时调试。
在各个分段的成功后,可以将它们拼凑起来,使之实现整体的功能。
经过反复的调试,以成功。
将程序加载在ISIS,进行排线,模拟交通状况。
六.系统软件的设计:
ORG0000H
LJMPSTART
ORG000BH
LJMPJINT0
ORG1000H
SEQU30H
START:
MOVTMOD,#01
SETBEA
SETBET0
SETBTR0;启动T0
MOVTH0,#0D8H
MOVTL0,#0F0H
MOVS,#60
MOVDPTR,#CLOCK
MOVR2,#100
MOVR4,#10
MOVR5,#6
CLR08H
CLR09H
CLR00H
MOVA,S
MOVB,#10
DIVAB
MOV70H,A
MOVA,B
MOV71H,A
MOVA,#96H
MOVR7,A
MOVP1,R7
MOVA,#55H
MOVR7,A
MOVP3,R7
DI:
MOVR3,#01H
MOVR0,#70H
LD0:
MOVP0,R3
MOVA,@R0
MOVCA,@A+DPTR
RE0:
MOVP2,A
ACALLDL1
INCR0
MOVA,R3
JBACC.1,DI
RLA
MOVR3,A
LJMPLD0
REI1:
LJMPREI
JINT0:
T:
JB00H,TT
MOVTH0,#0D8H
MOVTL0,#0F0H
DJNZR2,REI1
MOVR2,#100
CPL09H
JNB08H,GO1
JNB09H,GG1
MOVA,#10H
MOVR7,A
MOVP1,R7
MOVA,#51H
MOVR7,A
MOVP3,R7
LJMPGO1
GG1:
MOVA,#9AH
MOVR7,A
MOVP1,R7
MOVA,#59H
MOVR7,A
MOVP3,R7
GO1:
DECS
MOVA,S
MOVB,#10
DIVAB
MOV70H,A
MOVA,B
MOV71H,A
MOVA,S
CJNEA,#10,GO
SETB08H
GO:
DJNZR4,REI1
MOVR4,#10
MOVA,#9AH
MOVR7,A
MOVP1,R7
MOVA,#59H
MOVR7,A
MOVP3,R7
DJNZR5,REI1
;第二个一分钟
SETB00H
CLR01H
MOVS,#60
MOVA,S
MOVB,#10
DIVAB
MOV70H,A
MOVA,B
MOV71H,A
MOVA,#69H
MOVR7,A
MOVP1,R7
MOVA,#59H
MOVR7,A
MOVP3,R7
MOVR2,#100
MOVR4,#60
CLR08H
CLR09H
LJMPREI
REIB:
LJMPREI1
REI2:
LJMPREI
TT:
JB01H,TTT
MOVTH0,#0D8H
MOVTL0,#0F0H
DJNZR2,REIB
MOVR2,#100
CPL09H
JNB08H,GO2
JNB09H,GG2
MOVA,#41H
MOVR7,A
MOVP1,R7
MOVA,#51H
MOVR7,A
MOVP3,R7
LJMPGO2
GG2:
MOVA,#69H
MOVR7,A
MOVP1,R7
MOVA,#59H
MOVR7,A
MOVP3,R7
GO2:
DECS
MOVA,S
MOVB,#10
DIVAB
MOV70H,A
MOVA,B
MOV71H,A
MOVA,S
CJNEA,#10,GOO
SETB08H
GOO:
DJNZR4,REI2
SETB00H
SETB01H
CLR02H
MOVS,#60
MOVA,S
MOVB,#10
DIVAB
MOV70H,A
MOVA,B
MOV71H,A
MOVA,#55H
MOVR7,A
MOVP1,R7
MOVA,#96H
MOVR7,A
MOVP3,R7
MOVR2,#100
MOVR4,#10
MOVR5,#6
CLR08H
CLR09H
REI4:
LJMPREI
JSTART:
LJMPSTART
TTT:
JB02H,TTTT
MOVTH0,#0D8H
MOVTL0,#0F0H
DJNZR2,REI4
MOVR2,#100
CPL09H
JNB08H,GO3
JNB09H,GG3
MOVA,#51H
MOVR7,A
MOVP1,R7
MOVA,#10H
MOVR7,A
MOVP3,R7
LJMPGO3
GG3:
MOVA,#59H
MOVR7,A
MOVP1,R7
MOVA,#9AH
MOVR7,A
MOVP3,R7
GO3:
DECS
MOVA,S
MOVB,#10
DIVAB
MOV70H,A
MOVA,B
MOV71H,A
MOVA,S
CJNEA,#10,GOOO
SETB08H
GOOO:
DJNZR4,REI7
MOVR4,#10
MOVA,#59H
MOVR7,A
MOVP1,R7
MOVA,#9AH
MOVR7,A
MOVP3,R7
DJNZR5,REI7
SETB02H
CLR03H
MOVS,#60
MOVA,S
MOVB,#10
DIVAB
MOV70H,A
MOVA,B
MOV71H,A
MOVA,#59H
MOVR7,A
MOVP1,R7
MOVA,#69H
MOVR7,A
MOVP3,R7
MOVR2,#100
MOVR4,#60
CLR08H
CLR09H
LJMPREI
REI7:
LJMPREI
JT:
LJMPT
TTTT:
JB03H,JT
MOVTH0,#0D8H
MOVTL0,#0F0H
DJNZR2,REI
MOVR2,#100
CPL09H
JNB08H,GO4
JNB09H,GG4
MOVA,#51H
MOVR7,A
MOVP1,R7
MOVA,#41H
MOVR7,A
MOVP3,R7
LJMPGO4
GG4:
MOVA,#59H
MOVR7,A
MOVP1,R7
MOVA,#69H
MOVR7,A
MOVP3,R7
GO4:
DECS
MOVA,S
MOVB,#10
DIVAB
MOV70H,A
MOVA,B
MOV71H,A
MOVA,S
CJNEA,#10,GOOOO
SETB08H
GOOOO:
DJNZR4,REI
REI:
RETI
clock:
DB0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,80H,90H,0FFH;时钟初始化
DL1:
MOVR7,#02H
DL:
MOVR6,#0FFH
DL6:
DJNZR6,DL6
DJNZR7,DL
RET
END
七.总结:
通过这次的课程设计,我真的学会了好多,从刚开始的比较短的程序都读不来,到后来通过一遍遍的看单片机书一遍遍的理解一些简短的程序,再到这次的交通灯设计,我初步学会了利用单片机进行软件编程以及初步的模拟,学会了在已知的情形下如何利用软件的编程实现其功能,初步学会了如何修改程序中的不足,如何在程序中完美功能,这让我初步懂得了单片机的一些基本功能应用。
八.参考资料
1.《MCS-51系列单片机系统及其应用》(第二版)蔡美琴等高等教育出版社