h20.asm
来自「单片机程序集合」· 汇编 代码 · 共 70 行
ASM
70 行
; printer
; ASM for MCS51
mode equ 082h
dport equ 08000h ; PA口,数据口
status equ 08001h ; PB.0 忙状态
ctl equ 08002h ; PC.0 选通控制
contrl equ 08003h ; 8255 控制口
stb equ 0 ; 选通位
busy equ 0 ; 忙状态位
org 0h
jmp start
delay:
mov r6,#0
mov r7,#0
dd: nop
djnz r7,dd
djnz r6,dd
ret
print:
push dph
push dpl
mov b,a
mov dptr, #status
rd_status:
movx a,@dptr ; 读打印机状态
jb acc.busy, rd_status ; 若忙,等待
mov dptr,#dport ; 数据送出
mov a,b
movx @dptr,a
mov dptr,#ctl ; 输出选通脉冲
mov a,#1
movx @dptr,a
mov a,#0
movx @dptr,a
pop dpl
pop dph
ret
start:
mov dptr, #contrl
mov a, #mode
movx @dptr,a
mov dptr, #string ; 被打印字串
nextchar:
clr a
movc a,@a+dptr
jnz prtchar ; 字串结束
jmp $
prtchar:
call print
inc dptr ; 下一字符
jmp nextchar
nop
string:
db 'Hello World!',0dh,0ah
db 'I can print now',0dh,0ah,0ch,0,0
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?