您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 交通运输 > 华电电气微机原理综合交通灯设计
微机原理与接口技术实验报告综合实验红绿灯仿真及实现专业:电力系班级:电气1409学号:2014010009**姓名:WAY预习报告成绩实验成绩:实验日期及时间:(1)2017/5/13机位号:(2)2017/5/20机位号:B11指导教师:秦金磊第1页,共33页综合实验项目基本要求(任务书):设计实现交通信号灯系统。设A车道与B车道交叉组成十字路口,A是主道,B是支道,直接对车辆进行交通管理,基本要求如下:(1)用发光二极管模拟交通信号灯;(2)正常情况下,A、B两车道轮流放行,A车道放行绿灯亮,其中3秒用于警告(黄灯亮);B车道放行绿灯亮,其中3秒用于警告(黄灯亮);A、B车道放行、禁止通行时间自己定义;(3)有紧急车辆通过时,按下某开关使A、B车道均为红灯,紧急情况解除后,恢复正常控制。注意:除上述基本要求外,其它各种功能,可以自由发挥。一实验一:在Proteus仿真实现交通信号灯系统。(1)交通信号灯系统设计描述(实现内容)①用发光二极管模拟交通信号灯;②正常情况下,A、B两车道轮流放行。A车道绿灯放行,直行箭头亮,人行道红灯亮,B道红灯亮,直行红箭头亮,人行道绿灯亮延时10秒;A车道绿灯闪烁两次B车道红灯禁止放行,然后A车道延时3秒用于警告(黄灯亮);A车道红灯亮,A车道左转箭头亮,延时5秒;B车道绿灯,直行箭头亮,人行道红灯亮,A车道禁止放行红灯亮直行红箭头亮,人行道绿灯亮延时10秒,B车道绿灯闪烁2次,A车道禁止放行红灯亮,然后3秒用于警告(黄灯亮);B车道红灯亮,B车道左转箭头亮,延时5秒;恢复到初始状态.第2页,共33页③有紧急车辆通过时,按下某开关使A、B车道均为红灯,紧急情况延时5秒;④A道有特种车辆通过时,按下某开关使A车道为绿灯B车道为红灯,延时5秒;⑤用数码管显示绿灯通行、黄灯等待时间;(2)Proteus中实现原理图下图为矢量图可以放大看第3页,共33页(3)源程序清单;8253的端口地址A1_PORTEQU220H;0#B1_PORTEQU222H;1#C1_PORTEQU224H;2#CT1_PORTEQU226H;CONTROL;8255#1端口地址A_PORTEQU200HB_PORTEQU202HC_PORTEQU204HCT_PORTEQU206H;8255#2(A道LED)端口地址A2_PORTEQU230HB2_PORTEQU232HC2_PORTEQU234HCT2_PORTEQU236H;8255#3(B道LED)端口地址A3_PORTEQU228HB3_PORTEQU22AHC3_PORTEQU22CH第4页,共33页CT3_PORTEQU22EH;8255#4(A、B道左转LED)端口地址A4_PORTEQU238HB4_PORTEQU23AHC4_PORTEQU23CHCT4_PORTEQU23EH;8259A的端口地址O_ADREQU212H;奇地址E_ADREQU210H;偶地址DATASSEGMENT;七段码ORG0F0000HTABDB00H,01H,02H,03H,04H,05H,06H,07H,08H,09H,10H,11H,12H,13H,14H,15HAB_FLAGDB0;0表示A道,1表示B道ORG6000H;人行道段码表ROW1DB01H,02H,04H,08H,10H,20H,40H,80HCEL1DB0F7H,0F7H,0F7H,0F7H,0E7H,0DBH,0BDH,7EH;箭头段码表CEL2DB0E7H,0C3H,0A5H,66H,0E7H,0E7H,0E7H,0E7HUNABLEDB7EH,0BDH,0DBH,0E7H,0E7H,0DBH,0BDH,7EHALFTDB0F3H,0F9H,0H,79H,73H,7FH,7FH,7FHDATASENDSCODESEGMENTPUBLIC'CODE'ASSUMECS:CODE,DS:DATASORG2000HSTART:;WriteyourcodeherePUSHDSCLI;8253计数器0的初始化MOVAL,36H;控制字00110110B,计数器0,方式3,二进制MOVDX,CT1_PORTOUTDX,AL;送控制端口;8253计数器1的初始化MOVAL,70H;控制字01110000B,计数器1,方式0,二进制第5页,共33页MOVDX,CT1_PORTOUTDX,AL;送控制端口;8259A的初始化;00010011,ICW1,边沿触发,无从片,写ICW4MOVAL,13HMOVDX,E_ADR;偶地址OUTDX,AL;ICW2,IR0中断向量码为08HMOVAL,08HMOVDX,O_ADR;奇地址OUTDX,ALMOVAL,0FHMOVDX,O_ADR;奇地址OUTDX,AL;ICW4,CPU为80X86系列,非自动结束,无缓冲,全嵌套方式MOVAL,01HOUTDX,ALMOVAL,7EHOUTDX,AL;OCW1,只允许IR0开放;中断向量表的初始化MOVAX,0000HMOVDS,AXMOVSI,08H*4MOVAX,OFFSETIR0MOVBX,SEGIR0MOV[SI],AXMOV[SI+2],BX;IR7中断向量MOVSI,0FH*4MOVAX,OFFSETIR7MOVBX,SEGIR7MOV[SI],AXMOV[SI+2],BX;8255#1初始化MOVAL,88H;正定控制字1000,1000,方式0,A口输出,C口输入MOVDX,CT_PORTOUTDX,AL;8255#2初始化MOVAL,80H;正定控制字1000,1000,方式0,A口、B、C输出第6页,共33页MOVDX,CT2_PORTOUTDX,AL;8255#3初始化MOVAL,80H;正定控制字1000,1000,方式0,A口、B、C输出MOVDX,CT3_PORTOUTDX,AL;8255#4初始化MOVAL,80H;正定控制字1000,1000,方式0,A口、B、C输出MOVDX,CT4_PORTOUTDX,AL;A道绿灯,B道红灯,延时10s,默认是A道,即AB_FLAG=0LP:PUSHDSCLISTI;开中断POPDSMOVAL,0F3HMOVDX,A_PORT;A道绿灯,B道红灯OUTDX,AL;延时10SMOVCX,10YS1:CALLNORMALDELAY1SLOOPYS1;A道绿灯闪烁,B道红灯禁止,闪两次MOVAL,0F7HMOVDX,A_PORT;A道绿灯灭,B道红灯禁止,第一次OUTDX,ALCALLNORMALDELAY1SMOVAL,0F3HMOVDX,A_PORT;A道绿灯亮,B道红灯禁止,第一次OUTDX,ALCALLNORMALDELAY1SMOVAL,0F7HMOVDX,A_PORT;A道绿灯灭,B道红灯禁止,第二次OUTDX,ALCALLNORMALDELAY1SMOVAL,0F3HMOVDX,A_PORT;A道绿灯亮,B道红灯禁止,第二次OUTDX,ALCALLNORMALDELAY1S第7页,共33页;A道黄灯亮,B道红灯禁止,延时3sMOVAL,0F5HMOVDX,A_PORT;A道黄灯亮,B道红灯禁止OUTDX,AL;延时3SMOVCX,3YS2:CALLNORMALDELAY1SLOOPYS2;A道直行红灯亮,左转绿灯,人行道红灯亮,B道红灯,延时5秒MOVCX,5AZZYS1:CALLAZZDELAY1SLOOPAZZYS1;B道绿灯放行,A道红灯禁止,延时10s,修改标志为B道MOVAL,AB_FLAGINCALMOVAB_FLAG,ALMOVAL,0DEHMOVDX,A_PORT;B道绿灯放行,A道红灯禁止OUTDX,AL;延时10S程序MOVCX,10YS3:CALLNORMALDELAY1SSLOOPYS3;B道绿灯闪烁,A道红灯禁止,闪两次MOVAL,0FEHMOVDX,A_PORT;B道绿灯灭,A道红灯禁止,第一次OUTDX,ALCALLNORMALDELAY1SSMOVAL,0DEHMOVDX,A_PORT;B道绿灯亮,A道红灯禁止,第一次OUTDX,ALCALLNORMALDELAY1SSMOVAL,0FEHMOVDX,A_PORT;B道绿灯灭,A道红灯禁止,第二次OUTDX,ALCALLNORMALDELAY1SSMOVAL,0DEH第8页,共33页MOVDX,A_PORT;B道绿灯亮,A道红灯禁止,第二次OUTDX,ALCALLNORMALDELAY1SS;B道黄灯亮,A道红灯禁止,延时3sMOVAL,0EEHMOVDX,A_PORT;B道黄灯亮,A道红灯禁止OUTDX,AL;延时3S程序MOVCX,3YS4:CALLNORMALDELAY1SSLOOPYS4;B道直行红灯亮,左转绿灯,A道红灯,延时5秒MOVCX,5BZZYS1:CALLBZZDELAY1SLOOPBZZYS1;修改标志为A道MOVAL,AB_FLAGDECALMOVAB_FLAG,ALJMPLPIR0PROCCLIPUSHCXMOVAL,0F6H;A道B道红灯禁止MOVDX,A_PORTOUTDX,ALMOVCX,6ZDYS1:CALLUNNORMALDELAY1SLOOPZDYS1POPCXMOVAL,20HMOVDX,E_ADROUTDX,AL;OCW2发结束命令EOI=1TESTAB_FLAG,1JZLIA第9页,共33页JMPLIBLIA:MOVAL,0F3HMOVDX,A_PORT;A道绿灯,B道红灯OUTDX,ALJMPDONELIB:MOVAL,0DEHMOVDX,A_PORT;B道绿灯放行,A道红灯禁止OUTDX,ALDONE:STIIRETIR0ENDPIR7PROCCLIPUSHCXMOVAL,0F3H;A道绿灯,B道红灯禁止MOVDX,A_PORTOUTDX,ALMOVCX,5ZDYS2:CALLNORMALDELAY1SLOOPZDYS2POPCXMOVAL,20HMOVDX,E_ADR;偶地址OUTDX,AL;OCW2发结束命令EOI=1TESTAB_FLAG,1JZLIAJMPLIBLIA:MOVAL,0F3HMOVDX,A_PORT;A道绿灯,B道红灯OUTDX,ALJMPDONELIB:MOVAL,0DEHMOVDX,A_PORT;B道绿灯放行,A道红灯禁止OUTDX,ALDONE:STIIRETIR7ENDP;1s精确延时NORMALDELAY1SPROC第10页,共33页MOVAL,AB_FLAGCMPAL,0JZAPATH;设置PC0为高MOVAL,1MOVDX,C_PORTOUTDX,ALJMPSEC_DISAPATH:;设置PC0为低MOVAL,0MOVDX,C_PORTOUTDX,ALSEC_DIS:;保存所余秒数MOVBX,CX;从PB口输出剩余秒数到LEDLEASI,TABADCBX,SIMOVAX,DS:[BX]MOVDX,B_PORTOUTDX,AL;设置计数器0的初值MOVAX,1000MOVDX,A1_PORTOUTDX,ALMOVAL,AHOUTDX,AL;设置计数器1的初值MOVAX,1000MOVDX,B1_PORTOUTDX,ALMOVAL,AHOUTDX,AL;判断计数时间是否达到1sPUSHSIPUSHDIPUSHBXPUSHCX第11页,共33页N:MOVCX,8LEASI,ROW1LEADI,CEL1LEABX,CEL2LOOP2:MOVAL,[SI]MOVDX,A2_PORTOUTDX,ALMOVAL,[BX]MOVDX,C2_PORTOUTDX,ALMOVAL,[SI]MOVDX,A2_PORTOUTDX,ALMOVAL,[DI]MOVDX,B2_PORTOUTDX,ALINCSIINCDIINCBXPUSHCXMOVCX,150LOOP$POPCXLOOPLOOP2MOVDX,C_PORTINAL,DXANDAL,80HCMPAL,80HJNZNDONE1:POPCXPOP
本文标题:华电电气微机原理综合交通灯设计
链接地址:https://www.777doc.com/doc-5581124 .html