×

51单片机笔记 51单片机学习纪实

51单片机学习纪实:2.2-控制蜂鸣器发出嘀嘀声_【增强实验1】

一哥 一哥 发表于2021-12-11 20:14:18 浏览2154 评论0

抢沙发发表评论

实验思路:

  1. 重定义P0.0管脚为BEEP

  2. 定义一个延时函数delay_1ms,用于控制发声时间

  3. 定义一个延时函数delay_250us,用于设置脉冲频率

  4. 定义一个子函数BEEP_2K5,用于产生2.5KHz频率的脉冲信号


完整代码:

/*****************************程序信息*********************************
* 实验名称:控制蜂鸣器发出嘀嘀声
* 文件名称:main.c
* 版    本:V1.00
* 日    期:2021-12-11
* 编    著:gefon
* 说    明:使用普中A7开发版,控制蜂鸣器发出连续嘀嘀声

*******************************声明区*********************************/
#include "reg52.h"

typedef unsigned char U8; //重定义系统数据类型
typedef unsigned int U16;

sbit BEEP=P0^0; //对P0.0管脚重定义

/*******************************子程序*********************************
* 函 数 名   :delay_1ms
* 函数功能   :延时函数,延时约1ms。用于控制嘀嘀发声的时间
* 输    入   :ten_us
* 输    出   :无
***********************************************************************/
void delay_1ms(U16 ten_us)
{
    U8 i;
    while(ten_us--)
    {
        for(i=0;i<100;i++);  //运算一次约延时10us;
    }
}

/*******************************子程序*********************************
* 函 数 名   :delay_250us
* 函数功能   :延时函数,延时约250us。用于设置脉冲频率
* 输    入   :无
* 输    出   :无
***********************************************************************/
void delay_250us()
{
    U8 x;
    for(x=0;x<25;x++);
}

/*******************************子程序*********************************
* 函 数 名   :BEEP_2K5
* 函数功能   :脉冲函数,产生2.5KHz频率声音
* 输    入   :无
* 输    出   :无
***********************************************************************/
void BEEP_2K5()
{
    BEEP=0;
    delay_250us();
    BEEP=1;
    delay_250us();
}    
/*******************************主程序*********************************
* 函 数 名   :main
* 函数功能   :主函数
* 输    入   :无
* 输    出   :无
***********************************************************************/
void main()
{
    U16 y;
    while(1)
    {
        for(y=0;y<1000;y++)
        {
            BEEP_2K5();        
        }
        BEEP=0;
        delay_1ms(1000);
    }
}


少长咸集

群贤毕至

访客