/**************************************
--- STC MCU Limited -------------------
--- 宏晶科技 设计 2010-6-2 -----
--- Mobile: 13922805190 ---------------
--- Fax: 0755-82944243 ----------------
--- Tel: 0755-82948412 ----------------
--- Web: www.STCMCU.com ---------------
--- 演示STC 12TMCU控制DS1302 ----------
--- 工作频率: 12MHz -------------------
如果要在程序中使用或在文章中引用该程序
请在其中注明使用了宏晶科技的资料及程序
**************************************/
#include "REG51.H"
#include "INTRINS.H"
typedef unsigned char BYTE;
sbit SCLK = P1^0; //DS1302时钟口P1.0
sbit IO = P1^1; //DS1302数据口P1.1
sbit RST = P1^2; //DS1302片选口P1.2
//秒 分 时 日 月 星期 年
BYTE code init[] = {0x00, 0x00, 0x20, 0x01, 0x01, 0x05, 0x10};
BYTE data now[7];
void DS1302_Initial();
void DS1302_SetTime(BYTE *p);
void DS1302_GetTime(BYTE *p);
void main()
{
DS1302_Initial(); //初始化DS1302
DS1302_SetTime(init); //设置初始时间
DS1302_GetTime(now); //读取当前时间
while (1);
}
/**************************************
从DS1302读1字节数据
**************************************/
BYTE DS1302_ReadByte()
{
BYTE i;
BYTE dat = 0;
for (i=0; i<8; i++) //8位计数器
{
SCLK = 0; //时钟线拉低
_nop_(); //延时等待
_nop_();
dat >>= 1; //数据右移一位
if (IO) dat |= 0x80; //读取数据
SCLK = 1; //时钟线拉高
_nop_(); //?óê±μè′y
_nop_();
}
return dat;
}
/**************************************
向DS1302写1字节数据
**************************************/
void DS1302_WriteByte(BYTE dat)
{
char i;
for (i=0; i<8; i++) //8位计数器
{
SCLK = 0; //时钟线拉低
_nop_(); //延时等待
_nop_();
dat >>= 1; //移出数据
IO = CY; //送出到端口
SCLK = 1; //时钟线拉高
_nop_(); //延时等待
_nop_();
}
}
/**************************************
读DS1302某地址的的数据
**************************************/
BYTE DS1302_ReadData(BYTE addr)
{
BYTE dat;
RST = 0;
_nop_(); //延时等待
_nop_();
SCLK = 0;
_nop_(); //延时等待
_nop_();
RST = 1;
_nop_(); //延时等待
_nop_();
DS1302_WriteByte(addr); //写地址
dat = DS1302_ReadByte(); //读数据
SCLK = 1;
RST = 0;
return dat;
}
/**************************************
往DS1302的某个地址写入数据
**************************************/
void DS1302_WriteData(BYTE addr, BYTE dat)
{
RST = 0;
_nop_(); //延时等待
_nop_();
SCLK = 0;
_nop_(); //延时等待
_nop_();
RST = 1;
_nop_(); //延时等待
_nop_();
DS1302_WriteByte(addr); //写地址
DS1302_WriteByte(dat); //写数据
SCLK = 1;
RST = 0;
}
/**************************************
写入初始时间
**************************************/
void DS1302_SetTime(BYTE *p)
{
BYTE addr = 0x80;
BYTE n = 7;
DS1302_WriteData(0x8e, 0x00); //允许写操作
while (n--)
{
DS1302_WriteData(addr, *p++);
addr += 2;
}
DS1302_WriteData(0x8e, 0x80); //写保护
}
/**************************************
读取当前时间
**************************************/
void DS1302_GetTime(BYTE *p)
{
BYTE addr = 0x81;
BYTE n = 7;
while (n--)
{
*p++ = DS1302_ReadData(addr);
addr += 2;
}
}
/**************************************
初始化DS1302
**************************************/
void DS1302_Initial()
{
RST = 0;
SCLK = 0;
DS1302_WriteData(0x8e, 0x00); //允许写操作
DS1302_WriteData(0x80, 0x00); //时钟启动
DS1302_WriteData(0x90, 0xa6); //一个二极管+4K电阻充电
DS1302_WriteData(0x8e, 0x80); //写保护
}
没有合适的资源?快使用搜索试试~ 我知道了~
STC15F2K48S2单片机DS1302获取时间通过串口2发出去
共70个文件
bak:8个
lst:7个
obj:7个
需积分: 33 16 下载量 70 浏览量
2018-08-08
15:33:58
上传
评论 2
收藏 139KB RAR 举报
温馨提示
STC15F2K48S2单片机,DS1302获取当前时间,并且将时间通过串口2发出去
资源推荐
资源详情
资源评论
收起资源包目录
ds1302+uart2.rar (70个子文件)
ds1302+uart2
HC595.c 2KB
STC15Fxxxx.H 51KB
ds1302.h 597B
1T
C
DS1302_Opt.Bak 1KB
DS1302.lnp 44B
DS1302.C 4KB
DS1302_Uv2.Bak 2KB
DS1302.plg 170B
DS1302.hex 1KB
DS1302.Opt 1KB
DS1302 7KB
DS1302.M51 12KB
DS1302.LST 8KB
DS1302.OBJ 8KB
DS1302.Uv2 2KB
ASM
DS1302_Opt.Bak 1KB
DS1302.lnp 44B
DS1302_Uv2.Bak 2KB
DS1302.plg 172B
DS1302.hex 550B
DS1302.Opt 1KB
DS1302 1KB
DS1302.M51 5KB
DS1302.LST 12KB
DS1302.OBJ 1KB
DS1302.Uv2 2KB
DS1302.ASM 5KB
HC595.H 513B
12T
C
DS1302_Opt.Bak 856B
DS1302.lnp 44B
DS1302.C 4KB
DS1302_Uv2.Bak 2KB
DS1302.plg 170B
DS1302.hex 1KB
DS1302.Opt 843B
DS1302 7KB
DS1302.M51 11KB
DS1302.LST 8KB
DS1302.OBJ 8KB
DS1302.Uv2 2KB
ASM
DS1302_Opt.Bak 851B
DS1302.lnp 44B
DS1302_Uv2.Bak 2KB
DS1302.plg 172B
DS1302.hex 550B
DS1302.Opt 847B
DS1302 1KB
DS1302.M51 6KB
DS1302.LST 12KB
DS1302.OBJ 1KB
DS1302.Uv2 2KB
DS1302.ASM 5KB
main.c 3KB
ds1302.uvgui.user 71KB
ds1302.uvproj 14KB
Objects
ds1302.lnp 142B
ds1302.hex 3KB
main.obj 43KB
ds1302.obj 40KB
ds1302.build_log.htm 1KB
ds1302 118KB
HC595.obj 36KB
ds1302.uvgui.Administrator 70KB
ds1302.uvopt 5KB
ds1302.uvgui.star 70KB
ds1302.c 4KB
Listings
ds1302.lst 7KB
main.lst 6KB
ds1302.m51 21KB
HC595.lst 4KB
共 70 条
- 1
资源评论
薄情yi
- 粉丝: 2
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功