当前位置:文档之家› 51单片机音乐c程序

51单片机音乐c程序

51单片机音乐c程序
51单片机音乐c程序

51单片机音乐c程序

#include

unsigned char Count;

sbit bee_Speak =P2^0 ; //蜂鸣器器控制脚

unsigned char code SONG[] ={ //祝你平安

0x26,0x20,0x20,0x20,0x20,0x20,0x26,0x10,0x20,0x10,0x20,0x80,0x26,0x2 0,0x30,0x20,

0x30,0x20,0x39,0x10,0x30,0x10,0x30,0x80,0x26,0x20,0x20,0x20,0x20,0x20,0x 1c,0x20,

0x20,0x80,0x2b,0x20,0x26,0x20,0x20,0x20,0x2b,0x10,0x26,0x10,0x2b,0x80,0x 26,0x20,

0x30,0x20,0x30,0x20,0x39,0x10,0x26,0x10,0x26,0x60,0x40,0x10,0x39,0x10,0x 26,0x20,

0x30,0x20,0x30,0x20,0x39,0x10,0x26,0x10,0x26,0x80,0x26,0x20,0x2b,0x10,0x 2b,0x10,

0x2b,0x20,0x30,0x10,0x39,0x10,0x26,0x10,0x2b,0x10,0x2b,0x20,0x2b,0x40,0x 40,0x20,

0x20,0x10,0x20,0x10,0x2b,0x10,0x26,0x30,0x30,0x80,0x18,0x20,0x18,0x20,0x 26,0x20,

0x20,0x20,0x20,0x40,0x26,0x20,0x2b,0x20,0x30,0x20,0x30,0x20,0x1c,0x20,0x 20,0x20,

0x20,0x80,0x1c,0x20,0x1c,0x20,0x1c,0x20,0x30,0x20,0x30,0x60,0x39,0x10,0x 30,0x10,

0x20,0x20,0x2b,0x10,0x26,0x10,0x2b,0x10,0x26,0x10,0x26,0x10,0x2b,0x10,0x 2b,0x80,

0x18,0x20,0x18,0x20,0x26,0x20,0x20,0x20,0x20,0x60,0x26,0x10,0x2b,0x20,0x 30,0x20,

0x30,0x20,0x1c,0x20,0x20,0x20,0x20,0x80,0x26,0x20,0x30,0x10,0x30,0x10,0x 30,0x20,

0x39,0x20,0x26,0x10,0x2b,0x10,0x2b,0x20,0x2b,0x40,0x40,0x10,0x40,0x10,0x 20,0x10, 0x20,0x10,0x2b,0x10,0x26,0x30,0x30,0x80,0x00,

//路边的野华不要采

0x30,0x1C,0x10,0x20,0x40,0x1C,0x10,0x18,0x10,0x20,0x10,0x1C,0x10,0x1 8,0x40,0x1C,

0x20,0x20,0x20,0x1C,0x20,0x18,0x20,0x20,0x80,0xFF,0x20,0x30,0x1C,0x10,0x 18,0x20,

0x15,0x20,0x1C,0x20,0x20,0x20,0x26,0x40,0x20,0x20,0x2B,0x20,0x26,0x20,0x 20,0x20,

0x30,0x80,0xFF,0x20,0x20,0x1C,0x10,0x18,0x10,0x20,0x20,0x26,0x20,0x2B,0x 20,0x30,

0x20,0x2B,0x40,0x20,0x20,0x1C,0x10,0x18,0x10,0x20,0x20,0x26,0x20,0x2B,0x 20,0x30,

0x20,0x2B,0x40,0x20,0x30,0x1C,0x10,0x18,0x20,0x15,0x20,0x1C,0x20,0x20,0x 20,0x26,

0x40,0x20,0x20,0x2B,0x20,0x26,0x20,0x20,0x20,0x30,0x80,0x20,0x30,0x1C,0x 10,0x20,

0x10,0x1C,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,0x20,0x2B,0x40,0x20,0x

15,0x1F,

0x05,0x20,0x10,0x1C,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,0x20,0x2B,0x 40,0x20,

0x30,0x1C,0x10,0x18,0x20,0x15,0x20,0x1C,0x20,0x20,0x20,0x26,0x40,0x20,0x 20,0x2B,

0x20,0x26,0x20,0x20,0x20,0x30,0x30,0x20,0x30,0x1C,0x10,0x18,0x40,0x1C,0x 20,0x20,

0x20,0x26,0x40,0x13,0x60,0x18,0x20,0x15,0x40,0x13,0x40,0x18,0x80,0x00, };

void Time0_Init()

{

TMOD = 0x01;

IE = 0x82;

TH0 = 0xDC;

TL0 = 0x00; //11.0592MZ晶振,10ms

}

void Time0_Int() interrupt 1

{

TH0 = 0xDC;

TL0 = 0x00;

Count++; //长度加1

}

/*-------------------------------------------------

功能:1MS延时子程序

-------------------------------------------------*/ void Delay_xMs(unsigned int x) {

unsigned int i,j;

for( i =0;i < x;i++ )

{

for( j =0;j<2;j++ );

}

}

/*------------------------------------------------- 功能:歌曲播放子程序i为播放哪一段曲目

-------------------------------------------------*/ void Play_Song(unsigned char i) {

unsigned char Temp1,Temp2; unsigned int Addr; Count = 0; //中断计数器清0

Addr = i * 217;

while(1)

{

Temp1 = SONG[Addr++];

if ( Temp1 == 0xFF ) //休止符

{

TR0 = 0;

Delay_xMs(100);

}

else if ( Temp1 == 0x00 ) //歌曲结束符

{

return;

}

else

{

Temp2 = SONG[Addr++];

TR0 = 1;

while(1)

{

bee_Speak = ~bee_Speak;

Delay_xMs(Temp1);

if ( Temp2 == Count )

{

Count = 0;

break;

}

}

}

}

}

/*------------------------------------------------- 功能:主程序

-------------------------------------------------*/ void main()

{

Time0_Init(); //定时器0中断初始化

while(1)

{

Play_Song(1); //播放//0改作1可播放第二首歌曲}

}

基于51单片机两种音乐编码的比较及用法

基于51单片机的两种音乐编码方法的比较及用法 (建议对这方面有兴趣的朋友们要先看懂了解音乐简谱,包括高音、中音、低音,节拍、延时,及各个音调的频率,网上有很多资料) 1方法:用51单片机音乐编码器软件(Music encode) 输出十六进制数表示: 曲谱存贮格式unsigned char code MusicName{音高,音长,音高,音长...., 0,0}; 末尾:0,0 表示结束(Important) (其实软件“关于”里的源代码有使用方法的介绍) 音高由三位数字组成: 个位是表示1~7 这七个音符 十位是表示音符所在的音区:1-低音,2-中音,3-高音; 百位表示这个音符是否要升半音: 0-不升,1-升半音。 音长最多由三位数字组成: 个位表示音符的时值,其对应关系是: |数值(n): |0 |1 |2 |3 | 4 | 5 | 6 |几分音符: |1 |2 |4 |8 |16 |32 |64 音符=2^n 十位表示音符的演奏效果(0-2): 0-普通,1-连音,2-顿音 百位是符点位: 0-无符点,1-有符点 2方法:编码为十六进制(高四位表示音调编码,低四位表示节拍编码)(各音调频率及初值计算定时器初值网上有,在此不叙说) do re mi fa so la si分别编码为1~7,重音do编为8,重音re编为9,停顿编为0。 如0x24,表示低音LA、1拍。以此类推 表4.4简谱对应的简谱码、T值、节拍数 简谱发音简谱码T值节拍码节拍数 5 低音SO 1 64260 1 1/4拍 6 低音LA 2 64400 2 2/4拍 7 低音TI 3 64524 3 3/4拍 1 中音DO 4 64580 4 1拍 2 中音RE 5 64684 5 1又1/4拍 3 中音MI 6 64777 6 1又1/2拍 4 中音FA 7 64820 8 2拍 5 中音SO 8 64898 A 2又1/2拍 6 中音LA 9 64968 C 3拍 7 中音TI A 65030 F 3又3/4拍 1 高音DO B 65058 2 高音RE C 65110 3 高音MI D 65157 4 高音FA E 65178 5 高音SO F 65217

基于51单片机蜂鸣器发声的-C语言程序

说明:按下不同的按键会是SOUNDER发出不同频率的声音。本例使用延时函数实现不同频率的声音输出,以后也可使用定时器 */ #include #define uchar unsigned char #define uint unsigned int sbit BEEP=P3^7; sbit K1=P1^4; sbit K2=P1^5; sbit K3=P1^6; sbit K4=P1^7; //延时 void DelayMS(uint x) { uchar t; while(x--) for(t=0;t<120;t++); } //按周期t发音 void Play(uchar t) { uchar i; for(i=0;i<100;i++) { BEEP=~BEEP; DelayMS(t); } BEEP=0; } void main() { P1=0xff; BEEP=0; while(1) { if(K1==0) Play(1); if(K2==0) Play(2); if(K3==0) Play(3); if(K4==0) Play(4); } }

说明:程序运行时播放生日快乐歌,未使用定时器中断,所有频率完全用延时实现 */ #include #define uchar unsigned char #define uint unsigned int sbit BEEP=P3^7; //生日快乐歌的音符频率表,不同频率由不同的延时来决定 uchar code SONG_TONE[]= {212,212,190,212,159,169,212,212,190,212,142,159,212,212,106,126,159,169,190,1 19,119,126,159,142,159,0}; //生日快乐歌节拍表,节拍决定每个音符的演奏长短 uchar code SONG_LONG[]= {9,3,12,12,12,24,9,3,12,12,12,24, 9,3,12,12,12,12,12,9,3,12,12,12,24,0}; //延时 void DelayMS(uint x) { uchar t; while(x--) for(t=0;t<120;t++); } //播放函数 void PlayMusic() { uint i=0,j,k; while(SONG_LONG[i]!=0||SONG_TONE[i]!=0) { //播放各个音符,SONG_LONG为拍子长度 for(j=0;j

基于51单片机的音乐播放器

基于51单片机的音乐播放器 余子健、刘胤、宋亮 摘要:本大作业是基于sst89e52rd2单片机制作的wav音乐播放器。该播放器可以播放存在sd卡中的音乐,通过对sd卡的读取并将数字信号送入单片机中,借助8位DA转换器TLC5620 变成模拟信号,经过放大器TDA2822放大交给扬声器发出最初读取的音频信号,实现音乐播放的功能。 关键词:SD卡,WAV文件,DA,音频放大 1背景 音乐随身听产品经过几年的发展,已经变得相当成熟。市场上可以购买到各类不同的音乐播放器,产品线涵盖了高中低不同档次。作为学习与研究,本作品尝试利用STI51开发板板载资源以及外搭的功率放大电路制作一台音乐播放器,能够播放通过计算机拷贝在SD卡(或MMC卡、TF卡)的根目录中的某一个WAV 文件。 2硬件设计 该音乐播放器硬件组成如下 本音乐播放器使用容量为2G的SD作为外部存储器 主控制器采用SST公司生产的SST89E58RDA,其40引脚封装的芯片功能模块如图1所示。芯片主要特想如下: ?兼容80C51系列,内置超级FLASH存储器的单片机 ?工作电压VDD=4.5~5V,5V工作电压时0-40MHz频率范围 ?1KB的内部RAM ?两块超级FLASH EEPROM,32KB的基本存储卡和8KB的二级存储块(扇区大小为128字节),二级存储块可用于存放掉电后要保存的数据,放在内部具有极强的抗干扰性?最大片外程序/数据地址空间为64KB ?全双工增强型UART,帧错误检测,自动地址识别 ?9个中断源,4个中端优先级 ?降低EMI模式(通过AUXR SFR不允许ALE输出时钟),确保了单片机的高抗干扰性?双DPTR指针(查表,寻址更方便)

(完整版)基于51单片机的电子八音盒详细设计步骤

一、设计目的 利用8052单片机结合内部定时器设计一个八音盒,按下单键可以演奏预先设置的歌曲旋律。 二、设计要求 其基本功能为:1,使用LED显示器来显示目前演奏的歌曲编号;2,具有8个按键操作来选择演奏哪一首歌曲;3,内建8首歌曲旋律,按下单键可以演奏歌曲。 三、设计器材 T89C52单片机、晶振、八个按键、二位一体共阳极数码管、电阻电容若干、导线。 四、设计方案及分析 设计思路: (1)选择8052单片机,通过T0定时中断,并配合P2.0引脚输出音频频率。 (2)P2.0引脚输出接蜂鸣器。 (3)通过P0口接LED。 (4)P1口接键盘,输入歌曲号。 音符产生方法: 不同的音调有不同的频率。频率不同,音调也就不同。 利用定时器,使其工作在模式1,定时中断,然后控制P2.0引脚的输出每次取反,就可以在P2.0的引脚输出相应的方波频率。改变计数初值,就改变了频率。定时器的定时时间等于半个周期,定时时间到就输出脉冲取反,重复此过程,就可在P2.0引脚得到一音频的脉冲。 如:中音1的频率=523HZ,周期T=1/523=1912us; 定时器的定时时间为:T/2=1912/2us=956us; 计算得TH0,TL0的计数初值THTL=64580 下面是个音符计数初值

节拍产生方法: 音乐中的节拍用延时时间产生。假设1/4拍执行一次延时程序,这1/2拍就执行两次延时程序,所以只要求出1/4延时时间,其余的节拍就是他的倍数。为方便记谱,将节拍数也进行编码,如下: 建立曲谱编码表: 编谱用8位编码,高4位代表音符,低4位代表节拍。如5 6中音5,中音6,都是1/2拍,则编码为:82H 92H 程序清单: #include #define uchar unsigned char #define uint unsigned int #define ulong unsigned long sbit SPEAK = P2^0;//接蜂鸣器管脚 uchar th0_f; uchar tl0_f;

51单片机蜂鸣器播放音乐代码

/*生日快乐歌曲*/ #include <> #define uint unsigned int #define uchar unsigned char sbit beep = P1^5; uchar code SONG_TONE[]={212,212,190,212,159,169,212,212,190,212,142,159, 212,212,106,126,159,169,190,119,119,126,159,142,159,0}; uchar code SONG_LONG[]={9,3,12,12,12,24,9,3,12,12,12,24, 9,3,12,12,12,12,12,9,3,12,12,12,24,0}; //延时 void DelayMS(uint x) { uchar t; while(x--) for(t=0;t<120;t++); } void PlayMusic() { uint i=0,j,k; while(SONG_LONG[i]!=0||SONG_TONE[i]!=0) { //播放各个音符,SONG_LONG 为拍子长度 for(j=0;j // 这是单片机音乐代码生成器生成的代码 #define uchar unsigned char sbit beepIO=P1^5; // 输出为可以修改成其它 IO 口uchar m,n;

基于51单片机数字音乐盒的设计

单片机实物设计 题目: 单片机音乐盒设计 班级: K0312416-17 姓名:湛俊朱斌杨裕庆 学号:K031241705 K031241632 K031241737

摘要 本设计是一个基于STC89C51RC系列单片机的音乐盒,依据单片机技术原理,通过硬件电路制作以及软件编译,设计制作出一个多功能多功能音乐盒。该音乐盒主要由按键电路、复位电路、时钟电路以及蜂鸣器组成。本音乐盒共有四首歌曲,用4个按键控制。播放歌曲时,蜂鸣器发出某个音调。本设计利用KEIL编程软件对音乐盒源程序进行编程并调试,配合PROTEUS 仿真软件对硬件进行仿真调试,节约了设计时间。 【关键词】STC89C51RC 按键蜂鸣器 LCD1602液晶

目录 前言 ................................................................................................................................. 第一章工作原理 .............................................................................................................. 1.1设计目标 ............................................................................................................... 第二章软件设计与分析................................................................................................... 2.1 软件设计的组成................................................................................................... 2.2 各部分软件分析 ................................................................................................. 2.2.1 延时165MS,即十六分音符子函数 .......................................................... 2.2.2 延时1MS子函数...................................................................................... 2.2.3 定时器0中断子函数 .............................................................................. 2.2.4 播放音乐子函数...................................................................................... 2.5 定时器1中断子函数.................................................................................. 2.6 按键扫描子函数 ......................................................................................... 2.2.7 主函数..................................................................................................... 2.3 总源程序 ............................................................................................................ 第三章软件仿真 .............................................................................................................. 3.仿真图...................................................................................................................... 3.1 元件清单 ............................................................................................................... 总结 ..................................................................................................................................... 参考文献..............................................................................................................................

51单片机实现的音乐闹钟程序代码

功能描述:产品可以显示时间和日期,时间格式为 hh mm ss 日期格式为 yy.mm.dd 时间和日期轮流显示。时间显示5S 日期显示3S。 可以设置5个闹铃,闹铃音乐可以设置两种:毛驴和童年。 三个按键对时间和闹铃进行设置,六个LED进行显示。 计时采用DS1307。继电时间不丢失,设置过的闹铃也不丢失。 闹铃音乐由单片机的两个定时器去产生频率实现。 部分程序如下: //************************************************* //************************************************ //*********************************************** //程序名:DS1307 时钟程序 //功能描述:用六个八段LED 轮流显示时间 // 和日期。有6个闹钟。上电时从DS1307中读出 // 当前时间、日期、闹钟。 // // // // // #include #include #define uchar unsigned char #define uint unsigned int #define LED P2 #define LEDBit P0 #define nop _nop_(>

#define LightCount 40 #define LightMax 80 sbit SCL=P3^1。 sbit SDA=P3^0。 sbit ModeKey=P1^0。 sbit UpKey=P1^1。 sbit DownKey=P1^2。 sbit Speak=P3^6。 code uchar LCD_NUM[10]={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09}。 //0x25, //uchar Clock[]={0x88,0x88,0x88}。 code uint Music_Sound_Long1[]={4,8,4,8,8,4,8,4,4,4, /*童年*/ 8,4,8,4,4,4,4,4,16,4, 4,8,4,4,4,4,4,8,4,4, 4,8,4,4,4,4,4,4,16,4, 4,8,4,4,4,4,4,8,4,4, 4,8,4,4,4,4,4,4,16,4, 8,4,8,4,4,4,8,8,4,4, 4,4,4,4,4,4,4,4,4,16, 4,8,4,8,8,4,8,4,4,4, 8,4,8,4,4,4,4,4,16,4, 8,4,8,8,4,8,4,4,4,8, 4,8,4,4,4,4,4,16,0}, Music_Sound_Long2[]={4,4,4,4,4,4,4,4,4,4, /*小毛驴*/ 4,4,16,4,4,4,4,4,4 ,4, 4,4,4,4,4,8,4,4,4,4, 4,4,4,4,4,4,4,4,4,16, 4,4,4,4,2,2,2,2,4,4, 4,4,4,4,16,0}, Music_Sound_Tone1[]={379,379,379,379,425,477,477,477,425,477, 568,637,637,637,568,637, 425,379,477,719, 637,63 7,719,637,568,568,506,568,568,568, 637,477,477,477,477,568,477,568,637,719, 637,637,719,637,568,568,506,568,568,568, 637,477,477,477,477,568,568,477,851,318,

基于51单片机音乐盒程序设计

基于51单片机音乐盒程序设计基于51单片机音乐盒程序设计一、功能设计说明 1、电路设计 实物图 矩阵键盘部分电路图 2、运行流程图 程序开始 播放小苹果歌曲

否 判断任意按键是否按下继续播放小苹果歌曲是 否播放完成 进入电子琴模式 判断K16按键是否按下 是 3、电子琴模式按键对应发音设计 按键发音按键发音 低 1 中 2 K1 K9 低 2 中 3 K2 K10 低 3 中 4 K3 K11 低 4 中 5 K4 K12 低 5 中 6 K5 K13 按键发音按键发音 低 6 中 7 K6 K14 低 7 高 1 K7 K15 中 1 重新播放小苹果 K8 K16 二、硬件电路说明

1、程序下载电路 音乐盒电路图 ISP下载接口 本设计采用的单片机为AT89S52单片机,需使用ISP下载器进行下载程序,程序下载电路图如图中ISP1接口. 2、音乐发音电路 IO口P10发出不同频率的脉冲,则BUZZER产生各种不同的声音,本设计采用12MHZ 晶振,系统频率1MHZ,定时器计数一个1us,其对应关系如下表所示: 频率简谱码(T音符音符频率(HZ) 简谱码(T值) (HZ) 值) 低 1 DO 262 63628 # 4 FA# 740 64860 # 1 DO# 277 63731 中 5 SO 784 64898 低 2 RE 294 63853 # 5 SO# 831 64934 # 2 RE# 311 63928 中 6 LA 880

64968 低 3 M 330 64021 # 6 932 64994 低 4 FA 349 64103 中 7 SI 988 65030 # 4 FA# 370 64185 高 1 DO 1046 65058 低 5 SO 392 64260 # 1 DO# 1109 65085 # 5 SO# 415 64331 高 2 RE 1175 65110 低 6 LA 440 64400 # 2 RE# 1245 65134 # 6 466 64463 高 3 M 1318 65157 低 7 SI 494 64524 高 4 FA 1397 65178 中1 DO 523 64580 # 4 FA# 1480 65198 # 1 DO# 554 64633 高 5 SO 1568 65217 中 2 RE 587 64684 # 5 SO# 1661 65235 # 2 RE# 622 64732 高 6 LA 1760 65252 中 3 M 659 64777 # 6 1865 65268 中 4 FA 698 64820 高 7 SI 1967 65282 计算方法: 例如产生262HZ频率(发音DO), 周期T=1/262=3816 us,由于定时器中断使IO不停取反,故周期 T=3816/2=1908 us 定时器初值N=65536-1908=63628 TH0=63628/256 TL0=65536%256 三、程序代码说明 1 、脉冲产生 采用定时器0溢出中断产生脉冲,定时器初始化如下: TMOD = 0x01; //定时器0工作方式1 ,即十六位计数器计数 TR0 = 1; //启动定时器 ET0 = 1; //定时器0溢出中断使能

用51单片机演奏音乐

单片机演奏音乐 一般说来,单片机演奏音乐基本都是单音频率,它不包含相应幅度的谐波频率,也就是说不能象电子琴那样能奏出多种音色的声音。因此单片机奏乐只需弄清楚两个概念即可,也就是“音调”和“节拍”。音调表示一个音符唱多高的频率,节拍表示一个音符唱多长的时间。 在音乐中所谓“音调”,其实就是我们常说的“音高”。在音乐中常把五线谱中央C 上方的A 音定为标准音高,其频率f=440Hz。当两个声音信号的频率相差一倍时,也即f2=2f1时,则称f2比f1 高一个倍频程, 在音乐中1与.1(1前面的点应在1的上面),2与 .2……正好相差一个倍频程,在音乐学中称它相差一个八度音。在一个八度音内,有12个半音。以1—i 八音区为例,12 个半音是:1—#1、#1—2、2—#2、#2—3、3—4、4—#4,#4—5、5 一#5、#5—6、6—#6、#6—7、7—i。其中“#”表示半音,用于升高或降低半个音。这12 个音阶的分度基本上是以对数关系来划分的。如果我们只要知道了这十二个音符的音高,也就是其基本音调的频率,我们就可根据倍频程的关系得到其他音符基本音调的频率。 知道了一个音符的频率后,常采用的方法就是通过一个延时程序,延时对应频率周期的二分之一周期(即t=1/2f)后,将单片机上连接蜂鸣器的I/O (P3.7)口来回取反,或者说来回清零,置位,从而让蜂鸣器发出声音,为了让单片机发出不同频率的声音,我们只需将不同的延时时间值t赋给延时程序即可实现。例:我门以440Hz的声音频率来计算,其对应的时间 t=1/2f=1/2*440=1136us 但在实际程序中常采用查表的方式来取的t 值,而为了节约存储器空间则将t值以字节来进行存储,由于大部分t值都大于256。所以,需将t值除以一个常数(t/x)使其小于256。那么,在查表取得t 值后就要再乘上该常数后再赋给延时程序。 以下为常用音符对应的频率和二分之一周期值t :

51单片机四路抢答器(LED灯,数码管显示,蜂鸣器提示音)C语言源程序

51单片机四路抢答器(LED灯,数码管显示,蜂鸣器提示音)C语言源程序2009-10-31 10:53 其实就是在原有的基础上,加入数码管显示及蜂鸣器,当然根据自己的要求,适当使用单片机I/O口 接线为: P0 P2 来控制数码管显示,其中P0为数码管显字控制,P2用来选择位(第几个数码管) P1用来控制8个LED灯 P3,独立按键(可以根据需要修改) P3^5(找了一个没有用到的I/O口,当然,可以用键盘扫描的方式来实现,这样的话,可以实现4*4=16路的抢答器,了解原理,做相应修改即可。 #include sbit key1=P3^0; //这里采用独立按键(4路) sbit key2=P3^1; sbit key3=P3^2; sbit key4=P3^3; sbit SPK=P3^5; //蜂鸣器,最好在ISP编程时先不接入,(我用的是杜邦线,可以设置跳线控制) void delay(unsigned int cnt) { while(--cnt); } void speak(unsigned int j) { unsigned int i; for(i=0;i

{ bit Flag; while(!Flag) { if(!key1){P1=0xFE;Flag=1;speak(300);P2=0;P0=0x06;} //LED1,数码管1显示1,蜂鸣器叫 else if(!key2){P1=0xFD;Flag=1;speak(300);P2=1;P0=0x5b;}//LED2,数码管2显示2,蜂鸣器叫 else if(!key3){P1=0xFB;Flag=1;speak(300);P2=2;P0=0x4f;}//LED3,数码管3显示3,蜂鸣器叫 else if(!key4){P1=0xF7;Flag=1;speak(300);P2=3;P0=0x66;}LED4,数码管4显示4,蜂鸣器叫 } while(Flag); } 测试完,手动复位即可,当然可设置相应的按键来控制标志:Flag,进行继续抢答。。

(完整版)基于51单片机的自动音乐播放器设计毕业设计

本科毕业论文(设计) 题目: 基于51单片机的自动音乐播放 器设计 院系:电子与通信工程学院 专业:通信工程 姓名:张志顺 指导教师:陈冬云 教师职称:助教

填写日期:2014年4月20日 摘要 为了人们在快节奏的日常生活,优化工厂、事业单位、公司等的计时系统,采用了依靠单片机为基础设计了一种的自动音乐播放器。本设计利用单片机89C58RD+的计数和定时功能,来完成对时间的定时和显示功能。并且,通过对定时器初值的设定来产生不同频率的声音,利用定时器中断来对音乐节拍长度的控制。通过LM386N1音频功率放大器的音频放大功能,将单片机控制输出的信号放大,然后通过扩音器播放乐曲。通过MAX232型芯片,可以转换PC机上的电压和单片机的电源电压,再通过相应串口接入PC机,这样就能从PC机上将用C语言编写的程序代码下载到单片机上。最后可以在数码管上显示时间,当到达之前设定的时间之后,

扩音系统就会自动播放一段连续而美妙动听的音乐。此设计规避了传统闹钟的难听并且刺耳声音,而变成的是美妙动听的音乐,能给处于当前快节奏生活的人们的日常生活提供精确的计时,且因为成本较低,值得推广。 关键词:单片机;自动音乐播放;音频转换;时间显示;LM386N1音频功率放大器。 Abstract

To people in the fast pace of daily life, optimization of factories, institutions, companies such as timing system, based on microcomputer was adopted to design a kind of automatic music player. This design using the single chip microcomputer 89 c58rd + count and timing functions, to complete the regular and display function of time. And, through to the setting of the initial value of timer to generate different frequencies of sound, using a timer interrupt to control of the beat of the music length. Through the audio amplifier function LM386N1 audio power amplifier, the single-chip microcomputer control output signal amplification, and then through loudspeakers. Through MAX232 chip, can convert the voltage of power supply voltage of PC and microcontroller, again through the corresponding access PC serial port, so you can from the PC to download program code written in C language to the single chip microcomputer. Last time can be displayed on the digital tube, when, after arriving in setting the time before the public address system will automatically play a continuous and delightful music. This design to avoid the traditional alarm clock ugly and give in the fast-paced life of the People's Daily life to provide accurate timing, and because of lower cost, is worth promoting. Key words: single chip microcomputer; Automatic music playback; Audio conversion; Time display; LM386N1 audio power amplifier.

基于51单片机的蓝牙音乐盒

项目编号 西南交通大学峨眉校区大学生 科技创新基金项目 申请书 A、科技发展基金√ 项目类别(划√)B、基础科学研究基金 C、社会科学专项基金 项目名称:基于51单片机的蓝牙音乐盒 申请者:崔志斌 指导老师:王恪铭 起止年限:2014年5 月至2015年5月 申请日期:2014年4月7日

一、简表 项目名称基于51单片机的蓝牙音乐盒 申请经费0.1(万元)申请类别科技发 展基金 申请滚动资助 (划√) 是 否√ 申请者崔志斌性别男出生日期1993.7.3 学号20128403 班级测控一班所在系 (部) 计算机与通信工 程系 起止年限2014.05 项目组成员(不含申请者) 姓名学号所在系(部)项目分工本人签字 崔志斌20128403 计算机与通信工 程系 技术支持 计算机与通信工 程系 技术支持 计算机与通信工 程系 技术支持 项目研究内容提要(200字以内) 现如今随着科技的发展,人们生活水平的提高,越来越多的人们将注意力转移到了丰富自己的精神生活上。因而现在市场上出现了一些多媒体电子设备,例如MP3、MP4以及平板电脑等等。但是我们发现,这些多媒体设备大都在设备上面仅仅设计了物理按键而没有给出无线控制的解决方案,因此本小组想到了将现有的成熟无线通信技术——蓝牙技术作为我们的多媒体电子音乐盒的控制技术。它打破了传统的以物理按键控制多媒体设备的框架,转而使用现如今迅猛发展并且普及率极高的蓝牙无线通信技术,这样做既可以利用蓝牙将我们的传统多媒体设备上面的物理按键解放,又可以将消费者对于多媒体电子设备的操控体验提高一个层面,可以说是一举两得。用户容易接

受,而且美观大方。整个音乐盒看起来相当美观新颖,故还可作为室内装饰用。 二、项目设计论证 项目名称:基于51单片机的蓝牙音乐盒 1、项目意义、国内外研究概况、水平及发展趋势 现如今随着科技的发展,人们生活水平的提高,越来越多的人们将注意力转移到了丰富自己的精神生活上。因而现在市场上出现了一些多媒体电子设备,例如MP3、MP4以及平板电脑等等。但是我们发现,这些多媒体设备大都在设备上面仅仅设计了物理按键而没有给出无线控制的解决方案,因此本小组想到了将现有的成熟无线通信技术——蓝牙技术作为我们的多媒体电子音乐盒的控制技术。它打破了传统的以物理按键控制多媒体设备的框架,转而使用现如今迅猛发展并且普及率极高的蓝牙无线通信技术,这样做既可以利用蓝牙将我们的传统多媒体设备上面的物理按键解放,又可以将消费者对于多媒体电子设备的操控体验提高一个层面,可以说是一举两得。用户容易接受,而且美观大方。整个音乐盒看起来相当美观新颖,故还可作为室内装饰用。 国外已经有非常多的“创客”在科技小制作上面取得了非常多的成果,比如高仿真机器人、四轴飞行器等等。但是国内的科创发展之

单片机控制蜂鸣器概要

单片机控制蜂鸣器20年月日

目录 绪论 (1) 1、硬件设计 (2) 1.1 总体设计图 (2) 1.2 简易结构框图 (2) 1.3各部分硬件设计及功能 (3) 1.3.1 蜂鸣器发声电路:(如图1.3.1) (3) 1.3.2 电源稳压电路: (4) 1.4 元件清单 (4) 2、软件设计 (5) 2.1设计思想 (5) 2.2 程序流程图 (5) 2.3 音调、节拍以及编码的确定方法 (6) 2.3.1音调的确定 (6) 2.3.2 节拍的确定 (8) 2.3.3 编码 (9) 3、电路仿真与分析 (10) 4、电路板焊接、调试 (11) 4.1 焊接 (11) 4.2 调试 (12) 5、讨论及进一步研究建议 (12) 6、心得 (12) 7、单片机音乐播放器程序实例(卡农) (13)

绪论 蜂鸣器播放音乐电路设计对于单片机初学者来说是一个简单易实现的课题。通过编写程序使单片机产生一定频率的方波信号,方波信号进入蜂鸣器便产生我们熟知的音调。 我们用定时/计数器使单片机产生方波,利用定时/计数器使输出管脚在一定周期内反复翻转,达到所需频率,而我们给定时/计数器的初始值就是我们的音符—半周期数据表,通过我们播放的音乐的乐谱,来对数据表进行调用。 我们用延时子程序来表示节拍,不同的节拍代表不同的延时。 完成此次设计之后完全可以进行扩展,例如增加按键以及LED灯光效果,制成一个简易的音乐盒,给人以视觉听觉等全方位的享受。

1、硬件设计1.1 总体设计图 1.2 简易结构框图

1.3各部分硬件设计及功能 1.3.1 蜂鸣器发声电路:(如图1.3.1) 图1.3.1 如图所示,蜂鸣器发声电路是播放音乐电路的主要执行电路,它由一个蜂鸣器,一个三极管和一个电位器组成。蜂鸣器负责发声,三极管将电流放大,而电位器则控制流过蜂鸣器电流的大小,来达到控制音量的目的。

51单片机音乐播放器程序

#include //包含51单片机寄存器定义的头文件 sbit sound=P3^6; //将sound位定义为P3.6 unsigned int C; //储存定时器的定时常数 //以下是C调低音的音频宏定义 #define l_dao 262 //将"l_dao"宏定义为低音"1"的频率262Hz #define l_re 286 //将"l_re"宏定义为低音"2"的频率286Hz #define l_mi 311 //将"l_mi"宏定义为低音"3"的频率311Hz #define l_fa 349 //将"l_fa"宏定义为低音"4"的频率349Hz #define l_sao 392 //将"l_sao"宏定义为低音"5"的频率392Hz #define l_la 440 //将"l_a"宏定义为低音"6"的频率440Hz #define l_xi 494 //将"l_xi"宏定义为低音"7"的频率494Hz //以下是C调中音的音频宏定义 #define dao 523 //将"dao"宏定义为中音"1"的频率523Hz #define re 587 //将"re"宏定义为中音"2"的频率587Hz #define mi 659 //将"mi"宏定义为中音"3"的频率659Hz #define fa 698 //将"fa"宏定义为中音"4"的频率698Hz #define sao 784 //将"sao"宏定义为中音"5"的频率784Hz #define la 880 //将"la"宏定义为中音"6"的频率880Hz #define xi 987 //将"xi"宏定义为中音"7"的频率523H //以下是C调高音的音频宏定义 #define h_dao 1046 //将"h_dao"宏定义为高音"1"的频率1046Hz #define h_re 1174 //将"h_re"宏定义为高音"2"的频率1174Hz #define h_mi 1318 //将"h_mi"宏定义为高音"3"的频率1318Hz #define h_fa 1396 //将"h_fa"宏定义为高音"4"的频率1396Hz #define h_sao 1567 //将"h_sao"宏定义为高音"5"的频率1567Hz #define h_la 1760 //将"h_la"宏定义为高音"6"的频率1760Hz #define h_xi 1975 //将"h_xi"宏定义为高音"7"的频率1975Hz /******************************************* 函数功能:1个延时单位,延时300ms ******************************************/ void delay() { unsigned char i,j; for(i=0;i<300;i++) for(j=0;j<300;j++) ; } /******************************************* 函数功能:主函数 ******************************************/ void main(void) { unsigned char i,j; //以下是《知足》的一段简谱

基于51单片机的音乐盒的设计毕业论文

基于51单片机的音乐盒的 设计毕业论文 目次 目次 (3) 1 引言 (4) 1.1 音乐盒的意义 (4) 1.2 研究容 (5) 2.1系统总体框架图 (6) 2.2音乐盒的设计原理 (6) 2.3 单片机芯片概述 (7) 3 硬件电路设计 (8) 3.1 单片机最小系统原理图 (8) 3.1.1 复位电路 (8) 3.1.2 晶振电路 (9) 3.1.3时钟电路 (9) 3.2 LCD显示模块 (9) 3.3 继电器模块 (11) 3.3.1电磁继电器的工作原理和特性 (12)

3.3.2 固态继电器的工作原理和特性 (12) 3.3.3 继电器主要产品技术参数 (12) 3.4 按键模块 (13) 3.5 其它 (13) 4 软件设计 (14) 4.1 软件总体流程图 (14) 4.2播放/暂停子程序 (15) 4.3 LCD显示模块软件设计 (17) 4.3.1 LCD的初始化函数 (17) 4.3.2 LCD与继电器的函数 (18) 5 系统实现 (19) 5.1 硬件调试 (20) 5.1.1 按键控制的实现 (20) 5.1.2 LCD显示 (21) 5.1.3 其他 (21) 总结 (22) 致谢 (23) 参考文献 (24) 附录A 元器件清单 (25) 附录B 源程序 (26)

1 引言 在进入21世纪后,单片机产品的发展正朝着高性能和多品种方向,并且发展趋势是进一步朝着CMOS化、小体积、低功耗、大容量、高性能、低价格以及外围的电路装化等几个方面去发展。单片机的应用的重要意义还是在于它是从根本上改变了传统的控制系统设计思想和设计方法。过去必须要由模拟电路或者数字电路才可以实现的大部分的功能,现在已能完全可以用单片机通过软件的方法来实现了。这种由软件去代替硬件的控制技术也称之为微控制技术,这是传统控制技术的一次革命。单片机可以说渗透到了我们生活的各个方面,几乎难以找到哪个领域里没有单片机的踪迹。导弹中的导航装置,飞机里安装的各种仪表的控制,计算机里的网络通讯与数据传输方面,工业自动化过程中实时控制和数据处理方面,生活中被广泛使用的各种智能IC卡,民用的高档轿车的安全保障系统,摄像机、录像机、全自动洗衣机所涉及的控制方面,以及远程控制的玩具、电子宠物等等,这些全都是离不开单片机的。 而伴随着科学技术的不断进步和社会的持续发展,人类所接触的更种信息也在不断增加并且信息变得越来越复杂。面对着浩如烟海的繁杂信息,人们目前已经能利用计算机等工具快速、精准地对其进行快速处理,但要想将其处理完毕的信息及时、清晰地传递给其他人,还必须要寻找更加卓越的显示技术去实现它。而单片机技术与液晶显示技术的结合,恰恰使得信息的传输交流向着智能化可视化方向进行快速发展。

相关主题
文本预览
相关文档 最新文档