资源简介
资源是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
- 下一篇:关于抽象数据类型--有理数数据结构
相关资源
- 基于MCS_51单片机的工业屏柜散热方案
- MCS_51单片机与8255A的接口设计
- 51单片机PWM程序,占空比、周期可调整
- 51单片机多功能自行车测速仪
- 00
- 用51单片机实现G代码翻译
- 简易的电阻电容测量电路
- 51单片机基于protues的几个仿真实例
- 51单片机PCB设计图
- PC -- 单片机的串口数据传输系统设计
- 51单片机控制舵机程序
- 51单片机读取温度数据存储到SD卡中并
- 【单片机】51单片机数码管显示万年历
- C51单片机汇编指令查询、学习工具集
- 基于8051单片机的红外接收程序
- 51单片机频率计(很简单)
- 基于51单片机的智能温控器
- 基于51单片机的16*16点阵动态显示
- 基于51单片机的模数转换与数模转换
- 51单片机中使用ucos ii的优缺点转
- 51单片机中使用ucos ii的优缺点
- 8051单片机教程第二十七课:单片机几
- 8051单片机教程第二十六课:矩阵式键
- 适用于STC单片机和51单片机的SX1262驱动
- 基于51单片机的计算器(C51编写,有
- 51单片机大量源码
- 基于51单片机的交通信号灯程序
- GSM监控系统51单片机设计
- 51单片机定时器/计数器的结构和原理
- MCS-51单片机定时器和计数器区别的理
评论
共有 条评论