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

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

?? dimmer.c.bak

?? LED控制
?? BAK
字號:
#include <pic.h>
#include "..\inc\include.h"
#include "..\inc\CodingTable.h"
#include "..\lib\I2C.h"
#include "..\lib\UART.h"
#include "..\lib\Timer.h"
#include "..\lib\GPIO.h"

//#define	GREY_LEVEL_MAX	52						//最大調光級數

#define	EEPROM_ADDR			0x00

#define	INTERVAL_AIMING		10						//連續調節時的調光間隔,單位是10ms
#define	LED_FLASH_SCALER	(12/INTERVAL_AIMING)	//連續調節時指示LED的閃爍周期的分頻

volatile uchar   PowerState;						//電源開關狀態 
volatile uchar   GreyLevel;							//LED的灰度值

__CONFIG(PROTECT & WDTDIS & MCLRDIS & DEBUGDIS & HS);
void INT_Init(void)
{
	PEIE = 1;						//Enable peripheral interrupt
	RBIE = 1;						//Enable Port B change interrupt
	PORTB = PORTB;
	RBIF = 0;
	//GIE = 1;						//Enable global interrupt
}
	

void Delay(uchar t)
{
	uchar i;
	int j;
	i = t;
	while(i--){
		j = 1000;
		while(j--);	
	}			
}

void DataSave(void)
{
	EEPROM_WriteByte1(EEPROM_ADDR, PowerState);
	EEPROM_WriteByte1(EEPROM_ADDR+1, GreyLevel);
}

void DataResume(void)
{
	uchar ret;
	ret = EEPROM_ReadByte1(EEPROM_ADDR, &PowerState);
	if(ret == NACK) {
		while(1){
			LED = !LED;
			Delay(20);
		}	
	}
	ret = EEPROM_ReadByte1(EEPROM_ADDR+1, &GreyLevel);
	if(ret == NACK) {
		while(1){
			LED = !LED;
			Delay(20);
		}	
	}
}

void interrupt ISR(void)
{
	if(TMR0IE){
		if(TMR0IF){		//Timer0一旦工作起來就無法停止,向TMR0寄存器賦值啟動Timer0
			Timer0_ISR();
		}	
	}
	if(TMR1IF){
		if(TMR1IE){
			Timer1_ISR();
		}
	}
	if(RBIF){
		if(RBIE){
			KeyScan();	
		}
	}
}

void Sys_Init(void)
{
	DataResume();						//從EEPROM中讀取PowerState和GreyLevel的值
	if(GreyLevel > GREY_LEVEL_MAX){		//避免GreyLevel太大,超過數組CodingTable的上界
		GreyLevel = GREY_LEVEL_MAX;
		DataSave();
	}	
	if(PowerState){
		LED = ON;
		PowerState = ON;	
		DMX512_SendData(CodingTable[GreyLevel]);
		//while(1);
	} else {
		LED = OFF;
		PowerState = OFF;	
		DMX512_SendData(0x00);
	}
}

void main(void)
{
	uchar ScalerCnt;
	uchar Buf,ret;
	
	
	INT_Init();
	Port_Init();
	I2C_Init();
	UART_Init();
	Timer_Init();
	
	ScalerCnt = 0;
	LED = OFF;
	
	/*
	DataResume();			//從EEPROM中讀取PowerState和GreyLevel的值
	if(PowerState){
		LED = ON;
		PowerState = ON;	
	} else {
		LED = OFF;
		PowerState = OFF;	
	}
	//LED = ON;
	if(GreyLevel > GREY_LEVEL_MAX){	//避免GreyLevel太大,超過數組CodingTable的上界
		GreyLevel = GREY_LEVEL_MAX;
		DataSave();
	}	
	EnableInterrupt();
	//GreyLevel = 1;
	DMX512_SendData(CodingTable[GreyLevel]);
	*/
	//EEPROM_WriteByte1(EEPROM_ADDR, 1);
	//EEPROM_WriteByte1(EEPROM_ADDR+1, 3);
	
	Delay(100);
	EnableInterrupt();
	DMX512_SendData(0x00);
	Sys_Init();					//需要用到10us延時,需要中斷支持,故應放在EnableInterrupt()之后
	
	while(1)
	{
		if(KeyEvent == KEY_PRESSED) {		//按鍵按下,允許響應對象為:KEY_DEC、KEY_INC
			if(PowerState == OFF){			//電源關閉時,不響應按鍵事件
				KeyEvent = KEY_IDLE;
				continue;	
			}
			Delay1ms(LED_FLASH_SCALER);	//連續按下超過200ms轉入快速調節模式
			LED = ON;		//按鍵時LED閃爍一下(結束)
			ScalerCnt = 0;
			if(!KEY_DEC){
				while(!KEY_DEC){
					if(GreyLevel > 0){
						GreyLevel--;
						DMX512_SendData(CodingTable[GreyLevel]);						//調光
						Delay1ms(INTERVAL_AIMING);
						if(++ScalerCnt >= LED_FLASH_SCALER){		//6分頻,周期120ms
							ScalerCnt = 0;
							LED = !LED;	
						}
					} else {
						GreyLevel = 0;
						if(++ScalerCnt >= LED_FLASH_SCALER){		//6分頻,周期120ms
							ScalerCnt = 0;
							LED = ON;
						}
						//DMX512_SendData(CodingTable[GreyLevel]);						//調光
						//Delay1ms(5);
					}
					if(KeyEvent == KEY_RELEASED){	//按鍵松開,中斷
						DataSave();
						break;		
					}
				}
			}
			else if(!KEY_INC){
				while(!KEY_INC){	
					if(GreyLevel < GREY_LEVEL_MAX){
						GreyLevel++;
						DMX512_SendData(CodingTable[GreyLevel]);						//調光
						//DataSave();
						Delay1ms(INTERVAL_AIMING);
						if(++ScalerCnt >= LED_FLASH_SCALER){		//6分頻,周期120ms
							ScalerCnt = 0;
							LED = !LED;	
						}
					} else {
						GreyLevel = GREY_LEVEL_MAX;
						if(++ScalerCnt >= LED_FLASH_SCALER){		//6分頻,周期120ms
							ScalerCnt = 0;
							LED = ON;
						}
						//DMX512_SendData(CodingTable[GreyLevel]);						//調光
						//Delay1ms(5);
					}
					if(KeyEvent == KEY_RELEASED){	//按鍵松開,中斷
						DataSave();
						break;		
					}
				}
			}
		}
		else if(KeyEvent == KEY_RELEASED) {	//按鍵松開,允許響應對象為:KEY_DEC、KEY_INC、KEY_POWER
			if(KeyValue & 0x01){			//KEY_POWER鍵按下
				if(PowerState){											//切換開關狀態
					PowerState = OFF;
					LED = OFF;
					DMX512_SendData(0x00);								//關閉
				}else{
					PowerState = ON;
					LED = ON;
					DMX512_SendData(CodingTable[GreyLevel]);			//調光
				}
			}
			else if(KeyValue & 0x02){		//KEY_INC鍵按下
				if(!PowerState) continue;			//電源關閉狀態時不響應
				if(GreyLevel < GREY_LEVEL_MAX){
					GreyLevel++;
					DMX512_SendData(CodingTable[GreyLevel]);						//調光
				} 
				/*else {
					GreyLevel = GREY_LEVEL_MAX;
				}*/
			}
			else if(KeyValue & 0x04){		//KEY_DEC鍵按下
				if(!PowerState) continue;			//電源關閉狀態時不響應
				if(GreyLevel > 0){
					GreyLevel--;
					DMX512_SendData(CodingTable[GreyLevel]);						//調光
				} 
				/*else {
					GreyLevel = 0;
				}*/
			}
			DataSave();
			KeyValue = 0;
			KeyEvent = KEY_IDLE;
		}
		else {								//空閑狀態,進入休眠狀態
			
			if(PowerState){
				LED = ON;
				DMX512_SendData(CodingTable[GreyLevel]);
			} else {
				LED = OFF;
				DMX512_SendData(0x00);
			}
			SLEEP();						//進入休眠狀態,節電模式
			
		}
	}	
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久欧美精品sm网站| 欧美三区在线视频| 蜜桃视频一区二区三区在线观看| 亚洲综合自拍偷拍| 一区二区三区在线高清| 综合激情网...| 一级女性全黄久久生活片免费| 中文字幕亚洲一区二区av在线 | 日韩精品一区二区三区视频播放 | 精品88久久久久88久久久| 欧美一级欧美三级在线观看| 欧美酷刑日本凌虐凌虐| 777午夜精品免费视频| 91精品中文字幕一区二区三区| 91精品国产福利在线观看| 日韩一区二区在线看| 久久亚洲欧美国产精品乐播 | 在线观看日韩电影| 欧美三级日韩三级国产三级| 欧美日本韩国一区| 精品国产乱码久久久久久1区2区| 337p日本欧洲亚洲大胆精品| 国产日韩欧美a| 最好看的中文字幕久久| 亚洲国产欧美在线人成| 免费欧美在线视频| 国产很黄免费观看久久| 色悠久久久久综合欧美99| 欧美性三三影院| 精品国产91亚洲一区二区三区婷婷| 精品国产第一区二区三区观看体验| 欧美日韩综合一区| 久久午夜羞羞影院免费观看| **性色生活片久久毛片| 国产最新精品免费| 丁香啪啪综合成人亚洲小说| 欧洲人成人精品| 精品国精品国产| 樱花影视一区二区| 九色综合狠狠综合久久| eeuss影院一区二区三区| 欧美日本一区二区| 国产三级久久久| 亚洲小少妇裸体bbw| 国产精品中文欧美| 色哟哟在线观看一区二区三区| 欧美日韩中文字幕精品| 久久影院视频免费| 日韩精品91亚洲二区在线观看 | 欧美高清一级片在线| 久久久精品2019中文字幕之3| 一区二区三区产品免费精品久久75| 青青草原综合久久大伊人精品优势| 成人在线视频首页| 精品裸体舞一区二区三区| 亚洲欧洲精品一区二区三区| 精品一二三四区| 欧美日韩免费一区二区三区视频| 欧美激情一区二区三区全黄| 蜜乳av一区二区| 欧美四级电影在线观看| 亚洲国产成人在线| 国内不卡的二区三区中文字幕 | 日韩你懂的在线观看| 亚洲午夜三级在线| 成人动漫一区二区三区| 久久日韩粉嫩一区二区三区| 日本不卡不码高清免费观看| 91久久精品国产91性色tv| 国产精品另类一区| 国产一区二区在线视频| 91精品福利在线一区二区三区| 一区二区三区在线视频免费观看| 成人免费视频免费观看| 国产日韩v精品一区二区| 九九精品一区二区| 日韩精品中午字幕| 国产最新精品精品你懂的| 欧美在线看片a免费观看| 亚洲欧美一区二区三区久本道91| 成人免费视频视频| 亚洲日本欧美天堂| 91成人看片片| 五月婷婷激情综合| 欧美一区二区三区在| 丝袜诱惑亚洲看片 | 国产黑丝在线一区二区三区| 精品久久人人做人人爽| 国产一区二区三区高清播放| 国产偷国产偷亚洲高清人白洁| 国产一区二区剧情av在线| 国产亚洲欧美日韩俺去了| 国产成人av福利| 国产精品福利av| 日本久久精品电影| 亚洲国产视频在线| 日韩三级免费观看| 成人在线一区二区三区| 亚洲日本在线观看| 555www色欧美视频| 国产精品中文字幕日韩精品| 中文字幕免费不卡| 日本丶国产丶欧美色综合| 日韩av电影免费观看高清完整版在线观看| 欧美高清精品3d| 国产一区二区三区在线观看精品| 亚洲欧洲日本在线| 91精品国产综合久久香蕉的特点| 激情文学综合插| 国产精品久久久久久久久免费丝袜 | 在线看国产日韩| 免费欧美在线视频| 1024精品合集| 日韩一区二区三区视频在线观看| 国产精品18久久久久久久久| 亚洲欧美日韩中文字幕一区二区三区 | 国产精品久久二区二区| 欧美无人高清视频在线观看| 蓝色福利精品导航| 中文字幕在线观看不卡视频| 欧美精品三级在线观看| 国产精品一区二区三区四区| 亚洲国产美女搞黄色| 久久亚洲一区二区三区四区| 91国偷自产一区二区开放时间| 精品一区二区综合| 亚洲永久免费视频| 国产欧美一区二区精品婷婷 | 国产v综合v亚洲欧| 午夜精品久久久久久久久| 国产精品日产欧美久久久久| 欧美精品一二三四| 色婷婷av一区二区三区gif | 亚洲天堂成人在线观看| 精品精品国产高清a毛片牛牛 | 欧美日韩高清不卡| 97精品超碰一区二区三区| 激情丁香综合五月| 午夜视频一区二区| 一区二区在线免费| 中文字幕一区二区5566日韩| 久久久久久久久久电影| 6080日韩午夜伦伦午夜伦| 欧美专区亚洲专区| 色综合久久88色综合天天免费| 成人福利视频网站| 成人精品一区二区三区中文字幕| 久久国产精品色婷婷| 日韩av电影免费观看高清完整版在线观看 | 日韩欧美国产综合| 日韩午夜三级在线| 日韩无一区二区| 欧美成人伊人久久综合网| 日韩欧美资源站| 日韩视频一区二区三区| 91精品国模一区二区三区| 9191精品国产综合久久久久久| 欧美午夜影院一区| 欧美日本乱大交xxxxx| 91精品婷婷国产综合久久| 欧美酷刑日本凌虐凌虐| 欧美精品乱人伦久久久久久| 欧美美女一区二区在线观看| 欧美日韩国产成人在线免费| 91精品国产入口在线| 日韩精品综合一本久道在线视频| 日韩一区二区三区精品视频| 欧美一级一区二区| 久久精品亚洲乱码伦伦中文| 中文字幕欧美三区| 一区二区高清视频在线观看| 一区二区三区欧美久久| 亚洲成人激情社区| 美女视频一区二区| 国产精品2024| 一道本成人在线| 91精品国产综合久久小美女| 2020国产成人综合网| 中文字幕五月欧美| 三级久久三级久久久| 精品亚洲国内自在自线福利| 成人午夜av在线| 欧美日韩三级一区| 国产亚洲精品精华液| 亚洲免费看黄网站| 伦理电影国产精品| 不卡免费追剧大全电视剧网站| 在线国产电影不卡| 日韩精品一区在线观看| 国产精品女同互慰在线看| 亚洲成人自拍一区| 激情欧美日韩一区二区| 一本色道**综合亚洲精品蜜桃冫| 欧美一级片在线| 亚洲男人都懂的| 国产一区高清在线| 欧美日韩黄视频| 国产精品久久久久久久久搜平片 | 日韩精品专区在线影院观看| 综合激情成人伊人|