需要确认注册邮箱后才能开通博客,立即确认我的邮箱
文章 搜索 高级搜索 ?3? ?3?
  • 滤波器new!
  • LED驱动 new!
  • 新能源 new!
  • PLL
  • PCIE协议
  • 可穿戴
  • LSI
  • FCI
文章 论坛 博客 小组 研讨会
EDN电子技术论坛>博客 >top6288博客 >STM8的C语言编程(13)-- 蜂鸣器

top6288的博客——top6288's Blog

博主:top6288???? ???? ????
介绍: top6288
文章(41)???? 访问(160523)???? 评论(30)???? 投票(32)???? 订阅本博??

博文列表查看方式: ???

STM8的C语言编程(13)-- 蜂鸣器
发布时间:2010-08-16 10:02:38
技术类别:单片机
需要确认注册邮箱后才能下载,立即确认我的邮箱

? ???????????????STM8的C语言编程(13)-- 蜂鸣器


?


蜂鸣器是现在单片机应用系统中很常见的,常用于实现报警功能。为此STM8特别集成了蜂鸣器模块,应用起来非常方便。


在应用蜂鸣器模块时,首先要打开片内的低速RC振荡器(当然也能使用外部的高速时钟),其频率为128KHZ。然后通过设置蜂鸣器控制寄存器BEEP_CSR中的BEEPDIV[4:0]来获取8KHZ的时钟,再通过BEEPSEL最终产生1KHZ或2KHZ或4KHZ的蜂鸣器时钟,最后使能该寄存器中的BEEPEN位,产生蜂鸣器的输出。


下面的实验程序首先初始化低速振荡器,然后启动蜂鸣器,再延时2.5秒,然后关闭蜂鸣器。


同样还是利用ST的开发工具,生成一个汇编程序的框架,然后修改其中的main.c,修改后的代码如下。


?


//? 程序描述:启动单片机中的蜂鸣器模块


?


#include "STM8S207C_S.h"


?


// 函数功能:延时函数


// 输入参数:ms -- 要延时的毫秒数,这里假设CPU的主频为2MHZ


// 输出参数:无


// 返 回 值:无


// 备??? 注:无


void DelayMS(unsigned int ms)


{


? unsigned char i;


? while(ms != 0)


? {


??? for(i=0;i<250;i++)


??? {


??? }


??? for(i=0;i<75;i++)


??? {


??? }


??? ms--;?


? }????


}


?


main()


{


? int i;


?


? CLK_ICKR = CLK_ICKR | 0x08;???? // 打开芯片内部的低速振荡器LSI


? while((CLK_ICKR & 0x10) == 0);? // 等待振荡器稳定


?????????


? // 通过设置蜂鸣器控制寄存器,来打开蜂鸣器的功能


? // 蜂鸣器控制寄存器的设置:


? // BEEPDIV[1:0] = 00


? // BEEPDIV[4:0] = 0e


? // BEEPEN?????? = 1


? // 蜂鸣器的输出频率 = Fls / ( 8 * (BEEPDIV + 2) )= 128K / (8 * 16) = 1K???


? BEEP_CSR = 0x2e;


?


? for(i=0;i<10;i++)


? {


??? DelayMS(250);


? }


???????


? BEEP_CSR = 0x1e;??????????? // 关闭蜂鸣器


?


? while(1);


}


?


?


??????????????? 2010-8-16


?

标签:??
分享到:? 新浪微博 ?? 微信 ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
qq空间 ?? 腾讯微博 ?? 人人网 ?? 百度搜藏 ??
??????有[ 0 ]名读者喜欢此文
阅读(2689)?? 评论(0)?? 收藏??I?? 打印??I?? 推荐到小组??I?? 转发到我的博客 (0)
对不起,您还没有登录,请先登录注册
上一篇:STM8的C语言编程(14)-- PWM

下一篇:STM8的C语言编程(12)-- AD转换

最近到访博主
sun_sun 梦柯 dzxxlxd xukai871105 junul yup1983 yikai
牛人有话说 - STM8的C语言编程(13)-- 蜂鸣器
美国的游客 (您将以游客身份发表,请登录 | ?注册)
?
你还可以输入1000
验证码:
分享: 新浪微博?? qq空间?? qq微博?? 人人网?? 百度搜藏??
?
有 [ 0 ] 名读者发表评论 - STM8的C语言编程(13)-- 蜂鸣器
转发到我的博客
评论?@top6288's Blog?的“STM8的C语言编程(13)-- 蜂鸣器”
STM8的C语言编程(13)--蜂鸣器蜂鸣器是现在单片机应用系统中很常见的,常用于实现报警功能。为此STM8特别集成了蜂鸣器模块,应用起来非常方便。在应用蜂鸣器模块时,首先要打开片内的低速RC振荡器(当然也能使用外部的高速时钟),其频率为128KHZ。然后通过设置蜂鸣器控制寄存器BEEP_CSR中的...
你还可以输入30000
同时评论给?top6288
????
快速回复
?
你还可以输入1000
????
引用回复
引用评论?
?
你还可以输入1000
????
文章存档
最新评论
阅读排行
top6288的小组???? 加入小组
EDA工具
成员77名
创建者:叶金刚5
最新网络博文
想在网上直播来讲讲zigbee,大家怎么看
什么原因可能导致USB3.0插座无法识别
nubia发布无边框旗舰手机Z11 售价249...
TCL 750体验:新品牌理念发布后的转...
印度开卖史上最便宜智能手机:售价约2...
? 更多博文>>
返回博客首页
有问题请反馈