我在做一个单片机交通灯程序(c51),要求是控制一个十字路口的两组红绿灯,我用了8255芯片

2025-01-03 21:28:17
推荐回答(1个)
回答1:

给你一个思路:
假设是单纯的红绿灯,无黄灯的话,设红灯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。由于新加入了绿灯转黄灯,则要再加入一个状态量,绿灯结束状态,黄灯根据绿灯结束状态启动,计时结束转红灯。对相应端口赋值即可。只需要东西方向与南北方向相反。