微控制器控制蜂鳴器和弦音發音程式

2021-09-07 06:08:33 字數 2944 閱讀 9294

//檔案buz.h

#ifndef _buz_h_

#define _buz_h_

//setupbzhx(m_bz_key) ;

//*****buz 驅動頻率定義**********====

//聲音結束符定義==

#define vfr0 0

#define vfr1 vp3k3

#define vfr2 vp4k1

#define vfr3 vp4k9

#define vp2k3 2609 //2k

#define vp2k6 2308

#define vp2k9 2069 //

#define vp3k3 1818//12000/2/3.3 //4k

#define vp4k1 1463//12000/2/4.1

#define vp4k9 1224//12000/2/4.9 //

//*****buz 驅動port定義**********====

sbit p_bzv = p2^6 ; //buz 充電

sbit p_buz = p0^2 ; //buz 驅動

//*****buz port操作***************===

#define buz_on p_buz = 1

#define buz_off p_buz = 0//

#define buzvcc_on p_bzv = 0

#define buzvcc_off p_bzv = 1

//*****蜂鳴器聲音種類***************=

#define m_bz (unsigned char)0 //無

#define m_bz_key (unsigned char)1 //按鍵音

#define m_bz_on (unsigned char)2 //開機音

#define m_bz_off (unsigned char)3 //關機音

//*****蜂鳴器工作過程狀態**********

#define mbz_rst (unsigned char)0

#define mbz_p1 (unsigned char)1

#define mbz_p2 (unsigned char)2

#define mbz_p3 (unsigned char)3

#define mbz_p4 (unsigned char)4

//*****蜂鳴器聲音結構定義*****

typedef struct tbuzhx

tbuzhx ;

//====函式宣告*****

extern void setupbzhx(uint8 mbz) ;

extern void cmdbzhx(void) ;

#endif

//檔案buz.c

#include "global.h"

#include "hxbuz.h"

tbuzhx *tbzhx ;

#define vtb1 20 //20

#define vtb2 6 //20

#define vtb3 100 //50

const tbuzhx bzx0=} ;

const tbuzhx bzx1=,} ;

//const tbuzhx bzx2=,,,} ;

//const tbuzhx bzx3=,,,} ;

const tbuzhx bzx2=,,,} ;

const tbuzhx bzx3=,,,} ;

uint8 rbzstatus = 0 ;

//***************************************

// 函式名稱:setupbzhx

// 函式功能:設定蜂鳴器模式

// 出口引數:無

// 返 回 值:無

//***************************************

void setupbzhx(uint8 mbz)

} //*************************************

// 函式名稱:cmdbzhx

// 函式功能:蜂鳴器控制 -

// 入口引數:無

// 出口引數:無

// 返 回 值:無

//***************************************

void cmdbzhx(void)

else

if(bx1.t_bzo != 0)

else

}else //為結束符

break ;

case mbz_p2 :

if(bx1.t_bzv != 0)

else

if(bx1.t_bzo != 0)

else

break ;

default :

break ;

}}//*****=簡易例程**********=

void main(void)

}}//-----定時器5中斷程式------- 產生所須要的頻率

// [定時器5中斷入口]

void timer5interrupt() interrupt 1 //timer5

微控制器蜂鳴器控制程式和驅動電路

蜂鳴器從結構區分分為壓電式蜂鳴器和電磁式蜂鳴器。壓電式為壓電陶瓷片發音,電流比較小一些,電磁式蜂鳴器為線圈通電震動發音,體積比較小。按照驅動方式分為有源蜂鳴器和無源蜂鳴器。這裡的有源和無源不是指電源,而是振盪源。有源蜂鳴器內部帶了振盪源,如圖 9 8 所示中,給了 buzz 引腳乙個低電平,蜂鳴器就...

uln2003驅動蜂鳴器 通過微控制器來控制蜂鳴器

可以看到蜂鳴器的一端和電阻相連,另一端和引腳bz相連,注意這個bz並不是元氣名稱,有圖可知,元氣名稱都是藍色的,而這個bz是紅色的。我們在開發板原理圖上找乙個 bz引腳,發現在uln2003d這個晶元上有bz引腳,所以我們就把蜂鳴器的圖和uln2003d的圖放在一張圖上,而且把他們該連的引腳連起來了...

STC微控制器控制PCA9554A程式

對pca9554a操作時要特別注意的是在主函式寫資料之前,一定要先用函式 pca9554a config 0x00 寫0x00,否則收不到資料 include include sbit sda p2 0 sbit scl p2 1 sbit beep p2 3 void delay unsigned...