基于AT系列单片机的音乐彩灯控制器(4)
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字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [互联网资料]2022年厦门大学机电工程系824机械设计
- [互联网资料]东南大学2022年硕士研究生拟录取名单公
- [互联网资料]能源调研报告(精选多篇)
- [互联网资料]初三英语下学期 中考英语 语法填空训练
- [互联网资料]2022内蒙古选调生行测常识备考:新事物
- [互联网资料]自驾必备!在新西兰租什么样的车自驾游
- [互联网资料]佛教素食菜谱44页未完
- [互联网资料]盈利能力分析外文翻译
- [互联网资料]2022年南昌航空大学音乐学院736马克思
- [互联网资料]优选外贸跟单实习报告总结(精品版)
- [互联网资料]银行新员工培训总结
- [互联网资料]2_year_visa_new_guidance_190316
- [互联网资料]天津市五校宝坻一中静海一中杨村一中芦
- [互联网资料]2007--2008学年第一学期高三数学宁波市
- [互联网资料]Chromatic framework for vision in ba
- [互联网资料]幼儿园大班上学期美术教案《心愿树》含
- [互联网资料]2022年华中农业大学信息学院820微型计
- [互联网资料]硬盘坏道的表现 __硬盘使用久了
- [互联网资料]江苏省2016年会计从业资格考试《会计基
- [互联网资料]公共场所卫生监督试卷全解
- 高级英语第一册所有修辞方法及例子总结
- 综合交通枢纽规划与城市发展
- 沃尔玛的企业文化案例分析
- 美国Thanksgiving Day 感恩节 介绍
- PEP六年级英语上册Unit6How do you fee
- 最齐全的中国大型商场购物中心名单
- 数据结构实验报告八—哈夫曼编译码
- 杭州市余杭区人民政府(通知)
- 七年级语文成语运用专项训练
- 微观经济学第三章 消费者行为 课后习题
- 对_钱学森之问_的思考
- Excel_三级联动_下拉菜单
- 办公用品需求计划申请表
- 对外汉语教材必须要知道的发展史
- 挑战杯大学生学术科技作品竞赛作品申报
- 举办民办教育培训机构应具备下列条件
- 太阳能路灯项目设计方案
- 2013年八年级上最新人教版新教材Unit3I
- 【历史】 6-4 《近代科学之父牛顿》 课
- 高中生物《第四章 第二节 探讨加酶洗衣




