压电式蜂鸣器驱动程序编写示例

来源:本站
导读:目前正在解读《压电式蜂鸣器驱动程序编写示例》的相关信息,《压电式蜂鸣器驱动程序编写示例》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《压电式蜂鸣器驱动程序编写示例》的详细说明。
简介:本文主要讲了压电式蜂鸣器驱动程序编写示例,下面一起来学习一下:

压电式蜂鸣器的驱动程序如何编写?压电式蜂鸣器驱动程序编写示例

举例说明

#define beep_nor() —–

#define beep_on() —–

#define beep_off() —–

typedef struct _BEEP

{

UINT8 MuteState; //静音状态 : 开、关

UINT8 BeepState; //蜂鸣器状态: 开、关

UINT8 BeepCount; //蜂鸣器响的次数

UINT8 BeepOnTime; //蜂鸣器响的时间

UINT8 BeepOffTime; //蜂鸣器不响的时间

UINT8 BeepWaitTime; //蜂鸣器响和不响的定时时间

UINT8 BeepRefresh; //是否需要刷新蜂鸣器显示图标

}BEEP_STRUCT;

//—————————–

//n-响的次数,btime-响的时间,gtime-不响的时间

//—————————–

void beep(BEEP_STRUCT *beep, UINT8 n,UINT8 btime,UINT8 gtime)

{

if((beep->MuteState ==0)&&(n>0)) //非静音

{

beep->BeepState = 1; //响

beep->BeepCount = n;

beep->BeepOnTime = btime;

beep->BeepOffTime = gtime;

beep->BeepWaitTime = 3*beep->BeepOnTime;

}

}

//—————————–

//在100ms的定时器处理中调用

//—————————–

void beep_deal(BEEP_STRUCT *beep)

{

if(beep->BeepState != 0){ //响

if(beep->BeepCount >0){

if(beep->BeepWaitTime>0){

beep->BeepWaitTime–;

}

else{

beep->BeepWaitTime = 3*beep->BeepOffTime;

beep->BeepState = 0; //不响

beep->BeepCount–; //响的次数减1

}

}

else{

beep->BeepState = 0;

}

}

else{

if(beep->BeepCount>0){

if(beep->BeepWaitTime>0){

beep->BeepWaitTime–;

}

else{

beep->BeepWaitTime = 3*beep->BeepOnTime;

beep->BeepState = 1;

}

}

}

if(beep->BeepState !=0){

beep_on();

}

else{

beep_off();

}

}

蜂鸣器程序举例二:

#define uchar unsigned char

#define uint unsigned int

#define ulong unsigned long

//#define delay

//#difine beep

#include

//sbit P1_2;

unsigned char count;

void delay(unsigned int x)

{

unsigned int i,j;

for(i=x;i>0;i–)

{

for(j=250;j>0;j–)

P1_7=~P1_7;//喂狗

}

}

void beep0(void)

{

P1_2 = 0;

delay(100); //短鸣

P1_2 = 1;

delay(500); //停一会

}

void beep1(void)

{

P1_2 = 0;

delay(100); //短鸣

P1_2 = 1;

delay(500); //停一会

P1_2 = 0;

delay(300); //长鸣

P1_2 = 1;

delay(500); //停一会

}

void main(void)

{uint n,t,m;

while(1)

{

P1_7=~P1_7;

for(n=0;n<8;)

{ t=n%8;

m=t%2;

P1_2=!P1_2;

if(m==1)

{ switch (m)

{

case 1:beep1();

break;

default:break;

}

}

else

switch(t)

{case 0:beep0();

break;

case 2:beep0();

break;

case 4:beep1();

break;

case 6:beep0();

break;

default:break;

}

n++;

}

}

}

提醒:《压电式蜂鸣器驱动程序编写示例》最后刷新时间 2024-03-14 00:53:21,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《压电式蜂鸣器驱动程序编写示例》该内容的真实性请自行鉴别。