博客
关于我
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/

    你可能感兴趣的文章
    python基础之---面向对象--属性和方法
    查看>>
    python基础之---运算符
    查看>>
    python基础之---语句
    查看>>
    python基础之---正则表达式
    查看>>
    python基础之---函数式编程
    查看>>
    python基础之---函数
    查看>>
    Python基础之(一)基本数据类型
    查看>>
    Python基础【os】
    查看>>
    Python基础——面向对象
    查看>>
    Python基础——线程锁
    查看>>
    python基础——线程与进程
    查看>>
    Python基础——_thread多线程
    查看>>
    Python基础——Thread类与线程对象
    查看>>
    Python基础——Thread创建管理多线程
    查看>>
    Python基础——MySQL数据库基本操作
    查看>>
    Python基础_列表 list
    查看>>
    python基础---->常用模块
    查看>>
    Python基础(2):控制结构
    查看>>
    Python基础 | 关于“循环”那些事
    查看>>
    python系列【仅供参考】:python 远程rdp
    查看>>