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

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

?? slave2.c

?? pic16 i2c slave (picc)
?? C
字號:
#include	<pic.H>
#include    "delay.h"

#define		IDLE			0
#define		WAIT_START 		1
#define		START_RECIEV	2
#define		RECIVE			3
#define		NEXT_BYTE		4
#define     ACK             5
#define     WAIT_STOP       6

#define     SCL		RA3
#define     SDA     RA2
#define     SCL_DIR		TRISA0
#define     SDA_DIR     TRISA1

#define     INPUT		1
#define     OUTPUT      0
unsigned char I2C_STAT,Bptr,BitCount,adress,t0cnt;
unsigned char B[4];
bit t0flag;

unsigned char cont_mode,flash_mode,flash_time,pwr_mode;
//eeprom adress
#define 	CONT_ADR	0
#define     FLASH_ADR   1
#define     TIME_ADR    2
//controls
#define     SET_CONT	0x10
#define     SET_FLASH   0x20
#define     SET_TIME    0x30
#define     OFF         0x40
#define     ON          0x50	
//*********************************
#define     READ_CONT   0x10
#define     READ_FLASH  0x20
#define     READ_TIME   0x30

 	

bit I2C_CMD,NEW_TASK;
void I2CLOOP(void);
#define			READ	1
#define         WRITE   0

//__CONFIG  ( MCLREN & UNPROTECT & WDTDIS & PWRTEN & INTIO & LVPDIS  & BORDIS); 
__CONFIG  ( UNPROTECT & WDTDIS & PWRTEN  & LVPDIS  & BOREN & XT); 

#define     FCPU     4000000
#define     FPWM	 20000
#define 	PERIOD	 1/FPWM
#define     PR2VAL   50//PERIOD*FCPU/4
#define     DUTY    10



void interrupt isr(void)
{
	if(INTE && INTF)
	{
		INTF=0;
			CCPR1L = flash_mode >> 2;
			if (flash_mode & 0x02) CCP1X = 1;
			else
			CCP1X = 0;
			if (flash_mode & 0x01) CCP1Y = 1;
			else
			CCP1Y = 0;  
		while (!RB0)
		{}
			CCPR1L = cont_mode >> 2;
			if (cont_mode & 0x02) CCP1X = 1;
			else
			CCP1X = 0;
			if (cont_mode & 0x01) CCP1Y = 1;
			else
			CCP1Y = 0;  
		
	}
	if (TMR0IE && TMR0IF)
	{
	TMR0IF = 0;
	TMR0 = 100;//200us interrupt
	t0flag = 1;
	t0cnt++;
	if (t0cnt > 100) 
	{

		t0cnt = 0;
	}
	}

	
}

void EESAVE(unsigned char adrr,unsigned char data)
{
	EEADR = adrr;
	EEDATA = data;
//	EEPGD = 0;
	WREN = 1;
	GIE = 0;
	EECON2 = 0x55;
	EECON2 = 0xaa;
	WR = 1;
	GIE = 1;
	WREN = 0;
	while (WR)
	{
	}
}

unsigned char EEREAD(unsigned char adrr)
{
	EEADR = adrr;
//	EEPGD = 0;
	RD = 1;
	return EEDATA;
}
void I2CLOOP(void)
{
	switch (I2C_STAT)
	{
		case IDLE:
			if ((SCL) && (SDA)) 
			{
			I2C_STAT = WAIT_START;
			Bptr = 0;
			BitCount = 0;
			}
			break;
		case WAIT_START:
			if ((SCL) && (!SDA)) 
			{
			I2C_STAT = START_RECIEV;
			}
			break;
		case START_RECIEV:
			if (!SCL) 
			{
			I2C_STAT = RECIVE;
			}
			if ((SDA) && (SCL))
			{
			I2C_STAT = IDLE;
			}
			break;
		case RECIVE:
			if (SCL) 
			{
				if (BitCount++ == 8) 
				{
					I2C_STAT = ACK;
				}
				else
				{ 
					I2C_STAT = NEXT_BYTE;
         			B[Bptr] <<= 1;
					if	(SDA) B[Bptr]+=0x01; 
					if (BitCount == 8)
					{
						if ((B[0] & 0x0e) == adress)
						{
							if (B[0] & 0x80) I2C_CMD = READ;
							else
							{
								I2C_CMD = WRITE;
							}
							SDA = 0;
	//						SDA_DIR = OUTPUT;  temporary down
							RA3 = 0;
						}
						else
						{
							I2C_STAT = IDLE;
						}	
					}
				}
			}
			break;
		case NEXT_BYTE:
			if (!SCL) 
			{
				I2C_STAT = RECIVE;
			}	
			break;
		case ACK:				

			if (!SCL)
			{
				I2C_STAT = RECIVE;
				BitCount = 0;
				Bptr ++;
				SDA_DIR = INPUT;
				if (Bptr == 3) 	
				I2C_STAT = WAIT_STOP;
			}

			break;
		case WAIT_STOP:				
			if (SCL)
			{
				I2C_STAT = IDLE;
				NEW_TASK = 1;
			}

			break;
	 }
}


void main(void)
{
	unsigned char t,t1,q;
//CMCON = 0xff;
T0CS = 0;
PSA = 0;//prescale for timer0
PS0 = 0;
PS1 = 0;
PS2 = 0;
ADCON1 = 0x07;
adress = 0x00;
Bptr = 0;
TRISA=0xff;
TRISB3 = 0;
TRISC2 = 0;
RA3 = 1;
NEW_TASK = 0;
T2CON = 0;
TMR2ON = 1;
CCP1M3 = 1;
CCP1M2 = 1;
PR2 = PR2VAL;
RBPU = 0; //set pull ups
INTEDG = 0; //interrup on falling EDGE
INTE = 1; //enable interrupt on RB0
TMR0IF = 0;
TMR0IE = 1; //enable tmr0 int
GIE = 1;
cont_mode = EEREAD(CONT_ADR);
flash_mode = EEREAD(FLASH_ADR);
/*
	CCPR1L = cont_mode >> 2;
	if (cont_mode & 0x02) CCP1X = 1;
	else
	CCP1X = 0;
	if (cont_mode & 0x01) CCP1Y = 1;
	else
	CCP1Y = 0;
*/
			CCPR1L = 0;
			CCP1X = 0;
			CCP1Y = 0;   
RC3 = 0;
TRISC3 = 0;



while(1)
{
if 	(t0flag) 
{
	I2CLOOP();
	t0flag = 0;
}
if (NEW_TASK)
{
	NEW_TASK = 0;
	switch (B[0] & 0xf0)
	{
		case     SET_CONT:
			EESAVE(CONT_ADR,B[2]);		//saves the value recived
			cont_mode = B[2];
			CCPR1L = B[2] >> 2;
			if (B[2] & 0x02) CCP1X = 1;
			else
			CCP1X = 0;
			if (B[2] & 0x01) CCP1Y = 1;
			else
			CCP1Y = 0;  
			break;
		case     SET_FLASH: 
			if (B[2] != 0) 
			{
				EESAVE(FLASH_ADR,B[2]);
				flash_mode = B[2]; 
			}
			else
			{ 
				EESAVE(FLASH_ADR,cont_mode);//store the value of the light if 0 else store value
				flash_mode = cont_mode;
			}   
			break;
		case     SET_TIME:   
			EESAVE(TIME_ADR,B[2]);		// save time
			flash_time = B[2];
			break; 
		case     OFF:
			CCPR1L = 0;
			CCP1X = 0;
			CCP1Y = 0;   
			break;       
		case     ON:   
			CCPR1L = cont_mode >> 2;
			if (cont_mode & 0x02) CCP1X = 1;
			else
			CCP1X = 0;
			if (cont_mode & 0x01) CCP1Y = 1;
			else
			CCP1Y = 0;  		    
			break;
		default:
			break;
	}    

}
}


while(1)
{
for (q = 0; q<200;q++)
{
	CCPR1L = q >> 2;
	if (q & 0x02) CCP1X = 1;
	else
	CCP1X = 0;
	if (q & 0x01) CCP1Y = 1;
	else
	CCP1Y = 0;
	DelayMs(100);
	RC3 = 1;
	DelayMs(8);
	RC3 = 0;
}
}  		    
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧洲日韩一区二区三区| 青青草精品视频| 强制捆绑调教一区二区| 成人激情文学综合网| 日韩欧美一区二区三区在线| 亚洲欧美综合另类在线卡通| 久久99国产精品久久99| 欧美日韩国产小视频| 亚洲视频网在线直播| 国产成人精品影视| 精品国产伦理网| 青青青爽久久午夜综合久久午夜| 日本乱人伦一区| 中文字幕日本乱码精品影院| 国产美女在线观看一区| 欧美一级一级性生活免费录像| 亚洲午夜久久久久| 色网综合在线观看| 亚洲欧洲av另类| 成人精品鲁一区一区二区| 精品国产亚洲在线| 韩国女主播一区| 26uuu国产电影一区二区| 免费在线观看成人| 91精品国模一区二区三区| 亚洲自拍另类综合| av网站一区二区三区| 中文字幕一区视频| 成人h动漫精品一区二| 亚洲国产岛国毛片在线| 成人午夜在线播放| 欧美激情一区二区三区不卡| 国产一区二区看久久| 欧美激情一区二区三区在线| 不卡的av电影| 亚洲精品自拍动漫在线| 欧美伊人久久大香线蕉综合69| 亚洲一区自拍偷拍| 91精品国产综合久久精品| 免费在线一区观看| 久久这里只精品最新地址| 国产福利精品一区| 亚洲欧美国产77777| 在线观看视频欧美| 人人精品人人爱| 国产日韩欧美不卡在线| 99久久久国产精品免费蜜臀| 亚洲制服欧美中文字幕中文字幕| 欧美日韩免费不卡视频一区二区三区| 日产国产高清一区二区三区| 欧美成人精品1314www| 国产乱码字幕精品高清av| 国产欧美日韩不卡| 欧美性受xxxx| 精品制服美女丁香| 国产精品天干天干在观线| 色综合久久天天综合网| 日本成人在线不卡视频| 国产欧美日韩在线看| 在线免费观看日本一区| 精品一区二区三区视频| 亚洲少妇最新在线视频| 制服丝袜在线91| 国产大陆a不卡| 亚洲成人免费看| 中文字幕的久久| 欧美乱妇20p| 成人免费视频视频在线观看免费 | 亚洲欧美色一区| 91精品国产免费| 9久草视频在线视频精品| 免费久久99精品国产| 中文字幕日韩一区| 精品99一区二区三区| 欧洲激情一区二区| 国产成人综合在线| 青青国产91久久久久久| 一色屋精品亚洲香蕉网站| 日韩一级免费观看| 91福利国产精品| 成人精品鲁一区一区二区| 日韩av一区二| 亚洲黄色片在线观看| 久久日一线二线三线suv| 在线观看中文字幕不卡| 成人午夜电影久久影院| 蜜臀av性久久久久蜜臀aⅴ| 一区二区三区四区亚洲| 欧美国产一区二区| 精品日韩欧美在线| 欧美日产国产精品| 色婷婷精品久久二区二区蜜臂av | 国产精品久久久久三级| 欧美成人艳星乳罩| 欧美日韩高清不卡| 在线观看不卡视频| 92国产精品观看| 国产.欧美.日韩| 国产在线视频一区二区三区| 免费看日韩精品| 热久久国产精品| 视频一区二区三区在线| 一区二区三区四区精品在线视频| 中文av一区特黄| 中国色在线观看另类| 国产日产精品1区| 国产日韩欧美高清| 久久色成人在线| 久久综合国产精品| 久久亚洲欧美国产精品乐播 | 欧美一区二区三区喷汁尤物| 欧美日免费三级在线| 欧美性大战久久久久久久 | 成人免费毛片嘿嘿连载视频| 国产高清在线精品| 国产精品一区二区视频| 麻豆成人久久精品二区三区小说| 视频一区中文字幕国产| 另类小说综合欧美亚洲| 三级影片在线观看欧美日韩一区二区| 亚洲成人中文在线| 三级久久三级久久| 免费日韩伦理电影| 韩国成人精品a∨在线观看| 国产一区二区三区av电影 | 国产激情视频一区二区三区欧美| 国产一区二区三区精品欧美日韩一区二区三区 | 久久久精品国产99久久精品芒果 | 日韩精品一区二区三区老鸭窝| 日韩一级免费观看| 国产午夜精品福利| 亚洲情趣在线观看| 日韩精品欧美成人高清一区二区| 美女在线观看视频一区二区| 国产一区二区不卡在线 | 亚洲女爱视频在线| 亚洲成a人v欧美综合天堂 | 亚洲成人av资源| 久久er精品视频| 成人91在线观看| 欧洲一区二区三区在线| 91精品国产福利| 中文字幕电影一区| 一区二区三区四区乱视频| 麻豆成人久久精品二区三区红 | 91精品国产aⅴ一区二区| 欧美精品一区二区不卡| 中文字幕一区二区三区在线观看| 亚洲一区在线观看网站| 久久国产生活片100| 91蜜桃在线观看| 精品久久久久久久久久久久久久久久久| 久久久久久久久一| 亚洲午夜一区二区| 国产成人免费av在线| 欧美天堂一区二区三区| 国产午夜精品在线观看| 日日噜噜夜夜狠狠视频欧美人| 国产一区二区三区四区五区入口| 在线观看日韩精品| 亚洲国产成人午夜在线一区| 日韩avvvv在线播放| 91日韩精品一区| 精品国产免费久久| 丝袜诱惑制服诱惑色一区在线观看 | 欧美日韩三级一区二区| 国产偷国产偷精品高清尤物| 亚洲国产另类精品专区| 不卡的av中国片| 久久尤物电影视频在线观看| 午夜精品久久久久久久蜜桃app| 成人美女视频在线观看| 亚洲精品在线网站| 午夜电影一区二区三区| 97久久精品人人做人人爽50路| 欧美精品一区二区三区在线| 日韩精品免费视频人成| 欧美在线视频你懂得| 亚洲欧洲精品成人久久奇米网| 国产精品白丝jk白祙喷水网站 | 亚洲色图欧洲色图| 成人禁用看黄a在线| 久久噜噜亚洲综合| 精品亚洲国产成人av制服丝袜| 在线不卡一区二区| 石原莉奈在线亚洲三区| 欧美日韩视频在线一区二区 | 最近日韩中文字幕| 处破女av一区二区| 国产亚洲精品免费| 国产精品2024| 欧美激情一区在线观看| 国产精品自在在线| 久久天天做天天爱综合色| 久久99日本精品| 日韩女优av电影| 久久丁香综合五月国产三级网站| 日韩写真欧美这视频| 久草中文综合在线| 日韩欧美电影在线|