資源簡介
基于51單片機的多功能電子鐘,有日歷、校時、鬧鐘、溫度顯示功能含程序源代碼、proteus仿真文件、原理說明。

代碼片段和文件信息
#include?“Feiyun.h“?
uint?temp=270;???????
void?delay_us(uint?t) ?////延時函數
{
??for(;t>0;t--);
}????
void?reset(void) ?????????////DS18B20復位函數?
{
??uchar?state=1;
??while(state)
???{
????while(state)
?????{
???????DQ=1;
???_nop_();_nop_();
???????DQ=0;
???????delay_us(50);
???????DQ=1;
???????delay_us(6);
???????state=DQ;
?????}
????delay_us(45);
????state=~DQ;
???}
??DQ=1;
}
void?write_byte(uchar?val) //寫一個字節?
{
???uchar?i;
???for(i=8;i>0;i--)
???{
???????DQ=1;_nop_();_nop_();
???????DQ=0;_nop_();_nop_();_nop_();_nop_();_nop_();
???????DQ=val&0x01;
???????delay_us(6);
???????val=val/2;
???}
???DQ=1;
???_nop_();
} ??
uchar?read_byte(void)????///////讀一個字節
{
????uchar?i;
uchar?value=0;
for(i=8;i>0;i--)
????{
???? DQ=1;_nop_();_nop_();
???? value>>=1;
???? DQ=0;
???? _nop_();_nop_();_nop_();_nop_();
???? DQ=1;_nop_();_nop_();_nop_();_nop_();
???? if(DQ)value|=0x80;
???? delay_us(6);
????}
DQ=1;
return(value);
}
void?gettemp()
{
????uchar?ab;
uint?t; ?
reset();
write_byte(0xcc);
write_byte(0xbe);
a=read_byte(); ???//讀取高字節
b=read_byte(); ???//讀取低字節
reset();
write_byte(0xcc);
write_byte(0x44);
//處理讀取溫度t??
????t=b;
t<<=8;???????????//值左移8位???
t=t|a;???????????//合并高低位數值
if(t>0xfff) ?//判斷溫度是為正還是為負
? ??t=~t+1;??????//負值換算
? t=t*(0.625);????//溫度擴大10倍精確到1位小數
if((temp-t)<100||(t-temp)<100)
temp=t;
}
void?TempShow() ?///溫度讀取函數
{ ??
char?buf[4];
gettemp();
????buf[0]=temp%1000/100+0x30;??//十位數
????buf[1]=temp%100/10+0x30;????//個位數
buf[2]=‘.‘;
????buf[3]=temp%10+0x30;????????//小數位
pd(0x40);
? write_data(buf[0]);
write_data(buf[1]);
write_data(buf[2]);
write_data(buf[3]);
write_data(du);
write_data(‘C‘);
LcdStr(0x00“The?Temperature:“);
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????202953??2011-06-22?12:55??多功能電子鐘\代碼與仿真\51單片機.DSN
?????文件???????1183??2011-07-03?22:46??多功能電子鐘\代碼與仿真\51單片機.PWI
?????文件???????2590??2011-06-19?22:57??多功能電子鐘\代碼與仿真\com.LST
?????文件???????2435??2011-06-19?22:57??多功能電子鐘\代碼與仿真\com.OBJ
?????文件???????1874??2011-06-20?00:49??多功能電子鐘\代碼與仿真\ds18b20.c
?????文件????????489??2011-06-20?03:17??多功能電子鐘\代碼與仿真\DS18B20.h
?????文件???????4416??2011-06-20?10:41??多功能電子鐘\代碼與仿真\ds18b20.LST
?????文件???????8426??2011-06-20?10:41??多功能電子鐘\代碼與仿真\ds18b20.OBJ
?????文件????????137??2011-06-19?22:55??多功能電子鐘\代碼與仿真\Feiyun.c
?????文件????????648??2011-06-20?03:17??多功能電子鐘\代碼與仿真\Feiyun.h
?????文件????????981??2011-06-20?10:41??多功能電子鐘\代碼與仿真\Feiyun.LST
?????文件???????3513??2011-06-20?10:41??多功能電子鐘\代碼與仿真\Feiyun.OBJ
?????文件???????1098??2011-06-20?01:38??多功能電子鐘\代碼與仿真\key.c
?????文件????????292??2011-06-20?01:38??多功能電子鐘\代碼與仿真\Key.h
?????文件???????3104??2011-06-20?10:41??多功能電子鐘\代碼與仿真\key.LST
?????文件???????5903??2011-06-20?10:41??多功能電子鐘\代碼與仿真\key.OBJ
?????文件?????202958??2011-06-20?14:33??多功能電子鐘\代碼與仿真\Last?Loaded?51單片機.DBK
?????文件????????725??2011-06-20?00:04??多功能電子鐘\代碼與仿真\lcd1602.c
?????文件????????747??2011-06-20?00:04??多功能電子鐘\代碼與仿真\lcd1602.h
?????文件???????2512??2011-06-20?10:41??多功能電子鐘\代碼與仿真\lcd1602.LST
?????文件???????6406??2011-06-20?10:41??多功能電子鐘\代碼與仿真\lcd1602.OBJ
?????文件????????850??2011-06-20?10:39??多功能電子鐘\代碼與仿真\main.c
?????文件???????3149??2011-06-20?10:41??多功能電子鐘\代碼與仿真\main.LST
?????文件???????6822??2011-06-20?10:41??多功能電子鐘\代碼與仿真\main.OBJ
?????文件???????6376??2009-05-07?14:37??多功能電子鐘\代碼與仿真\STARTUP.A51
?????文件??????14056??2011-06-20?10:41??多功能電子鐘\代碼與仿真\STARTUP.LST
?????文件????????273??2011-06-20?10:41??多功能電子鐘\代碼與仿真\STARTUP.OBJ
?????文件???????5072??2011-06-20?10:24??多功能電子鐘\代碼與仿真\time.c
?????文件????????204??2011-06-20?10:24??多功能電子鐘\代碼與仿真\Time.h
?????文件??????13668??2011-06-20?10:41??多功能電子鐘\代碼與仿真\time.LST
............此處省略30個文件信息
評論
共有 條評論