DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 221|回复: 0
打印 上一主题 下一主题

用单片机设计微型电子琴

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-22 00:27:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
介绍了用单片机设计微型电子琴的方法。给出了电路、程序框图及程序。
     关键词:单片机,电子琴,程序
 
  单片机因其体积小、功能强、价格低廉而得到广泛应用。本文介绍用AT89C51单片机设计微型电子琴的方法,仅需AT89C51最小系统,扩展一组小键盘(这里以4×4键盘为例,可按需要扩展),再加一片LM386做音频小功放,输出到扬声器。电源可由三节5号电池提供。

1设计原理
  乐音实际上是有固定周期的信号。我们可以用AT89C51的一个定时器(如T1)控制,在P3.4脚上输出方波周期信号,产生乐音。根据不同的按键,调节T1的溢出时间,可输出不同频率的乐音,这样就做出了一台微型电子琴。
  每个乐音的音高(频率)是固定的,表1列出了一个8度以及其上下共16个音的音名、频率及定时器T1初值对照(设晶体频率为6MHz),供参考。





2硬件电路设计
  微型电子琴的电原理图见图1,其中键盘可使用小按键,排成钢琴键盘状(键多时可分为几排),图中还增加了一只按键指示灯(D1)。
3软件设计
  软件由初始化程序、主程序、定时器1中断服务程序、键盘扫描程序和延时程序组成。
   (1)初始化程序如下:  






主程序框图见图2。
   (2)主程序:
 







    CJNE R4,#00H,
PLAYKEY;判断有无键按下  
  CLR TR1   ;无键按下关闭T1  
  SETBP3.2   ;无键按下熄灭指示灯  
  SJMPSTART  ;跳回开始位置
PLAYKEY:CJNE R4,#20H,K0;有键按下由键值给TIMER1L和TIMER1H赋值 



                              


                          
                       
                          
                               





















   (3)定时器1中断服务程序框图见图3。
                                 


                          
                       
                          
                               
  定时器1中断服务程序:




   (4)键盘扫描程序框图如图4所示。




  键盘扫描程序:















4结束语
  本文介绍了用单片机设计微型电子琴的方法,只要依次将本文中各段程序连写,就是完整的16键微型电子琴程序,有兴趣的读者可以设计键数更多的微型电子琴,甚至可以给微型电子琴添加演奏示范曲的功能〔1〕。如果读者有更高的编程技巧,可以通过编程检测并记录按键的时间,做出具有录音功能的微型电子琴。

                          
                       
                          
                               
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-9-27 22:31 , 耗时 0.210148 秒, 19 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

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