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

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

?? function.c

?? 單片機的主控端
?? C
?? 第 1 頁 / 共 2 頁
字號:
    {
        Tmp_Data[num]=ScanIic();
        SendACK();
    }
    Tmp_Data[num]=ScanIic();
    SendNotACK();
    EndIic;
}

UCHAR Read_I2c_byte(UCHAR AddressH,UCHAR AddressL)        
{
    UCHAR num;
    StartIic;
    Write_8bit(Iic_Write);
    Write_8bit(AddressH);
    Write_8bit(AddressL);  //write address to i2c; 
    StartIic;
    Write_8bit(Iic_Read);
    num=ScanIic();
    SendNotACK();
    EndIic;
	return num;
}

void Write_I2c_Page(UCHAR * Tmp_Data, UCHAR num_array)
{
    UCHAR num;
    StartIic;
    Write_8bit(Iic_Write);
    Write_8bit(AddressH);
    Write_8bit(AddressL);
    for(num=0;num<num_array;num++)
    {
        Write_8bit(Tmp_Data[num]);
    }
    EndIic;
    num=0;
    while(num<250){Wait_Nop;Wait_Nop;num++;}
}

void Write_I2c_byte(UCHAR AddressH,UCHAR AddressL,UCHAR data_to_write)
{
	UCHAR num;
    StartIic;
    Write_8bit(Iic_Write);
    Write_8bit(AddressH);
    Write_8bit(AddressL);
    Write_8bit(data_to_write);
    EndIic;
    num=0;
    while(num<250){Wait_Nop;Wait_Nop;num++;}
}


bit Write_8bit(UCHAR ch)
{
    UCHAR i;
    for(i=0;i<8;i++)
    {
        SDA=(bit)(ch&0x80);
        ch<<=1;
        SCL=1;
        Wait_Nop;
        SCL=0;
        Wait_Nop;
    }
    return(CheckACK());
}

UCHAR ScanIic(void)
{
    UCHAR i,j;/*IIC data*/
    SDA=1;
    j=0;
    for(i=0;i<8;i++)
    {
        SCL=1;
        j<<=1;/*這個指令已經有15個周期,所以無須再延時*/
        j|=SDA;/*Scan 0*/    /*Scan 1*/
        SCL=0;
    }
    return j;
}

bit CheckACK(void)
{
    SDA=1;
    SCL=1;
    Wait_Nop;
    if(SDA==1)return SDA;
    if(SDA==1)return SDA;
    if(SDA==1)return SDA;
    SCL=0;
}

void SendACK(void)
{
    SDA=0;
    SCL=1;
    Wait_Nop;
    SCL=0;
    SDA=1;
    
}

void SendNotACK(void)
{
    SDA=1;
    SCL=1;
    Wait_Nop;
    SCL=0;
    SDA=0;
}


void SetInit()
{
	SCON = 0xf0;
 	TR1  = 1;
	RI   = 0;
 	TI   = 0;
	EA   = 1;
}

void Prepare()                              
{
	UCHAR tmp,highByte,lowByte;
	Write_Display(welString);//welString[32] = "SEARCHING CELLS PLEASE WAIT...  ";
	Delay5s();
	QueryCell();
	tmp = cellInfo.length;               //acquire the number of cells
	cellInfo.point = (cellInfo.length == 0)?0:(cellInfo.length-1);     //point to the last cell
	LCDClr();
	LCDString(0,allNumber,16);				//allNumber[16] = "ALL :     CELLS ";
	highByte = (tmp/10) + 0x30;//change hex to ascii
	lowByte  = (tmp%10) + 0x30;
	LCDChar(6,highByte);
	LCDChar(7,lowByte);
	tmp = cellInfo.cellStack[cellInfo.point];
	highByte = (tmp/10 + 0x30);
	lowByte  = (tmp%10 + 0x30);
	LCDChar(16,highByte);		                      //最大基站號
	LCDChar(17,lowByte);
	Delay5s();
}

void QueryCell()       //query the cells and return the number of cells                
{
	UCHAR currentCell,highByte,lowByte,i,j;
	UCHAR AddressL=1;
	UCHAR AddressH=0;
	bit rightFlag;
	p = &QUERY;
	for(currentCell=1; currentCell<=CELLMAXNUM; currentCell++)//CELLMAXNUM 可以修改CELL組數
	{
		highByte = (currentCell/10) + 0x30;
 	    lowByte  = (currentCell%10) + 0x30;
		LCDChar(30,highByte);
        LCDChar(31,lowByte);                //display the querying cell
		for(i = 0;i<8;i++)
			UIData[i]=0;
		for(j=0;j<3;j++)
		{
			TB8 = 1;              //sign address flag
			SBUF = currentCell;   //send cell address
			while(!sendFlag);
			sendFlag = 0;
			SEND_RECEIVE = 0;     //receive status
			TR0 = 1;              //open the timer0,avoid no response
			while(!receiveFlag && !responseFlag);
			SEND_RECEIVE = 1;     //send status
			if(receiveFlag)
			{
				if((UIData[0]==0xaa)&&(UIData[1]==0xaa)&&(UIData[2]==0xaa)&&(UIData[3]==0xaa)&&(UIData[4]==0xaa)&&(UIData[5]==0xaa))
					{
						rightFlag = 1;
						Write_I2c_byte(0,AddressL,currentCell);//save the cell number;total 15cells can be stored;
						AddressL++;
					}
				else
 		    		rightFlag = 0;
			}
			else
				rightFlag = 0;
			receiveFlag = 0;
			responseFlag = 0;
			if(rightFlag)
			{
				cellInfo.cellStack[cellInfo.length++] = currentCell;
			    rightFlag = 0;
				break;
			}
		}
	}
}

void GatherDis()
{
	LCDClr();
	Write_Display(gatherProcess); //gatherProcess[32] = "CELLGATHERING PLEASE WAIT...";
}

void SendGather()
{
	UCHAR i;
	/*
	for(i = 0;i<16;i++)
		Delay5s();
		*/
	p = &GATHER;
	TB8 = 1;              //sign address flag
	SBUF = COMMON;        //send common address
	while(!sendFlag);
	sendFlag = 0;
	for(i = 0;i < 250;i ++)
		Delay(255);
}

void TransferDis()
{
	LCDClr();
	Write_Display(dataGetProcess); //dataGetProcess[32] = "DATA TRANSFERINGPLEASE   WAIT...";
	Delay5s();
}

void TransferIng()
{
    UCHAR cellPoint,highByte,lowByte,datatmp,i;
    receiveFlag = 0;
    responseFlag = 0;
    //在0x00地址保存接收數據組數
    if(cellInfo.length == 0)            //得到最大基站號
        {
            cellPoint = 0;
			Write_Display(Nocell);
			Delay5s();
        }
    else
        {
            cellPoint = cellInfo.length-1;
        }
    AddressL= 0;
    AddressH= 0;
    Write_I2c_Page(&groupCurrent, 1);//保存當前組數
    AddressL = (groupCurrent-1)*2+0x10;
    Write_I2c_Page(&cellInfo.length, 1);
    AddressL ++;
    Write_I2c_Page(&cellInfo.cellStack[cellPoint], 1);
    
	p = &TRANSFER;
	for(cellPoint = 0; cellPoint < cellInfo.length ; cellPoint ++)
	{
		for(i = 0;i<8;i++)
			UIData[i]=0;
			/*
		for(i = 0;i<2;i++)
			Delay5s();
			*/
//		Delay5s();
//		Delay5s();
//		Delay5s();

		TB8 = 1;              //sign address flag
		datatmp = cellInfo.cellStack[cellPoint];          //cell address
		SBUF = datatmp;       //send cell address
		while(!sendFlag);
		sendFlag = 0;
		SEND_RECEIVE = 0;     //receive status
		TR0 = 1;              //open the timer0,avoid no response
		while(!receiveFlag && !responseFlag);
		SEND_RECEIVE = 1;     //send status
		LCDClr();
		LCDString(0,allNumber,16);				//allNumber[16] = "ALL :     CELLS ";
		highByte = (cellInfo.length/10) + 0x30;
		lowByte  = (cellInfo.length%10) + 0x30;
		LCDChar(6,highByte);
		LCDChar(7,lowByte);
        if(receiveFlag)
        {
            highByte = (datatmp/10) + 0x30;
            lowByte  = (datatmp%10) + 0x30;
            LCDChar(16,highByte);	                     
            LCDChar(17,lowByte);                      //display the current cell number
	/*		
			//以下代碼根據采集數據判斷基站電池狀態,并顯示
			if((UIData[2]&0x30)!=0)
			{
				SOUND = 1;
			}			
			else
			{
				SOUND = 0;
			}

  */
/* change the gain according to the cell number

			switch(cellPoint)
			{
				case 3:
				{GAINU=1.0;
					break;}
				case 5:
				{GAINU=1.0;
					break;}
				case 7:
				{GAINU=1.0;
					break;}
				case 0x0b:
				{GAINU=1.0;
					break;}
				case 0x0d:
				{GAINU=1.0;
					break;}
				default:
				{GAINU=0.6575;
					break;}
			}
*/
            showFloat(cellPoint);	//顯示當前測量結果
            Delay5s();		//延時,方便記錄
    		Delay5s();
			Delay5s();
			Delay5s();


            SaveCellDataToEEPROM(groupCurrent,cellInfo.cellStack[cellPoint]);//保存數據
            Save_Display();  //????????
			showFloat(cellPoint);	//顯示當前測量結果
        }
		//else
		//	cellPoint -- ;
		receiveFlag = 0;
		responseFlag = 0;
	}
}

void Save_Display()          //???????????????
{
	UCHAR highByte,lowByte,i;
	//save to the eeprom;
	for(i = 0;i < 8;i ++)
	{
		highByte = (UIData[i]/16) + 0x30;
		lowByte  = (UIData[i]%16) + 0x30;              
		if(highByte>'9')
			highByte = highByte - ':' + 'a';
		if(lowByte>'9')
			lowByte = lowByte - ':' + 'a';
		LCDChar(2*i+20,highByte);
		LCDChar(2*i+21,lowByte);
	}
}

void SaveCellDataToEEPROM(UCHAR group,UCHAR currentCell)
{
    //UIData
    UINT EEPaddr;  //e2prom里的實際地址
    EEPaddr = (group-1)*160+0xA0 + (currentCell-1)*8;  //計算改組內基站數據地址
    AddressL= (UCHAR)(EEPaddr&0x00ff);
    AddressH= (UCHAR)(EEPaddr>>8);
    Write_I2c_Page(UIData,8);
    
}


void Write_I2c_Page0(void)
{
    UCHAR num;
	UCHAR temp;
	UCHAR num1;
	UCHAR num2=0;
	UCHAR ADDRH;
	UCHAR ADDRL;
	UINT addr;
    for(num1=0;num1<64;num++)
	{
    	addr=num1*num2;
		ADDRL= (UCHAR)(addr&0x00ff);
    	ADDRH= (UCHAR)(addr>>8);
		StartIic;
    	Write_8bit(Iic_Write);
    	Write_8bit(ADDRH);
    	Write_8bit(ADDRL);
    	for(num=0;num<128;num++)
    	{
        	Write_8bit(0xff);
    	}
    	EndIic;
    	num=0;
    	while(num<250){Wait_Nop;Wait_Nop;num++;}
		
		temp = (addr%10) + 0x30;
	    LCDChar(31,temp);
		addr /= 10;

		temp = (addr%10) + 0x30;
	    LCDChar(30,temp);
		addr /= 10;

		temp = (addr%10) + 0x30;
	    LCDChar(29,temp);
		addr /= 10;

		temp = (addr%10) + 0x30;
	    LCDChar(28,temp);
		
		num2+=128;
    }
}

void Query_I2c_Page(void)
{
	UCHAR num;
	UCHAR pos;
	UCHAR temp;
	UCHAR GROUPP;
	UCHAR totalnum;
	NUM_GROUG_DISPLAY();//TOTAL    CELLS      GROUP DATA   ;
    totalnum=Read_I2c_byte(0,0x10);//HEX
	temp = (totalnum%10) + 0x30;
	LCDChar(6,temp);
	totalnum /= 10;
	temp = (totalnum%10) + 0x30;
    LCDChar(7,temp);
	GROUPP=Read_I2c_byte(0,0);//HEX
	temp = (GROUPP%10) + 0x30;
	LCDChar(12,temp);
	GROUPP /= 10;
	temp = (GROUPP%10) + 0x30;
    LCDChar(13,temp);
	Delay5s();
	Delay5s();
	EEPnum_Display();
	for (num=1;num<=totalnum;num++)
	{
		pos=16+3*(num-1);
		if(pos>30)
		pos=pos-15;
		GROUPP=Read_I2c_byte(0,num);
		temp = (GROUPP%10) + 0x30;
		LCDChar(pos,temp);
		GROUPP /= 10;
		temp = (GROUPP%10) + 0x30;
    	LCDChar(pos+1,temp);
		Delay5s();

		
	}
		EEPQ_Display();
}



	

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线亚洲+欧美+日本专区| 韩国三级电影一区二区| 福利视频网站一区二区三区| 8x8x8国产精品| 亚洲另类在线一区| 99视频精品在线| 欧美一级xxx| 奇米精品一区二区三区在线观看 | 一区二区在线观看免费| 在线亚洲一区二区| 国产亚洲成av人在线观看导航| 同产精品九九九| 91精品综合久久久久久| 久久国产麻豆精品| 制服.丝袜.亚洲.另类.中文| 亚洲男人的天堂一区二区| 欧美在线免费观看亚洲| 精品国产麻豆免费人成网站| 激情综合五月天| 欧美日韩一区二区三区四区 | 国产精品福利一区二区三区| 欧美性猛交xxxxxx富婆| 久久99在线观看| 亚洲欧美色图小说| 中文字幕精品三区| 精品免费视频.| 欧美剧在线免费观看网站| 成人app网站| 国产成人精品一区二区三区网站观看| 亚洲一区二区三区四区五区黄 | 亚洲天天做日日做天天谢日日欢| 亚洲一区二区在线免费观看视频 | 欧美亚洲综合另类| 国产一区美女在线| 五月天激情综合| 亚洲男人的天堂在线观看| 国产午夜久久久久| 国产欧美va欧美不卡在线| 国产日韩影视精品| 国产精品美女www爽爽爽| 日本一区二区视频在线| 亚洲成av人片一区二区梦乃| 在线观看日韩一区| 在线观看日韩电影| 56国语精品自产拍在线观看| 欧美男女性生活在线直播观看| 91年精品国产| 91精品国产综合久久久蜜臀图片| 欧美videos大乳护士334| 久久精品在线免费观看| 亚洲精品欧美激情| 日韩黄色免费网站| 国产成人精品影院| 91福利视频网站| 国产精品国产三级国产aⅴ原创| 精品不卡在线视频| 国产精品久久久久久久久免费相片 | 国产成人欧美日韩在线电影| 成人av手机在线观看| 成人精品鲁一区一区二区| 精品视频一区三区九区| 国产亚洲制服色| 亚洲福利一二三区| 91在线你懂得| 久久久91精品国产一区二区精品| 日本亚洲欧美天堂免费| 日韩电影在线免费观看| 成人免费观看视频| 日韩欧美国产综合在线一区二区三区| 日韩一区中文字幕| 国产a区久久久| 国产亚洲一二三区| 青娱乐精品在线视频| 欧美三级电影一区| 日本一区二区三区久久久久久久久不 | 亚洲同性gay激情无套| 欧美日本乱大交xxxxx| 久久精品夜色噜噜亚洲aⅴ| 亚洲图片欧美激情| jlzzjlzz国产精品久久| 亚洲国产成人自拍| 成人免费观看视频| 亚洲女女做受ⅹxx高潮| 国产成人精品免费一区二区| 久久久久久久久久久久久久久99| 蜜桃精品视频在线观看| 久久免费偷拍视频| 中文字幕综合网| 舔着乳尖日韩一区| 粉嫩在线一区二区三区视频| 2014亚洲片线观看视频免费| 懂色av一区二区三区免费看| 亚洲精品在线免费观看视频| 成人国产精品视频| 亚洲精品国产第一综合99久久 | 国产日韩在线不卡| 亚洲免费色视频| 欧美区在线观看| 国产福利一区二区三区视频| 一区二区三区在线观看动漫| 日韩一区二区电影在线| 成人黄页毛片网站| 毛片av中文字幕一区二区| 国产精品国产三级国产aⅴ中文| 欧美一区二区三区免费| 91行情网站电视在线观看高清版| 免费欧美在线视频| 亚洲一区在线观看视频| 亚洲国产精品二十页| 欧美一区二区三区四区高清| av在线播放不卡| 国产精品一二三在| 久久不见久久见免费视频7| 亚洲成人av一区二区| 亚洲欧美日韩中文字幕一区二区三区| 欧美喷水一区二区| 欧美日韩在线精品一区二区三区激情| 国产成人综合在线观看| 久久精品久久精品| 日本aⅴ精品一区二区三区 | 国产主播一区二区三区| 美女一区二区视频| 日韩专区在线视频| 日本亚洲视频在线| 麻豆精品视频在线观看免费| 日韩国产成人精品| 久久国产日韩欧美精品| 国产盗摄一区二区| 99国产精品久久久久久久久久| 懂色av一区二区夜夜嗨| 91亚洲国产成人精品一区二区三| 色综合色综合色综合色综合色综合| 不卡一区二区中文字幕| 欧美亚洲一区二区在线观看| 欧美美女直播网站| 精品日韩在线观看| 亚洲天堂2014| 久久机这里只有精品| 国产精品66部| 欧美日韩高清不卡| 久久天天做天天爱综合色| 国产精品久久久久7777按摩| 午夜精品福利视频网站| 粗大黑人巨茎大战欧美成人| 在线视频国内一区二区| 国产亚洲欧美中文| 亚洲国产日韩在线一区模特| 国产在线不卡视频| 日韩免费性生活视频播放| 欧美国产成人精品| 日韩av一二三| 欧美日韩精品一区二区天天拍小说 | 在线成人av网站| 亚洲三级在线免费观看| 国产成人免费视频一区| 欧美精品tushy高清| 亚洲午夜激情网页| 91亚洲精品乱码久久久久久蜜桃| 欧美大胆一级视频| 亚洲综合丁香婷婷六月香| 亚洲美女视频在线| 亚洲成av人影院| 色婷婷综合久久久久中文一区二区| 日本免费在线视频不卡一不卡二| 国产日韩欧美高清在线| 亚洲h精品动漫在线观看| 色综合久久天天| 亚洲午夜激情网站| 欧美日本一区二区在线观看| 捆绑调教美女网站视频一区| 欧美色图一区二区三区| 日韩专区一卡二卡| 91精品国产乱码久久蜜臀| 久久97超碰色| 国产三级三级三级精品8ⅰ区| 成人av先锋影音| 一区二区理论电影在线观看| 欧美精品在线观看一区二区| 国产一区在线观看视频| 中文字幕在线不卡一区二区三区| 91片黄在线观看| 国产精品私人自拍| 欧美日韩综合不卡| 美日韩一区二区| 国产精品久久久久婷婷| 欧美乱妇一区二区三区不卡视频| 国产精品一级片| 经典三级视频一区| 亚洲午夜私人影院| 国产精品久久久久久户外露出| 91精品国产91久久综合桃花 | 最新国产成人在线观看| 日韩免费一区二区三区在线播放| 一本大道久久精品懂色aⅴ| 老司机午夜精品99久久| 亚洲一二三专区| 日韩久久一区二区| 亚洲欧美在线观看| 日韩精品一区二区三区在线观看| 色综合久久88色综合天天 |