专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
51单片机
DS1302读数据时序的一些疑问
2019-07-16 03:12
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
51单片机
13566
10
1624
下面是DS1302读数据的子程序,数据手册上不是说在下降沿读取数据吗??可这儿的程序怎么看上去上上升沿读数据呀?? for(i=0;i<8;i++)
{ SCLK=0;
if(IO==1)
{
temp=temp|0x80;
}
temp=temp>>1;
SCLK=1;
_nop_();
敢问一下,是哪错了???
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
10条回答
911119qianhao
2019-07-16 17:16
哥,这是我写的全部程序,就是不知是哪错了,望指教#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit IO=P1^0;
sbit SCLK=P1^1;
sbit RST=P1^2;
uchar code duan[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uchar buf[6]={0x12,0x00,0x00,0x00,0x00,0x00};
uchar code wei[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
void delay1ms(uint z)
{
uint x;
uchar y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
uchar read(uchar add)
{
uchar temp=0,i=0;
RST=0;
SCLK=0;
RST=1;
for(i=0;i<8;i++)
{ SCLK=0;
IO=add&0x01;
_nop_();
add=add>>1;
SCLK=1;
}
for(i=0;i<8;i++)
{ SCLK=0;
if(IO==1)
{
temp=temp|0x80;
}
temp=temp>>1;
SCLK=1;
_nop_();
}
RST=0;
SCLK=1;
return temp;
}
void write(uchar add,uchar temp)
{
uchar i=0;
RST=0;
SCLK=0;
RST=1;
for(i=0;i<8;i++)
{
SCLK=0;
IO=add&0x01;
_nop_();
add=add>>1;
SCLK=1;
}
for(i=0;i<8;i++)
{ SCLK=0;
IO=temp&0x01;
_nop_();
temp=temp>>1;
SCLK=1;
}
SCLK=1;
RST=0;
}
void init()
{
RST=0;
SCLK=0;
RST=1;
write(0x8E,0x00); //写保护
write(0x80,buf[2]); //秒
write(0x82,buf[1]); //分
write(0x84,buf[0]); //时
}
void disp()
{
uchar j=0,i=0,hex=0;
for(i=0;i<7;i++)
{
buf
=read(0x85-2*j)/16;
buf[++i]=read(0x85-2*j)%16;
j++;
}
for(i=0;i<7;i++)
{
P2=wei
;
P0=duan[buf
];
delay1ms(3);
P0=0x00;
P2=0xff;
}
}
void main()
{
init();
while(1)
{
disp();
}
}
仿真
中出现的图,可就是在数码管上显示不出
QQ截图20121213170011.png
(7 KB, 下载次数: 0)
加载中...
查看其它10个回答
一周热门
更多
>
相关问题
【东软载波ESF0654 PDS开发板活动】开箱
1 个回答
东软载波ESF0654 PDS开发板外部中断
1 个回答
东软载波ESF0654 PDS开发板高级控制定时器AD16C4T
1 个回答
用串口调试助手为什么只能在hex模式接收发送而在文本模式不行
9 个回答
触摸芯片SC02B/SC04B在地砖灯的设计方案
1 个回答
相关文章
51单片机与蓝牙模块连接
0个评论
51单片机的硬件结构
0个评论
基于51单片机的无线遥控器制作
0个评论
51单片机 AD转换
0个评论
51单片机数码管递增显示
0个评论
如何实现对单片机寄存器的访问
0个评论
基于51单片机的指纹密码锁
0个评论
×
关闭
采纳回答
向帮助了您的知道网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
51单片机
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
×
付费偷看金额在0.1-10元之间
确定
×
关闭
您已邀请
0
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit IO=P1^0;
sbit SCLK=P1^1;
sbit RST=P1^2;
uchar code duan[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uchar buf[6]={0x12,0x00,0x00,0x00,0x00,0x00};
uchar code wei[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
void delay1ms(uint z)
{
uint x;
uchar y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
uchar read(uchar add)
{
uchar temp=0,i=0;
RST=0;
SCLK=0;
RST=1;
for(i=0;i<8;i++)
{ SCLK=0;
IO=add&0x01;
_nop_();
add=add>>1;
SCLK=1;
}
for(i=0;i<8;i++)
{ SCLK=0;
if(IO==1)
{
temp=temp|0x80;
}
temp=temp>>1;
SCLK=1;
_nop_();
}
RST=0;
SCLK=1;
return temp;
}
void write(uchar add,uchar temp)
{
uchar i=0;
RST=0;
SCLK=0;
RST=1;
for(i=0;i<8;i++)
{
SCLK=0;
IO=add&0x01;
_nop_();
add=add>>1;
SCLK=1;
}
for(i=0;i<8;i++)
{ SCLK=0;
IO=temp&0x01;
_nop_();
temp=temp>>1;
SCLK=1;
}
SCLK=1;
RST=0;
}
void init()
{
RST=0;
SCLK=0;
RST=1;
write(0x8E,0x00); //写保护
write(0x80,buf[2]); //秒
write(0x82,buf[1]); //分
write(0x84,buf[0]); //时
}
void disp()
{
uchar j=0,i=0,hex=0;
for(i=0;i<7;i++)
{
buf=read(0x85-2*j)/16;
buf[++i]=read(0x85-2*j)%16;
j++;
}
for(i=0;i<7;i++)
{
P2=wei;
P0=duan[buf];
delay1ms(3);
P0=0x00;
P2=0xff;
}
}
void main()
{
init();
while(1)
{
disp();
}
}
仿真中出现的图,可就是在数码管上显示不出
QQ截图20121213170011.png (7 KB, 下载次数: 0)
一周热门 更多>