你可以把Tms500写成
while (i < 50 && Key_Scan(...) != KEY_ON) { Tms(10); }
其实你的延时函数或许也是for循环,你可以在最小的循环体加入状态的查询就可以用break跳出了