|
stc15f104e+ds18b20+ULN2003A簡(jiǎn)易散熱風(fēng)扇控制器,壓縮包內(nèi)有用C51的仿真和原程序C。新手發(fā)帖,請(qǐng)多指教
下面是風(fēng)扇控制器的仿真原理圖:
0.png (33.2 KB, 下載次數(shù): 77)
下載附件
2017-4-30 17:37 上傳
F1 40度啟動(dòng) F2 50度啟動(dòng)
F1 小于35度停止 F2 小于 45度停止
用8051仿真15F104E,用小燈泡代替小風(fēng)扇好看點(diǎn),因?yàn)轱L(fēng)扇停止太慢。
0.png (71.91 KB, 下載次數(shù): 78)
下載附件
2017-4-30 17:36 上傳
散熱風(fēng)扇控制器的單片機(jī)源程序:
-
- ///朱旭東2017年改 89c52rc 11.0592MHZ
- //+99.9~-9.9
- // 十位 個(gè)位 小數(shù) 小c P0.0-P0.7 A-G點(diǎn),使用3位管時(shí)不用小C
- //#include<reg52.h>
- #include <intrins.h>
- #include <STC15Fxxxx.H>
- //code unsigned char seg7code[12]={0x3f,0x06,0x5b,0x4f,0x66,
- // 0x6d,0x7d,0x07,0x7f,0x6f,0x40,0x61}; //顯示段碼0,1,2,3,4,5,6,7,8,9,-.C
- unsigned int tem;
- sbit led1=P3^4;
- sbit led=P3^5;
- sbit TMDAT =P3^2; //DS18B20的數(shù)據(jù)輸入/輸出腳DQ,根據(jù)情況設(shè)定
- sbit led2=P3^3;
- bit fg=0; //溫度正負(fù)標(biāo)志
- unsigned char k;
- //sbit w1=P1^0;
- //sbit w2=P1^1;
- //sbit w3=P1^2;
- //sbit w4=P1^3;
- void delay_us(unsigned char n)// STC15系列單片機(jī)延時(shí)1微秒@12MHZ
- {
- while (n--)
- {
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- }
- }
- void Delay(unsigned int tc) //顯示延時(shí)程序
- {while( tc != 0 )
- {unsigned int i;
- for(i=0; i<100; i++);
- tc--;}
- }
-
- void Init_DS18B20(void) //發(fā)送復(fù)位
- {
- unsigned char i=0;
- //TMDAT=0; delay_us(240); delay_us(240);//168 for(i=0;i<103;i++); //370us
- // TMDAT = 1;delayus(46);//5 for(i=0;i<4;i++); // 16 us
- TMDAT = 1; //DQ復(fù)位
- delay_us(80); //稍做延時(shí)
- TMDAT = 0; //單片機(jī)將DQ拉低
- delay_us(240); //精確延時(shí) 大于 480us
- delay_us(240);
- TMDAT = 1; //拉高總線
- delay_us(60);
- i=TMDAT;
- delay_us(240); //等待設(shè)備釋放數(shù)據(jù)線
- delay_us(180);
-
- }
-
- unsigned char ReadOneChar(void){//讀一個(gè)字節(jié)
- unsigned char i=0;
- unsigned char dat = 0;
- for (i=8;i>0;i--){
- TMDAT = 0; // 給脈沖信號(hào)
- dat>>=1;
- TMDAT = 1; // 給脈沖信號(hào)
- if(TMDAT ==1){
- dat|=0x80;
- }
- delay_us(60);
- }
- return(dat);
- }
-
- void WriteOneChar(unsigned char dat)//寫(xiě)一個(gè)字節(jié)
- { unsigned char i=0;
- for (i=8; i>0; i--)
- {
- TMDAT= 0;
- TMDAT = dat&0x01;
- delay_us(60);
- TMDAT = 1;
- dat>>=1;
- }
- }
- unsigned int ReadTemperature(void)//讀取溫度
- { unsigned char a=0;
- unsigned char b=0;
- unsigned int t=0;
- float tt=0;
- Init_DS18B20();
- WriteOneChar(0xCC); // 跳過(guò)讀序號(hào)列號(hào)的操作
- WriteOneChar(0x44); // 啟動(dòng)溫度轉(zhuǎn)換
- Init_DS18B20();
- WriteOneChar(0xCC); //跳過(guò)讀序號(hào)列號(hào)的操作
- WriteOneChar(0xBE); //讀取溫度寄存器
- a=ReadOneChar(); //讀低8位
- b=ReadOneChar(); //讀高8位
- t=b;
- t<<=8;
- t=t|a;
- if(t<0x0fff)//前五位為0
- fg=0; //+溫度時(shí)的標(biāo)志
- else
- {fg=1;
- t=~t+1*10-7;//得到真實(shí)溫度*10 ,為了顯示后一位小數(shù),-7使負(fù)誤差減小為0.1度
- } //-溫度時(shí)的標(biāo)志
- tt=t*0.0625;
- t= tt*10+0.5; //放大10倍輸出并四舍五入
- tem=t;
- return(t);
- }
- /*
- void Led()
- {
- if(fg==0) //溫度為正時(shí)顯示的數(shù)據(jù)
- {
- w1=w2=w3=w4=1;
- w1=0;
- P3=seg7code[tem%1000/100];//輸出十位數(shù)
- Delay(15);
- w1=1;
- w2=0;
- P3=seg7code[tem%100/10]|0x80; //輸出個(gè)位和小數(shù)點(diǎn)
- Delay(15);
- w2=1;
- w3=0;
- P3=seg7code[tem%10]; //輸出小數(shù)點(diǎn)后第一位
- Delay(15);
- w3=1;
- w4=0;
- P3=seg7code[11];//輸出c
- Delay(15);
- w1=w2=w3=w4=1;
- // P0=seg7code[xiaoshu2]; //輸出小數(shù)點(diǎn)后第二位
- // Delay(4); P2=P2|0xf0;
- }
-
- if(fg==1) //溫度為負(fù)時(shí)顯示的數(shù)據(jù)
- { w1=w2=w3=w4=1;
- w1=0;
- P3=seg7code[10]; //負(fù)號(hào)
- Delay(15);
- w1=1;
- w2=0;
- P3=seg7code[tem%100/10]|0x80; //輸出個(gè)位數(shù)和小數(shù)點(diǎn)
- Delay(15);
- w2=1;
- w3=0;
-
- P3=seg7code[tem%10]; //輸出小數(shù)第1位
- Delay(15);
- w3=1;
- w4=0;
-
- P3=seg7code[11];//輸出c
- Delay(15);
- w1=w2=w3=w4=1;
- //P0=seg7code[xiaoshu]; //輸出小數(shù)點(diǎn)后第一位
- // Delay(4); P2=P2|0xf0;
- }
- }
- */
- main()
- {fg=0;
- led=0;
- led1=0;
- P3M0=0x00;
- P3M1=0x00;//P3口推挽
- // P1M0=0x00;
- // P1M1=0x00;
- while(1)
- {
- for(k=0;k<100;k++)
- {Delay(15);
- ReadTemperature();
- // Led();
- Delay(15);
- if(tem>=400)//風(fēng)扇1啟動(dòng)溫度40
- {led=1;
- }
- if(tem>=500)//風(fēng)扇2啟動(dòng)溫度50
- {led1=1;
- }
- …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼
所有資料下載(含仿真與源碼):
1820帶溫度控制104e.rar
(98.84 KB, 下載次數(shù): 94)
2017-4-30 12:35 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
評(píng)分
-
查看全部評(píng)分
|