⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 智能遥控led数码日历钟.asm

📁 智能、遥控、LED数码日历钟
💻 ASM
📖 第 1 页 / 共 2 页
字号:
智能遥控LED数码日历钟
muteM   EQU 4CH                 ;静音键 
timerT  EQU 40H                 ;进入/退出设置状态
leftL   EQU 50H                 ;左移键
rightR  EQU 48H                 ;右移键
upU     EQU 44H                 ;增加键
downD   EQU 54H                 ;减少键
d_off   EQU 0CCH                ;显示/关闭
recall  EQU 0DCH                ;DS1302初始化操作

CS_X1   EQU     26H
CS0_X1  EQU     25H
U0_X1   EQU     3fh;40H
N0_M    EQU     1EH
N0_J    EQU     1FH
X1_N1   EQU     2AH
X1_N2   EQU     2BH
X1_N3   EQU     2CH
X1_N4   EQU     2DH
X1_N5   EQU     2EH
X1_N6   EQU     2FH


RST     EQU P3.0
LED3CLK EQU P3.3
LED4IO  EQU P3.1


SECOND  EQU 60H
;***************************
        ORG   0000H
        lJMP  START
        ORG   0003H
        ljmp int_x1
        nop
        nop
        nop
        nop
        reti
        ORG   000BH 
        LJMP  P_INT 
        nop
        nop
        nop
        nop
        reti
        nop     ;0013h
        nop
        nop
        nop
        nop
        nop
        nop
        reti
        ORG   001BH    
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        reti
        nop     ;0023h
        nop
        nop
        nop
        nop
        nop
        nop
        reti
        nop     ;002bh
        nop
        nop
        nop
        reti

;****************************  ;main program
       ORG    0030H
START:  mov sp,#48h;50h;69h;50h  ;!!!48h=ok!!!
        mov r0,#5fh
        clr a
jxu:   mov @r0,a
       djnz r0,jxu
       CLR     RST
       SETB    05H
       CLR     06H
       SETB 07H;CLR     07H
       CLR     08H
       CLR     09H
       CLR     0AH
       CLR     0BH
       CLR     0CH
       SETB    0DH
       CLR     0EH
       CLR     0FH
       CLR     10H
       CLR     11H

        clr 12h
        clr 13h

        clr 14h         ;xqbz

        clr 1fh         ;jhbz

       MOV R2,#00H             ;
       MOV R3,#00H             ;

       MOV TMOD,#12h
       MOV TL1,#00h
       MOV TH1,#00h
       SETB  ET0
       SETB  ET1
      ; setb  pt0
       SETB  TR0
       SETB  TR1
       SETB  IT0               ;设定INT0触发方式
       SETB  EX0               ;INT0请求中断
       CLR   PX0
      ; setb ex1
      ; CALL SET1302          ;初始化
      ; MOV   R1,#0C1H        ;取定时参数从1302中
      ; call  T_6061
      ; MOV   6AH,A             ;M
      ; MOV   R1,#0C3H
      ; CALL T_6061
      ; MOV   6BH,A             ;H

        mov 18h,#2ah
        mov cs0_x1,#06h
        mov cs_x1,#08h
        mov n0_m,#0ffh

        MOV  61H,#0
        MOV  62H,#0
        SETB  EA
;*****************************
main:   mov 1eh,#0ffh
        call pd012
        call do
        jnb 05h,bxs
        call display
bxs:    sjmp main
;******************************
DISPLAY: nop
         mov  dptr,#tabh
         JB    0EH,DIS2a
         JB    0FH,DIS3a
         JB    10H,DIS4a
         JB    11H,DIS5a
         jb    14h,dis6a

         JNB    0DH,D_OUT1
         JNB   08H,D_GO   
         JNB   07H,D_OUT1
D_GO:   ;ljmp xwr
	MOV   DPTR,#tabh
         jb 1fh,xwr             ;xwr
         MOV   A,62H
         ANL   A,#0FH
         MOV   B,A
         MOV   A,62H
         SWAP  A
         da a
         anl a,#0fh     ;;;;;;;;;;;;;;;;;
         cjne a,#0,abw0jx
         mov 40h,#01
         ljmp tg1
abw0jx:  MOVC  A,@A+DPTR
         mov 40h,a	;1w
tg1:     MOV   A,B
         MOVC  A,@A+DPTR
         MOV   C,07H
         MOV   acc.0,C   ;秒灯闪烁

         mov 41h,a	;2w
         MOV   A,61H
         ANL   A,#0FH
         MOV   B,A
         MOV   A,61H
         SWAP  A
         ANL   A,#0FH
         MOVC  A,@A+DPTR
         MOV   C,07H
         MOV   acc.0,C   ;秒灯闪烁

         mov 43h,a	;4w
         MOV   A,B
         anl a,#0fh
         MOVC  A,@A+DPTR
         mov 44h,a	;5w

        mov a,65h
	anl a,#0fh
	cjne a,#07h,xssjz
	mov a,#8
xssjz:	movc a,@a+dptr
	mov 45h,a	;6w

	call xsh

d_out1: sjmp d_out
dis2a:  ajmp dis_2
dis3a:  ajmp dis_3
dis4a:  ajmp dis_4
dis5a:  ajmp dis_5
dis6a:  ajmp dis_6

xwr:    mov dptr,#tabl
	mov a,64h
        anl a,#0fh
        mov b,a
        mov a,64h
        swap a
        anl a,#0fh
        xrl a,#0
        jz bxnxgw
        movc a,@a+dptr
        mov 40h,a	;1w
        ljmp tg
bxnxgw: mov 40h,#0ffh	;1w bxs
tg:	mov a,b
        movc a,@a+dptr
        mov 41h,a	;2w
        mov a,63h
        anl a,#0fh
        mov b,a
        mov a,63h
        swap a
        anl a,#0fh
        movc a,@a+dptr
        mov 43h,a	;4w
        mov a,b
        movc a,@a+dptr
	mov 44h,a	;5w

	mov 45h,#01h	;6w r
	clr et0
	call xsl	;yr
	setb et0
D_OUT:   SETB  TR1
         RET
;*********************
DIS_2:   mov   dptr,#tabh ;显示设置小时
         MOV   6FH,62H
         CALL BCD_HEX
         MOV   B,#10
         DIV   AB
         anl a,#0fh
         MOVC  A,@A+DPTR
         mov 40h,a	;1w
         MOV   A,B
         anl a,#0fh
         MOVC  A,@A+DPTR
         mov 41h,a
	 mov 43h,#0		;min bxs
	 mov 44h,#0		;min bxs
         mov 45h,#0             ;;;;;;;;;;
         call xsh
         SETB  TR1
         RET
;*****************
DIS_3:   MOV   DPTR,#TABh ;显示设置分
         MOV   6FH,61H
         CALL BCD_HEX
         MOV   B,#10
         DIV   AB
         MOVC  A,@A+DPTR

         mov 43h,a	;4w
         MOV   A,B
         MOV   DPTR,#TABh
         MOVC  A,@A+DPTR

         mov 44h,a

         mov 40h,#0	;hour bxs
         mov 41h,#0	;hour bxs

         mov 45h,#0     ;;;;;;;;;;
         call xsh
         SETB  TR1
         RET
;*****************
DIS_4:   mov    dptr,#tabh
         JNB   07H,D4_OUT            ;显示时闪烁
         mov 6fh,64h
         acall bcd_hex
           ;MOV   A,64h;6BH
         MOV   B,#0AH
         DIV   AB
         anl a,#0fh
         MOVC  A,@A+DPTR
         mov 40h,a
         MOV   A,B
         MOVC  A,@A+DPTR
         mov 41h,a
	 mov 43h,#0
	 mov 44h,#0

         mov 45h,#0
         call xsh
D4_OUT:  SETB  TR1
         RET
;***********************
DIS_5:   MOV   DPTR,#TABh
         JNB   07H,D5_OUT              ;显示时闪烁
         mov 6fh,63h
         acall bcd_hex
         ;MOV   A,63h;6AH              ;显示设置闹分
         MOV   B,#0AH
         DIV   AB
         anl a,#0fh
         MOVC  A,@A+DPTR
         mov 43h,a
         MOV   DPTR,#TABh
         MOV   A,B
         MOVC  A,@A+DPTR
         mov 44h,a
	 mov 40h,#0
	 mov 41h,#0
         mov 45h,#0;;;;;;;;;;;;;;;;;;;;
         call xsh
D5_OUT:  SETB  TR1
         RET
dis_6:   mov dptr,#tabh
         mov a,65h
         anl a,#0fh
         cjne a,#0,abw0jx1
         mov a,#8
         ljmp ddd
abw0jx1: cjne a,#7,abw7jx2
         mov a,#8
abw7jx2:
ddd:     movc a,@a+dptr
         mov 45h,a
         mov 40h,#0
         mov 41h,#0
         mov 43h,#0
         mov 44h,#0
         call xsh
         ret
;*****************************
xsh:    clr p3.7	;sj
 	clr et0

        clr p3.5        ;1w
        setb p3.4
        clr p3.3
        mov p1,40h
        lcall xscd

        setb p3.5       ;2w
        clr p3.4
        clr p3.3
        mov p1,41h
        call xscd

        ;setb p3.5      ;3w
	;setb p3.4
        ;clr p3.3
        call xscd

        setb p3.5       ;4w
        clr p3.4
        setb p3.3
        mov p1,43h
        call xscd

        clr p3.5        ;5w
        setb p3.4
        setb p3.3
        mov p1,44h
        call xscd

        clr p3.5	;6w
        clr p3.4
        setb p3.3
        mov p1,45h
        setb et0;a
        call xscd

        ret
;------------------------------
xsl:    setb p3.7	;yr
        clr et0

        clr p3.5        ;1w
        setb p3.4
        clr p3.3
        mov p1,40h
        call xscd1

        setb et0
        setb p3.5
        setb p3.4
        setb p3.3
        call xscd
        clr et0
 ;-----------------------------------
        setb p3.5       ;2w
        clr p3.4
        clr p3.3
        mov p1,41h
        call xscd1

        setb et0
        setb p3.5
        setb p3.4
        setb p3.3
        call xscd
        clr et0
  ;-------------------------------------
        setb p3.5       ;3w
        setb p3.4
        clr p3.3
        ;mov p1,42h
        call xscd1

        setb et0
        setb p3.5
        setb p3.4
        setb p3.3
        call xscd
        clr et0
  ;-------------------------------------
        setb p3.5       ;4w
        clr p3.4
        setb p3.3
        mov p1,43h
        call xscd1

        setb et0
        setb p3.5
        setb p3.4
        setb p3.3
        call xscd
        clr et0
   ;----------------------------------------
        clr p3.5        ;5w
        setb p3.4
        setb p3.3
        mov p1,44h
        call xscd1

        setb et0
        setb p3.5
        setb p3.4
        setb p3.3
        call xscd
        clr et0
   ;-------------------------------------------
        clr p3.5	;6w
        clr p3.4
        setb p3.3
        mov p1,45h
        call xscd1

        mov p1,#0ffh
	setb et0
	call xscd1

        ret
;-------------------------
xscd:   nop
        mov 46h,#8h;18h;01h;18h
xs2:    mov 47h,#8h;3;22h
xs1:    ;nop
        ;nop
        ;nop
        djnz 47h,xs1
        djnz 46h,xs2
        mov p1,#01
        ret
;-----------------------------
xscd1:   nop
         mov 46h,#28
xs12:    mov 47h,#8
xs11:    ;nop
         djnz 47h,xs11
         djnz 46h,xs12
         ;mov p1,#0ffh
         ret
;**********读取1302时间*******
P_INT:   PUSH  ACC
         PUSH  PSW
         INC   R2
         CJNE  R2,#250D,P_OUT
         MOV   R2,#00H
         INC   R3
         CJNE  R3,#10D,P_OUT
         MOV   R3,#00H
         CPL   07H
         MOV   P1,#01h;FFH;;;;;;;;;;;;;;;;
         CALL R_1302
fj:      mov a,60h      ;second-->a
         anl a,#0fh
         mov b,a
         xrl a,#07h
         jnz paw0m
         setb 1fh
         nop
paw0m:  mov a,b
        xrl a,#0
        jnz pafh
        clr 1fh
        nop
pafh:   nop
        nop
OUT:     JNB   06H,P_OUT
         MOV   A,6BH
         MOV   B,#10
         DIV   AB
         SWAP  A
         ADD   A,B
         CJNE  A,62H,PP_OUT
         MOV   A,6AH
         MOV   B,#10
         DIV   AB
         SWAP  A
         ADD   A,B
         CJNE  A,61H,PP_OUT
         SETB  08H 
         MOV   C,07H
P_OUT:  POP   PSW
         POP   ACC
         RETI
PP_OUT:  ;SETB  K_ON
         CLR   08H
         POP   PSW
         POP   ACC
         RETI
;---------------------------------------------------------
TABh:   DB  0dfh,51h,0bbh,0f9h,75h,0edh,0efh,59h,0ffh,0fdh

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -