1 / 3 实验四可编程并行接口( 8255 方式 0 ) ;*******************************; ;* 8255 方式 0 的 C口输入,A 口输出 *; ;*******************************; ioport equ 0d480h -0280h io8255a equ ioport+288h io8255ctr equ ioport+28bh io8255c equ ioport+28ah code segment assume cs:code start: mov dx,io8255ctr ; 设置方式控制字: mov al,8bh ;8255 为C 口输入,A 口输出 out dx,al inout: mov dx,io8255c ; 从 C口输入一数据 in al,dx mov dx,io8255a ; 从 A 口输出刚才自 C 口 out dx,al ; 所输入的数据 mov dl,0ffh ; 判断是否有按键 mov ah,06h int 21h jz inout ; 若无, 则继续自 C 口输入,A 口输出 mov ah,4ch ; 否则返回 int 21h code ends end start 编程要求: 用 8255A 的 PA 控制循环彩灯。 1. 初始时 L 0 亮,其余不亮, L 0 亮一秒后移位一次, L 1 亮,其余不亮, 以此类推每隔一秒移位一次,每移位 8 次为一个循环,共循环 8 次。方法 1:设置 PC 为输出口 2 / 3 ioport equ 0d480h -0280h io8255a equ ioport+288h io8255ctr equ ioport+28bh io8255c equ ioport+28ah code segment assume cs:code start: mov al,80h mov dx,io8255ctr out dx,al mov cx,8 again: mov al,01h mov dx,io8255a nextp: out dx,al call delay1s shl al,1 jnz nextp loop again mov ah,4ch ; 否则返回 int 21h delay1s proc near ; 延时子程序 push cx push bx mov bx,2000 lll: mov cx,0 ll: loop ll dec bx jne lll pop bx pop cx ret delay1s endp code ends end start code ends end start 口实现如下霓虹灯控制,从一侧依次点亮2 个灯,亮一秒后移位,让紧挨着的 2 个灯亮,其余灯不亮┅以此类推,共循环 8 次,请编写程序。 data segment ioport equ 0d480h-0280h io8255a equ ioport+288h 装订线内请勿答题 3 / 3 io8255ctr equ ioport+28bh portc1 db 03h,0ch,30h,0c0h, 0ffh ;两排灯从一侧向另一侧 data ends code segment assume cs:code,ds:data start: mov ax,data mov ds,
Fifth Chinese Daughter 来自淘豆网www.taodocs.com转载请标明出处.