📄 tetriss.asm
字号:
RL A
RL A
RL A
ADD A,#07H
ANL A,PLCD
MOV PLCD,A
RET
;*****************************************************
;**********************左键判断***********************
KEY_LEFT:
MOV KLFT,#00H
SETB P3.2
JB P3.2,KEY_LEFT_NOKEY
MOV KLFT,#01H
KEY_LEFT_NOKEY:
RET;判断左键是否按下,若按下,将KLFT写01H
;*****************************************************
;**********************右键判断***********************
KEY_RIGHT:
MOV KRGT,#00H
SETB P3.4
JB P3.4,KEY_RIGHT_NOKEY
MOV KRGT,#01H
KEY_RIGHT_NOKEY:
RET;判断右键是否按下,若按下,将KRGT写01H
;*****************************************************
;*********************暂停键判断**********************
KEY_PAUSE:
MOV KPAU,#00H
SETB P3.3
JB P3.3,KEY_PAUSE_NOKEY
MOV KPAU,#01H
LCALL DELAY_MIDDLE
KEY_PAUSE_CIR:
SETB P3.3
JB P3.3,KEY_PAUSE_CIR
LCALL DELAY_MIDDLE
KEY_PAUSE_NOKEY:
RET;判断暂停键是否按下,若按下,将KPAU写01H,并等待直至下次按下
;*****************************************************
;*********************快速键判断**********************
KEY_FAST:
MOV KFST,#00H
SETB P3.1
JB P3.1,KEY_FAST_NOKEY
MOV KFST,#01H
KEY_FAST_NOKEY:
RET;判断快速是否按下,若按下,将KFST写01H
;*****************************************************
;*********************旋转键判断**********************
KEY_TURN:
MOV KTRN,#00H
SETB P3.0
JB P3.0,KEY_TURN_NOKEY
MOV KTRN,#01H
KEY_TURN_NOKEY:
RET;判断旋转键是否按下,若按下,将KTRN写01H
;*****************************************************
;*********************短延时程序**********************
DELAY_SHORT:
PUSH 02H
PUSH 03H
MOV R2,#0FFH
SDELAY_SHORT_ST:
MOV R3,#17H
DJNZ R3,$
DJNZ R2,SDELAY_SHORT_ST
POP 03H
POP 02H
RET
;*****************************************************
;********************游戏延时程序*********************
DELAY_GAME:
PUSH 02H
PUSH 03H
PUSH 04H
MOV R2,SPD
SDELAY_GAME_ST0:
MOV R3,#12H
SDELAY_GAME_ST1:
DJNZ R4,$
DJNZ R3,SDELAY_GAME_ST1
DJNZ R2,SDELAY_GAME_ST0
POP 04H
POP 03H
POP 02H
RET
;*****************************************************
;********************中延时程序***********************
DELAY_MIDDLE:
PUSH 04H
MOV R4,#10H
DELAY_MIDDLE_ST:
LCALL DELAY_SHORT
DJNZ R4,DELAY_MIDDLE_ST
POP 04H
RET
;*****************************************************
;********************长延时程序***********************
DELAY_LONG:
PUSH 04H
MOV R4,#0A0H
DELAY_LONG_ST:
LCALL DELAY_SHORT
DJNZ R4,DELAY_LONG_ST
POP 04H
RET
;*****************************************************
;***************读取位地址对应的BIT内容***************
BIT_RD:
PUSH 00H
PUSH 02H
MOV A,PBIT
MOV B,#08H
CLR CY
DIV AB
ADD A,#20H
MOV R0,A
MOV A,@R0
MOV R2,B
CJNE R2,#00H,BIT_RD_SEARCH
AJMP BIT_RD_GET
BIT_RD_SEARCH:
RR A
DJNZ R2,BIT_RD_SEARCH
BIT_RD_GET:
CLR CY
MOV C,Acc.0
POP 02H
POP 00H
RET;读取位地址暂存器对应的位,并转存在CY中
;*****************************************************
;***************写位地址对应的BIT内容*****************
BIT_WR:
PUSH 02H
PUSH PSW
MOV A,PBIT
MOV B,#08H
CLR CY
DIV AB
ADD A,#20H
MOV R0,A
MOV DRAM,@R0
MOV R2,B
POP PSW
CLR A
MOV Acc.0,C
CJNE R2,#00H,BIT_WR_SEARCH
AJMP BIT_RD_PUT
BIT_WR_SEARCH:
RL A
DJNZ R2,BIT_WR_SEARCH
BIT_RD_PUT:
ORL A,DRAM
MOV @R0,A
POP 02H
RET;将CY的内容写到PBIT对应的单元中
;*****************************************************
;**********************亮度调节***********************
LIGHT_CTL:
CLR DACS
MOV P0,LDAT;将亮度数据送给DA
SETB DACS
RET
;*****************************************************
;**********************读忙信号***********************
DIS_BUSY:
PUSH Acc
CLR RS
SETB RW
MOV P0,#00H
DIS_BUSY_CIR:
SETB E
MOV A,P0
CLR E
ANL A,#80H
JNZ DIS_BUSY_CIR;读忙信号,若为忙,则继续读;否则返回
POP Acc
RET
;*****************************************************
;*********************图形点阵表**********************
TAB_CUBIC:
DB 7FH,7FH,7FH,7FH,7FH,7FH,7FH,00H
TAB_FORK:
DB 7FH,63H,55H,49H,55H,63H,7FH,00H
TAB_SOLIDFORK:
DB 7FH,7FH,5DH,49H,5DH,7FH,7FH,00H
TAB_BLANK:
DB 00H,00H,00H,00H,00H,00H,00H,00H
TAB_CIR:
DB 00H,18H,3CH,7EH,7EH,3CH,18H,00H
TAB_BOX_0:
DB 73H,74H,7BH,7CH
TAB_BOX_1:
DB 7AH,7BH,7DH,7CH
TAB_BOX_2:
DB 73H,7BH,7DH,7CH
TAB_BOX_3:
DB 74H,7AH,7CH,7BH
TAB_BOX_4:
DB 73H,74H,7BH,7CH
TAB_BOX_5:
DB 73H,7AH,7CH,7BH
TAB_BOX_6:
DB 73H,74H,7AH,7BH
TAB_BOX_7:
DB 72H,73H,7CH,7BH
TAB_RND_00:
DB 00H,00H,00H,00H
TAB_RND_01:
DB 00H,12H,09H,89H
TAB_RND_02:
DB 00H,10H,09H,89H
TAB_RND_03:
DB 00H,82H,09H,89H
TAB_RND_04:
DB 00H,00H,00H,00H
TAB_RND_05:
DB 00H,07H,09H,89H
TAB_RND_06:
DB 00H,07H,82H,09H
TAB_RND_07:
DB 00H,10H,07H,89H
TAB_RND_10:
DB 00H,00H,00H,00H
TAB_RND_11:
DB 12H,8EH,87H,07H
TAB_RND_12:
DB 01H,02H,87H,07H
TAB_RND_13:
DB 01H,10H,87H,07H
TAB_RND_14:
DB 00H,00H,00H,00H
TAB_RND_15:
DB 01H,09H,87H,07H
TAB_RND_16:
DB 01H,09H,10H,87H
TAB_RND_17:
DB 10H,02H,09H,07H
TAB_RND_20:
DB 00H,00H,00H,00H
TAB_RND_21:
DB 00H,92H,89H,09H
TAB_RND_22:
DB 00H,90H,89H,09H
TAB_RND_23:
DB 00H,02H,89H,09H
TAB_RND_24:
DB 00H,00H,00H,00H
TAB_RND_25:
DB 00H,87H,89H,09H
TAB_RND_26:
DB 00H,87H,02H,89H
TAB_RND_27:
DB 00H,90H,87H,09H
TAB_RND_30:
DB 00H,00H,00H,00H
TAB_RND_31:
DB 21H,0EH,07H,87H
TAB_RND_32:
DB 10H,82H,07H,87H
TAB_RND_33:
DB 10H,90H,07H,87H
TAB_RND_34:
DB 00H,00H,00H,00H
TAB_RND_35:
DB 10H,89H,07H,87H
TAB_RND_36:
DB 10H,89H,90H,07H
TAB_RND_37:
DB 10H,82H,89H,87H
TAB_MARK:;MARK:的点阵
DB 0B7H,92H,92H,92H,92H,92H,7FH,00H
DB 0FCH,42H,42H,44H,78H,42H,3CH,00H
DB 1FH,04H,04H,04H,04H,4CH,77H,00H
DB 77H,22H,12H,16H,0AH,12H,72H,03H
DB 18H,18H,00H,00H,00H,18H,18H,00H
TAB_SPEED:
DB 3CH,44H,40H,20H,18H,04H,44H,78H
DB 1CH,08H,08H,08H,38H,48H,48H,3CH
DB 7CH,48H,08H,28H,38H,28H,48H,7CH
DB 7CH,48H,08H,28H,38H,28H,48H,7CH
DB 3CH,48H,48H,48H,48H,48H,48H,3CH
DB 18H,18H,00H,00H,00H,18H,18H,00H
TAB_0:
DB 38H,44H,44H,44H,44H,44H,44H,38H
TAB_1:
DB 38H,10H,10H,10H,10H,10H,18H,10H
TAB_2:
DB 7CH,04H,08H,10H,20H,44H,44H,38H
TAB_3:
DB 38H,44H,40H,40H,30H,40H,44H,38H
TAB_4:
DB 70H,20H,78H,24H,28H,28H,30H,20H
TAB_5:
DB 38H,44H,40H,40H,3CH,04H,04H,7CH
TAB_6:
DB 38H,44H,44H,44H,3CH,04H,44H,38H
TAB_7:
DB 10H,10H,10H,10H,10H,20H,44H,7CH
TAB_8:
DB 38H,44H,44H,44H,38H,44H,44H,38H
TAB_9:
DB 38H,44H,40H,78H,44H,44H,44H,38H
TAB_PIC:
DB 0E0H,0F0H,0F8H,0F8H,0F0H,0E0H,70H,73H
DB 7FH,0FFH,0FFH,0FH,03H,00H,00H,00H
DB 0F8H,0FFH,0FFH,0ECH,8CH,00H,00H,00H
DB 07H,1FH,1FH,1FH,0FH,07H,02H,7CH
DB 3FH,3FH,3FH,3FH,3FH,3FH,0FEH,0FEH
DB 1EH,1FH,1FH,1FH,0FFH,0FFH,0FFH,0FFH
DB 00H,00H,00H,00H,1FH,3FH,0FFH,0FFH
DB 7CH,0FCH,0F8H,0FCH,07CH,07CH,07FH,03FH
DB 0FCH,0F8H,0F0H,0F0H,0F0H,0E0H,0E0H,0E0H
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0DFH
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0E3H
DB 3FH,1FH,1FH,1FH,1FH,0FH,0FH,0FH
DB 0E0H,0C0H,0C0H,080H,080H,00H,00H,00H
DB 0EFH,0EFH,8FH,9FH,0FFH,0FFH,0FEH,0F8H
DB 0EFH,0EFH,0E3H,0E3H,0F3H,0FFH,0FFH,3FH
DB 0FH,07H,07H,03H,03H,01H,00H,00H
TAB_TETRISS:;开机画面的图形点阵
;-- 调入了一幅图像:G:\Tetriss.bmp --
;-- 宽度x高度=192x64 --
DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,0E0H,38H,18H,0CH,0CH
DB 0CH,0CH,84H,84H,84H,84H,7CH,5CH,4CH,4CH,0CH,0CH,0CH,0CH,0CH,00H
DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB 00H,00H,00H,00H,00H,00H,00H,80H,80H,00H,00H,80H,0C0H,70H,10H,00H
DB 00H,00H,0C0H,0C0H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,0C0H,0C0H,00H,80H,80H,00H
DB 00H,00H,00H,00H,00H,0C0H,0E0H,30H,0D8H,0ECH,64H,36H,16H,12H,0F2H,82H
DB 0C2H,0E2H,0B2H,8AH,0C6H,0EEH,7AH,02H,02H,02H,06H,3CH,80H,80H,00H,00H
DB 00H,80H,80H,00H,00H,00H,0C0H,0C0H,80H,0E0H,70H,10H,00H,00H,80H,0C0H
DB 70H,10H,00H,00H,00H,00H,00H,00H,00H,0C0H,78H,3CH,0CH,00H,00H,00H
DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,01H,03H,03H,03H,3FH
DB 76H,0E3H,0FDH,0CEH,0C6H,63H,63H,0E1H,31H,3BH,0FH,70H,7CH,4EH,32H,1EH
DB 16H,78H,5CH,5EH,4EH,2EH,16H,48H,74H,1EH,1EH,14H,0AH,70H,7CH,0EEH
DB 0F2H,78H,2EH,12H,78H,7EH,6EH,77H,7BH,1EH,0EH,77H,7EH,6EH,70H,7CH
DB 6EH,32H,48H,74H,3EH,0EH,76H,7EH,4EH,20H,10H,78H,5CH,4CH,0E6H,0FAH
DB 7EH,2EH,36H,08H,00H,00H,70H,7CH,6EH,7AH,78H,64H,72H,3DH,01H,00H
DB 00H,00H,00H,00H,38H,5FH,4CH,48H,4FH,49H,68H,34H,3EH,1FH,0FH,07H
DB 01H,00H,01H,79H,5DH,4CH,66H,1AH,7EH,78H,6CH,72H,3DH,79H,78H,64H
DB 72H,3DH,71H,7CH,6EH,7AH,7CH,4FH,77H,3AH,1EH,70H,7CH,6EH,33H,79H
DB 5CH,5EH,4EH,2EH,16H,68H,68H,04H,03H,00H,00H,00H,00H,00H,00H,00H
DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,80H,0C0H,60H,60H
DB 20H,30H,30H,30H,10H,10H,10H,30H,30H,30H,60H,0C0H,80H,80H,80H,80H
DB 80H,80H,80H,80H,80H,80H,80H,80H,80H,80H,80H,80H,80H,80H,00H,00H
DB 00H,00H,00H,01H,01H,81H,81H,81H,80H,0C0H,0C0H,0C0H,0C0H,40H,40H,40H
DB 40H,40H,40H,0C0H,0C0H,0C0H,80H,00H,38H,2CH,24H,12H,1AH,0FH,03H,01H
DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB 00H,00H,00H,00H,00H,00H,00H,38H,2CH,24H,32H,1BH,0FH,07H,01H,00H
DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB 00H,00H,00H,00H,00H,00H,00H,18H,0CH,06H,03H,01H,01H,00H,00H,80H
DB 0C0H,60H,60H,30H,18H,08H,0CH,04H,06H,02H,03H,03H,03H,8FH,0FDH,01H
DB 01H,01H,01H,03H,03H,03H,03H,03H,03H,83H,0C7H,0E7H,77H,37H,1FH,0FH
DB 0FH,0FH,0FH,0FH,0FH,0FH,0FH,0EH,0EH,0EH,0EH,0EH,0EH,0CH,0CH,0CH
DB 0CH,0CH,0CH,06H,06H,06H,03H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB 00H,00H,00H,00H,00H,0F0H,10H,10H,10H,10H,20H,0C0H,00H,00H,80H,40H
DB 40H,40H,80H,00H,80H,40H,40H,40H,80H,00H,0D0H,00H,00H,80H,40H,40H
DB 80H,0C0H,00H,00H,0C0H,80H,40H,40H,80H,00H,80H,40H,40H,40H,80H,00H
DB 00H,80H,40H,40H,80H,0F0H,00H,00H,00H,00H,00H,0F0H,80H,40H,40H,80H
DB 00H,10H,60H,80H,00H,80H,60H,10H,00H,00H,00H,00H,00H,10H,10H,10H
DB 0D0H,30H,10H,10H,60H,80H,00H,80H,60H,10H,00H,00H,00H,00H,00H,00H
DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,0C0H,0F0H,38H,0EH,07H,01H
DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,80H,0E0H,0F8H,3FH,0FH,00H
DB 00H,00H,80H,0E0H,0F0H,0F8H,7CH,1EH,0FH,03H,01H,00H,00H,00H,00H,00H
DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB 00H,00H,00H,00H,00H,1FH,10H,10H,10H,10H,08H,07H,00H,00H,0FH,12H
DB 12H,12H,0BH,00H,09H,12H,12H,12H,0CH,00H,1FH,00H,00H,4FH,50H,50H
DB 48H,3FH,00H,00H,1FH,00H,00H,00H,1FH,00H,0FH,12H,12H,12H,0BH,00H
DB 00H,0FH,10H,10H,10H,1FH,00H,00H,00H,00H,00H,1FH,08H,10H,10H,0FH
DB 00H,00H,00H,00H,1FH,00H,00H,00H,00H,00H,00H,00H,10H,18H,16H,11H
DB 10H,10H,10H,00H,00H,00H,1FH,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,3FH,79H,0E0H,0C0H,0C0H,80H
DB 80H,0C0H,0C0H,0C0H,60H,70H,30H,18H,1CH,0FH,07H,01H,00H,0C0H,0E0H,0F8H
DB 0FCH,0FFH,3FH,1FH,07H,01H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB 00H,00H,80H,0E0H,0E0H,60H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB 00H,00H,00H,00H,70H,70H,70H,00H,00H,00H,00H,00H,0C0H,0E0H,60H,00H
DB 00H,00H,00H,00H,0C0H,0E0H,60H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB 00H,00H,0F0H,0F8H,78H,78H,78H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB 00H,00H,00H,00H,00H,00H,80H,0C0H,0E0H,0F0H,0F8H,0FEH,7FH,3FH,1FH,07H
DB 03H,00H,0C0H,0F0H,0F0H,78H,7CH,6CH,6EH,36H,32H,9AH,4EH,0A0H,0E0H,0F2H
DB 0FEH,3FH,1FH,07H,83H,0E2H,32H,08H,0C4H,0F2H,0FEH,7EH,0F0H,18H,1CH,8EH
DB 0E6H,0F8H,0FEH,3EH,0EH,0C6H,0E0H,0E0H,70H,18H,0CH,82H,0FFH,0E0H,0E0H,0E0H
DB 70H,18H,0CH,82H,0FFH,0E0H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB 00H,00H,00H,0CH,82H,42H,22H,1CH,00H,00H,0FCH,02H,02H,02H,0FCH,00H
DB 00H,0FCH,02H,02H,02H,0FCH,00H,00H,0E0H,98H,86H,0FEH,80H,00H,00H,20H
DB 20H,20H,20H,20H,00H,00H,00H,04H,0FEH,00H,00H,00H,00H,0CH,82H,42H
DB 22H,1CH,00H,00H,20H,20H,20H,20H,20H,00H,00H,00H,04H,0FEH,00H,00H
DB 00H,00H,0FCH,02H,02H,02H,0FCH,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB 00H,00H,03H,07H,0EH,0CH,18H,18H,18H,18H,10H,10H,10H,18H,18H,18H
DB 18H,1CH,0CH,0EH,0EH,07H,07H,03H,03H,01H,00H,00H,00H,00H,00H,00H
DB 00H,00H,07H,0FH,09H,08H,08H,08H,04H,02H,03H,01H,00H,0FH,0FH,0BH
DB 08H,0CH,06H,03H,01H,08H,0EH,0FH,0FH,03H,00H,00H,01H,01H,01H,0FH
DB 0FH,0BH,08H,0CH,06H,07H,0DH,08H,0CH,0CH,0EH,0FH,07H,07H,0DH,08H
DB 0CH,0CH,0EH,0FH,07H,03H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB 00H,00H,00H,03H,02H,02H,02H,02H,00H,00H,01H,02H,02H,02H,01H,00H
DB 00H,01H,02H,02H,02H,01H,00H,00H,00H,00H,00H,03H,00H,00H,00H,00H
DB 00H,00H,00H,00H,00H,00H,00H,00H,03H,00H,00H,00H,00H,03H,02H,02H
DB 02H,02H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,03H,00H,00H
DB 00H,00H,01H,02H,02H,02H,01H,00H,00H,00H,00H,00H,00H,00H,00H,00H
;*****************************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -