DS1302时钟汇编程序数码管显示时间

发布者:创新思绪最新更新时间:2015-04-28 来源: 51hei关键字:DS1302  时钟  汇编程序  数码管显示 手机看文章 扫描二维码
随时随地手机看文章
数码管用2个573接到p0口,电路详见单片机开发板的原理图:http://www.51hei.com/f/HL-1V6.5.pdf  段选是p0口控制的,位选是P2口控制的.;===============DS1302==================

       CLK EQU   P1.4
       RST EQU   P1.0   ;1302定义引脚
       IO  EQU   P1.2
       ORG  00H
       JMP  MAIN
;=======================================
MAIN:  MOV  P0,#0FFH
       MOV  P1,#0FFH
       MOV  P2,#0FFH
       MOV  P3,#0FFH
       MOV  30H,#01H
       MOV  31H,#02H
       MOV  32H,#03H
       MOV  33H,#04H
       MOV  34H,#00H
       MOV  35H,#06H
       MOV  SP,#70H
       CALL  CS
;============================================
LOOP:  MOV   50H,#40
LL0:   CALL  DIP
       DJNZ  50H,LL0
       CALL  READ
       JMP   LOOP
;===========================================
DIP:  ; MOV  30H,#00H
       MOV  A,30H
       CALL TABLE
       MOV  P0,A
       SETB P2.7
       CALL DELAY
       CLR   P2.7
;=============================================
     ; MOV  31H,#01H
      MOV  A,31H
      CALL TABLE
      MOV  P0,A
      SETB P2.6
      CALL DELAY
      CLR   P2.6
;=============================================
      MOV  22H,#40H
      MOV  A,22H
      MOV  P0,A
      SETB  P2.5
      CALL  DELAY
      CLR   P2.5
;============================================
    ;  MOV  32H,#00H
      MOV  A,32H
      CALL TABLE
      MOV  P0,A
      SETB P2.4
      CALL DELAY
      CLR  P2.4
;============================================
    ;  MOV  33H,#00H
      MOV  A,33H
      CALL TABLE
      MOV  P0,A
      SETB P2.3
      CALL DELAY
      CLR  P2.3
;==========================================
      MOV  24H,#40H
      MOV  A,24H
      MOV  P0,A
      SETB  P2.2
      CALL  DELAY
      CLR  P2.2
;=================================================
    ;  MOV  34H,#00H
      MOV  A,34H
      CALL TABLE
      MOV  P0,A
      SETB  P2.1
      CALL  DELAY
      CLR   P2.1
;================================================
      ;MOV  35H,#08H
      MOV  A,35H
      CALL TABLE
      MOV  P0,A
      SETB P2.0
      CALL  DELAY
      CLR   P2.0
      RET
;===============================================
TABLE:INC   A
       MOVC  A,@A+PC
       RET
   DB  3FH,06H,5BH,4FH,66H,6DH,7DH,07H,07FH,06FH
      ;0   1   2   3   4    5    6  7   8   9
;===============================================
DELAY: MOV 40H,#09H
D1:    MOV 41H,#08H
D2:    MOV 42H,#08H
D3:    NOP
       DJNZ 42H,D3
       DJNZ 41H,D2
       DJNZ 40H,D1
       RET
;================================================
CS:    MOV  R6,#8EH   ;允许写1302
       MOV  R7,#00H
       LCALL XIE
;================================================
       MOV  R6,#80H   ;1302停止振荡
       MOV      R7,#80H
       LCALL    XIE
;===============================================

         MOV      R7,#00H
         MOV      R6,#8CH   ;年
         LCALL    XIE
;================================================
         MOV      R7,#00H        ;月
         MOV      R6,#88H
         LCALL    XIE
;================================================
         MOV      R7,#00H
         MOV      R6,#86H       ;日
         LCALL    XIE
;================================================
         MOV      A,#23H
         MOV      R7,A
         MOV      R6,#84H     ;时
         LCALL    XIE
;================================================
         MOV      A,#05H
         MOV      R7,A
         MOV      R6,#82H      ;分
         LCALL    XIE
;=================================================
         MOV      R7,#00H        ;周
         MOV      R6,#8AH
         LCALL    XIE
;=================================================
         MOV      R7,#00H
         MOV      R6,#80H   ;1302开始振荡
         LCALL    XIE
;=================================================
         MOV      R6,#8EH   ;禁止写入1302
         MOV      R7,#80H
         LCALL    XIE
;==================================================
         RET
;========写1302子程序==============================
XIE:     CLR       CLK
         NOP
         SETB      RST
         NOP
         MOV       A,R6
         MOV       R5,#08H
XIE1:    RRC       A
         NOP
         MOV       IO,C
         NOP
         SETB      CLK
         NOP
         CLR       CLK
         DJNZ      R5,XIE1
         MOV       A,R7
         MOV       R5,#08H
XIE2:    RRC       A
         NOP
         MOV       IO,C
         NOP
         SETB      CLK
         NOP
         CLR       CLK
         DJNZ      R5,XIE2
         CLR       RST
         RET
;********读1302子程序*****************
DU:      CLR       CLK
         NOP
         NOP
         SETB      RST
         NOP
         NOP
         MOV       A,R6
         MOV       R5,#08H
DU1:     CLR       CLK
         NOP
         NOP
         RRC       A
         NOP
         NOP
         MOV       IO,C
         NOP
         NOP
         SETB      CLK
         DJNZ      R5,DU1
         MOV       R5,#08H
         CLR       A
         NOP
         CLR       C
         NOP
DU2:     CLR       CLK
         NOP
         NOP
         MOV       C,IO
         NOP
         NOP
         RRC       A
         NOP
         NOP
         SETB      CLK
         NOP
         NOP
         DJNZ      R5,DU2
         NOP
         MOV       R7,A
         NOP
         CLR       RST
         RET
;********1302分离程序*************************
FEN:     MOV       R3,#00H
         MOV       R4,#00H
         MOV       A,R7
         ANL       A,#0FH
         MOV       R3,A
         MOV       A,R7
         SWAP      A
         ANL       A,#0FH
         MOV       R4,A
         RET
;********读1302*****************
READ:
         MOV      R7,#00H
         MOV      R6,#85H    ;小时
         LCALL    DU
         LCALL    FEN
         MOV      30H,R4
         MOV      31H,R3
         ;-------------------
         MOV      R7,#00H
         MOV      R6,#83H    ; 分钟
         LCALL    DU
         LCALL    FEN
         MOV      32H,R4
         MOV      33H,R3
         ;---------------------------
         MOV      R7,#00H
         MOV      R6,#81H     ;秒钟
         LCALL    DU
         LCALL    FEN
         MOV      34H,R4
         MOV      35H,R3
         NOP
         RET
;=====================================================
         END

关键字:DS1302  时钟  汇编程序  数码管显示 引用地址:DS1302时钟汇编程序数码管显示时间

上一篇:AT89C51 of 1602LCD of program
下一篇:51单片机流水灯左移 右移控制程序

推荐阅读最新更新时间:2024-03-16 14:00

极简穿戴设备:时间指环
怀表,腕表?尽管当下每部手机上都带有时间显示,时尚和惯性仍是传统手表销量稳定背后的动因。而时间指环恰恰指向了相同的切入点。 时间指环(Ring Clock)顾名思义,就是一枚可以显示时间的指环。这款指环最早来自Gusztav Szikszai 2011年所作的概念设计。当时的预期是10年内或可以实现,不过这款设计在两年后就推出了产品。 目前这款指环采用不锈钢材料,最终成品由一个内环和一个外环组成;外环有3条显示带,分别表示时、分、秒。 下面是这枚指环的一些参数: - 316L 医用不锈钢材质 - 144 超薄单色LED - 6毫安时超薄可充电锂电 - 普通状况下可以提供一周续航 - 支持Qi无线充电标准 - 防
[手机便携]
极简穿戴设备:时间指环
四只数码管滚动循环显示0~3
程序源代码如下: /* 4只数码管循环显示0~3 */ #include reg51.h typedef unsigned char uint8; typedef unsigned int uint16; code uint8 LED_CODE = {0xC0,0xF9,0xA4,0xB0}; void delay(uint16 x) { uint16 i,j; for(i = x; i 0; i --) for(j = 114; j 0; j --); } void main() { uint8 i; while(1) { for(i = 0; i 4; i ++) { P3 = 0x01 i
[单片机]
四只<font color='red'>数码管</font>滚动循环<font color='red'>显示</font>0~3
STM32的USB时钟的配置
1.首先要配置好系统的时钟如下: RCC_DeInit();//将外设RCC寄存器重设为缺省值 /* Enable HSE */ RCC_HSEConfig(RCC_HSE_ON);//设置外部高速晶振(HSE ) /* Wait till HSE is ready */ HSEStartUpStatus = RCC_WaitForHSEStartUp();//等待HSE 起振,等待外部的时钟起振 if (HSEStartUpStatus == SUCCESS) { /* Enable Prefetch Buffer */ FLASH_PrefetchBufferCmd(F
[单片机]
基于52单片机与ds1302时钟芯片的电子闹钟C程序
  52单片机是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K字节系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但是做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。   52单片机结合可以对年、月、日、周、时、分、秒进行计时,且具有闰年补偿等功能的dDS1302时钟芯片做出的电子闹钟会有什么火花呢?奉上基于52单片机与ds1302时钟芯片的电子闹钟C程序,让大家亲身体验。      52单片机与ds1302时钟芯片的电子闹钟C程序   #inc
[单片机]
MSP430f249读取DS1302时钟显示在1602和串口
单片机源程序如下: #include msp430.h #include cry1602.h #include cry1602.c #include DS1302.c unsigned char counter=0; unsigned char second=0; unsigned char minute=0; unsigned char hour=0; //signed char miao=10; struct sTime bufTime; //time buffer /*write 1 bcd byte on screen,(x,y)-position on screen, bcd-BCD byte
[单片机]
MSP430f249读取<font color='red'>DS1302</font><font color='red'>时钟</font><font color='red'>显示</font>在1602和串口
51单片机 stc-B板学习——八位数码管动态显示
这个程序实现的效果是将程序下载到STC板子上后,可以看到8个数码管从左到右分别显示0到7的八个数字,隔一段时间后显示1到8,接着是2到9,再接着是3到0以此循环向左移动。 首先我们先来看看数码管和发光二极管的硬件电路图 需要明确的是,这个程序的是实现需要:LED灯亮且不会数码管同时亮。 要让LED灯亮,首先需要将P0的8个引脚以及P2.3设置成推挽输出(工作模式)(这里对工作模式的设置方式不再赘述) 数码管和LED灯不同时亮:通过E3实现。E3 既是反相器输出信号也是数码管的使能信号,当E3=0时,LED灯(共阴极)亮,数码管位选信号的使能信号为0,数码管不亮;反之,数码管亮而LED不亮 接下来,我们还需要注意
[单片机]
51单片机 stc-B板学习——八位<font color='red'>数码管</font>动态<font color='red'>显示</font>
Mouser供货IDT高性能 VersaClock 6时钟发生器
贸泽电子 (Mouser Electronics) 即日起开始分销Integrated Device Technology (IDT) 的VersaClock 6系列可编程时钟发生器。VersaClock 6器件具有低于500 fsec的超低RMS抖动,能够提供屡获殊荣的IDT VersaClock 系列产品目前最佳的性能。该器件为要求高性能的应用提供了灵活的低功耗时序,进而允许设计人员满足其系统中严格的抖动和低功耗要求,同时又可降低电路板空间和物料清单 (BOM) 成本。 Mouser分销的此新型IDT VersaClock 6可编程时钟发生器采用第六代IDT VersaClock可编程时钟技术,并针对电子系统进行
[模拟电子]
基于STM32对DS1302的驱动
// 程序名: STM32驱动DS1302 //头文件 #include “stm32f10x.h” #include “usart.h” #define uchar unsigned char #define uint unsigned int ////DS1302引脚定义,可根据实际情况自行修改端口定义 #define RST PAout(5) #define IO PAout(6) #define SCK PAout(7) //DS1302地址定义 #define ds1302_sec_add 0x80 //秒数据地址 #define ds1302_min_add 0x82 //分数据地址 #define ds1302_
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved