新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 用单片机模拟2262软件编码

用单片机模拟2262软件编码

作者:时间:2011-10-08来源:网络收藏

1 概述

本文引用地址:http://www.eepw.com.cn/article/172461.htm

  在应用遥控编、解码芯片时,要求一对芯片的地址完全一致,因此当一个遥控芯片控制多个解码芯片时,需要与地址端连接的多个开关同时辅助动作,以改变地址,使之与解码芯片的地址完全一致,达到遥控的目的。

  若用微控制器取代芯片,就可以使多个开关动作改变输出波形的功能由完成,同时,在空闲时让微控制器工作在掉电模式,这样不但操作简便而且节省了能源。

  为此,我们设计了用廉价AT89C2051代替遥控芯片PT2262来实现功能的电路,用了遥控编码功能。

  2 PT2262的工作原理

  2.1 管脚功能

  PT2262的各管脚功能如表1所示。

  

  2.2 位脉冲宽度

  PT2262的地址引脚有3种接法,即悬空(高阻态)、高电平及低电平,不同接法的输出波形不同,如图1所示。从图中可知,若振荡周期为a,则窄脉冲的宽度是4a,间隔是12a;宽脉冲的宽度是12a,间隔是4a,从而一个完整的位脉冲宽度是32a。

  使用时,PT2262振荡电阻大约是与它成对的解码芯片PT2272振荡电阻的4倍,即若取PT2272振荡电阻为470kΩ, PT2262的振荡电阻可取2MkΩ。这种条件下,经多次实验测得PT2262发射的窄脉冲宽度约为250μs,宽脉冲约为750μs,而2组数据之间的间隔约为6ms。

  

  图1 PT2262的位脉冲波形

  2.3 编码方式

  PT2262共有12个地址端,发射的每一组数据都由12个位脉冲组成,顺序是从A0、A1……到A11,由于每个地址端有3种接法,故数据端输出的波形有312种形式。

  3 设计方法

  以一片PT2262通过八片PT2272控制8个灯为例进行说明。

  3.1 复位的处理

  设计程序时不容忽视的问题是:接上电池的首次复位和正常工作有键被按下时的掉电复位后,程序均从0000H单元运行。因此不同的复位应区别对待。

  首次复位可认为8个灯都是关着的,而掉电复位应记忆掉电前8个灯的开关状态,以便在按键再次按下时能准确地开、关灯。

  为了达到这个目的,我们在CPU的RAM中开辟了一个记忆区域,即20H、21H、22H,在这3个字节中存放复位标志。

  首次复位后写入20H=55H,21H=AAH,22H=00H。其中22H的八位按顺序对应八个灯,当某一个灯被打开时,将其对应位送1,被关掉后送0。每次复位均要检查21H,22H单元的内容,如果20H=55H,21H=AAH就说明是掉电复位;如果上述条件不成立,就说明是首次复位。由于首次复位时,RAM内容是随机的,因此两个字节的复位标志保证了复位判断的准确性。

  3.2 地址编码

  用2EH的8位和2FH的高4位来存储12位地址A0~A11状态,1表示高电平,0表示低电平。此时,最多可以控制灯的个数为212个。若需利用第三种状态,只需用一个字节的两位表示即可,如00、01、10分别表示高、低电平及高阻态,此时最多可以控制灯的个数为312个。

  我们设计的是控制8个灯的电路,用两个状态时,输出的A3~A10这9位编码固定不变,从而使8个灯的8片解码器PT2272 的这9个地址端接法完全一致。A0~A2决定了8个灯的地址编码,如表2所示。

  

  每种接法与相应接受灯的解码器PT2272一一对应。A11也兼做数据D0位,D0=1时,控制灯开;反之,控制灯关。

  3.3 键值读取

  为了节电,程序中设置了一段1毫秒的延时,在1毫秒之内,有键按下则去处理键值,若无键按下,则进入掉电节能状态。

  处理键值时,为了防止一次按键被重复处理,要等待按键结束后再去处理。

  键值的处理有两个内容,首先将该按键对应的灯的开关标志位取反。例如,设定标志字节为23H,当按键AN0被按下,就将23H.0取反,并将取反后的结果送A11/D0的存储位 。然后把该按键对应的灯的编码按表2送至A0~A2的存储位。

  3.4 脉冲

  发送脉冲程序就是根据2EH,2FH的内容发送连续12个1,0或高阻数据脉冲。脉冲的宽度是用延时来实现的。在程序中,可编制几段延时子程序,由主程序调用即可。需注意的是,延时时间要通过多次实验,反复调整。

  4 结束语

  本系统现已投入使用,它不但结构简单,价格低廉,操作方便,控制准确、灵活,而且节能效果好,弥补了发射芯片的局限性,使其更加智能化、理想化。以此为基础,在遥控系统中的应用将更加广泛。



评论


相关推荐

技术专区

关闭