资源简介
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个文件信息
相关资源
- STM32 led 时钟
- 利用DS1302和msp430进行闹钟和万年历的
- 单片机电子时钟 闹钟 日历
- [免费]msp430f149控制PS2键盘并用1602显示
- vhdl与lcd1602实现的多控制电子钟
- ADC0809数字电压表 LCD1602显示 汇编程序
- 单片机数字时钟包附电路图 源程序
- 软件方法测试RTX时钟
- (MFC) 时钟日期程序
- 图形学集成程序dda、中点算法、多边
- flash透明时钟140个
- STM32+1602液晶proteus仿真.zip
- ASUS华硕P9X79主板BIOS v1602官方版
- actel fpga外部输入时钟毛刺问题排查与
- STM32F407实时时钟_DS1302实时时钟模块和
- 基于STM32F103的实时时钟程序,采用D
- 51单片机_DS1302时钟芯片_共阴数码管
- Qt时钟Demo,在原来基础上添加了秒针
- DS1302时钟带可调时间显示
- DS1302+DS13B20+12864,万年历。农历
- LCD1602显示程序
- 循迹小车51程序(超声波 颜色识别 舵
- Lcd12864大时钟万年历 农历生肖温度
- 基于FFMPEG_SDL2_音视频播放_参考音频时
- Qt 日历可显示阴历生宵和时钟基于Q
- 1602液晶显示51串口接受的数据
- MSP430F5438 UCS 时钟操作实验
- 第四章 畅学多功能实验箱液晶资源详
- 51单片机7种常见时钟电路图
- AVR多功能实验箱DS1302时钟实验源码资
评论
共有 条评论