初学单片机,基于51单片机的电子琴PCB图可以更简单
前面介绍了我的小目标“单片机电子琴”的设计思路和原理图,今天继续PCB图的制作。
出于对节省时间和费用的考虑,采用“洞洞板”制作比较易行。
由于单片机STC15W408AS为贴片封装,大体积的只有SOP28封装,比较适合。我们在程序没有设计完成之前,没有必要专门制作PCB蚀刻电路板。用洞洞板的话先要解决贴片转直插的问题,用排针来转换。两排插针焊装在洞洞板上,把贴片封装的单片机管脚用细导线连接到插针上,如图所示:
基于51单片机的电子琴PCB图
当然,如果手边有转换小板的话,就不用手工焊接连线了。
下面是3D展示图:
基于51单片机的电子琴PCB立体图
背面连线图(从背面看到的,不是正面看到的):
基于51单片机的电子琴PCB背面图
为了更简单的制作电路,这里把按键省略,双排插针省略,只连接用到的连线。如下图:
基于51单片机的电子琴精简PCB图
不用按键怎么使用呢?可以用金属尖镊子、万用表笔、自制金属头的笔等方法,只要连线到R1就可以。使用的时候用笔尖接触单片机管脚即可。
图中用到的元器件说明:
P2 :电源接口。如果用USB供电,可换成USB插座;如果用杜邦线取电自下载小板,可以换成插针;
S13 :电源开关。
LED1, R4 :电源指示。可以不用。
C2 :电源滤波电容。耐压>6V,例如16V;容量100~470uF。供电良好的情况下也可以省略。
C1 :高频滤波电容。一般采用独石电容,也可用瓷片电容。
Q1 :C8050,9013均可。
LS1 :蜂鸣器。无源型,5v的,直径12mm。
R3 :限流电阻。1~10欧。
R1 :限流电阻。防止对单片机管脚直接接地(在I/O口设置错误的情况下)造成损坏。阻值可改变。
P1 :串口下载程序代码的接口。
R2 :限流电阻。阻值可根据供电电压调整。
U1 :STC15W408AS系列单片机。401、402、404、408均可,建议容量大点的。
最后说下什么是“洞洞板”?看图吧:
采用洞洞板焊接的线路图片
注:图中的绿色元件同上文中的P2(电源接线端子),适合连接电池盒的导线。
以上介绍了单片机电子琴的材料和PCB布局连线图,如果您感兴趣,欢迎在评论里交流讨论,也欢迎关注头条号/春天说,我们将继续单片机的学习之旅。。。
初学单片机,基于51单片机的电子琴程序结构
前面我们用了快一周的时间不断更新制作过程,实物终于打造完成了,到了最后阶段——给单片机编写程序。
这里采用c语言编写单片机程序。在编程之前先来分析一下程序的组成部分:
单片机电子琴设计——程序结构简化图
程序结构:
用一张图片来介绍程序的详细结构:
单片机电子琴设计——程序结构图
单片机头文件:
由于STC15系列单片机相对于传统51单片机多了很多寄存器和功能,因此最好获取一个头文件,然后在主程序main.c里声明一下,就可以了。在官方软件STC-ISP里面找到“头文件”选项,选择正确的系列,点击“保存文件”,保存到主程序文件所在文件夹里。
从官方工具软件里获取单片机头文件截图
定时器初装值对应频率表格:
开始制作了一个表格,后来针对1T单片机重新制定了一个。这里要说明的是:该系列单片机的定时器时钟既可以设置为1T,也可以设置为12T,前面的担心是多余的。
下面是新制作的“定时器时钟1T模式”表格图片,频率做了删减,保留了12个常用音的频率:
单片机电子琴设计——定时器初装值对应频率表截图
初始化函数:
初始化I/O端口。
信号输出端口P2.6设置为强推挽输出;
按键检测端口设置(开机默认)为准双向(弱上拉)。
初始化定时器0。
初始化不用赋值,不开计数,等到按键按下去再打开计数,定时器中断就会不断取反信号输出端口,产生相应频率的音频信号。
定时器0中断函数:
在中断里面只做一件事情,就是对信号输出端口取反,形成方波信号。
按键检测函数:
需要注意的问题:
不使用“等待按键释放”的函数语句。因为按键按下的时候应该发出声音,如果等待按键释放会产生延时,影响效果。按键松开则关闭定时器计数,音频停止。
同时按下两个或者多个按键的处理方法?这一点应该可以解决,此处暂未修改,当多个按键按下时,应该检测到无效键值,不产生声音。
关于按键检测的详细思路内容较多,本处暂且略过,以后再细聊。
主函数:
需要注意的问题:因“按键检测函数”不使用“等待按键释放”的函数语句,所以按键检测是连续循环的,但是不能不断的给定时器赋值,所以需要定义一个变量来记录按键值,当检测到相同的按键时不需要重复赋值给定时器。
以上是程序设计的结构和需要注意的问题。按照上面结构图中的框架,用kile软件新建一个工程,编写c语言程序,然后编译完生成烧写代码hex文件。
单片机下载hex文件:
用STC-ISP软件,通过串口小板把hex文件下载到单片机里面,单片机就可以工作了。当然一般需要反复修改程序,反复下载代码,直到单片机正常工作为止。
下载单片机代码截图
下载代码时,在新版软件里面,硬件选项里除了频率需要设置为12.000(MHz)以外,其它不用设置,用默认值就可以。
结合本周前面的多篇文章,制作一款基于51单片机的简易电子琴应该很简单了。由于头条没有提供下载附件功能,因此无法上传单片机烧写代码文件,当然办法是有的。
今天就聊到这里,如果您感兴趣,可以关注:头条号/春天说,后续文章会提供单片机代码文件,以及下载方法。欢迎在评论区交流,如果喜欢,也可以分享给更多朋友。
相关问答
基于AT89s52 单片机 的8键 电子琴 设计的c语言程序怎么编啊(蜂鸣器)?蜂鸣器出不同音调的声音是由于震动的频率不同,你可以先定义八个不同的函数分别是八个音(通过定时或循环达到)然后将按键分别与对应的音调函数对应,按哪个按键...
32821是什么贴片IC,是什么公司的,真正的型号叫什么?IC种类与用途集成电路的种类集成电路的种类很多,按其功能不同可分为模拟集成电路和数字集成电路两大类。前者用来产生、放大和处理各种模拟电信号;后者则用来...
手机随机播放音乐的原理是什么?单片机发音原理:利用定时器或pwm功能,输出pwm,经一级有源滤波后放大驱动扬声器。单片机演奏音乐基本是单音频率,它不包含相应幅度的谐波频率,也就是说不能...