找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 9514|回复: 0
打印 上一主题 下一主题
收起左侧

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

[复制链接]
跳转到指定楼层
楼主
/* 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 (110.01 KB, 下载次数: 28)

B`BF0DQ6@FQR`USZW8)LIGQ.png
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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