• 大小: 3.03MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-09-14
  • 语言: 其他
  • 标签: 单片机  电子钟  

资源简介

基于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个文件信息

评论

共有 条评论