有急救车的交通灯控制实验
一.实验目的
1.学习掌握多个接口芯片综合应用方法。 2.学习中断技术的基本使用方法。 3.学习模拟交通灯控制的实现方法。 4.学习控制程序的编程方法。 二.实验条件和要求
1.用业余时间进行调研,了解交通灯燃灭的规律,并写出调研报告,并在此基础上设计出硬件电路原理图。
2.在设计硬件电路时,要充分利用实验仪上的接口芯片,如8051单片机、8255并行接口芯片、发光二极管(红、黄、绿各两个)。 设计或利用接口仪上已有的单脉冲发生器,但脉冲发生器产生的负脉冲来产生中断,进行模拟有急救车通过。 3.编制相应的软件应用程序,并运行调试。 4.写出规范的实验报告。实验报告用A4纸写出。 三.实验报告格式
1. 实验题目 2. 实验要求 3. 调研报告 4. 电路原理逻辑框图 5. 程序流程图 6. 应用程序
7. 总结、分析、体会
调研报告
调研时间: 调研地点: 调研人物: 调研内容:
该路口东西方向和南北方向各有交通灯三盏,分别为红色 绿色 黄色。经过我们的观察,其亮灭变化规律为:
1.东西南北两向起始状态为全红。-----延续10秒 2.东西向绿灯亮,南北向红灯亮。-----延续30秒 3.东西向绿灯灭,黄灯闪,南北向红灯亮。-----闪烁5秒 4.东西向红灯亮,南北向绿灯亮。-----延续30秒 5.东西向红灯亮,南北向绿灯灭,黄灯闪。-----闪烁5秒 6.循环以上步骤。
7.若有急救车通过等特殊情况,东西南北向均为红灯亮,延续十秒。然后恢复之前状态。
调研分析
通过对该路口交通灯变化规律的调研调我们了解了交通灯的变化规律,理解了交通灯的作用,它是人们安全行驶的指示灯,为减少交通事故的发生,规范人们的生活提供了保障。
本路口的交通灯功能还不够完善,如车辆转向等,但已经符合本设计的要求,能实现急救车通过等紧急情况。经总结此路口的交通灯亮灭规律表如下:
交通灯亮灭规律表:
灯名 状态 东西 南北 东西 南北 东西 南北 L7 红L1 红L2 黄L3 黄L4 绿L5 绿L6 无效 1 1 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 L8 无效
状态1 1 状态2 状态3 状态4 状态5 紧急 情况
0 0 1 1 1 1 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0
实验报告
一.电路原理逻辑框图
二.程序流程图
主程序: 定时器中断程序:
开 始 初始化中断程序 初始化8255 开始定时记数 状态0 等 待 结 束
计数器中断程序 中断入口 存储器入栈 状态1 状态2 状态3 状态4 状态标号归0 存储器出栈 中断返回 .交通灯控制码
中断入口 存储器入栈 取反P1.1口 重置定时器 存储器出栈 中断返回 急救车中断子程序中断入口 存储器入栈 东西南北全红 延时10s 返回中断前状态 存储器出栈 中断返回
三
状态1 状态2 状态3 状态4 状态5 紧急情况 十六进制 C3H 12H 06H 02H 21H 09H 01H C3H 二进制 11000011B 00010010B 00000110B 00000010B 00100001B 00001001B 00000001B 11000011B 四.应用程序
CSEG AT 0000H
LJMP START CSEG AT 4003H LJMP JJ CSEG AT 400BH LJMP TIMB CSEG AT 401BH LJMP COUNT CSEG AT 4100H START:MOV SP ,#60H SETB IT0 SETB BA SETB EX0 SETB ET0
SETB ET1
MOV DPTR,#0CFA3H
MOV A,#80H ;初始化8255,A为输入
口
MOVX @DPTR,A NOP
MOV TMOD,#61H ;初始化计数器0.1S MOV TH0,#3CH MOV TL0 #0B0H MOV TH1,#9CH
MOV TL1,#9CH ;计数100次
MOV R2,#00H
STA0: MOV DPTR,#0CFA0H MOV A,#03H
MOVX @DPTR,A MOV R6,A
SETB TR0 ;启动定时器 SETB TR1 ;启动计数器 WAIT: SJMP WAIT
JJ: PUSH PSW ;急救车中断 PUSH ACC
PUSH R6
PUSH TH0 PUSH TL0 PUSH TH1 PUSH TL1 CLR TR0 CLR TR1 SETB EA
MOV A,#0C3H MOVX @DPTR,A LCALL DBLAY2 POP TL1 POP TH1 POP TL0 POP TH0 POP 6
MOV A,R6 MOVX @DPTR,A POP ACC SETB TR0 SETB TR1 POP PSW RETI
TIME: PUSH PSW PUSH ACC PUSH 2 CLR TR0 MOV TH0,#3CH MOV TL0,#0B0H CPL P1.1 SETB TR0
;东西南北全红 ;输出中断前状态 ;定时器中断
;保持中断时刻时间 ;保持中断时刻计数值 POP 2 POP ACC POP PSW RETI
COUNT: PUSH PSW ;计数器中断 PUSH ACC PUSH DPH PUSH DPL MOV TH1,#9CH MOV A,R2
MOV DPTR,#STAUS
JMP @A+DPTR
STAUS: AJMP S1 AJMP S2 AJMP S3 AJMP S4
S1: ADD A,#02H MOV R2,A
MOV DPTR,#0CFA0H MOV A,#12H MOVX @DPTR,A MOV R6,A LJMP OUT
S2: ADD A,#02H MOV R2,A
MOV DPTR,#0CFA0H
MOV R7,#05H LOOP0: MOV A,#06H MOVX @DPTR ,A LCALL DELAY1 MOV A,#02H MOVX @DPTR,A LCALL DELAY1 DJNZ R7,LOOP0 MOV TH1,#0FFH MOV TL1,#0FFH LJMP OUT S3: ADD A,#02H MOV R2,A
MOV DPTR,#0CFA0H
;状态路由表 ;状态1 状态2 5次 ; ;闪烁 MOV A,#21H MOVX @DPTR,A MOV R6,A LJMP OUT S4: NOP
MOV DPTR,#0CFA0H MOV R7,#05H LOOP1: MOV A,#09H MOVX @DPTR,A LCALL DELAY1 MOV A,#01H MOVX @DPTR,A
LCALL DELAY1 DJNZ R7,LOOP1
MOV TH1,#0FFH ; 重置计数器 MOV TL1,#0FFH MOV R2,#00H LJMP OUT OUT: POP DPL POP DPH POP ACC POP PSW
RETI
DELAY1: MOV R5,#05H ; 0.5秒延时子程序
LOP2: MOV R4,#200 LOP1: MOV R3,#126 LOP0: DJNZ R3,LOP0
DJNZ R4,LOP1 DJNZ R5,LOP2 RET
DELAY2: MOV R5,#100 ;10秒延时子程序 LOPP2: MOV R4,#200 LOPP1: MOV R3,#126 LOPP0: DJNZ R3,LOPP0
DJNZ R4,LOPP1 DJNZ R5,LOPP2 RET END
五.实验总结、分析、体会
通过本次带急救车通过的交通灯的调研活动,我熟悉了一个实际项目的设计
过程,更锻炼了自己的动手实践能力,为以后的毕业设计和工作打下了良好的基础。
在设计的过程中,我对8051单片机外围电路的设计有了更深刻的认识,掌握了并行口如何输入输出数据,定时器 计数器的工作过程,以及中断子程序的使用方法等,也清楚了自己在实践过程中应该注意的问题。在设计电路时,充分利用了接口芯片8051单片机,8255并行接口芯片,发光二极管等,也就是对这些器件的使用和功能有了更进一步的了解,同时把学到的知识运用到了实际当中去,使知识掌握的更加稳固。
通过本次调研实验,我的动手能力有了很大的提高。
因篇幅问题不能全部显示,请点此查看更多更全内容