📄 ds1302.h
字号:
#define uchar unsigned char
#define uint unsigned int
#define XF_MCU 0 //定义用哪一种单片机,1时,用于PIC; 0时,用于MSP430;
#if XF_MCU==0
//文件名:DS1302.h
#include<msp430x14x.h>
#define DS13_CLK BIT0
#define DS13_IO BIT1
#define DS13_RST BIT2
#define DS13_DIR P6DIR
#define DS13_OUT P6OUT
#define DS13_IN P6IN
#define DS13_CLK_H DS13_OUT|=DS13_CLK //*实时时钟-时钟线引脚 */
#define DS13_CLK_L DS13_OUT&=~DS13_CLK //*实时时钟-时钟线引脚 */
#define DS13_IO_H DS13_OUT|=DS13_IO //*实时时钟-数据线输出H */
#define DS13_IO_L DS13_OUT&=~DS13_IO //*实时时钟-数据线输出L */
#define DS13_IO_DA DS13_IN&DS13_IO //实时时钟-数据输入
#define DS_RST_H DS13_OUT|=DS13_RST //*实时时钟-复位线引脚 */
#define DS_RST_L DS13_OUT&=~DS13_RST //*实时时钟-复位线引脚 */
#define DS13_IO_IN DS13_DIR&=~DS13_IO //定义数据线方向为入;DS13_IO_IN=0
#define DS13_IO_OUT DS13_DIR|=DS13_IO //定义数据线方向为出;DS13_IO_OUT=1
#else
//文件名:DS1302.h
#include<PIC.h>
extern uchar pa_out;
extern uchar pb_out;
extern uchar pc_out;
extern uchar pd_out;
extern uchar pe_out;
#define DS13_TEMP pc_out
#define ds1302clk 0x01 //clk所属管脚位;
#define ds1302io 0x02 //io所属管脚位;
#define ds1302rst 0x04 //rst所属管脚位;
#define DS13_CLK_0 ~ds1302clk
#define DS13_CLK_1 ds1302clk
#define DS13_IO_0 ~ds1302io
#define DS13_IO_1 ds1302io
#define DS13_RST_0 ~ds1302rst
#define DS13_RST_1 ds1302rst
#define DS13_DIR TRISC
#define DS13_OUT PORTC
#define DS13_CLK_H DS13_OUT=(DS13_TEMP|=DS13_CLK_1) //*实时时钟-时钟线引脚 */
#define DS13_CLK_L DS13_OUT=(DS13_TEMP&=DS13_CLK_0) //*实时时钟-时钟线引脚 */
#define DS13_IO_H DS13_OUT=(DS13_TEMP|=DS13_IO_1) //*实时时钟-数据线输出H */
#define DS13_IO_L DS13_OUT=(DS13_TEMP&=DS13_IO_0) //*实时时钟-数据线输出L */
#define DS13_IO_DA DS13_OUT&DS13_IO_1 //实时时钟-数据输入(判断该脚是否为高电平)
//(if(DS13_IO_DA))
#define DS_RST_H DS13_OUT=(DS13_TEMP|=DS13_RST_1) //*实时时钟-复位线引脚 */
#define DS_RST_L DS13_OUT=(DS13_TEMP&=DS13_RST_0) //*实时时钟-复位线引脚 */
#define DS13_IO_IN DS13_DIR|=DS13_IO_1 //定义数据线方向为入;DS13_IO_IN=0
#define DS13_IO_OUT DS13_DIR&=DS13_IO_0 //定义数据线方向为出;DS13_IO_OUT=1
#define DS13_TRIS DS13_DIR&=0Xf8; //定义三根输出线;0b11111000
#endif
extern uchar ds_emp[7]; //时钟数组寄存器;
//....................DS1302.C...............
void w_byte(uchar dat); //往DS1302写入1Byte数据 (内部函数)
uchar r_byte(void); //从DS1302读取1Byte数据 (内部函数)
void write_byte(uchar addr, uchar dat); //指定地址往DS1302写入1Byte数据 (内部函数)
uchar read_byte(uchar addr); //指定地址往DS1302读1Byte数据 (内部函数)
void write_ds1302(uchar *p); // 设置ds1302日期和时间
void read_ds1302(uchar *p); //读ds1302当前日期和时间
void DS1302_INIT(void); //DS1302初始化
void DS1302_DATA(void); //设置1302日期;
//....................DS1302.C...............
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -