关于51单片机蜂鸣器

​这一段代码,首先初始化定时器后,定时器第一次中断应该是(初始化函数中设定的)1ms,而这个时间内while循环里第一条指令应该已经完成了,这样岂不是FreqSelect已经等于1了,那不是漏了等于0的情况吗?如果第一次中断时第一条指令没完成,那么等他完成时,间隔一定不会有500ms的延时啊,但是实际运行是每个音都听到了且都为500ms,第一个音到底是怎回事

img

中断和定时器是两个概念,你查查两个的原理就知道为什么了。