99久久全国免费观看_国产一区二区三区四区五区VM_久久www人成免费看片中文_国产高清在线a视频大全_深夜福利www_日韩一级成人av

  • 回復
  • 收藏
  • 點贊
  • 分享
  • 發新帖

吼吼吼!!!土匪出山了,蛋痛做了個35w反激+USB+bost_buck_單片機控制的遙控風扇系統。

好無聊的說www,,, 無聊么,就做點東西玩,以度過這個假大學的時光, 喏,夏天寢室熱死了,感覺床頭好像還差點什么東西www.總感覺缺了東西www. 吼吼,媽的,缺了個風扇用,熱死我了。 于是_開始各種折騰,= 到處拆零件,窮逼就是這樣練成的,漬漬漬 不說廢話了,步入正題 1. 反激35w供電/充電? 2.太陽能穩壓buck充電? 3.USBbost充電? 4.手動調風/自動調風? 先忙一會,廣告之后,,,,,,圖紙更精彩 5.
全部回復(27)
正序查看
倒序查看
2017-06-26 15:17
呦嘿~~~~~
0
回復
2017-06-27 19:17
@電源網-璐璐
呦嘿~~~~~
哈哈露露
0
回復
2017-06-27 19:17
持續更新了。。。。。。。。。。
0
回復
2017-06-27 19:18
@林浩7856
持續更新了。。。。。。。。。。

1.市電整流及EMI

圖紙設計

 

 

 

                             仿真圖1-1

©L1 L2 C1 C2構成EMI電路,消除干擾雜波信號,及降低電路信號對市電的干擾.提高抗干擾能力。  設計功率為45W 較小,因此L選用100uh-10mh左右(根據最大干擾來決定),C選用0.1uf-1uf左右.

 

如圖1-1; 當電路涌出一個600V的尖峰干擾信號,這時 LC將信號阻止,防止勿擾市電。

 

©加入NTC,開機限浪涌,防止開機瞬間電流過大,對電路的沖擊。

©整流管的選取.

功率在45W,按照效率80,輸入電流在0.3A以下;選用2A的整流橋.;

 

©  C3的選取

窄電壓輸入的一般用1U/W,這里采用47U;R1用于C3快速放電(關機時)

 

 

 

2.振蕩-反饋-輸出

 

 

原理:使用UC3845作為pwm芯片,控制MOS, 驅動高頻變壓器工作.

 

設計圖1-2

 

 

此圖作為參考;實際使用3845;

 

RT和RW實際只用一個;作為啟動電阻,給C5充電,提供給7腳啟動電壓;

這里保障啟動時間在2S以下,RT設置為100K (RW去掉);

 

4-8腳頻率控制;

由于使用磁芯體積較小,因此這里提高工作頻率,彌補功率,設定為180K;

3845頻率=1.8/(RTxCT)

因此R6 :1.2K;C:332;

 

3腳-電流保護端口,高于1V,3845限制輸出;電源功率限制在60W,R10設置為0.68R;

加入C9,避免頻繁保護,考慮到保護時間問題,這里設置為100P,保證保護及時;

 

VT1的選取:

市電整流電壓在300v左右,功率45-60W,選擇耐壓高于600v(反激尖峰=電源1-2倍),耐流選擇7A(國產標稱7A,實際使用在1A以下較為合理);高壓MOS,內阻大,發熱大;因此必須加散熱片;這里選取K4101;

 

R5 C6的計算;

1腳位補償端口,2腳為電壓比較端口,為了保障輸出電壓能自動連續可調,將R5設定為100K;C6設定為101;

0
回復
2017-06-27 19:22
@林浩7856
1.市電整流及EMI圖紙設計[圖片]                                仿真圖1-1©L1L2C1C2構成EMI電路,消除干擾雜波信號,及降低電路信號對市電的干擾.提高抗干擾能力。 設計功率為45W較小,因此L選用100uh-10mh左右(根據最大干擾來決定),C選用0.1uf-1uf左右. 如圖1-1;當電路涌出一個600V的尖峰干擾信號,這時LC將信號阻止,防止勿擾市電。 ©加入NTC,開機限浪涌,防止開機瞬間電流過大,對電路的沖擊。©整流管的選取.功率在45W,按照效率80,輸入電流在0.3A以下;選用2A的整流橋.; ©  C3的選取窄電壓輸入的一般用1U/W,這里采用47U;R1用于C3快速放電(關機時)   2.振蕩-反饋-輸出  原理:使用UC3845作為pwm芯片,控制MOS,驅動高頻變壓器工作. 設計圖1-2 [圖片] 此圖作為參考;實際使用3845; RT和RW實際只用一個;作為啟動電阻,給C5充電,提供給7腳啟動電壓;這里保障啟動時間在2S以下,RT設置為100K(RW去掉); 4-8腳頻率控制;由于使用磁芯體積較小,因此這里提高工作頻率,彌補功率,設定為180K;3845頻率=1.8/(RTxCT)因此R6:1.2K;C:332; 3腳-電流保護端口,高于1V,3845限制輸出;電源功率限制在60W,R10設置為0.68R;加入C9,避免頻繁保護,考慮到保護時間問題,這里設置為100P,保證保護及時; VT1的選取:市電整流電壓在300v左右,功率45-60W,選擇耐壓高于600v(反激尖峰=電源1-2倍),耐流選擇7A(國產標稱7A,實際使用在1A以下較為合理);高壓MOS,內阻大,發熱大;因此必須加散熱片;這里選取K4101; R5C6的計算;1腳位補償端口,2腳為電壓比較端口,為了保障輸出電壓能自動連續可調,將R5設定為100K;C6設定為101;

額  怎么看不到圖片

無聊 弄的開關機電路

好吧 就一起上架了圖片了嘛

0
回復
2017-06-27 19:22
@林浩7856
額 怎么看不到圖片[圖片]無聊弄的開關機電路好吧就一起上架了圖片了嘛

哎哎哎哎 55調速了

0
回復
2017-06-27 19:23
@林浩7856
[圖片]哎哎哎哎55調速了

保護電領域 電流保護

0
回復
2017-06-27 19:24
@林浩7856
[圖片]保護電領域電流保護

反擊變壓器繞制

0
回復
林浩7856
LV.5
10
2017-06-27 19:25
@林浩7856
[圖片]反擊變壓器繞制

哈哈  拆破爛的35W反激電源  話說MOS有些發燒。。。。

湊合用了  

最近太忙了 。。。。。將就了

0
回復
林浩7856
LV.5
11
2017-06-27 19:26
@林浩7856
[圖片]哈哈 拆破爛的35W反激電源 話說MOS有些發燒。。。。湊合用了 最近太忙了。。。。。將就了

看到沒 有電量顯示功能  -----不過現在已經被單片機給取代了  哈哈哈哈  用的數碼管顯示電量 

0
回復
林浩7856
LV.5
12
2017-06-27 19:28
@林浩7856
[圖片]看到沒有電量顯示功能 -----不過現在已經被單片機給取代了 哈哈哈哈 用的數碼管顯示電量 

看到沒 兩個220的管子 沒錯就是 4016---話說效率真的甩2596一丟丟;;

0
回復
林浩7856
LV.5
13
2017-06-27 19:29
@林浩7856
[圖片]看到沒兩個220的管子沒錯就是4016---話說效率真的甩2596一丟丟;;

呵呵噠  效率測試呢一下    4016還是挺不錯的  雖然是撿垃圾貨

輸入21.6---0.71A

輸出13v 1.06A

0
回復
林浩7856
LV.5
14
2017-06-27 19:30
@林浩7856
[圖片]呵呵噠 效率測試呢一下  4016還是挺不錯的 雖然是撿垃圾貨輸入21.6---0.71A輸出13v1.06A[圖片]

吼吼 撿垃圾單片機玩玩=============用的mp3屏幕顯示

0
回復
林浩7856
LV.5
15
2017-06-27 19:31
@林浩7856
[圖片]吼吼撿垃圾單片機玩玩=============用的mp3屏幕顯示

看到mp3的屏幕  顯示還策和把   顯示目前的溫度 和功能檔位-------啊   加的遙控=

0
回復
林浩7856
LV.5
16
2017-06-27 19:33
@林浩7856
[圖片]看到mp3的屏幕 顯示還策和把 顯示目前的溫度和功能檔位-------啊 加的遙控=
		#include
#include			 //包含頭文件
#define uchar unsigned char
#define uint unsigned int
unsigned char x=15;	
unsigned char y=1;
uchar z=22;
uchar m=0;

	 //宏定義 數模控制數
////////////////////
sbit dj=P1^0;//電機控制端接口
sbit DQ=P2^2;//溫度傳感器接口
//////////按鍵接口/////////////////////////////////
sbit key1=P3^2;//設置溫度
sbit key2=P3^3;//溫度加
sbit key3=P3^5;//溫度減
sbit key4=P3^4;//檔位控制
sbit key5=P3^7;//切換數模控制、、,
sbit w5=P2^3;//////////////////////////////////////////////////////
sbit w1=P2^4;  //數碼管四個位
sbit w2=P2^5;
sbit w3=P2^6;
 sbit led2=P1^2;//呼吸燈
unsigned char id=0;
sbit JD=P1^3;//kongzhi jidianqi 	 繼電器控制
sbit w4=P2^7;
//附加顯示			  //數碼管的四個位
/////共陰數碼管段選//////////////////////////////////////////////
uchar table[26]=
{0x3F,0x06,0x5B,0x4F,0x66,
0x6D,0x7D,0x07,0x7F,0x6F,
0x77,0x7C,0x39,0x5E,0x79,0x71,
0x40,0x38,0x76,0x00,0xff,0x37,0x26,0x25,0x27,0x65};//'-',L,H,滅,全亮,n	 16-21
uint wen_du;						//溫度變量  
uint shang,xia; //對比溫度暫存變量
uchar dang;//檔位顯示
uchar flag;
uchar d1,d2,d3,d4;
uchar i;//顯示數據暫存變量
void delay(uint ms)		//延時函數,大約延時25us
{
	uchar x;
	for(ms;ms>0;ms--)
		for(x=10;x>0;x--);
}
/***********ds18b20延遲子函數(晶振12MHz )*******/ 
void delay_18B20(uint i)
{
	while(i--);
}
/**********ds18b20初始化函數**********************/
void Init_DS18B20() 
{
	 uchar x=0;
	 DQ=1;          //DQ復位
	 delay_18B20(8);  //稍做延時
	 DQ=0;          //單片機將DQ拉低
	 delay_18B20(80); //精確延時 大于 480us
	 DQ=1;          //拉高總線
	 delay_18B20(14);
	 x=DQ;            //稍做延時后 如果x=0則初始化成功 x=1則初始化失敗
	 delay_18B20(20);
}
/*ds18b20讀一個字節*/  
uchar ReadOneChar()
{
	uchar i=0;
	uchar dat=0;
	for (i=8;i>0;i--)
	 {
		  DQ=0; // 給脈沖信號
		  dat>>=1;
		  DQ=1; // 給脈沖信號
		  if(DQ)
		  dat|=0x80;
		  delay_18B20(4);
	 }
 	return(dat);
}
/*ds18b20寫一個字節***/  
void WriteOneChar(uchar dat)
{
 	uchar i=0;
 	for (i=8;i>0;i--)
 	{
  		DQ=0;
 		DQ=dat&0x01;
    	delay_18B20(5);
 		DQ=1;
    	dat>>=1;
	}
}
/**讀取ds18b20當前溫度**/
void ReadTemperature()
{
	uchar a=0;
	uchar b=0;
	uchar t=0;
	Init_DS18B20();
	WriteOneChar(0xCC);    	// 跳過讀序號列號的操作
	WriteOneChar(0x44); 	// 啟動溫度轉換
	delay_18B20(100);       // this message is wery important
	Init_DS18B20();
	WriteOneChar(0xCC); 	//跳過讀序號列號的操作
	WriteOneChar(0xBE); 	//讀取溫度寄存器等(共可讀9個寄存器) 前兩個就是溫度
	delay_18B20(100);
	a=ReadOneChar();    	//讀取溫度值低位
	b=ReadOneChar();   		//讀取溫度值高位
	wen_du=((b*256+a)>>4);    //當前采集溫度值除16得實際溫度值
}



void display()//顯示溫度

{	
   w1=0;P0=table[d1];delay(85); //第1位
	P0=0x00;w1=1;delay(1);
	 
	w2=0;P0=table[x];delay(85);//第2位
	P0=0x00;w2=1;delay(1);

	w3=0;P0=table[d2]; delay(85);//第3位
	P0=0x00;w3=1;delay(1);

	w4=0;P0=table[d3];delay(85);//第4位
	P0=0x00;w4=1;delay(1);

	w5=0;P0=table[d4];delay(85);//第5位
	P0=0x00;w5=1;delay(1);
}



void zi_keyscan()//自動模式按鍵掃描函數
{
	
/*	if(key1==0)							  //設置鍵按下
	{
		delay(10);						  //延時去抖
		if(key1==0)flag=1;				  //再次判斷按鍵,按下的話進入設置狀態
		while(key1==0);//松手檢測		  //按鍵釋放
	}

  */

   	  	if(key4==0)							  //設置鍵按下
	{
		delay(10);						  //延時去抖
		if(key4==0)
		
		{ id++;x=16;
		dang=id; 
		    
		  }		  //再次判斷按鍵,按下的話進入設置狀態
		while(key4==0);//松手檢測		  //按鍵釋放
	}




	   	  	if(key5==0)							  //設置鍵按下	設置數模控制。
	{
		delay(10);
								  //延時去抖
		if(key5==0)
		
		{ m++;x=16;
		dang=x;
		        
		  }		  //再次判斷按鍵,按下的話進入設置狀態
		while(key5==0);//松手檢測		  //按鍵釋放
	}
	  

	   if(id==0)
  {
  dj=0;	z=22;
  }

	  if(m==1)
	  {
	   
	  JD=1;z=25;x=16; dang=16;	
	   
	  }

	if(m==2)
	{
	
	m=0; JD=0;

	}


		
   if(id==6)
   {
   	  	x=16; dang=15;

   }
if (id==7)
  {	
	id=0;x=15; JD=0; z=22; dj=0;
  dang=id;
 
 
	
	}


	
 //


/*	while(flag==1)						  //進入設置上限狀態
	{
		d1=18;d2=shang/10;d3=shang%10;d4=z;	  //顯示字母H 和上限溫度值
		display();						  //調用顯示函數
		if(key1==0)						  //判斷設置鍵是否按下
		{
			delay(10);					  //延時去抖
			if(key1==0)flag=2;			  //按鍵按下,進入設置下限模式
			while(key1==0);//松手檢測
		}
		if(key2==0)						  //加鍵按下
		{
			delay(10);					  //延時去抖
			if(key2==0)					  //加鍵按下
			{
				shang+=5;				  //上限加5
				if(shang>=100)shang=100;  //上限最大加到100
			}while(key2==0);//松手檢測
		}
		if(key3==0)						  //減鍵按下
		{
			delay(10);					  //延時去抖
			if(key3==0)					  //減鍵按下
			{
				shang-=1;				  //上限減1
				if(shang<=10)shang=10;	  //上限最小減到10
			}while(key3==0);//松手檢測
		}		
	}

*/

/*	while(flag==2)						  //設置下限
	{
		d1=17;d2=xia/10;d3=xia%10;		  //顯示字母L 顯示下限溫度值
		display();						  //以下注釋同上
		if(key1==0)
		{
			delay(20);
			if(key1==0)flag=0;
			while(key1==0);//松手檢測
		}
		if(key2==0)
		{
			delay(10);
			if(key2==0)
			{
				xia+=5;
				if(xia>=95)xia=95;	
			}while(key2==0);//松手檢測
		}
		if(key3==0)
		{
			delay(10);
			if(key3==0)
			{
				xia-=1;
				if(xia<=0)xia=0;	
		
		
	}while(key3==0);//松手檢測
	
		}		
	} */
}


void zi_dong()//自動溫控 模式選擇
{
	uchar i;
	d1=dang;d2=wen_du/10;d3=wen_du%10;d4=z;	  	//顯示檔位,顯示當前溫度值
		display();    
	zi_keyscan();   //按鍵掃描函數
	
     if((id!=6)&&(wen_du>xia)&&(id!=7))//溫度大于下限,小于上限  
	{	dang=id;z=23;											//檔位置3
		for(i=0;i<3;i++)   {dj=0;display();	zi_keyscan(); }	//PWM通過延時得到
		for(i=0;ixia)&&(wen_du>xia))//溫度大于下限,小于上限  1擋
	{	dang=6;	 z=24;										//檔位置1
		for(i=0;i<3;i++)   {dj=0;display();	zi_keyscan(); }	//PWM通過延時得到
		for(i=0;i<1;i++)   {dj=1;display();zi_keyscan(); }		
	}	


   if(wen_du>=shang)				 //當溫度高于下線20度  不啟動風扇 當大于20度 小于28度  起中檔  當大于28度 開全擋
   { 
   
   dj=1;led2=1;
   }
}	 
	 
	         //溫度自動控制;

}



void main()		  //主函數
{

	uchar j;

	dj=0;JD=0;			  //風扇開
	shang=30;  //初始上線等于30度,大于三十 全7速轉。
	xia=20;		  //初始上下限值
	for(j=0;j<80;j++)	  //先讀取溫度值,防止開機顯示85
	ReadTemperature();
	   
	while(1)			  //進入while循環
	{	
	  
		ReadTemperature();	//讀取溫度值
		for(j=0;j<20;j++)
		
		zi_dong();		//自動/手動模式
	
	}
}










湊合著看吧  要考試了    閑人要去應付考試-----------
 
0
回復
林浩7856
LV.5
17
2017-06-27 19:34
@林浩7856
#include#include//包含頭文件#defineucharunsignedchar#defineuintunsignedintunsignedcharx=15;unsignedchary=1;ucharz=22;ucharm=0;//宏定義數模控制數////////////////////sbitdj=P1^0;//電機控制端接口sbitDQ=P2^2;//溫度傳感器接口//////////按鍵接口/////////////////////////////////sbitkey1=P3^2;//設置溫度sbitkey2=P3^3;//溫度加sbitkey3=P3^5;//溫度減sbitkey4=P3^4;//檔位控制sbitkey5=P3^7;//切換數模控制、、,sbitw5=P2^3;//////////////////////////////////////////////////////sbitw1=P2^4;//數碼管四個位sbitw2=P2^5;sbitw3=P2^6;sbitled2=P1^2;//呼吸燈unsignedcharid=0;sbitJD=P1^3;//kongzhijidianqi繼電器控制sbitw4=P2^7;//附加顯示//數碼管的四個位/////共陰數碼管段選//////////////////////////////////////////////uchartable[26]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71,0x40,0x38,0x76,0x00,0xff,0x37,0x26,0x25,0x27,0x65};//'-',L,H,滅,全亮,n16-21uintwen_du;//溫度變量uintshang,xia;//對比溫度暫存變量uchardang;//檔位顯示ucharflag;uchard1,d2,d3,d4;uchari;//顯示數據暫存變量voiddelay(uintms)//延時函數,大約延時25us{ucharx;for(ms;ms>0;ms--)for(x=10;x>0;x--);}/***********ds18b20延遲子函數(晶振12MHz)*******/voiddelay_18B20(uinti){while(i--);}/**********ds18b20初始化函數**********************/voidInit_DS18B20(){ucharx=0;DQ=1;//DQ復位delay_18B20(8);//稍做延時DQ=0;//單片機將DQ拉低delay_18B20(80);//精確延時大于480usDQ=1;//拉高總線delay_18B20(14);x=DQ;//稍做延時后如果x=0則初始化成功x=1則初始化失敗delay_18B20(20);}/*ds18b20讀一個字節*/ucharReadOneChar(){uchari=0;uchardat=0;for(i=8;i>0;i--){DQ=0;//給脈沖信號dat>>=1;DQ=1;//給脈沖信號if(DQ)dat|=0x80;delay_18B20(4);}return(dat);}/*ds18b20寫一個字節***/voidWriteOneChar(uchardat){uchari=0;for(i=8;i>0;i--){DQ=0;DQ=dat&0x01;delay_18B20(5);DQ=1;dat>>=1;}}/**讀取ds18b20當前溫度**/voidReadTemperature(){uchara=0;ucharb=0;uchart=0;Init_DS18B20();WriteOneChar(0xCC);//跳過讀序號列號的操作WriteOneChar(0x44);//啟動溫度轉換delay_18B20(100);//thismessageisweryimportantInit_DS18B20();WriteOneChar(0xCC);//跳過讀序號列號的操作WriteOneChar(0xBE);//讀取溫度寄存器等(共可讀9個寄存器)前兩個就是溫度delay_18B20(100);a=ReadOneChar();//讀取溫度值低位b=ReadOneChar();//讀取溫度值高位wen_du=((b*256+a)>>4);//當前采集溫度值除16得實際溫度值}voiddisplay()//顯示溫度{w1=0;P0=table[d1];delay(85);//第1位P0=0x00;w1=1;delay(1);w2=0;P0=table[x];delay(85);//第2位P0=0x00;w2=1;delay(1);w3=0;P0=table[d2];delay(85);//第3位P0=0x00;w3=1;delay(1);w4=0;P0=table[d3];delay(85);//第4位P0=0x00;w4=1;delay(1);w5=0;P0=table[d4];delay(85);//第5位P0=0x00;w5=1;delay(1);}voidzi_keyscan()//自動模式按鍵掃描函數{/*if(key1==0)//設置鍵按下{delay(10);//延時去抖if(key1==0)flag=1;//再次判斷按鍵,按下的話進入設置狀態while(key1==0);//松手檢測//按鍵釋放}*/if(key4==0)//設置鍵按下{delay(10);//延時去抖if(key4==0){id++;x=16;dang=id;}//再次判斷按鍵,按下的話進入設置狀態while(key4==0);//松手檢測//按鍵釋放}if(key5==0)//設置鍵按下設置數模控制。{delay(10);//延時去抖if(key5==0){m++;x=16;dang=x;}//再次判斷按鍵,按下的話進入設置狀態while(key5==0);//松手檢測//按鍵釋放}if(id==0){dj=0;z=22;}if(m==1){JD=1;z=25;x=16;dang=16;}if(m==2){m=0;JD=0;}if(id==6){x=16;dang=15;}if(id==7){id=0;x=15;JD=0;z=22;dj=0;dang=id;}///*while(flag==1)//進入設置上限狀態{d1=18;d2=shang/10;d3=shang%10;d4=z;//顯示字母H和上限溫度值display();//調用顯示函數if(key1==0)//判斷設置鍵是否按下{delay(10);//延時去抖if(key1==0)flag=2;//按鍵按下,進入設置下限模式while(key1==0);//松手檢測}if(key2==0)//加鍵按下{delay(10);//延時去抖if(key2==0)//加鍵按下{shang+=5;//上限加5if(shang>=100)shang=100;//上限最大加到100}while(key2==0);//松手檢測}if(key3==0)//減鍵按下{delay(10);//延時去抖if(key3==0)//減鍵按下{shang-=1;//上限減1if(shang=95)xia=95;}while(key2==0);//松手檢測}if(key3==0){delay(10);if(key3==0){xia-=1;if(xiaxia)&&(id!=7))//溫度大于下限,小于上限{dang=id;z=23;//檔位置3for(i=0;ixia))//溫度大于下限,小于上限1擋{dang=6;z=24;//檔位置1for(i=0;i
有USB功能   啊啊啊4016的強大輸出
0
回復
林浩7856
LV.5
18
2017-06-27 19:37
@林浩7856
有USB功能 啊啊啊4016的強大輸出

整機了 單晶硅和主板 

風扇在一個角落里 哈哈  應為今天不熱

0
回復
林浩7856
LV.5
19
2017-06-27 19:38
@林浩7856
[圖片]整機了單晶硅和主板 風扇在一個角落里哈哈 應為今天不熱

哎哎哎  -------發圖發的好亂的說-----------應為馬上要考試了 我考試去了 拜拜了   大家先湊合看吧--------考試完我就就可以回家了

0
回復
林浩7856
LV.5
20
2017-06-28 21:25
@林浩7856
哎哎哎 -------發圖發的好亂的說-----------應為馬上要考試了我考試去了拜拜了 大家先湊合看吧--------考試完我就就可以回家了

0
回復
2017-07-06 11:51
@林浩7856
[圖片]
能發源程序的我都頂
0
回復
林浩7856
LV.5
22
2017-07-06 15:43
@心如刀割
能發源程序的我都頂
哈哈
0
回復
lxgmvp
LV.7
23
2017-07-10 14:54
動手能力不錯,頂一個
0
回復
林浩7856
LV.5
24
2017-07-10 16:54
@lxgmvp
動手能力不錯,頂一個
啊   好無聊的說  還好是一等獎 
0
回復
悟今生
LV.5
25
2017-07-15 13:56
@林浩7856
啊  好無聊的說 還好是一等獎 
看著感覺是興趣愛好,能做出來真不錯
0
回復
林浩7856
LV.5
26
2017-07-15 14:01
@悟今生
看著感覺是興趣愛好,能做出來真不錯
哈哈   無聊 拆點破家電的零件 做點東西玩
0
回復
dxsmail
LV.11
27
2017-07-21 16:29
@林浩7856
#include#include//包含頭文件#defineucharunsignedchar#defineuintunsignedintunsignedcharx=15;unsignedchary=1;ucharz=22;ucharm=0;//宏定義數模控制數////////////////////sbitdj=P1^0;//電機控制端接口sbitDQ=P2^2;//溫度傳感器接口//////////按鍵接口/////////////////////////////////sbitkey1=P3^2;//設置溫度sbitkey2=P3^3;//溫度加sbitkey3=P3^5;//溫度減sbitkey4=P3^4;//檔位控制sbitkey5=P3^7;//切換數模控制、、,sbitw5=P2^3;//////////////////////////////////////////////////////sbitw1=P2^4;//數碼管四個位sbitw2=P2^5;sbitw3=P2^6;sbitled2=P1^2;//呼吸燈unsignedcharid=0;sbitJD=P1^3;//kongzhijidianqi繼電器控制sbitw4=P2^7;//附加顯示//數碼管的四個位/////共陰數碼管段選//////////////////////////////////////////////uchartable[26]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71,0x40,0x38,0x76,0x00,0xff,0x37,0x26,0x25,0x27,0x65};//'-',L,H,滅,全亮,n16-21uintwen_du;//溫度變量uintshang,xia;//對比溫度暫存變量uchardang;//檔位顯示ucharflag;uchard1,d2,d3,d4;uchari;//顯示數據暫存變量voiddelay(uintms)//延時函數,大約延時25us{ucharx;for(ms;ms>0;ms--)for(x=10;x>0;x--);}/***********ds18b20延遲子函數(晶振12MHz)*******/voiddelay_18B20(uinti){while(i--);}/**********ds18b20初始化函數**********************/voidInit_DS18B20(){ucharx=0;DQ=1;//DQ復位delay_18B20(8);//稍做延時DQ=0;//單片機將DQ拉低delay_18B20(80);//精確延時大于480usDQ=1;//拉高總線delay_18B20(14);x=DQ;//稍做延時后如果x=0則初始化成功x=1則初始化失敗delay_18B20(20);}/*ds18b20讀一個字節*/ucharReadOneChar(){uchari=0;uchardat=0;for(i=8;i>0;i--){DQ=0;//給脈沖信號dat>>=1;DQ=1;//給脈沖信號if(DQ)dat|=0x80;delay_18B20(4);}return(dat);}/*ds18b20寫一個字節***/voidWriteOneChar(uchardat){uchari=0;for(i=8;i>0;i--){DQ=0;DQ=dat&0x01;delay_18B20(5);DQ=1;dat>>=1;}}/**讀取ds18b20當前溫度**/voidReadTemperature(){uchara=0;ucharb=0;uchart=0;Init_DS18B20();WriteOneChar(0xCC);//跳過讀序號列號的操作WriteOneChar(0x44);//啟動溫度轉換delay_18B20(100);//thismessageisweryimportantInit_DS18B20();WriteOneChar(0xCC);//跳過讀序號列號的操作WriteOneChar(0xBE);//讀取溫度寄存器等(共可讀9個寄存器)前兩個就是溫度delay_18B20(100);a=ReadOneChar();//讀取溫度值低位b=ReadOneChar();//讀取溫度值高位wen_du=((b*256+a)>>4);//當前采集溫度值除16得實際溫度值}voiddisplay()//顯示溫度{w1=0;P0=table[d1];delay(85);//第1位P0=0x00;w1=1;delay(1);w2=0;P0=table[x];delay(85);//第2位P0=0x00;w2=1;delay(1);w3=0;P0=table[d2];delay(85);//第3位P0=0x00;w3=1;delay(1);w4=0;P0=table[d3];delay(85);//第4位P0=0x00;w4=1;delay(1);w5=0;P0=table[d4];delay(85);//第5位P0=0x00;w5=1;delay(1);}voidzi_keyscan()//自動模式按鍵掃描函數{/*if(key1==0)//設置鍵按下{delay(10);//延時去抖if(key1==0)flag=1;//再次判斷按鍵,按下的話進入設置狀態while(key1==0);//松手檢測//按鍵釋放}*/if(key4==0)//設置鍵按下{delay(10);//延時去抖if(key4==0){id++;x=16;dang=id;}//再次判斷按鍵,按下的話進入設置狀態while(key4==0);//松手檢測//按鍵釋放}if(key5==0)//設置鍵按下設置數模控制。{delay(10);//延時去抖if(key5==0){m++;x=16;dang=x;}//再次判斷按鍵,按下的話進入設置狀態while(key5==0);//松手檢測//按鍵釋放}if(id==0){dj=0;z=22;}if(m==1){JD=1;z=25;x=16;dang=16;}if(m==2){m=0;JD=0;}if(id==6){x=16;dang=15;}if(id==7){id=0;x=15;JD=0;z=22;dj=0;dang=id;}///*while(flag==1)//進入設置上限狀態{d1=18;d2=shang/10;d3=shang%10;d4=z;//顯示字母H和上限溫度值display();//調用顯示函數if(key1==0)//判斷設置鍵是否按下{delay(10);//延時去抖if(key1==0)flag=2;//按鍵按下,進入設置下限模式while(key1==0);//松手檢測}if(key2==0)//加鍵按下{delay(10);//延時去抖if(key2==0)//加鍵按下{shang+=5;//上限加5if(shang>=100)shang=100;//上限最大加到100}while(key2==0);//松手檢測}if(key3==0)//減鍵按下{delay(10);//延時去抖if(key3==0)//減鍵按下{shang-=1;//上限減1if(shang=95)xia=95;}while(key2==0);//松手檢測}if(key3==0){delay(10);if(key3==0){xia-=1;if(xiaxia)&&(id!=7))//溫度大于下限,小于上限{dang=id;z=23;//檔位置3for(i=0;ixia))//溫度大于下限,小于上限1擋{dang=6;z=24;//檔位置1for(i=0;i
居然還有程序。。。很不錯。。。。
0
回復
2017-07-28 10:00
膜拜膜拜
0
回復
主站蜘蛛池模板: 免费国产女王调教在线视频 | 国产免费拔擦拔擦8x高清在线人 | 中文字幕在线中文字幕二区 | 国内毛片毛片毛片毛片毛片 | av在线亚洲天堂 | 亚洲最大的av在线 | 亚洲一区福利视频 | 午夜免费福利在线 | av夜夜草 | 中文字日产乱码六区中国有限公司 | 黑人巨大两根一起挤进 | 蜜臀久久精品久久久久久酒店? | 岛国a视频在线观看免费18在线看 | 中文字幕第50页 | A片无码国产精品性BBV | 成人水多啪啪片 | 伊人精品成人久久综合软件 | 婷婷成人丁香五月综合激情 | 无码三级香港经典三级在线视频 | 免费A级毛片AV无码 爱情岛论坛自拍亚洲品质极速福利 | 午夜男女爽爽影院网站 | 99999色| 国产免费自拍视频 | 特级黄色片免费看 | 欧美第一区 | 欧美一级免费高清 | 欧美日本在线一区 | 毛片视频软件 | 日韩欧美人妻一区二区三区 | 天天草草草 | 四虎国产精品永久在线无码 | av自拍偷拍 | 天天草夜夜骑 | 无码专区国产精品第一页 | 久久婷婷五月综合色丁香 | 国产香蕉伊蕉伊中文在线视频 | 日韩人妻无码精品专区综合网 | youjazz性欧美 | 色综合激情一区二区三区 | 亚洲国产精品成人天堂 | 91久久国产综合久久91精品网站 |