你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

老板,来一首一块钱的天空之城!

[复制链接]
木木&点点 发布时间:2019-12-24 23:18
天空之城的歌曲勾起我们不少人的童年回忆,听着这首歌有种冲动让我想用STM8做一首天空之城的主题曲出来,也好让我更好学习STM8和声音与频率的关系,真是一举两得啊!
1.png
最近我用覆铜板制作了一片STM8S003F3P6开发板, 这颗芯片不错才1块多,可以支持在线仿真,资源也比51好的多,而且非常人性化。先上图!
2.png
覆铜板如何制作PCB板,我就不展开描述了。都是用一些稀释剂,显影剂,脱模剂等等来弄的,其实网上说多少比多少分量,我个人不太在意,身为中国人就不会太在意这个,平时我们做菜下调味料也是看分量调,那些化学剂也是一样,反正增大浓度就提高正反应速率罢了,这是我是在高中学到的。

下面是原理图和PCB,实物做出来也不是太好,不过可以工作就可以了。
3.png

下面就是我这次小玩意的主角,无源蜂鸣器,一定要选择无源的哦,因为我们是靠控制PWM来唱歌的。 蜂鸣器电路很简单加一个三极管就可以了,因为用于测试,电路很简陋,谈不上很好,当然可以加上二极管等更加稳定可靠。

4.png
5.png
电路板和PCB  --“肉体”都有了,那下面开始加入灵魂 --“代码”。我用的平台就是IAR for STM8,工程的大体就是这样
6.png
要使用PWM当然要开启定时器的某个通道给它输出信号,那我使用的就是高级定时器1的channel1通道作为输出。这个道理对于我们来说那太简单了,不就是配置一下寄存器就好了吗,不过最大的问题就是我是音乐白痴啊,乐谱怎么看啊? 后来网上查了一些质料总算是把乐谱的基础知识搞明白。现在我会看简谱,5线谱还是不懂,那也不深究了。

我建议大家可以看简谱,大多就几种例如用do 就是1  但是又可以分为高音 中音 低音,分别是更具音符上面有没有一个点来确定。音符如果没有下很横行你可以定义为8拍,如果下面有一行少半拍就是4拍,两横就如此类推。不明白节拍,可以理解为多少拍就是把这个音符延时多少个时间段。

要使用音符当然要有相应的音符频率进行定义了,这些就是频率值了
7.png
剩下就是如何写歌了, 这些都是我根据简谱一个个写的,感觉太累了
每一个音符包括三个byte的数据,
第一个数据就是代表数据是高音 中音 低音
第二个数据就是代表是什么音符
第三个当然就是节拍了,它决定了我们要把音符延时多少时间,这个你自己定,有人喜欢快节奏,有人喜欢慢节奏。
8.png
歌曲和音符都有了,那下面我们就要配置一下TIM1的PWM输出了,这里我设置预分配输出50KHZ,为什么呢,因为如果设置比较小的话,输出信号不好,所以我建议可以设置比较大的输出,STM8最高16MHZ,一定满足你的要求,一般音符都是HZ级别
9.png
下面就是要对音符进行转化了,就是切换音符了, 函数包括音符和对应的节拍

10.png
程序是配置好了,但是老是不运作,查了几天都不知道为何,最终总算是配置出来了,原来啊,STM8还是有相应的option byte配置才能复用引脚,不像STM32那样配置好就跑。

11.png
AFR0可以设置为复用功能,才可以唱歌哦
12.png
最后就是把电路用杜邦线链接起来了!这样美妙的音乐就可以唱起来了,有兴趣也试试。

13.png

收藏 评论0 发布时间:2019-12-24 23:18

举报

0个回答

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版