找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3671|回复: 11
打印 上一主题 下一主题
收起左侧

51单片机制作电子琴,怎么按下一个按键发出do,ruai,mi 求思路

[复制链接]
跳转到指定楼层
楼主
ID:907024 发表于 2022-4-3 14:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用51单片机做个电子琴,怎么按下一个按键发出do,ruai,mi三个音然后按第二个按键发出ruai,mi,fa三个音,用定时器,大神们有没有思路提供一下
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:96682 发表于 2022-4-3 16:29 来自触屏版 | 只看该作者
确定各按键的音调频率就行了,就如 0 键播放桥边姑娘如出一辙
回复

使用道具 举报

板凳
ID:230742 发表于 2022-4-3 17:43 | 只看该作者
先参考51单片机的电子琴程序,然后把里面的发音函数调用三次就可以了,也可以把音连起来就成歌曲了。
回复

使用道具 举报

地板
ID:121859 发表于 2022-4-3 18:16 | 只看该作者
这个简单,按下一个键,将对应该键发音的音频送定时器控制扬声器发声就可以了。
回复

使用道具 举报

5#
ID:161164 发表于 2022-4-3 20:13 | 只看该作者
开两个定时器
一个定时器用作产生1ms心跳
一个用来产生相对频率的方波来驱动无源蜂鸣器
回复

使用道具 举报

6#
ID:907024 发表于 2022-4-4 11:36 | 只看该作者
啤酒瓶子老大 发表于 2022-4-3 17:43
先参考51单片机的电子琴程序,然后把里面的发音函数调用三次就可以了,也可以把音连起来就成歌曲了。

你好!如果我三个音需要隔时间的话,在定时器中用延迟就好了吗?
回复

使用道具 举报

7#
ID:907024 发表于 2022-4-4 15:44 | 只看该作者
wc86110 发表于 2022-4-3 16:29
确定各按键的音调频率就行了,就如 0 键播放桥边姑娘如出一辙

你好!如果我三个音需要隔时间的话,在定时器中用延迟就好了吗?
回复

使用道具 举报

8#
ID:624769 发表于 2022-4-4 19:22 | 只看该作者
qinkang189 发表于 2022-4-4 15:44
你好!如果我三个音需要隔时间的话,在定时器中用延迟就好了吗?

定时器里用延时,还要定时器干什么? 直接延时不香么?
定时器里面计数,  假定 10ms 中断一次  计数达到 100 就是 1秒。
每次进入中断 加一次,然后通过  判断 计数 到多少了,决定接下去做什么,
回复

使用道具 举报

9#
ID:139866 发表于 2022-4-8 13:20 | 只看该作者
限制做这个的因素不是电子方面的知识,而是音乐方面的
回复

使用道具 举报

10#
ID:907024 发表于 2022-4-10 21:17 | 只看该作者
天ノ忆 发表于 2022-4-8 13:20
限制做这个的因素不是电子方面的知识,而是音乐方面的

对!因为我不懂那个音调怎么弄出来的
回复

使用道具 举报

11#
ID:161164 发表于 2022-4-11 13:45 | 只看该作者
qinkang189 发表于 2022-4-10 21:17
对!因为我不懂那个音调怎么弄出来的

音调就是频率
如C 是440Hz
2273us一个反转周期
定时器就是1136us进一次中断把IO口取反
THTL取值如下:
THx = (65536 - 1136)/256;//或(65536 - 1136)>>8;
TLx = (65536 - 1136)%256;//或(65536 - 1136)&0xFF;
回复

使用道具 举报

12#
ID:139866 发表于 2022-4-12 10:35 | 只看该作者
qinkang189 发表于 2022-4-10 21:17
对!因为我不懂那个音调怎么弄出来的

频率什么的百度就能查到,想让他唱个歌,结果连个简谱都看不懂,
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表