91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 751KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2021-05-12
  • 語言: 其他
  • 標簽: 51??DS18B20??1602??

資源簡介

用51單片機讀取DS18B20的溫度數據,并在1602上面顯示,包含完整工程和proteus仿真

資源截圖

代碼片段和文件信息

#include
#include
#include
#define uchar?unsigned?char
#define?uint?unsigned?int
#define?delay4us()?{_nop_();_nop_();_nop_();_nop_();}

sbit?DQ=P3^4;

uchar?code?df_Table[]={0112334456678899};?//溫度小數位對照表

uchar?CurrentT=0;//當前讀取的溫度整數部分
uchar?Temp_Value[]={0x000x00}; ???//從DS18B20讀取的溫度值
uchar?Display_Digit[11]={00000000000};???//待顯示的各溫度數位
bit?DS18B20_IS_OK=1;??//DS18B20正常標志

void?DelayXus(uint?x)??//延時1
{
??uchar?i;
??while(x--)
??{
??for(i=0;i<200;i++);
??}
}

void?Delay(uint?x)??//延時2
{
??while(x--);
}

uchar?Init_DS18B20()??//初始化18B20
{
??uchar?status;
??DQ=1;
??Delay(8);
??DQ=0;
??Delay(90);
??DQ=1;
??Delay(8);
??status=DQ;
??Delay(100);
??DQ=1;
??return?status;
}

uchar?ReadOneByte() ?//從DS18B20讀一字節數據
{
??uchar?idat=0;
??DQ=1;
??_nop_();
???for(i=0;i<8;i++)
????{
DQ=0;
dat>>=1;
DQ=1;
_nop_();
_nop_();
if(DQ)
dat|=0x80;
Delay(30);
DQ=1;
}
return?dat;
}

void?WriteOneByte(uchar?dat)???//從DS18B20寫一字節數據
{
?uchar?i;
?for(i=0;i<8;i++)
??{
???DQ=0;
???DQ=dat&0x01;
???Delay(5);
???DQ=1;
???dat>>=1;
??}
}

void?Read_Temperature()//??????從DS18B20讀取溫度值
{
?if(Init_DS18B20()==1)???//DS18B20故障
???????DS18B20_IS_OK=0;
else
{
??WriteOneByte(0xcc);??//跳過序列號命令
??WriteOneByte(0x44);???//啟動溫度轉換命令
??Init_DS18B20();//復位DS18B20
??WriteOneByte(0xcc);//跳過序列號命令
??WriteOneByte(0xbe);//讀取溫度寄存器
??Temp_Value[0]=ReadOneByte();?//讀取溫度低字節
??Temp_Value[1]=ReadOneByte(); //讀取溫度高字節
??DS18B20_IS_OK=1;????//DS18B20正常
}
}

void?Display_Temperature()
{
uchar?i;
uchar?t=150ng=0;
if((Temp_Value[1]&0xf8)==0xf8)
??{
????Temp_Value[1]=~Temp_Value[1];
Temp_Value[0]=~Temp_Value[0]+1;
if(Temp_Value[0]==0x00)
???Temp_Value[1]++;
???ng=1;
??}
??Display_Digit[5]=df_Table[Temp_Value[0]&0x0f]+‘0‘;?//由低四位確定小數值
??CurrentT=(((Temp_Value[0]&0xf0)>>4)|((Temp_Value[1]&0x07)<<4));
??if(CurrentT/100==0)
??Display_Digit[1]=‘?‘;
??else
??Display_Digit[1]=CurrentT/100+‘0‘;
??Display_Digit[2]=(CurrentT%100)/10+‘0‘;
??Display_Digit[3]=CurrentT%10+‘0‘;
??Display_Digit[4]=‘.‘;
??Display_Digit[6]=‘0‘;
??Display_Digit[7]=‘0‘;
??Display_Digit[8]=‘?‘;
??Display_Digit[9]=‘c‘;
??if(ng==1)
??Display_Digit[0]=‘-‘;
??else
??Display_Digit[0]=‘+‘;
??LCD_Write_String(61Display_Digit);
??LCD_Write_String(20“thermometry“);
??LCD_Write_String(11“Temp“);
}

void?main()
{
LCD_Init();
Read_Temperature();
Delay(50000);
Delay(50000);
while(1)
?{
??Read_Temperature();
???if(DS18B20_IS_OK)
??????Display_Temperature();
??DelayXus(100);
??}?
}

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件??????12522??2015-08-02?08:35??DS18B20\DS18B20

?????文件???????2757??2015-08-02?08:35??DS18B20\DS18B20.c

?????文件???????2508??2015-08-02?08:35??DS18B20\DS18B20.hex

?????文件?????????62??2015-08-02?08:35??DS18B20\DS18B20.lnp

?????文件???????6001??2015-08-02?08:35??DS18B20\DS18B20.LST

?????文件??????19143??2015-08-02?08:35??DS18B20\DS18B20.M51

?????文件??????14055??2015-08-02?08:35??DS18B20\DS18B20.OBJ

?????文件????????159??2015-08-13?10:28??DS18B20\DS18B20.plg

????.......?????57076??2015-08-13?10:58??DS18B20\DS18B20.uvopt

?????文件??????13576??2015-07-31?22:40??DS18B20\DS18B20.uvproj

????.......?????56272??2015-08-12?23:11??DS18B20\DS18B20_uvopt.bak

?????文件??????????0??2015-07-31?19:14??DS18B20\DS18B20_uvproj.bak

?????文件?????121665??2015-07-31?22:40??DS18B20\Last?Loaded?show.DBK

?????文件???????3488??2014-05-08?15:35??DS18B20\lcd1602.h

?????文件?????121681??2015-08-02?08:36??DS18B20\show.DSN

?????文件???????1028??2015-08-13?10:58??DS18B20\show.PWI

?????文件???????6376??2005-03-22?15:22??DS18B20\STARTUP.A51

?????文件??????14049??2015-07-31?22:02??DS18B20\STARTUP.LST

?????文件????????749??2015-07-31?22:02??DS18B20\STARTUP.OBJ

?????文件?????819712??2015-07-31?21:04??DS18B20\參考資料.doc

?????目錄??????????0??2015-08-13?10:58??DS18B20

-----------?---------??----------?-----??----

??????????????1272879????????????????????21


評論

共有 條評論