DS1302初始化

上传人:鲁** 文档编号:503903691 上传时间:2023-06-25 格式:DOC 页数:14 大小:24.50KB
返回 下载 相关 举报
DS1302初始化_第1页
第1页 / 共14页
DS1302初始化_第2页
第2页 / 共14页
DS1302初始化_第3页
第3页 / 共14页
DS1302初始化_第4页
第4页 / 共14页
DS1302初始化_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《DS1302初始化》由会员分享,可在线阅读,更多相关《DS1302初始化(14页珍藏版)》请在金锄头文库上搜索。

1、#include #define uint unsigned int#define uchar unsigned charsbit RS=P35;/数据/命令选择线sbit EL=P36;/使能信号线sbit ls164_clk=P11;/控制时钟sbit ls164_dat=P12;/数据输入sbit ds1302_clk=P15;/脉冲线sbit ds1302_io=P16;/数据线sbit ds1302_rst=P17;/复位控制线uchar kk=0,1,2,3,4,5,6,7,8,9;uchar y1,y2;/-void delay1(uint z)/延时函数uint x,y;for

2、 (x=z;x0;x-) for(y=0;y100;y+);void ls164_in(uchar dat )/74ls164控制输入uchar i,a;a=dat;for(i=0;i8;i+)if(a&0x80)ls164_dat=1;ls164_clk=1;ls164_clk=0;elsels164_dat=0;ls164_clk=1;ls164_clk=0;a=a0;x-)for(y=4;y0;y-);uchar ds1302_read()/读出数据uchar i,b=0;/delay(1);ds1302_clk=0;for(i=0;i8;i+)if(ds1302_io=1)b=b|0x

3、80;/先读低位elseb=b|0x00;ds1302_clk=1;ds1302_clk=0; if (i1; /ds1302_rst=0;return(b);void ds1302_write(uchar com)uchar i,a;a=com;ds1302_clk=0;for(i=0;i1; /ds1302_rst=0;uchar ds1302_read_baye(uchar adrr)uchar aa;ds1302_rst=0;ds1302_clk=0;ds1302_rst=1;ds1302_write(adrr);/写入地址ds1302_io=0;aa=ds1302_read();ds

4、1302_clk=1;ds1302_rst=0;return (aa);uchar ds1302_write_baye(uchar adrr,dat)ds1302_rst=0;ds1302_clk=0;ds1302_rst=1;ds1302_write(adrr);/写入地址/ds1302_io=1;ds1302_write(dat);ds1302_clk=1;ds1302_rst=0;uchar go10to16(uchar u)/10进制转换为16进制uchar a,b,c;if (u0&b10)y1=kk0;y2=kkb;elsey1=kkb/10;y2=kkb%10;/*-此函数在第一

5、次用到DS1302时才用,初此化后,后来就不用初始化了,除非你想再一次设定DS1302才用,注意填写10位与个位所放旳位置,如我要设27号,应为:0010 011110位放在这 个位放在这而不是0x1B 0001 1011-*/void ds1302int(uchar year,moon,date,hour,mini,sen)/当DS1302第一次使用时要进行设置ds1302_rst=0;ds1302_clk=0;ds1302_rst=1;ds1302_write(0x8e);ds1302_write(0x00);ds1302_rst=0;ds1302_clk=1;ds1302_write_b

6、aye(0x8c,year);/设置年为ds1302_write_baye(0x88,moon);/设置月为3月ds1302_write_baye(0x86,date);/设置日为27号ds1302_write_baye(0x84,hour);/设置时9时ds1302_write_baye(0x82,mini);/设置分为5分ds1302_write_baye(0x80,sen);/设置秒为00秒ds1302_rst=0;ds1302_clk=0;ds1302_rst=1;ds1302_write(0x8e);ds1302_write(0x80);void main()delay1(20);i

7、nnit_1602();/1602初始化ds1302int(8,3,0x27,9,0x27,0);/DS1302初始化while(1)comand_1602(0x80);/在址00开始显示,第一行显示年-月-日cuanhuan(ds1302_read_baye(0x8d);indat_1602(y1);/显示年indat_1602(y2);indat_1602(-);cuanhuan(ds1302_read_baye(0x89);/读出月份indat_1602(y1);/显示月indat_1602(y2);indat_1602(-);cuanhuan(ds1302_read_baye(0x87

8、);/读出日indat_1602(y1);/显示日indat_1602(y2);comand_1602(0x80+0x40);/在第二行显示时:分:秒cuanhuan(ds1302_read_baye(0x85);/读出时indat_1602(y1);/显示时indat_1602(y2);indat_1602(:);cuanhuan(ds1302_read_baye(0x83);/读出分indat_1602(y1);/显示分indat_1602(y2);indat_1602(:);cuanhuan(ds1302_read_baye(0x81);/读出秒indat_1602(y1);/显示秒indat_1602(y2);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号