欢迎来到天天文库
浏览记录
ID:41705379
大小:60.26 KB
页数:6页
时间:2019-08-30
《基于凌阳单片机的DS1302驱动程序》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、〃文件名:Drive.c〃功能描述:提供吋钟芯片DS1302的底层源码//IDE环境:凌阳iTnSPIDE2.0.0〃单片机:凌阳SPCE061A〃硬件连接:Drive屮硬件连接如://DS1302的片选线(/RST)接I0A15//DS1302的数据线(I/O)接I0A14//DS1302的时钟线(CLK)接I0A13//〃使用说明:木文件为凌阳SPCE061A上接DS1302的驱动程序//使用时不用改动函数的任何部分//只需改动下面的宏定义中的10口即可//〃作者:山东大学***xpstudio〃维护记录:2006.07.19文件创建
2、//2006.07.20调试成功#include#defineClearWDog(^((volatileunsignedchar*)0x7012))=1〃位操作宏定义,使用时只需修改以下宏定义即可#defineset_RST*P_IOA_Data
3、=0x8000//RST=1#defineclr.RST*P_lOA_Data&=0x7fff//RST=0#defineset_IO*P_IOA_Data
4、=0x4000//IO=1#defineclrJO*P_IOA_Data&二Oxbfff//IO=0#define
5、set_CLK*P_IOA_Data
6、=0x2000//CLK=1#defineclr_CLK*P_IOA_Data&二Oxdfff//CLK=0#defineDS1302..SECOND0x80#defineDS1302..MINUTE0x82#defineDS1302._HOUR0x84#defineDS1302__WEEK0x8A#defineDS1302._DAY0x86#defineDS1302..MONTH0x88#defineDS1302..YEAR0x8C〃读与写是不同的/••!£!
7、I•/I//于平存平寻平寻平存平寻平
8、寻平寻平寻平寻平寻平于平平平于于于wpc;II/<9、OxeOOO;*P_IOA_Attrib=*P_IOA_Attrib10、OxeOOO;*PJOA_Data=*P_IOA_Data&OxOfff;//IOA13IOA1411、IOA15输出0/******************************向DS1302写入1B数据************************名称:voidInputByte(unsignedintdata)*功能:向DS1302写入IB的指令或数据(内部函数)*调用:无*输入:data*返回值:无*作者:山东大学***xpstudio*吋间:2006.07.20•上•上•上•丄“«£«•丄■«£«•丄“«£«•丄“•丄“•丄■•丄“•丄■•丄■■卜•丄■•丄■•卜•丄■•丄■•卜•丄■■卜•丄■•丄■•丄■•丄■•丄■•丄■•12、丄■•丄■•丄■/^7^#T>#T%#T%#T%#T%#T%#7^fvoidInputByte(unsignedintdata){〃向DS1302写入IB数据(内部函数)inti;unsignedinttemp;temp=data;//ACCfor(i=8;i>0;i-){clr_CLK;//CLK=0if(temp&1)set_IO;//IO=ACCOelseclr_10;temp»=l;set_CLK;//CLK=l)//forClearWDog;•丄■•丄■•丄■•丄■•丄■•丄■•丄■•丄■•上•上•上•上彳・*13、4彳・*4彳・*4彳・^7^彳・*4/*****************************从DS1302读出1B数据*名称:OutputByte()*功能:从DS1302读出1B数据(内部函数)*调用:无*输入:无*返回值:1B数据*作者:山东大学***xpstudio*时间:2006.07.20f■卜rj>*1**1*r14、^ry*rj^r15、^rj*rj*rj*rj*rj*rj*rj*rj*rj^rj^r16、^r17、^r18、^funsignedintOutputByte(){〃从DS1302读出IB数据(内部函数)inti;unsigne19、dinttemp=O;〃设I0A14为输入口*P_IOA_Dir&=0xbfff;*P_IOA_Attrib&二Oxbfff;for(i=8;i>0;i-){clr_CLK;//CLK=Ote
9、OxeOOO;*P_IOA_Attrib=*P_IOA_Attrib
10、OxeOOO;*PJOA_Data=*P_IOA_Data&OxOfff;//IOA13IOA14
11、IOA15输出0/******************************向DS1302写入1B数据************************名称:voidInputByte(unsignedintdata)*功能:向DS1302写入IB的指令或数据(内部函数)*调用:无*输入:data*返回值:无*作者:山东大学***xpstudio*吋间:2006.07.20•上•上•上•丄“«£«•丄■«£«•丄“«£«•丄“•丄“•丄■•丄“•丄■•丄■■卜•丄■•丄■•卜•丄■•丄■•卜•丄■■卜•丄■•丄■•丄■•丄■•丄■•丄■•
12、丄■•丄■•丄■/^7^#T>#T%#T%#T%#T%#T%#7^fvoidInputByte(unsignedintdata){〃向DS1302写入IB数据(内部函数)inti;unsignedinttemp;temp=data;//ACCfor(i=8;i>0;i-){clr_CLK;//CLK=0if(temp&1)set_IO;//IO=ACCOelseclr_10;temp»=l;set_CLK;//CLK=l)//forClearWDog;•丄■•丄■•丄■•丄■•丄■•丄■•丄■•丄■•上•上•上•上彳・*
13、4彳・*4彳・*4彳・^7^彳・*4/*****************************从DS1302读出1B数据*名称:OutputByte()*功能:从DS1302读出1B数据(内部函数)*调用:无*输入:无*返回值:1B数据*作者:山东大学***xpstudio*时间:2006.07.20f■卜rj>*1**1*r
14、^ry*rj^r
15、^rj*rj*rj*rj*rj*rj*rj*rj*rj^rj^r
16、^r
17、^r
18、^funsignedintOutputByte(){〃从DS1302读出IB数据(内部函数)inti;unsigne
19、dinttemp=O;〃设I0A14为输入口*P_IOA_Dir&=0xbfff;*P_IOA_Attrib&二Oxbfff;for(i=8;i>0;i-){clr_CLK;//CLK=Ote
此文档下载收益归作者所有