3519|5

59

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

DS1302问题请教 [复制链接]

   最近在单片机上做了个时钟显示,时钟芯片用的是DS1302,但是仿真时DS1302的管脚没有反应,一个1302困扰了我好多天了,现在贴出源程序,请高手们指点指点。感激不尽!
#include
#include
#include
#define uchar unsigned char
#define ds1302SCK  P2_2 /*DS1302实时时钟时钟线引脚*/
#define ds1302IO   P2_3  /*DS1302实时时钟数据线引脚*/
#define ds1302RST  P2_4  /*DS1302实时时钟复位线引脚*/
#define sn595SH   P3_6  /*SN74HC595移位寄存器时钟输入*/
#define sn595ST   P3_7  /*SN74HC595存储寄存器时钟输入*/
#define sn595DS   P2_7  /*SN74HC595串行数据输入*/
sbit  BIT0=ACC^0;
sbit  BIT7=ACC^7;
const uchar tab[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar time[7]={0x00,0x30,0x12,0x00,0x00,0x00,0x00};
uchar timecur[7];
uchar timeint[14];

void RTInputByte(uchar ucDa)
{
uchar i;
ACC = ucDa;
for(i=8; i>0; i--)
{
ds1302IO = BIT0;
ds1302SCK = 1;
ds1302SCK = 0;
ACC = ACC >> 1;
}
}

uchar RTOutputByte(void)
{
uchar i;
ds1302IO=1;
for(i=8; i>0; i--)
{
ACC = ACC >>1;
BIT7 = ds1302IO;
ds1302SCK = 1;
ds1302SCK = 0;
}
return(ACC);
}


void W1302(uchar ucAddr, uchar ucDa)
{
ds1302RST = 0;
ds1302SCK = 0;
ds1302RST = 1;
RTInputByte(ucAddr); /* 地址,命令 */
RTInputByte(ucDa); /* 写1Byte数据*/
ds1302SCK = 1;
ds1302RST =0;
}

uchar R1302(uchar ucAddr)
{
uchar ucDa;
ds1302RST = 0;
ds1302SCK = 0;
ds1302RST = 1;
RTInputByte(ucAddr); /* 地址,命令 */
ucDa = RTOutputByte(); /* 读1Byte数据 */
ds1302SCK = 1;
ds1302RST =0;
return(ucDa);
}


void Timeset()
{
uchar i;
uchar ucAddr=0x80;
W1302(0x8e,0x00);
for(i=0;i<7;i++)
  {
   W1302(ucAddr,time);
   ucAddr+=2;
  }
W1302(0x8e,0x80);
}

void Timeget()
{
timecur[0]=R1302(0x81);
timeint[0]=(timecur[0]&0x0f);
timeint[1]=(timecur[0]>>4);

timecur[1]=R1302(0x83);
timeint[2]=(timecur[1]&0x0f);
timeint[3]=(timecur[1]>>4);

timecur[2]=R1302(0x85);
timeint[4]=(timecur[2]&0x0f);
timeint[5]=(timecur[2]>>4);

timecur[3]=R1302(0x87);
timeint[6]=(timecur[3]&0x0f);
timeint[7]=(timecur[3]>>4);

timecur[4]=R1302(0x89);
timeint[8]=(timecur[4]&0x0f);
timeint[9]=(timecur[4]>>4);

timecur[5]=R1302(0x8b);
timeint[10]=(timecur[5]&0x0f);
timeint[11]=(timecur[5]>>4);

timecur[6]=R1302(0x8d);
timeint[12]=(timecur[6]&0x0f);
timeint[13]=(timecur[6]>>4);
}

void display(void)
{
uchar i,temp;
sn595ST=0;
for(i=0;i<8;i++)
  {
   sn595SH=0;
   temp=tab[timeint[2]];
   ACC=(temp&0x01);
   sn595DS=BIT0;
   temp=temp<<1;
   sn595SH=1;
  }
  P3_0=0;P3_1=1;
  P3_2=1;P3_3=1;
  sn595ST=1;

  for(i=0;i<8;i++)
  {
   sn595SH=0;
   sn595ST=0;
   temp=tab[timeint[3]];
   ACC=(temp&0x80);
   sn595DS=BIT7;
   temp=temp<<1;
   sn595SH=1;
  }
  P3_0=1;P3_1=0;
  P3_2=1;P3_3=1;
  sn595ST=1;

  for(i=0;i<8;i++)
  {
   sn595SH=0;
   sn595ST=0;
   temp=tab[timeint[4]];
   ACC=(temp&0x80);
   sn595DS=BIT7;
   temp=temp<<1;
   sn595SH=1;
  }
  P3_0=1;P3_1=1;
  P3_2=0;P3_3=1;
  sn595ST=1;
  
  for(i=0;i<8;i++)
  {
   sn595SH=0;
   sn595ST=0;
   temp=tab[timeint[5]];
   ACC=(temp&0x80);
   sn595DS=BIT7;
   temp=temp<<1;
   sn595SH=1;
  }
  P3_0=1;P3_1=1;
  P3_2=1;P3_3=0;
  sn595ST=1;
}

main()
{
Timeset();
Timeget();
while(1)
  {
    display();
  }
}

最新回复

示波器。。。  详情 回复 发表于 2008-4-30 22:51
点赞 关注

回复
举报

65

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
本公司专业承接PCB印制线路板厂家。主要生产单,双以及多层线路板,盲孔,高频板等。最小孔径0.15mm,是小线距0.1mm. 表面处理:防氧化,镀金,镀锡.无铅工艺等等.质量保证,交货及时.最快24小时交货,月产量1.2万个平方米.本企业已经过ISO9000:2000/ISO14001质量休系/环保体系国际认证和UL认证.以及欧洲环保认证(ROHS认证).双赢互利是我们的一贯经营理念。我们期盼与业内朋友放眼世界、展望未来、携手并进、齐享高科技的结晶,共创辉煌! (24小时提供PCB相关技术支持!欢迎您与我们联系)
联系人:萧先生
深圳市奔强电路有限公司 www.szbq168.com
TEL:0755-29606209    13798334626
MSN:xhg26270001pcb@hotmail.com
SKYPE:LTDLFPCB      QQ:426617608
邮箱:BQPCB@VIP.163.COM
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
我现在也在弄这个ds1302,也是问题多多,程序也跟你差不多,你这个是用什么显示啊?我用的是液晶显示屏!
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

4
 
有问题请先GOOGLE,BAIDU
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(中级)

5
 
lz要干嘛?
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

6
 
示波器。。。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表