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

📄 8.asm

📁 改进的七段显示电子钟
💻 ASM
📖 第 1 页 / 共 2 页
字号:
;
STACK               SEGMENT STACK 'STACK'
                    DB 1024 DUP (0)
STACK               ENDS
;
DATA                SEGMENT
BWORD   EQU         THIS  BYTE
                    R0    DW   (?)
                    R1    DW   (?)
                    R2    DW   (?)
                    R3    DW   (?)
                    R4    DW   (?)
                    R5    DW   (?)
                    R6    DW   (?)
                    R7    DW   (?)
;
TEMP1               DW    (?)
TEMP2               DW    (?)
TEMP3               DW    (?)
TEMP4               DW    (?)
;
LED1                DB    (?)
LED2                DB    (?)
LED3                DB    (?)
LED4                DB    (?)
LED5                DB    (?)
LED6                DB    (?)
LED7                DB    (?)
LED8                DB    (?)
LED9                DB    (?)
LED10               DB    (?)
LED11               DB    (?)
LED12               DB    (?)
LED13               DB    (?)
LED14               DB    (?)
LED15               DB    (?)
LED16               DB    (?)
LED17               DB    (?)
LED18               DB    (?)
LED19               DB    (?)
;------------------------------------------------------------------
YEAR_REG            DB    (?)
MOTH_REG            DB    (?)
DATE_REG            DB    (?)
S_REG               DB    (?)
M_REG               DB    (?)
H_REG               DB    (?)

;------------------------------------------------------------------


F0      DB    7
        DB    5FH,0AH,0,0
        DB    7CH,0AH,1,-1                                                                  
        DB    7CH,0AH,1,0                            
        DB    5FH,0AH,0,1
        DB    7CH,0AH,0,1
        DB    7CH,0AH,-1,0
        DB    5FH,0,0,-1

F1      DB    7
        DB    5FH,0,0,0
        DB    7CH,0,1,-1
        DB    7CH,0,1,0
        DB    5FH,0,0,1
        DB    7CH,0AH,0,1
        DB    7CH,0AH,-1,0
        DB    5FH,0,0,-1


F2      DB    7
        DB    5FH,0AH,0,0
        DB    7CH,0,1,-1
        DB    7CH,0AH,1,0
        DB    5FH,0AH,0,1
        DB    7CH,0,0,1
        DB    7CH,0AH,-1,0
        DB    5FH,0AH,0,-1

F3      DB    7
        DB    5FH,0AH,0,0
        DB    7CH,0,1,-1
        DB    7CH,0,1,0
        DB    5FH,0AH,0,1
        DB    7CH,0AH,0,1
        DB    7CH,0AH,-1,0
        DB    5FH,0AH,0,-1


F4      DB    7
        DB    5FH,0,0,0
        DB    7CH,0AH,1,-1
        DB    7CH,0,1,0
        DB    5FH,0,0,1
        DB    7CH,0AH,0,1
        DB    7CH,0AH,-1,0
        DB    5FH,0AH,0,-1
F5      DB    7
        DB    5FH,0AH,0,0
        DB    7CH,0AH,1,-1
        DB    7CH,0,1,0
        DB    5FH,0AH,0,1
        DB    7CH,0AH,0,1
        DB    7CH,0,-1,0
        DB    5FH,0AH,0,-1

F6      DB    7
        DB    5FH,0AH,0,0
        DB    7CH,0AH,1,-1                          
        DB    7CH,0AH,1,0
        DB    5FH,0AH,0,1
        DB    7CH,0AH,0,1
        DB    7CH,0,-1,0
        DB    5FH,0AH,0,-1

F7      DB    7
        DB    5FH,0AH,0,0
        DB    7CH,0,1,-1
        DB    7CH,0,1,0
        DB    5FH,0,0,1
        DB    7CH,0AH,0,1
        DB    7CH,0AH,-1,0
        DB    5FH,0,0,-1
F8      DB    7
        DB    5FH,0AH,0,0
        DB    7CH,0AH,1,-1
        DB    7CH,0AH,1,0
        DB    5FH,0AH,0,1
        DB    7CH,0AH,0,1
        DB    7CH,0AH,-1,0
        DB    5FH,0AH,0,-1

F9      DB    7
        DB    5FH,0AH,0,0
        DB    7CH,0AH,1,-1
        DB    7CH,0,1,0
        DB    5FH,0AH,0,1
        DB    7CH,0AH,0,1
        DB    7CH,0AH,-1,0
        DB    5FH,0AH,0,-1                                                
;-----------------------------------------------------------------
ROW               DB    20
COL               DB    10
T0                DB    0
T1                DB    0
T2                DB    0
T3                DB    0

T4                DB    0
T5                DB    0

;-----------------------------------------------------------------
MONDAY            DB    'M','o','n','d','a','y'              ;6
TUESDAY           DB    'T','u','e','s','d','a','y'          ;7
WEDNESDAY         DB    'W','e','d','n','e','s','d','a','y'  ;9
THURESDAY         DB    'T','h','u','r','s','d','a','y'      ;8
FRIDAY            DB    'F','r','i','d','a','y'              ;6
SATURDAY          DB    'S','a','t','u','r','d','a','y'      ;8
SUNDAY            DB    'S','u','n','d','a','y'              ;6
WEEK_COL          DB     40

;--------------------------------------------------------------------


DATA                ENDS
;
VIDEO               SEGMENT  AT  0B800H
WD_BUFFER           LABEL    WORD
V_BUFF              DB       25*80*2 DUP  (?)
VIDEO               ENDS
;
PROGrAM             SEGMENT
;
MAIN                PROC FAR
                    ASSUME  CS:PROGRAM,DS:DATA,SS:STACK,ES:VIDEO
;
START:              PUSH   DS
                    MOV    AX,0
                    PUSH   AX
                    
                    MOV    AX,DATA
                    MOV    DS,AX
                    MOV    AX,VIDEO
                    MOV    ES,AX

                    MOV    TEMP1,0000H
                    MOV    TEMP2,184FH
                    MOV    BH,0FH
                    CALL   CLR_SCREEN
                    CALL      WEEK
                    


                    
DO_WAIT:            MOV    AH,1
                    INT    16H
                    JZ     NO_KEY
YES_KEY:            MOV    AH,0
                    INT    16H
                    CMP    AL,1BH
                    JNZ    NO_KEY
                    CALL   EXIT
NO_KEY:             CALL   READ_TIME
                    CALL   READ_DATE
                    CALL   CONVERT_ASCII
                    MOV    AX,0A2eH
                    MOV    CX,092BH
                    CALL   DISPLAY
                    MOV    CH,0AH
                    CALL   DISPLAY
                    MOV    CL,21H
                    CALL   DISPLAY
                    MOV    CH,09H
                    CALL   DISPLAY                                       
                    CALL   MOVE
                    CALL   LOGO
                    CALL   DISPLAY_DATE
                    JMP    DO_WAIT
                    
EXIT:               MOV    TEMP1,0000H
                    MOV    TEMP2,184FH
                    MOV    BH,0FH
                    CALL   CLR_SCREEN
                    RET
MAIN                ENDP

READ_TIME           PROC   NEAR
                    MOV    AH,02H
                    INT    1AH
                    MOV    H_REG,CH
                    MOV    M_REG,CL
                    MOV    S_REG,DH
                    RET
READ_TIME           ENDP

READ_DATE           PROC   NEAR
                    MOV    AH,04H
                    INT    1AH
                    MOV    YEAR_REG,CL
                    MOV    MOTH_REG,DH
                    MOV    DATE_REG,DL
                    RET
reAd_dAte           ENDP
CONVERT_ASCII       PROC   NEAR
                    MOV    AL,H_REG
                    AND    AL,0F0H
                    MOV    CL,4
                    ROR    AL,CL
                    ADD    AL,30H
                    MOV    LED1,AL
                    MOV    AL,H_REG
                    AND    AL,0FH
                    ADD    AL,30H
                    MOV    LED2,AL
                    
                    MOV    AL,M_REG
                    AND    AL,0F0H
                    MOV    CL,4
                    ROR    AL,CL
                    ADD    AL,30H
                    MOV    LED4,AL
                    MOV    AL,M_REG
                    AND    AL,0FH
                    ADD    AL,30H
                    MOV    LED5,AL
                    
                    MOV    AL, S_REG
                    AND    AL,0F0H
                    MOV    CL,4
                    ROR    AL,CL
                    ADD    AL,30H
                    MOV    LED7,AL
                    MOV    AL,S_REG
                    AND    AL,0FH
                    ADD    AL,30H
                    MOV    LED8,AL
                    MOV    LED3,3AH
                    MOV    LED6,3AH

                    MOV    AL,YEAR_REG
                    AND    AL,0F0H
                    MOV    CL,4
                    ROR    AL,CL
                    ADD    AL,30H
                    MOV    LED12,AL
                    MOV    AL,YEAR_REG
                    AND    AL,0FH
                    ADD    AL,30H
                    MOV    LED13,AL
                    MOV    AL,MOTH_REG
                    AND    AL,0F0H
                    MOV    CL,4
                    ROR    AL,CL
                    ADD    AL,30H
                    MOV    LED15,AL
                    MOV    AL,MOTH_REG
                    AND    AL,0FH
                    ADD    AL,30H
                    MOV    LED16,AL
                    
                    MOV    AL,DATE_REG
                    AND    AL,0F0H
                    MOV    CL,4
                    ROR    AL,CL
                    ADD    AL,30H
                    MOV    LED18,AL
                    MOV    AL,DATE_REG
                    AND    AL,0FH
                    ADD    AL,30H
                    MOV    LED19,AL
                    MOV    LED10,32H
                    MOV    LED11,30H
                    MOV    LED14,2DH
                    MOV    LED17,2DH
                    RET
CONVERT_ASCII       ENDP

⌨️ 快捷键说明

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