📄 main.asm
字号:
; -------------------------------
; - Use: compiler Asm51 V1.1 -
; - linker rl51 -
; -------------------------------
PUBLIC M,ARRAY
PUBLIC RS,E,CS1,CS2,RESET
EXTRN NUMBER(DISP_ROW,DISP_COL)
EXTRN CODE(DISP_CLEAR,DISP_ON,DISP_OFF,DISP_INIT)
EXTRN CODE(DISP_ICON,DISP_TEXT,DISP_WRITE)
$include (MOD8252.INC)
$include (DEFHW.INC)
DSEG AT 30H
WAIT: DS 1
M: DS 4
ARRAY: DS 5
DSEG AT 0E0H
STACK:
CSEG
ORG 0
AJMP INIT
; -------------------------------
; - Initialization -
; -------------------------------
INIT:
MOV SP,#STACK
MOV WAIT,#5
CALL PAUSE
CALL DISP_INIT
; -------------------------------
; - Start program -
; -------------------------------
START:
MOV DISP_ROW,#0 ; Position IMAGE
MOV DISP_COL,#0
MOV DPTR,#Head ; Select IMAGE
CALL DISP_ICON ; Send IMAGE to Disp
MOV WAIT,#20
CALL PAUSE ; Wait
MOV R0,#ARRAY ; Load text to array
MOV A,#'H'
MOV @R0,A
INC R0
MOV A,#'e'
MOV @R0,A
INC R0
MOV A,#'l'
MOV @R0,A
INC R0
MOV A,#'l'
MOV @R0,A
INC R0
MOV A,#'o'
MOV @R0,A
MOV DISP_ROW,#7 ; Position text
MOV DISP_COL,#45
MOV A,#5 ; Length text
MOV B,#0 ; Heigth text (Small=0, Large=1)
MOV R0,#ARRAY ; Pointer to Array with text
CALL DISP_TEXT ; Send Text to Disp
MOV WAIT,#20
CALL PAUSE ; Wait
MOV DISP_ROW,#6 ; Position text
MOV DISP_COL,#35
MOV A,#5 ; Length text
MOV B,#1 ; Heigth text (Small=0, Large=1)
MOV R0,#ARRAY ; Pointer to Array with text
CALL DISP_TEXT ; Send Text to Disp
MOV WAIT,#20
CALL PAUSE ; Wait
JMP START ; Loop
; -------------------------------
; - Basic Routine -
; -------------------------------
PAUSE:
PUSH Acc
PUSH B
MOV A,#0FFH
MOV B,#0FFH
PAUSE_LOOP:
DJNZ Acc,PAUSE_LOOP
DJNZ B,PAUSE_LOOP
DJNZ WAIT,PAUSE_LOOP
POP B
POP Acc
RET
$include (IMAGE.INC)
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -