CSDN首页 新闻 论坛 小组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 第二书店 程序员
五一特色活动创意 征集,有重奖!!! "一句话,话优势 "可用分和程序员杂志等你来拿
CSDN社区
搜索 | 收藏 | 打印 | 关闭
CSDN社区 >  硬件/嵌入开发 >  单片机/工控

在线求助:DS12887的汇编程序

楼主roseyyj(杨凡)2003-05-16 16:45:53 在 硬件/嵌入开发 / 单片机/工控 提问

想了解DS12887的用法 问题点数:100、回复次数:13Top

1 楼shuai9595(帅)回复于 2003-05-20 16:38:04 得分 0

我也想看看!Top

2 楼abei11()回复于 2003-05-20 18:59:52 得分 0

很简单的,应该可以找到例程的!它自己的资料很全的!Top

3 楼roseyyj(杨凡)回复于 2003-05-21 10:09:16 得分 0

楼上的:  
  DALLAS公司所给的资料里面没有例程的,现在我所找到的例程都是C语言的,并且都是一个版本。我自己写了一个汇编,但是,调试的结果是好像不大对头,  
   
  哪位老兄有兴趣帮我看看?  
  Top

4 楼wangluyan(我不知道!所以我问!)回复于 2003-05-21 12:38:41 得分 90

程序贴出来!!!Top

5 楼yharbour(紫牵牛)回复于 2003-05-21 13:10:54 得分 10

到这看看去:  
  http://www.56789.com/data/805.htmTop

6 楼roseyyj(杨凡)回复于 2003-05-21 13:30:34 得分 0

不好意思,忘啦。程序如下:  
  org   0000h  
  ajmp   DS12887  
  ORG   0013H  
  AJMP   INT1  
   
  ;//////时钟////  
  DS12887:  
  mov   dptr,#800ah  
  mov   a,#20h  
  movx   @dptr,a  
   
  MOV   DPTR,#800DH  
  MOVX   A,@DPTR  
  MOVX   A,@DPTR  
  MOV   DPTR,#800AH   ;设置寄存器0A,OB,  
  MOV   A,#20H  
  MOVX   @DPTR,A  
  INC   DPTR  
  MOV   A,#0A6H  
  MOVX   @DPTR,A  
  ;;;;;;;;;;  
  MOV   DPTR,#8000H     ;设置时间03年5月15日  
  MOV   A,#00H               ;11点00分00秒  
  MOVX   @DPTR,A   ;  
  INC   DPTR     ;8001  
  MOV   A,#0FH                       ;  
  MOVX   @DPTR,A   ;  
  INC   DPTR         ;8002  
  MOV   A,#00H  
  MOVX   @DPTR,A   ;  
  INC   DPTR                     ;8003  
  MOV   A,#01H  
  MOVX   @DPTR,A     ;  
  INC   DPTR                   ;8004  
  MOV   A,#0BH  
  MOVX   @DPTR,A     ;  
  INC   DPTR               ;8005  
  MOV   A,#0FFH  
  MOVX   @DPTR,A;  
  INC   DPTR               ;8006  
  MOV   A,#06H  
  MOVX   @DPTR,A   ;  
  INC   DPTR             ;8007  
  MOV   A,#10H  
  MOVX   @DPTR,A;  
  INC   DPTR         ;8008  
  MOV   A,#05H  
  MOVX   @DPTR,A   ;  
  INC   DPTR  
  MOV   A,#03H           ;8009  
  MOVX   @DPTR,A;  
  ;;;;;  
  MOV   DPTR,#800CH  
  MOVX   A,@DPTR  
  MOV   DPTR,#800BH  
  MOV   A,#26H  
  MOVX   @DPTR,A  
  ;;;;;;;;;  
  ;RET  
  SETB   EA  
  SETB   EX1  
  AHALT:   AJMP   $  
  ;;;;;;;;;;;;;;;  
  READ:  
          MOV   DPTR,#800AH  
  READ1:  
          MOVX   A,@DPTR  
          JBC   ACC.7,READ1  
          MOV   DPTR,#8000H  
          MOVX   A,@DPTR  
          MOV   R6,A  
          MOV   DPTR,#8002H  
          MOVX   A,@DPTR  
          MOV   R5,A  
          MOV   DPTR,#8004H  
          MOVX   A,@DPTR  
          MOV   R4,A  
          MOV   DPTR,#8006H  
          MOVX   A,@DPTR  
          MOV   R3,A  
          MOV   DPTR,#8007H  
          MOVX   A,@DPTR  
          MOV   R2,A  
          MOV   DPTR,#8008H  
          MOVX   A,@DPTR  
          MOV   R1,A  
          MOV   DPTR,#8009H  
          MOVX   A,@DPTR  
          MOV   R0,A  
          RET  
   
  INT1:  
          LCALL   READ  
          MOV   DPTR,#8001H  
          MOVX   A,@DPTR  
          ADD   A,R6  
          CJNE   A,#3CH,TIME1  
          MOV   A,#00H  
          SETB   PSW.5  
          AJMP   TIME2  
  TIME1:  
          JNC     TIME2  
          SUBB   A,#3CH  
          SETB   PSW.5  
  TIME2:  
          MOVX   @DPTR,A  
          ;;;;;;;;;;;;;;;;;;;  
      MOV   DPTR,#8003H  
          MOVX   A,@DPTR  
          MOV   C,PSW.5  
          ADDC   A,R5  
          CJNE   A,#3CH,MINUTE1  
          MOV   A,#00H  
          AJMP   MINUTE2  
  MINUTE1:  
          JNC     MINUTE2  
          SUBB   A,#3CH  
          SETB   PSW.5  
  MINUTE2:  
          MOVX   @DPTR,A  
          MOV   DPTR,#800CH  
          MOVX   A,@DPTR   ;  
          RETI  
   
   
   
  Top

7 楼roseyyj(杨凡)回复于 2003-05-21 13:37:50 得分 0

谢谢yharbour老兄,  
  那个程序我看了,好像不能用呀,,,Top

8 楼wangluyan(我不知道!所以我问!)回复于 2003-05-21 13:43:09 得分 0

我写的(已经调试通过)  
  ;********************reade   time   frome   12887*************************good  
  ;T_SEC:   save   seccond  
  ;T_MIN:   save   minute  
  ;T_HOUR:   save   hour  
  ;T_DAY:     save   day  
  ;T_MON:     save   month  
  R12887:                                       ;读12887  
  MOV   DPTR,#0C80AH  
  MOVX   A,@DPTR  
  ANL   A,#80H  
  JNZ   NEXT0  
   
  MOV   DPTR,#0C800H  
  MOVX   A,@DPTR  
  MOV   T_SEC,A  
  MOV   DPTR,#0C802H  
  MOVX   A,@DPTR  
  MOV   T_MIN,A  
  MOV   DPTR,#0C804H  
  MOVX   A,@DPTR  
  MOV   T_HOUR,A  
  MOV   DPTR,#0C807H  
  MOVX   A,@DPTR  
  MOV   T_DAY,A  
  MOV   DPTR,#0C808H  
  MOVX   A,@DPTR  
  MOV   T_MON,A  
   
  NEXT0: RET  
  ;*******************write   time   into   12887*************************good  
  ;T_SEC:   save   seccond  
  ;T_MIN:   save   minute  
  ;T_HOUR:   save   hour  
  ;T_DAY:     save   day  
  ;T_MON:     save   month  
  W12887:                                       ;写12887  
  MOV   DPTR,#0C80BH  
  MOV   A,#86H  
  MOVX   @DPTR,A  
  MOV   DPTR,#0C80AH  
  MOV   A,#0A0H  
  MOVX   @DPTR,A  
   
  MOV   DPTR,#0C800H  
  MOV   A,T_SEC  
  MOVX   @DPTR,A  
  MOV   DPTR,#0C802H  
  MOV   A,T_MIN  
  MOVX   @DPTR,A  
  MOV   DPTR,#0C804H  
  MOV   A,T_HOUR  
  MOVX   @DPTR,A  
  MOV   DPTR,#0C807H  
  MOV   A,T_DAY  
  MOVX   @DPTR,A  
  MOV   DPTR,#0C808H  
  MOV   A,T_MON  
  MOVX   @DPTR,A  
   
  MOV   DPTR,#0C80AH  
  MOV   A,#20H  
  MOVX   @DPTR,A  
  MOV   DPTR,#0C80BH  
  MOV   A,#06H  
  MOVX   @DPTR,A  
  RET  
  Top

9 楼roseyyj(杨凡)回复于 2003-05-21 14:05:31 得分 0

wangluyan   :  
            不胜感激,我的源程序根你的思路没有差别呀,我也调试了,可是就是通不过  
  我在调试的时候,发现在无论怎么读数,所读出来的VRT位使终是0  
            是不是因为我的片内电池失效,还是因为没有触发?  
            如何启动电池??Top

10 楼wangluyan(我不知道!所以我问!)回复于 2003-05-21 14:18:05 得分 0

DS12887内部有电池,就算是掉电也能保存数据,因而谈不上如何启动电池??  
   
  一般片内电池用的比较久,但我们并不排除片内电池用完!!  
   
  最好的办法换一片芯片试试!!Top

11 楼wangluyan(我不知道!所以我问!)回复于 2003-05-21 14:25:27 得分 0

我想你也看过:  
        当VCC输入为+5V时,用户可以访问DS12C887内RAM中的数据,并可对其进行读、写操作;当VCC的输入小于+4.25V时,禁止用户对内部RAM进行读、写操作,此时用户不能正确获取芯片内的时间信息;当VCC的输入小于+3V时,DS12C887会自动将电源发换到内部自带的锂电池上,以保证内部的电路能够正常工作。Top

12 楼roseyyj(杨凡)回复于 2003-05-21 14:45:56 得分 0

对呀,我也试图往那个RAM里面写过数据啦。能读能写,但我读出来的VRT位却是0  
  正常情况下,VRT位读出来的数据应该是1呀,,,,,,  
  有QQ没?Top

13 楼wangluyan(我不知道!所以我问!)回复于 2003-05-21 15:01:17 得分 0

54165018Top

相关问题

  • 一道汇编程序错误问题 在线等 答的好的话加分
  • 在一vc程序里包含汇编程序是,汇编程序如何和vc程序交换变量。
  • 怎样在linux下编译汇编程序?
  • 如何在windows下开发汇编程序?
  • 在VC++中如何嵌入汇编程序
  • 请问如何在CB中调用汇编程序?
  • 16bit的汇编程序能够在MASMv7下编译吗?
  • 怎么在C++中加入汇编程序?
  • 请问:怎样在程序中加入汇编程序
  • 在什么环境下编写和调试80X86汇编程序?

关键词

  • ds
  • 数据
  • 用户
  • dptr
  • hmovx
  • dptrmov
  • movx
  • 例程
  • ds12887
  • 电池

得分解答快速导航

  • 帖主:roseyyj
  • wangluyan
  • yharbour

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo