📄 dyj.asm
字号:
BUSY EQU P3.0 ; 定义BUSY信号引脚
ORG 0000H
PUSH ACC
JMP start
ORG 30h
start:
LCALL SETUART ; 设置串口
MOV A, #1BH
LCALL PRINTB
MOV A, #40H
LCALL PRINTB
MOV A, #1CH
LCALL PRINTB
MOV A, #0DH
LCALL PRINTB
MOV DPTR, #print_content
MOV R2, #77 ; R2保存待打印数据的字节数
main:
CLR A
MOVC A, @A+DPTR ; 读出待打印字符
MOV R0, A
LCALL PRINTB ; 打印一个字节
INC DPTR
DJNZ R2, MAIN
SJMP $ ;打印结束无限循环
;PRINTB子程序将累加器A中的一字节数据发送到打印机
; 待发送数据通过R0传递
; 定义待打印数据内容
PRINTB:
PUSH ACC
CLR TI
MOV A, R0 ; 保存待打印数据
MOV SBUF, A ; 送数据到打印机
POP ACC
LCALL DELAY
CALL DELAY
CALL DELAY
RET
;设置串口子程序
;不使用中断, 定时器1用作波特率发生器
SETUART:
MOV TMOD, #20H ;设置定时器T1工作模式2
MOV TH1, #0FdH
MOV TL1, #0FdH ; 设置波特率 9600bps
SETB TR1 ; 启动定时器T1
MOV SCON, #50H ; 设置串行口工作方式为异步串行口,模式1
; 设置标志位,为发送数据作准备
RET
; 保存在程序段
print_content:
DB '北京炜煌科技微型打印机', 0DH, 'MicroPrinter demo', 0DH
DB '画线工具栏',0Dh
DB '-------------------------'
DELAY:
MOV R7,#00H
L: MOV R6,#00H
DJNZ R6,$
DJNZ R7,L
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -