資源簡介
多路DS1820測溫+DS18B20序列號讀取

代碼片段和文件信息
#include
#include
#include?
#include?
#define?uchar?unsigned?char
#define?uint??unsigned?int
sbit?RS=??P2^0??; //液晶顯示引腳定義
sbit?RW=??P2^1??;
sbit?EN=??P2^2??;
uint??t=0dian=0;
uchar?LCD_LINE[16]={“tp1:???????????“}; //定義顯示屏幕
int?Tm;
int??fushu=0?;
sbit?DQ=?P3^3; ???
code?unsigned?char?get_serial[]={ ??//獲取的八個DS18B20內部RAM64位序列號
??2270061804310740
???117006180136340
???14900617918922340
???810061809413240
???178006180215640
???89006180020140
???14600617917521240
???135006180402940??
?};
void?delay(uint?ms?) ??//用于液晶顯示的延時函數
{
??int?i?;
??while(ms--)
??{
???????for(i=0?;i<5?;i++?)??
???;
??}
}
uchar?Read_LCD_State() ??//讀取液晶顯示的狀態
{
? uchar?state;
RS=0;RW=1;EN=1;delay(1);
state=P0;
EN?=?0;delay(1);
return?state;
}
void?LCD_Busy_Wait() ?//如果忙則等待函數
{
? while((Read_LCD_State()&0x80)==0x80);
delay(5);
}
void?Write_LCD_Zhilin(uchar?zl) ??//液晶顯示寫指令函數
{
LCD_Busy_Wait();
RS=0;RW=0;
EN=0;
P0=zl;
EN=1;
delay(1);
EN=0;
}
void?Write_LCD_shuju(uchar?date) ?????//液晶顯示寫數據函數
{
? LCD_Busy_Wait();
RS=1;RW=0;
EN=0;
P0=date;
EN=1;
delay(1);
EN=0;
}
?void?LCD_INIT() //液晶顯示初始化
{
????Write_LCD_Zhilin(0x38); ??//?顯示模式設置
delay(1); ??
Write_LCD_Zhilin(0x01); ??//?顯示清屏
delay(1); ?
Write_LCD_Zhilin(0x06); ??//?光標移動設置
delay(1);
Write_LCD_Zhilin(0x0c); ??//?開及光標設置
delay(1);
}
?void?Display_LCD_String(uchar?puchar?*s) ??//液晶顯示寫入函數
{
? uchar?i;
Write_LCD_Zhilin(p) ;??
//Write_LCD_Zhilin(0x40|0x80) ;
for(i=0;i<6;i++)
{
Write_LCD_shuju(s[i]);
delay(1);?
}
}
?void?Display_LCD_String_init(uchar?puchar?*s) ??//液晶顯示寫入函數
{
? uchar?i;
Write_LCD_Zhilin(p) ;???
//Write_LCD_Zhilin(0x40|0x80) ;
for(i=0;i<2;i++)
{
Write_LCD_shuju(s[i]);
delay(1);?
}
}
/***************************************************************************************/
void?delays(int?us) ???//用于DS18B20的延時函數
{?int?s;
for?(?s=0;?s }
void?rst(void) //DS18B20初始化
{
DQ?=?1;
delays(2);
DQ?=?0;
delays(30);?//精確延時?480~960us
DQ?=?1;
delays(8);
}
void?write(unsigned?char?ku) //DS18B20寫函數
{
int?i=0;
?????for?(i=0;i<8;i++)
????{
DQ=0;
DQ?=ku&0x01;
delays(3);
DQ=1;
ku>>=1;
????}
}
void?match_rom(unsigned?char?*rom) ??//DS18B20匹配ROM函數
{
?unsigned?char?i;
?rst(); ??//初始化
?write(0x55); ??//匹配ROM
?for(i=8;i>0;i--)
?{
??????????write(*(rom+i-1));
?}
}
unsigned?int?read(void) ??//DS18B20讀函數,每次讀16位
{
int?i=0;
unsigned?int?u=0;
????for?(i=0;i<16;i++)
????{
DQ=0;
u>>=1;
DQ=1;
if(DQ)?u|=0x8000;
delays(4);
?????}
????return?(u);
}
int??read0(unsigned?char?*seria) //讀取對應溫度值并轉換函數
{
?????int?temperature?;
????unsigned?int?tp;
????unsigned?int?lsb;
????rst(); ??//初始化
????write(0xCC); ??//跳過RAM
write(0x44); ??//溫度轉換
rst(); ??//再次初始
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2015-06-22?09:54??多路DS18B20測量\
?????文件???????13566??2015-06-09?13:10??多路DS18B20測量\ds18du.hex
?????文件??????????29??2015-06-09?13:10??多路DS18B20測量\ds18du.lnp
?????文件???????23297??2015-06-09?13:10??多路DS18B20測量\ds18du.M51
?????文件????????1180??2015-06-12?14:01??多路DS18B20測量\ds18du.Opt
?????文件????????1760??2015-06-12?14:01??多路DS18B20測量\ds18du.plg
?????文件????????2112??2015-06-12?14:01??多路DS18B20測量\ds18du.Uv2
?????文件???????95577??2015-06-09?20:44??多路DS18B20測量\ds18duolu.DSN
?????文件????????3938??2015-06-12?14:02??多路DS18B20測量\ds18duolu.PWI
?????文件????????1188??2015-06-12?13:48??多路DS18B20測量\ds18du_Opt.Bak
?????文件????????2112??2015-05-19?19:16??多路DS18B20測量\ds18du_Uv2.Bak
?????文件????????7216??2015-06-12?14:01??多路DS18B20測量\dsduid.c
?????文件???????17529??2015-06-12?14:01??多路DS18B20測量\dsduid.LST
?????文件???????95577??2015-06-04?09:47??多路DS18B20測量\Last?Loaded?ds18duolu.DBK
?????文件????????6376??2011-11-06?12:20??多路DS18B20測量\STARTUP.A51
?????文件???????10725??2011-11-06?12:20??多路DS18B20測量\STARTUP.LST
?????文件?????????759??2011-11-06?12:20??多路DS18B20測量\STARTUP.OBJ
?????文件???????????0??2015-06-03?18:27??多路DS18B20測量\Text1.c
?????目錄???????????0??2015-06-04?21:53??讀取序列號\
?????文件????????8872??2015-06-04?21:14??讀取序列號\aaaaaa
?????文件????????1550??2015-06-04?21:14??讀取序列號\aaaaaa.hex
?????文件??????????28??2015-06-04?21:14??讀取序列號\aaaaaa.lnp
?????文件???????12827??2015-06-04?21:14??讀取序列號\aaaaaa.M51
?????文件?????????968??2015-06-04?19:08??讀取序列號\aaaaaa.Opt
?????文件?????????165??2015-06-04?21:53??讀取序列號\aaaaaa.plg
?????文件????????2110??2015-06-04?21:53??讀取序列號\aaaaaa.Uv2
?????文件?????????834??2015-06-03?19:00??讀取序列號\aaaaaa_Opt.Bak
?????文件????????2106??2015-06-04?19:08??讀取序列號\aaaaaa_Uv2.Bak
?????文件??????134176??2015-06-03?18:32??讀取序列號\Last?Loaded?kongqilengqueqi1.DBK
?????文件????????6376??2005-03-22?15:22??讀取序列號\STARTUP.A51
?????文件????????7273??2015-06-04?11:01??讀取序列號\Text1.c
............此處省略4個文件信息
評論
共有 條評論