国产三级在线看完整版-内射白嫩大屁股在线播放91-欧美精品国产精品综合-国产精品视频网站一区-一二三四在线观看视频韩国-国产不卡国产不卡国产精品不卡-日本岛国一区二区三区四区-成年人免费在线看片网站-熟女少妇一区二区三区四区

儀器網(wǎng)(yiqi.com)歡迎您!

| 注冊2 登錄
網(wǎng)站首頁-資訊-話題-產(chǎn)品-評測-品牌庫-供應商-展會-招標-采購-知識-技術-社區(qū)-資料-方案-產(chǎn)品庫-視頻

問答社區(qū)

基于51單片機的溫度控制器

flowerinsu 2012-04-13 16:49:36 371  瀏覽
  •  

參與評論

全部評論(2條)

  • XIAOKEAI123ABC 2012-04-14 00:00:00
    haha

    贊(1)

    回復(0)

    評論

  • 新天地1596 2016-05-24 00:00:00
    圖片為溫度控制電路圖。溫度到達上限時led燈亮,并停止對RT的加熱,溫度達到下限時led燈滅并開始對RT進行加熱。A1和A2為uA741運算放大器。引腳號在圖上已經(jīng)標出。再給你一個單片機采集DS18B20溫度的程序,用四位數(shù)碼管顯示的。你把DS18B20接在RT附近就可以測試出RT的溫度,調(diào)節(jié)圖中的滑動變阻器可改變溫度的上下限。這樣就能做到溫度控制了。//安裝目錄下的EXE文件打開后可在電腦上顯示當前溫度值#include <reg52.h>#define uchar unsigned char#define uint unsigned intsbit DS=P1^0;           //define interfaceuint temp;             // variable of temperatureuchar flag1;            // sign of the result positive or negative//sbit dula=P2^6;//sbit wela=P2^7;//unsigned char code table2[]={0x3f,0x30,0x5b,0x4f,0x66,0x6d,0x7d,

    //                       0x07,0x7f,0x67/*,0x77,0x7c,0x39,0x5e,0x79,0x71*/};//unsigned char code table1[]={0xbf,0xb0,0xdb,0xcf,0xe6,0xed,0xfd,

    //                        0x87,0xff,0xe7};  //unsigned char code table2[]={0x40,0x5e,0x24,0x21,0x13,0x09,0x08,

      //                      0x63,0x00,0x03/*,0x77,0x7c,0x39,0x5e,0x79,0x71*/};//unsigned char code table1[]={0xc0,0xde,0xa4,0xa1,0x93,0x89,0x88,

     //                       0xe7,0x8f,0x87};unsigned char code table5[]={0x77,0x22,0x6d,0x5d,0x1e,0x5b,0x7b,

                            0x15,0x7f,0x1f};  unsigned char code table6[]={0xf7,0xa2,0xed,0xdd,0x9e,0xdb,0xfb,

                            0x95,0xff,0x9f};  void delay(uint count)      //delay{  uint i;  while(count)  {    i=200;    while(i>0)    i--;    count--;  }}///////功能:串口初始化,波特率9600,方式1///////void Init_Com(void){     TMOD = 0x20;     PCON = 0x00;     SCON = 0x50;     TH1 = 0xFd;     TL1 = 0xFd;     TR1 = 1;}void dsreset(void)       //send reset and initialization command 18B20復位,初始化函數(shù){  uint i;  DS=0;  i=103;  while(i>0)i--;  DS=1;  i=4;  while(i>0)i--;}bit tmpreadbit(void)       //read a bit  讀1位數(shù)據(jù)函數(shù){   uint i;   bit dat;   DS=0;i++;          //i++ for delay   DS=1;i++;i++;   dat=DS;   i=8;while(i>0)i--;   return (dat);}uchar tmpread(void)   //read a byte date   讀1字節(jié)函數(shù){  uchar i,j,dat;  dat=0;  for(i=1;i<=8;i++)  {    j=tmpreadbit();    dat=(j<<7)|(dat>>1);   //讀出的數(shù)據(jù)Z低位在Z前面,這樣剛好一個字節(jié)在DAT里  }  return(dat);}void tmpwritebyte(uchar dat)   //write a byte to ds18b20  向1820寫一個字節(jié)數(shù)據(jù)函數(shù){  uint i;  uchar j;  bit testb;  for(j=1;j<=8;j++)  {    testb=dat&0x01;    dat=dat>>1;    if(testb)     //write 1    {      DS=0;      i++;i++;      DS=1;      i=8;while(i>0)i--;    }    else    {      DS=0;       //write 0      i=8;while(i>0)i--;      DS=1;      i++;i++;    }  }}void tmpchange(void)  //DS18B20 begin change       開始獲取數(shù)據(jù)并轉(zhuǎn)換{  dsreset();  delay(1);  tmpwritebyte(0xcc);  // address all drivers on bus  寫跳過讀ROM指令  tmpwritebyte(0x44);  //  initiates a single temperature conversion  寫溫度轉(zhuǎn)換指令}   uint tmp()               //get the temperature     讀取寄存器中存儲的溫度數(shù)據(jù){  float tt;  uchar a,b;  dsreset();  delay(1);  tmpwritebyte(0xcc);  tmpwritebyte(0xbe);  a=tmpread();   //讀低8位  b=tmpread();   //讀高8位  temp=b;  temp<<=8;             //two byte  compose a int variable   兩個字節(jié)組合為1個字  temp=temp|a;  tt=temp*0.0625;   //溫度在寄存器中是12位,分辨率是0.0625  temp=tt*10+0.5;  //乘10表示小數(shù)點后只取1位,加0.5是四折五入  return temp;}void readrom()          //read the serial{  uchar sn1,sn2;  dsreset();  delay(1);  tmpwritebyte(0x33);  sn1=tmpread();  sn2=tmpread();}void delay10ms()            //delay  {    uchar a,b;    for(a=10;a>0;a--)      for(b=60;b>0;b--);   }void display(uint temp) //顯示程序{   uchar A1,A2,A2t,A3,ser;   ser=temp/10;   SBUF=ser;   A1=temp/100;   A2t=temp%100;   A2=A2t/10;   A3=A2t%10;   //dula=0;   d4=0;   P0=table5[A1];   delay(1);   d4=1; //顯示百位   //dula=1;  // dula=0;   /*wela=0;   P0=0x7e;   wela=1;   wela=0; */       //dula=0;   d3=0;   P0=table6[A2];   delay(1);   d3=1; //顯示十位   //dula=1;   //dula=0;   /*wela=0;   P0=0x7d;   wela=1;   wela=0;  */         d2=0;   P0=table5[A3];   delay(1);   d2=1; //顯示個位   //dula=1;   //dula=0;   /*P0=0x7b;   wela=1;   wela=0;  */     }void main(){ uchar a; Init_Com();  do  {    tmpchange();   // delay(200);for(a=1;a>0;a--)  {   display(tmp());  }  }                while(1);}

    贊(8)

    回復(0)

    評論

熱門問答

基于51單片機的溫度控制器
 
2012-04-13 16:49:36 371 2
求助,基于51單片機,激光測距
 
2018-11-30 04:20:40 449 0
:基于51單片機的脈沖信號發(fā)生器
[1]輸出信號約每秒1組脈沖,脈沖組間隔0.5-2秒可設置;[2]每組脈沖個數(shù)1-50可以設置,雙極性脈沖和雙極性方波;[3]脈沖頻率5K-100K可以設置;[4]脈沖寬度可以1-100uS可以設置;我的92... [1] 輸出信號約每秒1組脈沖,脈沖組間隔0.5-2秒可設置;[2] 每組脈沖個數(shù)1-50可以設置,雙極性脈沖和雙極性方波; [3] 脈沖頻率5K-100K可以設置;[4] 脈沖寬度可以1-100uS可以設置; 我的 921313685@qq.com謝啦 展開
2014-10-15 08:40:21 273 2
基于單片機的溫度控制器的畢業(yè)論文
基于AT89C2051單片機的水溫控制電路的設計,希望有相關資料的好心人能幫幫忙,郵箱:henryjason@126.com感激不盡... 基于AT89C2051單片機的水溫控制電路的設計,希望有相關資料的好心人能幫幫忙,郵箱:henryjason@126.com 感激不盡 展開
2010-05-14 03:21:10 297 2
基于51單片機的數(shù)字頻率計(0—10MHZ)
百度上有0—10KHZ的,我能找到,求大神教我怎么依葫蘆畫瓢測10MHZ的吧,據(jù)說可以在51單片機擴展一個8253芯片用來定時計數(shù)?反正怎么好弄怎么來吧,不好貼的話,直接發(fā)我郵箱也行:xddpzc2010@126.com
2013-03-14 00:30:14 440 1
基于51單片機的光電傳感器的計數(shù)器設計
 
2018-11-16 15:26:33 332 0
基于 VB6.0 和 51單片機 的 超聲波 液位計
我想做一個基于VB6.0和51單片機的超聲波液位計,單片機通過超聲波測距模塊測距,并通過URAT串口和上位機通訊,VB編寫上位機程序,將液位值和曲線顯示在上位機程序界面中。 因為本人VB初學,之前也沒有上下位機通訊編程的經(jīng)驗,在CSDN和pudn上面下載的類似... 我想做一個基于VB6.0和51單片機的超聲波液位計,單片機通過超聲波測距模塊測距,并通過URAT串口和上位機通訊,VB編寫上位機程序,將液位值和曲線顯示在上位機程序界面中。 因為本人VB初學,之前也沒有上下位機通訊編程的經(jīng)驗,在CSDN和pudn上面下載的類似上下位機程序貌似都有些問題,煩請各位分享分享,有相關例程Z好,沒有的話,Z簡單的上下位機通訊測試程序也行,如果問題解決了,除了這30分外,我再多給幾十分百來分也沒問題,我的編程環(huán)境是VB6.0中文版和keil uvision3。單片機用STC89C52。。 文件比較大的話,Z好是工程文件包,可以發(fā)我郵箱里,thomas287@126.com和QQ:287153136。如果問題解決一定重謝,期待大蝦的回復! 展開
2011-02-08 09:42:05 885 5
基于51單片機的數(shù)字頻率計設計(proteus仿真)
要求:實現(xiàn)外部方波,三角波,正弦波,鋸齒波等常用波形的頻率測量 (硬件設計,軟件設計)
2012-06-03 00:12:36 515 3
溫度控制器w1209 與51單片機 如何連接?
溫度控制器w1209與51單片機如何連接?實現(xiàn)程序更新?... 溫度控制器w1209 與51單片機 如何連接?實現(xiàn)程序更新? 展開
2017-10-13 21:57:15 622 1
基于51單片機8通道數(shù)據(jù)采集系統(tǒng)設計
設計要求:1、使用89C51和ADC0809構成8通道數(shù)據(jù)采集系統(tǒng);2、要求有復位電路(包括上電復位和按鍵復位);3、要求上電以后,按下啟動鍵后順序采集各個通道的信號;4、先利用A/D轉(zhuǎn)化器... 設計要求: 1、使用89C51和ADC0809構成8通道數(shù)據(jù)采集系統(tǒng); 2、要求有復位電路(包括上電復位和按鍵復位); 3、要求上電以后,按下啟動鍵后順序采集各個通道的信號; 4、先利用A/D轉(zhuǎn)化器對各路電壓進行采樣,得到相應的數(shù)字量,再經(jīng)過數(shù)字量與模擬量的關系得到模擬電壓值,然后在LED數(shù)碼管上顯示,采集信號的范圍為:0-5V; 5、設置有停止按鈕,按下后停止采集數(shù)據(jù)。 6、共用4個數(shù)碼管,Z高位顯示通道號,剩下3位,1位為整數(shù)位,兩位為小數(shù)位。 展開
2012-06-25 06:31:58 447 1
基于51單片機,ADC0804,光敏電阻,濕度傳感器,求程序!?。?!
我用的51單片機,采集光強度和空氣濕度,利用了兩個ADC0804進行轉(zhuǎn)換(光敏電阻和電阻式濕度傳感器),但是沒有相應程序,哪位大哥能幫忙弄一個程序???如果是可行的程序,我賬號里剩下... 我用的51單片機,采集光強度和空氣濕度,利用了兩個ADC0804進行轉(zhuǎn)換(光敏電阻和電阻式濕度傳感器),但是沒有相應程序,哪位大哥能幫忙弄一個程序啊?如果是可行的程序,我賬號里剩下的分全給你,雖然不多... 展開
2011-06-01 01:20:26 341 4
基于51單片機用LCD1602液晶顯示的頻率計程序
求程序——————
2013-04-23 19:11:42 389 1
基于51單片機的數(shù)字頻率計電路原理圖怎么畫
 
2018-11-24 20:51:55 421 0
用溫度傳感器做基于51單片機的電子體溫計
用溫度傳感器做基于51單片機的電子體溫計兼容的溫度傳感器,基于51... 用溫度傳感器做基于51單片機的電子體溫計兼容的溫度傳感器,基于51 展開
2017-11-27 00:58:33 717 1
基于單片機的溫度控制器答辯時會提問什么問題?
我畢業(yè)設計做的這個題目,主要器件有DS18B20,AT89S51,LED顯示,按鍵電路和控制報警電路,答辯的時候老師大概會問什么?... 我畢業(yè)設計做的這個題目,主要器件有DS18B20,AT89S51,LED顯示,按鍵電路和控制報警電路,答辯的時候老師大概會問什么? 展開
2012-04-16 05:50:44 408 2
基于51單片機函數(shù)信號發(fā)生器怎么樣實現(xiàn)小功率
 
2017-04-25 21:48:31 430 1
基于51單片機的lm393振動傳感器的程序怎么加蜂鳴器
 
2017-10-26 10:33:33 363 2
你有沒有 基于51單片機用LCD1602液晶顯示的頻率計程序
 
2013-05-20 02:57:49 381 1
51單片機---------基于簡單IO口的LCD顯示頻率計設計
求報告?。?!
2013-12-04 17:40:52 459 1
基于51單片機的數(shù)字頻率計如何識別高頻信號與低頻信號
 
2015-11-03 14:31:52 407 1

4月突出貢獻榜

推薦主頁

最新話題