主頁(yè)(http://www.130131.com):基于熱釋電紅外傳感器的無(wú)線監(jiān)控報(bào)警(2) MT8880的D0~D3口分別接8255的PA0~PA3口,CLK2接PA4口,R/W接PA5口,RSO接PA6口,CS接PA7口,IRQ接主控電路處理器89C51的T0口,用來(lái)記錄各種脈沖的個(gè)數(shù)。來(lái)自語(yǔ)音電路的信號(hào)經(jīng)過(guò)R44送到電話線上去。繼電器K用來(lái)控制摘掛機(jī),晶體管的B極接主控電路處理器89C51的P1.2口,當(dāng)P1.2為“1”時(shí),V2導(dǎo)通,繼電器K閉合,電話接通,當(dāng)P1.2為“0”時(shí),V2截止,電話掛機(jī)。 主控電路處理器89C51的P0口分別接8255的D0~D7口和74HC373的D0~D7口,74HC373的Q0和Q1分別接8255的A0和A1,89C51的P2.5、P2.6、P2.7分別接74HC138的A、B、C口,74HC138的YO接8255的CS端。 軟件設(shè)計(jì) ●撥號(hào)音:450±25Hz連續(xù)蜂音。 這些電話信號(hào)均是模擬信號(hào),然而單片機(jī)是無(wú)法識(shí)別模擬信號(hào)的,故必須先將模擬信號(hào)轉(zhuǎn)換為脈沖信號(hào),然后再根據(jù)脈沖信號(hào)的脈沖個(gè)數(shù)進(jìn)行識(shí)別。這些電話音頻信號(hào)的脈沖個(gè)數(shù)計(jì)算公式為N=tm/T。其中,N為每音段周期的脈沖個(gè)數(shù);T為電話音頻信號(hào)的音頻周期,單位為s;tm為信號(hào)音段周期的導(dǎo)通時(shí)間,單位為s。 在實(shí)際使用中,主要需要識(shí)別撥號(hào)音、忙音和回鈴音。分析這3種信號(hào)的特性可以看出,在一定的計(jì)數(shù)時(shí)間內(nèi),其脈沖個(gè)數(shù)是不一樣的。在本設(shè)計(jì)中采用2s計(jì)數(shù)判斷撥號(hào)音,采用2.8s(即4個(gè)忙音周期)判斷是否為忙音。隨后采用ls為一個(gè)計(jì)數(shù)單元,采用計(jì)五次后的累加脈沖數(shù)來(lái)判斷對(duì)方是否接聽(tīng)電話。若有,則放相應(yīng)的報(bào)警提示語(yǔ)音;否則再計(jì)ls,然后計(jì)算最后5s內(nèi)的脈沖數(shù),再次判斷對(duì)方是否摘機(jī)。如此反復(fù)。直到超過(guò)等待時(shí)間仍沒(méi)有人接聽(tīng)電話就掛機(jī)。由于干擾和一些其他因素的存在,難免會(huì)有誤判的現(xiàn)象而導(dǎo)致漏報(bào)警情。因此采取在所有預(yù)先設(shè)定的電話至少有一個(gè)撥通就只撥一遍。如果全部投撥通或者沒(méi)人接聽(tīng)則把所有預(yù)存電話重?fù)芤槐,這樣漏報(bào)報(bào)警的概率就非常低以致可忽略不計(jì)。 2、軟件流程圖及撥號(hào)程序
圖4:自動(dòng)撥號(hào)程序流程圖 3、編程過(guò)程中應(yīng)注意的幾點(diǎn) 其次,在摘機(jī)后應(yīng)延時(shí)一段時(shí)間再去判斷摘機(jī)音,因?yàn)楸鞠到y(tǒng)采用機(jī)械繼電器實(shí)現(xiàn)自動(dòng)摘機(jī),故應(yīng)考慮繼電器的響應(yīng)時(shí)間。 最后,一個(gè)電話號(hào)碼撥完后不能立即撥下一個(gè)電話號(hào)碼,應(yīng)保證掛機(jī)的最短有效時(shí)間以確保前一電話號(hào)碼確實(shí)已掛機(jī),否則撥下一個(gè)電話號(hào)碼時(shí)會(huì)沒(méi)有撥號(hào)音。 結(jié)論 (中國(guó)集群通信網(wǎng) | 責(zé)任編輯:陳曉亮) |





