⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 he13.asm

📁 51系列单片机的汇编程序包
💻 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 + -