呵呵。你这个虽然用定时器来计时的,但是是放在MIAN函数中的循环判断某位的。你应该吧检测传感器信号的代码放到定时器0的中断服务函数中。你这样写的话,其实加那个也不复杂,你弄个标志位,绿灯就把那标志打开,然后在循环计时中加上这个标志与传感器信号就把R2的值增加吧标志位清掉,就可以实现了。现在都不怎么用汇编了,你怎么不用C写,简单点。