SPI驱动与DS1302(6页).doc
《SPI驱动与DS1302(6页).doc》由会员分享,可在线阅读,更多相关《SPI驱动与DS1302(6页).doc(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-SPI驱动与DS1302-第 6 页SPI驱动与DS1302#includeds1302.huchar code READ_RTC_ADDR7 = 0x81, 0x83, 0x85, 0x87, 0x89, 0x8b, 0x8d; uchar code WRITE_RTC_ADDR7 = 0x80, 0x82, 0x84, 0x86, 0x88, 0x8a, 0x8c;/-DS1302时钟初始化2016年1月1日星期二00点00分00秒。-/-存储顺序是秒分时日月周年,存储格式是用BCD码-/uchar TIME7 = 0, 0, 0x00, 0x01, 0x01, 0x02, 0x16;v
2、oid Ds1302Write(uchar addr, uchar dat)uchar n;RST = 0;_nop_();SCLK = 0;/SCLK置低电平。_nop_();RST = 1; /RST(CE)置高电平。_nop_();for (n=0; n= 1;SCLK = 1;/数据在上升沿时,DS1302读取数据_nop_();SCLK = 0;_nop_();for (n=0; n= 1;SCLK = 1;/数据在上升沿时,读取数据_nop_();SCLK = 0;_nop_();RST = 0;/传送数据结束_nop_();uchar Ds1302Read(uchar addr)
3、uchar n,dat,dat1;RST = 0;_nop_();SCLK = 0;/将SCLK置低电平。_nop_();RST = 1;/将RST(CE)置高电平。_nop_();for(n=0; n= 1;SCLK = 1;/数据在上升沿时,读取数据_nop_();SCLK = 0;/下降沿时,放置数据_nop_();_nop_();for(n=0; n1) | (dat17);/把dat1的最高位与dat 相或 即保留dat1 的最高位 SCLK = 1;/把dat1的数据付给dat _nop_();SCLK = 0;/DS1302下降沿时,放置数据_nop_();RST = 0;_no
4、p_();/以下为DS1302复位的稳定时间,必须的。SCLK = 1;_nop_();DSIO = 0;_nop_();DSIO = 1;_nop_();return dat;void Ds1302Init()uchar n;Ds1302Write(0x8E,0X00); /地址+数据 /禁止写保护,就是关闭写保护功能for (n=0; n7; n+) /写入7个字节的时钟信号:分秒时日月周年Ds1302Write(WRITE_RTC_ADDRn,TIMEn);Ds1302Write(0x8E,0x80); void Ds1302ReadTime()uchar n;for (n=0; n7;
5、 n+ )/读取7个字节的时钟信号:分秒时日月周年TIMEn = Ds1302Read(READ_RTC_ADDRn);#ifndef _DS1302_H_#define _DS1302_H_#include#include#ifndef uchar#define uchar unsigned char#endif#ifndef uint #define uint unsigned int#endif/-定义ds1302使用的IO口-/sbit DSIO=P34;sbit RST=P35;sbit SCLK=P36;/-定义全局函数-/void Ds1302Write(uchar addr,
6、uchar dat);uchar Ds1302Read(uchar addr);void Ds1302Init();void Ds1302ReadTime();/-加入全局变量-/extern uchar TIME7;#endif#includelcd.hvoid Lcd1602_Delay1ms(uint c) /延时 uchar a,b;for (; c0; c-) for (b=199;b0;b-) for(a=1;a0;a-);#ifndef LCD1602_4PINS /当没有定义这个LCD1602_4PINS时void LcdWriteCom(uchar com) /写入命令LCD
7、1602_E = 0; /使能LCD1602_RS = 0; /选择发送命令LCD1602_RW = 0; /选择写入LCD1602_DATAPINS = com; /放入命令Lcd1602_Delay1ms(1); /等待数据稳定LCD1602_E = 1; /写入时序Lcd1602_Delay1ms(5); /保持时间LCD1602_E = 0;#else void LcdWriteCom(uchar com) /写入命令LCD1602_E = 0; /使能清零LCD1602_RS = 0; /选择写入命令LCD1602_RW = 0; /选择写入LCD1602_DATAPINS = co
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SPI 驱动 DS1302
限制150内