找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

关于DS1302的使用问题,大家帮帮忙啊!!!!

[复制链接]
admin 发表于 2012-9-2 20:45:03 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
下面是我的程序,我现在手上还没有足够的器材,我想先学会使用DS1302,所以,没有显示相关的部分

我就是想看看自己对DS1302的操作是否正确~~~
在定义了对DS1302的读写操作之后,我在MAIN中只是进行了把0x0a写进DS1302的秒寄存器,然后马上再读出秒寄存器~~
然后我是写了个闪烁的小循环,我的本意是,读出来的是10(因为我写进的是0x0a),然后灯应该闪烁10下就停了,结果却是闪烁了很多~~~请高手帮忙看看啊~~~



#include <reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
#define nop() _nop_()

//Define some port for DS1302 use
sbit DS1302_CLK=P1^4;
sbit DS1302_IO=P1^5;
sbit DS1302_RST=P2^2;
sbit ACC0=ACC^0; //因为ACC寄存器可以进行位寻址,所以为后面的一些需要取到位值的时候使用,一般是在对DS1302写入数据时用到,因为从低位写入,所以用到该位
sbit ACC7=ACC^7; //因为ACC寄存器可以进行位寻址,所以为后面的一些需要取到位值的时候使用,一般是在对DS1302读出数据时用到,因为从低位读入,所以用到该位
sbit DS1302_EN_PORT=P3^7;
sbit TEST_LIGHT=P0^0;
sbit TEST_LIGHT1=P0^1;

//写入一个字节到DS1302
void Write_DS1302(uchar z)
{
uchar i;
ACC=z;

DS1302_RST=1;
DS1302_CLK=0;
for(i=8;i>0;i--)
{
DS1302_IO=ACC0;
ACC=ACC>>1;
DS1302_CLK=1;
DS1302_CLK=0;
}
DS1302_RST=0;
DS1302_CLK=0;
}

//从DS1302读出一个字节
uchar Read_DS1302(void)
{
// ACC=0; //initialize
unsigned char t;
DS1302_RST=1;
DS1302_CLK=1;
for(t=8;t>0;t--)
{
ACC7=DS1302_IO;
ACC=ACC>>1;
DS1302_CLK=0;
DS1302_CLK=1;
}
DS1302_RST=0;
DS1302_CLK=0;
return (ACC); //别人的例子是return (AAC),先这样写,看看可不可以
}



//对DS1302指定地址写入指定数据
void Write_Appoint_DS1302(uchar address,uchar content)
{
Write_DS1302(address);
Write_DS1302(content);
}


//指定地址读出DS1302内容
uchar Read_Appoint_DS1302(uchar address)
{
uchar rt;
Write_DS1302(address);
rt=Read_DS1302();
return (rt);
}


void main()
{
while(1)
{
uchar ad=0;
uint i;
TEST_LIGHT=0;

DS1302_EN_PORT=1;
Write_Appoint_DS1302(0x80,0x0a);

ad=Read_Appoint_DS1302(0x81);

//ad=10;
while(ad--)
{
for(i=20000;i>0;i--)
{
TEST_LIGHT1=0;
}
for(i=20000;i>0;i--)
{
TEST_LIGHT1=1;
}


}

while(1)
{}


}

}
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-11-29 10:40 , Processed in 0.056393 second(s), 11 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表