资源简介
资源是51单片机使用蜂鸣器来播放音乐的实验例程,通过PWM信号来控制蜂鸣器,改变PWM的频率,可以改变蜂鸣器的发声音调,从而可以播放音乐。
代码片段和文件信息
/********************************************************************/
//飞翔科技 助您成功
//网店地址:http://fxfreefly.taobao.com
/********************************************************************/
#include //包含头文件,一般情况不需要改动
sbit BUZZ=P1^0; //定义蜂鸣器接口
code unsigned int toneH[10]={ //音调对应的定时器计数值的高8位 第一个音为低音7
0XF80XF80XF90XFA0XFA0XFB0XFB0XFC0XFC0XFC
};
code unsigned int toneL[10]={ //音调对应的定时器计数值的低8位
0X180X8C0X6B0X150X670X040X900X0C0X440XAC
};
code unsigned int soundtone[42]={
11556654433221
55443325544332
11556654433221
};
code unsigned int soundlong[42]={
11111121111112
11111121111112
11111121111112
};
unsigned int t;
unsigned char t_Ht_L;
/********************************************************************/
/* 初始化定时器0 */
/********************************************************************/
void init_T0(void)
{
TMOD|= 0x01; //使用方式1,16位定时器
TH0=0x00; //给TH0和TL0赋初值,计数器由0开始计数,到65535溢出
TL0=0x00;
EA=1; //总中断打开
ET0=1; //定时器中断打开
TR0=0; //关闭定时器
}
/********************************************************************/
/* 延时函数 */
/* 延时时间的计算对应单片机12MHz的晶振 */
/* x为延时的ms数,例:x为10时,延时时间约为10ms */
/********************************************************************/
void delay1ms(unsigned int x)
{
unsigned int ij;
for(j=0;j for(i=0;i<123;i++);
}
/********************************************************************/
/* 主函数 */
/********************************************************************/
void main(void)
{
init_T0();
for(;;)
{
for(t=0;t<42;t++)
{
t_H=toneH[soundtone[t]]; //提取音调对应的定时器初始值
t_L=toneL[soundtone[t]];
TH0=t_H; //给TH0和TL0赋值
TL0=t_L;
TR0=1; //打开定时器,蜂鸣器发声
delay1ms(soundlong[t]*500); //延时soundlong[t]指定的时间长度
BUZZ=0; //蜂鸣器不发声,停顿片刻
TR0=0;
delay1ms(50);
}
delay1ms(2000);
}
}
/********************************************************************/
/* 定时器0中断服务程序 */
/********************************************************************/
void T0_ISR(void) interrupt 1 using 1
{
TH0=t_H; //给TH0和TL0重新赋值
TL0=t_L;
BUZZ=~BUZZ; //BUZZ的值取反,改变蜂鸣器的状态。
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3729 2013-05-22 19:42 073-蜂鸣器播放音乐-小星星亮晶晶\蜂鸣器播放音乐-小星星亮晶晶
文件 2932 2020-03-06 09:18 073-蜂鸣器播放音乐-小星星亮晶晶\蜂鸣器播放音乐-小星星亮晶晶.c
文件 1309 2013-05-22 19:42 073-蜂鸣器播放音乐-小星星亮晶晶\蜂鸣器播放音乐-小星星亮晶晶.hex
文件 5396 2013-05-22 19:42 073-蜂鸣器播放音乐-小星星亮晶晶\蜂鸣器播放音乐-小星星亮晶晶.LST
文件 5858 2013-05-22 19:42 073-蜂鸣器播放音乐-小星星亮晶晶\蜂鸣器播放音乐-小星星亮晶晶.M51
文件 4318 2013-05-22 19:42 073-蜂鸣器播放音乐-小星星亮晶晶\蜂鸣器播放音乐-小星星亮晶晶.OBJ
文件 1051 2013-06-03 22:42 073-蜂鸣器播放音乐-小星星亮晶晶\蜂鸣器播放音乐-小星星亮晶晶.Opt
文件 246 2013-06-03 22:42 073-蜂鸣器播放音乐-小星星亮晶晶\蜂鸣器播放音乐-小星星亮晶晶.plg
文件 2048 2012-09-13 22:08 073-蜂鸣器播放音乐-小星星亮晶晶\蜂鸣器播放音乐-小星星亮晶晶.Uv2
文件 1059 2013-05-22 19:42 073-蜂鸣器播放音乐-小星星亮晶晶\蜂鸣器播放音乐-小星星亮晶晶_Opt.Bak
文件 0 2012-09-13 22:04 073-蜂鸣器播放音乐-小星星亮晶晶\蜂鸣器播放音乐-小星星亮晶晶_Uv2.Bak
目录 0 2020-02-07 17:49 073-蜂鸣器播放音乐-小星星亮晶晶
----------- --------- ---------- ----- ----
27946 12
- 上一篇:ds90ub927.tar.bz2
- 下一篇:关于抽象数据类型--有理数数据结构
相关资源
- 51单片机 RTL8019AS 网卡驱动程序(有
- 源程序 - 副本.rar
- 基于单片机的交通灯控制系统设计程
- 基于51单片机的电子表
- 基于51单片机实现简单五子棋
- 数字温度计用51单片机程序
- 51单片机利用8266wifi获取网络时间,亲
- 51单片机频率计程序
- 基于51单片机和热敏电阻数字温度计
- 单片机数码管显示温度
- 基于51单片机的只能台灯
- 51单片机 LCD12864程序显示文字或者图片
- 51单片机mpu6050读取六轴原始数据并L
- DS2782 美信电量计芯片 IIC STM32/STM8/5
- 基于C51单片机的8×8-LED点阵屏汉字显示
- 音乐频谱显示参考源代码.rar
- 红外温度测温成功mxl90614
- 基于51单片机电子音乐门铃设计
- 51单片机读写SD卡+播放视频
- AT89C51单片机实现的强大交通灯控制汇
- 基于51单片机的无线病床呼叫系统设计
- 基于51单片机的花样流水灯(汇编程序
- 使用vivad写的数字时钟,带有蜂鸣器闹
- 51单片机串口通讯
- 51单片机控制LED PWM调光程序
- 基于C51单片机的MP3播放器设计
- 基于89C51单片机的节拍器设计
- 51单片机驱动74hc595芯片的程序
- 单片机驱动蜂鸣器程序原理图
- 51单片机串口修改DS1302时间
评论
共有 条评论