好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

蜂鸣器和弦音实现基于瑞萨单片机实现电路+代码.doc

10页
  • 卖家[上传人]:夏**
  • 文档编号:409193808
  • 上传时间:2022-08-17
  • 文档格式:DOC
  • 文档大小:179KB
  • / 10 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 蜂鸣器和弦电路如下是基于瑞萨单片机实现代码:/******************************************************************************** 文献:Beep.c 功能:蜂鸣器和弦音,定义三种音,关机,开机,单音 Author:DB.YAN, Time:.10.15 Recent Modify:.10.16 ******************************************************************************//*=======================如下是音调定义======================*/#define Tone_C6 1#define Tone_CS6 2#define Tone_D6 3#define Tone_DS6 4#define Tone_E6 5#define Tone_F6 6#define Tone_FS6 7#define Tone_G6 8#define Tone_GS6 9#define Tone_A6 10#define Tone_AS6 11#define Tone_B6 12#define Tone_C7 13#define Tone_CS7 14#define Tone_D7 15#define Tone_DS7 16#define Tone_E7 17#define Tone_F7 18#define Tone_FS7 19#define Tone_G7 20#define Tone_GS7 21#define Tone_A7 22#define Tone_AS7 23#define Tone_B7 24#define END 0//音频结束位 #define SYS_FREQ 8 // MHZ 系统时钟#define TIMER_CNT_BASE 1000000*SYS_FREQ/2 //定期器计数基数#define BUZZER_IO P3_bit.no1 //BEEP IO#define BUZZER_OUT PM3_bit.no1=0 //Mode OUT#define BUZZER_PULL PU3_bit.no1=1 //Pull up#define PWR_CTRL P13_bit.no0 //蜂鸣器供电控制脚#define BUZZERIO_INIT {BUZZER_OUT;BUZZER_PULL;}/*=========================音调频率表=======================*/const uint Tune_Tbl[24]={ //C6,CS6, D6 ,DS6 ,E6 F6 ,FS6 ,G6 ,GS6 ,A6 ,AS6 ,B6 1047,1109,1175,1245,1319,1397,1480,1568,1661,1760,1865,1976, //C7,CS7, D7 ,DS7 ,E7 F7 ,FS7 ,G7 ,GS7 ,A7 ,AS7 ,B7 2093,2217,2349,2489,2637,2794,2960,3136,3322,3520,3729,3951,};/*======================关机和弦1,2,3...====================*/const uchar Sound_ShutDown[10]= { Tone_C7,2,14,Tone_D7,2,6,Tone_E7,6,60,END};/*======================开机和弦3,2,1...====================*/const uchar Sound_PowerOn[10]= { Tone_E7,2,6,Tone_D7,2,14,Tone_C7,6,60,END};/*======================单音和弦2...=======================*/const uchar Sound_Single[10]= { Tone_D7,12,60,END,END,END,END,END,END,END,};#define S_SHUTDOWN 1//关机音#define S_POWERON 2//开机音#define S_SINGLE 3//单音const uchar (*pSoundSel)[10];//选曲指针struct BE{ uint CountFR; //定期器计数值,通过变化计数值变化音屡屡率 uchar PWR_time; //启动时间,单位为10mS uchar FREQ_time; //音频供应时间,单位为10mS uchar index; //}Beep;volatile union { uchar flag4; __BITS8 flag4_bit; };#define Beep_EN flag4_bit.no0#define Beep_Finish flag4_bit.no1 //和弦结束标志/*=======================================================函数名:Beep_On(uchar SoundSel)传入参数:SoundSel功能:选择声音种类调用:外部调用=========================================================*/__callt void Beep_On(uchar SoundSel){ Beep_EN=1; Beep.index=0; Beep_Finish=0; switch(SoundSel) { case S_SHUTDOWN: pSoundSel=&Sound_ShutDown; break; case S_POWERON: pSoundSel=&Sound_PowerOn; break; case S_SINGLE: pSoundSel=&Sound_Single; break; default: break; } }/*=======================================================函数名:Beep_set()功能:蜂鸣器参数设立调用:Beep_control()=========================================================*/__callt void Beep_set() { if ((*pSoundSel)[Beep.index]!=END) { Beep.CountFR=(uint)(TIMER_CNT_BASE/Tune_Tbl[(*pSoundSel)[Beep.index]-1]); Beep.PWR_time=(*pSoundSel)[Beep.index+1]; Beep.FREQ_time=(*pSoundSel)[Beep.index+2]; Beep.index=Beep.index+3; }else {Beep.index=0; PWR_CTRL=1;Beep_EN=0;Beep_Finish=1;} return; }/*=======================================================函数名:Beep_control()功能:蜂鸣器控制调用:每10ms调用一次=========================================================*/__callt void Beep_control()//每10mS调用一次{ if (Beep_EN) { if (Beep.PWR_time) { PWR_CTRL=0;//供电 Beep.PWR_time--; } else { PWR_CTRL=1;//掉电,依托电容放电实现和弦拖音 } if (Beep.FREQ_time) { Beep.FREQ_time--; CR000=Beep.CountFR; TOC00=0x03; //TMC00=0X0C;//启动操作 } else { TOC00=0x02; //TMC00=0X00;//启动操作 Beep_set(); PWR_CTRL=0;//发声完毕,打开电源给电容充电 } } else { BUZZER_IO=0; TOC00=0x02; } return;}。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.