資源簡介
單片機+DS18B20溫度顯示,-55~127°顯示

代碼片段和文件信息
#include
#define uchar unsigned?char
#define?uint unsigned?int
sbit?SMG1=P2^0;
sbit?SMG2=P2^1;
sbit?SMG3=P2^2;
sbit?SMG4=P2^3;
sbit?TMDAT=P3^2;
sbit?dian=P0^7;
//定義各位數碼管的控制端
void?display(char?x1char?x2char?x3char?x4);
unsigned?char?code?tab[14]={0xc00xf90xa40xb00x990x920x820xf80x800x900xc00xf90xa40xbf};???????
uchar tmpbuf[5];
//預置數碼管顯示的數據,此處設為0123456789012.
void?delay2(unsigned?int?z)
{
unsigned?xy;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}//定義延時函數
////////////////////////////////////////////////////////
void?Delay(uint?useconds)
?{
while(useconds--);
}
uchar Reset_Bus(void)
{
uchar presence;
TMDAT?=?0;??
Delay(85);?
TMDAT?=?1;?
Delay(5);?
presence?=?TMDAT;?
Delay(40);?
return(presence);?
}
void?Write_Bit(char?bitval)
{
TMDAT?=?0;?
if(bitval==1)?TMDAT?=1;
Delay(10);?
TMDAT?=?1;?
}
void?Write_Byte(char?val)
?{
uchar i;
uchar temp;
for?(i=0;?i<8;?i++)?{
temp?=?val>>i;?
temp?&=?0x01;?
Write_Bit(temp);?
}
Delay(10);
}
uchar Read_Bit(void)?
{
uchar i;
TMDAT?=?0;????? ?
TMDAT?=?1;?
for?(i=0;?i<3;?i++);?
return(TMDAT);?
}
uchar Read_Byte(void)
?{
uchar i;
uchar value?=?0;
for?(i=0;i<8;i++)
?{??
if(Read_Bit())?value|=0x01< Delay(6);?
}
return(value);
}
uint?DS18B20_Tmp_Read(void)
?{
uint? TEMP;
uchar TEMP_LSBTEMP_MSB;
Reset_Bus();
Write_Byte(0xCC);?
Write_Byte(0x44);?
Delay(5);
Reset_Bus();
Write_Byte(0xCC);?
Write_Byte(0xBE);?
TEMP_LSB?=?Read_Byte();?
TEMP_MSB?=?Read_Byte();?
TEMP=TEMP_MSB;
TEMP=TEMP<<8;
TEMP=TEMP|TEMP_LSB;
return TEMP;
}
//////////////////////////////////////////////////////////////////
////主函數
void?main()
{?? uint tmp;
uchar itmphtmpl;
P2=0;
while(1)
{
tmp=DS18B20_Tmp_Read();
tmpl=(uchar)(tmp&0x0f);
tmph=(uchar)((tmp>>4)&0xff);
tmpl=tmpl*6.25;
if(tmph/100>1)
{
tmph=256-tmph;
tmpbuf[4]=tmpl%10;
tmpbuf[3]=tmpl/10;
tmpbuf[2]=tmph%10;
tmpbuf[1]=(tmph%100)/10;
tmpbuf[0]=tmph/100;
if(tmpbuf[0]==0)
{
tmpbuf[0]=10;
if(tmpbuf[1]==0)
tmpbuf[1]=10;
?tmpbuf[0]=13;
? }?
??}
else??
{
tmpbuf[4]=tmpl%10;
tmpbuf[3]=tmpl/10;
tmpbuf[2]=tmph%10;
tmpbuf[1]=(tmph%100)/10;
tmpbuf[0]=tmph/100;
if(tmpbuf[0]==0)
{
tmpbuf[0]=10;
if(tmpbuf[1]==0)
tmpbuf[1]=10;
}
???}
??//for(i=0;i<1000;i++)
???//display(1234);
????????display(tmpbuf[0]tmpbuf[1]tmpbuf[2]tmpbuf[3])?;
???????
}
}
////////////顯示部分
void?display(char?x1char?x2char?x3char?x4)
{
????SMG4=0;
????SMG1=1;
????P0=~tab[x1];
????delay2(3);//控制第一位數碼管的輸出
????SMG1=0;
????SMG2=1;
????P0=~tab[x2];
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2013-12-06?23:52??DS18B20?數碼管?(-55~127度)\
?????目錄???????????0??2013-12-07?12:24??DS18B20?數碼管?(-55~127度)\DS18B20+數碼管?(-55~127度)\
?????文件???????26827??2010-03-10?15:07??DS18B20?數碼管?(-55~127度)\DS18B20+數碼管?(-55~127度)\18B20截圖.jpg
?????目錄???????????0??2013-12-07?12:23??DS18B20?數碼管?(-55~127度)\DS18B20+數碼管?(-55~127度)\18b20程序\
?????文件????????9876??2013-12-07?03:36??DS18B20?數碼管?(-55~127度)\DS18B20+數碼管?(-55~127度)\18b20程序\1.LST
?????文件????????9627??2013-12-07?03:36??DS18B20?數碼管?(-55~127度)\DS18B20+數碼管?(-55~127度)\18b20程序\1.OBJ
?????文件????????3296??2013-12-07?03:36??DS18B20?數碼管?(-55~127度)\DS18B20+數碼管?(-55~127度)\18b20程序\1.c
?????文件????????9022??2013-12-07?03:36??DS18B20?數碼管?(-55~127度)\DS18B20+數碼管?(-55~127度)\18b20程序\18B20
?????文件??????????23??2013-12-07?03:36??DS18B20?數碼管?(-55~127度)\DS18B20+數碼管?(-55~127度)\18b20程序\18B20.lnp
?????文件???????10710??2013-12-07?03:38??DS18B20?數碼管?(-55~127度)\DS18B20+數碼管?(-55~127度)\18b20程序\18B20.plg
?????文件??????148386??2013-12-07?02:41??DS18B20?數碼管?(-55~127度)\DS18B20+數碼管?(-55~127度)\18b20程序\18B20.uvgui.1
?????文件??????143093??2013-12-07?02:31??DS18B20?數碼管?(-55~127度)\DS18B20+數碼管?(-55~127度)\18b20程序\18B20.uvgui_1.bak
?????文件????????6867??2013-12-07?02:41??DS18B20?數碼管?(-55~127度)\DS18B20+數碼管?(-55~127度)\18b20程序\18B20.uvopt
?????文件???????13265??2013-12-07?02:41??DS18B20?數碼管?(-55~127度)\DS18B20+數碼管?(-55~127度)\18b20程序\18B20.uvproj
?????文件????????5910??2013-12-07?02:31??DS18B20?數碼管?(-55~127度)\DS18B20+數碼管?(-55~127度)\18b20程序\18B20_uvopt.bak
?????文件???????13249??2013-12-07?01:13??DS18B20?數碼管?(-55~127度)\DS18B20+數碼管?(-55~127度)\18b20程序\18B20_uvproj.bak
?????文件?????????900??2010-03-10?15:02??DS18B20?數碼管?(-55~127度)\DS18B20+數碼管?(-55~127度)\18b20程序\18b20.JPR
?????文件???????12640??2013-12-07?03:36??DS18B20?數碼管?(-55~127度)\DS18B20+數碼管?(-55~127度)\18b20程序\18b20.M51
?????文件????????3080??2013-12-07?03:36??DS18B20?數碼管?(-55~127度)\DS18B20+數碼管?(-55~127度)\18b20程序\18b20.hex
?????文件??????????57??2010-03-10?15:02??DS18B20?數碼管?(-55~127度)\DS18B20+數碼管?(-55~127度)\18b20程序\18b20.jsb
?????文件????????7362??2010-03-10?15:02??DS18B20?數碼管?(-55~127度)\DS18B20+數碼管?(-55~127度)\18b20程序\18b20asm.asm
?????文件????????7673??2010-03-10?13:38??DS18B20?數碼管?(-55~127度)\DS18B20+數碼管?(-55~127度)\18b20程序\18b20asm.bak
?????文件???????20066??2010-03-10?15:02??DS18B20?數碼管?(-55~127度)\DS18B20+數碼管?(-55~127度)\18b20程序\18b20asm.lst
?????文件????????2852??2010-03-10?15:02??DS18B20?數碼管?(-55~127度)\DS18B20+數碼管?(-55~127度)\18b20程序\18b20asm.obj
?????文件??????????19??2013-12-07?02:41??DS18B20?數碼管?(-55~127度)\DS18B20+數碼管?(-55~127度)\18b20程序\ExtDll.iex
?????文件??????????85??2010-03-10?15:02??DS18B20?數碼管?(-55~127度)\DS18B20+數碼管?(-55~127度)\18b20程序\jyobj.lin
?????文件??????????78??2010-03-10?15:02??DS18B20?數碼管?(-55~127度)\DS18B20+數碼管?(-55~127度)\18b20程序\jyprj.cog
?????文件??????108909??2013-12-07?12:24??DS18B20?數碼管?(-55~127度)\DS18B20+數碼管?(-55~127度)\DS18B20+數碼管(-55~127度).DSN
?????文件????????1515??2013-12-07?12:24??DS18B20?數碼管?(-55~127度)\DS18B20+數碼管?(-55~127度)\DS18B20+數碼管(-55~127度).PWI
?????文件????????1054??2010-03-10?15:05??DS18B20?數碼管?(-55~127度)\DS18B20+數碼管?(-55~127度)\DS18B20溫度傳感器實驗.PWI
?????文件????????1003??2010-03-10?15:07??DS18B20?數碼管?(-55~127度)\DS18B20+數碼管?(-55~127度)\DS18B20溫度數碼管.PWI
............此處省略4個文件信息
- 上一篇:fluentftp組件
- 下一篇:段頁式虛擬存儲管理
評論
共有 條評論