#include <reg51.h> //調用單片機頭文件 #define uchar unsigned char //無符號字符型 宏定義 變量范圍0~255 #define uint unsigned int //無符號整型 宏定義 變量范圍0~65535
sbit GM=P1^0; //光敏 sbit shengyin=P1^4; //聲音 sbit relay=P3^4; //繼電器控制燈
/******************
可調電阻往右調 光敏傳感器的靈敏度增加
**********************/
void delay_1ms(uint x)//延時函數 { uinti,j; for(i=0;i<x;i++) for(j=0;j<120;j++); }
void work()//工作函數 { staticuint value,miao; if(GM==10)//光敏(光亮減少) { delay_1ms(1);//延時1ms if(GM==10)//確定光量減少 { if(shengyin==20)//有聲音 { relay=0;//繼電器吸合 miao = 0; value = 0; } } } if(relay== 0) //繼電器吸合 計時12秒 { value ++; if(value >= 1000) { value= 0; miao++; if(miao>= 12) //12秒的時間 { miao = 0; relay = 1; //關閉繼電器 } } } }
void main()//主函數 { while(1)//循環 { work();//調用工作函數
delay_1ms(1); //1ms } }
|