📄 pgm.asm
字号:
CALL ICNM259
MOV RELAYS,#02H
CALL PROGRESS_BAR
CALL IC74259
MOV GATES,#07H ;Number of Gates
CALL ANALYSE
RET
ICW59: CJNE R1,#60H,ICW60 ;IC 74260
CALL ICNM260
MOV RELAYS,#01H
CALL PROGRESS_BAR
CALL IC74260
MOV GATES,#02H ;Number of Gates
CALL ANALYSE
RET
ICW60: CJNE R1,#66H,ICW66 ;IC 74266
CALL ICNM266
MOV RELAYS,#01H
CALL PROGRESS_BAR
CALL IC74266
MOV GATES,#04H ;Number of Gates
CALL ANALYSE
RET
ICW66: CJNE R1,#79H,ICW79 ;IC 74279
CALL ICNM279
MOV RELAYS,#02H
CALL PROGRESS_BAR
CALL IC74279
MOV GATES,#04H ;Number of Gates
CALL ANALYSE
RET
ICW79: CJNE R1,#80H,ICW80 ;IC 74280
CALL ICNM280
MOV RELAYS,#01H
CALL PROGRESS_BAR
CALL IC74280
MOV GATES,#07H ;Number of Gates
CALL ANALYSE
RET
ICW80: CJNE R1,#83H,ICW83 ;IC 74283
CALL ICNM283
MOV RELAYS,#02H
CALL PROGRESS_BAR
CALL IC74283
MOV GATES,#07H ;Number of Gates
CALL ANALYSE
RET
ICW83: CJNE R1,#90H,ICW90 ;IC 74256
CALL ICNM290
MOV RELAYS,#01H
CALL PROGRESS_BAR
CALL IC74290
MOV GATES,#07H ;Number of Gates
CALL ANALYSE
RET
ICW90: CJNE R1,#93H,ICW93 ;IC 74293
CALL ICNM293
MOV RELAYS,#01H
CALL PROGRESS_BAR
CALL IC74293
MOV GATES,#07H ;Number of Gates
CALL ANALYSE
RET
ICW93: CJNE R1,#95H,ICW95 ;IC 74295
CALL ICNM295
MOV RELAYS,#01H
CALL PROGRESS_BAR
CALL IC74295
MOV GATES,#07H ;Number of Gates
CALL ANALYSE
RET
ICW95: CJNE R1,#98H,ICW98 ;IC 74298
CALL ICNM298
MOV RELAYS,#02H
CALL PROGRESS_BAR
CALL IC74298
MOV GATES,#07H ;Number of Gates
CALL ANALYSE
RET
ICW98: CALL NOTIN_DATABASE ;Display not in Database
CALL DELAY
CALL IC_TITLE
RET
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
; DATABASE FROM 74300 TO 74399
;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
DATABASE_SEARCH3: ;Database search for 74300 to 74399
MOV R1,A
CJNE R1,#50H,ICB50 ;IC 74350
CALL ICNM350
MOV RELAYS,#02H
CALL PROGRESS_BAR
CALL IC74350
MOV GATES,#07H
CALL ANALYSE
RET
ICB50: CJNE R1,#52H,ICB52 ;IC 74352
CALL ICNM352
ASX5: MOV RELAYS,#02H
CALL PROGRESS_BAR
CALL IC74352_353
MOV GATES,#02H
CALL ANALYSE
RET
ICB52: CJNE R1,#53H,ICB53 ;IC 74353
CALL ICNM353
AJMP ASX5
ICB53: CJNE R1,#65H,ICB65 ;IC 74365
CALL ICNM365
MOV RELAYS,#02H
CALL PROGRESS_BAR
CALL IC74365
MOV GATES,#07H
CALL ANALYSE
RET
ICB65: CJNE R1,#66H,ICB66 ;IC 74366
CALL ICNM366
ASX6: MOV RELAYS,#02H
CALL PROGRESS_BAR
CALL IC74366_368
MOV GATES,#07H
CALL ANALYSE
RET
ICB66: CJNE R1,#67H,ICB67 ;IC 74367
CALL ICNM367
MOV RELAYS,#02H
CALL PROGRESS_BAR
CALL IC74367
MOV GATES,#07H
CALL ANALYSE
RET
ICB67: CJNE R1,#68H,ICB68 ;IC 74368
CALL ICNM368
AJMP ASX6
ICB68: CJNE R1,#75H,ICB75 ;IC 74375
CALL ICNM375
MOV RELAYS,#02H
CALL PROGRESS_BAR
CALL IC74375
MOV GATES,#04H
CALL ANALYSE
RET
ICB75: CJNE R1,#78H,ICB78 ;IC 74378
CALL ICNM378
MOV RELAYS,#02H
CALL PROGRESS_BAR
CALL IC74378
MOV GATES,#02H
CALL ANALYSE
RET
ICB78: CJNE R1,#79H,ICB79 ;IC 74379
CALL ICNM379
MOV RELAYS,#02H
CALL PROGRESS_BAR
CALL IC74379
MOV GATES,#04H
CALL ANALYSE
RET
ICB79: CJNE R1,#90H,ICB90 ;IC 74352
CALL ICNM390
MOV RELAYS,#02H
CALL PROGRESS_BAR
CALL IC74390
MOV GATES,#02H
CALL ANALYSE
RET
ICB90: CJNE R1,#93H,ICB93 ;IC 74393
CALL ICNM393
MOV RELAYS,#02H
CALL PROGRESS_BAR
CALL IC74393
MOV GATES,#01H
CALL ANALYSE
RET
ICB93: CJNE R1,#95H,ICB95 ;IC 74395
CALL ICNM395
MOV RELAYS,#02H
CALL PROGRESS_BAR
CALL IC74395
MOV GATES,#07H
CALL ANALYSE
RET
ICB95: CALL NOTIN_DATABASE ;Display not in Database
CALL DELAY
CALL IC_TITLE
RET
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
; DATABASE FROM 74400 TO 74499
;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
DATABASE_SEARCH4: ;Database search for 74400 to 74499
MOV R1,A
CJNE R1,#25H,ICY25 ;IC 74425
CALL ICNM425
JMP ASD5
ICY25: CJNE R1,#26H,ICY26 ;IC 74426
CALL ICNM426
JMP ICX2
ICY26: CJNE R1,#45H,ICY45 ;IC 74445
CALL ICNM445
JMP ASD3
ICY45: CJNE R1,#47H,ICY47 ;IC 74447
CALL ICNM447
JMP ASD4
ICY47: CJNE R1,#90H,ICY90 ;IC 74490
CALL ICNM490
MOV RELAYS,#02H
CALL PROGRESS_BAR
CALL IC74490
MOV GATES,#02H
CALL ANALYSE
RET
ICY90: CALL NOTIN_DATABASE ;Display not in Database
CALL DELAY
CALL IC_TITLE
RET
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
; DATABASE FROM 74500 TO 74599
;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
DATABASE_SEARCH5: ;Database search for 74500 to 74599
CALL NOTIN_DATABASE ;Display not in Database
CALL DELAY
CALL IC_TITLE
RET
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
; DATABASE FROM 74600 TO 74699
;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
DATABASE_SEARCH6: ;Database search for 74600 to 74699
MOV R1,A
CJNE R1,#70H,ICRB70 ;IC 74670
CALL ICNM670
MOV RELAYS,#02H
CALL PROGRESS_BAR
CALL IC74670
MOV GATES,#07H
CALL ANALYSE
RET
ICRB70:
CALL NOTIN_DATABASE ;Display not in Database
CALL DELAY
CALL IC_TITLE
RET
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
; ANALYSE THE RESULT AND DISPLAY
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
ANALYSE:
MOV A,GATES
CJNE A,#07,VCCV
CALL DELAY
CALL CLRLIN2
JNB CHIP,DFF1
CALL IC_OK
MOV GATEES,#0FFH ;initilize all gates as ok
RET
DFF1: CALL IC_NOTOK
MOV GATEES,#0FFH ;initilize all gates as ok
RET
VCCV: MOV R7,GATES ;load the gates count
JNB GATE1,GGT1 ;check then first gate
CALL GATE1_OK
AJMP GGT2
GGT1: CLR CHIP
CALL GATE1_NOTOK
GGT2: CALL DELAY
CALL CLRLIN2
DJNZ R7,ASA1 ;Decrement the gate count
JMP DOWWN
ASA1: JNB GATE2,GGT3
CALL GATE2_OK
AJMP GGT4
GGT3: CLR CHIP
CALL GATE2_NOTOK
GGT4: CALL DELAY
CALL CLRLIN2
DJNZ R7,ASA2
JMP DOWWN
ASA2: JNB GATE3,GGT5
CALL GATE3_OK
AJMP GGT6
GGT5: CLR CHIP
CALL GATE3_NOTOK
GGT6:CALL DELAY
CALL CLRLIN2
DJNZ R7,ASA3
JMP DOWWN
ASA3: JNB GATE4,GGAT6
CALL GATE4_OK
JMP AVVS1
GGAT6: CLR CHIP
CALL GATE4_NOTOK
AVVS1: CALL DELAY
CALL CLRLIN2
DJNZ R7,ASA4
JMP DOWWN
ASA4: JNB GATE5,GGT8
CALL GATE5_OK
AJMP GGT9
GGT8: CLR CHIP
CALL GATE5_NOTOK
GGT9: CALL DELAY
CALL CLRLIN2
DJNZ R7,ASA5
AJMP DOWWN
ASA5: JNB GATE6,GGT10
CALL GATE6_OK
AJMP DOWWN
GGT10: CLR CHIP
CALL GATE6_NOTOK
DOWWN:CALL DELAY
CALL CLRLIN2
JNB CHIP,DOWWN1
CALL IC_OK
MOV GATEES,#0FFH ;initilize all gates as ok
RET
DOWWN1: CALL IC_NOTOK
MOV GATEES,#0FFH ;initilize all gates as ok
RET
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
; PROGRESS BAR SUBROUTINE
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
PROGRESS_BAR:
CALL LEVEL1
CLR RELAY1
CLR RELAY2
CLR RELAY3
MOV A,RELAYS
CJNE A,#01H,PLP1
SETB RELAY1
AJMP PLP3
PLP1: CJNE A,#02H,PLP2
SETB RELAY2
AJMP PLP3
PLP2: CJNE A,#02H,PLP3
SETB RELAY3
PLP3: CALL DEELAY
CALL LEVEL2
CALL DEELAY
CALL LEVEL2
CALL DEELAY
CALL LEVEL2
CALL DEELAY
CALL LEVEL2
CALL DEELAY
CALL LEVEL2
CALL DEELAY
CALL LEVEL2
CALL DEELAY
CALL LEVEL2
CALL DEELAY
CALL CLRLIN2
RET
;##########################################################
; DISPLAY ROUTINES
;##########################################################
TITLE:
MOV DPTR,#MSAG1
CALL LCD_MSG
RET
MSAG1:
DB 1H,80H,'MICROCONTROLLER',0C0H,'BASED IC TESTER ',00H
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
IC_TITLE:
MOV DPTR,#MSAG2
CALL LCD_MSG
MOV DPTR,#MSAG3
CALL LCD_MSG
RET
MSAG2:
DB 1H,80H,'Enter the IC No:',0C0H,' ',00H
MSAG3:
DB 0C0H,00H
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
WARNING:
MOV DPTR,#MSAG5
CALL LCD_MSG
MOV DPTR,#MSAG6
CALL LCD_MSG
RET
MSAG5:
DB 1H,80H,'74 Series Only!',0C0H,' ',00H
MSAG6:
DB 0C0H,00H
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
OVERFLOW:
MOV DPTR,#MSAG7
CALL LCD_MSG
RET
MSAG7:
DB 1H,80H,'Maximum 5 Digits',00H
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NOTIN_DATABASE:
MOV DPTR,#MSAG8
CALL LCD_MSG
RET
MSAG8:
DB 1H,82H,'IC NOT IN',0C3H,'DATABASE',00H
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
WARNING1:
MOV DPTR,#MSAG9
CALL LCD_MSG
MOV DPTR,#MSAG10
CALL LCD_MSG
RET
MSAG9:
DB 1H,80H,'Plz Enter IC No:',0C0H,' ',00H
MSAG10:
DB 0C0H,00H
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CLRLIN2:
MOV DPTR,#MSAG11
CALL LCD_MSG
RET
MSAG11:
DB 0C0H,' ',00H
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
GATE1_OK:
MOV DPTR,#GTE1
CALL LCD_MSG
RET
GTE1:
DB 0C0H,'GATE 1 OK',00H
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
GATE2_OK:
MOV DPTR,#GTE2
CALL LCD_MSG
RET
GTE2:
DB 0C0H,'GATE 2 OK',00H
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
GATE3_OK:
MOV DPTR,#GTE3
CALL LCD_MSG
RET
GTE3:
DB 0C0H,'GATE 3 OK',00H
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
GATE4_OK:
MOV DPTR,#GTE4
CALL LCD_MSG
RET
GTE4:
DB 0C0H,'GATE 4 OK',00H
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
GATE5_OK:
MOV DPTR,#GTE5
CALL LCD_MSG
RET
GTE5:
DB 0C0H,'GATE 5 OK',00H
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
GATE6_OK:
MOV DPTR,#GTE6
CALL LCD_MSG
RET
GTE6:
DB 0C0H,'GATE 6 OK',00H
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
GATE1_NOTOK:
MOV DPTR,#GTE7
CALL LCD_MSG
RET
GTE7:
DB 0C0H,'GATE 1 NOT OK',00H
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
GATE2_NOTOK:
MOV DPTR,#GTE8
CALL LCD_MSG
RET
GTE8:
DB 0C0H,'GATE 2 NOT OK',00H
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
GATE3_NOTOK:
MOV DPTR,#GTE9
CALL LCD_MSG
RET
GTE9:
DB 0C0H,'GATE 3 NOT OK',00H
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
GATE4_NOTOK:
MOV DPTR,#GTE10
CALL LCD_MSG
RET
GTE10:
DB 0C0H,'GATE 4 NOT OK',00H
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
GATE5_NOTOK:
MOV DPTR,#GTE11
CALL LCD_MSG
RET
GTE11:
DB 0C0H,'GATE 5 NOT OK',00H
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
GATE6_NOTOK:
MOV DPTR,#GTE12
CALL LCD_MSG
RET
GTE12:
DB 0C0H,'GATE 6 NOT OK',00H
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
IC_OK:
MOV DPTR,#GTE13
CALL LCD_MSG
RET
GTE13:
DB 0C4H,'IC is GOOD ',00H
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
IC_NOTOK:
MOV DPTR,#GTE14
CALL LCD_MSG
RET
GTE14:
DB 0C4H,'IC is BAD ',00H
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ICNM00:
MOV DPTR,#ICMSG0
CALL LCD_MSG
RET
ICMSG0:
DB 1H,80H,'7400 NAND GATE',00H
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ICNM01:
MOV DPTR,#ICMSG1
CALL LCD_MSG
RET
ICMSG1:
DB 1H,80H,'7401 NAND GATE',00H
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ICNM02:
MOV DPTR,#ICMSG2
CALL LCD_MSG
RET
ICMSG2:
DB 1H,80H,'7402 NOR GATE',00H
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ICNM03:
MOV DPTR,#ICMSG3
CALL LCD_MSG
RET
ICMSG3:
DB 1H,80H,'7403 NAND GATE',00H
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ICNM04:
MOV DPTR,#ICMSG4
CALL LCD_MSG
RET
ICMSG4:
DB 1H,80H,'7404 NOT GATE',00H
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ICNM05:
MOV DPTR,#ICMSG5
CALL LCD_MSG
RET
ICMSG5:
DB 1H,80H,'7405 NOT GATE',00H
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ICNM06:
MOV DPTR,#ICMSG6
CALL LCD_MSG
RET
ICMSG6:
DB 1H,80H,'7406 HEX DRI IN',00H
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ICNM07:
MOV DPTR,#ICMSG7
CALL LCD_MSG
RET
ICMSG7:
DB 1H,80H,'7407 HEX DRI NI',00H
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ICNM08:
MOV DPTR,#ICMSG8
CALL LCD_MSG
RET
ICMSG8:
DB 1H,80H,'7408 AND GATE',00H
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ICNM09:
MOV DPTR,#ICMSG9
CALL LCD_MSG
RET
ICMSG9:
DB 1H,80H,'7409 AND GATE',00H
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ICNM10:
MOV DPTR,#ICMSG10
CALL LCD_MSG
RET
ICMSG10:
DB 1H,80H,'7410 NAND GATE',00H
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ICNM11:
MOV DPTR,#ICMSG11
CALL LCD_MSG
RET
ICMSG11:
DB 1H,80H,'7411 AND GATE',00H
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ICNM12:
MOV DPTR,#ICMSG12
CALL LCD_MSG
RET
ICMSG12:
DB 1H,80H,'7412 NAND GATE',00H
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ICNM13:
MOV DPTR,#ICMSG13
CALL LCD_MSG
RET
ICMSG13:
DB 1H,80H,'7413 NAND GATE',00H
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ICNM14:
MOV DPTR,#ICMSG14
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -