《STM8的C语言编程(13)--蜂鸣器.pdf》由会员分享,可在线阅读,更多相关《STM8的C语言编程(13)--蜂鸣器.pdf(2页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、STM8 的 C 语言编程(13)蜂鸣器蜂鸣器是现在单片机应用系统中很常见的,常用于实现报警功能。为此STM8特别集成了蜂鸣器模块,应用起来非常方便。在应用蜂鸣器模块时,首先要打开片内的低速RC 振荡器(当然也能使用外部的高速时钟),其频率为128KHZ。然后通过设置蜂鸣器控制寄存器BEEP_CSR中的 BEEPDIV4:0 来获取 8KHZ 的时钟,再通过 BEEPSEL 最终产生 1KHZ 或2KHZ 或 4KHZ 的蜂鸣器时钟,最后使能该寄存器中的BEEPEN 位,产生蜂鸣器的输出。下面的实验程序首先初始化低速振荡器,然后启动蜂鸣器,再延时2.5 秒,然后关闭蜂鸣器。同样还是利用 ST
2、的开发工具,生成一个汇编程序的框架,然后修改其中的main.c,修改后的代码如下。/程序描述:启动单片机中的蜂鸣器模块#include STM8S207C_S.h/函数功能:延时函数/输入参数:ms-要延时的毫秒数,这里假设CPU 的主频为 2MHZ/输出参数:无/返 回 值:无/备注:无void DelayMS(unsigned int ms)unsigned char i;while(ms!=0)for(i=0;i250;i+)for(i=0;i75;i+)ms-;main()int i;CLK_ICKR=CLK_ICKR|0 x08;/打开芯片内部的低速振荡器LSI while(CLK_ICKR&0 x10)=0);/等待振荡器稳定/通过设置蜂鸣器控制寄存器,来打开蜂鸣器的功能/蜂鸣器控制寄存器的设置:/BEEPDIV1:0=00/BEEPDIV4:0=0e/BEEPEN =1/蜂鸣器的输出频率=Fls/(8*(BEEPDIV+2)=128K/(8*16)=1K BEEP_CSR=0 x2e;for(i=0;i10;i+)DelayMS(250);BEEP_CSR=0 x1e;/关闭蜂鸣器while(1);