手把手教你学单片机-016

上传人:wm****3 文档编号:51705448 上传时间:2018-08-16 格式:PPT 页数:17 大小:997KB
返回 下载 相关 举报
手把手教你学单片机-016_第1页
第1页 / 共17页
手把手教你学单片机-016_第2页
第2页 / 共17页
手把手教你学单片机-016_第3页
第3页 / 共17页
手把手教你学单片机-016_第4页
第4页 / 共17页
手把手教你学单片机-016_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《手把手教你学单片机-016》由会员分享,可在线阅读,更多相关《手把手教你学单片机-016(17页珍藏版)》请在金锄头文库上搜索。

1、手把手教你学单片机-51基础(C语言)金沙滩工作室 http:/www.kingst.org 作者:小宋老师n第十六课:n DS1302实时 时钟学习BCD码介绍n用4位二进制数来表示1位十进制数中的 09这10个数码,简称BCD码,即BCD 代码。n12 0001 0010 45ntmp = timedatai / 10; tmp = 4ntimedatai = timedatai % 10; = 5ntimedatai = timedatai + tmp*16;n 69 0100 0101英文手册阅读n对DS1302的操作包括读、写两个部分,我们根据程序来介绍芯 片操作。从上图看出,无论我

2、们是读、还是写,数据都是以1个 字节(8bit)为单位的,所以在程序的最底层我问要先写出字节 的读写程序:nvoid write_ds1302_byte(uint8 dat) nnuint8 i;nSCK = 0;nfor (i=0;i= 1;nSCK = 0;nnnuint8 read_ds1302_byte(void) nnuint8 i, dat=0;n nfor (i=0;i= 1;nif (SDA)ndat |= 0x80;nSCK = 1;nSCK = 0;nnreturn dat;nn在每次发起数据传输之前,要先复位DS1302:nvoid reset_ds1302(void)n

3、nRST = 0;nSCK = 0;nRST = 1;nn由于上电之后WP的状态并不确定,所以我们每次写 操作时都要打开写保护。写保护程序:n/*n * 清除写保护n*/nvoid clear_ds1302_WP(void) nnreset_ds1302();nRST = 1;nwrite_ds1302_byte(0x8E);nwrite_ds1302_byte(0);nSDA = 0;nRST = 0;nn/*n * 设置写保护n*/nvoid set_ds1302_WP(void) nnreset_ds1302();nRST = 1;nwrite_ds1302_byte(0x8E);nwr

4、ite_ds1302_byte(0x80);nSDA = 0;nRST = 0;nn我们每次的读写时间,时间上是对DS1302的相应地 址进行操作,图中列出了各个信息的读写地址,为了 方便对地址操作,我们封装了以下两个函数:n/*n * 写入DS1302n*/nvoid write_ds1302(uint8 addr, uint8 dat) nnreset_ds1302();nRST = 1;nwrite_ds1302_byte(addr);nwrite_ds1302_byte(dat);nSDA = 0;nRST = 0;nn/*n * 读出DS1302数据n*/nuint8 read_ds1302(uint8 addr)nnuint8 temp=0;nreset_ds1302();nRST = 1;nwrite_ds1302_byte(addr);ntemp = read_ds1302_byte();nSDA = 0;nRST = 0;nreturn (temp);n作业n熟悉1302的资料,尝试阅读英文手册。n尝试使用数码管或者1602液晶,将始终显示 出来。

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

当前位置:首页 > 生活休闲 > 社会民生

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