用AT89C251实现对功放的自动控制.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
用AT89C251实现对功放的自动控制

用AT89C2051实现对功放的自动控制 设计目标:在功放与音源之间用一个ATMEL单片机及接口电路,实现对功放的开关和三个信号源的切换、状态显示、静音等功能。 基本功能是三路信号源(分别是Radio、CD、MD)。开机的时候默认信号源是Ridio,当按下SELECT键时,切换信号源到CD,再次按下,切换信号源到MD,再按返回Radio。在面板上有三个发光二极管指示工作状态,三个管子分别指示Ridio、CD、MD的工作状态,灯亮表示该路信号源被选中。 一、芯片 采用AT89C2051-24PI芯片,主要原因是该种芯片20脚封装的形式体积小,功耗低。同时价格便宜,本身带有存贮器,性能比较稳定,可以反复进行实验。 左图是AT89C2051的引脚图。 P1.2~P1.7提供内部上拉电阻;P1.0和P1.1还分别作为片内精密模拟比较器的同相输入(AIN0)和反相输出(AIN1)。P1口引脚可吸收20mA的电流并能直接驱动LED显示,当P1口引脚写入1时,其可用作输入端。当引脚P1.2 ~P1.7用做输入并被外部拉抵时,他们将因内部的上拉电阻而流出电流。P1口还在编程和程序校验期间接 受程序代码。 P3口的P3.0~P3.5、P3.7是内部上拉电阻的七个双向I/O引脚。P3.6用于固定输入片内比较器的输出信号,并且它作为一通用的I/O引脚不可访问。P3口缓冲器可吸收20mA电流。当P3口引脚写入1时,它们被内部上拉电阻拉高并可用作输入端;用作输入端时,被外部拉低的P3口引脚将用上拉电阻而流出电流。P3口还用于实现AT89C2051的各种功能:P3.0-RXD(串行输入端口);P3.1-TXD(串行输出端口);P3.2-INTO(外部中断0);P3.3-INT1(外部中断1);P3.4-T0(定时器0外部输入);P3.5-T1(定时器1外部输入)。P3口好接收一些用语闪速存储器编程和程序校验的控制信号。 RST是复位输入。 二、控制电路 因为设计目的比较简单,所以直接采用了上电复位和内部震荡。 因为AT89C2051功率低,引脚输出的电流(不足2mA)无法驱动发光二极管,因此用了个三极管。(下图是其中1路信号源的电路) 三、电源 由于继电器部分用的是12V电压,所以,用力1块LM7805将其调整为5V。 四、程序 为了避免在信号切换时出现杂音,我们用P1.2口做静音信号(MUTE)输出端,高电平有效,这样画出的几路信号源的时序图如左图所示。 可以看出应该在信号源切换开始的时候首先静音,然后再执行其他的切换指令,然后在信号源切换状态结束后再取消静音,以避免出现杂音。我们还可以用1个寄存器记录状态,使得程序每次中断产生后都可以明白现在是在使用哪一路信号源,应该切换到哪一路信号源。流程如下: 五、编写代码 AT89C2051是ATMEL微控制器家族中一款经济、中低价位产品,内含2K字节的闪存程序存储器,完全和MCS-51结构兼容并可用MCS-51指令进行编程。但是需要注意以下几个方面: 1、在使用跳转或分支相关的指令时,必须进行空间约束,确保目的地址落在AT89C2051的2K的物理存储器空间内。例如:对于2K的存储器来说,LJMP 7E0是一有效指令,而LJMP 900H则是无效的。 2、在使用和MOVX相关的指令、数据存储器时,因为AT89C2051包含128字节内部数据存储器,这样,AT89C2051中的堆栈深度局限于内部RAM的128字节范围内,他即不支持外部数据存储器的访问,也不支持外部程序存储器的执行,因此,程序中不应包括MOVX[…]指令。 3、一般的80C51汇编程序即使在违背上述限制写指令时仍对指令进行汇编,因此应了解正在使用的微控制器AT89C2051的物理功能和受限范围并相应地调整所用指令的寻址范围,以适合AT89C2051。 4、空闲方式下CPU保持睡眠状态,而所有片内的的外设保持激活状态,这种方式由软件产生。片内的RAM和所有专用功能寄存器的内容在此方式期间保持不变。空闲方式可由任何允许中断请求或硬件复位终止。但是在使用硬件复位终止空闲方式时,AT98C2051通常从程序停止一直到内部复位算法获得控制之前的两个机器周期处恢复程序的执行。在这种情况下片内的硬件禁止内部对RAM的访问,但允许对端口引脚的访问。要消除硬件复位终止空载方式时,对端口引脚意外写入的 ,则进入空闲方式指令的下一条指令不应是写端口引脚或写外部存储器指令。 5、编程时,使用下列步骤: ⑴上电次序:先在VCC和GND引脚之间加上电源,再设置RST和XTAL1为GND, 所有其他引脚浮空,至少等待10ms。 ⑵设置RST引脚为高“H”,设置P3.2引脚为高“H”。 ⑶对引脚P3.3、P3.4、P3.5、P3.

文档评论(0)

epjk332 + 关注
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档