蜂鸣器作为单片机系统中很常用的器件,其应用是十分广泛的。
蜂鸣器有两种,
一种是有源蜂鸣器,只要加上5V就可以发出”滴...“的声音,驱动简单,程序也简单,但是成本高,在很多场合,特别是现在市场竞争大的社会,是没有使用有源蜂鸣器的;
另外是一种是无源蜂鸣器,这个分两种,一种是压电蜂鸣器,结构极其简单,价钱便宜,一种是电磁式的,结构比较复杂,价格也贵;其实无论哪种,其驱动是要加上方波信号才能发出声音的。
在现在很多场合,使用的都是无源的蜂鸣器。一般的单片机都是采用软件延时来产生方波,占用资源比较大,控制也不方便。
STC单片机具备PCA模块,可以输出PWM和可编程频率,并且具备强推挽输出,可以很方便的直接驱动无源压电蜂鸣器。
今日本人经过一番研究,终于学会使用STC的PCA模块。程序比较简单,本人在论坛上也发过类似帖子,如下:
注意:STC官方出的数据手册有错,所以厂家的东西也不一定准确!
错在这里:PCA的中断标号应该为6,而不是7!
而且在手册中并没有提及CH和CL寄存器要清零,实际上是要的,倒是官方说CCAPNL和CCAPNH要重装值,实践证明不要也没有什么不正常!
如下图: