防宠物踩踏式报警器及其测量区域长度区分脚型的方法

文档序号:6728239阅读:248来源:国知局
专利名称:防宠物踩踏式报警器及其测量区域长度区分脚型的方法
技术领域
本发明涉及安防电子技术领域,特别是一种防宠物踩踏式报警装置以及一种测量被踩踏区域的长度的方法。
背景技术
2010年6月中旬提交国家知识产权局专利局审查的“踩踏式报警器”、“防触摸踩踏式报警器”和“防触摸振动踩踏式报警器”等系列实用新型在受到踩踏的时候会发出声或光的报警信号,结构简洁,经济实用,但是,这些报警装置区分不清受到的是人的踩踏还是猫或狗或老鼠或鸡等小动物的踩踏,受到这些宠物踩踏时会引发不必要的报警。考虑到人的脚型的宽度明显地大于上述宠物的脚的宽度,同期提交审查的发明专利“防宠物踩踏式报警器及其区分人与小动物踩踏的方法”借助单片微型计算机技术,提出了一种测量被踩踏区域的宽度以区分人与小动物踩踏的方法,并以此为基础设计了防宠物踩踏式报警器系列实用新型,它们仅仅警告人的踩踏,不理睬宠物的踩踏。

发明内容
本发明的目的是提供一种防宠物踩踏式报警器及其测量区域长度区分脚型的方法,所述测量区域长度区分脚型的方法以所述防宠物踩踏式报警器为物理基础,采用单片机技术测量被踩踏的区域的长度,据此区分人与小动物的脚型,在受到人的踩踏时发出报警声。本发明实现其目的所采用的技术方案是所述防宠物踩踏式报警器由一个长方形框架、电池组、单片机系统、串入并出电路、并入串进电路、音乐电路以及测量区域长度区分脚型程序组成;其中,长方形框架的上部和底部各有一组电极,分别称之为列电极组和行电极组,每一组电极包括72根彼此独立、间距均勻、裸露的导线,两组导线排列的方向相互垂直,列电极组的导线分别依序连接到并入串进电路的各个并行输入端,行电极组的导线分别依序连接到串入并出电路的各个并行输出端,单片机系统装载有测量区域长度区分脚型程序,其输出口线P3. 7连接到音乐电路的输入端,电池组作为本装置的电源。所述长方形框架的上部和底部的两组电极由该框架的两侧绝缘隔离并支撑着。所述单片机系统包括一块单片机及其晶振电路和上电复位电路、随机存储器电路,其中,随机存储器电路由一块74HC373和64KB的RAM组成。所述串入并出电路由9块74HC164级联组成第一块74HC164的信号串行输入端 A连接到单片机系统的输出口线Pl. 2,其最高位输出端QH连接到第二块的信号串行输入端 A,第二块的最高位输出端QH连接到第三块的信号串行输入端A,依次类推,共产生8 (位/ 块)X9块=72位的信号并行输出端;9块74HC164的清零端与信号串行输入端B都连接到电池组的正极,它们的时钟信号输入端都连接到单片机系统的输出口线Pl. 3。所述并入串进电路由9块74HC165级联组成最后一块74HC165的并入串出信号端QH连接到前一块的信号串行输入端DS,依次类推,共产生8 (位/块)X 9块=72位的信号并行输入端,每一位信号并行输入端还各自连接一个下拉电阻到电池组的负极,第一块 74HC165的并入串出信号端QH连接到单片机系统的输入口线Pl. 5,这9块74HC165的并入数据装载控制端/PL都连接到单片机系统的输出口线Pl. 6,它们的时钟信号输入端都连接到单片机系统的输出口线Pl. 7,它们的时钟使能输入端/CE都连接到电池组的负极。
人的脚型大致上呈长方形,其长度明显地大于其它宠物的脚的长度。因此,本发明所述测量区域长度区分脚型的方法包含在测量区域长度区分脚型程序中,用于区分人与小动物的脚型,其步骤如下步骤一、初始化单片机
M0V_SP,2FH’堆栈初值,
CLR_P1. 2,PL 3,PL 7,Ρ3· 7,准备输出信号,
SETB_P1. 5,PL 6’准备输入信号,
CLR_F0’初始化跟踪区域轮廓工作结束的标志位,
步骤二、初始化程序
CLR R5,CLR R6,R5, R6分别为距离的平方值的低、高字节寄存器,
MOV-R1, #AL,M0V_R2,#AH ,RAM中后部开辟有小块临时存储区,用于存储被跟踪区域的轮廓上坐标点的坐标,#AL, #AH分别为该区域的起始地址之低、高字节,R1, R2分别为RAM中临时存储区地址指针的低字节和高字节寄存器,
M0V_DPL, #AL,M0V_DPH, #AH
MOV_R0,#RAM0, M0V_A, #00H’ #RAM0为RAM中临时存储区的大小,
LoopO :M0VX_iDPTR,A,清零RAM中临时存储区中的一个单元,
INC_DPTR,指向下一单元,
DJNZ_R0,LoopO’ R0为循环计数器,
Loopl :MOV_R0, #Number_C0L’ Number_C0L为列电极组中导线的数目,
Loop2 :M0V_R3, #Number_R0W,Number_R0W为行电极组中导线的数目,
SETB_P1. 2, NOP, CLR_P1. 2,清零串入并出电路的9块74HC164的输出端,DJNZ_R3, Loop2,R3 为循环计数器,DJNZ_R。,Loopl,R0 为循环计数器,M0V_DPH, #00H, M0V_DPL, #00H'初始化数据指针 DPTR,,分开为两个8位的X,y坐标指针;步骤三、开始扫描检测被踩踏的区域1)通过单片机对行电极组中的第一根导线输出一个高电平,然后,逐根检测列电极组中导线的电平,其低、高电平分别以#00H,#01H表示且存储之M0V_@DPTR,#00H或 M0V_iDPTR, #01H,其中,每检测完一根列电极组导线,y坐标指针就指向下一根列电极组导线INC_DPL,如果检查完毕列电极组中的全部导线,即DPL = Number_C0L,把x,y坐标指针指向下一根行电极组导线INC_DPH,M0V_DPL, #00H ;2)通过单片机对行电极组中的下一根导线输出一个高电平,然后,逐根检测列电极组中导线的电平,其低、高电平分别以#00H,#01H表示且存储之,其中,每检测完一根列电极组导线,y坐标指针就指向下一根列电极组导线,
如果检查完毕列电极组中的全部导线,即DPL = Number_C0L,把x,y坐标指针指向下一根行电极组导线;3)判断行电极组中当前处于高电平的导线是否超出其最后一根(a) DPH < Number_R0ff,不是最后一根,跳转到本步骤三之2)继续进行扫描检测;(b)DPH = Number_R0ff,已超出最后一根,执行下一步骤;步骤四、跟踪被踩踏区域的轮廓1)初始化 X,y 坐标指针 DPTR :M0V_DPH, #01H, M0V_DPL, #01H ;2)暂存当前X,y坐标指针DPTR,称之为当前跟踪坐标指针,从RAM取出并查看当前位置的数据M0V_A,ODPTR (a)如果该数据为#00H,执行本步骤四之3);(b)如果该数据为#01H,查看位于当前坐标位置的上、右、下与左方的四邻 {(DPH — DPH-I,DPL)、(DPH,DPL — DPL+1)、(DPH — DPH+1,DPL)与(DPH,DPL — DPL-1)}处的四个数据,即按照跟踪区域轮廓的规则获取与行、列电极组导线被踩踏所致接触的区域对应的轮廓,接着,运用“逐点计算该轮廓点与其它轮廓点间的距离并保存其大者的方法”, 获得被踩踏区域的长度的平方=L(R7)2 ;如果L (R7)2 ^ Long (Long为某个预设值),就判断为受到人的脚的踩踏,并发出警报信号SETB_P3. 7,延时约十秒,再撤除该报警信号CLR_P3. 7 ;清零RAM内的临时存储区,然后,继续执行本步骤四之3);3)恢复当前X,y坐标指针DPTR为当前跟踪坐标指针,把它指向下一个坐标点 如果当前坐标点已经处于本行最后的位置,即DPL = Number_C0L-l时,下一个坐标点为 (DPH — DPH+1, DPL — 1),否则,下一个坐标点为(DPH, DPL — DPL+1);4)如果X,y坐标指针DPTR尚未指向最后一行,即DPH < Number_R0W_l,跳转本步骤四之2),继续跟踪被踩踏区域的轮廓,否,则转到步骤一,重新开始扫描检查工作。上述步骤四中所述跟踪区域轮廓的规则包括1)被跟踪区域的特征是“被跟踪区域内的每一个坐标点都对应着数据#01H,需要被跟踪的区域之外或需要被跟踪的区域之间的坐标点都对应着数据#00H” ;2)启动跟踪轮廓定时器,如果该定时器的计时时间到了预定的数置,复位单片机;3)当前坐标位置对应的数据为#01H,查看当前坐标位置的上、右、下与左方四个邻点对应的数据的关系,决定当前坐标位置的移动方向,该移动方向经过的路径就形成该区域的轮廓,有关移动当前坐标位置的规则如下a)如果其右方邻点对应的数据为#01H,其上、下、左方邻点对应的数据都为#00H, 就把当前坐标位置移向其右方邻点处;b)如果其下方邻点对应的数据为#01H,其上、右、左方邻点对应的数据都为#00H, 就把当前坐标位置移向其下方邻点处;c)如果其左方邻点对应的数据为#01H,其上、右、下方邻点对应的数据都为#00H, 就把当前坐标位置移向其左方邻点处;d)如果其上方邻点对应的数据为#01H,其右、下、左方邻点对应的数据都为#00H, 就把当前坐标位置移向其上方邻点处;
e)如果其右、下方邻点对应的数据都为#01H,其左、上方邻点对应的数据都为 #00H,就把当前坐标位置移向其右方邻点处;f)如果其下、左方邻点对应的数据都为#01H,其上、右方邻点对应的数据都为 #00H,就把当前坐标位置移向其下方邻点处;g)如果其左、上方邻点对应的数据都为#01H,其右、下方邻点对应的数据都为 #00H,就把当前坐标位置移向其左方邻点处;h)如果其上、右方邻点对应的数据都为#01H,其下、左方邻点对应的数据都为 #00H,就把当前坐标位置移向其上方邻点处;i)如果其上、下方邻点对应的数据都为#01H,其右、左方邻点对应的数据都为 #00H,且其由其左方邻点移动而来,就把当前坐标位置移向其上方邻点处;j)如果其上、下方邻点对应的数据都为#01H,其右、左方邻点对应的数据都为 #00H,且其由其右方邻点移动而来,就把当前坐标位置移向其下方邻点处;k)如果其右、左方邻点对应的数据都为#01H,其上、下方邻点对应的数据都为 #00H,且其由其上方邻点移动而来,就把当前坐标位置移向其右方邻点处;1)如果其右、左方邻点对应的数据都为#01H,其上、下方邻点对应的数据都为 #00H,且其由其下方邻点移动而来,就把当前坐标位置移向其左方邻点处;m)如果其上方邻点对应的数据为#00H,其余三个邻点对应的数据都为#01H,就把当前坐标位置移向其右方邻点处;η)如果其右方邻点对应的数据为#00Η,其余三个邻点对应的数据都为#01Η,就把当前坐标位置移向其下方邻点处;ο)如果其下方邻点对应的数据为#00Η,其余三个邻点对应的数据都为#01Η,就把当前坐标位置移向其左方邻点处;ρ)如果其左方邻点对应的数据为#00Η,其余三个邻点对应的数据都为#01Η,就把当前坐标位置移向其上方邻点处;q)如果当前坐标位置的上、右、下与左方四个邻点对应的四个数据都是#00H,四个邻点中也没有出现本跟踪区域轮廓过程所获得的最前面的5个位置坐标之一,这时,尝试退出该“奇异的隅角”把当前坐标位置对应的数据置为#00H,从RAM内的临时存储区取出最后存进去的坐标值,把该坐标值赋予当前坐标位置指针即(DPH,DPL),也就是退回到前一个位置的坐标处,然后,按照上述跟踪区域轮廓的规则继续跟踪下一个曲线轮廓点,如果能够找到下一个曲线轮廓点,就继续跟踪区域轮廓的工作,否则,所遇到的“奇异的隅角”表明不存在封闭、连续的轮廓曲线,即没有形成被踩踏的区域,这时,清零RAM内的临时存储区,初始化RAM中临时存储区地址指针寄存器R1A2,设置跟踪区域轮廓工作结束的标志位 SETB-Ftl,结束本轮跟踪区域轮廓的工作;r)如果当前坐标位置的上、右、下与左方四个邻点对应的四个数据都是#00H,四个邻点中出现了本跟踪区域轮廓过程所获得的最前面的5个位置坐标之一,这时,不清零 RAM内的临时存储区,初始化RAM中临时存储区地址指针寄存器札,&,设置跟踪区域轮廓工作结束的标志位即SETB-Ftl,依序把两个字节的数据(#FFH,#FFH)存入RAM中临时存储区, 作为轮廓位置结束的标志,结束本轮跟踪区域轮廓工作;4)每次移动当前坐标位置之前,根据RAM中临时存储区地址指针寄存器R1, R2把当前位置的坐标(DPH,DPL)依序存储在RAM内的临时存储区,然后使得RAM中临时存储区地址指针寄存器R1, R2指向下一处存储单元;5)每次移动当前坐标位置之前,把当前坐标位置对应的数据改写成#02H ;6)上述诸规则中,所述数据#00H与非#01H的其它数据等效。上述步骤四所述“逐点计算该轮廓点与其它轮廓点间的距离并保存其大者的方法”包括下述步骤步骤一、把RAM中临时存储区地址指针初始值(#AH,#AL)赋予x,y坐标指针DPTR ;步骤二、当前X,y坐标指针DPTR对应着RAM中临时存储区连续存放的两个字节, 称这两个字节为当前轮廓位置(DPHP,DPLp),暂存当前X,y坐标指针DPTR,称之为当前轮廓位置的坐标,查看当前轮廓位置是不是轮廓位置结束的标志(#FFH,#FFH)是,被踩踏区域的长度的平方=L(R7)2 = Ii6R5,清零Ii6R5,结束本轮“逐点计算该轮廓点与其它轮廓点间的距离并保存其大者的,,程序;否,执行下一步骤;步骤三、X,y坐标指针DPTR指向当前位置的下一个存储区域,从RAM中临时存储区取出连续的两个字节,称这两个字节为目标轮廓位置(DPHy DPI^),查看它是不是轮廓位置结束的标志(#FFH,#FFH)是,则恢复X,y坐标指针DPTR为暂存的当前轮廓位置的坐标,然后,使x,y坐标指针DPTR指向其对应的下一个存储区域,再跳转到步骤二 ;否,则计算当前轮廓位置与目标轮廓位置两点间的距离的平方L2 = (DPHp-DPH0)2+ (DPLp-DPL0)2 ;步骤四、比较L2与1 (距离的平方值的高、低字节暂存器),取其大者保存于
ReR5 ;步骤五、跳转步骤三。本发明的优点是,按照行、列两电极组导线的排列建立二维坐标系,借助单片机就可以扫描检测被踩踏的区域、跟踪它的轮廓、计算该轮廓的长度、判断脚型并决定是否发出报警声;所述测量区域长度区分脚型的方法适合单片机指令,其技术经济、实用。


下面对照附图进一步具体说明本发明。图1是本发明的结构示意图。图2是单片机系统的原理图。图3是串入并出电路的原理图。图4是跟踪区域轮廓的规则的示意图,包括情形(a)-(r);其中,每一种情形的中心为当前坐标位置,虚线箭头表示当前位置的来源方向,实线箭头表示当前位置的移动方向,数据0与其它非1的数据等效,情形(q)表示跟踪轮廓过程中可能遇到的“奇异的隅角”,情形(r)表示跟踪轮廓过程的结束条件,其中的Ii7对应着本轮跟踪区域轮廓过程所获得的最前面的5个位置坐标之一。图5是并入串进电路的原理图。图6是应用跟踪区域轮廓的规则的例子,图中,a是跟踪区域轮廓的起始点,b是“奇异的隅角”,d是跟踪过程的终止点。图中,1.长方形框架,11.长方形框架1的侧面(宽),12.长方形框架1的侧面 (长),13.长方形框架1底板上的(行)电极组,14.位于长方形框架的上部的(列)电极组,141.目标区域,142.跟踪目标区域的轮廓的起始点,143.跟踪目标区域轮廓的行扫描检测方向,144.跟踪目标区域获得的轮廓,21. -29. 74HC164,31. -39. 74HC165。
具体实施例方式本发明包括一个长方形框架(1)、电池组、单片机系统、串入并出电路、并入串进电路、音乐电路以及测量区域长度区分脚型程序。长方形框架(1)如图1所示,其上部和底部各有一组电极(14)和(13),分别称之为列电极组和行电极组,每一组电极由72根裸露的金属导线组成,这些导线彼此独立,间距均勻,两组电极(14)和(13)的导线排列的方向相互垂直(不作严格要求),由框架(1) 的两侧(11)或(1 绝缘隔离并支撑着,整个长方形框架的外部包裹着绝缘材料,外形似踏脚垫。单片机系统如图2所示,图中没有画出单片机的上电复位电路和时钟电路。假设行、列电极组各有256根导线,会产生256X256 = 65536个交叉点,每个交叉点有两种状态分离或接触,而64KB = 64X 1024 = 64X 210 = 65536,因此,需要扩展64KB片外RAM, 其中还要包括至少256BX2X4 = 2KB RAM内的临时存储区,以存储各轮廓点坐标的高、低字节。单片机需要选用8051系列中具有40个脚的,最好它自带片内Flash程序存储器,这时,其单片机的引脚/EA接到电源正极。所述串入并出电路如图3所示,由九块8位串入并出移位寄存器
74HC164(21)-(29)级联组成,其72个输出端OA, QB, QC, QD, QE,......分别依次连接到长
方形框架(1)的底部的行电极组(13)中的每根金属导线。所述并入串进电路如图5所示,由九块8位并入串出移位寄存器
74HC165(31)-(39)级联组成,其72个输出端A,B,C,D,E,......分别依次连接到长方形框
架(1)的上部的列电极组(14)中的每根金属导线。这72个输出端A,B,C,D,E,......的
每一个还各自连接一个 30ΚΩ的下拉电阻到电源的负端,因为简洁缘故,图5中并没有全部画出这些下拉电阻。音乐电路采用音乐集成电路配合扬声器,或者只使用一只蜂鸣器,用于发出报警声。平时,行、列电极组中导线在空间上相互交叉但没有接触,列电极组中的导线的电势被下拉到电源地,单片机通过串入并出电路逐根扫描式输出高电平到行电极组的导线。 受到踩踏时,被踩踏的区域内行、列电极组中的导线发生接触,依序使得位于这些接触点的列电极组中的导线也处于高电平。可以选取位于左上角的第一个交叉点所在处作坐标系的原点,按照行、列电极组中导线的排列方向建立坐标系,单片机通过扫描检测获得空间上相互交叉的点的高、低电平,被存储在64KB片外RAM中。这样,用#00H,#01H两个数码就表示了整个防宠物踩踏式报警器所警戒的区域的状况。测量区域长度区分脚型程序之步骤四叙述了“跟踪被踩踏区域的轮廓”的方法,它按照从左向右、从上向下的行、列检测顺序,寻找代表被踩踏的电极接触点的数据#01H,直到最后一行的最后一个坐标点被搜索完毕为止。每一次找到数据#01H时,先暂存当前x,y 坐标指针DPTR,称之为当前跟踪坐标指针,然后,遵循“跟踪区域轮廓的规则”(如图4所描述、图6所说明),开始跟踪从此坐标点起始的被踩踏区域(用数据#01H表示)的轮廓。跟踪过程中,X,y坐标位置指针逐个坐标点地移动,每一次移动前,当前坐标点的数据被改写成#02H,其坐标(DPH,DPL)被保存在RAM内的临时存储区,它们构成了被跟踪区域的轮廓。跟踪完一块独立的区域以后,运用“逐点计算该轮廓点与其它轮廓点间的距离并保存其大者的方法”,获得被踩踏区域的长度的平方L2。据此计算结果判断是否受到的是人的脚的踩踏,是否需要发出警报信号。所述计算两点间距离的工作利用了单片机的指令 MUL_AB' (B)15_8(A)7_0 — (A) X⑶并采取了下述措施1)求两点的坐标差时,先比较其大小,以大者减去小者,保证差值为正,2)避免开方求平方根的运算,只计算其平方值,3)运算后便立即与先前的数据作比较,保存值大者,节省了存储器空间。上述工作针对被扫描检测到的第一块被踩踏的区域。然后,清零RAM内的临时存储区,恢复当前X,y坐标指针DPTR为当前跟踪坐标指针,把它指向下一个坐标点,继续跟踪其它被踩踏区域的轮廓,直到χ,y坐标指针DPTR指向全部警戒区域的最后一行,一轮扫描检测工作才告结束。本发明所述单片机系统的输出或输入端口线可以根据实际情形加以改换,所述列或行电极组所包含的导线的数目及其间距、相应的串入并出、并入串出移位寄存器的数目以及随机存储器的容量可以根据本发明所述扫描检测原理增加或减少。
1权利要求
1.防宠物踩踏式报警器及其测量区域长度区分脚型的方法,其特征在于,所述防宠物踩踏式报警器由一个长方形框架、电池组、单片机系统、串入并出电路、并入串进电路、音乐电路以及测量区域长度区分脚型程序组成;其中,长方形框架的上部和底部各有一组电极, 分别称之为列电极组和行电极组,每一组电极包括72根彼此独立、间距均勻、裸露的导线, 两组导线排列的方向相互垂直,列电极组的导线分别依序连接到并入串进电路的各个并行输入端,行电极组的导线分别依序连接到串入并出电路的各个并行输出端,单片机系统装载有测量区域长度区分脚型程序,其输出口线P3. 7连接到音乐电路的输入端,电池组作为本装置的电源。
2.根据权利要求1所述的防宠物踩踏式报警器及其测量区域长度区分脚型的方法,其特征在于,所述长方形框架的上部和底部的两组电极由该框架的两侧绝缘隔离并支撑着。
3.根据权利要求1所述的防宠物踩踏式报警器及其测量区域长度区分脚型的方法,其特征在于,所述单片机系统包括一块单片机及其晶振电路和上电复位电路、随机存储器电路,其中,随机存储器电路由一块74HC373和64KB的RAM组成。
4.根据权利要求1所述的防宠物踩踏式报警器及其测量区域长度区分脚型的方法,其特征在于,所述串入并出电路由9块74HC164级联组成第一块74HC164的信号串行输入端 A连接到单片机系统的输出口线Pl. 2,其最高位输出端QH连接到第二块的信号串行输入端 A,第二块的最高位输出端OH连接到第三块的信号串行输入端A,依次类推,共产生8 (位/ 块)X9块=72位的信号并行输出端;9块74HC164的清零端与信号串行输入端B都连接到电池组的正极,它们的时钟信号输入端都连接到单片机系统的输出口线Pl. 3。
5.根据权利要求1所述的防宠物踩踏式报警器及其测量区域长度区分脚型的方法,其特征在于,所述并入串进电路由9块74HC165级联组成最后一块74HC165的并入串出信号端QH连接到前一块的信号串行输入端DS,依次类推,共产生8 (位/块)X 9块=72位的信号并行输入端,每一位信号并行输入端还各自连接一个下拉电阻到电池组的负极,第一块 74HC165的并入串出信号端QH连接到单片机系统的输入口线Pl. 5,这9块74HC165的并入数据装载控制端/PL都连接到单片机系统的输出口线Pl. 6,它们的时钟信号输入端都连接到单片机系统的输出口线Pl. 7,它们的时钟使能输入端/CE都连接到电池组的负极。
6.根据权利要求1所述的防宠物踩踏式报警器及其测量区域长度区分脚型的方法,其特征在于,所述测量区域长度区分脚型的方法包含在测量区域长度区分脚型程序中,用于区分人与小动物的脚型,其步骤如下步骤一、初始化单片机’堆栈初值,准备输出信号, ’准备输入信号,’初始化跟踪区域轮廓工作结束的标志位,M0V_SP,2FHCLR_P1. 2,PL 3,PL 7,P3. 7 SETB PL 5,PL 6CLR_F0 步骤二、初始化程序CLR_R5,CLR_R6’ R5, R6分别为距离的平方值的低、高字节寄存器,M0V_Ri;#AL,M0V_R2, #AH ’RAM中后部开辟有小块临时存储区,用于存储被跟踪区域的轮廓上坐标点的坐标,#AL, #AH分别为该区域的起始地址之低、高字节,R1, R2分别为RAM 中临时存储区地址指针的低字节和高字节寄存器,M0V_DPL, #AL, M0V_DPH, #AH MOV_R0,#RAM0, M0V_A, #00H LoopO :MOVX_iDPTR,A INC_DPTR DJNZ_R0,LoopO#RAM0为RAM中临时存储区的大小, ,清零RAM中临时存储区中的一个单元,,指向下一单元, ,R0为循环计数器,Loopl :MOV_R0, #Number_COL ,Number_COL 为列电极组中导线的数目, Loop2 :M0V_R3, #Number_ROW ,Number_ROff 为行电极组中导线的数目, SETB_P1. 2,NOP, CLR_P1. 2 ,清零串入并出电路的9块74HC164的输出端,步骤三、开始扫描检测被踩踏的区域1)通过单片机对行电极组中的第一根导线输出一个高电平,然后,逐根检测列电极组中导线的电平,其低、高电平分别以#00H,#01H表示且存储之M0V_@DPTR,#00H或MOVJg DPTR,#01H,其中,每检测完一根列电极组导线,y坐标指针就指向下一根列电极组导线 INC_DPL,如果检查完毕列电极组中的全部导线,即DPL = Number_COL,把x,y坐标指针指向下一根行电极组导线INC_DPH,M0V_DPL, #00H ;2)通过单片机对行电极组中的下一根导线输出一个高电平,然后,逐根检测列电极组中导线的电平,其低、高电平分别以#00H,#01H表示且存储之,其中,每检测完一根列电极组导线,y坐标指针就指向下一根列电极组导线,如果检查完毕列电极组中的全部导线,即DPL = Number_COL,把x,y坐标指针指向下一根行电极组导线;3)判断行电极组中当前处于高电平的导线是否超出其最后一根(a)DPH < Number_R0W,不是最后一根,跳转到本步骤三之2)继续进行扫描检测;(b)DPH= Number_ROff,已超出最后一根,执行下一步骤;步骤四、跟踪被踩踏区域的轮廓1)初始化X,y 坐标指针 DPTR :M0V_DPH, #01H, M0V_DPL, #01H ;2)暂存当前x,y坐标指针DPTR,称之为当前跟踪坐标指针,从RAM取出并查看当前位置的数据M0V_A,ODPTR (a)如果该数据为#00H,执行本步骤四之3);(b)如果该数据为#01H,查看位于当前坐标位置的上、右、下与左方的四邻 {(DPH — DPH-I,DPL)、(DPH,DPL — DPL+1)、(DPH — DPH+1,DPL)与(DPH,DPL — DPL-1)}处的四个数据,即按照跟踪区域轮廓的规则获取与行、列电极组导线被踩踏所致接触的区域对应的轮廓,接着,运用“逐点计算该轮廓点与其它轮廓点间的距离并保存其大者的方法”, 获得被踩踏区域的平方=L(R7)2 ;如果L(R7)2 ^ Long (Long为某个预设值),就判断为受到人的脚的踩踏,并发出警报信号SETB_P3. 7,延时约十秒,再撤除该报警信号CLR_P3. 7 ;DJNZ_R3, Loop2 DJNZ_R0,LooplR3为循环计数器, R0为循环计数器,M0V_DPH, #00H, M0V_DPL, #00H'初始化数据指针 DPTR,’分开为两个8位的X,y坐标指针;清零RAM内的临时存储区,然后,继续执行本步骤四之3);3)恢复当前X,y坐标指针DPTR为当前跟踪坐标指针,把它指向下一个坐标点如果当前坐标点已经处于本行最后的位置,即DPL = Number_C0L-l时,下一个坐标点为 (DPH — DPH+1, DPL — 1),否则,下一个坐标点为(DPH, DPL — DPL+1);4)如果X,y坐标指针DPTR尚未指向最后一行,即DPH< Number_R0W-l,跳转本步骤四之2),继续跟踪被踩踏区域的轮廓,否,则跳转到步骤一,开始新的一轮扫描检测工作。
7.根据权利要求1所述的防宠物踩踏式报警器及其测量区域长度区分脚型的方法,其特征在于,所述测量区域长度区分脚型程序之步骤四中所述跟踪区域轮廓的规则包括1)被跟踪区域的特征是“被跟踪区域内的每一个坐标点都对应着数据#01H,需要被跟踪的区域之外或需要被跟踪的区域之间的坐标点都对应着数据#00H” ;2)启动跟踪轮廓定时器,如果该定时器的计时时间到了预定的数置,复位单片机;3)当前坐标位置对应的数据为#01H,查看当前坐标位置的上、右、下与左方四个邻点对应的数据的关系,决定当前坐标位置的移动方向,该移动方向经过的路径就形成该区域的轮廓,有关移动当前坐标位置的规则如下a)如果其右方邻点对应的数据为#01H,其上、下、左方邻点对应的数据都为#00H,就把当前坐标位置移向其右方邻点处;b)如果其下方邻点对应的数据为#01H,其上、右、左方邻点对应的数据都为#00H,就把当前坐标位置移向其下方邻点处;c)如果其左方邻点对应的数据为#01H,其上、右、下方邻点对应的数据都为#00H,就把当前坐标位置移向其左方邻点处;d)如果其上方邻点对应的数据为#01H,其右、下、左方邻点对应的数据都为#00H,就把当前坐标位置移向其上方邻点处;e)如果其右、下方邻点对应的数据都为#01H,其左、上方邻点对应的数据都为#00H,就把当前坐标位置移向其右方邻点处;f)如果其下、左方邻点对应的数据都为#01H,其上、右方邻点对应的数据都为#00H,就把当前坐标位置移向其下方邻点处;g)如果其左、上方邻点对应的数据都为#01H,其右、下方邻点对应的数据都为#00H,就把当前坐标位置移向其左方邻点处;h)如果其上、右方邻点对应的数据都为#01H,其下、左方邻点对应的数据都为#00H,就把当前坐标位置移向其上方邻点处;i)如果其上、下方邻点对应的数据都为#01H,其右、左方邻点对应的数据都为#00H,且其由其左方邻点移动而来,就把当前坐标位置移向其上方邻点处;j)如果其上、下方邻点对应的数据都为#01H,其右、左方邻点对应的数据都为#00H,且其由其右方邻点移动而来,就把当前坐标位置移向其下方邻点处;k)如果其右、左方邻点对应的数据都为#01H,其上、下方邻点对应的数据都为#00H,且其由其上方邻点移动而来,就把当前坐标位置移向其右方邻点处;1)如果其右、左方邻点对应的数据都为#01H,其上、下方邻点对应的数据都为#00H,且其由其下方邻点移动而来,就把当前坐标位置移向其左方邻点处;m)如果其上方邻点对应的数据为#00H,其余三个邻点对应的数据都为#01H,就把当前坐标位置移向其右方邻点处;η)如果其右方邻点对应的数据为#00Η,其余三个邻点对应的数据都为#01Η,就把当前坐标位置移向其下方邻点处;ο)如果其下方邻点对应的数据为#00Η,其余三个邻点对应的数据都为#01Η,就把当前坐标位置移向其左方邻点处;P)如果其左方邻点对应的数据为#00Η,其余三个邻点对应的数据都为#01Η,就把当前坐标位置移向其上方邻点处;q)如果当前坐标位置的上、右、下与左方四个邻点对应的四个数据都是#00H,四个邻点中也没有出现本跟踪区域轮廓过程所获得的最前面的5个位置坐标之一,这时,尝试退出该“奇异的隅角”把当前坐标位置对应的数据置为#00H,从RAM内的临时存储区取出最后存进去的坐标值,把该坐标值赋予当前坐标位置指针即(DPH,DPL),也就是退回到前一个位置的坐标处,然后,按照上述跟踪区域轮廓的规则继续跟踪下一个曲线轮廓点,如果能够找到下一个曲线轮廓点,就继续跟踪区域轮廓的工作,否则,所遇到的“奇异的隅角”表明不存在封闭、连续的轮廓曲线,即没有形成被踩踏的区域,这时,清零RAM内的临时存储区,初始化RAM中临时存储区地址指针寄存器札,&,设置跟踪区域轮廓工作结束的标志位SETB_ Ftl,结束本轮跟踪区域轮廓的工作;r)如果当前坐标位置的上、右、下与左方四个邻点对应的四个数据都是#00H,四个邻点中出现了本跟踪区域轮廓过程所获得的最前面的5个位置坐标之一,这时,不清零RAM内的临时存储区,初始化RAM中临时存储区地址指针寄存器R1, &,设置跟踪区域轮廓工作结束的标志位即SETB-Ftl,依序把两个字节的数据(#FFH,#FFH)存入RAM中临时存储区,作为轮廓位置结束的标志,结束本轮跟踪区域轮廓工作;4)每次移动当前坐标位置之前,根据RAM中临时存储区地址指针寄存器R1,&把当前位置的坐标(DPH,DPL)依序存储在RAM内的临时存储区,然后使得RAM中临时存储区地址指针寄存器R1, R2指向下一处存储单元;5)每次移动当前坐标位置之前,把当前坐标位置对应的数据改写成#02H;6)上述诸规则中,所述数据#00H与非#01H的其它数据等效。
8.根据权利要求1所述的防宠物踩踏式报警器及其测量区域长度区分脚型的方法,其特征在于,所述测量区域长度区分脚型程序之步骤四所述“逐点计算该轮廓点与其它轮廓点间的距离并保存其大者的方法”包括下述步骤步骤一、把RAM中临时存储区地址指针初始值(#AH,#AL)赋予x,y坐标指针DPTR ; 步骤二、当前X,y坐标指针DPTR对应着RAM中临时存储区连续存放的两个字节,称这两个字节为当前轮廓位置(DPHP,DPLp),暂存当前X,y坐标指针DPTR,称之为当前轮廓位置的坐标,查看当前轮廓位置是不是轮廓位置结束的标志(#FFH,#FFH)是,被踩踏区域的长度的平方=L(R7)2 = I^6R5,清零I^6R5,结束本轮“逐点计算该轮廓点与其它轮廓点间的距离并保存其大者的”程序; 否,执行下一步骤;步骤三、χ, y坐标指针DPTR指向当前位置的下一个存储区域,从RAM中临时存储区取出连续的两个字节,称这两个字节为目标轮廓位置(DPiV DPLtj),查看它是不是轮廓位置结束的标志(#FFH,#FFH)是,则恢复X,y坐标指针DPTR为暂存的当前轮廓位置的坐标,然后,使X,y坐标指针 DPTR指向其对应的下一个存储区域,再跳转到步骤二 ;否,则计算当前轮廓位置与目标轮廓位置两点间的距离的平方L2 = (DPHp-DPH0)2+ (DPLp-DPL0)2 ;步骤四、比较L2与1 (距离的平方值的高、低字节暂存器),取其大者保存于1 ; 步骤五、跳转步骤三。
全文摘要
防宠物踩踏式报警器及其测量区域长度区分脚型的方法包括防宠物踩踏式报警器与测量区域长度区分脚型的方法两部分;后者体现于测量区域长度区分脚型程序,前者由一个长方形框架、电池组、单片机系统、串入并出电路、并入串进电路与音乐电路组成,其中,长方形框架的上部和底部分别设置有列、行电极组,其导线依序分别连接到并入串进电路的各个并行输入端与串入并出电路的各个并行输出端。所述程序按照两电极组导线的排列建立二维坐标系,借助单片机扫描检测被踩踏的区域、跟踪该区域的轮廓、计算轮廓点之间的距离并保存其大者作为该区域的长度、判断脚型并决定是否发出报警声,适用于防盗报警工作。
文档编号G08B13/10GK102339512SQ20101022851
公开日2012年2月1日 申请日期2010年7月16日 优先权日2010年7月16日
发明者张文娟, 张海明, 曾艺 申请人:重庆工商大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1