防宠物踩踏式报警器及其轮廓法测量面积区分脚型的方法 技术领域 本发明涉及安防电子技术领域, 特别是一种防宠物踩踏式报警装置以及一种测量 随机分布的若干区域的面积的方法。
背景技术
2010 年 7 月提交国家知识产权局专利局审查的发明 “防宠物踩踏式报警器及其测 量面积以区分脚型的方法” 借助单片机技术, 以 “数格子量面积的方法” 检测受到踩踏的区 域的面积, 据此区分人与小动物的脚型, 其防宠物踩踏式报警器经济、 实用。但是, 所述 “数 格子量面积的方法” 没有采取措施区分被踩踏的区域, 因而不能够检测、 识别并测量若干块 同时被踩踏的区域, 其结果有可能是某几块被踩踏区域的面积之和。 发明内容本发明的目的是提供一种防宠物踩踏式报警器及其轮廓法测量面积区分脚型的 方法, 所述轮廓法测量面积区分脚型的方法以所述防宠物踩踏式报警器为物理基础, 采用 单片机技术测量被踩踏的区域的面积, 据此区分人与小动物的脚型, 在受到人的踩踏时发 出报警声。
本发明实现其目的所采用的技术方案是 : 所述防宠物踩踏式报警器由一个长方形 框架、 电池组、 单片机系统、 串入并出电路、 并入串进电路、 音乐电路以及轮廓法测量面积以 区分脚型程序组成 ; 其中, 长方形框架的上部和底部各有一组电极, 分别称之为列电极组和 行电极组, 每一组电极包括 72 根彼此独立、 间距均匀、 裸露的导线, 两组导线排列的方向相 互垂直, 列电极组的导线依序分别连接到并入串进电路的各个并行输入端, 行电极组的导 线依序分别连接到串入并出电路的各个并行输出端, 单片机系统装载有轮廓法测量面积以 区分脚型程序, 其输出口线 P3.7 连接到音乐电路的输入端, 电池组作为本装置的电源。
所述长方形框架的上部和底部的两组电极由该框架的两侧绝缘隔离并支撑着。
所述单片机系统包括 : 一块单片机及其晶振电路和上电复位电路、 随机存储器电 路, 其中, 随机存储器电路由一块 74HC373 和 64KB 的 RAM 组成。
所述串入并出电路由 9 块 74HC164 级联组成 : 第一块 74HC164 的信号串行输入端 A 连接到单片机系统的输出口线 P1.2, 其最高位输出端 QH 连接到第二块的信号串行输入端 A, 第二块的最高位输出端 QH 连接到第三块的信号串行输入端 A, 依次类推, 共产生 8( 位 / 块 )×9 块= 72 位的信号并行输出端 ; 9 块 74HC164 的清零端与信号串行输入端 B 都连接 到电池组的正极, 它们的时钟信号输入端都连接到单片机系统的输出口线 P1.3。
所述并入串进电路由 9 块 74HC165 级联组成 : 最后一块 74HC165 的并入串出信号 端 QH 连接到前一块的信号串行输入端 DS, 依次类推, 共产生 8( 位 / 块 )×9 块= 72 位的信 号并行输入端, 每一位信号并行输入端还各自连接一个下拉电阻到电池组的负极, 第一块 74HC165 的并入串出信号端 QH 连接到单片机系统的输入口线 P1.5, 这 9 块 74HC165 的并入 数据装载控制端 /PL 都连接到单片机系统的输出口线 P1.6, 它们的时钟信号输入端都连接
到单片机系统的输出口线 P1.7, 它们的时钟使能输入端 /CE 都连接到电池组的负极。
本发明所述轮廓法测量面积区分脚型的方法包含在轮廓法测量面积以区分脚型 程序中, 用于区分人与小动物的脚型, 其步骤如下 :
步骤一、 初始化单片机 :
MOV_SP, 2FH ’ 堆栈初值,
CLR_P1.2, P1.3, P1.7, P3.7 ’ 准备输出信号,
SETB_P1.5, P1.6 ’ 准备输入信号,
CLR_F0 ’ 初始化跟踪区域轮廓工作结束的标志位,
步骤二、 初始化程序 :
CLR_R5, CLR_R6 ’ R5, R6 分别为格子计数器的低字节和高字节,
MOV_R1, #AL, MOV_R2, #AH ’ RAM 中后部开辟有小块临时存储区, 用于存储被 跟踪区域的轮廓上坐标点的坐标, #AL, #AH 分别为该区域的起始地址之低、 高字节, R 1, R2 分 别为 RAM 中临时存储区地址指针的低字节和高字节寄存器,
MOV_DPL, #AL, MOV_DPH, #AH
MOV_R0, #RAM0, MOV_A, #00H ’ #RAM0 为 RAM 中临时存储区的大小, Loop0 : MOVX_@DPTR, A ’ 清零 RAM 中临时存储区中的一个单元,
INC_DPTR ’ 指向下一单元,
DJNZ_R0, Loop0 ’ R0 为循环计数器,
Loop1 : MOV_R0, #Number_COL ’ Number_COL 为列电极组中导线的数目,
Loop2 : MOV_R3, #Number_ROW ’ Number_ROW 为行电极组中导线的数目,
SETB_P1.2, NOP, CLR_P1.2 ’ 清零串入并出电路的 9 块 74HC164 的输出端,
DJNZ_R3, Loop2 ’ R3 为循环计数器,
DJNZ_R0, Loop1 ’ R0 为循环计数器,
MOV_DPH, #00H, MOV_DPL, #00H’ 初始化数据指针 DPTR,
’ 分开为两个 8 位的 x, y 坐标指针,
步骤三、 开始扫描检测被踩踏的区域 :
1) 通过单片机对行电极组中的第一根导线输出一个高电平, 然后, 逐根检测列 电极组中导线的电平, 其低、 高电平分别以 #00H, #01H 表示且存储之 : MOV_@DPTR, #00H 或 MOV_@DPTR, #01H, 其中, 每检测完一根列电极组导线, y 坐标指针就指向下一根列电极组导 线: INC_DPL,
如果检查完毕列电极组中的全部导线, 即 DPL = Number_COL, 把 x, y 坐标指针指 向下一根行电极组导线 : INC_DPH, MOV_DPL, #00H ;
2) 通过单片机对行电极组中的下一根导线输出一个高电平, 然后, 逐根检测列电 极组中导线的电平, 其低、 高电平分别以 #00H, #01H 表示且存储之, 其中, 每检测完一根列 电极组导线, y 坐标指针就指向下一根列电极组导线,
如果检查完毕列电极组中的全部导线, 即 DPL = Number_COL, 把 x, y 坐标指针指 向下一根行电极组导线 ;
3) 判断行电极组中当前处于高电平的导线是否超出其最后一根 :
(a)DPH < Number_ROW, 不是最后一根, 跳转到本步骤三之 2) 继续进行扫描检测 ;
(b)DPH = Number_ROW, 已超出最后一根, 执行下一步骤 ;
步骤四、 跟踪被踩踏区域的轮廓 :
1) 初始化 x, y 坐标指针 DPTR : MOV_DPH, #01H, MOV_DPL, #01H ;
2) 暂存当前 x, y 坐标指针 DPTR, 称之为当前跟踪坐标指针, 从 RAM 取出并查看当 前位置的数据 : MOV_A, @DPTR :
(a) 如果该数据为 #00H, 执行步骤五 ;
(b) 如 果 该 数 据 为 #01H, 查 看 位 于 当 前 坐 标 位 置 的 上、 右、 下与左方的四邻 {(DPH ← DPH-1, DPL)、 (DPH, DPL ← DPL+1)、 (DPH ← DPH+1, DPL) 与 (DPH, DPL ← DPL-1)} 处的四个数据, 即按照跟踪区域轮廓的规则获取与行、 列电极组导线被踩踏所致接触的区 域对应的轮廓 ;
然后, 运用 “数格子量面积的方法” , 获得被踩踏区域的面积 : S(R7) ;
如果被踩踏区域的面积 S(R7) ≥ Area, (Area 为某个预定值 ), 就判断为受到人的 脚的踩踏, 并发出警报信号 : SETB_P3.7, 延时约十秒, 再撤除该报警信号 : CLR_P3.7 ; 执行 步骤五 ;
步骤五、 恢复当前 x, y 坐标指针 DPTR 为当前跟踪坐标指针, 把它指向下一个坐标 点: 如果当前坐标点已经处于本行最后的位置, 即 DPL = Number_COL-1 时, 下一个坐标点为 (DPH ← DPH+1, DPL ← 1), 否则, 下一个坐标点为 (DPH, DPL ← DPL+1) ;
步骤六、 如果 x, y 坐标指针 DPTR 尚未指向最后一行, 即: DPH < Number_ROW-1, 跳 转本步骤四之 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, 且其由其上方邻点移动而来, 就把当前坐标位置移向其右方邻点处 ;
l) 如果其右、 左方邻点对应的数据都为 #01H, 其上、 下方邻点对应的数据都为 #00H, 且其由其下方邻点移动而来, 就把当前坐标位置移向其左方邻点处 ;
m) 如果其上方邻点对应的数据为 #00H, 其余三个邻点对应的数据都为 #01H, 就把 当前坐标位置移向其右方邻点处 ; n) 如果其右方邻点对应的数据为 #00H, 其余三个邻点对应的数据都为 #01H, 就把 当前坐标位置移向其下方邻点处 ;
o) 如果其下方邻点对应的数据为 #00H, 其余三个邻点对应的数据都为 #01H, 就把 当前坐标位置移向其左方邻点处 ;
p) 如果其左方邻点对应的数据为 #00H, 其余三个邻点对应的数据都为 #01H, 就把 当前坐标位置移向其上方邻点处 ;
q) 如果当前坐标位置的上、 右、 下与左方四个邻点对应的四个数据都是 #00H, 四 个邻点中也没有出现本跟踪区域轮廓过程所获得的最前面的 5 个位置坐标之一, 这时, 尝 试退出该 “奇异的隅角” : 把当前坐标位置对应的数据置为 #00H, 从 RAM 内的临时存储区取 出最后存进去的坐标值, 把该坐标值赋予当前坐标位置指针即 (DPH, DPL), 也就是退回到前 一个位置的坐标处, 然后, 按照上述跟踪区域轮廓的规则继续跟踪下一个曲线轮廓点, 如果 能够找到下一个曲线轮廓点, 就继续跟踪区域轮廓的工作, 否则, 所遇到的 “奇异的隅角” 表 明不存在封闭、 连续的轮廓曲线, 即没有形成被踩踏的区域, 这时, 清零 RAM 内的临时存储 区, 初始化 RAM 中临时存储区地址指针寄存器 R1, R2, 设置跟踪区域轮廓工作结束的标志位 : SETB_F0, 结束本轮跟踪区域轮廓的工作 ;
r) 如果当前坐标位置的上、 右、 下与左方四个邻点对应的四个数据都是 #00H, 四 个邻点中出现了本跟踪区域轮廓过程所获得的最前面的 5 个位置坐标之一, 这时, 清零 RAM 内的临时存储区, 初始化 RAM 中临时存储区地址指针寄存器 R1, R2, 设置跟踪区域轮廓工作 结束的标志位 : SETB_F0, 结束本轮跟踪区域轮廓的工作 ;
4) 每次移动当前坐标位置之前, 根据 RAM 中临时存储区地址指针寄存器 R1, R2 把 当前位置的坐标 (DPH, DPL) 依序存储在 RAM 内的临时存储区, 然后使得 RAM 中临时存储区 地址指针寄存器 R1, R2 指向下一处存储单元 ;
5) 每次移动当前坐标位置之前, 把当前坐标位置对应的数据改写成 #FFH ;
6) 上述诸规则中, 所述数据 #00H 与非 #01H 的其它数据等效。
上述步骤四所述数格子量面积的方法包括下述步骤 :
步骤一、 初始化 x, y 坐标指针 DPTR : MOV_DPH, #00H, MOV_DPL, #00H ;
步骤二、 从 RAM 取出并查看当前位置的数据 : MOV_A, @DPTR,
(a) 如果该数据不等于 #01H, 跳到本方法之步骤三 ;
(b) 如果它等于 #01H, 先查看该坐标位置是否属于轮廓的包围之中 :
否, 则跳到本方法之步骤三 ;
是, 则查看当前坐标位置的正下方 (DPH ← DPH+1, DPL)、 左下角 (DPH ← DPH+1, DPL ← DPL-1) 两处的数据是否等于 #01H 或 #FFH, 是, 则格子计数器 R6R5 加 1 ; 还要查看当 前坐标位置的右邻 (DPH, DPL ← DPL+1) 对应的数据是否等于 #01H :
是, 跳转本方法之步骤三,
否, 进一步查看当前坐标位置的正下方 (DPH ← DPH+1, DPL)、 右下角 (DPH ← DPH+1, DPL ← DPL+1) 两处的数据是否等于 #01H 或 #FFH, 是, 则格子计数器 R6R5 也加 1 ;
若当前坐标位置位于边上的第一行、 第一列、 最后一行或最后一列, 则当前坐标 位置的正下方、 左下角、 右邻与右下角在 RAM 中没有相应的数据, 此时其坐标的特点是 DPH < 0、 DPL < 0、 DPH = Number_ROW 或 DPL = Number_COL, 权当这些坐标点处的数据为 #00H ; 步骤三、 x, y 坐标指针 DPTR 指向当前坐标位置的下一个坐标点 : 如果当前坐标 点已经超出本行倒数第一列, 即: DPL = Number_COL 时, 下一个坐标点为 (DPH ← DPH+1, DPL ← 0), 否则, 下一个坐标点为 (DPH, DPL ← DPL+1) ;
步骤四、 如果 x, y 坐标指针 DPTR 尚未超出倒数第一行, 即: DPH < Number_ROW, 跳 转本方法之步骤二, 继续本次数格子量面积的工作 ;
否, 则计算被踩踏的区域的面积 S(R7) = R6R5×Ssquare, 其中, Ssquare 为一个格子的 面积, 由行、 列电极组内导线的间距决定, 清零格子计数器 R6R5, 结束本次数格子量面积的工 作。
上述步骤四所述数格子量面积的方法之步骤二所述 “查看该坐标位置是否属于轮 廓的包围之中” 的本实施方法包括下述步骤 :
步骤一、 称当前位置为目标位置, 把其 x, y 坐标指针 DPTR 指向目标位置的左方, 逐 个坐标点地取出它们对应的数据, 即: DEC_DPL, MOVX_A, @DPTR, 并逐个坐标点地查看该数据 是否等于 #FFH :
如果遇到等于 #FFH 的坐标点, 跳到本实施方法之步骤二, 继续查看工作 ;
如果进行到 DPL = 0 还没有遇到等于 #FFH 的坐标点, 表明目标位置没有在轮廓的 包围之中, 建立标志 : F1 = 0, 结束本查看工作 ;
步骤二、 把 x, y 坐标指针 DPTR 指向目标位置的右方, 逐个坐标点地取出它们对应 的数据, 即: INC_DPL, MOVX_A, @DPTR, 并逐个坐标点地查看该数据是否等于 #FFH :
如果遇到等于 #FFH 的坐标点, 跳到本实施方法之步骤三, 继续查看工作 ;
如果进行到 DPL = Number_COL-1 还没有遇到等于 #FFH 的坐标点, 表明目标位置 没有在轮廓的包围之中, 建立标志 : F1 = 0, 结束本查看工作 ;
步骤三、 把 x, y 坐标指针 DPTR 指向目标位置的上方, 逐个坐标点地取出它们对应 的数据, 即: DEC_DPH, MOVX_A, @DPTR, 并逐个坐标点地查看该数据是否等于 #FFH :
如果遇到等于 #FFH 的坐标点, 跳到本实施方法步骤四, 继续查看工作 ;
如果进行到 DPH = 0 还没有遇到等于 #FFH 的坐标点, 表明目标位置没有在轮廓的 包围之中, 建立标志 : F1 = 0, 结束本查看工作 ;
步骤四、 把 x, y 坐标指针 DPTR 指向目标位置的下方, 逐个坐标点地取出它们对应 的数据, 即: INC_DPH, MOVX_A, @DPTR, 并逐个坐标点地查看该数据是否等于 #FFH :
如果遇到等于 #FFH 的坐标点, 说明该目标位置位于 #FFH 所标记的轮廓所包围的 区域内, 建立标志 : F1 = 1, 结束本查看工作 ;
如果进行到 DPH = Number_ROW-1 还没有遇到等于 #FFH 的坐标点, 表明目标位置 没有在轮廓的包围之中, 建立标志 : F1 = 0, 结束本查看工作。
本发明的优点是, 按照行、 列两电极组导线的排列建立二维坐标系, 借助单片机就 可以扫描检测被踩踏的区域、 逐块跟踪它们的轮廓、 对轮廓内区域数格子算面积、 判断脚型 并决定是否发出报警声 ; 所述测量面积的方法针对一块一块被踩踏的区域, 适用于防盗报 警工作。 附图说明
下面对照附图进一步具体说明本发明。图 1 是本发明的结构示意图。
图 2 是单片机系统的原理图。
图 3 是串入并出电路的原理图。
图 4 是跟踪区域轮廓的规则的示意图, 包括情形 (a)-(r) ; 其中, 每一种情形的中 心为当前坐标位置, 虚线箭头表示当前位置的来源方向, 实线箭头表示当前位置的移动方 向, 数据 0 与其它非 1 的数据等效, 情形 (q) 表示跟踪轮廓过程中可能遇到的 “奇异的隅 角” , 情形 (r) 表示跟踪轮廓过程的结束条件, 其中的 R7 表示本跟踪区域轮廓过程所获得的 最前面的 5 个位置坐标之一。
图 5 是并入串进电路的原理图。
图 6 是应用跟踪区域轮廓的规则的例子, 其中, a 是跟踪区域轮廓的起始点, b是 “奇异的隅角” , d 是跟踪区域轮廓的终止点。
图中, 1. 长方形框架, 11. 长方形框架 1 的侧面 ( 宽 ), 12. 长方形框架 1 的侧面 ( 长 ), 13. 长方形框架 1 底板上的 ( 行 ) 电极组, 14. 位于长方形框架的上部的 ( 列 ) 电极 组, 141. 目标区域 I, 142. 跟踪第一个目标区域的轮廓的起始点, 143. 跟踪目标区域轮廓的 行扫描检测方向, 144. 跟踪目标区域 I 获得的轮廓, 21.-29.74HC164, 31.-39.74HC165。 具体实施方式
本发明包括 : 一个长方形框架 (1)、 电池组、 单片机系统、 串入并出电路、 并入串进 电路、 音乐电路以及轮廓法测量面积以区分脚型程序。
长方形框架 (1) 如图 1 所示, 其上部和底部各有一组电极 (14) 和 (13), 分别称之 为列电极组和行电极组, 每一组电极由 72 根裸露的金属导线组成, 这些导线彼此独立, 间 距均匀, 两组电极 (14) 和 (13) 的导线排列的方向相互垂直 ( 不作严格要求 ), 由框架 (1) 的两侧 (11) 或 (12) 绝缘隔离并支撑着, 整个长方形框架的外部包裹着绝缘材料, 外形似踏 脚垫。单片机系统如图 2 所示, 图中没有画出单片机的上电复位电路和时钟电路。假设 行、 列电极组各有 256 根导线, 会产生 256×256 = 65536 个交叉点, 每个交叉点有两种状 10 态: 分离或接触, 而 64KB = 64×1024 = 64×2 = 65536, 因此, 需要扩展 64KB 片外 RAM, 其中还要包括至少 256B×2×4 = 2KB RAM 内的临时存储区, 以存储各轮廓点坐标的高、 低 字节。单片机需要选用 8051 系列中具有 40 个脚的, 最好它自带片内 Flash 程序存储器, 这 时, 其单片机的引脚 /EA 接到电源正极。
所 述 串 入 并 出 电 路 如 图 3 所 示,由 九 块 8 位 串 入 并 出 移 位 寄 存 器 74HC164(21)-(29) 级联组成, 其 72 个输出端 QA, QB, QC, QD, QE, ...... 分别依次连接到长 方形框架 (1) 的底部的行电极组 (13) 中的每根金属导线。
所 述 并 入 串 进 电 路 如 图 5 所 示,由 九 块 8 位 并 入 串 出 移 位 寄 存 器 74HC165(31)-(39) 级联组成, 其 72 个输出端 A, B, C, D, E, ...... 分别依次连接到长方形框 架 (1) 的上部的列电极组 (14) 中的每根金属导线。这 72 个输出端 A, R, C, D, E, ...... 的 每一个还各自连接一个~ 30KΩ 的下拉电阻到电源的负端, 因为简洁缘故, 图 5 中并没有全 部画出这些下拉电阻。
音乐电路采用音乐集成电路配合扬声器, 或者只使用一只蜂鸣器, 用于发出报警 声。
平时, 行、 列电极组中导线在空间上相互交叉但没有接触, 列电极组中的导线的电 势被下拉到电源地, 单片机通过串入并出电路逐根扫描式输出高电平到行电极组的导线。 受到踩踏时, 被踩踏的区域内行、 列电极组中的导线发生接触, 依序使得位于这些接触点的 列电极组中的导线也处于高电平。 可以选取位于左上角的第一个交叉点所在处作坐标系的 原点, 按照行、 列电极组中导线的排列方向建立坐标系, 单片机通过扫描检测获得空间上相 互交叉的点的高、 低电平, 被存储在 64KB 片外 RAM 中。这样, 用 #00H, #01H 两个数码就表示 了整个防宠物踩踏式报警器所警戒的区域的状况。
需要区分被踩踏的区域, 从而能够分别对各个被踩踏区域 “数格子量面积” , 其工 作即 “跟踪被踩踏区域的轮廓” 。
轮廓法测量面积以区分脚型程序之步骤四叙述了 “跟踪被踩踏区域的轮廓” 的 方法, 它按照从左向右、 从上向下的行、 列检测顺序, 寻找代表被踩踏的电极接触点的数据 #01H, 直到最后一行的最后一个坐标点被搜索完毕为止。每一次找到数据 #01H 时, 先暂存 当前 x, y 坐标指针 DPTR, 称之为当前跟踪坐标指针, 然后, 遵循 “跟踪区域轮廓的规则” (如 图 4 所描述 ), 开始跟踪从此坐标点起始的被踩踏区域 ( 用数据 #01H 表示 ) 的轮廓。跟踪 过程中, x, y 坐标位置指针逐个坐标点地移动, 每一次移动前, 当前坐标点的数据被改写成 #FFH, 其坐标 (DPH, DPL) 被保存在 RAM 内的临时存储区, 它们构成了被跟踪区域的轮廓。
图 6 描述了一个应用 “跟踪区域轮廓的规则” 的例子。
紧接着, 开始轮廓法测量面积以区分脚型程序之步骤四所述 “数格子量面积” : 按 照从左向右、 从上向下的行、 列检测顺序, 逐个坐标点地在整个防宠物踩踏式报警器所警戒 的区域内搜索数据 #01H, 如果找到了 #01H 的坐标点, 就分析它是否处于 #FFH 所表示的轮廓 之包围中, 如果它属于该轮廓包围圈内, 再分析其四邻是否是被踩踏点, 需不需要计数该格 子。
“数格子量面积的方法” 如轮廓法测量面积以区分脚型程序之步骤四所述。参见图 6, 数格子规则之要点是 : 1) 从左向右、 从上向下逐个坐标点地查看并统计格子, 2) 遇到 #01H 的时候, 先按照 “正下方 - 左下方” 路线进行查看, 如果该路线上相关的三个交叉点的 数据都为 #01H 或 #FFH, 则表示该踩踏区域内包围了一个格子 ; 然后, 查看其右边的点的数 据是否为 #01H : 是 #01H, 则按下一个坐标点来统计格子, 否, 则按照 “正下方 - 右下方” 路线 查看, 如果该路线上相关的三个交叉点的数据都为 #01H 或 #FFH, 则表示该踩踏区域内还得 计数一个格子 ; 3) 数到最后一行的最后一个坐标点结束本次数格子工作。
踩踏区域的面积等于统计出的被踩踏区域内格子的数量乘上一个格子的面积。 根 据被踩踏区域面积的大小, 可以分析受到的踩踏的性质, 判断是否属于人的踩踏还是小动 物的踩踏。
本发明所述单片机系统的输出或输入端口线可以根据实际情形加以变换, 所述列 或行电极组所包含的导线的数目及其间距、 相应的串入并出、 并入串出移位寄存器的数目 以及随机存储器的容量可以根据本发明所述扫描检测原理增加或减少。