求大神写一个51单片机的程序,最好有注释

1)、当单片机开始工作,东西方向为绿灯,南北方向红灯。当绿灯变化为红灯时,该方向的黄灯同时闪烁6次;
2)、利用89S52内部的定时器和计数器来控制两个方向的信号灯的亮灭时间,其中东西方向变化时间为15S,南北方向变化时间为30s,当时间少于6s时 ,变为黄灯闪烁,每秒闪烁一次;
3)、另设置一紧急按键,SB4为紧急按键,当紧急按键按下时,为特殊情况,此时为所用信号闪烁,报警器长鸣,40S后自动退出,若再次按下紧急按键,回复正常;
4)、采用两位数码管显示倒计时时间,出现黄灯或者紧急情况时,数码管闪烁;
5)、SB1键为设置键,按一次SB1键,蜂鸣器“嘟”的一声后,数码管开始闪烁,进入东西方向时间设置,此时按SB2(增加)键、SB3(减少)键可上下调节时钟;10秒之内若再按下SB1键,蜂鸣器“嘟”的两声后,数码管开始闪烁,进入南北方向时间设置,10秒之内若再按下SB1键,蜂鸣器“嘟”的三声后退出设置,每次设置后,10秒之内不按SB1键,系统 判定为设置结束,回复正常显示;
6)、同时按下SB2和SB3按键时,LED循环闪烁,形成彩色跑马灯,按下SB1可改变循环方向,而且跑马灯闪烁的间隔时间逐渐增加,从0.2S增加到1S。
或者谁愿意帮我解答一些疑问

楼主先要解决的疑问:

电路,是什么样?
编程,用什么语言?

楼主只要程序,是真把搞单片机的,当码农了吧?
温馨提示:答案为网友推荐,仅供参考