• 大小: 338KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-10
  • 语言: 其他
  • 标签: 1602  DS1302  时钟  DS18B20  

资源简介

1602+DS1302时钟 DS18B20 正负温度显示 定时功能(未最终完成) 压缩包内容 程序 proteus仿真 protel原理图及pcb(为飞万用板打的草稿,本来是闲来无事做来定时浇花用的)

资源截图

代码片段和文件信息

/*-------------------------------------------------------------------------------
DS1302万年历(年月日+星期+时间)
+DS18B20温度显示(两位小数带负温度)
2009/8/29 沨
--------------------------------------------------------------------------------*/

#include 
#include 
#include “LCD1602.h“
//#include “DS1302.h“

#define uint unsigned int
#define uchar unsigned char

sbit  DS1302_CLK = P1^5;              //实时时钟时钟线引脚 
sbit  DS1302_IO  = P1^6;              //实时时钟数据线引脚 
sbit  DS1302_RST = P1^7;              //实时时钟复位线引脚
sbit  ACC0 = ACC^0;
sbit  ACC7 = ACC^7;
sbit Set = P3^2;       //模式切换键
sbit out = P3^3;       //立刻跳出调整模式按钮
sbit Down= P3^4;      //减法按钮
sbit Up  = P3^5;        //加法按钮

sbit moto= P3^6;       //水泵
sbit DQ  = P1^4;        //温度传送数据IO口

char hide_sechide_minhide_hourhide_dayhide_weekhide_monthhide_year;  //秒分时到日月年位闪的计数
char donecounttempflagup_flagdown_flagmoto_flag;
uint temp_value=0temp_max=0;temp_min=0;      //温度值
uchar TempBuffer[8]week_value[2];

void show_time();   //液晶显示程序

/***********DS1302时钟部分子程序******************/
typedef struct __SYSTEMTIME__
{
unsigned char Second;
unsigned char Minute;
unsigned char Hour;
unsigned char Week;
unsigned char Day;
unsigned char Month;
unsigned char Year;
unsigned char DateString[11];
unsigned char TimeString[9];
}SYSTEMTIME; //定义的时间类型
SYSTEMTIME CurrentTime;


#define AM(X) X
#define PM(X) (X+12)               // 转成24小时制
#define DS1302_SECOND 0x80          //时钟芯片的寄存器位置存放时间
#define DS1302_MINUTE 0x82
#define DS1302_HOUR 0x84 
#define DS1302_WEEK 0x8A
#define DS1302_DAY 0x86
#define DS1302_MONTH 0x88
#define DS1302_YEAR 0x8C 

void DS1302InputByte(unsigned char d)  //实时时钟写入一字节(内部函数)

    unsigned char i;
    ACC = d;
    for(i=8; i>0; i--)
    {
        DS1302_IO = ACC0;            //相当于汇编中的 RRC
        DS1302_CLK = 1;
        DS1302_CLK = 0;
        ACC = ACC >> 1; 
    } 
}

unsigned char DS1302OutputByte(void)  //实时时钟读取一字节(内部函数)

    unsigned char i;
    for(i=8; i>0; i--)
    {
        ACC = ACC >>1;          //相当于汇编中的 RRC 
        ACC7 = DS1302_IO;
        DS1302_CLK = 1;
        DS1302_CLK = 0;
    } 
    return(ACC); 
}

void Write1302(unsigned char ucAddr unsigned char ucDa) //ucAddr: DS1302地址 ucData: 要写的数据
{
    DS1302_RST = 0;
    DS1302_CLK = 0;
    DS1302_RST = 1;
    DS1302InputByte(ucAddr);        // 地址,命令 
    DS1302InputByte(ucDa);        // 写1Byte数据
    DS1302_CLK = 1;
    DS1302_RST = 0;


unsigned char Read1302(unsigned char ucAddr) //读取DS1302某地址的数据
{
    unsigned char ucData;
    DS1302_RST = 0;
    DS1302_CLK = 0;
    DS1302_RST = 1;
    DS1302InputByte(ucAddr|0x01);        // 地址,命令 
    ucData = DS1302OutputByte();         // 读1Byte数据
    DS1302_CLK = 1;
    DS1302_RST = 0;
    return(ucData);
}



void DS1302_GetTime(SYSTEMTIME *Time)  //获取时钟芯片的时钟数据到自定义的结构型数组
{
unsigned char ReadValue;
ReadValue = Read1302(DS1302_SECOND)

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     目录          0  2010-01-28 20:34  1602+DS1302时钟+DS18B20

     文件     263602  2009-04-15 20:08  1602+DS1302时钟+DS18B20\仿真图.jpg

     文件       1507  2010-06-12 20:14  1602+DS1302时钟+DS18B20\DS1302.PWI

     目录          0  2010-01-28 20:34  1602+DS1302时钟+DS18B20\Keil

     文件      48903  2010-01-31 12:45  1602+DS1302时钟+DS18B20\Keil\DS1302.OBJ

     文件       5830  2007-07-21 21:23  1602+DS1302时钟+DS18B20\Keil\DS1302.h

     文件      12886  2010-01-31 12:45  1602+DS1302时钟+DS18B20\Keil\DS1302.hex

     文件         44  2010-01-31 12:45  1602+DS1302时钟+DS18B20\Keil\DS1302.lnp

     文件      53984  2010-01-31 12:45  1602+DS1302时钟+DS18B20\Keil\DS1302.M51

     文件        195  2010-04-07 19:53  1602+DS1302时钟+DS18B20\Keil\DS1302.plg

    ..A.SH.        10  2006-12-17 08:33  1602+DS1302时钟+DS18B20\Keil\_desktop.ini

     文件       1959  2004-07-25 09:20  1602+DS1302时钟+DS18B20\Keil\DS1302_Uv2.Bak

     文件       2078  2007-09-12 14:30  1602+DS1302时钟+DS18B20\Keil\DS1302.Uv2

     文件       3771  2005-09-18 23:23  1602+DS1302时钟+DS18B20\Keil\LCD1602-8.h

     文件       5029  2009-08-29 08:47  1602+DS1302时钟+DS18B20\Keil\LCD1602.h

     文件       4068  2009-03-23 23:23  1602+DS1302时钟+DS18B20\Keil\24c1024.h

     文件       5344  2009-05-04 18:43  1602+DS1302时钟+DS18B20\Keil\SoundPlay.h

     文件      21675  2010-01-31 12:45  1602+DS1302时钟+DS18B20\Keil\DS1302.c

     文件      45486  2010-01-31 12:45  1602+DS1302时钟+DS18B20\Keil\DS1302.LST

     文件      40616  2010-01-31 12:45  1602+DS1302时钟+DS18B20\Keil\DS1302

    .......      1648  2010-01-31 16:02  1602+DS1302时钟+DS18B20\Keil\DS1302_Opt.Bak

     文件       1652  2010-04-07 19:53  1602+DS1302时钟+DS18B20\Keil\DS1302.Opt

     文件       3561  2010-01-28 22:01  1602+DS1302时钟+DS18B20\Keil\STC51F.H

     文件     169705  2010-01-29 17:15  1602+DS1302时钟+DS18B20\Last Loaded DS1302.DBK

     文件     169697  2010-04-07 19:51  1602+DS1302时钟+DS18B20\DS1302.DSN

     目录          0  2010-06-12 20:16  1602+DS1302时钟+DS18B20\PCB

     文件      28404  2010-05-16 20:35  1602+DS1302时钟+DS18B20\PCB\定时浇花.PrjPCB

     文件     183808  2010-01-31 15:59  1602+DS1302时钟+DS18B20\PCB\浇花.SchDoc

     文件      67584  2010-01-31 15:59  1602+DS1302时钟+DS18B20\PCB\浇花.PcbLib

     文件     183808  2010-05-16 17:54  1602+DS1302时钟+DS18B20\PCB\浇花.PcbDoc

............此处省略3个文件信息

评论

共有 条评论