TXT

MAX7219

By Vernon Hayes,2014-04-13 02:12
8 views 0
MAX7219

     CLK BIT P1.5

     LOAD BIT P1.6

     DIN BIT P1.7

     LED_B EQU 30H

     CSDA BIT P1.2

     CSCL BIT P3.7 ;;;时间可以读出DS1302

     CRST BIT P1.3 ;;;

     CDZH EQU 01H ;;;地址高 RAM

     CDZL EQU 02H

     CWDZH EQU 03H ;;;

     CWDZL EQU 04H

     CRDZH EQU 05H

     CRDZL EQU 06H

     CR1 EQU 08H

     CR2 EQU 09H

     CR3 EQU 0AH

     CR4 EQU 0BH

     CR5 EQU 0CH

     CR6 EQU 0DH

     CR7 EQU 0EH

     CR8 EQU 0FH

     CLK_M EQU 30H ;; 命令

     CLK_D EQU 31H ;;;;数据

     POINT_1 EQU 32H ;;; 中间变量

     POINT_2 EQU 33H

     CLK_SG EQU 40H ;;;;时钟存储

     CLK_HS EQU 50H

     ORG 00H

     AJMP START

     START: MOV SP,#70H

     MOV R2,#072H

     LCALL INSTORG

     LCALL LED_PLAY

     ACALL DELAY

     ACALL DELAY

     LCALL LED_PLAY1

     ACALL DELAY

     MAIN:

     LCALL PAYING

     LCALL DISPLAY

     ACALL DELAY

     ACALL DELAY

     ACALL DELAY

     AJMP MAIN INSTORG: MOV A,#09H

     MOV B,#0FFH

     LCALL HARD_W

     MOV A,#0AH ;亮度

     MOV B,#08H

     LCALL HARD_W

     MOV A,#0BH ;界限

     MOV B,#07H

     LCALL HARD_W

     MOV A,#0CH

     MOV B,#01H

     LCALL HARD_W

     RET

    LED_PLAY: MOV A,#0FH

     MOV B,#0FFH

     LCALL HARD_W

     RET

    LED_PLAY1: MOV A,#0FH

     MOV B,#00H

     LCALL HARD_W

     RET

    DISPLAY: MOV R0,#LED_B

     MOV R4,#01H

     MOV R3,#08H

     PLAY_W: MOV A,@R0

     MOV B,A

     MOV A,R4

     LCALL HARD_W

     INC R0

     INC R4

     DJNZ R3,PLAY_W

     RET

     HARD_W: CLR LOAD

     LCALL OUT_SD

     MOV A,B

     LCALL OUT_SD

     SETB LOAD

     RET

     OUT_SD: MOV R5,#08H

     OUT_A: NOP

     CLR CLK

     RLC A

     MOV DIN,C

     NOP

     SETB CLK

     DJNZ R5,OUT_A

     REt

     PAYING: MOV R1,#LED_B

     MOV 09H,#0FH

     LOOP: MOV A,R2

     MOV @R1,A

     INC R1

     INC R2

     DJNZ 09H,LOOP

     RET

     start: MOV SP,#70H

     MOV P1,#0FFH

     MOV P3,#0FFH

     ACALL RAM_INIT

     ACALL HARDWART

     ACALL DELA

     ACALL READ_CLK

     ACALL SEND_M

     ACALL HADD

     ACALL WRITE_CLK MAIN: CPL P3.3

     ACALL READ_CLK

     ACALL DELAY

     ACALL DELAY

     CPL P3.3

     CPL P3.4

     ACALL SEND_M

     ACALL DELAY

     ACALL DELAY

     CPL P3.4

     AJMP MAIN

    HARDWART:MOV SCON,#40H

     MOV TMOD,#20H ;;;;;;;;;;;;;;;;;;;;;

     MOV TH1,#0FDH

     SETB TR1

     SETB TI

     RET

    RAM_INIT:MOV R0,#2 ;;;;;;;;;;;;;;;;;;;RAM

     MOV R1,#110

     CLR A

    CLEAN_RAM:MOV @R0,A

     INC R0

     DJNZ R1,CLEAN_RAM

     RET

    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;地址

CLK_COM2:MOV A,@R0

     MOV CLK_D,A

     INC R0

     ACALL W_CLK_M

     RET

    WRITE_CLK:

     ACALL CLR_WPRT

     MOV R0,#CLK_SG

     MOV CLK_M,#80H

     ACALL CLK_COM2

     MOV CLK_M,#82H

     ACALL CLK_COM2

     MOV CLK_M,#84H

     ACALL CLK_COM2

     MOV CLK_M,#86H

     ACALL CLK_COM2

     MOV CLK_M,#88H

     ACALL CLK_COM2

     MOV CLK_M,#8AH

     ACALL CLK_COM2

     MOV CLK_M,#8CH

     ACALL CLK_COM2

     ACALL SET_WPRT

     RET

    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    CLK_COM1:ACALL R_CLK_M

     MOV @R0,A

     INC R0

     RET

    READ_CLK:MOV R0,#CLK_HS

     MOV CLK_M,#81H

     ACALL CLK_COM1

     MOV CLK_M,#83H

     ACALL CLK_COM1

     MOV CLK_M,#85H

     ACALL CLK_COM1

     MOV CLK_M,#87H

     ACALL CLK_COM1

     MOV CLK_M,#89H

     ACALL CLK_COM1

     MOV CLK_M,#8BH

     ACALL CLK_COM1

     MOV CLK_M,#8DH

     ACALL CLK_COM1

     RET

     ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;写单字节M

    W_WR_M: MOV R2,#08H

     CLR CSDA

     CLR CSCL

     WR_CL: RRC A

     MOV CSDA,C

     ACALL A_DELAY

     SETB CSCL

     ACALL A_DELAY

     CLR CSCL

     DJNZ R2,WR_CL

     RET

    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;读单字节 R_RD_D: MOV R2,#08H

     SETB CSDA

     ACALL A_DELAY

     RD_D: MOV C,CSDA

     RRC A

     SETB CSCL

     ACALL A_DELAY

     CLR CSCL

     DJNZ R2,RD_D

     RET

    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    W_CLK_M:CLR CSCL

     SETB CRST

     MOV A,CLK_M

     ACALL W_WR_M

     MOV A,CLK_D

     ACALL W_WR_M

     CLR CRST

     RET

    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    R_CLK_M:CLR CSCL

     SETB CRST

     MOV A,CLK_M

     ACALL W_WR_M

     ACALL R_RD_D

     MOV CLK_D,A

     CLR CRST

     RET

    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    A_DELAY:NOP

     NOP

     RET

    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    CLR_WPRT:

     MOV CLK_M,#8EH

     MOV CLK_D,#00H

     ACALL W_CLK_M

     RET

     ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    SET_WPRT:MOV CLK_M,#8EH

     MOV CLK_D,#80H

     ACALL W_CLK_M

     RET

    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    SEND_M: MOV R2,#08H

     MOV R1,#CLK_HS SEN_M: JNB TI,$

     CLR TI

     MOV A,@R1

     mov sbuf,a

     INC R1

     ACALL DELA

     DJNZ R2,SEN_M

     RET

     ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

     HADD:

     MOV 40H,#11H

     MOV 41H,#03H

     MOV 42H,#0A3H

     MOV 43H,#0FH

     MOV 44H,#08H

     MOV 45H,#06H

     MOV 46H,#0FH

     RET

    DELA: MOV R3,#60

     LOOP: MOV R4,#70

     DJNZ R4,$

     DJNZ R3,LOOP

     RET

    DELAY: MOV R5,#0AH

     LLDL: MOV R6,#0FFH

     LLL: MOV R7,#0FFH

     DJNZ R7,$

     DJNZ R6,LLL

     DJNZ R5,LLDL

     RET

     END

Report this document

For any questions or suggestions please email
cust-service@docsford.com