基于单片机的交通灯系统设计内容摘要:

NB=NBG,DX=NBG+H。 display()。 EA=1。 东北大学单片机课程设计 14 break。 } } } } /***********************************中断 1 处理程序 ******************** void int1(void) interrupt 2 //紧急情况 { /*东西南北红灯亮 */ EA=0。 TR0=!TR0。 /*停止计数 */ for(。 ) /*主支干道显示全为 0*/ { P1=0xd8,P0=a[0]。 P2=0xfe。 delay(20)。 P2=0xfd。 delay(20)。 P2=0xfb。 delay(20)。 P2=0xf7。 delay(20)。 if(K4==0) /*返回 */ { delay(20)。 EA=1。 P1=c[k]。 /*返回紧急前状态开始计数 */ TR0=!TR0。 /*重启计数 */ break。 } } } void time1(void) interrupt 1 /*交通灯控制程序 */ { TH0=0x3c。 /*定时 50ms*/ TL0=0xb0。 t++。 东北大学单片机课程设计 15 if(t=20) /*每 20*50ms=1s 自减一 */ { NB。 DX。 t=0。 if(NB==0||DX==0) { k++。 if(k3) /*k 取 0,1,2,3*/ k=0。 switch(k) { case 0:NB=NBG,DX=NBG+H。 j=0。 P1=c[k]。 break。 /*主干道通行显示绿红 */ case 1:NB=H。 j=1。 P1=c[k]。 break。 /*主干道黄灯闪烁 */ case 2:NB=DXG+H,DX=DXG。 j=0。 P1=c[k]。 break。 /*支干道通行显示红绿 */ case 3:DX=H。 j=2。 P1=c[k]。 break。 /*支干道黄灯闪烁 */ } } } } void delay(uchar t) //延时程序延时 *nms { uchar i。 do { for(i=0。 i20。 i++)。 } while(t)。 } void settime() { P2=0xfe,P0=a[(NBG+H)%10]。 /*显示主干道通行时间 */ delay(20)。 P2=0xfd,P0=a[(NBG+H)/10]。 delay(20)。 P2=0xfb,P0=a[(DXG+H)%10]。 /*显示支干道通行时间 */ delay(20)。 P2=0xf7,P0=a[(DXG+H)/10]。 delay(20)。 } void key() //键盘程序用 KO K1 模拟一道有车一道无车 { if(K1==0) /*主干道有车支干道无车 */ 东北大学单片机课程设计 16 { delay(40)。 if(K1==0) { while(!K1) { display()。 } k=0,P1=c[k]。 t=0。 NB=NBG, DX=NBG+H。 display()。 } } if(K0==0) /*支干道有车主干道无车 */ { delay(40)。 if(K0==0) { while(!K0) { display()。 } k=2,P1=c[k]。 t=0。 NB=DXG+H,DX=DXG。 display()。 } } } void display() //显示程序 { P2=0xfe,P0=a[NB%10]。 /*由 k 的不同值进入确定显示数值 */ delay(20)。 P2=0xfd,P0=a[NB/10]。 delay(20)。 P2=0xfb,P0=a[DX%10]。 delay(20)。 P2=0xf7,P0=a[DX/10]。 delay(20)。 } void main(void) { //主程序 init()。 for(。 ) 东北大学单片机课程设计 17 { display()。 key()。 //黄灯闪烁程序 while(j==1) /*主干道黄灯闪烁 */ { P1=0xdc。 /*给黄灯一高电平黄灯灭 */ for(i=83。 i0。 i){display()。 } /*执行 for 循环延时 */ P1=c[k]。 /*再给黄灯一低电平黄灯亮 */ for(i=83。 i0。 i){display()。 } } while(j==2) { /*支干道黄灯闪烁 */ P1=0xf8。 for(i=83。 i0。 i){display()。 } P1=c[k]。 for(i=83。 i0。 i){display()。 } } } } 附录 2 系统 原理图 东北大学单片机课程设计 18 东北大学单片机课程设计 19 在该设计基础上,作者增加了日历 显示功能,显示月、日、时、分,电路图和程序如下 : 东北大学单片机课程设计 20 东北大学单片机课程设计 21 交通灯程序: include define uchar unsigned char//宏定义 uchar define uint unsigned int//宏定义 uint sbit RED_DONGXI = P1^0。 //南北方向红灯亮 sbit YELLOW_DONGXI = P1^1。 //南北方向黄灯亮 sbit RED_NANBEI = P1^3。 //东西方向红灯亮 sbit GR。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。