关于学习总线型外部资源(如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条回答
流氓小哥
1楼-- · 2019-03-27 11:11
elvike 发表于 2016-1-20 14:53
你这顺序搞反了吧,除非你会其他编程语言

学习起源于爱好,喜欢电子产品,所以学习单片机,必竟单片机编程用到的C语言很少。所以等学会了单片机再学C语言也不迟吧。我就是这么理解的,现在头绪基本理清了,程序也做出来了。现在只差能对这个芯片以及这类芯片的应用了。等学会了,再来回报这里帮助过我的坛主、大神。把乐于助人的精神传承下去!还是要说一声,谢谢大家的帮助了!!!

一周热门 更多>