亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? alarm-v3.c

?? 本程序為檢測16路輸入45~65HZ的信號
?? C
?? 第 1 頁 / 共 4 頁
字號:
}

/*****************************************************************************
功能:從74LS166讀取8位數據
用法:
執行時間:Cycles:395				Time:395us
******************************************************************************/
void HC595_Write16bit(unsigned char Data0, unsigned char Data1)
{
	unsigned char loop;
	for(loop=8;loop>0;loop--)		//送8位數據
	{
		SCLK = 0;	
		if(Data0 & 0X80)
		{				
			SER = 1;				//送數據
		}
		else
		{
			SER = 0;
		}
		Data0<<=1;					//數據移位
		SCLK=1; 					//送移位有效時鐘			
	}
	for(loop=8;loop>0;loop--)		//送8位數據
	{
		SCLK=0;					
		if(Data1 & 0X80)
		{				
			SER = 1;				//送數據
		}	
		else
		{
			SER = 0;
		}
		Data1<<=1;					//數據移位
		SCLK=1; 					//送移位有效時鐘			
	}	
}

/*****************************************************************************
功能:從74LS166讀取8位數據
用法:
執行時間:Cycles:193				Time:193us
******************************************************************************/
void Ini_HC595(void)
{
	RCLK_LED = 0;					//輸出LOCK
	RCLK_RELAY = 0;					//輸出LOCK	
	HC595_Write16bit(0X00, 0X00);	//寫放16位數據	
	RCLK_LED = 1;					//上升沿HC595輸出黃燈數據
	RCLK_RELAY = 1;					//上升沿HC595輸出紅燈,繼電器數據
	RCLK_LED = 0;					//輸出LOCK
	RCLK_RELAY = 0;					//輸出LOCK	
}

/*****************************************************************************
功能:從74LS166讀取8位數據
用法:
******************************************************************************/
void Ini_System(void)
{	
	OPTION = 0X0d;					//開上拉電阻,預分頻器分給看門狗,32分頻
	TRISA = 0XC0;
	TRISB = 0X1F;					//高3位輸出,其它位輸入
	TRISC = 0X00;					//C口設置為輸出
	PORTB = 0XFF;
	PORTA = 0XFF;
	PORTC = 0XD3;					//聲音關,電源燈關,RCLK_LED/RCLK_RELAY輸出低
									//SCLK,RER輸出高電平
	Ini_HC595();					//初始化HC595
	TMR1H = 0Xf8;
	TMR1L = 0X2f;					//設置2MS中斷
	PIE1 = 0X01;					//開啟定時器1益出中斷
	PIR1 = 0X00;					//清除中斷摽志
	INTCON = 0XC0;					//開全部中斷
	T1CON = 0x05;					//設置定時器1為內部時鐘,并開啟
	Flag.allBits = 0x00;			//初始其它標志
	InFlag.allBits = 0x0000;		//初始化輸出狀態標志位
	YellowLed.allBits = 0x0000;		//黃燈輸出不亮
	RelayFlag.allBits = 0x0000; 	//關閉所以繼電器
}

/*******************************************************************************
功能:檢測輸出信號狀態功能及處理相關置位
用法:直接調用
執行時間:Cycles:395				Time:395us
********************************************************************************/
void Output_Dispose(void)
{
	unsigned char temp0,temp1;
	unsigned int temp;
	temp0 = RelayFlag.allBits & 0x00ff;					//取低八位
	temp = RelayFlag.allBits >> 8;
	temp1 = temp & 0x00ff;								//取高八位
	RCLK_LED = 0;										//輸出LOCK
	RCLK_RELAY = 0;										//輸出LOCK	
	HC595_Write16bit (temp0, temp1);					//寫放16位數據	
	RCLK_RELAY = 1;										//上升沿HC595輸出紅燈,繼電器數據
	temp0 = YellowLed.allBits & 0x00ff;					//取低八位
	temp = YellowLed.allBits >> 8;
	temp1 = temp & 0x00ff;								//取高八位
	HC595_Write16bit (temp0, temp1);					//寫16位數據到HC595	
	RCLK_LED = 1;										//上升沿HC595輸出黃燈數據
	RCLK_LED = 0;										//輸出LOCK
	RCLK_RELAY = 0;										//輸出LOCK	
}

/*******************************************************************************
功能:報警音輸出處理功能
用法:直接調用
******************************************************************************/
void Output_Audio(void)
{
	if(!RelayFlag.allBits)					//如果輸出全為“0”
	{
		Flag.oneBit.b0 = 0;
		BUZZER = 0;
	}
	if(Flag.oneBit.b0)							//當為“1”時報警輸出
	{
		BUZZER = 1;
	}
}

/*******************************************************************************
功能:復位按鍵功能
用法:直接調用
******************************************************************************/
void Reset_Dispose(void)
{
	unsigned char loop1,loop2;
	Flag.oneBit.b0 = 0;				//清除聲音狀態標志
	InFlag.allBits = 0x0000;		//初始化輸出狀態標志位
	YellowLed.allBits = 0x0000;		//黃燈輸出不亮
	RelayFlag.allBits = 0x0000; 	//關閉所以繼電器
	Output_Dispose();				//清除繼電器及黃燈為“0”
	BUZZER = 0;						//關閉聲音
	for(loop2=8;loop2>0;loop2--)		//延時2S
	{
		for(loop1=250;loop1>0;loop1--)
		{
			delay_1ms(1);		
		}
	}
}

/*******************************************************************************
功能:測試按鍵程序,用于測試輸出端
用法:直接調用
******************************************************************************/
void Test_Dispose(void)
{
	unsigned char loop,loop1,loop2;
	unsigned char temp0,temp1;
	RCLK_RELAY = 0;									//清除當除輸出狀態
	RCLK_LED = 0;									//輸出LOCK	
	HC595_Write16bit (0x00, 0x00);					//寫放16位數據全為高	
	RCLK_LED = 1;
	RCLK_RELAY = 1;
	temp0 = 0;
	temp1 = 0x01;						//合成輸出后:temp0 temp1		高===低
	for(loop=0;loop<17;loop++)
	{
		RCLK_RELAY = 0;										//輸出LOCK	
		HC595_Write16bit (temp0, temp1);					//寫放16位數據	
		RCLK_RELAY = 1;
		for(loop2=2;loop2>0;loop2--)
		{
			for(loop1=250;loop1>0;loop1--)
			{
				delay_1ms(1);
				if(!RESET_KEY)
				{
					delay_1ms(20);
					if(!RESET_KEY)
					{
						while(!RESET_KEY);
						goto Test_back;
					}
				}			
			}
			BUZZER =! BUZZER;
		}
		if(loop<8)
		{
			temp0 = 0;
			temp1<<=1;
			if(!temp1)
			{
				temp0 = 0x01;
				temp1 = 0x00;
			}			
		}
		else 
		{
			temp0<<=1;
			temp1 = 0;
		}
	}
	temp0 = 0;
	temp1 = 0x01;						//合成輸出后:temp0 temp1		高===低
	for(loop=0;loop<17;loop++)
	{
		RCLK_LED = 0;										//輸出LOCK	
		HC595_Write16bit (temp0, temp1);					//寫放16位數據	
		RCLK_LED = 1;
		for(loop2=2;loop2>0;loop2--)
		{
			for(loop1=250;loop1>0;loop1--)
			{
				delay_1ms(1);
				if(!RESET_KEY)
				{
					delay_1ms(20);
					if(!RESET_KEY)
					{
						while(!RESET_KEY);
						goto Test_back;
					}
				}			
			}
			BUZZER =! BUZZER;
		}
		if(loop<8)
		{
			temp0 = 0;
			temp1<<=1;
			if(!temp1)
			{
				temp0 = 0x01;
				temp1 = 0x00;
			}			
		}
		else 
		{
			temp0<<=1;
			temp1 = 0;
		}
	}
	temp0 = 0;
	temp1 = 0;
	for(loop=4;loop>0;loop--)
	{
		BUZZER =! BUZZER;
		RCLK_RELAY = 0;
		RCLK_LED = 0;										//輸出LOCK	
		HC595_Write16bit (temp0, temp1);					//寫放16位數據全為高	
		RCLK_LED = 1;
		RCLK_RELAY = 1;
		for(loop2=4;loop2>0;loop2--)		//延時1S
		{
			for(loop1=250;loop1>0;loop1--)
			{
				delay_1ms(1);
				if(!RESET_KEY)
				{
					delay_1ms(20);
					if(!RESET_KEY)
					{
						while(!RESET_KEY);
						goto Test_back;
					}
				}			
			}
		}
		temp0 =~ temp0;
		temp1 =~ temp1;
	}
Test_back:
	Reset_Dispose();														///重新復位處理
	for(loop2=8;loop2>0;loop2--)		//延時2S
		{
			for(loop1=250;loop1>0;loop1--)
			{
				delay_1ms(1);
				if(!RESET_KEY)
				{
					delay_1ms(20);
					if(!RESET_KEY)
					{
						while(!RESET_KEY);
						goto Test_back;
					}
				}			
			}
		}
}

/*******************************************************************************
功能:mute按鍵程序
用法:直接調用
******************************************************************************/
void Mute_Dispose(void)
{
	Flag.oneBit.b0 = 0;							//關閉聲音開啟標志
	BUZZER = 0;
}

/*******************************************************************************
功能:上電程序
用法:直接調用
******************************************************************************/
void Power_Up(void)
{
	BUZZER = 1;
	RCLK_RELAY = 0;
	RCLK_LED = 0;										//輸出LOCK	
	HC595_Write16bit (0XFF, 0XFF);					//寫放16位數據全為高	
	RCLK_LED = 1;
	RCLK_RELAY = 1;
	delay_1ms(200);								//延時0.2秒
	BUZZER = 0;
	RCLK_RELAY = 0;
	RCLK_LED = 0;										//輸出LOCK	
	HC595_Write16bit (0X00, 0X00);					//寫放16位數據全為高	
	RCLK_LED = 1;
	RCLK_RELAY = 1;
}

/*****************************************************************************
功能:中斷服務程序
用法:
******************************************************************************/
void interrupt ISR (void)
{
	asm("clrwdt");							//50MS喂狗一次,18*32=576MS后復位
	if(TMR1IF)								//定時器1中斷服務程序
	{
		PIR1 = 0X00;
		TMR1H = 0Xf8;
		TMR1L = 0X2f;						//設置2MS中斷
		Timer1_int0();						//電源指示燈
		if(DET_ON)							//為1時表示開始檢測
		{
			Timer1_int1();					//檢測記錄頻率脈沖
			if(++SECOND_0 > 250)			//定時500MS
			{
				SECOND_0 = 0;
				if(++SECOND_1 > 0)			//定時0.5S
				{
					SECOND_1 = 0;
					DET_ON = 0;				//標志定時0.5S到
					Timer1_int2();			//判斷已記錄的脈沖數是否待合條件
				}
			}
		}	
	}
}

/*****************************************************************************
功能:主程序
用法:
******************************************************************************/
void main(void)
{
	unsigned char loop;
	DET_ON = 0;									//關閉檢測輸入
	Ini_System();								//調用系統初始化程序
	for(loop=0;loop<16;loop++)
	{
		FRE_CONT[loop]=0;
	}			
	delay_1ms(250);
	delay_1ms(250);
	Power_Up();									//調用上電測試程序
	//Test_Dispose();
	delay_1ms(250);
	delay_1ms(250);
	delay_1ms(250);
	delay_1ms(250);							
	delay_1ms(250);
	delay_1ms(250);
	delay_1ms(250);
	delay_1ms(250);							// 延時2秒后才進穩定工作
	DET_ON = 0;
	SECOND_0=0;
	SECOND_1=0;	
	while(1)
	{
		while(!DET_ON)
		{
			Output_Dispose();
			Output_Audio();
			DET_ON = 0XFF;							//開啟輸入信號檢測		
		}
//----------------------------------RESET_KEY處理功能-------------------------//
		if(!RESET_KEY)
		{
			delay_1ms(20);							//去抖延時20MS
			if(!RESET_KEY)
			{
				Reset_Dispose();
			}
			while(!RESET_KEY)
			{
				;
				//Input_Dispose();					//檢測輸入信號
				//Output_Dispose();	
			}
		}
//----------------------------------MUTE_KEY處理功能-------------------------//
		if(!MUTE_KEY)
		{
			delay_1ms(20);							//去抖延時20MS
			if(!MUTE_KEY)
			{
				Mute_Dispose();
			}
			while(!MUTE_KEY)
			{
//				Input_Dispose();					//檢測輸入信號
				Output_Dispose();	
			}
		}
//----------------------------------TEST_KEY處理功能-------------------------//
		if(!TEST_KEY)
		{
			delay_1ms(20);							//去抖延時20MS
			if(!TEST_KEY)
			{
				Test_Dispose();
			}
			while(!TEST_KEY)
			{
//				Input_Dispose();					//檢測輸入信號
				Output_Dispose();	
			}
		}		
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美tk丨vk视频| 欧美手机在线视频| 久久九九全国免费| 国内精品第一页| 久久久久久久综合日本| 国产乱对白刺激视频不卡| 欧美激情一区二区三区在线| 成人黄动漫网站免费app| 亚洲人快播电影网| 色偷偷成人一区二区三区91| 亚洲高清免费观看高清完整版在线观看| 在线亚洲欧美专区二区| 性欧美大战久久久久久久久| 日韩欧美成人一区| 成人福利视频在线| 五月婷婷激情综合| 精品日韩99亚洲| 不卡的av在线| 日本少妇一区二区| 欧美激情综合网| 欧美亚洲综合在线| 久久精品国产一区二区三区免费看| 久久夜色精品国产噜噜av| 成人中文字幕合集| 亚洲国产精品久久艾草纯爱| 日韩一区二区三区高清免费看看| 国产成人av一区| 亚洲福利一二三区| 精品久久国产老人久久综合| 99在线精品一区二区三区| 日韩在线a电影| 中文字幕欧美激情| 欧美日韩成人一区二区| 国产成人在线网站| 亚洲aⅴ怡春院| 欧美激情综合五月色丁香| 精品视频1区2区3区| 国产一区欧美一区| 亚洲最新视频在线播放| 亚洲精品一区在线观看| 欧美伊人久久久久久久久影院| 精久久久久久久久久久| 亚洲自拍偷拍网站| 国产视频亚洲色图| 91精品国产综合久久久久久久久久 | 不卡的av在线播放| 免费看精品久久片| 亚洲精品视频免费观看| 久久久影院官网| 国产精品区一区二区三区| 国产精品一二三四区| 亚洲一区在线观看视频| 久久久亚洲国产美女国产盗摄| 在线免费亚洲电影| 国产二区国产一区在线观看| 天天影视色香欲综合网老头| 国产精品灌醉下药二区| 欧美v日韩v国产v| 欧美色中文字幕| 北条麻妃国产九九精品视频| 精品一区二区在线播放| 亚洲成av人片一区二区三区| 亚洲日本va午夜在线影院| 久久久99精品免费观看| 精品国精品自拍自在线| 91麻豆精品久久久久蜜臀| 91丨porny丨中文| 成人精品视频一区二区三区| 国产一区二区三区四| 日本在线观看不卡视频| 亚洲高清不卡在线观看| 亚洲精品国产无天堂网2021| 中文字幕一区二区三区蜜月 | 一区二区三区不卡在线观看| 国产欧美日本一区二区三区| 久久综合色鬼综合色| 日韩久久免费av| 日韩女优制服丝袜电影| 日韩免费成人网| 欧美变态tickle挠乳网站| 精品少妇一区二区三区在线播放| 精品裸体舞一区二区三区| 欧美一区二区三区四区五区| 日韩三级av在线播放| 日韩一区二区免费视频| 日韩欧美国产一区二区三区 | 欧美日韩久久久久久| 欧美午夜一区二区三区免费大片| 色中色一区二区| 欧美午夜寂寞影院| 日韩一区二区三区免费看 | 欧洲中文字幕精品| 色成年激情久久综合| 欧美三级韩国三级日本一级| 欧美高清一级片在线| 精品噜噜噜噜久久久久久久久试看| 欧美成人一区二区三区| 国产无遮挡一区二区三区毛片日本 | 高清不卡一区二区在线| www.一区二区| 欧美性受xxxx| 精品国产精品网麻豆系列| 久久久久久免费网| 中文字幕一区在线观看| 亚洲国产日日夜夜| 免费成人在线视频观看| 粉嫩av一区二区三区粉嫩| 91福利小视频| 欧美一区二区三区视频免费| 国产网站一区二区三区| 亚洲欧美一区二区三区久本道91| 午夜影院久久久| 国产精品一区二区在线看| 一本色道久久综合亚洲91| 91精品免费观看| 中文在线资源观看网站视频免费不卡| 中文字幕亚洲视频| 美国精品在线观看| 97超碰欧美中文字幕| 91麻豆精品国产91久久久久久 | 制服丝袜亚洲精品中文字幕| 久久久久久免费| 亚洲五码中文字幕| 国产精品系列在线播放| 色菇凉天天综合网| 久久精品日韩一区二区三区| 亚洲五月六月丁香激情| 成人综合在线网站| 欧美电影免费观看高清完整版在 | 91精品国产一区二区三区蜜臀| 久久久www免费人成精品| 亚洲图片一区二区| 国产福利一区二区三区| 在线综合+亚洲+欧美中文字幕| 国产精品毛片久久久久久| 日韩av网站在线观看| 91免费观看视频| 国产午夜亚洲精品羞羞网站| 日韩高清在线观看| 91丝袜美女网| 国产欧美精品国产国产专区| 日韩精品一级中文字幕精品视频免费观看 | 欧美日韩亚洲综合一区二区三区| 欧美激情一区二区| 久久福利资源站| 欧美精品乱码久久久久久按摩| 亚洲欧美视频在线观看| 国产不卡一区视频| 久久综合九色综合97_久久久 | 自拍偷在线精品自拍偷无码专区| 九九九久久久精品| 欧美军同video69gay| 一区二区免费看| 91在线丨porny丨国产| 国产欧美一区二区精品秋霞影院| 男人的天堂亚洲一区| 欧美性xxxxxxxx| 亚洲午夜三级在线| 日本丰满少妇一区二区三区| 国产精品传媒视频| 成人小视频免费在线观看| 久久这里只有精品首页| 日韩精彩视频在线观看| 欧美图区在线视频| 亚洲午夜视频在线| 欧美日韩国产一区二区三区地区| 亚洲区小说区图片区qvod| 91啪亚洲精品| 亚洲日本一区二区| 色婷婷av一区二区三区大白胸| 国产精品乱人伦一区二区| 国产不卡免费视频| 中文字幕欧美激情一区| 成人黄色网址在线观看| 最好看的中文字幕久久| 一本久久a久久免费精品不卡| 亚洲人成影院在线观看| 欧美性色黄大片| 亚洲成av人片在www色猫咪| 欧美精品丝袜中出| 老司机精品视频在线| 国产亚洲一区二区在线观看| 国产成人精品免费在线| 国产精品福利在线播放| 色哟哟日韩精品| 视频一区视频二区中文| 日韩一区二区电影在线| 国产一本一道久久香蕉| 日本一区二区成人| 日本韩国精品一区二区在线观看| 亚洲一区二区五区| 日韩一区二区精品| 风间由美一区二区av101| 伊人色综合久久天天人手人婷| 欧美综合一区二区| 麻豆91在线观看| 中文字幕av在线一区二区三区| 在线免费观看一区| 麻豆国产精品一区二区三区 | 日本韩国欧美国产|