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

📄 h20.asm

📁 (1)完成键盘
💻 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 + -