有急救车的交通灯控制实验.docx
《有急救车的交通灯控制实验.docx》由会员分享,可在线阅读,更多相关《有急救车的交通灯控制实验.docx(10页珍藏版)》请在冰豆网上搜索。
有急救车的交通灯控制实验
有急救车的交通灯控制实验
一.实验目的
1.学习掌握多个接口芯片综合应用方法。
2.学习中断技术的根本使用方法。
3.学习模拟交通灯控制的实现方法。
4.学习控制程序的编程方法。
二.实验条件和要求
1.用业余时间进行调研,了解交通灯燃灭的规律,并写出调研报告,并在此根底上设计出硬件电路原理图。
2.在设计硬件电路时,要充分利用实验仪上的接口芯片,如8051单片机、8255并行接口芯片、发光二极管〔红、黄、绿各两个〕。
设计或利用接口仪上已有的单脉冲发生器,但脉冲发生器产生的负脉冲来产生中断,进行模拟有急救车通过。
3.编制相应的软件应用程序,并运行调试。
4.写出标准的实验报告。
实验报告用A4纸写出。
三.实验报告格式
1.实验题目
2.实验要求
3.调研报告
4.电路原理逻辑框图
5.程序流程图
6.应用程序
7.总结、分析、体会
调研报告
调研时间:
2007年6月2日
调研地点:
葫芦岛新区一处交通岗
调查任务:
刘宏宇—葫芦岛市公安局交警大队警员
调研人员:
谢铭泉、陈锐、石俊峰
调研内容:
该路口东西方向和南北方向各有交通灯三盏,分别为红色绿色黄色。
经过我们的观察,其亮灭变化规律为:
1.东西南北两向起始状态为全红。
-----延续10秒
2.东西向绿灯亮,南北向红灯亮。
-----延续30秒
3.东西向绿灯灭,黄灯闪,南北向红灯亮。
-----闪烁5秒
4.东西向红灯亮,南北向绿灯亮。
-----延续30秒
5.东西向红灯亮,南北向绿灯灭,黄灯闪。
-----闪烁5秒
6.循环以上步骤。
7.假设有急救车通过等特殊情况,东西南北向均为红灯亮,延续十秒。
然后恢复之前状态。
调研分析
通过对该路口交通灯变化规律的调研调我们了解了交通灯的变化规律,理解了交通灯的作用,它是人们平安行驶的指示灯,为减少交通事故的发生,标准人们的生活提供了保障。
本路口的交通灯功能还不够完善,如车辆转向等,但已经符合本设计的要求,能实现急救车通过等紧急情况。
经总结此路口的交通灯亮灭规律表如下:
交通灯亮灭规律表:
灯名
状态
东西
红L1
南北
红L2
东西
黄L3
南北
黄L4
东西
绿L5
南北
绿L6
L7
无效
L8
无效
状态1
红
红
0
0
0
0
1
1
状态2
0
红
0
0
绿
0
0
0
状态3
0
红
黄
0
0
0
0
0
0
状态4
红
0
0
0
0
绿
0
0
状态5
红
0
0
黄
0
0
0
0
0
紧急
情况
红
红
0
0
0
0
1
1
实验报告
一.电路原理逻辑框图
二.程序流程图
主程序:
定时器中断程序:
开始
初始化中断程序
初始化8255
开始定时记数
状态0
等待
结束
中断入口
存储器入栈
取反P1.1口
重置定时器
存储器出栈
中断返回
计数器中断程序急救车中断子程序
中断入口
存储器入栈
状态1
状态3
状态2
中断返回
存储器出栈
状态标号归0
状态4
中断入口
存储器入栈
东西南北全红
延时10s
返回中断前状态
存储器出栈
中断返回
三.交通灯控制码
十六进制
二进制
状态1
C3H
11000011B
状态2
12H
00010010B
状态3
06H02H
00000110B
00000010B
状态4
21H
00100001B
状态5
09H01H
00001001B
00000001B
紧急情况
C3H
11000011B
四.应用程序
CSEGAT0000H
LJMPSTART
CSEGAT4003H
LJMPJJ
CSEGAT400BH
LJMPTIMB
CSEGAT401BH
LJMPCOUNT
CSEGAT4100H
START:
MOVSP,#60H
SETBIT0
SETBBA
SETBEX0
SETBET0
SETBET1
MOVDPTR,#0CFA3H
MOVA,#80H;初始化8255,A为输入口
MOVX@DPTR,A
NOP
MOVTMOD,#61H;初始化计数器0.1S
MOVTH0,#3CH
MOVTL0#0B0H
MOVTH1,#9CH
MOVTL1,#9CH;计数100次
MOVR2,#00H
STA0:
MOVDPTR,#0CFA0H
MOVA,#03H
MOVX@DPTR,A
MOVR6,A
SETBTR0;启动定时器
SETBTR1;启动计数器
WAIT:
SJMPWAIT
JJ:
PUSHPSW;急救车中断
PUSHACC
PUSHR6
PUSHTH0;保持中断时刻时间
PUSHTL0;保持中断时刻计数值
PUSHTH1
PUSHTL1
CLRTR0
CLRTR1
SETBEA
MOVA,#0C3H;东西南北全红
MOVX@DPTR,A
LCALLDBLAY2
POPTL1
POPTH1
POPTL0
POPTH0
POP6
MOVA,R6;输出中断前状态
MOVX@DPTR,A
POPACC
SETBTR0
SETBTR1
POPPSW
RETI
TIME:
PUSHPSW;定时器中断
PUSHACC
PUSH2
CLRTR0
MOVTH0,#3CH
MOVTL0,#0B0H
CPLP1.1
SETBTR0
POP2
POPACC
POPPSW
RETI
COUNT:
PUSHPSW;计数器中断
PUSHACC
PUSHDPH
PUSHDPL
MOVTH1,#9CH
MOVA,R2
MOVDPTR,#STAUS
JMP@A+DPTR
STAUS:
AJMPS1;状态路由表
AJMPS2
AJMPS3
AJMPS4
S1:
ADDA,#02H;状态1
MOVR2,A
MOVDPTR,#0CFA0H
MOVA,#12H
MOVX@DPTR,A
MOVR6,A
LJMPOUT
S2:
ADDA,#02H;状态2
MOVR2,A
MOVDPTR,#0CFA0H
MOVR7,#05H;闪烁5次
LOOP0:
MOVA,#06H
MOVX@DPTR,A
LCALLDELAY1
MOVA,#02H
MOVX@DPTR,A
LCALLDELAY1
DJNZR7,LOOP0
MOVTH1,#0FFH
MOVTL1,#0FFH
LJMPOUT
S3:
ADDA,#02H
MOVR2,A
MOVDPTR,#0CFA0H
MOVA,#21H
MOVX@DPTR,A
MOVR6,A
LJMPOUT
S4:
NOP
MOVDPTR,#0CFA0H
MOVR7,#05H
LOOP1:
MOVA,#09H
MOVX@DPTR,A
LCALLDELAY1
MOVA,#01H
MOVX@DPTR,A
LCALLDELAY1
DJNZR7,LOOP1
MOVTH1,#0FFH;重置计数器
MOVTL1,#0FFH
MOVR2,#00H
LJMPOUT
OUT:
POPDPL
POPDPH
POPACC
POPPSW
RETI
DELAY1:
MOVR5,#05H;0.5秒延时子程序
LOP2:
MOVR4,#200
LOP1:
MOVR3,#126
LOP0:
DJNZR3,LOP0
DJNZR4,LOP1
DJNZR5,LOP2
RET
DELAY2:
MOVR5,#100;10秒延时子程序
LOPP2:
MOVR4,#200
LOPP1:
MOVR3,#126
LOPP0:
DJNZR3,LOPP0
DJNZR4,LOPP1
DJNZR5,LOPP2
RET
END
五.实验总结、分析、体会
通过本次带急救车通过的交通灯的调研活动,我熟悉了一个实际工程的设计过程,更锻炼了自己的动手实践能力,在设计的过程中,我对8051单片机外围电路的设计有了更深刻的认识,掌握了并行口如何输入输出数据,定时器计数器的工作过程,以及中断子程序的使用方法等,也清楚了自己在实践过程中应该注意的问题。
在设计电路时,充分利用了接口芯片8051单片机,8255并行接口芯片,发光二极管等,也就是对这些器件的使用和功能有了更进一步的了解,同时把学到的知识运用到了实际当中去,使知识掌握的更加稳固。
另外,对团对合作有了更进一步的了解。