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

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

?? wendu.c

?? 此為18B20的溫度檢測以及鍵盤控制和液晶顯示程序.好用.
?? C
?? 第 1 頁 / 共 2 頁
字號:
//////////////////////////////////////////////////////////////
//
//          1602子程序
//函數說明:delay(uchar d)             延時2us程序
//			lcd_wrcmd(uchar cmd)	   寫命令子程序
//			lcd_wrdata(uchar lcddata)  寫數據子程序
//			lcd_h()                    建立自定義字符庫

//Version:  4.11
//說明   : 在Menu的界面支持OK鍵和快捷鍵

//Version:  4.2
// 說明  : 加入了TLC5620,當電壓大于5V時出現Warning界面
//Time   :  7/10   18:30

	    
//////////////////////////////////////////////////////////////

#include<reg51.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
#define lcd_bus P1
#define key_bus P2
uchar offset=0x80;
uchar d[2]={0x30,0x30};
uchar tem1[3];
uchar tem2[4];
uchar tplsb,tpmsb;
uchar temp1,temp2;

sbit rs=P0^5;
sbit rw=P0^6;
sbit e =P0^7;
sbit DQ=P3^3;
sbit alert=P0^0;	

//sbit rs=P3^2;
//sbit rw=P3^3;
//sbit e =P3^4;
//sbit beep=P3^5;

sbit load=P2^0;
sbit sclk=P2^1;
sbit sdata=P2^2;

				    //年月攝氏度	
uchar code hanzi[]={0x80,0x0f,0x12,0x0f,0x0a,0x1f,0x02,0x02,  
                    0xf,0x9,0xf,0x9,0xf,0x9,0x11,0,  
					0x1C,0x14,0x1C,0x0,0x0,0x0,0x00,0x00,
					0x06,0x08,0x10,0x10,0x10,0x08,0x06,0x00};  
uchar code table[15]={0,0x30,0,0x2e,0x37,0x38,0x39,0,0x34,0x35,0x36,0,0x31,0x32,0x33};   
uchar code num[11]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39};   

                	            
/*uchar code str1[]="THE MIN SYSTEM";
uchar code str2[]="the tempreture:";
//uchar code str3[]="INPUT PHASE:";
uchar code str4[]="A: voltage";	 //電壓
uchar code str5[]="B: tempreture"; //溫度
uchar code str6[]="C: input";    //標定
uchar code str7[]="D: help";
uchar code he[]="*:OK #:UP(clear)";
uchar code am[]="please input:";
//uchar code warn[]="WARNING!!VOLTAGE < 5V";
uchar state=0;*/




/*dac_tlc5620(uchar send_char)
{
        uchar i;
		load=1;
		sclk=1;sdata=0;sclk=0;
		sclk=1;sdata=0;sclk=0;
        sclk=1;sdata=1;sclk=0;

		for(i=0;i<8;i++)
		{
		        sclk=1;
		        if(send_char&0x80) sdata=1;
				else sdata=0;
				sclk=0;
				send_char=send_char<<1;
		}
		load=0;
		load=1;

}

*/

//////////////////////////////////////////
delay(uchar d)
{
        while(--d);
}


/**********判斷忙標志,返回的是一個位BF**********/
bit lcd_busy(void)
{
        uchar bflag;     
        rs=0;
        rw=1;
        _nop_();
        e=1;
	    _nop_();
        lcd_bus=0xff;
        bflag=lcd_bus;
        e=0;
        return(bit)(bflag&0x80);    //BF=1 busy   
}



/*********寫命令,有兩個參數,第一個是要寫的命令控制字,
第二個是用來控制是否進行忙標志的判斷。
busyflag=1:判斷;為 0:不判斷****************/
void lcd_wrcmd(uchar cmd)
{
        while(lcd_busy());
        lcd_bus=cmd;
        rs=0;
        rw=0;
        _nop_();
        e=1;
        _nop_();
        _nop_();
        e=0; 
}


/************向液晶片寫數據***************/
void lcd_wrdata( uchar lcddata)
{
		while(lcd_busy());
        lcd_bus=lcddata;
        rs=1;
        rw=0;
        _nop_();
        e=1;
        _nop_();
        _nop_();
        e=0;
}

/****************初始化***************/
void lcd_ini(void)
{
        lcd_wrcmd(0x38); 
        delay(100);
        lcd_wrcmd(0x0c);
		delay(100);
        lcd_wrcmd(0x06);
		delay(100);
        lcd_wrcmd(0x01);
		delay(100);
}

//////////////////////////////////////////////
//
//	  生成漢字子模函數
//	  當lcd_wrdata(0);顯示第一個漢字
//    當lcd_wrdata(1);顯示第二個漢字
//
//////////////////////////////////////////////
lcd_h()
{
    uchar i;
    lcd_wrcmd(0x40);
	for(i=0;i<32;i++) lcd_wrdata(hanzi[i]);
}

/*****************讀按鍵***************/
uchar getkey()
{
    uchar keycode=0xff,temp,i;
    key_bus=0x0f;
	temp=key_bus&0x0f; 
	if(temp!=0x0f)              //有鍵按下
	{
	   // beep=0;
	    key_bus=0x7f;
	    for(i=0;i<4;i++)
		{
			temp=key_bus&0x0f;
            if(temp==0x07)
	        {    
			    keycode=i*4;
				break;
			}
	        else if(temp==0x0b)
			{
	            keycode=i*4+1;
				break;
			}
    	    else if(temp==0x0d)
			{
	            keycode=i*4+2;
				break;
			}
    	    else if(temp==0x0e)
			{
	            keycode=i*4+3;
				break;
			}
			key_bus=(key_bus>>1)|0x80;
		}

	     while((key_bus&0x0f)!=0x0f)   //等待釋放
		 {
		     key_bus=0x0f; 
		 }
	//	 beep=1;								             
	    
	 }
	 return keycode;
}	    


welcome()
{
       
       uchar temp,i;
	   lcd_wrcmd(0x0c);
       lcd_wrcmd(0x82);	
	      
       for(i=0;i<14;i++)
	   		lcd_wrdata(str1[i]);
	   lcd_h();
	   lcd_wrcmd(0xc4);
	   lcd_wrdata('2');	lcd_wrdata('0');lcd_wrdata('0');lcd_wrdata('7');
	   lcd_wrdata(0);
	   lcd_wrdata('0');lcd_wrdata('7');
       lcd_wrdata(1);
	   while(1)
	   {	   	      			   		        	               
	       temp=getkey();
	       if(temp!=0xff)    //按任意鍵跳轉
	       {
	           state=1;  
		       lcd_wrcmd(1);
		       break;
	       }
	   }
}
   

/*phase()
{
       uchar i,j,cnt=0;	   
	   lcd_wrcmd(0x0f);
	   lcd_wrcmd(0xc9);
	   lcd_wrdata(2);
       lcd_wrcmd(0x83);
       for(i=0;i<12;i++)lcd_wrdata(str3[i]);
	   lcd_wrcmd(0xc5);
	   while(1)	                 //按鍵處理

	   { 
	       i=getkey();
	       if(i<10)
	       {	 cnt++;
	  		     if(cnt<=3)
				 {	
				     lcd_wrcmd(0xc5+cnt-1);
			         lcd_wrdata(0x30+i);
			     }		 			 
			     else
				 {
				     cnt=0;					 					 
					 lcd_wrcmd(0xc5);
					 for(j=0;j<=3;j++)
					     lcd_wrdata(' ');
					 lcd_wrcmd(0xc5);
			     }
		    }
		    else if(i==10)
		    {
		         state=1;
				 lcd_wrcmd(0x0c);
				 lcd_wrcmd(1);
				 lcd_wrcmd(0x80);
				 break;
	    	}
		    else if(i==11)
			{
			    cnt=0;					 					 
			    lcd_wrcmd(0xc5);
				for(j=0;j<=3;j++)
			    lcd_wrdata(' ');
			    lcd_wrcmd(0xc5);    
			 }
		}
}



frequency()
{
       uchar i,j,cnt=0;	 // 假如將cnt定義成全局變量,當退出這個界面時,cnt仍然保存原來的值   	  
	   lcd_wrcmd(0x80);	 //會出現光標亂跳的錯誤
	   lcd_wrcmd(0xce);
	   lcd_wrdata('H');
	   lcd_wrdata('Z');
	   lcd_wrcmd(0x81);
       for(i=0;i<15;i++)lcd_wrdata(str2[i]);
	   lcd_wrcmd(0x0f);
	   lcd_wrcmd(0xc0);
	   while(1)	                 //按鍵處理
	   { 
	       i=getkey();
	       if(i<10)
	       {	 cnt++;
	  		     if(cnt<=10)
				 {	
				     lcd_wrcmd(0xc0+cnt-1);
			         lcd_wrdata(0x30+i);
			     }		 			 
			     else
				 {
				     cnt=0;					 					 
					 lcd_wrcmd(0xc0);
					 for(j=0;j<=10;j++)
					     lcd_wrdata(' ');
					 lcd_wrcmd(0xc0);
			     }
		    }
		    else if(i==10)
		    {
		         state=1;
				 lcd_wrcmd(0x0c);
				 lcd_wrcmd(1);
				 lcd_wrcmd(0x80);
				 break;
	    	}
		    else if(i==11)
			{
			    cnt=0;					 					 
			    lcd_wrcmd(0xc0);
				for(j=0;j<=10;j++)
			    lcd_wrdata(' ');
			    lcd_wrcmd(0xc0);    
			}
		}

}

warning()
{
    uchar i,ii;
    lcd_wrcmd(1);
	lcd_wrcmd(0x0c);
	lcd_wrcmd(0x83);
	for(i=0;i<9;i++)
	    lcd_wrdata(warn[i]);
	lcd_wrcmd(0xc1);	 
	for(i=0;i<12;i++)
	    lcd_wrdata(warn[i+9]);
	while(1)
	{
	    ii=getkey();
		if(ii!=0xff)
		{
		    lcd_wrcmd(1);
			break;
		    
		}

	}
}


uchar dac_convert(uchar *amp)
{
    uint v;
	v=amp[2]*100+amp[1]*10+amp[0];
	if(v<500)
	{
	     v=32*v;
	     dac_tlc5620(v/100);
		 return 0;
	 }
	 else
	 {
	     return 1;
	 }
	    
}


amplitude()
{
     uchar i,ii;
	 uchar amp[3],t=0;
	 lcd_wrcmd(0x80);
	 for(i=0;i<16;i++)
	     lcd_wrdata(am[i]);
	 lcd_wrcmd(0xcc);
	 lcd_wrdata('V');
	 lcd_wrcmd(0xc8);
	 lcd_wrdata('.'); 
	 lcd_wrcmd(0x0f);            //開光標
	 lcd_wrcmd(0xc7);
	 while(1)
	 {
	     ii=getkey();
	     if(ii==10)
		 {
		     if(t==4)
			 {
			     if(dac_convert(amp))
				 {
				     warning();
				     break;
				  }
			 }
		     lcd_wrcmd(0x0c);
			 state=1;
			 lcd_wrcmd(1);
			 break;
		 }
		 if(ii<10)
		 {	 
		     t++;
			 if(t==1)
			 {
				lcd_wrcmd(0xc9);
			 }
			 if(t==2)t++;
			 if(t==1)amp[2]=ii;
			 else if(t==3)amp[1]=ii;
			 else if(t==4)amp[0]=ii;	     

			 if(t==5)
			 {
			      t=0;
				  lcd_wrcmd(0xc7);
				  lcd_wrdata(' '); lcd_wrdata('.');lcd_wrdata(' ');lcd_wrdata(' ');
				  lcd_wrcmd(0xc7);
			 }
			 else
			 {
			      lcd_wrcmd(0xc6+t);
			      lcd_wrdata(0x30+ii);
			 }
			 			 
			 
		 }

	    	     
	 }
    
}
*/
 
///////////////////////////////////輸入函數////////////////////////////////////
 /*****************************************/

/*****************************************/

 /* 延時t毫秒 */
void delay2(uint t)
{
	uint i;
	while(t--)
	{
		/* 對于11.0592M時鐘,約延時1ms */
		for (i=0;i<125;i++)
		{}
	}
} 

/* 產生復位脈沖初始化DS18B20 */
void TxReset(void)
{
	uint i;
	DQ = 0;

	/* 拉低約900us */
	i = 100;
	while (i>0)	i--;	
	
	DQ = 1;				// 產生上升沿

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产日韩视频一区二区三区| 久久97超碰色| 免费在线观看成人| 国产制服丝袜一区| 色婷婷亚洲一区二区三区| 欧美理论电影在线| 久久精品亚洲国产奇米99| 亚洲另类中文字| 美国欧美日韩国产在线播放| voyeur盗摄精品| 欧美精选午夜久久久乱码6080| 久久综合色播五月| 亚洲伦在线观看| 久久成人麻豆午夜电影| 北岛玲一区二区三区四区| 5858s免费视频成人| 中文字幕久久午夜不卡| 视频一区视频二区中文字幕| 福利一区福利二区| 欧美高清激情brazzers| 欧美国产欧美综合| 日韩精品乱码免费| 成人av影院在线| 日韩免费视频一区| 一区二区三区在线免费| 国产麻豆精品视频| 777午夜精品视频在线播放| 国产精品情趣视频| 久久精品国产第一区二区三区| 91麻豆免费看| 久久久久9999亚洲精品| 性欧美大战久久久久久久久| 丁香婷婷综合网| 日韩一区二区三区av| 亚洲一区二区三区四区在线免费观看| 国模一区二区三区白浆| 欧美日韩午夜在线视频| 中文字幕一区二区三区在线观看| 老司机免费视频一区二区三区| 在线视频你懂得一区| 日本一区二区三区高清不卡| 天堂蜜桃91精品| 91久久精品一区二区二区| 国产人久久人人人人爽| 麻豆精品在线看| 欧美日本一道本在线视频| 亚洲美女淫视频| 成人国产在线观看| 久久久久久久久久久久久久久99| 日韩中文字幕1| 欧美网站大全在线观看| 亚洲三级在线观看| 99re这里都是精品| 国产精品久久毛片av大全日韩| 精一区二区三区| 欧美一区二区三区在线观看视频 | 精一区二区三区| 欧美男男青年gay1069videost | 欧美亚洲自拍偷拍| 亚洲精品久久久蜜桃| 大胆欧美人体老妇| www久久精品| 国产呦萝稀缺另类资源| 精品久久免费看| 免费一区二区视频| 欧美va日韩va| 激情文学综合丁香| 精品国产一二三| 国产在线一区观看| 久久精品在线观看| 国产成人免费视| 国产三区在线成人av| 国产福利91精品一区| 国产欧美日韩不卡| 粉嫩嫩av羞羞动漫久久久 | 成av人片一区二区| 成人免费在线视频观看| 99在线视频精品| 亚洲乱码国产乱码精品精的特点 | 亚洲国产成人av网| 欧美日韩国产天堂| 日韩精品一级中文字幕精品视频免费观看 | 欧美三级中文字| 亚洲超碰97人人做人人爱| 欧美疯狂性受xxxxx喷水图片| 午夜精品久久久久久久蜜桃app| 精品污污网站免费看| 午夜精品久久久久久久久| 欧美一区二区三区男人的天堂| 久久不见久久见免费视频7| www国产精品av| 成人一区二区三区视频| 最新国产の精品合集bt伙计| 在线观看国产一区二区| 日韩成人av影视| 久久久久久久久免费| 99精品欧美一区二区三区小说| 亚洲精品写真福利| 欧美精品亚洲二区| 韩国v欧美v日本v亚洲v| 国产人久久人人人人爽| 色欧美日韩亚洲| 日本欧美加勒比视频| 久久久久久久电影| 91成人看片片| 久久国产精品99久久人人澡| 久久精品一区八戒影视| 色屁屁一区二区| 久久99九九99精品| 亚洲欧美一区二区三区极速播放 | 亚洲高清免费一级二级三级| 日韩限制级电影在线观看| 国产精品18久久久久久久久久久久 | 蜜臀av一级做a爰片久久| 日本一区二区三区国色天香 | 午夜激情一区二区| 精品电影一区二区三区| 99综合影院在线| 日韩av在线免费观看不卡| 国产精品三级在线观看| 欧美区一区二区三区| 成人永久看片免费视频天堂| 亚洲午夜国产一区99re久久| 精品国产乱码久久久久久夜甘婷婷 | 日韩情涩欧美日韩视频| 成人成人成人在线视频| 日韩国产在线观看| 国产精品美女一区二区三区| 欧美高清一级片在线| 成人免费视频一区二区| 日韩电影在线免费观看| 中文字幕一区二区不卡| 91精品国产综合久久久蜜臀图片| 成人午夜精品在线| 精品在线免费视频| 亚洲主播在线观看| 中文av一区二区| 精品美女一区二区| 欧美亚洲综合在线| 波多野结衣精品在线| 久久成人综合网| 午夜精品影院在线观看| 亚洲欧洲日本在线| 精品国产第一区二区三区观看体验| 在线观看成人小视频| 国产成人亚洲综合a∨猫咪| 日韩成人一级大片| 亚洲综合一区二区三区| 国产亚洲精品中文字幕| 日韩一级大片在线观看| 在线看日韩精品电影| 成人av一区二区三区| 国产美女视频91| 日本伊人精品一区二区三区观看方式| 亚洲日本一区二区三区| 欧美激情自拍偷拍| 亚洲精品在线三区| 日韩视频在线永久播放| 欧美日本一区二区在线观看| 在线欧美日韩精品| 99久久777色| 99精品视频中文字幕| 国产不卡在线播放| 国产综合久久久久影院| 蜜臀av一区二区在线观看| 日日夜夜精品视频天天综合网| 亚洲你懂的在线视频| 中文字幕制服丝袜一区二区三区| 久久精品欧美一区二区三区麻豆| 日韩欧美你懂的| 欧美一区二区成人6969| 在线播放国产精品二区一二区四区| 色悠悠久久综合| 91蜜桃免费观看视频| 99免费精品视频| 国产成人综合亚洲91猫咪| 狠狠色丁香久久婷婷综合丁香| 久久99国内精品| 国产精品自在欧美一区| 国产乱子轮精品视频| 极品少妇xxxx精品少妇偷拍| 久久电影国产免费久久电影| 黄色精品一二区| 国产成人免费视| 99精品久久只有精品| 91免费视频网址| 91精彩视频在线| 欧美日韩精品欧美日韩精品| 欧美精品第一页| 欧美电视剧在线看免费| 精品少妇一区二区三区免费观看 | 国产一区视频网站| 国产传媒一区在线| 99久久精品费精品国产一区二区| 99久久精品一区| 欧美色视频一区| 91精品国产91久久久久久最新毛片| 欧美一卡二卡三卡四卡| 精品久久久久99| 日本一区二区视频在线观看|