專利名稱:防寵物踩踏式報警器及其測量區(qū)域長度區(qū)分腳型的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及安防電子技術(shù)領(lǐng)域,特別是一種防寵物踩踏式報警裝置以及一種測量被踩踏區(qū)域的長度的方法。
背景技術(shù):
2010年6月中旬提交國家知識產(chǎn)權(quán)局專利局審查的“踩踏式報警器”、“防觸摸踩踏式報警器”和“防觸摸振動踩踏式報警器”等系列實用新型在受到踩踏的時候會發(fā)出聲或光的報警信號,結(jié)構(gòu)簡潔,經(jīng)濟(jì)實用,但是,這些報警裝置區(qū)分不清受到的是人的踩踏還是貓或狗或老鼠或雞等小動物的踩踏,受到這些寵物踩踏時會引發(fā)不必要的報警??紤]到人的腳型的寬度明顯地大于上述寵物的腳的寬度,同期提交審查的發(fā)明專利“防寵物踩踏式報警器及其區(qū)分人與小動物踩踏的方法”借助單片微型計算機(jī)技術(shù),提出了一種測量被踩踏區(qū)域的寬度以區(qū)分人與小動物踩踏的方法,并以此為基礎(chǔ)設(shè)計了防寵物踩踏式報警器系列實用新型,它們僅僅警告人的踩踏,不理睬寵物的踩踏。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種防寵物踩踏式報警器及其測量區(qū)域長度區(qū)分腳型的方法,所述測量區(qū)域長度區(qū)分腳型的方法以所述防寵物踩踏式報警器為物理基礎(chǔ),采用單片機(jī)技術(shù)測量被踩踏的區(qū)域的長度,據(jù)此區(qū)分人與小動物的腳型,在受到人的踩踏時發(fā)出報警聲。本發(fā)明實現(xiàn)其目的所采用的技術(shù)方案是所述防寵物踩踏式報警器由一個長方形框架、電池組、單片機(jī)系統(tǒng)、串入并出電路、并入串進(jìn)電路、音樂電路以及測量區(qū)域長度區(qū)分腳型程序組成;其中,長方形框架的上部和底部各有一組電極,分別稱之為列電極組和行電極組,每一組電極包括72根彼此獨(dú)立、間距均勻、裸露的導(dǎo)線,兩組導(dǎo)線排列的方向相互垂直,列電極組的導(dǎo)線分別依序連接到并入串進(jìn)電路的各個并行輸入端,行電極組的導(dǎo)線分別依序連接到串入并出電路的各個并行輸出端,單片機(jī)系統(tǒng)裝載有測量區(qū)域長度區(qū)分腳型程序,其輸出口線P3. 7連接到音樂電路的輸入端,電池組作為本裝置的電源。所述長方形框架的上部和底部的兩組電極由該框架的兩側(cè)絕緣隔離并支撐著。所述單片機(jī)系統(tǒng)包括一塊單片機(jī)及其晶振電路和上電復(fù)位電路、隨機(jī)存儲器電路,其中,隨機(jī)存儲器電路由一塊74HC373和64KB的RAM組成。所述串入并出電路由9塊74HC164級聯(lián)組成第一塊74HC164的信號串行輸入端 A連接到單片機(jī)系統(tǒng)的輸出口線Pl. 2,其最高位輸出端QH連接到第二塊的信號串行輸入端 A,第二塊的最高位輸出端QH連接到第三塊的信號串行輸入端A,依次類推,共產(chǎn)生8 (位/ 塊)X9塊=72位的信號并行輸出端;9塊74HC164的清零端與信號串行輸入端B都連接到電池組的正極,它們的時鐘信號輸入端都連接到單片機(jī)系統(tǒng)的輸出口線Pl. 3。所述并入串進(jìn)電路由9塊74HC165級聯(lián)組成最后一塊74HC165的并入串出信號端QH連接到前一塊的信號串行輸入端DS,依次類推,共產(chǎn)生8 (位/塊)X 9塊=72位的信號并行輸入端,每一位信號并行輸入端還各自連接一個下拉電阻到電池組的負(fù)極,第一塊 74HC165的并入串出信號端QH連接到單片機(jī)系統(tǒng)的輸入口線Pl. 5,這9塊74HC165的并入數(shù)據(jù)裝載控制端/PL都連接到單片機(jī)系統(tǒng)的輸出口線Pl. 6,它們的時鐘信號輸入端都連接到單片機(jī)系統(tǒng)的輸出口線Pl. 7,它們的時鐘使能輸入端/CE都連接到電池組的負(fù)極。
人的腳型大致上呈長方形,其長度明顯地大于其它寵物的腳的長度。因此,本發(fā)明所述測量區(qū)域長度區(qū)分腳型的方法包含在測量區(qū)域長度區(qū)分腳型程序中,用于區(qū)分人與小動物的腳型,其步驟如下步驟一、初始化單片機(jī)
M0V_SP,2FH’堆棧初值,
CLR_P1. 2,PL 3,PL 7,Ρ3· 7,準(zhǔn)備輸出信號,
SETB_P1. 5,PL 6’準(zhǔn)備輸入信號,
CLR_F0’初始化跟蹤區(qū)域輪廓工作結(jié)束的標(biāo)志位,
步驟二、初始化程序
CLR R5,CLR R6,R5, R6分別為距離的平方值的低、高字節(jié)寄存器,
MOV-R1, #AL,M0V_R2,#AH ,RAM中后部開辟有小塊臨時存儲區(qū),用于存儲被跟蹤區(qū)域的輪廓上坐標(biāo)點(diǎn)的坐標(biāo),#AL, #AH分別為該區(qū)域的起始地址之低、高字節(jié),R1, R2分別為RAM中臨時存儲區(qū)地址指針的低字節(jié)和高字節(jié)寄存器,
M0V_DPL, #AL,M0V_DPH, #AH
MOV_R0,#RAM0, M0V_A, #00H’ #RAM0為RAM中臨時存儲區(qū)的大小,
LoopO :M0VX_iDPTR,A,清零RAM中臨時存儲區(qū)中的一個單元,
INC_DPTR,指向下一單元,
DJNZ_R0,LoopO’ R0為循環(huán)計數(shù)器,
Loopl :MOV_R0, #Number_C0L’ Number_C0L為列電極組中導(dǎo)線的數(shù)目,
Loop2 :M0V_R3, #Number_R0W,Number_R0W為行電極組中導(dǎo)線的數(shù)目,
SETB_P1. 2, NOP, CLR_P1. 2,清零串入并出電路的9塊74HC164的輸出端,DJNZ_R3, Loop2,R3 為循環(huán)計數(shù)器,DJNZ_R。,Loopl,R0 為循環(huán)計數(shù)器,M0V_DPH, #00H, M0V_DPL, #00H'初始化數(shù)據(jù)指針 DPTR,,分開為兩個8位的X,y坐標(biāo)指針;步驟三、開始掃描檢測被踩踏的區(qū)域1)通過單片機(jī)對行電極組中的第一根導(dǎo)線輸出一個高電平,然后,逐根檢測列電極組中導(dǎo)線的電平,其低、高電平分別以#00H,#01H表示且存儲之M0V_@DPTR,#00H或 M0V_iDPTR, #01H,其中,每檢測完一根列電極組導(dǎo)線,y坐標(biāo)指針就指向下一根列電極組導(dǎo)線INC_DPL,如果檢查完畢列電極組中的全部導(dǎo)線,即DPL = Number_C0L,把x,y坐標(biāo)指針指向下一根行電極組導(dǎo)線INC_DPH,M0V_DPL, #00H ;2)通過單片機(jī)對行電極組中的下一根導(dǎo)線輸出一個高電平,然后,逐根檢測列電極組中導(dǎo)線的電平,其低、高電平分別以#00H,#01H表示且存儲之,其中,每檢測完一根列電極組導(dǎo)線,y坐標(biāo)指針就指向下一根列電極組導(dǎo)線,
如果檢查完畢列電極組中的全部導(dǎo)線,即DPL = Number_C0L,把x,y坐標(biāo)指針指向下一根行電極組導(dǎo)線;3)判斷行電極組中當(dāng)前處于高電平的導(dǎo)線是否超出其最后一根(a) DPH < Number_R0ff,不是最后一根,跳轉(zhuǎn)到本步驟三之2)繼續(xù)進(jìn)行掃描檢測;(b)DPH = Number_R0ff,已超出最后一根,執(zhí)行下一步驟;步驟四、跟蹤被踩踏區(qū)域的輪廓1)初始化 X,y 坐標(biāo)指針 DPTR :M0V_DPH, #01H, M0V_DPL, #01H ;2)暫存當(dāng)前X,y坐標(biāo)指針DPTR,稱之為當(dāng)前跟蹤坐標(biāo)指針,從RAM取出并查看當(dāng)前位置的數(shù)據(jù)M0V_A,ODPTR (a)如果該數(shù)據(jù)為#00H,執(zhí)行本步驟四之3);(b)如果該數(shù)據(jù)為#01H,查看位于當(dāng)前坐標(biāo)位置的上、右、下與左方的四鄰 {(DPH — DPH-I,DPL)、(DPH,DPL — DPL+1)、(DPH — DPH+1,DPL)與(DPH,DPL — DPL-1)}處的四個數(shù)據(jù),即按照跟蹤區(qū)域輪廓的規(guī)則獲取與行、列電極組導(dǎo)線被踩踏所致接觸的區(qū)域?qū)?yīng)的輪廓,接著,運(yùn)用“逐點(diǎn)計算該輪廓點(diǎn)與其它輪廓點(diǎn)間的距離并保存其大者的方法”, 獲得被踩踏區(qū)域的長度的平方=L(R7)2 ;如果L (R7)2 ^ Long (Long為某個預(yù)設(shè)值),就判斷為受到人的腳的踩踏,并發(fā)出警報信號SETB_P3. 7,延時約十秒,再撤除該報警信號CLR_P3. 7 ;清零RAM內(nèi)的臨時存儲區(qū),然后,繼續(xù)執(zhí)行本步驟四之3);3)恢復(fù)當(dāng)前X,y坐標(biāo)指針DPTR為當(dāng)前跟蹤坐標(biāo)指針,把它指向下一個坐標(biāo)點(diǎn) 如果當(dāng)前坐標(biāo)點(diǎn)已經(jīng)處于本行最后的位置,即DPL = Number_C0L-l時,下一個坐標(biāo)點(diǎn)為 (DPH — DPH+1, DPL — 1),否則,下一個坐標(biāo)點(diǎn)為(DPH, DPL — DPL+1);4)如果X,y坐標(biāo)指針DPTR尚未指向最后一行,即DPH < Number_R0W_l,跳轉(zhuǎn)本步驟四之2),繼續(xù)跟蹤被踩踏區(qū)域的輪廓,否,則轉(zhuǎn)到步驟一,重新開始掃描檢查工作。上述步驟四中所述跟蹤區(qū)域輪廓的規(guī)則包括1)被跟蹤區(qū)域的特征是“被跟蹤區(qū)域內(nèi)的每一個坐標(biāo)點(diǎn)都對應(yīng)著數(shù)據(jù)#01H,需要被跟蹤的區(qū)域之外或需要被跟蹤的區(qū)域之間的坐標(biāo)點(diǎn)都對應(yīng)著數(shù)據(jù)#00H” ;2)啟動跟蹤輪廓定時器,如果該定時器的計時時間到了預(yù)定的數(shù)置,復(fù)位單片機(jī);3)當(dāng)前坐標(biāo)位置對應(yīng)的數(shù)據(jù)為#01H,查看當(dāng)前坐標(biāo)位置的上、右、下與左方四個鄰點(diǎn)對應(yīng)的數(shù)據(jù)的關(guān)系,決定當(dāng)前坐標(biāo)位置的移動方向,該移動方向經(jīng)過的路徑就形成該區(qū)域的輪廓,有關(guān)移動當(dāng)前坐標(biāo)位置的規(guī)則如下a)如果其右方鄰點(diǎn)對應(yīng)的數(shù)據(jù)為#01H,其上、下、左方鄰點(diǎn)對應(yīng)的數(shù)據(jù)都為#00H, 就把當(dāng)前坐標(biāo)位置移向其右方鄰點(diǎn)處;b)如果其下方鄰點(diǎn)對應(yīng)的數(shù)據(jù)為#01H,其上、右、左方鄰點(diǎn)對應(yīng)的數(shù)據(jù)都為#00H, 就把當(dāng)前坐標(biāo)位置移向其下方鄰點(diǎn)處;c)如果其左方鄰點(diǎn)對應(yīng)的數(shù)據(jù)為#01H,其上、右、下方鄰點(diǎn)對應(yīng)的數(shù)據(jù)都為#00H, 就把當(dāng)前坐標(biāo)位置移向其左方鄰點(diǎn)處;d)如果其上方鄰點(diǎn)對應(yīng)的數(shù)據(jù)為#01H,其右、下、左方鄰點(diǎn)對應(yīng)的數(shù)據(jù)都為#00H, 就把當(dāng)前坐標(biāo)位置移向其上方鄰點(diǎn)處;
e)如果其右、下方鄰點(diǎn)對應(yīng)的數(shù)據(jù)都為#01H,其左、上方鄰點(diǎn)對應(yīng)的數(shù)據(jù)都為 #00H,就把當(dāng)前坐標(biāo)位置移向其右方鄰點(diǎn)處;f)如果其下、左方鄰點(diǎn)對應(yīng)的數(shù)據(jù)都為#01H,其上、右方鄰點(diǎn)對應(yīng)的數(shù)據(jù)都為 #00H,就把當(dāng)前坐標(biāo)位置移向其下方鄰點(diǎn)處;g)如果其左、上方鄰點(diǎn)對應(yīng)的數(shù)據(jù)都為#01H,其右、下方鄰點(diǎn)對應(yīng)的數(shù)據(jù)都為 #00H,就把當(dāng)前坐標(biāo)位置移向其左方鄰點(diǎn)處;h)如果其上、右方鄰點(diǎn)對應(yīng)的數(shù)據(jù)都為#01H,其下、左方鄰點(diǎn)對應(yīng)的數(shù)據(jù)都為 #00H,就把當(dāng)前坐標(biāo)位置移向其上方鄰點(diǎn)處;i)如果其上、下方鄰點(diǎn)對應(yīng)的數(shù)據(jù)都為#01H,其右、左方鄰點(diǎn)對應(yīng)的數(shù)據(jù)都為 #00H,且其由其左方鄰點(diǎn)移動而來,就把當(dāng)前坐標(biāo)位置移向其上方鄰點(diǎn)處;j)如果其上、下方鄰點(diǎn)對應(yīng)的數(shù)據(jù)都為#01H,其右、左方鄰點(diǎn)對應(yīng)的數(shù)據(jù)都為 #00H,且其由其右方鄰點(diǎn)移動而來,就把當(dāng)前坐標(biāo)位置移向其下方鄰點(diǎn)處;k)如果其右、左方鄰點(diǎn)對應(yīng)的數(shù)據(jù)都為#01H,其上、下方鄰點(diǎn)對應(yīng)的數(shù)據(jù)都為 #00H,且其由其上方鄰點(diǎn)移動而來,就把當(dāng)前坐標(biāo)位置移向其右方鄰點(diǎn)處;1)如果其右、左方鄰點(diǎn)對應(yīng)的數(shù)據(jù)都為#01H,其上、下方鄰點(diǎn)對應(yīng)的數(shù)據(jù)都為 #00H,且其由其下方鄰點(diǎn)移動而來,就把當(dāng)前坐標(biāo)位置移向其左方鄰點(diǎn)處;m)如果其上方鄰點(diǎn)對應(yīng)的數(shù)據(jù)為#00H,其余三個鄰點(diǎn)對應(yīng)的數(shù)據(jù)都為#01H,就把當(dāng)前坐標(biāo)位置移向其右方鄰點(diǎn)處;η)如果其右方鄰點(diǎn)對應(yīng)的數(shù)據(jù)為#00Η,其余三個鄰點(diǎn)對應(yīng)的數(shù)據(jù)都為#01Η,就把當(dāng)前坐標(biāo)位置移向其下方鄰點(diǎn)處;ο)如果其下方鄰點(diǎn)對應(yīng)的數(shù)據(jù)為#00Η,其余三個鄰點(diǎn)對應(yīng)的數(shù)據(jù)都為#01Η,就把當(dāng)前坐標(biāo)位置移向其左方鄰點(diǎn)處;ρ)如果其左方鄰點(diǎn)對應(yīng)的數(shù)據(jù)為#00Η,其余三個鄰點(diǎn)對應(yīng)的數(shù)據(jù)都為#01Η,就把當(dāng)前坐標(biāo)位置移向其上方鄰點(diǎn)處;q)如果當(dāng)前坐標(biāo)位置的上、右、下與左方四個鄰點(diǎn)對應(yīng)的四個數(shù)據(jù)都是#00H,四個鄰點(diǎn)中也沒有出現(xiàn)本跟蹤區(qū)域輪廓過程所獲得的最前面的5個位置坐標(biāo)之一,這時,嘗試退出該“奇異的隅角”把當(dāng)前坐標(biāo)位置對應(yīng)的數(shù)據(jù)置為#00H,從RAM內(nèi)的臨時存儲區(qū)取出最后存進(jìn)去的坐標(biāo)值,把該坐標(biāo)值賦予當(dāng)前坐標(biāo)位置指針即(DPH,DPL),也就是退回到前一個位置的坐標(biāo)處,然后,按照上述跟蹤區(qū)域輪廓的規(guī)則繼續(xù)跟蹤下一個曲線輪廓點(diǎn),如果能夠找到下一個曲線輪廓點(diǎn),就繼續(xù)跟蹤區(qū)域輪廓的工作,否則,所遇到的“奇異的隅角”表明不存在封閉、連續(xù)的輪廓曲線,即沒有形成被踩踏的區(qū)域,這時,清零RAM內(nèi)的臨時存儲區(qū),初始化RAM中臨時存儲區(qū)地址指針寄存器R1A2,設(shè)置跟蹤區(qū)域輪廓工作結(jié)束的標(biāo)志位 SETB-Ftl,結(jié)束本輪跟蹤區(qū)域輪廓的工作;r)如果當(dāng)前坐標(biāo)位置的上、右、下與左方四個鄰點(diǎn)對應(yīng)的四個數(shù)據(jù)都是#00H,四個鄰點(diǎn)中出現(xiàn)了本跟蹤區(qū)域輪廓過程所獲得的最前面的5個位置坐標(biāo)之一,這時,不清零 RAM內(nèi)的臨時存儲區(qū),初始化RAM中臨時存儲區(qū)地址指針寄存器札,&,設(shè)置跟蹤區(qū)域輪廓工作結(jié)束的標(biāo)志位即SETB-Ftl,依序把兩個字節(jié)的數(shù)據(jù)(#FFH,#FFH)存入RAM中臨時存儲區(qū), 作為輪廓位置結(jié)束的標(biāo)志,結(jié)束本輪跟蹤區(qū)域輪廓工作;4)每次移動當(dāng)前坐標(biāo)位置之前,根據(jù)RAM中臨時存儲區(qū)地址指針寄存器R1, R2把當(dāng)前位置的坐標(biāo)(DPH,DPL)依序存儲在RAM內(nèi)的臨時存儲區(qū),然后使得RAM中臨時存儲區(qū)地址指針寄存器R1, R2指向下一處存儲單元;5)每次移動當(dāng)前坐標(biāo)位置之前,把當(dāng)前坐標(biāo)位置對應(yīng)的數(shù)據(jù)改寫成#02H ;6)上述諸規(guī)則中,所述數(shù)據(jù)#00H與非#01H的其它數(shù)據(jù)等效。上述步驟四所述“逐點(diǎn)計算該輪廓點(diǎn)與其它輪廓點(diǎn)間的距離并保存其大者的方法”包括下述步驟步驟一、把RAM中臨時存儲區(qū)地址指針初始值(#AH,#AL)賦予x,y坐標(biāo)指針DPTR ;步驟二、當(dāng)前X,y坐標(biāo)指針DPTR對應(yīng)著RAM中臨時存儲區(qū)連續(xù)存放的兩個字節(jié), 稱這兩個字節(jié)為當(dāng)前輪廓位置(DPHP,DPLp),暫存當(dāng)前X,y坐標(biāo)指針DPTR,稱之為當(dāng)前輪廓位置的坐標(biāo),查看當(dāng)前輪廓位置是不是輪廓位置結(jié)束的標(biāo)志(#FFH,#FFH)是,被踩踏區(qū)域的長度的平方=L(R7)2 = Ii6R5,清零Ii6R5,結(jié)束本輪“逐點(diǎn)計算該輪廓點(diǎn)與其它輪廓點(diǎn)間的距離并保存其大者的,,程序;否,執(zhí)行下一步驟;步驟三、X,y坐標(biāo)指針DPTR指向當(dāng)前位置的下一個存儲區(qū)域,從RAM中臨時存儲區(qū)取出連續(xù)的兩個字節(jié),稱這兩個字節(jié)為目標(biāo)輪廓位置(DPHy DPI^),查看它是不是輪廓位置結(jié)束的標(biāo)志(#FFH,#FFH)是,則恢復(fù)X,y坐標(biāo)指針DPTR為暫存的當(dāng)前輪廓位置的坐標(biāo),然后,使x,y坐標(biāo)指針DPTR指向其對應(yīng)的下一個存儲區(qū)域,再跳轉(zhuǎn)到步驟二 ;否,則計算當(dāng)前輪廓位置與目標(biāo)輪廓位置兩點(diǎn)間的距離的平方L2 = (DPHp-DPH0)2+ (DPLp-DPL0)2 ;步驟四、比較L2與1 (距離的平方值的高、低字節(jié)暫存器),取其大者保存于
ReR5 ;步驟五、跳轉(zhuǎn)步驟三。本發(fā)明的優(yōu)點(diǎn)是,按照行、列兩電極組導(dǎo)線的排列建立二維坐標(biāo)系,借助單片機(jī)就可以掃描檢測被踩踏的區(qū)域、跟蹤它的輪廓、計算該輪廓的長度、判斷腳型并決定是否發(fā)出報警聲;所述測量區(qū)域長度區(qū)分腳型的方法適合單片機(jī)指令,其技術(shù)經(jīng)濟(jì)、實用。
下面對照附圖進(jìn)一步具體說明本發(fā)明。圖1是本發(fā)明的結(jié)構(gòu)示意圖。圖2是單片機(jī)系統(tǒng)的原理圖。圖3是串入并出電路的原理圖。圖4是跟蹤區(qū)域輪廓的規(guī)則的示意圖,包括情形(a)-(r);其中,每一種情形的中心為當(dāng)前坐標(biāo)位置,虛線箭頭表示當(dāng)前位置的來源方向,實線箭頭表示當(dāng)前位置的移動方向,數(shù)據(jù)0與其它非1的數(shù)據(jù)等效,情形(q)表示跟蹤輪廓過程中可能遇到的“奇異的隅角”,情形(r)表示跟蹤輪廓過程的結(jié)束條件,其中的Ii7對應(yīng)著本輪跟蹤區(qū)域輪廓過程所獲得的最前面的5個位置坐標(biāo)之一。圖5是并入串進(jìn)電路的原理圖。圖6是應(yīng)用跟蹤區(qū)域輪廓的規(guī)則的例子,圖中,a是跟蹤區(qū)域輪廓的起始點(diǎn),b是“奇異的隅角”,d是跟蹤過程的終止點(diǎn)。圖中,1.長方形框架,11.長方形框架1的側(cè)面(寬),12.長方形框架1的側(cè)面 (長),13.長方形框架1底板上的(行)電極組,14.位于長方形框架的上部的(列)電極組,141.目標(biāo)區(qū)域,142.跟蹤目標(biāo)區(qū)域的輪廓的起始點(diǎn),143.跟蹤目標(biāo)區(qū)域輪廓的行掃描檢測方向,144.跟蹤目標(biāo)區(qū)域獲得的輪廓,21. -29. 74HC164,31. -39. 74HC165。
具體實施例方式本發(fā)明包括一個長方形框架(1)、電池組、單片機(jī)系統(tǒng)、串入并出電路、并入串進(jìn)電路、音樂電路以及測量區(qū)域長度區(qū)分腳型程序。長方形框架(1)如圖1所示,其上部和底部各有一組電極(14)和(13),分別稱之為列電極組和行電極組,每一組電極由72根裸露的金屬導(dǎo)線組成,這些導(dǎo)線彼此獨(dú)立,間距均勻,兩組電極(14)和(13)的導(dǎo)線排列的方向相互垂直(不作嚴(yán)格要求),由框架(1) 的兩側(cè)(11)或(1 絕緣隔離并支撐著,整個長方形框架的外部包裹著絕緣材料,外形似踏腳墊。單片機(jī)系統(tǒng)如圖2所示,圖中沒有畫出單片機(jī)的上電復(fù)位電路和時鐘電路。假設(shè)行、列電極組各有256根導(dǎo)線,會產(chǎn)生256X256 = 65536個交叉點(diǎn),每個交叉點(diǎn)有兩種狀態(tài)分離或接觸,而64KB = 64X 1024 = 64X 210 = 65536,因此,需要擴(kuò)展64KB片外RAM, 其中還要包括至少256BX2X4 = 2KB RAM內(nèi)的臨時存儲區(qū),以存儲各輪廓點(diǎn)坐標(biāo)的高、低字節(jié)。單片機(jī)需要選用8051系列中具有40個腳的,最好它自帶片內(nèi)Flash程序存儲器,這時,其單片機(jī)的引腳/EA接到電源正極。所述串入并出電路如圖3所示,由九塊8位串入并出移位寄存器
74HC164(21)-(29)級聯(lián)組成,其72個輸出端OA, QB, QC, QD, QE,......分別依次連接到長
方形框架(1)的底部的行電極組(13)中的每根金屬導(dǎo)線。所述并入串進(jìn)電路如圖5所示,由九塊8位并入串出移位寄存器
74HC165(31)-(39)級聯(lián)組成,其72個輸出端A,B,C,D,E,......分別依次連接到長方形框
架(1)的上部的列電極組(14)中的每根金屬導(dǎo)線。這72個輸出端A,B,C,D,E,......的
每一個還各自連接一個 30ΚΩ的下拉電阻到電源的負(fù)端,因為簡潔緣故,圖5中并沒有全部畫出這些下拉電阻。音樂電路采用音樂集成電路配合揚(yáng)聲器,或者只使用一只蜂鳴器,用于發(fā)出報警聲。平時,行、列電極組中導(dǎo)線在空間上相互交叉但沒有接觸,列電極組中的導(dǎo)線的電勢被下拉到電源地,單片機(jī)通過串入并出電路逐根掃描式輸出高電平到行電極組的導(dǎo)線。 受到踩踏時,被踩踏的區(qū)域內(nèi)行、列電極組中的導(dǎo)線發(fā)生接觸,依序使得位于這些接觸點(diǎn)的列電極組中的導(dǎo)線也處于高電平??梢赃x取位于左上角的第一個交叉點(diǎn)所在處作坐標(biāo)系的原點(diǎn),按照行、列電極組中導(dǎo)線的排列方向建立坐標(biāo)系,單片機(jī)通過掃描檢測獲得空間上相互交叉的點(diǎn)的高、低電平,被存儲在64KB片外RAM中。這樣,用#00H,#01H兩個數(shù)碼就表示了整個防寵物踩踏式報警器所警戒的區(qū)域的狀況。測量區(qū)域長度區(qū)分腳型程序之步驟四敘述了“跟蹤被踩踏區(qū)域的輪廓”的方法,它按照從左向右、從上向下的行、列檢測順序,尋找代表被踩踏的電極接觸點(diǎn)的數(shù)據(jù)#01H,直到最后一行的最后一個坐標(biāo)點(diǎn)被搜索完畢為止。每一次找到數(shù)據(jù)#01H時,先暫存當(dāng)前x,y 坐標(biāo)指針DPTR,稱之為當(dāng)前跟蹤坐標(biāo)指針,然后,遵循“跟蹤區(qū)域輪廓的規(guī)則”(如圖4所描述、圖6所說明),開始跟蹤從此坐標(biāo)點(diǎn)起始的被踩踏區(qū)域(用數(shù)據(jù)#01H表示)的輪廓。跟蹤過程中,X,y坐標(biāo)位置指針逐個坐標(biāo)點(diǎn)地移動,每一次移動前,當(dāng)前坐標(biāo)點(diǎn)的數(shù)據(jù)被改寫成#02H,其坐標(biāo)(DPH,DPL)被保存在RAM內(nèi)的臨時存儲區(qū),它們構(gòu)成了被跟蹤區(qū)域的輪廓。跟蹤完一塊獨(dú)立的區(qū)域以后,運(yùn)用“逐點(diǎn)計算該輪廓點(diǎn)與其它輪廓點(diǎn)間的距離并保存其大者的方法”,獲得被踩踏區(qū)域的長度的平方L2。據(jù)此計算結(jié)果判斷是否受到的是人的腳的踩踏,是否需要發(fā)出警報信號。所述計算兩點(diǎn)間距離的工作利用了單片機(jī)的指令 MUL_AB' (B)15_8(A)7_0 — (A) X⑶并采取了下述措施1)求兩點(diǎn)的坐標(biāo)差時,先比較其大小,以大者減去小者,保證差值為正,2)避免開方求平方根的運(yùn)算,只計算其平方值,3)運(yùn)算后便立即與先前的數(shù)據(jù)作比較,保存值大者,節(jié)省了存儲器空間。上述工作針對被掃描檢測到的第一塊被踩踏的區(qū)域。然后,清零RAM內(nèi)的臨時存儲區(qū),恢復(fù)當(dāng)前X,y坐標(biāo)指針DPTR為當(dāng)前跟蹤坐標(biāo)指針,把它指向下一個坐標(biāo)點(diǎn),繼續(xù)跟蹤其它被踩踏區(qū)域的輪廓,直到χ,y坐標(biāo)指針DPTR指向全部警戒區(qū)域的最后一行,一輪掃描檢測工作才告結(jié)束。本發(fā)明所述單片機(jī)系統(tǒng)的輸出或輸入端口線可以根據(jù)實際情形加以改換,所述列或行電極組所包含的導(dǎo)線的數(shù)目及其間距、相應(yīng)的串入并出、并入串出移位寄存器的數(shù)目以及隨機(jī)存儲器的容量可以根據(jù)本發(fā)明所述掃描檢測原理增加或減少。
1權(quán)利要求
1.防寵物踩踏式報警器及其測量區(qū)域長度區(qū)分腳型的方法,其特征在于,所述防寵物踩踏式報警器由一個長方形框架、電池組、單片機(jī)系統(tǒng)、串入并出電路、并入串進(jìn)電路、音樂電路以及測量區(qū)域長度區(qū)分腳型程序組成;其中,長方形框架的上部和底部各有一組電極, 分別稱之為列電極組和行電極組,每一組電極包括72根彼此獨(dú)立、間距均勻、裸露的導(dǎo)線, 兩組導(dǎo)線排列的方向相互垂直,列電極組的導(dǎo)線分別依序連接到并入串進(jìn)電路的各個并行輸入端,行電極組的導(dǎo)線分別依序連接到串入并出電路的各個并行輸出端,單片機(jī)系統(tǒng)裝載有測量區(qū)域長度區(qū)分腳型程序,其輸出口線P3. 7連接到音樂電路的輸入端,電池組作為本裝置的電源。
2.根據(jù)權(quán)利要求1所述的防寵物踩踏式報警器及其測量區(qū)域長度區(qū)分腳型的方法,其特征在于,所述長方形框架的上部和底部的兩組電極由該框架的兩側(cè)絕緣隔離并支撐著。
3.根據(jù)權(quán)利要求1所述的防寵物踩踏式報警器及其測量區(qū)域長度區(qū)分腳型的方法,其特征在于,所述單片機(jī)系統(tǒng)包括一塊單片機(jī)及其晶振電路和上電復(fù)位電路、隨機(jī)存儲器電路,其中,隨機(jī)存儲器電路由一塊74HC373和64KB的RAM組成。
4.根據(jù)權(quán)利要求1所述的防寵物踩踏式報警器及其測量區(qū)域長度區(qū)分腳型的方法,其特征在于,所述串入并出電路由9塊74HC164級聯(lián)組成第一塊74HC164的信號串行輸入端 A連接到單片機(jī)系統(tǒng)的輸出口線Pl. 2,其最高位輸出端QH連接到第二塊的信號串行輸入端 A,第二塊的最高位輸出端OH連接到第三塊的信號串行輸入端A,依次類推,共產(chǎn)生8 (位/ 塊)X9塊=72位的信號并行輸出端;9塊74HC164的清零端與信號串行輸入端B都連接到電池組的正極,它們的時鐘信號輸入端都連接到單片機(jī)系統(tǒng)的輸出口線Pl. 3。
5.根據(jù)權(quán)利要求1所述的防寵物踩踏式報警器及其測量區(qū)域長度區(qū)分腳型的方法,其特征在于,所述并入串進(jìn)電路由9塊74HC165級聯(lián)組成最后一塊74HC165的并入串出信號端QH連接到前一塊的信號串行輸入端DS,依次類推,共產(chǎn)生8 (位/塊)X 9塊=72位的信號并行輸入端,每一位信號并行輸入端還各自連接一個下拉電阻到電池組的負(fù)極,第一塊 74HC165的并入串出信號端QH連接到單片機(jī)系統(tǒng)的輸入口線Pl. 5,這9塊74HC165的并入數(shù)據(jù)裝載控制端/PL都連接到單片機(jī)系統(tǒng)的輸出口線Pl. 6,它們的時鐘信號輸入端都連接到單片機(jī)系統(tǒng)的輸出口線Pl. 7,它們的時鐘使能輸入端/CE都連接到電池組的負(fù)極。
6.根據(jù)權(quán)利要求1所述的防寵物踩踏式報警器及其測量區(qū)域長度區(qū)分腳型的方法,其特征在于,所述測量區(qū)域長度區(qū)分腳型的方法包含在測量區(qū)域長度區(qū)分腳型程序中,用于區(qū)分人與小動物的腳型,其步驟如下步驟一、初始化單片機(jī)’堆棧初值,準(zhǔn)備輸出信號, ’準(zhǔn)備輸入信號,’初始化跟蹤區(qū)域輪廓工作結(jié)束的標(biāo)志位,M0V_SP,2FHCLR_P1. 2,PL 3,PL 7,P3. 7 SETB PL 5,PL 6CLR_F0 步驟二、初始化程序CLR_R5,CLR_R6’ R5, R6分別為距離的平方值的低、高字節(jié)寄存器,M0V_Ri;#AL,M0V_R2, #AH ’RAM中后部開辟有小塊臨時存儲區(qū),用于存儲被跟蹤區(qū)域的輪廓上坐標(biāo)點(diǎn)的坐標(biāo),#AL, #AH分別為該區(qū)域的起始地址之低、高字節(jié),R1, R2分別為RAM 中臨時存儲區(qū)地址指針的低字節(jié)和高字節(jié)寄存器,M0V_DPL, #AL, M0V_DPH, #AH MOV_R0,#RAM0, M0V_A, #00H LoopO :MOVX_iDPTR,A INC_DPTR DJNZ_R0,LoopO#RAM0為RAM中臨時存儲區(qū)的大小, ,清零RAM中臨時存儲區(qū)中的一個單元,,指向下一單元, ,R0為循環(huán)計數(shù)器,Loopl :MOV_R0, #Number_COL ,Number_COL 為列電極組中導(dǎo)線的數(shù)目, Loop2 :M0V_R3, #Number_ROW ,Number_ROff 為行電極組中導(dǎo)線的數(shù)目, SETB_P1. 2,NOP, CLR_P1. 2 ,清零串入并出電路的9塊74HC164的輸出端,步驟三、開始掃描檢測被踩踏的區(qū)域1)通過單片機(jī)對行電極組中的第一根導(dǎo)線輸出一個高電平,然后,逐根檢測列電極組中導(dǎo)線的電平,其低、高電平分別以#00H,#01H表示且存儲之M0V_@DPTR,#00H或MOVJg DPTR,#01H,其中,每檢測完一根列電極組導(dǎo)線,y坐標(biāo)指針就指向下一根列電極組導(dǎo)線 INC_DPL,如果檢查完畢列電極組中的全部導(dǎo)線,即DPL = Number_COL,把x,y坐標(biāo)指針指向下一根行電極組導(dǎo)線INC_DPH,M0V_DPL, #00H ;2)通過單片機(jī)對行電極組中的下一根導(dǎo)線輸出一個高電平,然后,逐根檢測列電極組中導(dǎo)線的電平,其低、高電平分別以#00H,#01H表示且存儲之,其中,每檢測完一根列電極組導(dǎo)線,y坐標(biāo)指針就指向下一根列電極組導(dǎo)線,如果檢查完畢列電極組中的全部導(dǎo)線,即DPL = Number_COL,把x,y坐標(biāo)指針指向下一根行電極組導(dǎo)線;3)判斷行電極組中當(dāng)前處于高電平的導(dǎo)線是否超出其最后一根(a)DPH < Number_R0W,不是最后一根,跳轉(zhuǎn)到本步驟三之2)繼續(xù)進(jìn)行掃描檢測;(b)DPH= Number_ROff,已超出最后一根,執(zhí)行下一步驟;步驟四、跟蹤被踩踏區(qū)域的輪廓1)初始化X,y 坐標(biāo)指針 DPTR :M0V_DPH, #01H, M0V_DPL, #01H ;2)暫存當(dāng)前x,y坐標(biāo)指針DPTR,稱之為當(dāng)前跟蹤坐標(biāo)指針,從RAM取出并查看當(dāng)前位置的數(shù)據(jù)M0V_A,ODPTR (a)如果該數(shù)據(jù)為#00H,執(zhí)行本步驟四之3);(b)如果該數(shù)據(jù)為#01H,查看位于當(dāng)前坐標(biāo)位置的上、右、下與左方的四鄰 {(DPH — DPH-I,DPL)、(DPH,DPL — DPL+1)、(DPH — DPH+1,DPL)與(DPH,DPL — DPL-1)}處的四個數(shù)據(jù),即按照跟蹤區(qū)域輪廓的規(guī)則獲取與行、列電極組導(dǎo)線被踩踏所致接觸的區(qū)域?qū)?yīng)的輪廓,接著,運(yùn)用“逐點(diǎn)計算該輪廓點(diǎn)與其它輪廓點(diǎn)間的距離并保存其大者的方法”, 獲得被踩踏區(qū)域的平方=L(R7)2 ;如果L(R7)2 ^ Long (Long為某個預(yù)設(shè)值),就判斷為受到人的腳的踩踏,并發(fā)出警報信號SETB_P3. 7,延時約十秒,再撤除該報警信號CLR_P3. 7 ;DJNZ_R3, Loop2 DJNZ_R0,LooplR3為循環(huán)計數(shù)器, R0為循環(huán)計數(shù)器,M0V_DPH, #00H, M0V_DPL, #00H'初始化數(shù)據(jù)指針 DPTR,’分開為兩個8位的X,y坐標(biāo)指針;清零RAM內(nèi)的臨時存儲區(qū),然后,繼續(xù)執(zhí)行本步驟四之3);3)恢復(fù)當(dāng)前X,y坐標(biāo)指針DPTR為當(dāng)前跟蹤坐標(biāo)指針,把它指向下一個坐標(biāo)點(diǎn)如果當(dāng)前坐標(biāo)點(diǎn)已經(jīng)處于本行最后的位置,即DPL = Number_C0L-l時,下一個坐標(biāo)點(diǎn)為 (DPH — DPH+1, DPL — 1),否則,下一個坐標(biāo)點(diǎn)為(DPH, DPL — DPL+1);4)如果X,y坐標(biāo)指針DPTR尚未指向最后一行,即DPH< Number_R0W-l,跳轉(zhuǎn)本步驟四之2),繼續(xù)跟蹤被踩踏區(qū)域的輪廓,否,則跳轉(zhuǎn)到步驟一,開始新的一輪掃描檢測工作。
7.根據(jù)權(quán)利要求1所述的防寵物踩踏式報警器及其測量區(qū)域長度區(qū)分腳型的方法,其特征在于,所述測量區(qū)域長度區(qū)分腳型程序之步驟四中所述跟蹤區(qū)域輪廓的規(guī)則包括1)被跟蹤區(qū)域的特征是“被跟蹤區(qū)域內(nèi)的每一個坐標(biāo)點(diǎn)都對應(yīng)著數(shù)據(jù)#01H,需要被跟蹤的區(qū)域之外或需要被跟蹤的區(qū)域之間的坐標(biāo)點(diǎn)都對應(yīng)著數(shù)據(jù)#00H” ;2)啟動跟蹤輪廓定時器,如果該定時器的計時時間到了預(yù)定的數(shù)置,復(fù)位單片機(jī);3)當(dāng)前坐標(biāo)位置對應(yīng)的數(shù)據(jù)為#01H,查看當(dāng)前坐標(biāo)位置的上、右、下與左方四個鄰點(diǎn)對應(yīng)的數(shù)據(jù)的關(guān)系,決定當(dāng)前坐標(biāo)位置的移動方向,該移動方向經(jīng)過的路徑就形成該區(qū)域的輪廓,有關(guān)移動當(dāng)前坐標(biāo)位置的規(guī)則如下a)如果其右方鄰點(diǎn)對應(yīng)的數(shù)據(jù)為#01H,其上、下、左方鄰點(diǎn)對應(yīng)的數(shù)據(jù)都為#00H,就把當(dāng)前坐標(biāo)位置移向其右方鄰點(diǎn)處;b)如果其下方鄰點(diǎn)對應(yīng)的數(shù)據(jù)為#01H,其上、右、左方鄰點(diǎn)對應(yīng)的數(shù)據(jù)都為#00H,就把當(dāng)前坐標(biāo)位置移向其下方鄰點(diǎn)處;c)如果其左方鄰點(diǎn)對應(yīng)的數(shù)據(jù)為#01H,其上、右、下方鄰點(diǎn)對應(yīng)的數(shù)據(jù)都為#00H,就把當(dāng)前坐標(biāo)位置移向其左方鄰點(diǎn)處;d)如果其上方鄰點(diǎn)對應(yīng)的數(shù)據(jù)為#01H,其右、下、左方鄰點(diǎn)對應(yīng)的數(shù)據(jù)都為#00H,就把當(dāng)前坐標(biāo)位置移向其上方鄰點(diǎn)處;e)如果其右、下方鄰點(diǎn)對應(yīng)的數(shù)據(jù)都為#01H,其左、上方鄰點(diǎn)對應(yīng)的數(shù)據(jù)都為#00H,就把當(dāng)前坐標(biāo)位置移向其右方鄰點(diǎn)處;f)如果其下、左方鄰點(diǎn)對應(yīng)的數(shù)據(jù)都為#01H,其上、右方鄰點(diǎn)對應(yīng)的數(shù)據(jù)都為#00H,就把當(dāng)前坐標(biāo)位置移向其下方鄰點(diǎn)處;g)如果其左、上方鄰點(diǎn)對應(yīng)的數(shù)據(jù)都為#01H,其右、下方鄰點(diǎn)對應(yīng)的數(shù)據(jù)都為#00H,就把當(dāng)前坐標(biāo)位置移向其左方鄰點(diǎn)處;h)如果其上、右方鄰點(diǎn)對應(yīng)的數(shù)據(jù)都為#01H,其下、左方鄰點(diǎn)對應(yīng)的數(shù)據(jù)都為#00H,就把當(dāng)前坐標(biāo)位置移向其上方鄰點(diǎn)處;i)如果其上、下方鄰點(diǎn)對應(yīng)的數(shù)據(jù)都為#01H,其右、左方鄰點(diǎn)對應(yīng)的數(shù)據(jù)都為#00H,且其由其左方鄰點(diǎn)移動而來,就把當(dāng)前坐標(biāo)位置移向其上方鄰點(diǎn)處;j)如果其上、下方鄰點(diǎn)對應(yīng)的數(shù)據(jù)都為#01H,其右、左方鄰點(diǎn)對應(yīng)的數(shù)據(jù)都為#00H,且其由其右方鄰點(diǎn)移動而來,就把當(dāng)前坐標(biāo)位置移向其下方鄰點(diǎn)處;k)如果其右、左方鄰點(diǎn)對應(yīng)的數(shù)據(jù)都為#01H,其上、下方鄰點(diǎn)對應(yīng)的數(shù)據(jù)都為#00H,且其由其上方鄰點(diǎn)移動而來,就把當(dāng)前坐標(biāo)位置移向其右方鄰點(diǎn)處;1)如果其右、左方鄰點(diǎn)對應(yīng)的數(shù)據(jù)都為#01H,其上、下方鄰點(diǎn)對應(yīng)的數(shù)據(jù)都為#00H,且其由其下方鄰點(diǎn)移動而來,就把當(dāng)前坐標(biāo)位置移向其左方鄰點(diǎn)處;m)如果其上方鄰點(diǎn)對應(yīng)的數(shù)據(jù)為#00H,其余三個鄰點(diǎn)對應(yīng)的數(shù)據(jù)都為#01H,就把當(dāng)前坐標(biāo)位置移向其右方鄰點(diǎn)處;η)如果其右方鄰點(diǎn)對應(yīng)的數(shù)據(jù)為#00Η,其余三個鄰點(diǎn)對應(yīng)的數(shù)據(jù)都為#01Η,就把當(dāng)前坐標(biāo)位置移向其下方鄰點(diǎn)處;ο)如果其下方鄰點(diǎn)對應(yīng)的數(shù)據(jù)為#00Η,其余三個鄰點(diǎn)對應(yīng)的數(shù)據(jù)都為#01Η,就把當(dāng)前坐標(biāo)位置移向其左方鄰點(diǎn)處;P)如果其左方鄰點(diǎn)對應(yīng)的數(shù)據(jù)為#00Η,其余三個鄰點(diǎn)對應(yīng)的數(shù)據(jù)都為#01Η,就把當(dāng)前坐標(biāo)位置移向其上方鄰點(diǎn)處;q)如果當(dāng)前坐標(biāo)位置的上、右、下與左方四個鄰點(diǎn)對應(yīng)的四個數(shù)據(jù)都是#00H,四個鄰點(diǎn)中也沒有出現(xiàn)本跟蹤區(qū)域輪廓過程所獲得的最前面的5個位置坐標(biāo)之一,這時,嘗試退出該“奇異的隅角”把當(dāng)前坐標(biāo)位置對應(yīng)的數(shù)據(jù)置為#00H,從RAM內(nèi)的臨時存儲區(qū)取出最后存進(jìn)去的坐標(biāo)值,把該坐標(biāo)值賦予當(dāng)前坐標(biāo)位置指針即(DPH,DPL),也就是退回到前一個位置的坐標(biāo)處,然后,按照上述跟蹤區(qū)域輪廓的規(guī)則繼續(xù)跟蹤下一個曲線輪廓點(diǎn),如果能夠找到下一個曲線輪廓點(diǎn),就繼續(xù)跟蹤區(qū)域輪廓的工作,否則,所遇到的“奇異的隅角”表明不存在封閉、連續(xù)的輪廓曲線,即沒有形成被踩踏的區(qū)域,這時,清零RAM內(nèi)的臨時存儲區(qū),初始化RAM中臨時存儲區(qū)地址指針寄存器札,&,設(shè)置跟蹤區(qū)域輪廓工作結(jié)束的標(biāo)志位SETB_ Ftl,結(jié)束本輪跟蹤區(qū)域輪廓的工作;r)如果當(dāng)前坐標(biāo)位置的上、右、下與左方四個鄰點(diǎn)對應(yīng)的四個數(shù)據(jù)都是#00H,四個鄰點(diǎn)中出現(xiàn)了本跟蹤區(qū)域輪廓過程所獲得的最前面的5個位置坐標(biāo)之一,這時,不清零RAM內(nèi)的臨時存儲區(qū),初始化RAM中臨時存儲區(qū)地址指針寄存器R1, &,設(shè)置跟蹤區(qū)域輪廓工作結(jié)束的標(biāo)志位即SETB-Ftl,依序把兩個字節(jié)的數(shù)據(jù)(#FFH,#FFH)存入RAM中臨時存儲區(qū),作為輪廓位置結(jié)束的標(biāo)志,結(jié)束本輪跟蹤區(qū)域輪廓工作;4)每次移動當(dāng)前坐標(biāo)位置之前,根據(jù)RAM中臨時存儲區(qū)地址指針寄存器R1,&把當(dāng)前位置的坐標(biāo)(DPH,DPL)依序存儲在RAM內(nèi)的臨時存儲區(qū),然后使得RAM中臨時存儲區(qū)地址指針寄存器R1, R2指向下一處存儲單元;5)每次移動當(dāng)前坐標(biāo)位置之前,把當(dāng)前坐標(biāo)位置對應(yīng)的數(shù)據(jù)改寫成#02H;6)上述諸規(guī)則中,所述數(shù)據(jù)#00H與非#01H的其它數(shù)據(jù)等效。
8.根據(jù)權(quán)利要求1所述的防寵物踩踏式報警器及其測量區(qū)域長度區(qū)分腳型的方法,其特征在于,所述測量區(qū)域長度區(qū)分腳型程序之步驟四所述“逐點(diǎn)計算該輪廓點(diǎn)與其它輪廓點(diǎn)間的距離并保存其大者的方法”包括下述步驟步驟一、把RAM中臨時存儲區(qū)地址指針初始值(#AH,#AL)賦予x,y坐標(biāo)指針DPTR ; 步驟二、當(dāng)前X,y坐標(biāo)指針DPTR對應(yīng)著RAM中臨時存儲區(qū)連續(xù)存放的兩個字節(jié),稱這兩個字節(jié)為當(dāng)前輪廓位置(DPHP,DPLp),暫存當(dāng)前X,y坐標(biāo)指針DPTR,稱之為當(dāng)前輪廓位置的坐標(biāo),查看當(dāng)前輪廓位置是不是輪廓位置結(jié)束的標(biāo)志(#FFH,#FFH)是,被踩踏區(qū)域的長度的平方=L(R7)2 = I^6R5,清零I^6R5,結(jié)束本輪“逐點(diǎn)計算該輪廓點(diǎn)與其它輪廓點(diǎn)間的距離并保存其大者的”程序; 否,執(zhí)行下一步驟;步驟三、χ, y坐標(biāo)指針DPTR指向當(dāng)前位置的下一個存儲區(qū)域,從RAM中臨時存儲區(qū)取出連續(xù)的兩個字節(jié),稱這兩個字節(jié)為目標(biāo)輪廓位置(DPiV DPLtj),查看它是不是輪廓位置結(jié)束的標(biāo)志(#FFH,#FFH)是,則恢復(fù)X,y坐標(biāo)指針DPTR為暫存的當(dāng)前輪廓位置的坐標(biāo),然后,使X,y坐標(biāo)指針 DPTR指向其對應(yīng)的下一個存儲區(qū)域,再跳轉(zhuǎn)到步驟二 ;否,則計算當(dāng)前輪廓位置與目標(biāo)輪廓位置兩點(diǎn)間的距離的平方L2 = (DPHp-DPH0)2+ (DPLp-DPL0)2 ;步驟四、比較L2與1 (距離的平方值的高、低字節(jié)暫存器),取其大者保存于1 ; 步驟五、跳轉(zhuǎn)步驟三。
全文摘要
防寵物踩踏式報警器及其測量區(qū)域長度區(qū)分腳型的方法包括防寵物踩踏式報警器與測量區(qū)域長度區(qū)分腳型的方法兩部分;后者體現(xiàn)于測量區(qū)域長度區(qū)分腳型程序,前者由一個長方形框架、電池組、單片機(jī)系統(tǒng)、串入并出電路、并入串進(jìn)電路與音樂電路組成,其中,長方形框架的上部和底部分別設(shè)置有列、行電極組,其導(dǎo)線依序分別連接到并入串進(jìn)電路的各個并行輸入端與串入并出電路的各個并行輸出端。所述程序按照兩電極組導(dǎo)線的排列建立二維坐標(biāo)系,借助單片機(jī)掃描檢測被踩踏的區(qū)域、跟蹤該區(qū)域的輪廓、計算輪廓點(diǎn)之間的距離并保存其大者作為該區(qū)域的長度、判斷腳型并決定是否發(fā)出報警聲,適用于防盜報警工作。
文檔編號G08B13/10GK102339512SQ20101022851
公開日2012年2月1日 申請日期2010年7月16日 優(yōu)先權(quán)日2010年7月16日
發(fā)明者張文娟, 張海明, 曾藝 申請人:重慶工商大學(xué)