联系人:张经理
手机:13800138000
电话:020-88668888
邮箱:mojocube@qq.com
地址: 广东省广州市天河区天粤垦路88号
\r\nsbitBeep=P1^5\r\n\r\nunsignedcharn=0n为节拍常数变量\r\nunsignedcharcodemusic_tab=\r\n0x18c语言控制蜂鸣器播放音乐,0x30,0x1C,0x10,格式为频率常数,节拍常数,频率常数,节拍常数,\r\n0x20,0x40,0x1C,0x10,\r\n0x18,0x10,0x20,0x10,\r\n0x1C,0x10,0x18,0x40,\r\n0x1C,0xc语言控制蜂鸣器播放音乐;蜂鸣器在Speaker and Sounders大类里面,叫BUZZER 驱动电压是可调的,默认是12V,调成5V即可,电路图很简单,一根脚接IO,另一根接地,假设是接P20,程序就只要一条,SETB P20,你的不能响是因为没设置好 c语言控制蜂鸣器播放音乐我。
1 初始化蜂鸣器引脚2 定义音符序列sszymmh和频率表FREQHFREQL3 在主循环中,遍历音符序列,加载对应频率到定时器0的寄存器4 启动定时器0,通过溢出中断控制蜂鸣器发声5 实现音符之间的延时,以便切换音符通过以上步骤,我们可以实现蜂鸣器演奏“祝你生日快乐”的旋律具体代码如下c include s;蜂鸣器有两种,内置驱动电路的和单纯压电片的内置驱动的上电既响,压电片的需要加脉冲电压才能响这两个的程序不一样 sbit。
不知是本人的实现方法不对,还是蜂鸣器本身的结构原因,我按照上列方法来控制产生的音乐效果总不如人意,感觉不够悦耳后我又按高人指点,改动电路如附图所示 用两个IO配合起来使用,PORTA为电源控制端,用于产生余音PORTB为音调控制端,产生某一频率的信号工作的频率共8度音如下1 2 3 4;bit ifflag==0 flag=1 iopl3 outb0xb6,0x43 outbfreq 0xff,0x42 outbfreq 8,0x42 bit=inb0x61 outb3 bit,0x61。
iTMOD=0x01 置定时器0工作方式1EA=1 打开全局中断ET0=1 打开定时0中断while1i=0whileilt100 音乐数组长度 ,唱完从头再来k=MUSICi+7MUSICi+11去音符振荡频率所需数据Timer0_H=FREQHkTimer0_L=FREQLkTime=MUSICi+2;void delayunsigned int i unsigned char jwhilei forj=0jlt115j++ void yanzouunsigned char pinlv,unsigned int jiepai unsigned char plunsigned int jpifjiepai==1 delay250else ifjiepai==2 delay500else forjp=0jpltjiepaijp++ fmq。
既然单独按键控制音量能实现,播放中应该也可以实现,只要巧妙利用中断或在节拍间隙读键也可以,只要安排得当就会播放调节两不误。
联系人:张经理
手机:13800138000
电话:020-88668888
邮箱:mojocube@qq.com
地址: 广东省广州市天河区天粤垦路88号