DIY编程器网

标题: 基于AT89C2051的解码器设计 [打印本页]

作者: liyf    时间: 2012-1-27 19:50
标题: 基于AT89C2051的解码器设计

  
         
    摘  要:文章针对采用PT2262编码系统需要使用多个PT2272解码芯片进行大容量解码时所存在的问题,给出了采用AT89C2051单片机代替每个PT2272进行大容量解码的设计方案,同时给出了相应的硬件控制电路和软件控制流程。
关键词:PT2262;编码;解码;AT89C2051;PT2272

目前我国应用极广的编解码器是Princeton公司生产的具有531441(312)种状态的PT2262编码芯片和与之配套的PT2272解码芯片,但一片PT2262只能对一种地址的PT2272的15种状态进行解码,对于较大的编解码保安防盗控制系统,通常使用多片PT2272组合解码方式,但这种多片方案仍然满足不了设计要求。因此,本文给出了采用AT89C2051单片机实现PT2272大容量解码的设计方案。
1 PT2262的编码原理
  PT2262的工作原理电路如图1所示,图中,K0~K7为地址端,使用时应该预置其状态;K8~K11为数据端。当应用时按下按钮开关K8~K11后,PT2262就会在第17脚输出一串行编码脉冲。开关K0~K11为12个位码开关,其0或1的状态组合可用来确定不同的编码结果,每传送一组编码就会自动连发四次字码。4.7MΩ电阻为PT2262的外接振荡电阻。MPSH10为315MHz的高频振荡三极管。图2是PT2262的编码原理示意图。


500)this.style.width=500;" border=0>
2 解码的实现
2.1位编码信号的检测
  分析PT2262的编码原理可以发现,其输出的每个0位或1位编码信号均由二组脉冲组成,因此可使用单片机进行解码。本设计使用ATMEL半导体公司生产的AT89C2051单片机,利用其“定时/计数器0”进行脉宽的计时,并判断该脉宽的高字节是否相同,如相同则为PT2262的0或1位(本设计只考虑了“0”和“1”状态,其每个位的二组脉冲是相同的),然后由AT89C2051对0或1位编码信号进行12次判断,如果全部正确,则确定该PT2262编码器就是本系统的信号之一。


500)this.style.width=500;" border=0>
2.2 SYNC同步信号的检测
  PT2262的SYNC同步编码信号如图2(c)所示。由于该位脉冲的低电平时间长达124个机器周期,因此只需判断其脉宽时间是否大于8倍的“0”位或“1”位脉宽即可测出其同步信号。
2.3解码信号的处理
  可将12位解码数据中的高8位与地址码表中的地址数据进行比较,如果相同,则将12位解码数据中的低4位输出到单片机的P1.0~P1.3,同时置VT位。输出的时间长短由控制系统的需要来决定。一般输出的解码数据有三种情况:第一种为脉冲型;第二种在发射器按键撤消后输出便停止;第三种在下次按键后,其输出将改变。本设计使用1秒的脉冲型输出。
[1] [2]  下一页
         
          [/td]
        [/tr]
      
  
         
   

3 基于单片机的解码方案
3.1硬件电路
  本设计的解码电路原理图如图3所示,利用该电路可将高频接收模块变频处理后的数字脉冲信号送入AT89C2051的P0.0口进行解码,再将满足地址码条件的控制脉冲信号输出到P1.0~P1.3,同时输出1秒的VT信号。
3.2软件设计
  基于单片机AT89C2051的解码软件流程图如图4所示。利用初始化可将AT89C2051的16位定时/计数器0设置为内部计数器方式。
  在编码信号的采集时,如果输入信号为“1”,则定时/计数器0将开始计数,同时将定时/计数器0的高8位存入内存缓冲区。而当输入信号为“0”时,定时/计数器0也进行计数,同时判断是否有大于8倍的内存缓冲区中的值。如不满足条件,则继续采集脉冲信号;否则将对24个内存缓冲区中的数据进行处理。


500)this.style.width=500;" border=0>
  解码信号的处理过程实际上是对24个内存缓冲区中的数据进行俩俩比较。如果不相等,则认为编码信号不是本系统中的信号。如果相等,则将其值设为“0”或“1”。而如果12组数据都相等,则可得到8个“0”或“1”的地址位和4个“0”或“1”的数据位。此时便可将高8位的地址位与程序中地址码表中的数据进行比较。如果不相等,则认为该编码信号不是本系统中发射器的控制信号。如果相等,则将其低4位的数据位输出到P1.0~P1.3口,同时输出一个高脉冲VT信号到P0.6口。
  假设某保安防盗系统中有32种地址的PT2262发射器,其地址从45H~64H,如果地址为50H的发射器按下了K10开关,且解码系统所接收的高8位地址的值与软件地址表中50H的值相同,那么,对应输出的4位A、B、C、D的值将是0010B;而如果地址为63H的发射器按下了K8开关,且解码系统所接收的高8位地址的值与软件地址表中63H的值相同,其输出对应的A、B、C、D值将是1000B;……。由此可见,该设计仅使用一片AT89C2051单片机即可替代32片PT2272进行工作。


500)this.style.width=500;" border=0>


500)this.style.width=500;" border=0>
  实际上,该方案中PT2262的地址值可选00H~FFH共256个中的任意组合,因而通过该方案可实现256个PT2262,即至少256×4=1024个状态的大容量的解码功能。如果将PT2262的K8、K9、K10、K11任意组合,则其解码容量还可以达到
256×15=3840种状态。
4 结束语
  本文所设计的单片机解码方案已应用于某保安防盗系统,实际运行表明:运行状态良好。同时,该方案也适用于其它编码系统,如华智茂矽公司的VD5026和HOLTEK公司的HT12A/12E、HT6012/6014/6016等编码芯片。
参考文献

1.PT2262 Data Sheet
2.PT2272 Data Sheet
3.AT89C2051 Data Sheet
4.谢筑森.单片机开发与典型应用设计.北京航 空航天大学出版社 上一页  [1] [2]
         
          [/td]
        [/tr]
      
作者: 无用    时间: 2013-10-9 21:23
楼主辛苦了,顶一下
作者: ledaswan    时间: 2014-4-20 04:01
这文章是不是用什么工具自动识别的啊,缺了很多的内容……
作者: 俏皮女王    时间: 2014-7-25 16:55
辛苦啦!




欢迎光临 DIY编程器网 (http://diybcq.com./) Powered by Discuz! X3.2