欢迎来到天天文库
浏览记录
ID:57402327
大小:391.00 KB
页数:8页
时间:2020-08-16
《基于某51单片机地交通灯实验.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、程序#include#defineuintunsignedint#defineucharunsignedcharsbitDX_R=P1^0;//东西方向红黄绿灯sbitDX_Y=P1^1;sbitDX_G=P1^2;sbitNB_R=P1^3;//南北方向sbitNB_Y=P1^4;sbitNB_G=P1^5;ucharcodedu_code[]={~0x3F,~0x06,~0x5B,~0x4F,~0x66,~0x6D,~0x7D,~0x07,~0x7F,~0x6F};//0~9(共阳数
2、码管)ucharnum;ucharS20=20,S15=15,S5=5;bitflag=0;voiddelayms(uintx)//延时程序{uinty;for(;x>0;x--)for(y=110;y>0;y--);}voidinitial()//定时器50ms{TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=1;}voidstate1(){while(S20)//东西方向红灯亮25秒。南北绿灯两20秒{NB_R=
3、1;NB_Y=1;NB_G=0;DX_R=0;DX_Y=1;DX_G=1;if(flag==1){flag=0;S20--;}P2=0x01;//南北数码管个位P0=du_code[S20/10];delayms(2);P2=0x02;//南北数码管十位P0=du_code[S20%10];delayms(2);P2=0x04;//东西P0=du_code[(S20+5)/10];delayms(2);P2=0x08;P0=du_code[(S20+5)%10];delayms(2);}S20=20;}v
4、oidstate2()//东西红灯闪烁,南北黄灯亮{while(S5){NB_R=1;DX_R=0;NB_G=1;DX_Y=1;DX_G=1;if(flag==1){NB_Y=~NB_Y;flag=0;S5--;}P2=0x01;P0=du_code[S5/10];delayms(2);P2=0x02;P0=du_code[S5%10];delayms(2);P2=0x04;P0=du_code[S5/10];delayms(2);P2=0x08;P0=du_code[S5%10];delayms(2);
5、}S5=5;}voidstate3(){while(S15){NB_R=0;NB_Y=1;NB_G=1;DX_R=1;DX_Y=1;DX_G=0;if(flag==1){flag=0;S15--;}P2=0x01;P0=du_code[(S15+5)/10];delayms(2);P2=0x02;P0=du_code[(S15+5)%10];delayms(2);P2=0x04;P0=du_code[S15/10];delayms(2);P2=0x08;P0=du_code[S15%10];delayms
6、(2);}S15=12;}voidstate4(){while(S5){NB_Y=1;NB_G=1;DX_R=1;NB_R=0;DX_G=1;if(flag==1){DX_Y=~DX_Y;flag=0;S5--;}P2=0x01;P0=du_code[S5/10];delayms(2);P2=0x02;P0=du_code[S5%10];delayms(2);P2=0x04;P0=du_code[S5/10];delayms(2);P2=0x08;P0=du_code[S5%10];delayms(2);
7、}S5=5;}voidmain(){initial();while(1){state1();state2();state3();state4();}}voidtimer0()interrupt1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;num++;if(num==20)//20*50MS=1S{num=0;flag=1;}}
此文档下载收益归作者所有