?? h20.asm
字號:
; 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 + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -