码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • STM8的C语言编程(13)--+蜂鸣器


     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);

    }

     

  • 相关阅读:
    SaaSBase:什么是天润融通?
    信创之国产浪潮电脑+统信UOS操作系统体验2:安装visual studio code和cmake搭建C++开发环镜
    AI 实战篇 |基于 AI开放平台实现 人脸识别对比 功能,超详细教程【附带源码】
    MIMO雷达波束赋形
    BUUCTF-MISC1
    OpenCV+YOLO+IP摄像头实现目标检测
    C语言程序设计——输入三个整数x,y,z,请把这三个数由小到大输出
    Qt 如何多个项目共用相同代码
    基于Java+SpringBoot+vue+elementui药品商城采购系统详细设计实现
    postman连接mysql报ETIMEDOUT错误解决方法
  • 原文地址:https://blog.csdn.net/s13596191285/article/details/125477141
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号