给你一个思路:
假设是单纯的红绿灯,无黄灯的话,设红灯30秒,绿灯30秒。需要两个状态量,
方向Dir(1:东西,0:南北),东西灯颜色LightcolorEW,南北灯颜色LightcolorNS。
此刻,东西方向亮红灯,则Dir=1,LightcolorEW=red,LightcolorNS=green。对相应端口赋值即可。只需要东西方向与南北方向相反。
假设有黄灯,设红灯30秒,绿灯25秒,黄灯5秒。此刻,东西方向亮红灯,则Dir=1,LightcolorEW=red,前25秒LightcolorNS=green,后5秒LightcolorNS=yellow。由于新加入了绿灯转黄灯,则要再加入一个状态量,绿灯结束状态,黄灯根据绿灯结束状态启动,计时结束转红灯。对相应端口赋值即可。只需要东西方向与南北方向相反。