单片机论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 18|回复: 0
收起左侧

51单片机:蜂鸣器实验程序

[复制链接]
51heix层 发表于 2019-11-9 23:06 | 显示全部楼层 |阅读模式
/* ch03-3-1.c - 蜂鸣器实验程序  */
//==声明区====================================
#include        <reg51.h>        // 定义8051暂存器的标头档,P2-17~19
sbit buzzer = P3^7 ;        // 声明蜂鸣器的位置为Port 3之bit 7
void delay(int);                //        声明延迟函数
void pulse_BZ(int,int,int);        //        声明蜂鸣器发声函数
//==主程序====================================
main()                                        //        主程序开始
{        while(1)                        //        无穷循环,程序一直跑
        {        pulse_BZ(100,1,1);       
                // 蜂鸣器发声100 (0.5m+0.5m)=0.1s
                delay(1000);        //        延迟1000 0.5m=0.5秒
        }                                        //        while循环结束
}                                                //        主程序结束
//==子程序=====================================
/* 延迟函数开始,延迟x 0.5ms */
void delay(int x)                //        延迟函数开始
{        int i,j;                        //        声明整数变量i,j
        for (i=0;i<x;i++)                //        计数x次,延迟约x 0.5ms
                for (j=0;j<60;j++);        //        计数60次,延迟约0.5ms
}                                        //        延迟函数结束
/* 蜂鸣器发声函数,count=计数次数,TH=高态时间,TL=低态时间 */
void pulse_BZ(int count,int TH,int TL)        //        蜂鸣器发声函数开始
{        int i;                        //        声明整数变数i
        for(i=0;i<count;i++)        //        计数count次
        {        buzzer=1;        //        输出高态
                delay(TH);        //        延迟TH 0.5ms
                buzzer=0;        //        输出低态
                delay(TL);        //        延迟TL 0.5ms
        }                                //        for循环结束
}                                        //        蜂鸣器发声函数结束

B`BF0DQ6@FQR`USZW8)LIGQ.png
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|单片机论坛 |51黑电子论坛技术交流 QQ 管理员QQ:125739409;技术交流QQ群636986012

Powered by 单片机教程网

快速回复 返回顶部 返回列表