📄 asm.asm
字号:
DAT1 EQU 30H ; 第一参数单元
DAT2 EQU 31H ; 第二参数/数据单元
COM EQU 32H ; 指令代码单元
CD EQU P2.3 ; 通道选择信号
WR1 EQU P2.0 ; 写操作信号
RD1 EQU P2.1 ; 读操作信号
CE EQU P2.2
;ORG 0000H
;LJMP MAIN:
MAIN:
MOV R6,#50H
MOV R7,#00H
DELAY: NOP
DJNZ R7,DELAY
DJNZ R6,DELAY
MOV SP,#06H
ORL P3,#1CH
TEST: LCALL INT
MOV DAT1 #00H ;设置显示RAM 首地址
MOV DAT2 #00H
MOV COM #24H
LCALL PR1
MOV R3 #01H ;设置循环量
MOV R4 #20H
MOV COM #0B0H ;设置自动写方式
LCALL PR12
TEST1: LCALL ST3 ;判状态位S2
MOV A #0FH ;置数据"0F"
LCALL PR13 ;写入数据
DJNZ R3 TEST1 ;循环
DJNZ R4 TEST1
MOV COM #0B2H ;设置自动写结束指令
LCALL PR12
SJMP $
RET
RS_T: MOV P0,#0FFH
SETB CD
CLR RD1
MOV A,P0
SETB RD1
RET
PR1: LCALL ST01
MOV A,DAT1
LCALL PR13
PR11: LCALL ST01
MOV A,DAT2
LCALL PR13
PR12: LCALL ST01
MOV A,COM
LJMP PR14
PR13: CLR CD
PR14: MOV P0,A
CLR WR1
SETB WR1
RET
PR2: LCALL ST01
CLR CD
MOV P0,#0FFH
CLR RD1
MOV A,P0
SETB RD1
MOV DAT2,A
RET
INT: MOV DAT1,#00H
MOV DAT2 #00H
MOV COM #40H
LCALL PR1
MOV DAT1 #20H ;设置文本显示区域宽度
MOV DAT2 #00H ;即一行显示所占字节数
MOV COM #41H
LCALL PR1
MOV DAT1 #00H ;设置图形显示区域首地址
MOV DAT2 #08H ;或为文本属性区域首地址
MOV COM #42H
LCALL PR1
MOV DAT1 #20H ;设置图形显示区域宽度
MOV DAT2 #00H ;或为文本属性区域宽度
MOV COM #43H ;即一行显示所占字节数
LCALL PR1
MOV COM #0A7H ;光标形状设置
LCALL PR12
MOV COM #80H ;显示方式设置逻辑或合成
LCALL PR12
MOV COM #9CH ;显示开关设置
LCALL PR12
RET
ST01: LCALL R_ST
JNB ACC.0 ST01
JNB ACC.1 ST01
RET
ST2: LCALL R_ST
JNB ACC.2 ST01
RET
ST3: LCALL R_ST
JNB ACC.3 ST01
RET
ST6: LCALL R_ST
JB ACC.6 ST01
ERR: LJMP ST6
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -