设为首页
收藏本站
开启辅助访问
登录
立即注册
只需一步,快速开始
会员
首页
BBS
文章
Portal
教程
最新
供电设计
联系我
直达
搜索
搜索
图文教程
磁力开关
馈电开关
采煤机
华宁集控
高爆开关
掘进机
视频教程
初入煤电
组合开关
移变低馈
资料下载
书籍
标规
资料
说明书
社区分类
煤电入门
煤电维修
维修电工
电气软件
电子技术
工控自动
本版
文章
帖子
百技网
»
首页
›
电子技术
›
单片机
›
单片机音乐程序的设计与实验
返回列表
发新帖
单片机音乐程序的设计与实验
[复制链接]
1507
|
0
|
2011-9-7 23:03:52
|
显示全部楼层
|
阅读模式
<
单片机
音乐程序的设计与实验
周振安
利用单片机(或单板机)奏乐大概是无线电爱好者感兴趣的问题之一。本文从单片机的基本发间实验出发,谈谈音乐程序的设计原理,并给出具体实例,以供参考。
单片机的基本发音实验
我们知道,声音的频谱范围约在几十到几千赫兹,若能利用程序来控制单处机某个口线的“高”电平或低电平,则在该口线上就能产生一定频率的矩形波,接上喇叭就能发出一定频率的声音,若再利用延时程序控制“高”“低”电平的持续时间,就能改变输出频率,从而改变音调。
例如,要产生200HZ的音频信号,按图1接入喇叭(若属临时实验,也可将喇叭直接接在P1口线上),实验程序为:
其中子程序DEL为延时子程序,当R3为1时,延时时间约为20us,R3中存放延时常数,对200HZ音频,其周期为1/200秒,即5ms。这样,当P1.4的高电平或低电平的持续时间为2.5ms,即R3的时间常数取2500/20=125(7DH)时,就能发出200HZ的音调。将上述程序键入学习机,并不断修改R3的常数可以感到音调的变化。
乐曲中,每一音符对应着确定的频率,表1给出C调时各音符频率及其相应的时间常数。
读者可以根据表1所提供的常数,将其16进制代码送入R3,反复练习体会。根据表1可以奏出音符。仅这还不够,要准确奏出一首曲子,必须准确地控制乐曲节奏,即一音符的持续时间。
音符的节拍我们可以用定时器T0来控制,送入不同的初值,就可以产生不同的定时时间。便如某歌曲的节奏为每分钟94拍,即一拍为0.64秒。其它节拍与时间的对应关系见表2。
但时,由于T0的最大定时时间只能为131毫秒,因此不可能直接用改变T0的时间初值来实现不同节拍。我们可以用T0来产生10毫秒的时间基准,然后设置一个中断计数器,通过判别中断计数器的值来控制节拍时间的长短。表2中也给出了各种节拍所对应的时间常数。例如对1/4拍音符,定时时间为0.16秒,相应的时间常数为16(即10H);对3拍音符,定时时间为1.92秒,相应时间长数为192(即C0H)。
我们将每一音符的时间常数和其相应的节拍常数作为一组,按顺序将乐曲中的所有常数排列成一个表,然后由查表程序依次取出,产生音符并控制节奏,就可以实现演奏效果。
此外,结束符和体止符可以分别用代码00H和FFH来表示,若查表结果为00H,则表示曲子终了;若查表结果为FFH,则产生相应的停顿效果。
为了产生手弹的节奏感,在某些音符(例如两个相同音符)音插入一个时间单位的频率略有不同的音符。
程序框图如图2所示。
下面给出程序序请单,可直接在TD-III型学习机上演奏,对其它不同型号的学习机,只需相应地改变一下地址即可。本程序演奏的是民歌“八月桂花遍地开”,C调,节奏为94拍/分。读者也可以自行找出一首歌,按表1和表2给定的常数,将乐曲翻译成码表输入机器,而程序不变。本实验方法简便,即使不懂音乐的人,将一首陌生的曲子翻译成代码也是易事,和着机器的演奏学唱一首歌曲,其趣味无穷。
程序清单(略,请参看源程序的说明)。
《无线电》1992年第3期。
下载两个音乐文件的源代码和HEX代码。
硬件连接说明:
随便找一个仿真机或者什么单片机实验板,只要能工作的就行,将程序输入,运行,然后找个音箱(你计算机旁边应当就有一对吧)拨出插头,插头的前端接在P1。0上,后面部分找根线接单片机的地,就应当有声了,然后怎么改进硬件连接就是你的事了。。。。
单片机
,
音乐
,
电平
热帖推荐
实现安全生产从四方面入手
防治煤矿瓦斯要 “先抽后采”
普采工作面顶板事故的防治
浅谈“安全、安宁”词义与煤矿安全管理
贯彻安全第一的方针 搞好煤矿安全生产
矿井电气事故形式及防范措施
煤矿应走一条什么样的安全路?
关于预防煤矿生产安全事故的特别规定
谈煤矿安全教育
制度是矿井安全生产的保障
煤矿安全执法工作探讨
实施“三步走”战略 推动煤炭工业安全健康发
相关帖子
•
不用按钮的音乐门铃
•
单片机数据采集模块
•
什么是电平?
•
基于GSM和PIC单片机的无人清洁护理机的设计
•
基于ATmega16单片机的实时温度采集与分析系统
•
啥是单片机
•
单片机的调光控制器设计
•
单片机控制的可控硅全波半控桥触发电路
•
关于单片机控制的电线探测仪的一些问题
•
徐州科达400馈电开关,送电显示单片机连接失败,有知道怎么回事吗?
回复
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
wujin
回复楼主
返回列表
电子基础
电子制作
单片机
器件应用
图文推荐
如何升级VIP用户组
2018-01-13
软启动器的工作过程
2018-12-26
矿用防爆软启开关教程——13、软启开关近控启动过程
2020-02-15
天津华宁KTC101主控器的内部结构
2021-05-14
新型80、120开关防爆磁力启动器原理讲解_水位自动控制
2020-03-30
热门排行
1
KJZ1-200(400)馈电开关原理分析
2
煤矿电工教程:10、风机开关过流、短路、断相保护工作原理
3
这个电气元件符号你认识吗?
4
馈电开关漏电闭锁故障维修_成伟维修笔记1
5
馈电开关漏电试验不跳闸故障维修_成伟维修笔记4
6
煤矿风机开关教程:11、过、欠压保护相关参数的设置
7
馈电开关漏电闭锁故障的维修_成伟维修笔记7
8
煤矿高压防爆开关漏电保护的研究
9
天津华宁KTC101主控器的内部结构
10
高防开关短路跳闸故障的维修_成伟维修笔记8