admin管理员组

文章数量:1655467

1、实验目的:

    要求掌握8255芯片的工作原理、初始化、编程应用。

2、实验原理:

    通过三个端口共24位二进制数据控制LED灯亮灭形成走马灯。

3实验内容:

(1)运行“LED显示实验台”。

 

(2)读懂示例程序led1.asm及led2.asm,以备测试老师询问。

(3)编辑、调试、运行程序,让相邻两个LED顺时针(学号末位奇数者)或逆时针(学号末位偶数者)方向旋转亮起来形成走马灯。

程序及解释如下:
data   segment
portA  equ 400H        ; PA口地址
s      db "twenty four LEDs flicker circularly. Press any key to exit ...",0dh,0ah,"$"   ;程序功能提示
data   ends
code   segment
        assume cs:code,ds:data
go:    mov ax,data
       mov ds,ax
      mov dx,offset s    ;显示提示
      mov ah,9           ;调用九号系统显示
      int 21h           ;中断
       mov dx,porta+3
       mov al,80h
       Out dx,al         ; 三端口均初始化为方式0输出
L0:    mov si,24
       mov bx,0         ;  低16位初始值设为0
       mov cl,0C0H          ;  高8位初始值设为0C0H(从高八位的高位开始亮灯,然后右移)
L1:    mov ah,0bH
        Int 21h         ; 有无按键
        Cmp al,0ffH     ;比较指令
        Jz  exit       
        mov dx,porta   ; 输出24位数
        mov al,bl     ;将 16位寄存器BX的底8位内容,赋值到16位寄存器AX的低8位上。
        Out dx,al  ;把AL的8位值送DX端口
        Inc  dx     ;加一指令
        mov al,bh  ;将 16位寄存器BX的高8位内容,赋值到16位寄存器AX的低8位上。
        Out dx,al  
        Inc  dx
        mov al,cl
        Out dx,al  
        Call delay05    ; 延时
        SHR  cl,1       ;高8位右移一位
        Rcr  bx,1       ; 低16位右移一位
        dec si       ;减一
        jnz  L1      ;跳到L1
        Jmp  L0         ; 跳到目标地址,重新开始
Exit:   mov ah,4ch
        Int 21h
delay05 proc near        ; 循环延时子程序
        push cx
        push bx
        mov cx,0000H
d1:     mov bx,1200h
d2:     dec bx
        jnz d2
        loop d1
        pop bx
        pop cx
        ret
delay05 endp
Code   ends


        End go

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

本文标签: 原理计算机LED