📄 tieu luan 1.asm
字号:
$MOD51
STA BIT P1.0
STOP BIT P1.1
SILENT BIT P1.2
SPEAKER BIT P1.3
CK BIT P1.4
SD BIT P1.5
INTRODUCE BIT P1.6
ORG 00H
;****************************************************************************
MAIN:
MOV P0,#00H ;CAM BIEN CHUA HOAT DONG
MOV P1,#0FFH
MOV P2,#0FFH
MOV P3,#0FFH
MOV B,#00H
CLR CK
CLR SD
SETB 88H
START:
JB STA,MAIN ;NHAN NUT START DE KHOI DONG
LCALL MATRAN
;*****************************************************************************
MATRAN:
MOV DPTR,#CODEDISP
MP1:
MOV R0,#1
MP2:
LCALL SCAN
DJNZ R0,MP2
INC DPTR
INC DPTR
MOV A,DPL
CJNE A,#LOW(CODEDISP+306),MP1
MOV A,DPH
CJNE A,#HIGH(CODEDISP+306),MP1
SJMP MATRAN
SCAN:
PUSH ACC
PUSH 00H
PUSH 01H
MOV R1,#00H
MOV R2,#80H
SETB SD
NOP
SETB CK
NOP
CLR CK
NOP
CLR SD
SCAN1:
MOV A,R1
MOVC A,@A+DPTR
MOV P2,A
INC R1
MOV A,R1
MOVC A,@A+DPTR
MOV P3,A
LCALL DELAY
MOV P3,#0FFH
MOV P2,#0FFH
SETB CK
NOP
CLR CK
INC R1
DJNZ R2,SCAN1
POP 01H
POP 00H
POP ACC
RET
;************************************************************************************
DELAY:
PUSH 00H
PUSH 01H
MOV R1,#3
DEL:
JNB P1.1,MAIN ;DUNG NEU NHAN STOP
JB INTRODUCE,GIOITHIEU1
LCALL GIOITHIEU
GIOITHIEU1:
JB 0F0H,VITRI11
JNB P0.0,VITRI11
LCALL VITRI1
VITRI11:
JB 0F1H,VITRI22
JNB P0.1,VITRI22
LCALL VITRI2
VITRI22:
JB 0F2H,VITRI33
JNB P0.2,VITRI33
LCALL VITRI3
VITRI33:
JB 0F3H,VITRI44
JNB P0.3,VITRI44
LCALL VITRI4
VITRI44:
JB 0F4H,VITRI55
JNB P0.4,VITRI55
LCALL VITRI5
VITRI55:
JB 0F5H,VITRI66
JNB P0.5,VITRI66
LCALL VITRI6
VITRI66:
JB 0F6H,VITRI77
JNB P0.6,VITRI77
LCALL VITRI7
VITRI77:
JB 0F7H,VITRI88
JNB P0.7,VITRI88
LCALL VITRI8
VITRI88:
JB 0F8H,DEL1
JB P1.2,DEL1
CLR 88H
DEL1:
MOV R0,#245
DJNZ R0,$
DJNZ R1,DEL
POP 01H
POP 00H
RET
;*********************************************************************************
VITRI1:
SETB 0F0H ;DANH DAU VI TRI CAM BIEN 1 THUOC THANH GHI B
CLR P1.3
CLR P1.4
MOV DPTR,#CODEDISP1
LCALL VITRI
JNB 0F1H,VITRI12
LCALL VITRI2
VITRI12:
JNB 0F2H,VITRI13
LCALL VITRI3
VITRI13:
JNB 0F3H,VITRI14
LCALL VITRI4
VITRI14:
JNB 0F4H,VITRI15
LCALL VITRI5
VITRI15:
JNB 0F5H,VITRI16
LCALL VITRI6
VITRI16:
JNB 0F6H,VITRI17
LCALL VITRI7
VITRI17:
JNB 0F7H,VITRI18
LCALL VITRI8
VITRI18:
JB 0F0H,VITRI1
VITRI2:
SETB 0F1H
CLR P1.3
CLR P1.4
MOV DPTR,#CODEDISP2
LCALL VITRI
JNB 0F2H,VITRI23
LCALL VITRI3
VITRI23:
JNB 0F3H,VITRI24
LCALL VITRI4
VITRI24:
JNB 0F4H,VITRI25
LCALL VITRI5
VITRI25:
JNB 0F5H,VITRI26
LCALL VITRI6
VITRI26:
JNB 0F6H,VITRI27
LCALL VITRI7
VITRI27:
JNB 0F7H,VITRI28
LCALL VITRI8
VITRI28:
JNB 0F0H,VITRI21
LCALL VITRI1
VITRI21:
JB 0F1H,VITRI2
VITRI3:
SETB 0F2H
CLR P1.3
CLR P1.5
MOV DPTR,#CODEDISP3
LCALL VITRI
JNB 0F3H,VITRI34
LCALL VITRI4
VITRI34:
JNB 0F4H,VITRI35
LCALL VITRI5
VITRI35:
JNB 0F5H,VITRI36
LCALL VITRI6
VITRI36:
JNB 0F6H,VITRI37
LCALL VITRI7
VITRI37:
JNB 0F7H,VITRI38
LCALL VITRI8
VITRI38:
JNB 0F0H,VITRI31
LCALL VITRI1
VITRI31:
JNB 0F1H,VITRI32
LCALL VITRI2
VITRI32:
JB 0F2H,VITRI3
VITRI4:
SETB 0F3H
CLR P1.3
CLR P1.5
MOV DPTR,#CODEDISP4
LCALL VITRI
JNB 0F4H,VITRI45
LCALL VITRI5
VITRI45:
JNB 0F5H,VITRI46
LCALL VITRI6
VITRI46:
JNB 0F6H,VITRI47
LCALL VITRI7
VITRI47:
JNB 0F7H,VITRI48
LCALL VITRI8
VITRI48:
JNB 0F0H,VITRI41
LCALL VITRI1
VITRI41:
JNB 0F1H,VITRI42
LCALL VITRI2
VITRI42:
JNB 0F2H,VITRI43
LCALL VITRI3
VITRI43:
JB 0F3H,VITRI4
VITRI5:
SETB 0F4H
CLR P1.3
CLR P1.6
MOV DPTR,#CODEDISP5
LCALL VITRI
JNB 0F5H,VITRI56
LCALL VITRI6
VITRI56:
JNB 0F6H,VITRI57
LCALL VITRI7
VITRI57:
JNB 0F7H,VITRI58
LCALL VITRI8
VITRI58:
JNB 0F0H,VITRI51
LCALL VITRI1
VITRI51:
JNB 0F1H,VITRI52
LCALL VITRI2
VITRI52:
JNB 0F2H,VITRI53
LCALL VITRI3
VITRI53:
JNB 0F3H,VITRI54
LCALL VITRI4
VITRI54:
JB 0F4H,VITRI5
VITRI6:
SETB 0F5H
CLR P1.3
CLR P1.6
MOV DPTR,#CODEDISP6
LCALL VITRI
JNB 0F6H,VITRI67
LCALL VITRI7
VITRI67:
JNB 0F7H,VITRI68
LCALL VITRI8
VITRI68:
JNB 0F0H,VITRI61
LCALL VITRI1
VITRI61:
JNB 0F1H,VITRI62
LCALL VITRI2
VITRI62:
JNB 0F2H,VITRI63
LCALL VITRI3
VITRI63:
JNB 0F3H,VITRI64
LCALL VITRI4
VITRI64:
JNB 0F4H,VITRI65
LCALL VITRI5
VITRI65:
JB 0F5H,VITRI6
VITRI7:
SETB 0F6H
CLR P1.3
CLR P1.7
MOV DPTR,#CODEDISP7
LCALL VITRI
JNB 0F7H,VITRI78
LCALL VITRI8
VITRI78:
JNB 0F0H,VITRI71
LCALL VITRI1
VITRI71:
JNB 0F1H,VITRI72
LCALL VITRI2
VITRI72:
JNB 0F2H,VITRI73
LCALL VITRI3
VITRI73:
JNB 0F3H,VITRI74
LCALL VITRI4
VITRI74:
JNB 0F4H,VITRI75
LCALL VITRI5
VITRI75:
JNB 0F5H,VITRI76
LCALL VITRI6
VITRI76:
JB 0F6H,VITRI7
VITRI8:
SETB 0F7H
CLR P1.3
CLR P1.7
MOV DPTR,#CODEDISP8
LCALL VITRI
JNB 0F0H,VITRI81
LCALL VITRI1
VITRI81:
JNB 0F1H,VITRI82
LCALL VITRI2
VITRI82:
JNB 0F2H,VITRI83
LCALL VITRI3
VITRI83:
JNB 0F3H,VITRI84
LCALL VITRI4
VITRI84:
JNB 0F4H,VITRI85
LCALL VITRI5
VITRI85:
JNB 0F5H,VITRI86
LCALL VITRI6
VITRI86:
JNB 0F6H,VITRI87
LCALL VITRI7
VITRI87:
JB 0F7H,VITRI8
;*************************************************************************************
;************************************************************************************
VITRI:
MOV R0,#8
MP11:
JB 88H,MP111
SETB P1.3
MP111:
LCALL SCAN11
DJNZ R0,MP11
SCAN11:
PUSH ACC
PUSH 00H
PUSH 01H
MOV R1,#00H
MOV R2,#80H
SETB SD
NOP
SETB CK
NOP
CLR CK
NOP
CLR SD
SCAN111:
MOV A,R1
MOVC A,@A+DPTR
MOV P2,A
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -