资源预览内容
第1页 / 共8页
第2页 / 共8页
第3页 / 共8页
第4页 / 共8页
第5页 / 共8页
第6页 / 共8页
第7页 / 共8页
第8页 / 共8页
亲,该文档总共8页全部预览完了,如果喜欢就下载吧!
资源描述
单片机模拟交通灯(2012-8-12)主电路图(图一)Static Display子图(图二)仿真效果(图三)仿真效果(图四)仿真效果(图五)仿真效果(图六)汇编语言程序:SECOND1EQU30HSECOND2EQU31HDBUFEQU40HTEMPEQU44HLED_G1BITP2.1;东西路口绿灯LED_Y1BITP2.2;东西路口黄灯LED_R1BITP2.3;东西路口红灯LED_G2BITP2.4;南北路口绿灯LED_Y2BITP2.5;南北路口黄灯LED_R2BITP2.6;南北路口红灯ORG0000HLJMPSTARTORG0100HSTART:MOVTMOD,#01H;置T0为工作方式1MOVTH0,#3CH;置T0定时初值50msMOVTL0,#0B0HCLRTF0SETBTR0;启动T0CLRAMOVP1,A;关闭不相关的LED;*LOOP:MOVR2,#20;置1s计数初值,50ms*20=1sMOVR3,#20;红灯亮20sMOVSECOND1,#25;东西路口计时显示初值25sMOVSECOND2,#25;南北路口计时显示初值25sLCALLDISPLAYLCALLSTATE1;调用状态1WAIT1:JNBTF0,WAIT1;查询50ms到否CLRTF0MOVTH0,#3CH;恢复T0定时初值50msMOVTL0,#0B0HDJNZR2,WAIT1;判断1s到否?未到继续状态1MOVR2,#20;置50ms计数初值 DECSECOND1;东西路口显示时间减1sDECSECOND2;南北路口显示时间减1sLCALLDISPLAYDJNZR3,WAIT1;状态1维持20s;*MOVR2,#5;置50ms计数初值5*4=20MOVR3,#3;绿灯闪3sMOVR4,#4;闪烁间隔200msMOVSECOND1,#5;东西路口计时显示初值5sMOVSECOND2,#5;南北路口计时显示初值5sLCALLDISPLAYWAIT2:LCALLSTATE2;调用状态2JNBTF0,WAIT2;查询50ms到否CLRTF0MOVTH0,#3CH;恢复T0定时初值50msMOVTL0,#0B0HDJNZR4,WAIT2;判断200ms到否?未到继续状态2CPLLED_G1;东西绿灯闪MOVR4,#4;闪烁间隔200msDJNZR2,WAIT2;判1s到否?未到继续状态2MOVR2,#5;置50ms计数初值DECSECOND1;东西路口显示时间减1sDECSECOND2;南北路口显示时间减1sLCALLDISPLAYDJNZR3,WAIT2;状态2维持3s;*MOVR2,#20;置50ms计数初值MOVR3,#2;黄灯闪2sMOVSECOND1,#2;东西路口计时显示初值2sMOVSECOND2,#2;南北路口计时显示初值2sLCALLDISPLAYWAIT3:LCALLSTATE3;调用状态3JNBTF0,WAIT3;查询100ms到否CLRTF0MOVTH0,#3CH;恢复T0定时初值100msMOVTL0,#0B0HDJNZR2,WAIT3;判断1s到否?未到继续状态3MOVR2,#20;置100ms计数初值DECSECOND1;东西路口显示时间减1sDECSECOND2;南北路口显示时间减1sLCALLDISPLAYDJNZR3,WAIT3;状态3维持2s;*MOVR2,#20;置50ms计数初值MOVR3,#20;红灯闪20sMOVSECOND1,#25;东西路口计时显示初值25sMOVSECOND2,#25;南北路口计时显示初值25sLCALLDISPLAYWAIT4:LCALLSTATE4;调用状态4JNBTF0,WAIT4;查询100ms到否CLRTF0MOVTH0,#3CH;恢复T0定时初值100msMOVTL0,#0B0HDJNZR2,WAIT4;判断1s到否?未到继续状态4MOVR2,#20;置100ms计数初值DECSECOND1;东西路口显示时间减1sDECSECOND2;南北路口显示时间减1sLCALLDISPLAYDJNZR3,WAIT4;状态4维持20s;*MOVR2,#5;置50ms计数初值MOVR4,#4;红灯闪20msMOVR3,#3;绿灯闪3sMOVSECOND1,#5;东西路口计时显示初值5sMOVSECOND2,#5;南北路口计时显示初值5sLCALLDISPLAYWAIT5:LCALLSTATE5;调用状态5JNBTF0,WAIT5;查询100ms到否CLRTF0MOVTH0,#3CH;恢复T0定时初值100msMOVTL0,#0B0HDJNZR4,WAIT5;判断200ms到否?未到继续状态5CPLLED_G2;南北绿灯闪MOVR4,#4;闪烁200msDJNZR2,WAIT5;判断1s到否?未到继续状态5MOVR2,#5;置100ms计数初值DECSECOND1;东西路口显示时间减1sDECSECOND2;南北路口显示时间减1sLCALLDISPLAYDJNZR3,WAIT5;状态5维持3s;*MOVR2,#20;置50ms计数初值MOVR3,#2;红灯闪2sMOVSECOND1,#2;东西路口计时显示初值2sMOVSECOND2,#2;南北路口计时显示初值2sLCALLDISPLAYWAIT6:LCALLSTATE6;调用状态6JNBTF0,WAIT6;查询100ms到否CLRTF0MOVTH0,#3CH;恢复T0定时初值100msMOVTL0,#0B0HDJNZR2,WAIT6;判断1s到否?未到继续状态6MOVR2,#20;置100ms计数初值DECSECOND1;东西路口显示时间减1sDECSECOND2;南北路口显示时间减1sLCALLDISPLAYDJNZR3,WAIT6;状态6维持2sLJMPLOOP;大循环;*STATE1:;状态1SETBLED_G1;东西路口绿灯亮CLRLED_Y1CLRLED_R1CLRLED_G2CLRLED_Y2SETBLED_R2;南北路口红灯亮RETSTATE2:;状态2CLRLED_Y1CLRLED_R1CLRLED_G2CLRLED_Y2SETBLED_R2;南北路口红灯亮RETSTATE3:;状态3CLRLED_G1CLRLED_R1CLRLED_G2CLRLED_Y2SETBLED_R2;南北路口红灯亮SETBLED_Y1;东西路口绿灯亮RETSTATE4:;状态4CLRLED_G1CLRLED_Y1SETBLED_R1;东西路口红灯亮SETBLED_G2;南北路口绿灯亮CLRLED_Y2CLRLED_R2RETSTATE5:;状态5CLRLED_G1CLRLED_Y1SETBLED_R1;东西路口红灯亮CLRLED_Y2CLRLED_R2RETSTATE6:;状态6CLRLED_G1CLRLED_Y1SETBLED_R1;东西路口红灯亮CLRLED_G2CLRLED_R2SETBLED_Y2;南北路口红灯亮RETDISPLAY:;数码显示MOVA,SECOND1;东西路口计时寄存器MOVB,#10;16进制数拆成两个10进制数DIVABMOVDBUF+3,AMOVA,BMOVDBUF+2,AMOVA,SECOND2;南北路口计时寄存器MOVB,#10;16进制数拆成两个10进制数DIVABMOVDBUF+1,AMOVA,BMOVDBUF,AMOVR0,#DBUFMOVR1,#TEMPMOVR7,#4DP10:MOVDPTR,#LEDMAPMOVA,R0MOVCA,A+DPTR
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号