为什么我的51单片机蜂鸣器程序需要加延时才响呢?

有人说是频率太高了,请问蜂鸣器到底是怎么个工作原理呢?加上延时以后是如何减缓频率的呢?我把24的晶振换成11.0592的也不响…

#include sbit bell=P0^1;

void main(){

bell=0;

}