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

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

?? jiankong.c

?? 通過單片機控制SAA7111A來顯示監控圖像
?? C
?? 第 1 頁 / 共 2 頁
字號:
	DISPLAY_D3 = dataA&0x08;			 
	DISPLAY_D2 = dataA&0x04;		
	DISPLAY_D1 = dataA&0x02;	
	DISPLAY_D0 = dataA&0x01;	
	
	DISPLAY_WR = 0x0;
	DISPLAY_WR = 0x1;

}

void ClearScreen()	//Clear Screen
{
	uint i, j;
	uchar y = 0, yHigh = 0;
	for(i = 0; i < 480; i ++)
	{
		WriteAddrToLcd(0, 0);
		WriteAddrToLcd(1, 0);
		WriteAddrToLcd(2, y);
		WriteAddrToLcd(3, yHigh);
		//multiWrite
		for(j = 0; j < 80; j ++)
			WriteMultiDataToLcd(6, 0xFF);

		if(y == 255)
		{
			y = 0;
			yHigh = 1;
		}
		else
			y ++;		
	}
}

void SetPosXY(uint x, uint y) //Set position
{
	WriteAddrToLcd(0, x&0x00ff);
	WriteAddrToLcd(1, (x&0x0300) >> 8);
	WriteAddrToLcd(2, y&0x00ff);
	WriteAddrToLcd(3, (y&0x0100) >> 8);
}

void WriteMultiWord(uint x, uint y, uint xNum, uint yNum, uchar *pData)	//write word at Screen
{
	uint i, j;
	//
	for(i = 0; i < yNum; i ++)
	{
	    //write addr
		SetPosXY(x, y);
		for(j = 0; j < xNum; j ++)
			WriteMultiDataToLcd(6, pData[i*xNum + j]);
		y ++;
	}
}

void Write3Digit(uint x, uint y, uchar num)	//write word at Screen
{
	uchar i, digit, posX = x, posY = y;
	//
	digit = num/100;
	for(i = 0; i < 15; i ++)
	{
	    //write addr
		SetPosXY(posX, posY);
		WriteMultiDataToLcd(6, CodeNum[digit*15 + i]);
		posY ++;
	}

	posY = y;
	posX = x + 10;
	digit = (num%100)/10;
	for(i = 0; i < 15; i ++)
	{
	    //write addr
		SetPosXY(posX, posY);
		WriteMultiDataToLcd(6, CodeNum[digit*15 + i]);
		posY ++;
	}
	posY = y;
	posX = x + 20;
	digit = (num%100)%10;
	for(i = 0; i < 15; i ++)
	{
	    //write addr
		SetPosXY(posX, posY);
		WriteMultiDataToLcd(6, CodeNum[digit*15 + i]);
		posY ++;
	}

}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
//I2C
////////////////////////////////////////////////////////////////////
//起動總線函數原型: void  Start_I2c()
//功能: 啟動I2C總線,即發送I2C起始條件  
////////////////////////////////////////////////////////////////////

void Start_I2c()
{
		SDA=1;										//發送起始條件的數據信號
		_Nop();
		SCL=1;
		_Nop(); _Nop(); _Nop(); _Nop(); _Nop();  	//起始條件建立時間大于4.7us,延時
		SDA=0;   									//發送起始信號
		_Nop(); _Nop(); _Nop(); _Nop();	_Nop();		// 起始條件鎖定時間大于4μs
		SCL=0;   									//鉗住I2C總線,準備發送或接收數據
		_Nop(); _Nop();
}

//////////////////////////////////////////////////////////////////////            
//結束總線函數原型: void  Stop_I2c();  
//功能: 結束I2C總線,即發送I2C結束條件
///////////////////////////////////////////////////////////////////////

void Stop_I2c()
{
		SDA=0;  								//發送結束條件的數據信號
		_Nop();   													
		SCL=1;  								//發送結束條件的時鐘信號
		_Nop(); _Nop(); _Nop(); _Nop();	_Nop();	//結束條件建立時間大于4μs
		SDA=1;  								//發送I2C總線結束信號
		_Nop(); _Nop(); _Nop(); _Nop(); _Nop();
}

/////////////////////////////////////////////////////////////////////
//字節數據傳送函數原型: void  SendByte(uchar c);
//功能:  將數據c發送出去,可以是地址,也可以是數據,發完后等待應答,并對
//   		 此狀態位進行操作.(不應答或非應答都使ack=0 假)     
//       發送數據正常,ack=1; ack=0表示被控器無應答或損壞。
//////////////////////////////////////////////////////////////////////
void  SendByte(uchar c)
{
	uchar BitCnt; 
	for(BitCnt=0;BitCnt<8;BitCnt++)  			//要傳送的數據長度為8位
    {
		if((c<<BitCnt)&0x80)	SDA=1; 	 		//判斷發送位
    	else  SDA=0;                
     	_Nop();
     	SCL=1;               					//置時鐘線為高,通知被控器開始接收數據位
      	_Nop(); _Nop(); _Nop(); _Nop();	_Nop();	//保證時鐘高電平周期大于4μs
        SCL=0; 
    }
    _Nop(); _Nop();
    SDA=1;         								//8位發送完后釋放數據線,準備接收應答位
    _Nop(); _Nop();   
    SCL=1;
    _Nop(); _Nop(); _Nop();
    if(SDA==1)	ack=0;     
    else	ack=1;        						//判斷是否接收到應答信號
    SCL=0;
    _Nop(); _Nop();
}

//////////////////////////////////////////////////////////////////////////
//字節數據接收函數原型: uchar  RcvByte();
//功能:  用來接收從器件傳來的數據,并判斷總線錯誤(不發應答信號),
//	     發完后請用應答函數。  
///////////////////////////////////////////////////////////////////////////	
uchar  RcvByte()
{
  uchar retc = 0;
  uchar BitCnt;  
  
  SDA=1;             							//置數據線為輸入方式
  for(BitCnt=0;BitCnt<8;BitCnt++)
  {
  	  _Nop();           
      SCL=0;       								//置時鐘線為低,準備接收數據位
      _Nop(); _Nop(); _Nop(); _Nop(); _Nop();	//時鐘低電平周期大于4.7μs
      SCL=1;  									//置時鐘線為高使數據線上數據有效
      _Nop(); _Nop();
      retc = retc<<1;
      if(SDA==1)	retc=retc+1; 				//讀數據位,接收的數據位放入retc中
      _Nop(); _Nop();
  }
  SCL=0;    
  _Nop(); _Nop();
  return(retc);
}

///////////////////////////////////////////////////////////////////////////
//應答子原型:  void Ack_I2c(bit a);
//功能:	主控器進行應答信號,(可以是應答或非應答信號)
////////////////////////////////////////////////////////////////////////////
void Ack_I2c(bit a)
{  
	if(a==0)	SDA=0;     					//在此發出應答或非應答信號
	else 	SDA=1;
  	_Nop(); _Nop(); _Nop();
  	SCL=1;
    _Nop(); _Nop(); _Nop(); _Nop();_Nop();	//時鐘低電平周期大于4μs
	SCL=0;         							//清時鐘線,鉗住I2C總線以便繼續接收
    _Nop(); _Nop();        
}

/////////////////////////////////////////////////////////////////////////               
//向無子地址器件發送字節數據函數原型: bit  ISendByte(uchar sla,ucahr c);  
//功能:     從啟動總線到發送地址,數據,結束總線的全過程,從器件地址sla.
//          如果返回1表示操作成功,否則操作有誤。
//注意:    使用前必須已結束總線。
/////////////////////////////////////////////////////////////////////////
bit ISendByte(uchar sla,uchar c)
{
	Start_I2c();               					//啟動總線
  	SendByte(sla);           					//發送器件地址
    if(ack==0)	return(0);
   	SendByte(c);               					//發送數據
   	if(ack==0)	return(0);
  	Stop_I2c();                 				//結束總線
  	return(1);
}

//////////////////////////////////////////////////////////////////////////////               
//向無子地址器件讀字節數據函數原型: bit  IRcvByte(uchar sla,ucahr *c);  
//功能:   從啟動總線到發送地址,讀數據,結束總線的全過程,從器件地
//        址sla,返回值在c.
//        如果返回1表示操作成功,否則操作有誤。
//注意:  使用前必須已結束總線。
///////////////////////////////////////////////////////////////////////////////
bit IRcvByte(uchar sla,uchar *c)
{
   	Start_I2c();                					//啟動總線
   	SendByte(sla+1);           						//發送器件地址
    if(ack==0)	return(0);
   	*c=RcvByte();               					//讀取數據
    Ack_I2c(1);               						//發送非就答位
  	Stop_I2c();                  					//結束總線 
  	return(1);
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////
//watch dog
/*void x5045_outbyte(unsigned char wr_data)
{
	 unsigned char loop;
	 unsigned char tmp_x;
	 tmp_x=1;
	 for(loop=8;loop>0;loop--)
	 {
	  WD_SCK=0;
	  if((wr_data&(tmp_x<<(loop-1)))!=0)
	    {
	   WD_SI=1;
	    }
	  else
	    {
	           WD_SI=0;
	    }
	  WD_SCK=1;
	 }
	 WD_SI=0;
}
unsigned char x5045_inbyte(void)
{
	 unsigned char loop;
	 unsigned char tmp_x;
	 tmp_x=0;
	 for(loop=8;loop>0;loop--)
	  {
	   WD_SCK=1;
	   WD_SCK=0;
	   tmp_x<<=1;
	            if(WD_SO!=0)
	     {
	     tmp_x+=1;
	     }
	  }
	 return tmp_x;
}

void x5045_wren_cmd()
{
	 WD_SCK=0;
	 WD_CS=0;
	 x5045_outbyte(WREN);
	 WD_SCK=0;
	 WD_CS=1;
}

unsigned char x5045_rdsr_cmd()
{
	 unsigned char tmp_x;
	 WD_SCK=0;
	 WD_CS=0;
	 x5045_outbyte(RSDR);
	 tmp_x=x5045_inbyte();
	 WD_SCK=0;
	 WD_CS=1;
	 return tmp_x;
}

void x5045_wip_poll(void)
{
	 unsigned char loop;
	 unsigned char tmp_x;
	 for(loop=0;loop<MAX_POLL;loop++)
	 {
	     tmp_x=x5045_rdsr_cmd();
	  if((tmp_x&0x01)==0)
	    {
	      return;
	    }
	 }
}
void x5045_wrsr_cmd()
{
	 WD_SCK=0;
	 WD_CS=0;
	 x5045_outbyte(WRSR);
	 x5045_outbyte(STATUS_REG);
	 WD_SCK=0;
	 WD_CS=1;
	 x5045_wip_poll();
}*/

/*void x5045_page_write(unsigned int address,unsigned char *p,unsigned char number)
{
	 unsigned char loop;
	 unsigned char d1,d2;
	 unsigned char *k;
	 k=p;
	 WD_SCK=0;
	 WD_CS=0;
	 number&=0x1f;
	 d1=(address>>8)&0x01;
	 d1<<=3;
	 d1|=WRITE;
	 d2=(address&0x00ff);
	 x5045_outbyte(d1);
	 x5045_outbyte(d2);
	 for(loop=0;loop<number;loop++)
	 {
	  x5045_outbyte(*k);
	  k++;
	 }
	 WD_SCK=0;
	 WD_CS=1;
	 x5045_wip_poll();
	 return;
}

void x5045_page_read(unsigned int address,unsigned char *p,unsigned char number)
{
	 unsigned char loop;
	 unsigned char d1,d2;
	 unsigned char *k;
	 k=p;
	 WD_SCK=0;
	 WD_CS=0;
	 number&=0x1f;
	 d1=(address>>8)&0x01;
	 d1<<=3;
	 d1|=READ;
	 d2=(address&0x00ff);
	 x5045_outbyte(d1);
	 x5045_outbyte(d2);
	 for(loop=0;loop<number;loop++)
	 {
	  *k=x5045_inbyte();
	  k++;
	 }
	 WD_SCK=0;
	 WD_CS=1;
	 return;
}*/

/*void x5045_rst_wdog()
{
	 //WD_WP=1;
	 WD_CS=0;
	 WD_CS=1;
	 //WD_WP=1;
	 return;
}

/////////////////////
void x5045_initial()
{
	 //WD_WP=1;
	 WD_CS=1;
	 WD_SO=1;
	 WD_SCK=0;
	 WD_SI=0;
	 x5045_wren_cmd();
	 x5045_wrsr_cmd();
	 //WD_WP=1;
}*/







?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品999在线播放| 视频一区中文字幕国产| 亚洲一区二区不卡免费| 久久91精品久久久久久秒播| 91小视频免费看| 欧美成人性战久久| 亚洲在线免费播放| 国产iv一区二区三区| 欧美一区二区三区思思人| 国产精品传媒在线| 国产精品中文字幕欧美| 亚洲欧美自拍偷拍| 免费人成在线不卡| 欧美剧情电影在线观看完整版免费励志电影| 精品国产123| 日本美女一区二区三区视频| 91浏览器入口在线观看| 国产女人18毛片水真多成人如厕| 日韩激情视频网站| 精品视频1区2区| 亚洲精品成人悠悠色影视| 国产精品69毛片高清亚洲| 欧美成人女星排名| 美国毛片一区二区| 日韩一区二区三区四区 | 亚洲乱码中文字幕| 风流少妇一区二区| 国产欧美日韩久久| 国产精品一二三四| 久久久久久免费毛片精品| 裸体歌舞表演一区二区| 欧美日韩一区二区三区视频| 亚洲一区二区视频在线观看| 91免费精品国自产拍在线不卡| 国产女人18毛片水真多成人如厕 | 激情综合色综合久久| 717成人午夜免费福利电影| 夜色激情一区二区| 欧美羞羞免费网站| 亚洲国产日韩精品| 欧美日韩国产小视频在线观看| 亚洲精品成人精品456| 欧美三级日韩三级国产三级| 亚洲福中文字幕伊人影院| 欧美日韩一区在线| 另类中文字幕网| 国产日韩综合av| 99久久精品情趣| 夜夜亚洲天天久久| 在线不卡欧美精品一区二区三区| 丝袜美腿亚洲色图| 日韩欧美一区二区免费| 国产福利一区二区三区视频在线 | 日韩av一二三| 精品国产三级a在线观看| 韩国精品主播一区二区在线观看| 久久精品男人的天堂| jlzzjlzz国产精品久久| 亚洲成a人v欧美综合天堂| 8x8x8国产精品| 国产传媒欧美日韩成人| 亚洲视频免费在线观看| 欧美一区二视频| 国产麻豆91精品| 亚洲色大成网站www久久九九| 欧美三电影在线| 国产精品一区二区x88av| 亚洲精品一卡二卡| 精品久久一区二区三区| 91丨porny丨首页| 日本视频一区二区| 国产精品久久久久久妇女6080| 欧美精品一级二级三级| 激情成人午夜视频| 亚洲一区在线视频观看| 久久影院电视剧免费观看| 色悠悠亚洲一区二区| 久久精品国产精品青草| 亚洲色图在线视频| 精品国产成人在线影院| 欧美伊人久久久久久久久影院 | 制服丝袜中文字幕亚洲| 国产精品亚洲专一区二区三区| 亚洲欧美另类小说| 久久综合九色综合欧美98| 在线视频你懂得一区| 国产精品一区久久久久| 青青草精品视频| 亚洲精品少妇30p| 国产日韩欧美麻豆| 欧美一区二区三区性视频| 99久久久国产精品免费蜜臀| 狠狠v欧美v日韩v亚洲ⅴ| 亚洲影视在线播放| 国产精品免费视频网站| 欧美精品一区二区在线播放 | 亚洲精品菠萝久久久久久久| 26uuu国产一区二区三区| 欧美丝袜自拍制服另类| 99久久综合99久久综合网站| 精品一区二区三区久久| 丝袜美腿亚洲色图| 亚洲一区二区美女| 亚洲男人的天堂在线观看| 日本一区二区动态图| 久久综合中文字幕| 欧美大片一区二区三区| 在线电影院国产精品| 欧美日韩国产美女| 欧日韩精品视频| 欧美最新大片在线看| 色婷婷精品大在线视频| 91视频免费播放| 色香色香欲天天天影视综合网| 成人av综合在线| 成人激情午夜影院| voyeur盗摄精品| 95精品视频在线| 日本精品裸体写真集在线观看| 99精品久久久久久| 国产欧美一区二区精品仙草咪| 日韩欧美黄色影院| 日韩精品一区二区三区四区视频 | 日本韩国精品在线| 91黄色免费观看| 欧美日韩国产综合一区二区| 欧美日韩五月天| 欧美一区二区三区婷婷月色| 欧美变态tickle挠乳网站| 日韩欧美亚洲国产精品字幕久久久| 日韩欧美在线一区二区三区| 欧美大白屁股肥臀xxxxxx| 久久久久久电影| 国产精品女主播av| 亚洲午夜一区二区| 免费精品99久久国产综合精品| 久久9热精品视频| 成人精品视频一区| 日本韩国精品在线| 日韩视频一区二区三区在线播放| 日韩精品一区二区三区在线播放| 久久久午夜精品| 亚洲欧美欧美一区二区三区| 日韩国产高清在线| 国产精品一色哟哟哟| 色哟哟国产精品| 欧美一区二区三区啪啪| 国产无一区二区| 亚洲夂夂婷婷色拍ww47| 久久99精品久久久| 99国产欧美另类久久久精品| 欧美日韩国产精品自在自线| 久久蜜桃av一区二区天堂| 亚洲乱码国产乱码精品精可以看| 日韩vs国产vs欧美| 成人国产精品免费网站| 欧美日韩在线电影| 欧美韩国日本一区| 婷婷久久综合九色国产成人| 成人视屏免费看| 5月丁香婷婷综合| 国产精品久久久久久久蜜臀| 日韩电影在线免费看| a亚洲天堂av| 欧美一区二区三区电影| 亚洲天堂精品在线观看| 精品一区二区免费视频| 欧美探花视频资源| 国产精品久久久久久久久图文区| 日韩精品一二区| 色婷婷久久综合| 国产午夜精品理论片a级大结局| 午夜精品福利一区二区三区av | 97精品国产97久久久久久久久久久久| 欧美日韩免费观看一区二区三区| 国产日韩精品视频一区| 秋霞午夜av一区二区三区| 色综合久久综合中文综合网| 久久久久国产精品麻豆ai换脸 | 一区二区三区国产精品| 国产福利91精品一区二区三区| 在线不卡一区二区| 一区二区三区在线视频观看58| 成人性生交大片免费看在线播放| 日韩一区二区三区电影| 亚洲成av人片| 欧美亚洲日本国产| 亚洲美女在线一区| www.欧美色图| 亚洲欧洲日韩在线| 成人黄色av电影| 国产精品对白交换视频| 丁香婷婷综合五月| 欧美激情一区二区三区蜜桃视频| 国产乱码精品一区二区三区av| 日韩欧美国产小视频| 喷白浆一区二区| 日韩精品一区在线| 国产精品一区二区视频| 2021中文字幕一区亚洲|