📄 ick
字号:
;*********************************************
; 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
;**********************************************
; SCL EQU P1.0
; SDA1 EQU P1.1
; SDA2 EQU P1.2
; COMP_KEY EQU P1.3
; READ_KEY EQU P1.4
; SURE_KEY EQU P1.5
; NEXT_KEY EQU P1.6
; CANCEL_KEY EQU P1.7
; OK_KEY EQU P2.6
; FALSE_KEY EQU P2.7
;************************************************
ORG 0000H
AJMP MAIN
ORG 000BH
AJMP ITOP
ORG 0100H
MAIN:MOV TMOD,#00H ;T0 WORK AT MODE0.
MOV TH0,#0D8H
MOV TL0,#0F0H
MOV 65H,#03H
MOV 64H,#02H
MOV 63H,#01H
MOV 62H,#00H
MOV 61H,#00H
MOV 60H,#0AH
MOV 5FH,#0FH
MOV 5EH,#0FH
MOV R0,#63H
MOV 32H,#00H
MOV 50H,#0FEH
MOV 51H,#06H
SETB EA
SETB ET0
SETB TR0
JUDGE:
; JNB P1.3,COMPARE
JNB P1.4,INPUT_ADDRESS
AJMP JUDGE
; COM:ACALL DLY20MS
; JNB COMP_KEY,COMPARE
; AJMP JUDGE
; READ:ACALL DLY20MS
; JNB READ_KEY,INPUT_ADDRESS
; AJMP JUDGE
;COMPARE:
;********************************************************
INPUT_ADDRESS:JNB P1.6,NEXT
JNB P1.5,READ_IC
AJMP KEY_BOARD
NEXT:LCALL DLY500MS
JNB P1.6,NEXT_ADDRESS
AJMP INPUT_ADDRESS
NEXT_ADDRESS: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:INC 63H
MOV 60H,#00H
MOV 61H,#00H
MOV 62H,#00H
AJMP INPUT_ADDRESS
ENABLE_GJIA_1:INC 60H
AJMP INPUT_ADDRESS
ENABLE_SJIA_1:INC 61H
AJMP INPUT_ADDRESS
ENABLE_QJIA_1:INC 62H
AJMP INPUT_ADDRESS
READ_IC:CLR TR0
SET_ADDRESS:MOV A,61H
SWAP A
MOV @R1,60H
XCHD A,@R1
MOV 64H,A
JUDGE_IC_TYPE:MOV A,62H
CLR C
SUBB A,#02H
JC READ_C04
MOV A,62H
CLR C
SUBB A,#04H
JC READ_C08
AJMP READ_C16
;************************************************************
READ_C04:MOV A,62H
CJNE A,#00H,READ_C04SEC_PART
READ_C04FST_PART:MOV R2,#0A0H
MOV R3,#0A1H
LCALL COMM_READ_PRG
SETB TR0
AJMP INPUT_ADDRESS
READ_C04SEC_PART:MOV R2,#0A2H
MOV R3,#0A3H
LCALL COMM_READ_PRG
SETB TR0
AJMP INPUT_ADDRESS
;***************************************************************
READ_C08:MOV A,62H
CJNE A,#02H,READ_C08SEC_PART
READ_C08FST_PART:MOV R2,#0A4H
MOV R3,#0A5H
LCALL COMM_READ_PRG
SETB TR0
AJMP INPUT_ADDRESS
READ_C08SEC_PART:MOV R2,#0A6H
MOV R3,#0A7H
LCALL COMM_READ_PRG
SETB TR0
AJMP INPUT_ADDRESS
;**********************************************************************
READ_C16:MOV A,62H
CJNE A,#04H,ANOTHER_PARTS1
READ_C16FST_PART:MOV R2,#0A8H
MOV R3,#0A9H
LCALL COMM_READ_PRG
SETB TR0
AJMP INPUT_ADDRESS
ANOTHER_PARTS1:MOV A,62H
CJNE A,#05H,ANOTHER_PARTS2
READ_C16SEC_PART:MOV R2,#0AAH
MOV R3,#0ABH
LCALL COMM_READ_PRG
SETB TR0
AJMP INPUT_ADDRESS
ANOTHER_PARTS2:MOV A,62H
CJNE A,#06H,READ_FOURTH_PART
READ_THIRD_PART:MOV R2,#0ACH
MOV R3,#0ADH
LCALL COMM_READ_PRG
SETB TR0
AJMP INPUT_ADDRESS
READ_FOURTH_PART:MOV R2,#0AEH
MOV R3,#0AFH
LCALL COMM_READ_PRG
SETB TR0
AJMP INPUT_ADDRESS
;**********************************************************
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 INPUT_ADDRESS
DLY_HANG1:ACALL DLY20MS
JNB P3.4,JUG4 ;SOME KEY ON HANG1 WAS PRESSED.
AJMP INPUT_ADDRESS
DLY_HANG2:ACALL DLY20MS
JNB P3.5,JUG5 ;SOME KEY ON HANG2 WAS PRESSED.
AJMP INPUT_ADDRESS
DLY_HANG3:ACALL DLY20MS
JNB P3.6,JUG6 ;SOME KEY ON HANG3 WAS PRESSED.
AJMP INPUT_ADDRESS
DLY_HANG4:ACALL DLY20MS
JNB P3.7,JUG7 ;SOME HEY ON HANG4 WAS PRESSED.
AJMP INPUT_ADDRESS
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 INPUT_ADDRESS
DLY_H1_L1:ACALL DLY500MS
JNB P3.0,KEY_0
AJMP INPUT_ADDRESS
DLY_H1_L2:ACALL DLY500MS
JNB P3.1,KEY_1
AJMP INPUT_ADDRESS
DLY_H1_L3:ACALL DLY500MS
JNB P3.2,KEY_2
AJMP INPUT_ADDRESS
DLY_H1_L4:ACALL DLY500MS
JNB P3.3,KEY_3
AJMP INPUT_ADDRESS
DLY_H2_L1:ACALL DLY500MS
JNB P3.0,KEY_4
AJMP INPUT_ADDRESS
DLY_H2_L2:ACALL DLY500MS
JNB P3.1,KEY_5
AJMP INPUT_ADDRESS
DLY_H2_L3:ACALL DLY500MS
JNB P3.2,KEY_6
AJMP INPUT_ADDRESS
DLY_H2_L4:ACALL DLY500MS
JNB P3.3,KEY_7
AJMP INPUT_ADDRESS
DLY_H3_L1:ACALL DLY500MS
JNB P3.0,KEY_8
AJMP INPUT_ADDRESS
DLY_H3_L2:ACALL DLY500MS
JNB P3.1,KEY_9
AJMP INPUT_ADDRESS
DLY_H3_L3:ACALL DLY500MS
JNB P3.2,KEY_A
AJMP INPUT_ADDRESS
DLY_H3_L4:ACALL DLY500MS
JNB P3.3,KEY_B
AJMP INPUT_ADDRESS
DLY_H4_L1:ACALL DLY500MS
JNB P3.0,KEY_C
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -