有急救车的交通灯控制实验一.实验目的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南北绿L6L7无效L8无效状态1红红000011状态20红00绿000状态30红黄000000状态4红0000绿00状态5红00黄00000紧急情况红红000011实验报告一.电路原理逻辑框图二.程序流程图主程序:定时器中断程序:计数器中断程序急救车中断子程序中断入口存储器入栈状态1状态3状态2中断返回存储器出栈状态标号归0状态4中断入口存储器入栈东西南北全红延时10s返回中断前状态存储器出栈中断返回开始初始化中断程序初始化8255开始定时记数状态0等待结束中断入口存储器入栈取反P1.1口重置定时器存储器出栈中断返回三.交通灯控制码十六进制二进制状态1C3H11000011B状态212H00010010B状态306H02H00000110B00000010B状态421H00100001B状态509H01H00001001B00000001B紧急情况C3H11000011B四.应用程序CSEGAT0000HLJMPSTARTCSEGAT4003HLJMPJJCSEGAT400BHLJMPTIMBCSEGAT401BHLJMPCOUNTCSEGAT4100HSTART:MOVSP,#60HSETBIT0SETBBASETBEX0SETBET0SETBET1MOVDPTR,#0CFA3HMOVA,#80H;初始化8255,A为输入口MOVX@DPTR,ANOPMOVTMOD,#61H;初始化计数器0.1SMOVTH0,#3CHMOVTL0#0B0HMOVTH1,#9CHMOVTL1,#9CH;计数100次MOVR2,#00HSTA0:MOVDPTR,#0CFA0HMOVA,#03HMOVX@DPTR,AMOVR6,ASETBTR0;启动定时器SETBTR1;启动计数器WAIT:SJMPWAITJJ:PUSHPSW;急救车中断PUSHACCPUSHR6PUSHTH0;保持中断时刻时间PUSHTL0;保持中断时刻计数值PUSHTH1PUSHTL1CLRTR0CLRTR1SETBEAMOVA,#0C3H;东西南北全红MOVX@DPTR,ALCALLDBLAY2POPTL1POPTH1POPTL0POPTH0POP6MOVA,R6;输出中断前状态MOVX@DPTR,APOPACCSETBTR0SETBTR1POPPSWRETITIME:PUSHPSW;定时器中断PUSHACCPUSH2CLRTR0MOVTH0,#3CHMOVTL0,#0B0HCPLP1.1SETBTR0POP2POPACCPOPPSWRETICOUNT:PUSHPSW;计数器中断PUSHACCPUSHDPHPUSHDPLMOVTH1,#9CHMOVA,R2MOVDPTR,#STAUSJMP@A+DPTRSTAUS:AJMPS1;状态路由表AJMPS2AJMPS3AJMPS4S1:ADDA,#02H;状态1MOVR2,AMOVDPTR,#0CFA0HMOVA,#12HMOVX@DPTR,AMOVR6,ALJMPOUTS2:ADDA,#02H;状态2MOVR2,AMOVDPTR,#0CFA0HMOVR7,#05H;闪烁5次LOOP0:MOVA,#06HMOVX@DPTR,ALCALLDELAY1MOVA,#02HMOVX@DPTR,ALCALLDELAY1DJNZR7,LOOP0MOVTH1,#0FFHMOVTL1,#0FFHLJMPOUTS3:ADDA,#02HMOVR2,AMOVDPTR,#0CFA0HMOVA,#21HMOVX@DPTR,AMOVR6,ALJMPOUTS4:NOPMOVDPTR,#0CFA0HMOVR7,#05HLOOP1:MOVA,#09HMOVX@DPTR,ALCALLDELAY1MOVA,#01HMOVX@DPTR,ALCALLDELAY1DJNZR7,LOOP1MOVTH1,#0FFH;重置计数器MOVTL1,#0FFHMOVR2,#00HLJMPOUTOUT:POPDPLPOPDPHPOPACCPOPPSWRETIDELAY1:MOVR5,#05H;0.5秒延时子程序LOP2:MOVR4,#200LOP1:MOVR3,#126LOP0:DJNZR3,LOP0DJNZR4,LOP1DJNZR5,LOP2RETDELAY2:MOVR5,#100;10秒延时子程序LOPP2:MOVR4,#200LOPP1:MOVR3,#126LOPP0:DJNZR3,LOPP0DJNZR4,LOPP1DJNZR5,LOPP2RETEND五.实验总结、分析、体会通过本次带急救车通过的交通灯的调研活动,我熟悉了一个实际项目的设计过程,更锻炼了自己的动手实践能力,在设计的过程中,我对8051单片机外围电路的设计有了更深刻的认识,掌握了并行口如何输入输出数据,定时器计数器的工作过程,以及中断子程序的使用方法等,也清楚了自己在实践过程中应该注意的问题。在设计电路时,充分利用了接口芯片8051单片机,8255并行接口芯片,发光二极管等,也就是对这些器件的使用和功能有了更进一步的了解,同时把学到的知识运用到了实际当中去,使知识掌握的更加稳固。另外,对团对合作有了更进一步的了解。