首页 | 供应信息 | 采购信息 | PDF资料 | 技术资料 | 行业资讯 | 产品展示 | 人才市场 进入会员区
   技术文章分类:单片机/DSP 嵌入式系统 测试仪表 电源技术 接口电路 存储器 传感与控制 通信网络 无线通信 模拟技术 显示与光电 EDA/PLD 汽车电子 消费电子 电子综合
   电子综合工具:PDF资料大全 电子缩略语 IC型号替换 IC厂家 电子电路图 技术参数 设计应用 解决方案
技术资料 行业资讯 PDF资料 IC价格 IC替换 缩略语 IC供应 IC采购
  您所在的位置: IC37首页 > 技术问答 > 新手园地 > 求教高手:关于DS1302的问题

  求教高手:关于DS1302的问题 

我编写的一定DS1302时钟程序出现问题,请各位大侠帮忙;

在读时钟的时候,时钟I/O口一直保持高电平,所以读出来的数全部为FF,这是哪里处理问题了?

此程序在往时钟里写时间的时候是完全正确的,通过别的方法读出来之后,确定写入的时间是正确的。

急啊,请高手多多帮忙,谢谢!


作者:juckey  2006-7-27 16:37:00

  回复1  程序如下,请高手指点,多谢23380

此程序用的是PBASIC语言,单片机晶振50.000M

'===================================================

ReadRTCBurst:

HIGHEn

PAUSE 5

'read minutes

adr=$83'写入MINUTE的地址16进制83,读取数据

GOSUB uc_r1302

Minutes=temp

DEBUG "minute:",DEC Minutes,CR

'read hours

adr=$85

GOSUB uc_r1302

Hours=temp

DEBUG "Hour:",DEC hours,CR

'read day

adr=$87

GOSUB uc_r1302

day=temp

DEBUG "day:",DEC day,CR

'read month

adr=$89

GOSUB uc_r1302

month=temp

DEBUG "month:",DEC month,CR

'read year

adr=$8d

GOSUB uc_r1302

year=temp

DEBUG "year:",DEC month,CR

LOW En

RETURN

'==========================================

'写入1字节命令、地址,输入变量TEMP

'==========================================

v_RTinputbyte:

temp2=temp

FOR idx2=1 TO 8

temp2=temp2&selbit1'SELBIT1=00000001

IF temp2=1 THEN bit_1

LOW dta'DTA为DS1302的I/O

PAUSE 1'PAUSE 1 延时

GOTO disp

bit_1:

HIGH dta

PAUSE 1

disp:

HIGH clk

PAUSE 1

LOW clk

temp2=temp

temp2=temp2 >> idx2'向右移IDX2位

NEXT

RETURN

'==========================================

'读取1字节,输出TEMP

'==========================================

uc_rtoutputbyte:

temp=0

HIGH rtcreset

PAUSE 1

FOR idx2=1 TO 8

temp=temp >>1

IO=dta

IF IO=1 THEN H_temp

temp=temp|selbit2'SELBIT2=00000000

GOTO clk_1

H_temp:

temp=temp|selbit3'SELBIT2=10000000

clk_1:

HIGH clk

PAUSE 5

LOW clk

PAUSE 5

NEXT

'DIR15=1

RETURN

'==========================================

'写入地址ADR,然后写入命令、数据DDA

'==========================================

v_w1302:

LOW RTCReset

LOW clk

dly=1

dly=1

HIGH rtcreset'RTCRESET为DS1302的RESET

temp=adr

GOSUB v_rtinputbyte'调用写1字节子程序

temp=dda

GOSUB v_rtinputbyte

HIGH clk

LOW rtcreset

RETURN

'==========================================

'写入地址ADR,然后读取数据TEMP

'==========================================

uc_r1302:

LOW rtcreset

PAUSE 1

LOW clk

PAUSE 1

HIGH rtcreset

PAUSE 1

temp=adr

GOSUB v_rtinputbyte

GOSUB uc_rtoutputbyte

HIGH clk

LOW rtcreset

RETURN


作者:juckey  2006-7-27 19:24:00


我要投稿 注册会员
客服咨询热线:0755-26000950 0755-26007355
 相关技术问答
·请问在哪些网站可以申请到免..  2006-7-26
·请问用漆包线绕的电感怎样计..  2006-7-26
·液晶控制驱动芯片  2006-7-26
·电容的检测  2006-7-26
·3V的红外接收头可不可以在..  2006-7-26
·请问IC高人:TBE233..  2006-7-27
·+5v 转为-5v  2006-7-27
·555电路  2006-7-27
·关于旁路电容的问题  2006-7-27
·带滞差的LM339的典型应..  2006-7-27
·谁能告诉我怎样提高涡轮传感..  2006-7-27
·请教关于keil里使用汇编..  2006-7-27
·请问TBE2335B是单运..  2006-7-27
·温度传感器应该放在哪儿?  2006-7-27
·漏电流  2006-7-27
·边个有orcad教学视频啊  2006-7-27
·80C52单片机最小系统怎..  2006-7-28
·刚刚成立的单片机群,欢迎加..  2006-7-28
·电子称称重显示偏高或偏低  2006-7-28
·请问protel一个小问题  2006-7-28
·怎样能够得到单片机P1口的..  2006-7-28
·看到人家画好的pcb图中有..  2006-7-28
·请问POWER LOGIC..  2006-7-28
·51的INT0/1口在做总..  2006-7-28
·怎么使用ULN2003  2006-7-28
 
 热门IC
MFP16R8FI  MFP1150KFI  MF14DLT52R4643F  MF14DLT52R42R2F  75176AP  MT28F016S5VG-9A  MT28F800B5-8BD  MT58L256L18P1T-6C  MT5C6408DJ-20  TC514800AFTL-70  P50L-060P-AS-TGF  AD0612MB-A72GL  A107KAV2Q  206037-1  TMS320BC57PGE80  TPA62A18  TN815-600B-TR  VI-J7R-EY  4094BD  4370793  50MT060WHT  5962-8771701XA  5962-8850308PA  54HCT245F  5962-9169003MXA  67F085  5B39-01  ST1534LD  ST6166  T8302BAL5  T491T685M010AS  SY10E156JC  TC74HC4066F  TIL195  VUO16-16N01  QS29FCT53BTSO  QS29FCT52ATP  UPD70116D-10  D8049C  PI74LPT573CQX  1SMA5930BT3G  MAX6900ETT-T  AM9513  B260A-13  MURA215T3G  L4931ABD80-TR  CY7C4205-25ASC  LVQ14  DMC80C49-211  HDP55564-5