久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > AT89S52與DS18B20數(shù)字溫度傳感器測試結束

AT89S52與DS18B20數(shù)字溫度傳感器測試結束

作者: 時間:2016-11-29 來源:網絡 收藏
/************************************************************************ 溫度獲取***********************************************************************/void get_tem(){uchar tem1,tem2;float aaa;reset(); //復位write_byte(0xCC);//跳過ROMwrite_byte(0x44);//溫度轉換reset();write_byte(0xCC);write_byte(0xBE);tem1=read_byte();tem2=read_byte();TH=tem2;if(tem2>0x7f)tem2=~tem2;aaa=(tem2*256+tem1)*6.25;temper=(int)aaa;a1=temper/1000;a2=temper%1000/100;a3=temper%100/10;a4=temper%10;}/************************************************************************ 清屏***********************************************************************/void init(){P1=0x00;P0=0xff;}/*********************************************************************** * 正溫度時,顯示************************************************************************/void disp(uchar num1,uchar num2,uchar num3,uchar num4){P1=table[num1];P0=0xfe;delayms(2);P1=table1[num2];P0=0xfd;delayms(2);P1=table[num3];P0=0xfb;delayms(2);P1=table[num4];P0=0xf7;delayms(2);}/*********************************************************************** * 負溫度時,顯示************************************************************************/void disp1(uchar num1,uchar num2,uchar num3){P1=0x40;//顯示負號P0=0xfe;delayms(2);P1=table[num1];P0=0xfd;delayms(2);P1=table1[num2];P0=0xfb;delayms(2);P1=table[num3];P0=0xf7;delayms(2);}/*********************************************************************** * 毫秒級的延時* 晶振7.3728M***********************************************************************/ void delayms(uchar i) //誤差 -0.651041666667us{uchar a,b;for(;i>0;i--)for(b=47;b>0;b--)for(a=5;a>0;a--);}/*********************************************************************** * 定時器0中斷服務程序, 設置20毫秒計時器。每1秒鐘采集一次溫度值************************************************************************/void Timer0Interrupt(void) interrupt 1{TH0 = 0x88;TL0 = 0x00;//add your code here!time++;if(time==20){time=0;get_tem();}}
上一頁 1 2 下一頁

評論


技術專區(qū)

關閉