关于学习总线型外部资源(如1302时钟芯片)的问题,请大神们帮帮我!!!

2019-03-24 17:46发布

本人没有什么C语言的基础,凭着爱好自学的单片机,根据1302的时序图和自己的理解下了下面的程序,麻烦大神们帮我看看哪里有问题,我的问题出在哪里。学了快一周了,都还没有一点长进

/*****头文件*****/
#include <reg52.h>
/*****宏定义*****/
#define u8 unsigned char
#define u16 unsigned int
/*****延时函数*****/
void delay(u16 num)
{
u16 x,y;
for(x=num;x>0;x--)
  for(y=110;y>0;y--);
}
/*****定义变量端口号*****/
sbit sclk=P3^6;
sbit io=P3^4;
sbit ce=P3^5;
/*****读1302函数*****/
u8 read_1302()
{
u8 dat,dat1,wr;
sclk=0;
ce=1;
for(n=0;n<8;n++)
{
  wr=io;
  wr=wr&0x01;
  delay(5);
  sclk=1;
  delay(5);
  sclk=0;
  delay(5);
  wr>>=1;
  delay(5);
}
delay(15);
for(n=0;n<8;n++)
{
  io=dat1;
  dat1=dat1|0x00;
  delay(5);
  sclk=1;
  delay(5);
  sclk=0;
  delay(5);
  dat1<<=1;
  delay(5);
}
return dat;
}
/*****主函数*****/
void main()
{
P1=read_1302(0x81);
while(1)
{
  ;
}
}

此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
19条回答
okhxyyo
2019-03-24 22:34
你的程序是要实现什么??你的问题现象是是什么得给我们指出来一下啊。。不然直接这么找人家找起来也比较麻烦。你说清楚了,能更快的定位到问题

一周热门 更多>