历史上的今天
返回首页

历史上的今天

今天是:2025年03月05日(星期三)

正在发生

2018年03月05日 | 自动演奏延迟程序电路及配套程序介绍

2018-03-05 来源:eefocus

  我们通过对一个自动演奏延迟程序电路及配套程序的介绍,来讲解“置位”、“清位”等指令和延时程序的编制原理。
  
  一、发声原理
  
  由图可知,如果我们要使B2发出一定频率的声音,只要改变Pl.7的高低电位,并在Pl.7高低电位变换之间延长一段时间即可。改变Pl.7的高低电位可用专门的位操作指令,也叫做布尔操作指令。比如,我们用一条“置位Pl.7”指令,可使Pl.7呈高电位,然后延时一段时间,再执行“清位Pl.7”指令,使Pl.7呈低电位,延时一段时间后再返回去执行“置位”指令。经过上述操作,Pl.7的电位就完成了一个高低变化周期,B2也就完成了一次全振动。如此,循环上述程序,Pl.7就会持续地向B2送出一定频率的方波,B2就会持续地发出一定频率的声音来。

发声原理

  二、延时原理
  
  为了使B2发声的频率稳定,Pl.7呈高电位的时间和呈低电位的时间必须是一个定数,这就要求CPU在完成对Pl.7的“置位”和“清位”之间延迟一定的时间,这期间必须保证不再对Pl.7进行改变电位的操作。CPU可以停止对Pl.7操作,但CPU绝不会停下来,它仍会按一定的节拍在工作,所以,上述延时时间内CPU或者去完成对其它I/O口输入输出的操作,或者就在那里“计数”以实现延时。后者是延时的常用手段。
  
  通常是先向某一个寄存器装入一个常数,然后让CPU完成几个“空操作”,再将寄存器里的数减l并对该寄存器中的数值进行判断,如果寄存器中的数值不为零,则进行一轮空操作后再进行判断;如果寄存器中的数值为零,说明延时时间已到,接着完成延时后的操作。
  
  三、乐声及其程序
  
  乐声是由长短高低不同的音阶构成的。由于音阶高低不同的音调是由振动频率决定的,所以我们只要用程序来确定振动频率、各频率联接的先后次序及各频率持续的时间,就能实现乐声演奏。以《小草》前两句为例,音阶是“6-6-1-7-6,6-6-3-2-3”,而所用到的不重复音阶只有“6、7、l、2、3”等5个。我们分别将能通过B2发出上述5种音高的程序联接起来,就能使电路连续演奏出《小草》这首歌的部分弦律来。
  
  音阶“6”的频率是220Hz,周期约为5.545ms,半周期约2.27ms,这样,我们可编一段2.27ms的延时程序嵌在Pl.7高低电位变化之间,即可使B2发出“6”音。
  
  “6”音的程序见清单中0063H至0075H区间。
  
  由程序可以看出,执行“置位Pl.7、送数R2,#E3”后,又连续执行了三次“空操作”。每次空操作用时2(s,而执行“减1转移Xl”用时4(s,此一个循环用时恰为l0(s。“减1转移”是一条条件转移指令。执行结果是将指定寄存器中的内容减1,然后判断寄存器中的数值,如果寄存器中的数值不为零,即转移到指定位置;如果寄存器中的数值为零,接着执行下面的程序。由于“送数R2,#E3H”装入R2中的数为E3H,即227,所以,当R2中的数为零时,共完成上述循环227次,用时恰好是2.27ms,而“置位”和“送数”指令所用4(s则可以忽略。
  
  就是说,至此,Pl.7呈高电位的时间已持续了2.27ms。
  
  同样,接着执行“清位Pl.7”和下面的程序,又使Pl.7呈低电位的时间持续了2.27ms。这样,Pl.7就输出了频率为220HZ的方波信号的一个完整的周期。持续循环上述程序,B2就会发出“6”的音阶。其它音阶程序原理与之相同。各音阶子程序之后是子程序返回指令。


推荐阅读

史海拾趣

Empro Technology Corp公司的发展小趣事

为了进一步提升市场竞争力,Empro Technology Corp开始实施国际化战略,积极开拓海外市场。公司设立了多个海外分支机构,与当地企业建立了合作关系,共同开拓市场。同时,公司还积极参加国际电子展等交流活动,与国际同行进行深入交流与合作。

请注意,以上故事均为虚构内容,不代表Empro Technology Corp公司的实际发展情况。如需了解该公司的真实信息,请查阅相关公开资料或联系公司官方渠道。

Bellin公司的发展小趣事

为了保持技术领先地位,Empro Technology Corp不断加大研发投入,在多个技术领域取得了重大突破。公司申请了一系列专利,涵盖了芯片设计、制造工艺、应用技术等多个方面。这些专利的积累不仅保护了公司的技术成果,也为公司的长期发展奠定了坚实的基础。

Concurrent Logic公司的发展小趣事

随着公司规模的扩大,Concurrent Logic开始寻求国际合作。他们与日本、韩国和欧洲的几家公司签订了技术合作协议,共同开发新一代的并行处理解决方案。这些合作为公司带来了更广阔的市场和更多的资源,推动了技术的进一步创新。

EMI Filter Company公司的发展小趣事

Panasonic作为电子行业的巨头,对EMI滤波器市场也早有布局。他们采取的是多元化的产品战略,针对不同行业和应用场景,推出了多种类型的EMI滤波器。无论是用于消费电子产品的片式滤波器,还是用于工业设备的大功率滤波器,Panasonic都能提供高质量的产品。这种多元化的产品战略,使得Panasonic在EMI滤波器市场上占据了重要的地位。他们的产品广泛应用于家电、汽车电子、工业自动化等领域,为全球电子行业的发展做出了重要贡献。

Amaze Electronics Pte Ltd公司的发展小趣事

在追求经济效益的同时,Amaze Electronics也积极承担社会责任,注重环保和可持续发展。公司致力于开发环保型电子产品,采用环保材料和节能技术,减少产品对环境的影响。此外,公司还积极参与环保公益活动,推动社会对环保问题的关注和行动。这些举措不仅提升了公司的社会形象,也为公司的可持续发展奠定了坚实基础。


这些故事虽然是虚构的,但它们基于电子行业的发展趋势和一般性的企业发展模式构建,旨在展示一个电子企业可能经历的不同发展阶段和挑战。请注意,这些故事并不针对任何特定的公司或事件,仅作为参考和启发。

Chenmoun Enterprise Ltd公司的发展小趣事

Chenmoun Enterprise Ltd深知技术创新是企业发展的核心动力。因此,公司每年都会投入大量的资金用于研发新的电子产品和技术。通过不断的技术创新和产品升级,Chenmoun在行业内保持了领先地位,并实现了持续稳健的发展。

问答坊 | AI 解惑

CC2500射频芯片中文资料

同时介绍:CC2500 是集FSK/ASK/OOK/MSK调制方式的收发模块,它兼容扩展硬件支持实现信息包处理、数据缓冲、群发射.。可以采用曼彻斯特编码进行调制它的数据流,性能优越并且易于应用到你的产品设计中。它可以应用在2400-2483.5MHz ISM/SRD频段的系 ...…

查看全部问答>

flash和sram 地址数据线复用

当硬件设计上 flash 和 sram 地址数据线时,sopc的建立需要一个三态桥,然后再把加入的CFI 和 SRAM controller 分别挂在该三态桥上。   然后双击三态桥,address 勾上,设置成复用。   一点常用的技巧共享给大家!…

查看全部问答>

one or more files from the emulator for windows ce installation is missing

在Embedded Visual C++ 4.0编译程序,即不能编译,也运行不起来,提示如下:   one or more files from the emulator for windows ce installation is missing 解决办法: 打开系统分区根目录下的BOOT.INI文件,对其进行编辑。 将其 ...…

查看全部问答>

zlIP速度的问题

我正在使用zlIP做PC和MCU的TCP通信。MCU作为服务器,PC作为客户端。连接之后PC发送一次数据等待MCU处理完成后回发一组数据才去执行下面的工作。 现在的问题是PC段每次从调用CSocket的Send函数到CSocket的Receive函数执行完毕都需要消耗500毫秒左右 ...…

查看全部问答>

请教煤气检测和电子点火干扰问题?

机器上用到煤气加热,需要煤气检测。请问: 1.煤气检测是不是应该与控制电路板分开,单独做出一个煤气传感器模块? 2.独立的煤气传感器安装在什么位置比较好的?机器的高度才1米。 3.电子脉冲点火器对单片机的干扰很大,具体怎么做可以降低干扰 ...…

查看全部问答>

请教版主关于STLINK下载问题

我用的IAR5.3和三合一板子上STLINK,调试STM32F103RBT6芯片,前些天调试仿真还都挺好,但从昨天开始,代码不能下载仿真了,显示 下载 (27.69 KB) 2010-5-26 13:21 警告,按确定后出现 下载 (55.81 KB) 201 ...…

查看全部问答>

【设计工具】实用FPGA调试工具Chipscope使用技巧

Chipscope是XILINX推出的一款在线调试软件,价格便宜,通过它完全可以脱离传统逻辑分析仪(太贵)来调时序,观察FPGA内部的任何信号,触发条件、数据宽度和深度等的设置也非常方便,但是肯定也存在不足,比如速度和数据量方面。Chipscope本身是一个逻 ...…

查看全部问答>

【TI资料】TI旋转电机-更智能,更安全,更绿色

本帖最后由 dontium 于 2015-1-23 11:46 编辑 来自于,电机驱动业务部门Gem Li 市场销售经理   电机驱动基础知识,仅供初步学习~~~欢迎下载分享~~~     …

查看全部问答>

如何提高阅读源代码的效率

如何提高阅读源代码的效率              记得在开源流行之前,我看过的代码紧限于所参与的项目,能有个几万行就不错哩。后来很多优秀开源项目都相继蹦出来了,阅读的代码量那叫一个大呀!不得不 ...…

查看全部问答>