单片机课程设计--基于51单片机的交通灯内容摘要:

sbit P1_1=P1^1。 sbit P1_2=P1^2。 sbit P1_3=P1^3。 sbit P1_4=P1^4。 sbit P1_5=P1^5。 sbit P1_6=P1^6。 sbit P1_7=P1^7。 sbit P3_0=P3^0。 sbit P3_1=P3^1。 sbit P3_4=P3^4。 sbit P3_7=P3^7。 uint aa,a,b,c=10。 /*数码管显示 09*/ uint code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}。 /*子函数声明 */ void delay0(uint z)。 void display(uint a,uint b)。 void flag1()。 void flag2()。 void flag3()。 void flag4()。 void xint0()。 void xint1()。 void xtimer0()。 void GREEN_ZHU_ON()。 void GREEN_ZHI_ON()。 /*********************************************************/ void main() { EA=1。 //开中断 EX0=1。 //允许外部中断 INT0 中断 IT0=0。 //定义 INT0 触发方式 PX0=1。 //中断优先级高 EX1=1。 //允许外部中断 INT1 中断 IT1=0。 //定义 INT1 触发方式 PX1=1。 //中断优先级高 while(1) { flag1()。 //东西方向绿灯亮,南北方向红灯亮 flag2()。 //东西方向黄灯亮,南北方向红灯亮 flag3()。 //东西方向红灯亮,南北方向绿灯亮 flag4()。 //东西方向红灯闪烁,南北方向黄灯亮 } } void flag1()//东西方向绿灯亮,南北方向红灯亮 30s { int time。 time=11。 //变量赋初值 TMOD=0x01。 //定时器 T0 工作于方式 1 TH0=(6553650000)/256。 TL0=(6553650000)%256。 //定时 50ms EA=1。 //开中断 ET0=1。 //开定时中断 TR0=1。 //开定时器 T0 while(1) { P1=0x9e。 //东西方向绿灯亮,南北方向红灯亮 30ms P3_0=1。 P3_1=1。 P3_4=1。 P3_7=0。 if(aa==20)//定时 20*50MS=1S { aa=0。 //定时完成一次后清 0 time。 //变量自减 if(time==5) { break。 //跳出整个循环 } b=time%100/10。 //显示十位 a=time%10。 //显示个位 } display(a,b)。 } } void flag2() { int time。 time=6。 //变量赋初值 TMOD=0x01。 //定时器 T0 工作于方式 1 TH0=(6553650000)/256。 TL0=(6553650000)%256。 //定时 50ms EA=1。 //开中断 ET0=1。 //开定时中断 TR0=1。 //开定时器 T0 while(1) //东西方向黄灯闪烁,南北方向红灯闪烁 { P1_0=1。 P1_1=0。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。