汇编程序:

ORG 0000H

AJMP START

START:

ACALL SETTIME;设置初始时间

LOOP: ACALL GETTIME;循环读取当前时间

AJMP LOOP;

SETTIME:

MOV DPTR,#7D0AH;DS12C887的A寄存器

MOV A,#20H

MOVX @DPTR,A;打开DS12C887的内部晶振并使RTC(实时时钟)记录时间

INC DPTR;DS12C887的B寄存器

MOV A,#08H

MOVX @DPTR,A;设十进制BCD码,24小时制,不定时

MOV DPTR,#7D0DH;DS12C887的D寄存器

MOVX A,@DPTR;如果D寄存器的第7位为0,表示电池耗尽

JNB ACC.7,ERROR

MOV DPTR,#7D00H;DS12C887的秒单元

MOV A,#00H

MOVX @DPTR,A;写入秒

MOV DPTR,#7D02H;DS12C887分单元

MOV A,#21H

MOVX @DPTR,A;写入分

MOV DPTR,#7D04H;DS12C887时单元

MOV A,#03H

MOVX @DPTR,A;写入时

MOV DPTR,#7D06H;DS12C887星期单元

MOV A,#03H

MOVX @DPTR,A;写入星期

MOV DPTR,#7D07H;DS12C887日单元

MOV A,#20H

MOVX @DPTR,A;写入日

MOV DPTR,#7D08H;DS12C887月单元

MOV A,#07H

MOVX @DPTR,A;写入月

MOV DPTR,#7D09H;DS12C887年单元

MOV A,#05H

MOVX @DPTR,A;写入年时间

ERROR:RET

GETTIME:

MOV DPTR,#7D0AH

MOVX A,@DPTR

JB ACC.7,GETTIME ;REGISTER A的UIP位=0时才可以读数据

MOV DPTR,#7D00H

MOVX A,@DPTR

MOV R2,A ;SECONDS

ACALL DISPLAY

MOV DPTR,#7D02H

MOVX A,@DPTR

MOV R1,A

ACALL DISPLAY ;MINUTES

MOV DPTR,#7D04H

MOVX A,@DPTR

MOV R0,A ;HOURS

ACALL DISPLAY

ACALL DELAY

RET

DISPLAY:

MOV DPTR,#TAB

MOV SCON,#00H

MOV R3,A

ANL A,#0FH

MOVC A,@A+DPTR

MOV SBUF,A

JNB TI,$

CLR TI

MOV A,R3

SWAP A

ANL A,#0FH

MOVC A,@A+DPTR

MOV SBUF,A

JNB TI,$

CLR TI

RET

DELAY:

MOV R4,#0FH

DE1:MOV R5,#0FFH

DJNZ R5,$

DJNZ R4,DE1

RET

TAB: DB 03H,9FH,25H,0DH,99H,49H,41H,1FH,01H,09H,11H,0C1H,63H,85H,61H,71H

END

C语言源程序:

#include "reg52.h"

#include "absacc.h"

#define DSA XBYTE[0x7F0A]//12c887寄存器A地址

#define DSB XBYTE[0x7F0B]//B地址

#def

ds12c887程序C语言,时钟芯片DS12C887使用说明详解.doc相关推荐

  1. JESD204B高速AD开发(二)LMK04821时钟芯片配置代码详解

    一.驱动模块顶层 1.1 接口描述 如下图为LMK04821时钟芯片的配置模块输入输出信号,主要分为三部分, 图1 1.模块的系统时钟和复位信号,cfg_clk时钟频率<=10MHz,频率的设置 ...

  2. ds12c887程序C语言,单片机+TM1628+DS12C887时钟源程序

    #include "define.h" unsigned char code table[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07, 0 ...

  3. c语言字符游动程序,C语言实现扫雷小游戏详解

    本文实例为大家分享了C语言实现扫雷小游戏的具体代码,供大家参考,具体内容如下 一.实现功能 首先显示一个小菜单,选择是否玩游戏.当用户选择退出时,程序运行结束,当用户选择玩游戏时,将提示用户输入扫雷位 ...

  4. c语言线段树建树程序,c语言数据结构之线段树详解;例题:校门外的树(poj2808或者vijos1448)...

    线段树:它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个结点. 也就是说线段树的每一个结点对应一个区间,其中根节点对应区间[1,n] 对于线段树中的每一个非叶子节点[a,b],它的左儿子 ...

  5. 阵列式键盘实训C语言,阵列式键盘实验详解.doc

    阵列式键盘实验详解 实验二 阵列式键盘实验 一.实验目的 1.掌握键盘和显示器的接口方法和编程方法 2.掌握阵列式键盘的硬件组成和软件编程方法 二.实验说明 本实验提供了一个4X4小建盘,向P0口的低 ...

  6. ds12c887c语言程序,时钟芯片ds12c887的C51驱动程序

    文件名称:ds12c887.c 适用范围:时钟芯片ds12c887的驱动程序 ************************************************************* ...

  7. 大二c语言期末考试题库及详解答案,大学C语言期末考试练习题(带详解答案)...

    <大学C语言期末考试练习题(带详解答案)>由会员分享,可在线阅读,更多相关<大学C语言期末考试练习题(带详解答案)(55页珍藏版)>请在金锄头文库上搜索. 1.一. 单项选择题 ...

  8. gets和fgets函数及其区别,C语言gets和fgets函数详解

    gets和fgets函数及其区别,C语言gets和fgets函数详解 每当讨论 gets 函数时,大家不由自主地就会想起 1988 年的"互联网蠕虫",它在 UNIX 操作系统的 ...

  9. 基于C语言的JPEG编码代码详解

    一.基于C语言的JPEG编码代码详解 #include <stdio.h> #include <stdlib.h> #include <string.h>#prag ...

最新文章

  1. Effective java 系列之更优雅的关闭资源-try-with-resources
  2. php开发以太坊无法连接到远程Geth,connect: permission denied.
  3. PAT甲级1151 LCA in a Binary Tree (30 分):[C++题解]LCA、最低公共祖先、哈希表映射
  4. Java IO流--练习
  5. 多组测试数据(求和)IV
  6. 牛客题霸 NC4 判断链表中是否有环
  7. Python 的内置数据类型:列表 list、元组 tuple、字典 dict、集合 set.
  8. 字符设备驱动基础篇2——用开发板来调试驱动模块的步骤
  9. java中几种基本数据类型之间的转换
  10. Java泛型中extends和super的区别?
  11. InternetCheckConnection 通过尝试连接特定的网址,可以用来判断目前机器是否接通外网
  12. SAP License:你适合做SAP顾问吗?
  13. redis list放入对象_Redis从入门到入土:详细讲解内存模型以及常用命令
  14. html position的学习
  15. C#扩展名关联【转】
  16. 计算机视觉教程2-2:详解图像滤波算法(附Python实战)
  17. 钽电容的命名,贴片电解电容耐压,封装
  18. App下载的视频导进电脑中生成.mp4文件的方法
  19. android jpeg图片变圆,Android 将一张图片变为圆形图片
  20. 网吧用计算机性能配件清单,网吧组装电脑配置清单

热门文章

  1. Linux搭建tor网络环境
  2. YY创始人携手极客公园调坎QQ企鹅
  3. 读 Frank Thilly 之《西方哲学史:修补增订版》
  4. Word一部分内容分为两栏或多栏的方法
  5. GDI+绘图基础,绘制表格
  6. Unity3D自学笔记
  7. 使用r语言进行excel表格的分类与汇总
  8. SpringBoot结合Redis实现维护客户端登录状态
  9. 深度搜索算法(DFS)
  10. 视频去水印工具-在线短视频去水印工具