張再涵 郭志強 張幼涵
中圖分類號:TP2文獻標識碼:A文章編號:1671-7597(2009)0920006-02
一、引言
隨著電子技術的普及,家庭用防盜設備的應用逐漸增多,而針對家庭用的防盜報警設備由于過去使用專用防盜器,導致有效檢測面積覆蓋率低、價格昂貴、安裝困難、功耗大等問題,本系統采用新的設計思路,摒棄舊的傳感器,使用價格低廉的紅外激光發射管和對應波長光電接收管以及簡易的波形采樣整形濾波電路,構成了防盜系統的傳感部分;而從功耗和成本上考慮,采用PICnW級單片機PIC16F676作為后端數據采集,以及數據處理和報警等控制器。計算機采集部分,采用計算機串口接收數據,軟件方面,采用Microsoft Visual Basic6.0編制。
整機結構如下圖1:

以圖1所示,只是采用一路報警信號作為表示功能,在實際應用中,可以采用CD4555等類似的擴展芯片實現信號通道擴展,擴展電路如下。
二、PIC單片機簡介
PIC單片機,microchip公司的產品。采用哈佛架構的RISC單片機,其指令集也很精簡。同時,其產品線比較廣泛,從最基本的8位單片機到12位、14位甚至16位高端一應俱全,一般我們將其產品劃分為低、中、高三個級別。
PIC集成的外設極為豐富。片內集成USART、I2C、AD、PWM等模塊。有的還有LCD驅動模塊、USB驅動模塊甚至以太網模塊。應用起來極為簡便,同時也可以減少外圍電路。由于PIC的IO輸出承載力很強,可達20mA以上,加上PWM,使其在各個方面都很有作為。
程序運行之后,先進行系統初始化,由于本系統采用外部時鐘喚醒,在初始化期間,應將系統的時鐘源定義在TIMERA上。
檢測部分,以一路檢測信號為說明,當TXD發送出一系列定時脈沖波后,RXD會在一段時間后檢測到這個序列波,為了防止誤報現象的發生,發送的光波序列,采用準曼徹斯特編碼方式,即以上升沿為二進制數字1,下降沿為二進制數字0,當產生連續的1或0時,系統提前產生一個偽下降,為了保證系統可靠,其通訊時間將擴大一倍,即以2位的通訊時間來傳輸1位有效數據。
按鍵部分采用外部中斷模式,使用內部上拉電平,當按鍵按下后,系統采樣到一個下降沿,產生中斷,啟動部分功能,本系統將按鍵功能定義為系統初始化功能,即按鍵按下后,系統復位,進行系統初始化。
當信號采集部分通訊出現中斷,軟件將進行判別,當滿足一定條件后,系統認為光線被固定物體遮擋住,蜂鳴器長響報警,為提高報警效果,產品上還增加了LM386等功率防大電路驅動喇叭,增大了報警范圍;同時通過串行通訊發送到計算機遠端,由計算機軟件判斷是否是滿足報警故障,是否通過連接的手機或移動通信模塊,上報到指定電話或直接撥打電話。
以下為單片機程序代碼,由于篇幅限制,只能提供描述原理性質的偽代碼以供大家參考。
文件名:wartest.c
#i nclude
//定義芯片工作時的配置位
__CONFIG(HS & WDTEN & PWRTEN & BOREN & DP & LVPDIS & DUNPROT & WRTDIS & DEBUGEN & PROTECT);
//聲明函數類型
//定義變量
unsigned char num1,num2;
bit flag1,flag2 ;
... ...
//函數
/*******************************
函數名:main
入口:無
出口:無
功能:主函數
*******************************/
void main(void)
{
initport1();
initport2();
inittime();
while(1)
{
testport();
if(testport1_1==1)
{
sendmess();
}
}
}
/*******************************
函數名:initport1
入口:無
出口:無
功能:初始化端口1
*******************************/
void initport1(void)
{
......
}
/*******************************
函數名:initport2
入口:無
出口:無
功能:初始化端口2
*******************************/
void initport2(void)
{
......
}
/*******************************
函數名:testport
入口:無
出口:無
功能:測試端口信號
*******************************/
void testport(void)
{
......
}
/*******************************
函數名:sendmess
入口:無
出口:無
功能:發送報警信息
*******************************/
void sendmess(void)
{
......
}
說明:以上程序僅為了指示程序功能用。
三、結束語
本系統經過試驗驗證,采集成功率達到95%以上,同時由于其成本低廉,已經進行了小批量投產試運行,效果良好。
參考文獻:
[1]PIC16F685/687/689/690數據手冊,microchip公司數據手冊.
[2]武鋒,PIC單片機C語言開發入門,北京航空航天大學出版社.
[3]Di Jasio(加西奧等),PIC微控制器技術及應用,電子工業出版.