Linux下的51单片机蜂鸣器实验

1、 实验目的
了解蜂鸣器的工作原理
学会编写程序驱动蜂鸣器;
2、 实验设备
装有sdcc交叉编译环境,Python烧写工具,装有Linux的系统;
 51单片机开发板 1 个,USB 数据线 1 根,跳线帽 1 个
3、 实验内容
 了解蜂鸣器工作原理说明
 使用 keil 软件编写、编译程序;
 用跳线帽将 J4 短接,下载程序,观察蜂鸣器状态;
4、 实验原理
蜂鸣器有两种:一种是有源蜂鸣器,内含多谐振荡器,能够采用直流电源直接驱动,本
开发板使用的就是有源蜂鸣器;另外一种就是无源蜂鸣器,需要通过脉冲来驱动,不能采用
直流来驱动。怎样区分有源跟无源蜂鸣器,一般蜂鸣器底部有黑胶封住的就是有源蜂鸣器,
否则是无源蜂鸣器。在硬件电路中,蜂鸣器一般要接上一个三极管,三极管的作用有两个,
一是充当开关作用,二是增大驱动蜂鸣器的电流。

5、 实验相应寄存器
P0(0x80)
位 名称 复位
7:0 P0[7:0] 0xFF
描述
R/W
R/W
开漏输出,加上拉电阻作通用 I/O 端口。可以从 SFR 位寻址。

6、 实验电路图

Linux下的51单片机蜂鸣器实验_第1张图片

图 6_1 蜂鸣器电路图
引脚对应表:
FM
P0_7
7、 实验程序实现
蜂鸣器驱动实验程序:
/*************************************************************************
	> File Name: fengmingqi.c
	> Author:chensir 
	> Mail:[email protected] 
	> Created Time: 2016年12月06日 星期二 20时06分21秒
 ************************************************************************/

#include
#include <8051.h> //头文件
#define uchar unsigned char
#define uint unsigned int
/******************延时函数***********************/
void delayms(unsigned int x)
{
    unsigned int i;
    while(x--)
    {
        for(i=0;i<113;i++);

    }

}
/******************主函数***********************/
void main()
{
    while(1)
    {
        P0_7=0;
        //驱动蜂鸣器
        delayms(500);
        P0_7=1;
        //关闭蜂鸣器
        delayms(500);
        
    }

}

 


8、 实验步骤

1、先了解蜂鸣器的工作原理
2、编写程序,编译并生成 HEX 文件;
3、连接跳线帽 J4,下载程序并观看现象;
实验五 蜂鸣器驱动实验
9、 实验结果

蜂鸣器响500ms,停500ms;


你可能感兴趣的:(51单片机)