51music单片机音乐代码生成器怎么用?

作者&投稿:宰肃 (若有异议请与网页底部的电邮联系)
单片机用哪种编程语言好~

单片机编程的语言既可以用C,也可以用汇编。
用汇编的优势主要是程序可以被编程者优化,而不是由编译器优化,这样就可以绝对可控,程序的安全性和执行速度受编程者水平限制,不过总的执行速度较C语言快,代码占程序存储器的容量较C语言小。这样,汇编程序更适合程序存储器和数据存储器较小的老式单片机。但是,汇编程序毕竟是机器语言的汇编助记符,所以存在指令难记,指令功能弱的缺点,造成学习困难。
C语言的优势与缺点正好与汇编相反。C语言毕竟是一种高级语言,具有较好的学习性,几乎不必记忆指令,学习容易,而且编译时的优化由编译器管理,一般不受编程者水平限制。由于机器优化的局限性,C语言总的执行速度较汇编语言慢,代码占程序存储器的容量较汇编语言大。这样,C程序更适合程序存储器和数据存储器较大的新式单片机。
建议初学者先使用C语言快速入门,然后再研究汇编语言,优化程序设计。

*
; 蜂鸣器唱《祝你平安》 *
; *
;********************************************************************************/
SPK bit P2.3 ORG 0000H
LJMP START
ORG 000BH
INC 20H ;中断服务,中断计数器加1
MOV TH0,#0D8H
MOV TL0,#0EFH ;12M晶振,形成10毫秒中断
RETISTART:
MOV SP,#50H
MOV TH0,#0D8H
MOV TL0,#0EFH
MOV TMOD,#01H
MOV IE,#82H
MUSIC0:
NOP
MOV DPTR,#DAT ;表头地址送DPTR
MOV 20H,#00H ;中断计数器清0
MOV B,#00H ;表序号清0
MUSIC1:
NOP
CLR A
MOVC A,@A+DPTR ;查表取代码
JZ END0 ;是00H,则结束
CJNE A,#0FFH,MUSIC5
LJMP MUSIC3
MUSIC5:
NOP
MOV R6,A
INC DPTR
MOV A,B
MOVC A,@A+DPTR ;取节拍代码送R7
MOV R7,A
SETB TR0 ;启动计数
MUSIC2:
NOP
CPL SPK
MOV A,R6
MOV R3,A
LCALL DEL
MOV A,R7
CJNE A,20H,MUSIC2 ;中断计数器(20H)=R7否?
;不等,则继续循环
MOV 20H,#00H ;等于,则取下一代码
INC DPTR
; INC B
LJMP MUSIC1
MUSIC3:
NOP
CLR TR0 ;休止100毫秒
MOV R2,#0DH
MUSIC4:
NOP
MOV R3,#0FFH
LCALL DEL
DJNZ R2,MUSIC4
INC DPTR
LJMP MUSIC1
END0:
NOP
MOV R2,#64H ;歌曲结束,延时1秒后继续
MUSIC6:
MOV R3,#00H
LCALL DEL
DJNZ R2,MUSIC6
LJMP MUSIC0
DEL:
NOP
DEL3:
MOV R4,#02H
DEL4:
NOP
DJNZ R4,DEL4
NOP
DJNZ R3,DEL3
RET
NOP
DAT:
db 26h,20h,20h,20h,20h,20h,26h,10h,20h,10h,20h,80h,26h,20h,30h,20h
db 30h,20h,39h,10h,30h,10h,30h,80h,26h,20h,20h,20h,20h,20h,1ch,20h
db 20h,80h,2bh,20h,26h,20h,20h,20h,2bh,10h,26h,10h,2bh,80h,26h,20h
db 30h,20h,30h,20h,39h,10h,26h,10h,26h,60h,40h,10h,39h,10h,26h,20h
db 30h,20h,30h,20h,39h,10h,26h,10h,26h,80h,26h,20h,2bh,10h,2bh,10h
db 2bh,20h,30h,10h,39h,10h,26h,10h,2bh,10h,2bh,20h,2bh,40h,40h,20h
db 20h,10h,20h,10h,2bh,10h,26h,30h,30h,80h,18h,20h,18h,20h,26h,20h
db 20h,20h,20h,40h,26h,20h,2bh,20h,30h,20h,30h,20h,1ch,20h,20h,20h
db 20h,80h,1ch,20h,1ch,20h,1ch,20h,30h,20h,30h,60h,39h,10h,30h,10h
db 20h,20h,2bh,10h,26h,10h,2bh,10h,26h,10h,26h,10h,2bh,10h,2bh,80h
db 18h,20h,18h,20h,26h,20h,20h,20h,20h,60h,26h,10h,2bh,20h,30h,20h
db 30h,20h,1ch,20h,20h,20h,20h,80h,26h,20h,30h,10h,30h,10h,30h,20h
db 39h,20h,26h,10h,2bh,10h,2bh,20h,2bh,40h,40h,10h,40h,10h,20h,10h
db 20h,10h,2bh,10h,26h,30h,30h,80h,00H END

试了一下,感觉速度很正常,没有快很多的感觉。

这个软件应该是以12M晶振的51单片机为基础,针对那些以四分之一音符为一拍的音乐而设计的,如果晶振频率过快,或者音乐以二分之一音符为一拍的,那样设计结果都会比预想的快。
如果想让他慢下来有两个方法,一个是修改晶振频率,另一个就是找到程序中void delay(uchar p)函数,修改函数内i,j变量的类型并且修改循环的参数,让这个延时函数的时间变长。

符号的输入要看符号的含义了,这种软件不可能面面俱到的。

需要帮你做设计吗


跪求基于51单片机的汇编语言音乐盒程序
MUSIC1:NOP CLR A MOVC A,@A+DPTR ;查表取代码 JZ END0 ;是00H,则结束 CJNE A,#0FFH,MUSIC5 LJMP MUSIC3 MUSIC5:NOP MOV R6,A INC DPTR MOV A,B MOVC A,@A+DPTR ;取节拍代码送R7 MOV R7,A SETB TR0 ;启动计数 MUSIC2:NOP CPL OUT MOV A,R6 MOV R3,A LCALL DEL MOV A,...

单片机蜂鸣器问题 请大虾举个简单例子来说明如何实现发出不同音调的音乐...
TIMSK |= (1<<OCIE1A); \/\/开启比较匹配中断 SEI(); \/\/开总中断 while(1){ TCCR1B = 0x09; \/\/开启比较匹配 while(music_data[i][1]!=0) \/\/等待最后一个音符到来 { sound(music_data[i][0]); \/\/输出音符 delay_ms(music_data[i][1]);\/\/节拍延时 TCCR1B = 0x00;...

使用51单片机蜂鸣器播放音乐 求keil程序
define uint unsigned int;define uchar unsigned char;uint x,y;uint i,j,k;\/\/以下是根据歌谱转来的音乐代码 3代表中音咪 1个全音被分成4个1\/4 音符 \/\/小燕子第一句 3,5,21,6,5,5,5,5, 21是高音哆 ,后面4个5,是因为这个音节占4拍 uchar code MUSIC[]={3,5,21,6,5,5,5,...

51单片机唱歌怎么实现啊
单片机可以演奏从低音、中音、高音和超高音,四个八度共28个音符。演奏乐曲时,就根据音符的不同数值,从半周期数据表中找到定时时间初始值,送入定时器即可控制发音的音调。比如把表中的0xF2和0x42送到定时器,定时器按照这个初始值来产生中断,输出的方波,人们听起来,这就是低音1。乐曲的数据,也要...

单片机英文翻译
单片机翻译:1、abbr. SCM 2、misc. singlechip 详细释义:一、SCM 释义:1、abbr. 供应链关系管理(Supply Chain Management);2、单片机(Single Chip Micyoco)例句:1、SCM through the design of a control system.通过单片机的设计,构成控制系统。二、singlechip 读音:英 [ˈsɪ&#...

求单片机 音乐播放的c代码
sbit _Speak =P2^3 ; \/\/讯响器控制脚 unsigned char code SONG[] ={ \/\/祝你平安 0x26,0x20,0x20,0x20,0x20,0x20,0x26,0x10,0x20,0x10,0x20,0x80,0x26,0x20,0x30,0x20,0x30,0x20,0x39,0x10,0x30,0x10,0x30,0x80,0x26,0x20,0x20,0x20,0x20,0x20,0x1c,0x20,0...

利用单片机实现简单的两首歌曲的音乐播放器
void exten0() interrupt 0 { count++;if(count==3)count = 1;TR0 = 1;}

单片机电子音响
unsigned char code LengthTab[7]= { 1,2,4,8,16,32,64 };unsigned char Sound_Temp_TH0,Sound_Temp_TL0;unsigned char Sound_Temp_TH1,Sound_Temp_TL1;unsigned char code Music_Girl[];unsigned char code Music_Same[];unsigned char code Music_Two[];void InitialSound(void){ BeepIO ...

毕业设计我想用单片机做一个电子琴,程序最好是c语言编写的,那个好心人...
sbit KEY34 = P0^1;sbit KEY35 = P0^0;sbit KEY36 = P3^3;sbit KEY37 = P3^2;\/***\/ unsigned char MUSIC;unsigned char STH0,STL0;unsigned int code tab[]={ \/\/音阶表 63628,63835,64021,64103,64260,64400,64524, \/\/低音1-7 64580,64684,64777,64820,64898,64968,...

跪求单片机51_C语言音乐程序,音乐是国际歌!谢谢!
\/ 成都理工大学工程技术学院通信工程--漆洋 本程序用于播放音乐,采用定时器1控制时间 从而改变频率实现音节播放 \/ include<AT89X52.H> define uchar unsigned char define uint unsigned int define buz P3_1 code uint ton[][7]= \/\/定音所有音阶 { {0xE600,0xE8D5,0xEB5E,0xEC86,0xEE...

夏县15540885738: 51music单片机音乐代码生成器怎么用? -
召所小儿: 试了一下,感觉速度很正常,没有快很多的感觉.这个软件应该是以12M晶振的51单片机为基础,针对那些以四分之一音符为一拍的音乐而设计的,如果晶振频率过快,或者音乐以二分之一音符为一拍的,那样设计结果都会比预想的快. 如果想让他慢下来有两个方法,一个是修改晶振频率,另一个就是找到程序中void delay(uchar p)函数,修改函数内i,j变量的类型并且修改循环的参数,让这个延时函数的时间变长.符号的输入要看符号的含义了,这种软件不可能面面俱到的.

夏县15540885738: 51music单片机音乐代码生成器中的蜂鸣接口是什么意思?还有1 - --后面的四节拍怎么输入? -
召所小儿: #include sbit speaker=P1^6; //(单片机音乐代码生成器中的蜂鸣接口,就是一个IO脚) unsigned char timer0h,timer0l,time;//生日歌,这三个字节一组,分别定义:旋律(1234567)、高低音(低音、中音、高音)、节奏(长度) code ...

夏县15540885738: 51music 单片机音乐代码生成器 1.0绿色版怎么用? -
召所小儿: 根据简谱点击音符和时长,也就是点一个间符,再点这个音符的时长,完成一个音符的输入,输完全部音符后点生成代码,把代码复制到程序中编译就行

夏县15540885738: 51单片机音乐播放器c程序 -
召所小儿: 先将乐曲做一次AD转换,转成一个数组,然后将数组写进C程序中,烧入单片机,播放的时候在做一次DA转换,将转换后的信号进行功放再通过喇叭就能播放了.

夏县15540885738: 求一个51单片机的音乐发生器的程序 -
召所小儿: (一) 任务二:音乐发生器1、说明:单片机发声原理:利用定时器,可以发出不同频率的脉冲,不同频率的脉冲经喇叭驱动电路放大滤波后,就会发出不同的音调.定时器按设置的定时参数产生中断,这一次中断发出脉冲低电平,下一次反转...

夏县15540885738: 谁能给我几首51单片机流行歌曲 的源代码!
召所小儿: <!--[if !supportLists]-->2. <!--[endif]-->程序代码:(以下代码奏出八月桂花香这首曲子)ORG 0000HLJMP STARTORG 000BHINC 20H ;中断服务,中断计数器加1MOV TH0, #0DBHMOV TL0, #0FFH ;11.0592M晶振,形成10毫秒中断...

夏县15540885738: 单片机音乐播放器课程设计中音乐代码怎么弄 -
召所小儿: 做成两个数组存放数据,一个控制频率,一个控制频率持续时间长短,然后主程序调用数组.

夏县15540885738: 求帮助给一个单片机的音乐播放器的c51语言代码. -
召所小儿: 参考62616964757a686964616fe59b9ee7ad9431333332633032:http://hi.baidu.com/do_sermon/item/8cff22baf5142245bb0e1247 http://hi.baidu.com/do_sermon/item/7665ea126f32075df0090e47 http://hi.baidu.com/do_sermon/item/d6f155da37a70fe93dc2cbc1

夏县15540885738: 单片机电子音乐发生器 -
召所小儿: 这里有程序:http://hi.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/blog/item/88bfff323ec42ef21b4cff09.html电路是很简单的,可见: http://hi.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/blog/item/110ca42d4f5157e68b13991f.html注意,这个图,是另外一个人的问题,和上述程序的输出接口不一样.

夏县15540885738: 求: 用51单片机c语言操作使蜂鸣器奏出“祝你生日快乐”音乐的全部程序! -
召所小儿: #include <reg51.h> sbit speaker=P1^2; unsigned char timer0h,timer0l,time; //生日歌 code unsigned char sszymmh[]={5,1,1, 5,1,1, 6,1,2, 5,1,2, 1,2,2, 7,1,4, 5,1,1, 5,1,1, 6,1,2, 5,1,2, 2,2,2, 1,2,4, 5,1,1, 5,1,1, 5,2,2, 3,2,2, 1,2,2, 7,1,2, 6,1,2, 4,2,1, 4,2,...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网