将基于AT89C2051的解码器应用于安防系统

发布者:水云间梦最新更新时间:2006-09-29 来源: 单片机与嵌入式系统ic网关键字:解码  编码  单片机 手机看文章 扫描二维码
随时随地手机看文章

1 引 言
  
  目前,我国应用极广的编解码器是Princeton公司生产的具有531441(312)种状态的PT2262编码芯片和与之配套的PT2272解码芯片。但一片PT2272只能对一种地址的PT2262的15种状态进行解码,对于较大的编解码保安防盗控制系统,常使用多片PT2272组合解码,但仍远远满足不了大中型安防系统的设计要求。因此,采用AT89C2051单片机,实现了PT2262的大容量解码功能。

2 PT2262的编码原理
  
  PT2262(可参阅http://www.princeton.com.tw)的工作原理如图1所示,图中K0~K7为地址端,应该预置其状态;K8~K11为数据端,按下按钮开关K8~K11后,PT2262就在第17脚输出一串行编码脉冲。开关K0~K11为12个位码开关,其0或1的状态值组合出不同的编码结果,每传送一组编码都自动连发四次字码。4M7电阻为PT2262的外接振荡电阻。MPSH10为315MHz的高频振荡三极管。图2~图5表示了PT2262的编码原理。图2是PT2262的字码结构,图3是PT2262的位码信号,图4是PT2262的同步位信号,图5是PT2262的帧码结构。

3 解码的实现

3.1 位编码信号的检测方法
  
  根据PT2262的编码原理,其输出的每个0位或1位编码信号由二组脉冲组成,因此可以使用单片机进行解码。本设计使用了ATMEL半导体公司生产的AT89C51单片机,利用“定时/计数器0”进行脉宽的计时,并判断该脉宽的高字节是否相同,相同则为PT2262的0或1位(本设计只考虑了“0”和“1”状态,其每个位的二组脉冲是相同的)。AT89C51对0或1位编码信号必须进行12次判断,如果全部正确,则该PT2262编码器就是本系统的信号之一。

3.2 SYNC同步信号的检测方法
  
  PT2262的SYNC同步编码信号如图4所示。该位脉冲的低电平长达124个机器周期,因此只需判断其脉宽时间是否大于8倍的“0”位或“1”位的脉宽。

3.3 解码信号的处理
  
  将12位解码数据(可参阅htpp://www.princeton.com.tw)中的高8位与E2PROM中地址码表的地址数据进行比较,如果相同,则将E2PROM中对应的房间号、单元号、楼栋号等数据,通过P0、P1、P2口输出到16位7段显示屏。

4 硬件电路
  
  本设计的解码、安防接警中心电路原理图如图6所示,将经高频接收模块变频处理的数字脉冲信号送入AT89C2051(可参阅http://www.atmel.com)的P3.4 I/O口进行解码,再将满足E2PROM中地址码条件的数据通过RS232接口输出到计算机。图中省略了数字键盘和报警喇叭驱动电路部分。

5 软件设计
  
  软件流程图如图7所示。

5.1 初始化
  
  将AT89C2051〔1〕的16位定时/计数器0设置为内部计数器方式。

5.2 编码信号的采集
  
  当输入信号为“1”时,定时/计数器0开始计数,并将定时/计数器0的高八位存入内存缓冲区中。当输入信号为“0”时,定时/计数器0也进行计数,同时判断是否有大于8倍的内存缓冲区中的值。如不满足条件,则继续采集脉冲信号,否则对24个内存缓冲区中的数据进行处理。


5.3 解码信号的处理
  
  对24个内存缓冲区中的数据两两进行比较,如果不相等,则编码信号不是本系统中的信号。如果相等,则将其值设为“0”或“1”。如果12组数据都相等,则得到8个“0”或“1”的地址位和4个“0”或“1”的数据位。
  
  将高8位的地址位与E2PROM中地址码表中的数据进行比较,如果不相等,则该编码信号不是本系统中发射器的控制信号。如果相等,则将E2PROM中对应的房间号、单元号、楼栋号等数据,通过段控制P0口和位控制P1、P2口输出到16位7段显示屏,同时鸣响报警喇叭。数字键盘用于向E2PROM中键入编码地址、房间号、单元号、楼栋号等数据。
  
  假设某保安防盗系统中有32种地址的PT2262发射器,其地址为45H~64H,在AT89C2051的软件中设定其地址码表的值为45H、46H、47H、……、64H。如果当地址为50H的发射器按下了K10开关,则解码系统所接收的高8位地址的值与软件中地址表中50H的值相同,则输出对应的4位A、B、C、D的值0010B;如果当地址为63H的发射器按下了K8开关,则解码系统所接收的高8位地址的值与软件中地址表中63H的值相同,则输出对应的A、B、C、D的值1000B;……。该设计使用一片AT89C2051单片机,替代了32片PT2272解码芯片。
  
  故此,在实际应用中,PT2262的地址值可选00H~FFH共256个中的任意组合,从而实现了256个PT2262,至少256×4=1024个状态的大容量的解码功能。如果将PT2262的K8、K9、K10、K11任意组合,则可以有256×15=3840种状态。

6 计算机的数据处理〔2〕
  
  Delphi是Borland公司推出的可视化开发工具,它提供了大量的组件,用户可以轻松地开发出功能强大的应用程序,而且通过它编译出来的可执行文件的工作效率相当高。
  
  建立一个用户数据库,包含有用户的防盗主机的编号、姓名、详细住址、电话、手机、传呼等信息。
  
  利用SPCOMM串口控件,接收AT89C2051发送的串口数据——防盗主机的编号,将该数据与数据库中的所有防盗主机编号一一对比,再将数据相同的用户记录显示在屏幕上,同时调用一个声音播放控件,报警提示。

7 结束语
  
  本设计方案已应用于保安防盗系统的接警中心,运行状态良好。也适用于其它编码系统,如华智-茂矽公司的VD5026和HOLTEK公司的HT12A/12E、HT6012/6014/6016等编码芯片。

参考文献

1 张毅刚,等著.MCS-51单片机应用设计.哈尔滨:哈尔滨工业大学出版社,1990
2 吴旭东,等著.Delphi3.0/4.0多媒体和数据库编程.北京:清华大学出版社,2001
3 王 辉,等译.Delphi从入门到精通.北京:电子工业出版社,2000

关键字:解码  编码  单片机 引用地址:将基于AT89C2051的解码器应用于安防系统

上一篇:温度测量处理变送器设计
下一篇:Cygnal在片系统单片机的特点与应用

推荐阅读最新更新时间:2024-03-16 12:17

多点温湿度测控系统设计
1 引言 粮食测温技术的研究始于20世纪70年代,是实现现代化储存粮食的一项重要技术。国内大多数粮库已经采用了计算机粮情测控系统,随着控制技术不断发展,目前粮情测控系统已具有粮食温湿度检测、超温报警、自动生成各种报表、自动存储历史数据并据此自动生成粮温变化曲线等功能。本文设计的粮情测控系统是以ATmega16为检测与控制核心的单片机,由多个数字温度传感器DS18B20及模拟湿度传感器HS1101构成。 2 系统总体方案设计 粮情测控系统是计算机硬件与软件的结合体,实现了计算机对储粮的检测与预警。系统硬件由控制处理部分和信号检测部分组成,其中,控制部分包含六个模块:控制器模块、电机驱动模块、显示模块、键盘输入
[单片机]
多点温湿度测控系统设计
MCS - 51系列单片机解读
  MCS — 51 单片机系列   按工艺划分:   ◆ HMOS 工艺产品:如 8031 、 8051 、 8751 等;   ◆ HCMOS 工艺产品:如 80C31 、 80C51 、 87C51 等;按 ROM 的类型划分:   ◆ ROM 型产品、   ◆ PROM 型产品、 8051   ◆ EPROM 型产品、 87C51 、 87C52   ◆ Flash 型产品: AT89C51 、 AT89C52   (二) MCS — 51 单片机的内部结构   一、 8051 微处理器 CPU   ◆ 1 、运算器 :由算术逻辑单元 ALU、累加器ACC、B寄存器、两个暂存寄存器、程序状态寄存器组成 PSW ; 8 位,
[单片机]
单片机---HLK-W801蓝牙遥控点灯
昨天吧demo运行明白了,今天那就来看一下手机通过蓝牙远程遥控点亮开发板的LED吧,虽然这并不是低功耗蓝牙的典型用法,但是通过这种手段,能够快速学习一下W801这套恶心的SDK代码,也算是一种福报。嚯,正好这个芯片是阿里生产的,这不是正应了马老的一句话么。 调试工具 这里用的手机蓝牙调试工具叫nRF connect。应用商店也可以搜索BLE,就能搜索到很多蓝牙开发的工具,不过都会各种申请手机权限,定位啊,相册啊,不允许就没法用,简直就是流氓行为,这国家早就说过了这种问题,无奈就是没办法啊。 不过这款软件倒是挺好的,没有申请什么权限 直接就可以使用。让人感动。 自动启动server 原有的demo中,我们知道了需要让开发
[单片机]
<font color='red'>单片机</font>---HLK-W801蓝牙遥控点灯
带中文字库LCD12864按键菜单设置反白单片机实验程序
带中文字库LCD12864 按键菜单设置反白实验分享 制作出来的实物图如下: 用的是普中的开发板 如果你的也是同型号的普中开发板 直接下载也不能显示 因为我的开发板改电路了 你需要改 #include lcd12864.h 里面的 sbit LCD12864_RS=P2^6; //寄存器选择输入 sbit LCD12864_RW=P2^5; //寄存器选择输入 sbit LCD12864_E=P2^7; //液晶使能控制 sbit LCD12864_PSB=P3^0; //串/并方式控制 sbit LCD12864_RES=P3^2; //数据复位 即可 部分程序(还有些程序在 #inclu
[单片机]
带中文字库LCD12864按键菜单设置反白<font color='red'>单片机</font>实验程序
AVR单片机ATMega16的UART通信总结
#include iom16v.h #include macros.h typedef unsigned char uint8_t; #define DF_Config_Uart0_BaudRate 9600 //UART0 初始化 // desired baud rate: 9600 // actual: baud rate:9600 (0.0%) void uart0_init(void) { UCSRB = 0x00; //disable while setting baud rate UCSRA = 0x00; UCSRC = BIT(URSEL) | 0x06; // 配置波特率 #if DF_Confi
[单片机]
如何自学单片机? 单片机怎么入门?
如何自学单片机?说起这个话题,我就会自然的就想起我的一段血泪史。 我在大学的专业不是应用电子,07年的时候,只有选择了应用电子,才有单片机这门课,我的专业是电光源技术,这个专业,我们都叫 “电灯泡”专业,因为这个专业是研究各种灯的设计和原理。 当时我们“数字电路基础”的教授是负责电子实验室的,我也因此意外的进了 学校“电子大赛电子实验室学”,当时的目标是参加08年的电子大赛。 进入电子实验室后我就开启了一段苦逼的单片机学习之旅。 先是学习C语言,买了一个本,除了白天的正常上课,就是没日没夜的啃这本书。苦干了3个月,写了几个笔记本,用坏了几支笔,当时的我,还是非常的用功。 三个月之后,C语言书是看完了,但对单片机,还是一片茫然,根本
[单片机]
51单片机按键控制蜂鸣器启停程序
51单片机按键控制蜂鸣器启停程序 #include reg52.h #define uint unsigned int //宏定义 sbit SPK=P3^5; //定义喇叭端口 sbit key=P3^1; //开发板上对应的是s18按键 void delay(uint z) { uint x,y; for(x=z;x 0;x--) for(y=110;y 0;y--); } void main() { while(1) { if(key==0) { delay(100); SPK=0; delay(100); SPK=1; } else { SPK=1; } } }
[单片机]
八位微控制器有哪些可以节约代码空间的代码优化技巧?
本文将介绍一些优化技术,帮助设计人员节约多达 10% 的代码空间,从而让容量有限的程序存储器支持更多新特性和补丁。 良好的操作方法 许多程序员在 32 位处理器上学习编写软件,如 Intel 的 Pentium 处理器或某种 ARM 平台。不过,嵌入式领域的软件编写需要不同的思路。在 32 位 CPU 上,存储比特位的最佳方法通常是使用 32 位变量。对 8 位处理器而言,最好的办法就是采用单字节。像增强型 8051s 等某些处理器可能提供特殊的 1 位变量。 嵌入式处理器通常会超出标准的哈佛架构将存储器分散到不同的存储器空间中,有的相互重叠,有的又是相互分离。例如,8051 中常见的存储器空间包括 CODE、XDATA、DA
[单片机]
八位<font color='red'>微控制器</font>有哪些可以节约代码空间的代码优化技巧?
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved