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

📄 dskeyn.asm

📁 视频监控控制键盘原代码
💻 ASM
📖 第 1 页 / 共 5 页
字号:
              MOV   4FH,    #04H
              MOV    34H,      #0CBH
              MOV    35H,      #0C4H
              MOV    36H,      #0BBH
              MOV    37H,      #0ADH
              MOV    38H,      #0C3H
              MOV    39H,      #0E6H
              LCALL  LCDSHOW_DATA
              LCALL   ORDER_SEND
LOOP55:       LJMP   KEY_SCANRET
KEY_5H6L:     MOV     TH0,      #00H
              MOV     TL0,      #00H
              CJNE   A,     #56H,    KEY_5H7L
              CLR    KEY_DATA_C
              JNB    SHIFT_LED,  LOOP56
              MOV   41H,    #12H          ;键"九画面"
              MOV   42H,    #0EFH
              MOV   4FH,    #04H
              MOV    34H,      #0BEH
              MOV    35H,      #0C5H
              MOV    36H,      #0BBH
              MOV    37H,      #0ADH
              MOV    38H,      #0C3H
              MOV    39H,      #0E6H
              LCALL  LCDSHOW_DATA
              LCALL   ORDER_SEND
LOOP56:       LJMP   KEY_SCANRET
KEY_5H7L:     MOV    TH0,    #00H
              MOV    TL0,    #00H
              CJNE   A,     #57H,     KEY_SCANRET
              CLR    KEY_DATA_C
              JNB    SHIFT_LED,  LOOP57
              MOV   41H,    #12H          ;键"十六画面"
              MOV   42H,    #0EFH
              MOV   4FH,    #04H
              MOV    34H,      #0CAH
              MOV    35H,      #0AEH
              MOV    36H,      #0C1H
              MOV    37H,      #0F9H
              MOV    38H,      #0BBH
              MOV    39H,      #0ADH
              MOV    3AH,      #0C3H
              MOV    3BH,      #0E6H
              LCALL  LCDSHOW_DATA
              LCALL   ORDER_SEND
              LJMP   KEY_SCANRET
LOOP57:       MOV   41H,    #12H          ;键"轮巡"
              MOV   42H,    #0DFH
              MOV   4FH,    #04H
              MOV    34H,      #0C2H
              MOV    35H,      #0D6H
              MOV    36H,      #0D1H
              MOV    37H,      #0B2H
              MOV    38H,      #20H
              MOV    39H,      #20H
              MOV    3AH,      #20H
              MOV    3BH,      #20H
              LCALL  LCDSHOW_DATA
              LCALL   ORDER_SEND
KEY_SCANRET:  MOV    TH0,      #00H
              MOV    TL0,      #00H
              MOV    P1,       #0FFH
              MOV    P2,       #0E0H
              CPL    WATCH_DOG
              MOV    A,        P1
              CJNE   A,        #0FFH,  KEY_SCANRET
              JNB    P2.5,     KEY_SCANRET
              MOV    43H,      #00H
              LCALL  ORDER_SEND
              SETB     EA
              SETB     EX0
              SETB     EX1
              MOV     TH0,      #00H
              MOV     TL0,      #00H
              NOP
              NOP
              POP    DPL
              POP    DPH
              RETI

;************************************
;         数字合成子程序
;************************************
ADD_NUM:   MOV   A,     KEY_TIMES
           CJNE  A,  #00H,  ADD_NUM_N1
           MOV   22H,   20H
           LJMP  ADD_RET
ADD_NUM_N1:MOV   A,     20H
           MOV   B,     #0AH
           MUL   AB
           ADD   A,      21H
           MOV   22H,    A      ;合成值存入22H
ADD_RET:   RET

;****************************************
;       第一行显示子程序
;****************************************
LCDSHOW_MADD: MOV   TH0,    #00H              ;T0清零
              MOV   TL0,    #00H
              CPL   WATCH_DOG
              NOP
              MOV     WORD_NUM,    #08H        ;字符数
              MOV     A,    #80h
              LCALL   ORDER_INPUT
              NOP
              NOP
              MOV     R0,      #30H
LCD_CONTA:    MOV     A,       @R0
              PUSH   DPH
              PUSH   DPL
              LCALL  DATA_INPUT
              NOP
              POP    DPL
              POP    DPH
              INC    R0
              MOV    A,       @R0
              PUSH   DPH
              PUSH   DPL
              LCALL  DATA_INPUT
              NOP
              POP    DPL
              POP    DPH
              INC    R0
              DJNZ   WORD_NUM,   LCD_CONTA
              RET
;****************************************
;             指令动态显示子程序
;***************************************

LCDSHOW_DATA: MOV   TH0,    #00H              ;T0清零
              MOV   TL0,    #00H
              CPL   WATCH_DOG
              NOP
              MOV     WORD_NUM,    #08H        ;字符数
              MOV     A,    #88h
              LCALL   ORDER_INPUT
              NOP
              NOP
              MOV     R0,      #30H
LCD_CONT:     MOV     A,       @R0
              PUSH   DPH
              PUSH   DPL
              LCALL  DATA_INPUT
              NOP
              POP    DPL
              POP    DPH
              INC    R0
              MOV    A,       @R0
              PUSH   DPH
              PUSH   DPL
              LCALL  DATA_INPUT
              NOP
              POP    DPL
              POP    DPH
              INC    R0
              DJNZ   WORD_NUM,   LCD_CONT
              RET

;****************************************
;            录象动态显示子程序
;***************************************

LCDSHOW_REC:  MOV   TH0,    #00H              ;T0清零
              MOV   TL0,    #00H
              CPL   WATCH_DOG
              NOP
              MOV     WORD_NUM,    #08H        ;字符数
              MOV     A,    #90h
              LCALL   ORDER_INPUT
              NOP
              NOP
              MOV     R0,      #70H
 LCD_REC_CONT: MOV   TH0,   #00H              ;T0清零
              MOV   TL0,   #00H
              MOV     A,       @R0
              PUSH   DPH
              PUSH   DPL
              LCALL  DATA_INPUT
              NOP
              POP    DPL
              POP    DPH
              INC    R0
              MOV    A,       @R0
              PUSH   DPH
              PUSH   DPL
              MOV   TH0,   #00H              ;T0清零
              MOV   TL0,   #00H
              LCALL  DATA_INPUT
              NOP
              POP    DPL
              POP    DPH
              INC    R0
              DJNZ   WORD_NUM,   LCD_REC_CONT
              RET

;****************************************
;         串行通讯中断子程序
;****************************************

RS_LINK:   PUSH   DPH
           PUSH   DPL
           PUSH   PSW
           JNB    RI,   RSLINK_RETC
           CLR    RI
           CLR    ES
           CLR    EA
           CPL    WATCH_DOG
           MOV   TH0,   #00H              ;T0清零
           MOV   TL0,   #00H
           MOV    A,     SBUF
           CJNE   A,   #0FFH,   RSLINK_RETC
RSLINK_SELFR1:MOV   TH0,   #00H            ;T0清零
           MOV   TL0,   #00H
           CPL    WATCH_DOG
           JNB    RI,   RSLINK_SELFR1
           MOV    A,    SBUF
           CLR    RI
           MOV    5AH,   A                 ;第二字节存入5AH
RSLINK_SELFR2:MOV   TH0,   #00H            ;T0清零
           MOV   TL0,   #00H
           CPL    WATCH_DOG
           JNB    RI,   RSLINK_SELFR2
           MOV    A,    SBUF
           CLR    RI
           MOV    5BH,  A                  ;第三字节存入5BH
RSLINK_SELFR3: MOV   TH0,   #00H           ;T0清零
           MOV   TL0,   #00H
           CPL    WATCH_DOG
           JNB    RI,    RSLINK_SELFR3
           MOV    A,     SBUF
           CLR    RI
           MOV    5CH,   A                 ;第四字节存入5CH
           MOV    A,      5AH              ;取出指令
           CJNE   A,     #0CH,  RSLINK_REC
           MOV    TH0,   #00H
           MOV    TL0,   #00H
           CPL    WATCH_DOG
           MOV   40H,    #0FFH
           MOV   41H,    #0CH
           MOV   42H,    #02H
           MOV   43H,    #0DH
           LCALL  ORDER_SEND
           LJMP   RSLINK_RET

RSLINK_RETC:  LJMP   RSLINK_RET

RSLINK_REC:  MOV   TH0,   #00H              ;T0清零
             MOV   TL0,   #00H
             CPL   WATCH_DOG
             CJNE  A,    #08H,  RSLINK_RETC ;录象指示灯
             MOV    A,      5BH
             ANL    A,      #01H
             ADD    A,      #0F0H
             MOV    71H,    A
             MOV    A,      5BH
             ANL    A,      #02H
             RR     A
             ADD    A,      #0F0H
             MOV    73H,    A
             MOV   TH0,   #00H              ;T0清零
             MOV   TL0,   #00H
             CPL   WATCH_DOG
             MOV    A,      5BH
             ANL    A,      #04H
             RR     A
             RR     A
             ADD    A,      #0F0H
             MOV    75H,    A
             MOV   TH0,   #00H              ;T0清零
             MOV   TL0,   #00H
             CPL   WATCH_DOG
             MOV    A,      5BH
             ANL    A,      #08H
             RR     A
             RR     A
             RR     A
             ADD    A,      #0F0H
             MOV    77H,    A
             MOV    A,      5BH
             ANL    A,      #10H
             RR     A
             RR     A
             RR     A
             RR     A
             ADD    A,      #0F0H
             MOV    79H,    A
             MOV   TH0,   #00H              ;T0清零
             MOV   TL0,   #00H
             CPL   WATCH_DOG
             MOV    A,      5BH
             ANL    A,      #20H
             RR     A
             RR     A
             RR     A
             RR     A
             RR     A
             ADD    A,      #0F0H
             MOV    7BH,    A
             MOV    A,      5BH
             ANL    A,      #40H
             RR     A
             RR     A
             RR     A
             RR     A
             RR     A
             RR     A
             ADD    A,      #0F0H
             MOV    7DH,    A
             MOV   TH0,   #00H              ;T0清零
             MOV   TL0,   #00H
             CPL   WATCH_DOG
             MOV    A,      5BH
             ANL    A,      #80H
             RR     A
             RR     A
             RR     A
             RR     A
             RR     A
             RR     A
             RR     A
             ADD    A,      #0F0H
             MOV    7FH,    A
             MOV   TH0,   #00H              ;T0清零
             MOV   TL0,   #00H
             CPL   WATCH_DOG
             MOV    70H,    #0A1H
             MOV    72H,    #0A1H
             MOV    74H,    #0A1H
             MOV    76H,    #0A1H
             MOV    78H,    #0A1H
             MOV    7AH,    #0A1H
             MOV    7CH,    #0A1H
             MOV    7EH,    #0A1H
             LCALL  LCDSHOW_REC
RSLINK_RET:  POP    PSW
             POP    DPL
             POP    DPH
             SETB   ES
             MOV    TH0,    #00H
             MOV    TL0,    #00H
             CPL    WATCH_DOG
             RETI

;****************************************
;         指令发送子程序
;****************************************

ORDER_SEND: MOV   TH0,   #00H              ;T0清零
           MOV   TL0,   #00H
           CPL    WATCH_DOG
           CLR    ES
           CLR    EA
           SETB   RS485_TR
           NOP
           NOP
           MOV    R0,     #40H
           MOV    R3,     #04H
ORDER_CONT: MOV    A,      @R0
           MOV    SBUF,   A
           MOV   TH0,     #00H              ;T0清零
           MOV   TL0,     #00H
ORDER_HERE: MOV   TH0,   #00H              ;T0清零
           MOV   TL0,   #00H
           CPL   WATCH_DOG
           JNB    TI,  ORDER_HERE
           CLR    TI
           INC    R0
           DJNZ   R3,     ORDER_CONT
           NOP
SEND_RET:  CLR    RS485_TR
           CLR    TI
           CLR    RI
           SETB   ES
      

⌨️ 快捷键说明

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