答案:设在十字路口南北东西各设置红、绿、黄3种信号灯,4个路口共12个灯。控制过程为:当东西方向通车时绿灯亮(50s),而南北方向红灯亮;当通车时间到后,东西方向的绿灯灭,而黄灯亮(设为5s),黄灯闪烁若干次后由东西方向切换到南北方向通车(南北方向绿灯亮)。此时东西方向的黄灯灭,而红灯亮,南北方向的红灯灭(所以南北方向的红灯应亮55s)而绿灯亮,南北方向开始通车(设为90s)。南北方向通车时间到后,绿灯灭,黄灯亮(5s),闪烁若干次后由南北方向切换到东西方向,南北方向黄灯灭,红灯亮;而东西方向红灯灭(所以东西方向的红灯应亮95s)而绿灯亮,如此不断循环。用单片机的I/O口控制交通信号灯,设路口按南北东西顺序:红灯分别由P0.0~P0.3控制;黄灯分别由P0.4~P0.7控制;绿灯分别由P1.0~P1.3控制。主程序如下:START: MOV R7, #0AH ;设黄灯闪烁次数(10次)MOV A, #00H ;A中的内容清0MOV P1, A ;MOV P0, A ;12个灯全灭LP: SETB P0.0 ;SETB P0.1 ;南北红灯亮SETB P1.2SETB P1.3 ;东西绿灯亮LCALL DELAY50s ;延时50s(东西方向通车时间)CLR P1.2CLR P1.3 ;东西绿灯灭LP1: SETB P0.6SETB P0.7 ;东西黄灯亮LCALL DELAY 250ms`;东西黄灯亮250msCLR P0.6CLR P0.7 ;东西黄灯灭LCALL DELAY 250ms ;东西黄灯灭250msDJNZ R7, #LP1 ;黄灯闪烁10次未到,则转LP1MOV R7, #0AH ;东西黄灯闪烁10次已到,则重设闪烁次数SETB P0.2SETB P0.3 ;东西红灯亮CLR P0.0CLR P0.1 ;南北红灯灭SETB P1.0SETB P1.1 ;南北绿灯亮LCALL DELAY90s ;延时90s(南北方向通车时间)CLR P1.0CLR P1.1 ;南北绿灯灭LP2: SETB P0.4SETB P0.5 ;南北黄灯亮LCALL DELAY 250ms;延时250msCLR P0.4CLR P0.5 ;南北黄灯灭LCALL DELAY 250ms ;延时250msDJNZ R7, #LP2 ;南北黄灯闪烁10次未到,则转LP2MOV R7, #0AH ;黄灯闪烁10次已到,则重设闪烁次数AJMP LP ;开始下一轮循环子程序:DELAY50s…DELAY 250ms…DELAY90s…时间计算:黄灯闪烁次数10次,一亮(250ms)一灭(250ms)为一次,10*(250ms 250ms)=5000ms=5s