《实验9全能交通灯控制系统设计》由会员分享,可在线阅读,更多相关《实验9全能交通灯控制系统设计(5页珍藏版)》请在金锄头文库上搜索。
1、实验九实验九 全功能交通灯控制系统设计全功能交通灯控制系统设计目的与要求:目的与要求:将中断系统引入交通灯控制,使用定时器定时变换交通灯的状态。方法与原理分析:方法与原理分析:主程序流程图: 中断服务程序: 开始清零开启十字路口交通 灯定时时间 15S 延时 1S定时器 T0 方式 1拆分 BCD 码结束开始重装初值重装初值延时 1S ?定时=15S ?南北通行?东西:绿灯灭黄灯亮 南北:红灯亮南北:绿灯灭黄灯亮 东西;红灯亮关中断开中断东西通行东西通行1 秒延时1 秒延时开中断开中断中断返回译码显示NYYYNN拆分子程序: DISPLAY 子程序: 延时子程序:程序清单: NB_HONGBI
2、T P1.2 NB_HUANG BIT P1.1 NB_LVBIT P1.0 DX_HONGBIT P1.5 DX_HUANG BIT P1.4 DX_LVBIT P1.3 BEISHUDATA40H WEI0BITP0.0 WEI1BITP0.1 DUANMAEQUP2 DIG0DATA30H DIG1DATA31H开始A=DIS_BUF B= #10A=A/B B=余数中断返回开始初始化译码中断返回开始R7=#100R6=#100中断返回DIG1=A DIG0=B显示R5=#50R5-1=0 ?R6-1=0 ?R7-1=0 ?NY NYNYDIS_BUFDATA41H ORG0000H L
3、JMPMAIN ORG0003H RETI ORG000BH LJMPT0_SER ORG0013H RETI ORG001BH RETI ORG0023H RETI ORG0100H MAIN:MOVP1, #00H CLRNB_HONG CLRNB_HUANG SETBNB_LV SETBDX_HONG CLRDX_HUANG CLRDX_LV MOVBEISHU,#20 MOVDIS_BUF,#15 MOVTMOD,#01H;? MOVTH0,#3CH MOVTL0,#0B0H SETBEA SETBET0 SETBTR0 M_LOOP: LCALL XS_CHAIFEN LCALL D
4、ISPLAY SJMPM_LOOPT0_SER: MOVTH0,#3CH MOVTL0,#0B0H DJNZBEISHU,T0_OUT MOVBEISHU,#20 DJNZDIS_BUF,T0_OUT MOVDIS_BUF,#15 JNBNB_LV, DX_NB NB_DX: CLRNB_HONG;过度状态 NB_DX SETBNB_HUANG CLRNB_LVSETBDX_HONG CLRDX_HUANG CLRDX_LV CLRTR0;禁止计时 LCALL DELAY_1S SETBNB_HONG;东西通行 CLRNB_HUANG CLRNB_LV CLRDX_HONG CLRDX_HUA
5、NG SETBDX_LV SETBTR0;恢复计时 LJMPT0_OUT DX_NB: CLRDX_HONG;过度状态 DX_NB SETBDX_HUANG CLRDX_LV SETBNB_HONG CLRNB_HUANG CLRNB_LV CLRTR0;禁止计时 LCALL DELAY_1S SETBDX_HONG;东西通行 CLRDX_HUANG CLRDX_LV CLRNB_HONG CLRNB_HUANG SETBNB_LV SETBTR0;恢复计时 LJMPT0_OUT T0_OUT:RETI DISPLAY: SETBWEI0 CLRWEI1 MOVDPTR,#DISTAB MOV
6、A,DIG0 MOVCA,A+DPTR MOVDUANMA,A MOVDUANMA,#00H CLRWEI0 SETBWEI1 MOVDPTR,#DISTAB MOVA,DIG1 MOVCA,A+DPTR MOVDUANMA,AMOVDUANMA,#00H RET XS_CHAIFEN:;拆分MOV A,DIS_BUFMOV B,#10DIV ABMOV DIG1,AMOV DIG0,BRET DELAY_1S: MOVR7, #100 DL1:MOVR6, #100 DL2:MOVR5, #50 DL3:DJNZR5, DL3 DJNZR6, DL2 DJNZR7, DL1 RET DISTAB:DB.