📄 he13.asm
字号:
;================= 硬件实验十三 微型打印机打印字符/曲线/汉字 =============
ORG 0280H
D1E0: MOV SP,#53H
MOV DPTR,#0FFDBH
MOV A,#88H
MOVX @DPTR,A ;8255初始化.A.B口输出,.C口输入
ACALL D1E2 ;打印空格和#号
ACALL D1E3 ;换行
MOV R6,#0A6H ;取代码偏移量
MOV R7,#0DH ;13个代码
D1E1: MOV A,R6
MOVC A,@A+PC ;取代码
ACALL D1E4 ;打印
INC R6
DJNZ R7,D1E1 ;未完继续
ACALL D1E3
ACALL D1E2 ;再打印一行#和空格
ACALL D1E3
ACALL D1EA ;设置行间距子程序
ACALL D1E5 ;图形打印命令子程序
MOV R6,#68H
ACALL D1E6 ;取代码偏移量
ACALL D1E5 ;打印上部图形
MOV R6,#8CH
ACALL D1E6 ;打印下部图形
ACALL D1E7
ACALL D1E7 ;回车换行
MOV DPTR,#2000H ;曲线数据存放首址
MOV R6,#14H
ACALL D1E8 ;取曲线数据
MOV R7,#0DH ;行数
D1E9: MOV R6,#09H ;列数
ACALL D1E8
DJNZ R7,D1E9 ;取曲线数据
SJMP $
D1E3: MOV A,#0AH ;打完吗?
ACALL D1E4 ;换行子程序
RET
D1E7: MOV A,0DH ;回车子程序
ACALL D1E4
RET
D1EA: MOV A,#1BH
ACALL D1E4
MOV A,#31H
ACALL D1E4 ;ESC I n (n=o)
MOV A,#00H ;行间距=0
ACALL D1E4
ACALL D1E3
RET
D1E6: MOV R7,#24H
D1EB: MOV A,R6
MOVC A,@A+PC
ACALL D1E4 ;36个图形代码送打印机
INC R6
DJNZ R7,D1EB
ACALL D1E3
RET
D1E8: MOV A,#1BH
ACALL D1E4
MOV A,#27H
ACALL D1E4 ;ESC/ m n1 n2 nk CR命令
MOV A,R6
ACALL D1E4 ;(R6)=m
D1EC: MOVX A,@DPTR
INC DPTR ;(DPTR)=n1 n2 nk
ACALL D1E4
DJNZ R6,D1EC
ACALL D1E7 ;CR命令
RET
D1E5: MOV A,#1BH
ACALL D1E4
MOV A,#4BH
ACALL D1E4 ;ESC K n1 n2
MOV A,#24H ;图形打印命令
ACALL D1E4
MOV A,#00H
ACALL D1E4
RET
D1E2: MOV R7,#07H
D1ED: MOV A,#23H
ACALL D1E4 ;打印7个#号和空格
MOV A,#20H
ACALL D1E4
DJNZ R7,D1ED
RET
D1E4: PUSH DPH
PUSH DPL
PUSH ACC
MOV DPTR,#0FFDAH
D1EE: MOVX A,@DPTR
JB ACC.4,D1EE ;打印机忙吗?
POP ACC
MOV DPTR,#0FFD8H
MOVX @DPTR,A ;送打印机
MOV DPTR,#0FFDBH
MOV A,#00H
MOVX @DPTR,A
MOV A,#01H
MOVX @DPTR,A ;产生STB后沿
POP DPL
POP DPH
RET
;----------------------------------------------------
;#94年12月31日#
DB 23H,20H,39H,34H,8CH,31H,32H,8DH,33H,30H,8EH
DB 20H,23H
;“启”字上部代码
DB 00H,00H,00H,7FH,3FH,22H,22H,0A2H,0E2H,62H
DB 22H,22H,22H,3EH,7FH,20H,00H,00H
;“东”字上部代码
DB 00H,00H,00H,00H,20H,21H,27H,3FH,79H,0E1H,0BFH
DB 27H,21H,21H,23H,61H,20H,00H
;“启”字下部代码
DB 00H,03H,06H,0FCH,0FCH,7FH,3EH,22H,22H,22H,22H
DB 22H,22H,3FH,7FH,20H,00H,00H
;“东”字下部代码
DB 00H,00H,00H,00H,04H,0CH,0B8H,70H,22H,02H,0FEH
DB 0FEH,00H,40H,38H,1EH,08H,00H
;--------------------------------------------------------------
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -