关于学习总线型外部资源(如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
1楼-- · 2019-03-24 22:34
你的程序是要实现什么??你的问题现象是是什么得给我们指出来一下啊。。不然直接这么找人家找起来也比较麻烦。你说清楚了,能更快的定位到问题
流氓小哥
2楼-- · 2019-03-25 03:33
 精彩回答 2  元偷偷看……
long521
3楼-- · 2019-03-25 09:23
你的程序就是读出DS1302的秒的数据,然后,P1口把那字节显示一下,问题是你没有用8段码数组或者汇编中的表格,P1显示出的仅仅是一个字节,你能看得明白吗。
汇编的DS1302我倒是有,C很少用,汇编的话只要你的时序对,肯定是能读出来的。
流氓小哥
4楼-- · 2019-03-25 09:24
long521 发表于 2016-1-20 10:13
你的程序就是读出DS1302的秒的数据,然后,P1口把那字节显示一下,问题是你没有用8段码数组或者汇 ...

我C语言也是接触单片机才学了这么几天,汇编根本一点都不懂。。。。
辛昕
5楼-- · 2019-03-25 10:44
 精彩回答 2  元偷偷看……
elvike
6楼-- · 2019-03-25 12:00
辛昕 发表于 2016-1-20 10:28
买一个 USB逻辑分析仪

楼上是搞推销的吗?

一周热门 更多>