教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 互联网资料 >

基于AT系列单片机的音乐彩灯控制器(4)

来源:网络收集 时间:2026-08-27
导读: 10 命令。这类器件就称为“存贮器”。此外,还需要有能代替人作用的控制器,它能根据事先给定的命令发出各种控制信号,使整个计算过程能一步步地进行。但是光有这三部分还不够,原始的数据与命令要输入,计算的结果

10

命令。这类器件就称为“存贮器”。此外,还需要有能代替人作用的控制器,它能根据事先给定的命令发出各种控制信号,使整个计算过程能一步步地进行。但是光有这三部分还不够,原始的数据与命令要输入,计算的结果要输出,都需要按先后顺序进行,有时还需等待。如上例中,当在计算163×156时,数字36就不能同时进入运算器。因此就需要在单片机上设置按控制器的命令进行动作的“门”,当运算器需要时,就让新数据进入。

或者,当运算器得到最后结果时,再将此结果输出,而中间结果不能随便“溜出”单片机。这种对输入、输出数据进行一定管理的“门”电路在单片机中称为“口”(Port) 3.3.2程序设计

利用单片机(或单板机)奏乐大概是无线电爱好者感兴趣的问题之一。本文从单片机的基本发间实验出发,谈谈音乐程序的设计原理,并给出具体实例,以供参考。

我们知道,声音的频谱范围约在几十到几千赫兹,若能利用程序来控制单处机某个口线的“高”电平或低电平,则在该口线上就能产生一定频率的矩形波,接上喇叭就能发出一定频率的声音,若再利用延时程序控制“高”“低”电平的持续时间,就能改变输出频率,从而改变调。

例如,要产生200HZ的音频信号,按图1接入喇叭(若属临时实验,也可将喇叭直接接在P1口线上),实验程序为:其中子程序DEL为延时子程序,当R3为1时,延时时间约为20us,R3中存放延时常数,对200HZ音频,其周期为1/200秒,即5ms。这样,当P1.4的高电平或低电平的持续时间为2.5ms,即R3的时间常数取2500/20=125(7DH)时,就能发出200HZ的音调。将上述程序键入学习机,并持续修改R3的常数能感到音调的变化。乐曲中,每一音符对应着确定的频率,给出C调时各音符频率及其对应的时间常数。读者能根据所供给的常数,将其16进制代码送入R3,反复练习体会。根据表1能奏出音符。仅这还不够,要准确奏出一首曲子,必须准确地控制乐曲节奏,即一音符的持续时间。音符的节拍我们能用定时器T0来控制,送入不一样的初值,就能产生不一样的定时时间。便如某歌曲的节奏为每分钟94拍,即一拍为0.64秒。但时,由于T0的最大定时时间只能为131毫秒,因此不可能直接用改变T0的时间初值来实

11

现不一样节拍。我们能用T0来产生10毫秒的时间基准,然后设置一个中断计数器,通过判别中断计数器的值来控制节拍时间的长短。中也给出了各种节拍所对应的时间常数。例如对1/4拍音符,定时时间为0.16秒,对应的时间常数为

16(即10H);对3拍音符,定时时间为1.92秒,对应时间长数为192(即C0H)。

我们将每一音符的时间常数和其对应的节拍常数作为一组,按次序将乐曲中的所有常数排列成一个表,然后由查表程序依次取出,产生音符并控制节奏,就能实现演奏效果。此外,结束符和体止符能分别用代码00H和FFH来表示,若查表结果为00H,则表示曲子终了;若查表结果为FFH,则产生对应的停顿效果。为了产生手弹的节奏感,在某些音符(例如两个相同音符)音插入一个时间单位的频率略有不一样的音符。

下面给出程序序清单,可直接在TD-III型学习机上演奏,对其它不一样型号的学习机,只需对应地改变一下地址即可。本程序演奏的是民歌“八月桂花遍地开”,C调,节奏为94拍/分。读者也能自行找出一首歌,给定的常数,将乐曲翻译成码表输入机器,而程序不变。本实验办法简便,即使不懂音乐的人,将一首陌生的曲子翻译成代码也是易事,和着机器的演奏学唱一首歌曲,其趣味无穷。

12

3.3.3程序设计框图

程序开始 单片机开始初始化工作 LED显示 前面8盏彩灯亮,后面8盏彩灯点亮 LED显示 从端两到中间,再由中 间到两端亮 16只LED显示加载音乐程序喇叭发声

图3-5 程序设计框图

程序详细清单见附录1

13

4 系统调试

在完成编写程序的编译和仿真之后,准备一台可以写AT89C52的编程器并于电脑主机硬件连接后即可对AT89C52芯片进行程序下载。然后,将写好程序的AT89C52单片机装入40脚IC座上,通电后即可调试和运行,由于电路对元件参数的要求不是很高,只要元件良好,参数基本都符合要求,焊接装配后即可正常工作。观察系统运行状态。 4.1硬件调试

对整个系统的硬件进行的检测。其检测的主要方向是电源是否供电、单片

机是否输出,电路中元器件的好坏、元器件是否有虚焊、电路的连接是否正确、数码管是否正常显示等。在设计完成以后,如果产品出现问题我们可以按照以下步骤进行检测。

第一步,检测电源。

方法:看电源指示灯是否点亮。亮,证明电源有供电。然后再用万用表检测电源电路的输出电压是否符合要求。

第二步,检测控制电路。

方法:我们可以用发光二极管来检测单片机有电平变化的脚,看单片机是否工作。

第三步,检测各部分电路的连接是否正确。

方法:首先使用观察法对整个电路进行仔细观察,然后对各部分电路工作情况进行检查,看是否有不工作的地方,最后对各部分电路连接接口进行检查。

第四步,检测元器件的好坏。

方法:主要用万用表对元器件进行检测。

第五步,检测刷新的频率。刷新频率范围从60Hz到600Hz,亮度适中的刷新频率。

方法:主要用示波器测试晶振电路的波形。

第六步,整个硬件电路的调试、检测。

方法:首先观察整个系统硬件是否完整;调试主要使用万用表、示波器、电烙铁、发光二极管等工具和电子仪器对电路进行检测。

14

4.2软件调试

图4-1 程序调试

在软件调试过程中主要是对单片机程序进行调试,先在Ptoteus建立原理图,通过硬件调试过后,进行软件调试。在Ptoteus建立原理图,将程序通过WAVE6000软件进行编译、仿真结果显示没有错误确认可以实现以上功能。如果无误,将程序载入单片机运行,看是否能使整个电路正常工作,是否能达到要求的功能。通过WAVE6000软件对音乐彩灯控制指令的成功仿真,说明该程序能够满足系统要求,实现其功能。如图4-1所示。

…… 此处隐藏:777字,全部文档内容请下载后查看。喜欢就下载吧 ……
基于AT系列单片机的音乐彩灯控制器(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/444205.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)