用P2口的P2.0到P2.5六个LED模拟交通灯,<br />主干道红黄绿灯分别为P2.3,P2.4,P2.5.<br />次干道红黄绿灯分别为P2.0,P2.1,P2.2.<br />开始时主干道绿灯,次干道红灯,延时60S<br />后主干道黄灯,次干道红灯,延时5S后主干道红灯,次干道绿灯,<br />再延时60S后,主干道红灯,次干道黄灯,5S后返回最初状态,<br /><br />#include<at89x51.h><br />unsigned int count;<br />void main(void)<br />{<br /> TMOD=0x01;<br /> TH0=(65536-50000)/256;<br /> TL0=(65536-50000)%256;<br /> TR0=1;<br /> ET0=1;<br /> while(1)<br /> {<br /> if(TF0==1)<br /> {<br /> P2_5=0;<br /> P2_0=0;<br /> count++; <br /> if(count==1200)<br /> { <br /> count=0;<br /> P2_5=1;<br /> P2_4=0; <br /> count++; <br /> if(count==100)<br /> { <br /> count=0;<br /> P2_4=1;<br /> P2_0=1;<br /> P2_3=0;<br /> P2_2=0;<br /> count++;<br /> if(count==1200)<br /> {<br /> count=0;<br /> P2_3=0;<br /> P2_1=1;<br /> P2_2=1;<br /> count++;<br /> if(count==100)<br /> {<br /> TF0=0;<br /> TH0=(65536-50000)/256;<br /> TL0=(65536-50000)%256;<br /> }<br /> }<br /> } <br /> }<br /> }<br /> }<br />}<br /><br /><br />大家帮忙看看啊,C 语言学得不好,一直搞不懂,<br />程序执行到第三个if语句时,就不会往下执行了,直接跳回到了开始,并这个时候有三个灯是亮的,次干道红灯,主干道黄灯和绿灯,<br />怎么才能让它向下执行而不跳回去呀?? |
|