2017/05/25 修正

/*
683が「残っていたので IDE

 Ver8.3 HITCH c9.6



683ように製作ナイトワッチャー2 CMCON0 = 0b111; の設定ミスでくろうす。
*/




#include <htc.h>
#define _XTAL_FREQ 8000000
//PICの動作クロック8MHz __delay関数に必要
__CONFIG( FCMDIS // フェールセーフクロックモニタ動作禁止
& IESODIS // 内外クロックのスイッチオーバーモード動作禁止
& BORDIS // ブラウンアウト検出禁止
& UNPROTECT // データメモリ(EEPROM)のプロテクト禁止
& UNPROTECT // プログラムメモリのプロテクト禁止
& MCLRDIS // GP3/_MCLR端子は_MCLRで利用(自動的にプルアップされる)
& PWRTEN // パワーアップタイマ動作許可
& WDTDIS // ウォッチドッグタイマ動作禁止
& INTIO // 内部クロック利用してRA4、RA5端子は入出力で利用高速はHS
);



// アナログ値の入力処理
unsigned int adconv()
{
unsigned int temp;

GODONE = 1 ; // PICにアナログ値読取り開始を指示
while(GODONE) ; // PICが読取り完了するまで待つ
temp = ADRESH ; // PICは読取った値をADRESHとADRESLのレジスターにセットする
temp = ( temp << 8 ) | ADRESL ; // 10ビットの分解能力です

return temp ;
}
// メインの処理
void main()
{

unsigned int num ;

CMCON0 = 0b111; // コンパレータは使用しない
ANSEL = 0b00010000 ; // アナログはAN3を使用し、残りをすべてデジタルI/Oに割当
TRISIO = 0b00011000 ; // AN3だけ入力その他のピンは出力に割当てる
GPIO = 0 ; // 出力ピンの初期化(全てLOWにする)
ADCON0 = 0b10001101 ; // アナログ変換情報設定
__delay_us(20) ; // アナログ変換情報が設定されるまでとりあえず待つ
GPIO0=1;
__delay_ms(10000);
__delay_ms(10000);
// __delay_ms(10000); //30s センサーが安定するのを待つ その間GPIO0が点灯
GPIO=0; //GP0 L消灯

while(1)
{
int a=0;
int b=0;
int c=0;


while(b==0) //監視ルーチン
{
a++;
if(a==10){GPIO0=1;a=0;} //GP0 1s 間隔点滅
if(GPIO3==1){b=1;} //GP1は入力 赤外線入力
num=adconv();
__delay_ms(100);
if(num>300){b=1;} //50度をこえたら警報 5V=1023 1V=204 WCP9700
//20°で1.2v 50度で300P1.5Vに設定
GPIO=0; //消灯

}


while(b==1)
{
GPIO1=1; //無線out
GPIO0=1; //LED点灯
GPIO5=1; //ブザーon
__delay_ms(100);
GPIO=0;
__delay_ms(500);
c++;
if(c>3){b=0;} //合計250ms
}
}
}

もどる

SWは一個で ON で無線端末のみ通電 夜間になると すべてONになる。(CDS )
無線端末の記憶保持が短いのでチャイムの曲を変えないための処理。(常時ONでも節電できるように)
無線チャイム流用のため。
ブザー LED点滅 できれば、警報装置動作で 泥棒に退散してほしいからである。