ds1302时钟程序详解-ds1302程序流程图(C程序)

上传人:无*** 文档编号:33956697 上传时间:2021-10-19 格式:DOCX 页数:7 大小:97.09KB
收藏 版权申诉 举报 下载
ds1302时钟程序详解-ds1302程序流程图(C程序)_第1页
第1页 / 共7页
ds1302时钟程序详解-ds1302程序流程图(C程序)_第2页
第2页 / 共7页
ds1302时钟程序详解-ds1302程序流程图(C程序)_第3页
第3页 / 共7页
资源描述:

《ds1302时钟程序详解-ds1302程序流程图(C程序)》由会员分享,可在线阅读,更多相关《ds1302时钟程序详解-ds1302程序流程图(C程序)(7页珍藏版)》请在装配图网上搜索。

1、dsl302时钟程序详解-dsl302程序流程图(C程序)dsl302时钟程序详解,dsl302程序流程图(C程序)dsl302时钟程序详解DS1302的控制字如图2所示.控制字节的最高市效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作总元的地址;最低有效位(位0)如为0表示要进行写操作,为I表示进行读操作,控制字节总是从最低位开始输出.2.3 数据输入输出(DO)在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1M2,数据输入从低位即位0开 始。同样,在紧跟8位的控制指令字后

2、的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位九2.4 DS1302的寄存器DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器及其控制字见表U会1日历时间寄存器及X控制字自作命令字丁;性作武界“以价枪0?T一件内容6 S 4 J2 1 08011S1II00-59CH1USEC”:C犍85 H83110U 49SIOMISVIN明f修制84 H851101- 12400 ”312/24U 10 HRHR86H87113 72% W.J1(10 IODATEl5TK月有“舞MKH03 4!20U 0 I0M

3、UOXI1ISAHSHH01 -07II o Q 0IN8(: H8DH00-09IOYEARYEAK此外,DS1302还有年份寄存器、控制寄存器、充电寄存照、时钟突发寄存器及与RAM相关的寄存器 等。时钟突发寄存器可一次性顺序读写除充电寄存甥外的所有寄存器内容。DS1302与RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为COHFDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAV寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写FFH(读)。M 3A CPt1ds1302程序流程图3.2 DS13

4、02实时时间流程图4示出DS1302的实时时间流程。根据此流程框图,不难采集实时时间。下面结合流程图对DS1302的基本操作进行编程:frinrludr “liiirinsJi”乩 iy Ik = P3*3sbit I Jo = P3NMbit 51 -13*5sbit BIT7 = AC(77sbic Brro = Accrovoid inpulbyh*(unsigne 0: i-):循环8次,写入8位数据.;从低位到高位(ijo = BITO:将ACU0的值赋给时钟数据线I j;lk = 0Ik二I:在时钟线在上升沿写上1位数据ACC二ACCA1;将商1位数据移至ACU0 unsigned

5、 ehar(julpubyte(void)/8 位数据读出函数(unsigned char i;二1;启动数据传送for(i = 8: i 0: i-):读出8位数据.从低位到高位ACC = ACCA1;将前一下降沿读出的数据右移I位,从而该次读出的数放入ACC-7Lio = l;PI 口输入之前I1tj?lk = 1Ulk =0:时钟线下降沿读出1位数据RIT7 = tjo: can nol use Pl*7 =ljo for P7 not;a varierilretum(ACC)/delay 15( I) input by te(ucda)= 0tj9 = J1unsigned char

6、re J 302(unsigned char add)/读出 对应寄存器内容unsigned char ucda5t = 0Ijdk =0ij?i = Iij)putl)Yte(adutputl)yle()Ijsl =0rrtum( ucda) void $etl302(unsigned char * pdu )/设置时间IvQHgned clmr iunsigned cliur add =0x80h7jj02(0x8e.0x00);将控制寄存器值设为零,;ffl:高位WP = 0允许写for(i = 7; i 0:i-将七个时间初一写入对 ;应寄存器|wrJ302(add, * pda);写

7、对应时钟寄存器的值 曲+ add = 2: Iwrj 302 (Ox 84 0x80):写保护,防止干扰影响时 :间值Ivoid 302(unsigned char :urtitne )/读取 当前时间值unsigned rhar i. junsigned char add - 0x81 hlata unsigned char see for( i = 0; i 7: i + + ) curtimri i J = reJ302(ad(h;谈对应时钟寄 存器的值 se(* = eurtime ij = seeA4:将BCD码转化成对应十进制数j* =10ec = &erStOxOfsee+ =j

8、eurtimrf i | = se* add + = 2 I根据本人在调试中遇到的问题,特作如下说明: DS1302与微处理器进行数据交换时,首先由微处理 器向电路发送命令字节,命令字节最高位MSB(D7)必须为逻辑1,如果D7=0,则禁止写DS1302,即写保 护;D6=0,指定时钟数据,D6=l,指定RAM数据;D5D1指定输入或输出的特定寄存;最低位LS B(D0)为逻辑0,指定写操作(输入),D0=L指定读操作(输出)。 在DS1302的时钟日历或RAM进行 数据传送时,DS1302必须首先发送命令字节.若进行单字节传送,8位命令字节传送结束之后,在下2个 SCLK周期的上升沿输入数据

9、字节,或在下8个SCLK周期的下降沿输出数据字节。 DS1302与RAM 相关的寄存甥分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制 字为C0HFDH,其中奇数为读操作,偶数为写操作;再一类为突发方式下的RAM寄存器,在此方式下可一次性读、写所有的RAM的31个字节.要特别说明的是备用电源BE可以用电池或者超级电容器(0JF以上)。虽然DS1302在主电源掉电后的耗电很小,但是,如果要长时间保证时钟正常,最好选用小型充电电池.可以用老式电脑主板上的3.6V充电电池.如果断电时间较短(几小时或几天)时,就可以用漏电较小的普通电解电容器代替。100 pF就可以保证1小时的正常走时。DS1302在笫一次加电后,必须进行初始化操作。初始化后就可以按正常方法调整时间.

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!