资源简介
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个文件信息
相关资源
- 4*4矩阵键盘+1602显示的proteus仿真
- 用gtk开发的电子时钟
- 单片机课程设计—电子时钟Proteus
- DHT11程序液晶1602显示湿度和温度
- 六位数字时钟原理图
- 简单的时针程序代码显示当前时间及
- 多功能数字时钟FPGA 实现含代码.zip
- FPGA驱动LCD1602完整工程
- 万年历加整点报时
- LCD1602 PCB封装库
- VC课程设计-指针式时钟
- 基于89C51的等精度频率计LCD1602显示基
- 51单片机pwm波,lcd1602,l298n带prtues仿真
- 单片机电子时钟课程设计含源代码和
- 单片机电子时钟设计
- 单片机 电子时钟 汇编语言
- 万年历+温度+12864LCD时钟
- 基于51单片机的多功能电子时钟汇编
- 基于STC12C5A的DHT11液晶1602显示程序
- VH语言多功能数字时钟
- stm32f4 时钟配置工具
- SHt11与1602应用源代码
- 51单片机用温度传感器控制直流电机转
- Qt实现动态时钟 翻转 滑动 翻页
- 毕业设计__基于51单片机的公交车自动
- 1602LCD显示仿手机键盘按键字符
- STM32F4读写SD2405实时时钟程序
- S3C2440资料3时钟控制器,电源
- 8253和8259来实现的简单的时钟硬件中断
- 51单片机数码管时钟
评论
共有 条评论