单片机做21个音阶的电子琴

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-07-17
求一首单片机电子琴的音阶表以及对应节拍表

#define pres F_CPU/2 //调整声调,除数大,声调尖锐


prog_uint16_t tm_tone[]={0,pres/523,pres/587,pres/659,pres/698,pres/784,pres/880,pres/988};


直接理解pres吧。你不应该使用绝对值。

每个音阶是一个子程序,按键是调用子程序

//  8键电子琴C程序 自己扩展一下就可以了。
#include <AT89X51.H>
sbit SPEAKER = P3^7;
#define KEY P1
unsigned char MUSIC;
unsigned char STH0;
unsigned char STL0;
unsigned int code tab[]={
64021,64103,64260,64400,//低音3开始
64524,64580,64684,64777,
64820,64898,64968,65030,
65058,65110,65157,65178
};
void main(void){
TMOD=0x01;
ET0=1;
EA=1;
KEY = 0xff;
while(1){
if(KEY != 0xff){
switch (~KEY){//显示的列位置
case 0x01://
MUSIC = 7;
break;//
case 0x02://
MUSIC = 6;
break;//
case 0x04://
MUSIC = 5;
break;//
case 0x08://
MUSIC = 4;
break;//
case 0x10://
MUSIC = 3;
break;//
case 0x20://
MUSIC = 2;
break;//
case 0x40://
MUSIC = 1;
break;//
case 0x80://
MUSIC = 0;
break;//
}
STH0=tab[MUSIC]/256;
STL0=tab[MUSIC]%256;
TR0=1;
}else{
SPEAKER = 1;
TR0=0;
}
}
}
void t0(void) interrupt 1 using 0{
TH0=STH0;
TL0=STL0;
SPEAKER=~SPEAKER;
}

  • 单片机电子琴编程中各个音的频率的确定
    答:是这样的,2个相差8度的音的频率相差一倍,中间的12个半音阶也是等比例变化的,所以你需要解一个方程,X^12=2X,得X=1.06504,X就是相邻2个半音阶之间的比例系数。如果你知道任何一个音的频率C后,不断除以X就得到比它低的半音的频率,不断乘以X就得到比它高的半音的频率。记住3,4之间是1个...
  • 单片机电子琴的工作原理
    答:单片机电子琴说白了就是利用单片机产生不同频率的电压波形,推动扬声器或蜂鸣器来发出不同音调的声音。假设电子琴有八个音阶,就对应8个不同的频率,频率越高音调就越高。单片机很容易输出方波信号,那么只要让它产生不同频率的方波就可以了,然后用这个方波信号驱动扬声器就可以了。单片机的按键可以模拟琴键...
  • 用单片机做了一个电子琴 怎么控制音调升八度?
    答:调整输出的频率 以上音阶频率表引用于“万事屋king桑 ”网友在百度知道中 各个音阶的对应频率的回答
  • 利用单片机的控制程序结合数码管,设计一台数字式可存储电子琴。跪求各...
    答:虽然不太难,但编程、硬件搭建也得用不少时间和资源,对此你能付出多少?
  • 用89C51单片机设计开发简易电子琴,能7个音,并存一首歌就好,要简单点的...
    答:,唱完从头再来 k=sszymmh[i]+7*sszymmh[i+1]-1;timer0h=FREQH[k];timer0l=FREQL[k];time=sszymmh[i+2];i=i+3;song();} } } 自己改改吧。。你说的不太清。。是不是还要用到键盘作为电子琴按键。。。提问也有技巧的。。下次说清要求 所要结果 需要语言。。。
  • 谁有用8255和8254制作电子琴的程序代码
    答:有图,Q我 1352282 设计任务及要求 1. 以8255接八个开关K1~K8,做电子琴按键输入。2. 以8253控制扬声器,拨动不同的开关,发出相应的音阶。要求: K1—静音 K2—发si的音493Hz K3—发la的音440Hz K4—发sol的音392Hz K5—发fa的音349Hz K6—发mi的音329Hz K7—发re的音293Hz K8—发do...
  • 50分急求AT89C52单片机电子琴汇编程序!!要求发出16个音!
    答:50分急求AT89C52单片机电子琴汇编程序!!要求发出16个音! 50 我们这次的设计用的是AT89C52芯片,矩阵键盘端口对应P2.0--P2.7,音频输出对应P2.4端口复用.经本人测试成功后立即给分,附带程序分析的话追加50分!!望大虾们出手相救啊!!!... 我们这次的设计用的是AT89C52芯片,矩阵键盘端口对应P2.0--P2.7,音频输出对应...
  • 电子琴原理图?怎样制作?
    答:它又会翻转一次,还原成起始的稳态。这样,在它的输入端输入两个信号脉冲时,在它的输出端就得到一个信号脉冲。就是说,输出信号频率比输入信号频率低一半,好像用2除过一样,所以叫二分频。 电子琴使用二分频电路是音阶规律的需要。音乐中的基本音阶的频率是按照一定规律排列的,...
  • 51单片机设计的电子琴怎么发出和弦音。。请给出具体电路图啊。。。救 ...
    答:由4X4组成16个按钮矩阵,设计成16个音。可随意弹奏想要表达的和弦音和音乐。
  • 高分求用8051单片机设计8按键电子琴
    答:一、设计题目:设计一简易电子琴,要求能够发出1、2、3、4、5、6、7等七个音符。使用元件:AT89C51、LM324,喇叭,按键等 二、 设计目的 (1)能够对电子电路、电子元器件、印制电路板等方面的知识有进一步的认识,独立对其进行测试与检查。(2)熟悉8051单片机的内部结构和功能,合理使用其内部寄存器...