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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? lcd drive.c

?? lcd實現(xiàn)漢字的顯示有電路和程序代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
    uchar a;
    for(a=0;a<8;a++)
      {
       I2C_SDA=(bit)(I2C_data&0x80);
       I2C_data=I2C_data<<1;
       I2C_clock();
      };
    I2C_SDA=High;
    I2C_delay();
    return(I2C_clock());
   }

/***********************************************
   I2C總線讀一個字節(jié),即接收一個字節(jié)數(shù)據(jù)
   接收結(jié)束后需要發(fā)送一個應(yīng)答位acknowledge
***********************************************/

uchar I2C_receive()
     {
      uchar a,receive_data;
      for(a=0;a<8;a++)
         {
          receive_data=receive_data<<1;
          if(I2C_clock())
           {
            receive_data++;
           }; 
         };
 //I2C_ACK();
      return(receive_data);
      }

 DS1621_start()
   {
	do
	{
     I2C_start();
	 }
    while(I2C_send(0x90));//發(fā)送數(shù)據(jù)完地址字節(jié)的數(shù)據(jù)時,檢測從機的應(yīng)答位        
	if(I2C_send(0xee)==0)
	  {
	   I2C_stop();
	   return 1;
	   }
    else
	  return 0;			        
	  }

 DS1621_stop()
   {
    do
	{
	 I2C_start();
	 //I2C_send(0x90);
	 }
	while(I2C_send(0x90));
	if(I2C_send(0x22)==0)
     {
	  I2C_stop();
	  return 1;
	  }
	else
	  return 0;	    
	}

char read_count_remain()
      {
	   char temp_remain=0;
	   do
	   	{
	     I2C_start();
	     }
	   while(I2C_send(0x90));//是否應(yīng)答
	   if(I2C_send(0xa8)==0)
	     {
		  I2C_start();
	      if(I2C_send(0x91)==0)
	        {
			temp_remain=I2C_receive();
			I2C_NACK();
		    I2C_stop();
			return temp_remain;
			}
		  else
		    return 0;
	      }
		else
		  return 0;
	   }
char read_count_c()
      {
	   char temp_c=0;
	   do
	   	{
	     I2C_start();
	     }
	   while(I2C_send(0x90));//是否應(yīng)答
	   if(I2C_send(0xa9)==0)
	     {
		  I2C_start();
	      if(I2C_send(0x91)==0)
	        {
			temp_c=I2C_receive();
			I2C_NACK();
		    I2C_stop();
			return temp_c;
			}
		  else
		    return 0;
	      }
		else
		  return 0;
	   }
bit read_temperature(char *point1)
   {
	do
	{
	I2C_start();
	}
	while(I2C_send(0x90));
    if(I2C_send(0xaa)==0)
	  {
	   do{
	     I2C_start();
	     }
	     while(I2C_send(0x91));
	   (*point1)=I2C_receive();
	   I2C_ACK();
	   (*(point1+1))=I2C_receive();
	   I2C_NACK();
	   I2C_stop();
	   return 1;
	   }
	else
	return 0;
	}

 DS1621_state()
   {
	do
	{
	 I2C_start();
	 }
	while(I2C_send(0x90));
	if(I2C_send(0xac)==0)
      {
	   do
		{
	     I2C_start();
		}
	   while(I2C_send(0x90));
	   if(I2C_send(0x00)==0)
	   //if(I2C_send(0x01)==0)
		 {
		 I2C_stop();
		 return 1;
		  }
	   else
	   return 0;
		}
	else
	  return 0;	    
	}

 DS1621_th()
   {
	 
    }
 DS1621_tl()
   {
	 
    }
 DS1621_init()
   {
	while(DS1621_stop()==0)
	{};
	while(DS1621_state()==0)
	{};
	DS1621_th();
	DS1621_tl();
	}

/****************************************************
       字符為16*16顯示,分為兩個部分寫入32個字節(jié)
       前16個字節(jié)寫入第一頁(16*8),后16個字節(jié)寫入
	   第二頁(16*8)
	   左側(cè)寫入"歡迎",右側(cè)寫入"使用"
*****************************************************/
C_display_L(uchar C_Pagenum,uchar C_Tiernum,uchar C_Temp)
  {
   uchar k;
   C_Pagenum=PAGEADD|C_Pagenum;
   C_Tiernum=TIERADD|C_Tiernum;
   WRCommand_L(C_Pagenum);
   WRCommand_L(C_Tiernum);
   for(k=0;k<16;k++)
      {
       WRdata_L(table2[C_Temp*32+k]);
	     };
   C_Pagenum=C_Pagenum+1;
   WRCommand_L(C_Pagenum);
   WRCommand_L(C_Tiernum);
   for(k=0;k<16;k++)
      {
       WRdata_L(table2[C_Temp*32+k+16]);
	   };
   }

C_display_R(uchar C_Pagenum,uchar C_Tiernum,uchar C_Temp)
  {
   uchar k;
   C_Pagenum=PAGEADD|C_Pagenum;
   C_Tiernum=TIERADD|C_Tiernum;
   WRCommand_R(C_Pagenum);
   WRCommand_R(C_Tiernum);
   for(k=0;k<16;k++)
      {
       WRdata_R(table2[C_Temp*32+k]);
	     };
   C_Pagenum=C_Pagenum+1;
   WRCommand_R(C_Pagenum);
   WRCommand_R(C_Tiernum);
   for(k=0;k<16;k++)
      {
       WRdata_R(table2[C_Temp*32+k+16]);
	     };
  }

/****************************************
   寫入西文字符,共11個字符,左側(cè)寫入6個
   右側(cè)寫入5個,左側(cè)起始從16開始,右側(cè)從
   0開始
*****************************************/

E_Display_L(uchar E_Pagenum,uchar E_Tiernum,uchar E_Temp)
  {
   uchar k;
   WRCommand_L(PAGEADD|E_Pagenum);
   WRCommand_L(TIERADD|E_Tiernum);
   for(k=0;k<8;k++)
	  {
	   WRdata_L(table1[E_Temp*8+k]);
	   };
   }   
E_Display_R(uchar E_Pagenum,uchar E_Tiernum,uchar E_Temp)
   {
   uchar k;
   WRCommand_R(PAGEADD|E_Pagenum);
   WRCommand_R(TIERADD|E_Tiernum);
   for(k=0;k<8;k++)
	  {
	   WRdata_R(table1[E_Temp*8+k]);
	   };
   	}

/*********************************
	   清除所有顯示RAM內(nèi)容
**********************************/

CLR_DisplayRAM()
   {
    uchar C_page,i,k;
    for(i=0;i<8;i++)
	   {
	    C_page=PAGEADD|i;//清除起始頁為0
	    WRCommand_L(C_page);//清除起始頁寫入左側(cè)
		WRCommand_L(TIERADD);//清除起始行地址寫入左側(cè)
		WRCommand_R(C_page);//清除起始頁寫入右側(cè)
		WRCommand_R(TIERADD);//清除起始行地址寫入右側(cè)
		for(k=0;k<64;k++)
		   {		   	
			WRdata_L(0x00);
			WRdata_R(0x00);//lcm的ram自動加一,只許循環(huán)64次即可    
		 	};
		 };
    }

/*********************************
       初始化 設(shè)置啟使行
**********************************/
void Init_LCD(void)
   {
	CLR_DisplayRAM();//清除所有顯示寄存器
	WRCommand_L(DIS_STARADD);
	WRCommand_R(DIS_STARADD);//設(shè)置顯示起始行地址
	WRCommand_L(0x3f);
	WRCommand_R(0x3f);//開顯示
    }
/***************************************
    tlc0831
****************************************/
uchar tlc0831_read()
       {
	    uchar ad_num,voltage_temp=0;
		cs=High;
		clk=Low;
		_nop;
		_nop;
	   	cs=Low;

		for(ad_num=0;ad_num<8;ad_num++)
           {
		    clk=High;
			_nop;
		    clk=Low;
			if(d_out) 
			voltage_temp++;
			voltage_temp<<=1;
		    }
		 cs=High;
		 return (voltage_temp);
	    }

main()
  {
   uchar a=0,temp=0,b=0,number=0,pagenum=0;
   char count_remain=0,count_c=0;
   bit flag=1;
   char temperature_bus[2]={0};
   uchar temperature_display[8]={0};
   //uchar voltage=0; //測試0831時使用
   double voltage=0,temp_buffer=0;
   cs=High;
   clk=High;
   Init_LCD();
   I2C_init();
   DS1621_init();
   DS1621_start();//開始溫度采集
   for(a=b;b<2;b++)
      {
     //第一頁顯示大概為1.2s,第一頁顯示結(jié)束
     for(number=0;number<20;number++)
	     {
	      //中文顯示:歡迎使用液晶模塊
     	  pagenum=1;
	      for(a=0;a<4;a++)
	        {
	         C_display_L(pagenum,a*16,a);
	         C_display_R(pagenum,a*16,a+4);
	         }; 
        
		  //英文顯示:Welcome use	            
          pagenum=5;
          for(a=0;a<3;a++)
             {
              E_Display_L(pagenum,(a+5)*8,etable[a+5]);
              };
          for(a=0;a<8;a++)
             { 
              E_Display_R(pagenum,a*8,etable[a+8]);
              };
        
		  //顯示:Time:2006/11/07				
          pagenum=7;
          for(a=0;a<8;a++)
             {
              E_Display_L(pagenum,a*8,ttable[a]);
              E_Display_R(pagenum,a*8,ttable[a+8]);
              }          
	      Delay_nms(100);
		  };
		  if(flag)
		 	 {
              read_temperature(temperature_bus);//在轉(zhuǎn)到下一個顯示截面之前空讀兩次
			  read_count_remain();
			  read_count_c();
			  DS1621_start();
              flag=0;
   	          };
   	  };  

	WRCommand_L(0x3e);
	WRCommand_R(0x3e);
	CLR_DisplayRAM();  //清除顯示ram
	WRCommand_L(0x3f);
	WRCommand_R(0x3f);   
			
    while(1)
	   {
	    while(read_temperature(temperature_bus)==0);//讀溫度值(兩字節(jié)有符數(shù)),只使用第一字節(jié)
	    count_remain=read_count_remain();//讀斜率
		count_c=read_count_c();//讀計數(shù)器
		temp_buffer=temperature_bus[0]-0.75+(count_c-count_remain)/(float)count_c;
		DS1621_start();

		   	temperature_display[0]=19;
			if(temp_buffer<0)
			  {
			   temperature_display[1]=16;
		       temperature_display[2]=(uchar)((-temp_buffer)/10);
			   temperature_display[3]=((uchar)(-temp_buffer))%10;
			   temperature_display[4]=17;
			   temperature_display[5]=(int)((-temp_buffer)*10)%10;
			   temperature_display[6]=(int)((-temp_buffer)*100)%10;
			   }
			else
			  {
			   temperature_display[1]=((uchar)temp_buffer)/100;
		       temperature_display[2]=((uchar)temp_buffer)/10%10;
			   temperature_display[3]=((uchar)temp_buffer)%10;
			   temperature_display[4]=17;
			   temperature_display[5]=((int)(temp_buffer*10))%10;
			   temperature_display[6]=((int)(temp_buffer*100))%10;
			   }

			// 測試從0831讀出的原始數(shù)據(jù)
		    /***************************
			pagenum=3;
	 	    voltage=tlc0831_read();
		    voltage_display[0]=19;
		    voltage_display[1]= voltage/100;   
		    voltage_display[2]=(voltage/10)%10;
		    voltage_display[3]= voltage%10;		  
		    *******************************/

		//LCD顯示部分
		for(b=0;b<40;b++)
	       {
		    
			//更新0831顯示值		    
			voltage=(double)tlc0831_read();
		    voltage=5*voltage/255;
		    voltage_display[0]=19;
		    voltage_display[1]=(uchar) voltage;
		    voltage_display[2]=17;
		    voltage_display[3]=((uchar)(voltage*10))%10;
		    voltage_display[4]=((uchar)(voltage*100))%10;
		    voltage_display[5]=((uchar)(voltage*1000))%10;
			
			//顯示文字:電壓測量		
		    pagenum=2;
		    for(a=0;a<2;a++)
		       C_display_L(pagenum,a*16,a+8);
		    for(a=0;a<2;a++)
		       C_display_L(pagenum,(a+2)*16,a+12);	
		   
		   	//顯示文字:溫度測量
		    pagenum=5;
		    for(a=0;a<2;a++)
		       C_display_L(pagenum,a*16,a+10);
		    for(a=0;a<2;a++)
		       C_display_L(pagenum,(a+2)*16,a+12);
		    
			//顯示0831采樣值
			pagenum=3;
		    for(a=0;a<6;a++)
              {
		   	   E_Display_R(pagenum,a*8,voltage_display[a]); 
		       }

			//顯示ds1621采樣值
			pagenum=6;
		    for(a=0;a<7;a++)
              {
		   	   E_Display_R(pagenum,a*8,temperature_display[a]); 
		       }
          };
	  };	
   }

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
蜜桃av一区二区三区| 在线观看国产日韩| 国产精品久久久久7777按摩| 激情五月婷婷综合| 亚洲欧美另类久久久精品2019| 日韩限制级电影在线观看| 91亚洲精品久久久蜜桃| 国产成人免费av在线| 青青草成人在线观看| 亚洲午夜国产一区99re久久| 中文字幕第一区综合| 欧美—级在线免费片| 欧美不卡一区二区三区| 欧美精品久久久久久久多人混战| 色哟哟一区二区| 欧美日韩一区精品| 日韩一级成人av| 国产欧美日韩精品a在线观看| 欧美三级电影网| 日韩视频免费观看高清完整版在线观看 | 欧美一区二区视频在线观看2020| 99re热这里只有精品视频| 国产xxx精品视频大全| 国产精品 欧美精品| 91视频免费看| 精品一区二区免费视频| 国产麻豆成人精品| 久久99国产精品成人| 国产一区二区三区在线观看免费视频| 青青青伊人色综合久久| 久久国产福利国产秒拍| 激情综合网最新| 国产**成人网毛片九色| 成人免费黄色大片| 91蝌蚪porny| 欧美日韩三级视频| 日韩视频免费观看高清在线视频| 欧美成人a在线| 国产女主播视频一区二区| 国产精品高潮呻吟久久| 亚洲成人一区二区在线观看| 亚洲欧美一区二区不卡| 午夜久久久影院| 国产一区福利在线| 欧美精品亚洲二区| 欧美一激情一区二区三区| 国产亚洲欧美日韩俺去了| 中文字幕一区二区三区在线不卡| 亚洲精品一二三四区| 日韩av不卡一区二区| 丰满少妇久久久久久久| 91麻豆国产福利精品| 69成人精品免费视频| 久久久国产精品不卡| 一区二区三区产品免费精品久久75| 一区二区三区在线高清| 久久激情五月婷婷| 色婷婷国产精品久久包臀| 欧美日韩一区在线| 中文字幕乱码一区二区免费| 亚洲午夜电影网| 国产成人av一区二区三区在线观看| 91黄色激情网站| 久久久久久久久久久电影| 亚洲综合丝袜美腿| 国产精品18久久久久久久久久久久| 在线观看日韩国产| 国产日本欧洲亚洲| 久久精品久久精品| 波多野结衣一区二区三区| 欧美一区二区三区在线视频| 中文字幕日韩一区二区| 国产尤物一区二区| 91精品欧美一区二区三区综合在 | 成人性色生活片| 成人欧美一区二区三区1314| 国产精品一二三四| www久久精品| 韩国av一区二区| 久久久久九九视频| 成人精品免费网站| 中文字幕一区二| 色诱视频网站一区| 亚洲一区免费观看| 欧美日韩在线免费视频| 日韩精品免费视频人成| 欧美一区二区三区人| 久色婷婷小香蕉久久| 久久亚洲综合色| 粉嫩嫩av羞羞动漫久久久| 国产精品久久久久久久久久免费看 | 色婷婷久久久综合中文字幕| 国产精品黄色在线观看| 97久久人人超碰| 一区二区三区视频在线看| 精品视频在线免费观看| 日韩av一区二区三区| 日韩免费电影一区| 春色校园综合激情亚洲| 亚洲欧美区自拍先锋| 91精品国产免费久久综合| 麻豆国产欧美日韩综合精品二区 | 亚洲人一二三区| 欧美日韩你懂得| 韩国成人精品a∨在线观看| 中文字幕在线不卡| 欧美精品久久99| 成人一区二区三区在线观看| 18欧美亚洲精品| 欧美一区二区免费视频| 国产91高潮流白浆在线麻豆| 一级特黄大欧美久久久| 欧美国产一区在线| 欧美日韩二区三区| 处破女av一区二区| 免费一级片91| 亚洲欧美日韩综合aⅴ视频| 欧美一区三区二区| 99久久精品免费看国产| 国内精品嫩模私拍在线| 亚洲国产成人高清精品| 国产欧美日韩视频一区二区| 欧美揉bbbbb揉bbbbb| av一区二区久久| 狠狠色狠狠色综合系列| 亚洲成av人片| 亚洲人123区| 国产免费观看久久| 日韩欧美一级特黄在线播放| 在线一区二区三区做爰视频网站| 国产一区啦啦啦在线观看| 午夜国产精品影院在线观看| 国产精品成人一区二区艾草| 欧美精品一区二区久久久| 欧美三级电影一区| 色久综合一二码| 97精品国产露脸对白| 国产不卡一区视频| 国产精品中文字幕一区二区三区| 日本不卡视频在线| 亚洲成人av福利| 亚洲在线观看免费| 亚洲综合视频网| 亚洲精品国产一区二区三区四区在线| 国产欧美日韩一区二区三区在线观看| 日韩一区二区三区高清免费看看| 欧美日韩三级在线| 欧美色区777第一页| 91久久一区二区| 在线观看国产一区二区| 色综合天天综合| 91麻豆文化传媒在线观看| 成人丝袜18视频在线观看| 成人综合日日夜夜| 成人国产精品免费观看视频| 成人午夜大片免费观看| 成人h版在线观看| 94-欧美-setu| 日本韩国欧美国产| 欧美在线看片a免费观看| 欧美亚洲综合色| 欧美一区二区三区在线观看 | 经典一区二区三区| 国产老肥熟一区二区三区| 久久99精品一区二区三区三区| 六月丁香婷婷色狠狠久久| 青娱乐精品视频在线| 麻豆久久久久久| 久久99精品久久久久久动态图| 狠狠色狠狠色综合系列| 国产成人在线色| av激情亚洲男人天堂| 欧美性大战久久| 日韩三级精品电影久久久| 久久综合999| 亚洲男人天堂av| 丝袜美腿亚洲一区| 国产一区不卡在线| 色美美综合视频| 欧美大片在线观看一区| 久久蜜桃av一区二区天堂| 亚洲精品高清在线| 久久电影网电视剧免费观看| 粉嫩久久99精品久久久久久夜| 成人av电影在线| 在线不卡免费欧美| 国产精品人成在线观看免费| 亚洲自拍偷拍av| 国产精品一二二区| 欧美日韩精品一区视频| 久久亚洲综合av| 亚洲gay无套男同| 粉嫩av一区二区三区| 欧美一级黄色片| 亚洲精品视频在线| 国产精品一区专区| 欧美精品在线观看播放| 国产精品久久免费看| 玖玖九九国产精品| 欧美三级电影网站|