博客
关于我
C51蜂鸣器
阅读量:460 次
发布时间:2019-03-06

本文共 987 字,大约阅读时间需要 3 分钟。

C51蜂鸣器设计与实现

电路原理

本设计采用PNP结三极管Q1作为开关三极管,利用I/O口P2.3输出的高电平控制蜂鸣器的工作状态。具体来说,当P2.3输出高电平时,基极电位接近Vcc,三极管处于截止状态,蜂鸣器不响。当P2.3输出低电平时,Q1通过Vcc-Q1eb-R13-P2.3到地的回路获得基极电流,三极管导通并饱和,蜂鸣器随即发出鸣响。

工程目录

  • 硬件设计

    • 采用PNP结三极管Q1作为开关电路
    • 蜂鸣器驱动电路采用简单的双极管结构
    • I/O口P2.3用于控制蜂鸣器工作状态
  • 软件设计

    • 主程序fm_1实现蜂鸣器交替工作
    • 功能模块fm_deng实现流水灯报警功能
  • 主函数

    #include 
    #include "fm.h"int main() { fm_1(); //流水灯报警 while(1); return 0;}

    delay.h(C51流水灯三种操作)

    #ifndef __DELAY_H__#define __DELAY_H__#include "common.h"#define delay_xms(x)  delay_ms(x)#endif

    fm.h

    #ifndef __FM_H__#define __FM_H__#include "delay.h"#define on 0#define off 1sbit fm = P2^3;void fm_1(void);void fm_deng(void);void fm_1(void) {    while(1) {        fm = on; //P2^3 = 0;蜂鸣器响        delay_xms(100);        fm = off;        delay_xms(100);    }}void fm_deng(void) {    P1 = 0xfe; //1111 1110    //初始化流水灯    while(1) {        delay_xms(100);        P1 = _crol_(P1,1); //将P1循环左移1位        fm = on;        delay_xms(100);        fm = off;    }}#endif

    (以下内容与原文无关,已按照用户要求清理)

    转载地址:http://rhzbz.baihongyu.com/

    你可能感兴趣的文章
    OJ中常见的一种presentation error解决方法
    查看>>
    OK335xS UART device registe hacking
    查看>>
    ok6410内存初始化
    查看>>
    OkDeepLink 使用教程
    查看>>
    OKHTTP
    查看>>
    Okhttp3添加拦截器后,报错,java.io.IOException: unexpected end of stream on okhttp3.Address
    查看>>
    OkHttp透明压缩,收获性能10倍,外加故障一枚
    查看>>
    OKR为什么到今天才突然火了?
    查看>>
    ol3 Demo2 ----地图搜索功能
    查看>>
    OLAP、OLTP的介绍和比较
    查看>>
    OLAP在大数据时代的挑战
    查看>>
    oldboy.16课
    查看>>
    OLEDB IMEX行数限制的问题
    查看>>
    ollama 如何删除本地模型文件?
    查看>>
    ollama-python-Python快速部署Llama 3等大型语言模型最简单方法
    查看>>
    Ollama怎么启动.gguf 大模型
    查看>>
    ollama本地部署DeepSeek(Window图文说明)
    查看>>
    ollama运行多模态模型如何进行api测试?
    查看>>
    OMG,此神器可一次定一周的外卖
    查看>>
    Omi 多端开发之 - omip 适配 h5 原理揭秘
    查看>>