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

📄 ick.asm

📁 EEPROM记忆类IC的检测,可以设置地址,检测存储器任何地址上的数据,并带数码管显示功能
💻 ASM
📖 第 1 页 / 共 2 页
字号:
;*************************************************************
; P3.0 IS LIE 1
; P3.1 IS LIE 2
; P3.2 IS LIE 3
; P3.3 IS LIE 4
; P3.4 IS HANG 1
; P3.5 IS HANG 2
; P3.6 IS HANG 3
; P3.7 IS HANG 4
;*************************************************************
; 5EH SAVE LOW DATA
; 5FH SAVE HIGH DATA
; 60H SAVE LOWER ADDRESS
; 61H SAVE LOW ADDRESS
; 62H SAVE HIGH ADDRESS
; 63H SAVE HIGHER ADDRESS
; 64H SAVE SURE ADDRESS
; 65H SAVE READ_OUT_DATA OF IC1
; 66H SAVE READ_OUT_DATA OF IC2
; 67H SAVE INPUT NUMBER
; 68H SAVE R4(60H,61H) OF START_ADDRESS
; 69H SAVE 62H OF START_ADDRESS
; 6AH SAVE R4(60H,61H) OF END_ADDRESS
; 6BH SAVE 62H OF END_ADDRESS
; 6CH SAVE PAGE_READ NUMBER
;*************************************************************
;         SCL EQU P1.0
;        SDA1 EQU P1.1
;        SDA2 EQU P1.2
;    NEXT_KEY EQU P1.3
;    SURE_KEY EQU P1.4
;     COM_KEY EQU P1.5
;    READ_KEY EQU P1.6
;REDUCE/S_E_KEY EQU P1.7
;      OK_KEY EQU P2.6
;   FALSE_KEY EQU P2.7
;*************************************************************
                  ORG 0000H
                  AJMP MAIN
                  ORG 000BH
                  AJMP ITOP
                  ORG 0050H
             MAIN:MOV TMOD,#00H     ;T0 WORK AT MODE0.
                  MOV TH0,#0D8H
                  MOV TL0,#0F0H
                  MOV 67H,#00H
                  MOV 63H,#00H
                  MOV 62H,#00H
                  MOV 61H,#00H
                  MOV 60H,#02H
                  MOV 5FH,#0FH
                  MOV 5EH,#0FH
                  MOV R0,#63H
                  MOV R1,#75H
                  MOV 32H,#00H
                  MOV 50H,#0DFH
                  MOV 51H,#06H
                  SETB EA
                  SETB ET0
            JUDGE:SETB TR0
                  LCALL KEY_BOARD
                  JNB P1.3,NEXT     ;NEXT_KEY PRESSED?
                  JNB P1.7,REDUCE   ;REDUCE/S_E_KEY PRESSED?
                  JNB P1.5,COM1
                  JNB P1.6,READ1
                  AJMP JUDGE
            READ1:AJMP READ_IC
             COM1:AJMP COM
;*************************************************************
             NEXT:LCALL DLY100MS
                  JNB P1.3,NEXT_ADDRESS
                  AJMP JUDGE
     NEXT_ADDRESS:JNB P1.3,$
                  LCALL NEXT_SUB
                  AJMP JUDGE
         NEXT_SUB:MOV A,60H
                  CLR C
                  SUBB A,#0FH
                  JNZ ENABLE_GJIA_1
         JINGWEI1:MOV 60H,#00H
                  MOV A,61H
                  CLR C
                  SUBB A,#0FH
                  JNZ ENABLE_SJIA_1
         JINGWEI2:MOV 60H,#00H
                  MOV 61H,#00H
                  MOV A,62H
                  CLR C
                  SUBB A,#0FH
                  JNZ ENABLE_QJIA_1
         JINGWEI3:MOV 63H,#00H
                  MOV 60H,#00H
                  MOV 61H,#00H
                  MOV 62H,#00H
                  SJMP OUT_JIA
    ENABLE_GJIA_1:INC 60H
                  SJMP OUT_JIA
    ENABLE_SJIA_1:INC 61H
                  SJMP OUT_JIA
    ENABLE_QJIA_1:INC 62H
          OUT_JIA:RET
;*************************************************************
           REDUCE:LCALL DLY100MS
                  JNB P1.7,REDUCE_ADDRESS
                  AJMP JUDGE
   REDUCE_ADDRESS:JNB P1.7,$
                  LCALL REDUCE_SUB
                  AJMP JUDGE
       REDUCE_SUB:MOV A,60H
                  JNZ ENABLE_GJIAN_1
                  MOV A,61H         ;61H EQUAL ZERO
                  JNZ ENABLE_SJIAN_1
                  MOV A,62H         ;62H AND 62H EQUAL ZERO
                  JNZ ENABLE_QJIAN_1
;                  MOV A,63H         ;63H,62H AND 61H EQUAL ZERO
;                  JNZ ENABLE_WJIAN_1
                  SJMP OUT_JIAN        ;63H,62H,61H,60H ALL EQUAL ZERO,JMP JUDGE
   ENABLE_GJIAN_1:DEC 60H
                  SJMP OUT_JIAN
   ENABLE_SJIAN_1:MOV 60H,#0FH
                  DEC 61H
                  SJMP OUT_JIAN
   ENABLE_QJIAN_1:MOV 60H,#0FH
                  MOV 61H,#0FH
                  DEC 62H
;   ENABLE_WJIAN_1:MOV 60H,#0FH
;                  MOV 61H,#0FH
;                  MOV 62H,#0FH
;                  DEC 63H
          OUT_JIAN:RET
;*************************************************************
;    CHECK_IC_TYPE:CLR TR0
;                  LCALL ST
;                  MOV A,#0A8H
;                  LCALL WRBYT2
;                  LCALL CACK
;                  JNB F0,C16
;                  LCALL ST
;                  MOV A,#0A4H
;                  LCALL WRBYT2
;                  LCALL CACK
;                  JNB F0,C08
;                  LCALL ST
;                  MOV A,#0A2H
;                  LCALL WRBYT2
;                  LCALL CACK
;                  JNB F0,C04
;              C02:MOV A,62H
;                  JNZ ALARM
;                  SJMP OUT
;              C04:MOV A,#01H
;                  CLR C
;                  SUBB A,62H
;                  JC ALARM
;                  SJMP OUT
;              C08:MOV A,#03H
;                  CLR C
;                  SUBB A,62H
;                  JC ALARM
;                  SJMP OUT
;              C16:MOV A,#07H
;                  CLR C
;                  SUBB A,62H
;                  JC ALARM
;                  SJMP OUT
;            ALARM:CPL P2.7
;                  LCALL DLY2S
;              OUT:SETB TR0
;                  RET
;*************************************************************
        KEY_BOARD:MOV P3,#0F0H      ;SET LIE TO OUTPUT(LOW VOLTAGE).
             JUG0:JNB P3.4,DLY_HANG1    
             JUG1:JNB P3.5,DLY_HANG2
             JUG2:JNB P3.6,DLY_HANG3
             JUG3:JNB P3.7,DLY_HANG4
                  AJMP JUMP_OUT
        DLY_HANG1:LCALL DLY20MS
                  JNB P3.4,JUG4 ;SOME KEY ON HANG1 WAS PRESSED.
                  AJMP JUMP_OUT
        DLY_HANG2:LCALL DLY20MS
                  JNB P3.5,JUG5 ;SOME KEY ON HANG2 WAS PRESSED.
                  AJMP JUMP_OUT
        DLY_HANG3:LCALL DLY20MS
                  JNB P3.6,JUG6 ;SOME KEY ON HANG3 WAS PRESSED.
                  AJMP JUMP_OUT
        DLY_HANG4:LCALL DLY20MS
                  JNB P3.7,JUG7 ;SOME HEY ON HANG4 WAS PRESSED.
                  AJMP JUMP_OUT
             JUG4:MOV P3,#0FH  ;SET HANG TO OUTPUT(LOW VOLTAGE)
                  JNB P3.0,DLY_H1_L1 ;KEY ON HANG1 AND LIE1 WAS PRESSED?
                  JNB P3.1,DLY_H1_L2 ;KEY ON HANG1 AND LIE2 WAS PRESSED?
                  JNB P3.2,DLY_H1_L3 ;KEY ON HANG1 AND LIE3 WAS PRESSED?
                  JNB P3.3,DLY_H1_L4 ;KEY ON HANG1 AND LIE4 WAS PRESSED?
             JUG5:MOV P3,#0FH
                  JNB P3.0,DLY_H2_L1 ;KEY ON HANG2 AND LIE1 WAS PRESSED?
                  JNB P3.1,DLY_H2_L2 ;KEY ON HANG2 AND LIE2 WAS PRESSED?
                  JNB P3.2,DLY_H2_L3 ;KEY ON HANG2 AND LIE3 WAS PRESSED?
                  JNB P3.3,DLY_H2_L4 ;KEY ON HANG2 AND LIE4 WAS PRESSED?
             JUG6:MOV P3,#0FH
                  JNB P3.0,DLY_H3_L1 ;KEY ON HANG3 AND LIE1 WAS PRESSED?
                  JNB P3.1,DLY_H3_L2 ;KEY ON HANG3 AND LIE2 WAS PRESSED?
                  JNB P3.2,DLY_H3_L3 ;KEY ON HANG3 AND LIE3 WAS PRESSED?
                  JNB P3.3,DLY_H3_L4 ;KEY ON HANG3 AND LIE4 WAS PRESSED?
             JUG7:MOV P3,#0FH
                  JNB P3.0,DLY_H4_L1 ;KEY ON HANG4 AND LIE1 WAS PRESSED?
                  JNB P3.1,DLY_H4_L2 ;KEY ON HANG4 AND LIE2 WAS PRESSED?
                  JNB P3.2,DLY_H4_L3 ;KEY ON HANG4 AND LIE3 WAS PRESSED?
                  JNB P3.3,DLY_H4_L4 ;KEY ON HANG4 AND LIE4 WAS PRESSED?
                  AJMP JUMP_OUT
        DLY_H1_L1:LCALL DLY500MS
                  JNB P3.0,KEY_0A
                  AJMP JUMP_OUT
        DLY_H1_L2:LCALL DLY500MS
                  JNB P3.1,KEY_1A
                  AJMP JUMP_OUT
        DLY_H1_L3:LCALL DLY500MS
                  JNB P3.2,KEY_2A
                  AJMP JUMP_OUT
        DLY_H1_L4:LCALL DLY500MS
                  JNB P3.3,KEY_3A
                  AJMP JUMP_OUT
        DLY_H2_L1:LCALL DLY500MS
                  JNB P3.0,KEY_4A
                  AJMP JUMP_OUT
        DLY_H2_L2:LCALL DLY500MS
                  JNB P3.1,KEY_5A
                  AJMP JUMP_OUT
        DLY_H2_L3:LCALL DLY500MS
                  JNB P3.2,KEY_6A
                  AJMP JUMP_OUT
        DLY_H2_L4:LCALL DLY500MS
                  JNB P3.3,KEY_7A
                  AJMP JUMP_OUT
        DLY_H3_L1:LCALL DLY500MS
                  JNB P3.0,KEY_8A
                  AJMP JUMP_OUT
        DLY_H3_L2:LCALL DLY500MS
                  JNB P3.1,KEY_9A
                  AJMP JUMP_OUT
        DLY_H3_L3:LCALL DLY500MS
                  JNB P3.2,KEY_AA
                  AJMP JUMP_OUT
        DLY_H3_L4:LCALL DLY500MS
                  JNB P3.3,KEY_BA
                  AJMP JUMP_OUT
        DLY_H4_L1:LCALL DLY500MS
                  JNB P3.0,KEY_CA
                  AJMP JUMP_OUT
        DLY_H4_L2:LCALL DLY500MS
                  JNB P3.1,KEY_DA
                  AJMP JUMP_OUT
        DLY_H4_L3:LCALL DLY500MS
                  JNB P3.2,KEY_EA
                  AJMP JUMP_OUT
        DLY_H4_L4:LCALL DLY500MS
                  JNB P3.3,KEY_FA
                  AJMP JUMP_OUT
           KEY_0A:AJMP KEY_0
           KEY_1A:AJMP KEY_1
           KEY_2A:AJMP KEY_2
           KEY_3A:AJMP KEY_3
           KEY_4A:AJMP KEY_4
           KEY_5A:AJMP KEY_5
           KEY_6A:AJMP KEY_6
           KEY_7A:AJMP KEY_7
           KEY_8A:AJMP KEY_8
           KEY_9A:AJMP KEY_9
           KEY_AA:AJMP KEY_A
           KEY_BA:AJMP KEY_B
           KEY_CA:AJMP KEY_C
           KEY_DA:AJMP KEY_D
           KEY_EA:AJMP KEY_E
           KEY_FA:AJMP KEY_F
            KEY_0:CLR TR0
                  MOV @R1,#00H
                  ACALL SUB_ADDRESS
                  AJMP JUMP_OUT
            KEY_1:CLR TR0
                  MOV @R1,#01H
                  ACALL SUB_ADDRESS
                  AJMP JUMP_OUT
            KEY_2:CLR TR0
                  MOV @R1,#02H
                  ACALL SUB_ADDRESS
                  AJMP JUMP_OUT
            KEY_3:CLR TR0
                  MOV @R1,#03H
                  ACALL SUB_ADDRESS
                  AJMP JUMP_OUT
            KEY_4:CLR TR0
                  MOV @R1,#04H
                  ACALL SUB_ADDRESS
                  AJMP JUMP_OUT
            KEY_5:CLR TR0
                  MOV @R1,#05H
                  ACALL SUB_ADDRESS
                  AJMP JUMP_OUT
            KEY_6:CLR TR0
                  MOV @R1,#06H
                  ACALL SUB_ADDRESS
                  AJMP JUMP_OUT
            KEY_7:CLR TR0
                  MOV @R1,#07H
                  ACALL SUB_ADDRESS
                  AJMP JUMP_OUT
            KEY_8:CLR TR0
                  MOV @R1,#08H
                  ACALL SUB_ADDRESS
                  AJMP JUMP_OUT
            KEY_9:CLR TR0
                  MOV @R1,#09H
                  ACALL SUB_ADDRESS
                  AJMP JUMP_OUT
            KEY_A:CLR TR0
                  MOV @R1,#0AH
                  ACALL SUB_ADDRESS
                  AJMP JUMP_OUT
            KEY_B:CLR TR0
                  MOV @R1,#0BH
                  ACALL SUB_ADDRESS
                  AJMP JUMP_OUT
            KEY_C:CLR TR0
                  MOV @R1,#0CH
                  ACALL SUB_ADDRESS
                  AJMP JUMP_OUT
            KEY_D:CLR TR0
                  MOV @R1,#0DH
                  ACALL SUB_ADDRESS
                  AJMP JUMP_OUT
            KEY_E:CLR TR0
                  MOV @R1,#0EH
                  ACALL SUB_ADDRESS
                  AJMP JUMP_OUT
            KEY_F:CLR TR0
                  MOV @R1,#0FH
                  ACALL SUB_ADDRESS
         JUMP_OUT:RET
;*************************************************************
              COM:JNB P1.4,COM_IC
                  AJMP JUDGE
           COM_IC:LCALL COMPARE_SUB
                  AJMP JUDGE
      COMPARE_SUB:CLR TR0
   SET_SE_ADDRESS:INC 67H
                  MOV A,67H
                  CLR C
                  SUBB A,#01H
                  JZ SET_S_ADDRESS
                  MOV A,67H
                  CLR C
                  SUBB A,#02H
                  JZ SET_E_ADDRESS
                  MOV 67H,#00H
                  AJMP OUT_COM
    SET_S_ADDRESS:LCALL SET_ADDRESS
                  MOV 68H,R4
                  MOV 69H,62H
                  SETB TR0
                  LCALL DLY1S
                  MOV 32H,#00H
                  AJMP OUT_COM
    SET_E_ADDRESS:MOV 67H,#00H
                  MOV 70H,#00H
                  CLR P2.7
                  LCALL DLY1S
                  SETB P2.7
                  LCALL SET_ADDRESS
                  MOV 6AH,R4
                  MOV 6BH,62H
                  MOV 62H,69H
                  MOV R5,68H
                  LCALL CAI_ADDRESS
                  MOV A,6BH
                  CLR C
                  SUBB A,69H
                  MOV 6DH,A
                  CLR C
                  SUBB A,#01H
                  MOV 6EH,A
                  MOV A,6DH
      COMPARE_CHA:CJNE A,#00H,GO_ON_COM
            CHA_0:LCALL MODE1
                  LCALL COMPARE
                  MOV R5,64H

⌨️ 快捷键说明

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