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

📄 hd7279.asm

📁 HD7279的汇编操作程序
💻 ASM
字号:
;;;;;;;;;;;;;;;;;;;;;;;
;;    HD7279.ASM     ;;
;;;;;;;;;;;;;;;;;;;;;;;
PROC    HDWRITE,HD_WRITE,HD_READ,HD_RESET
HDWRITE:
        NOP
        MOV   A,LED_CAL
        ANL   A,#03H
        JNZ   HDWRITE1
        MOV   A,LED_CAL
        RR    A
        RR    A
        ANL   A,#0FH
        CJNE  A,#0FH,HDWRITE0
        LCALL HD_CLRFLASH
        SJMP  HDWRITE1
HDWRITE0:
        ADD   A,#LED_SBUF1
        MOV   R0,A
        MOV   A,LED_CAL
        RR    A
        RR    A
        MOV   C,ACC.3
        ANL   A,#07H
        ORL   A,#90H
        MOV   HD_CS1,C
        CPL   C
        MOV   HD_CS2,C
        CALL  HD_BWRITE
        ;CALL  HD_SEND
        ;MOV   A,@R0
        ;CALL  HD_SEND
        SETB  HD_CS1
        SETB  HD_CS2
HDWRITE1:
        INC   LED_CAL
HDWRITE_END:
        RET

HD_WRITE:
        NOP
        MOV   R0,#LED_SBUF1
        MOV   R1,#00H
        MOV   R2,#08H
HD_WRITE_LOOP1:
        MOV   A,R1
        ORL   A,#90H
        CLR   HD_CS1
        CALL  HD_SEND
        MOV   A,@R0
        CALL  HD_SEND
        INC   R0
        INC   R1
        DJNZ  R2,HD_WRITE_LOOP1
        SETB  HD_CS1

        MOV   R0,#LED_SBUF9
        MOV   R1,#00H
        MOV   R2,#08H
HD_WRITE_LOOP2:
        MOV   A,R1
        ORL   A,#90H
        CLR   HD_CS2
        CALL  HD_SEND
        MOV   A,@R0
        CALL  HD_SEND
        INC   R0
        INC   R1
        DJNZ  R2,HD_WRITE_LOOP2
        SETB  HD_CS2
        RET

HD_READ:
        NOP
        MOV   A,#15H
        CLR   HD_CS2
        CALL  HD_SEND
        CALL  HD_RECEIVE
        SETB  HD_CS2
        RET

HD_RESET:
        NOP
        MOV   A,#0A4H
        CLR   HD_CS1
        CALL  HD_SEND
        SETB  HD_CS1
        MOV   A,#0A4H
        CLR   HD_CS2
        CALL  HD_SEND
        SETB  HD_CS2
        RET

;HD_TEST:
;        NOP
;        MOV   A,#0BFH
;        CALL  HD_SEND
;        SETB  HD_CS1
;        RET

;HD_LEFT:
;        NOP
;        MOV   A,#0A3H
;        CALL  HD_SEND
;        SETB  HD_CS1
;        RET

;HD_RIGHT:
;        NOP
;        MOV   A,#0A2H
;        CALL  HD_SEND
;        SETB  HD_CS1
;        RET

;HD_HIDE:    ;;INPUT:  A (HIDE BIT)
;        NOP
;        PUSH  A
;        MOV   A,#98H
;        CALL  HD_SEND
;        POP   A
;        CALL  HD_SEND
;        SETB  HD_CS1
;        RET

;HD_FLASH:   ;;INPUT:  A (FLASH BIT)
;        NOP
;        PUSH  A
;        MOV   A,#88H
;        CALL  HD_SEND
;        POP   A
;        CALL  HD_SEND
;        SETB  HD_CS1
;        RET
HD_CLRFLASH:
        NOP
        CLR   HD_CS1
        MOV   A,#88H
        CALL  HD_SEND
        MOV   A,#0FFH
        CALL  HD_SEND
        SETB  HD_CS1
        CLR   HD_CS2
        MOV   A,#88H
        CALL  HD_SEND
        MOV   A,#0FFH
        CALL  HD_SEND
        SETB  HD_CS2
        RET

HD_BWRITE:
        NOP
        PUSH  01H
        MOV   R1,#08H
        CALL  DELAY_50US
        CLR   C
HD_BWRITE_LOOP1:
        RLC   A
        MOV   HD_DATA,C
        SETB  HD_CLK
        CALL  DELAY_8US
        CLR   HD_CLK
        CALL  DELAY_8US
        DJNZ  R1,HD_BWRITE_LOOP1
        CLR   HD_DATA
        MOV   A,@R0
        MOV   R1,#08H
        ;CALL  DELAY_50US
        CLR   C
HD_BWRITE_LOOP2:
        RLC   A
        MOV   HD_DATA,C
        SETB  HD_CLK
        CALL  DELAY_8US
        CLR   HD_CLK
        CALL  DELAY_8US
        DJNZ  R1,HD_BWRITE_LOOP2
        CLR   HD_DATA
        POP   01H
        RET

HD_SEND:      ;;INPUT:  A
        NOP
        XCH   A,R0
        PUSH  A
        MOV   A,R0
        MOV   R0,#08H
;        CLR   HD_CS1
        CALL  DELAY_50US
        CLR   C
HD_SEND_LOOP:
        RLC   A
        MOV   HD_DATA,C
        SETB  HD_CLK
        CALL  DELAY_8US
        CLR   HD_CLK
        CALL  DELAY_8US
        DJNZ  R0,HD_SEND_LOOP
        CLR   HD_DATA
        POP   A
        MOV   R0,A
        RET

HD_RECEIVE:   ;;OUTPUT:  A
        NOP
        MOV   A,R0
        PUSH  A
        MOV   R0,#08H
        SETB  HD_DATA
        CALL  DELAY_50US
HD_RECEIVE_LOOP:
        SETB  HD_CLK
        CALL  DELAY_8US
        MOV   C,HD_DATA
        RLC   A
        CLR   HD_CLK
        CALL  DELAY_8US
        DJNZ  R0,HD_RECEIVE_LOOP
        CLR   HD_DATA
        XCH   A,R0
        POP   A
        XCH   A,R0
        RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DELAY_50US:     ;50US
        NOP
        PUSH  B
        MOV   B,#32H
DELAY_50US1:
        NOP
        DJNZ  B,DELAY_50US1
        POP   B
        RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DELAY_8US:
        NOP
        PUSH  B
        MOV   B,#06H
DELAY_8US1:
        NOP
        DJNZ  B,DELAY_8US1
        POP   B
        RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
END

⌨️ 快捷键说明

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