找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3895|回复: 0
收起左侧

微机原理与应用的5个实验 包含8086扩展,8255交通灯,DEBUG程序,数码显示

[复制链接]
ID:762364 发表于 2020-5-27 12:02 | 显示全部楼层 |阅读模式
包含8086扩展,8255交通灯,数码显示
实验一:汇编语言程序设计
实验二:查表程序设计
实验三:I/O口扩展实验
实验四:数码显示
实验五:8255模拟交通灯

实验一汇编语言程序设计

  • 实验目的

1、学习8088汇编语言程序的基本结构和程序设计的基本方法。

2、熟悉在PC机上建立、汇编、链接、调试和运行汇编语言程序的全过程。

3、掌握DEBUG基本指令及其使用方法。

  • 实验内容

编写程序,将80H-8FH共16个字节数据写入数据段1000H偏移地址开始的16个内存单元中。

  • 实验步骤

1、进入编程环境,编写、汇编、链接、运行汇编语言源程序。

2、利用DEBUG指令,对程序进行调试。

3、通过单步、断点等调试手段验证程序功能,查看1000H-100FH单元的数据是否传送正确。

  • 实验程序与DEBUG指令
START:
    MOV SI,80H
    MOV DI,1000H
    MOV CX,16
    XOR AX,AX
NEXT:
MOV AX, [SI]
MOV [DI],AX
              INC SI
INC DI
LOOP NEXT
MOV AH,4CH
INT 21H
    END START
  • 实验结果


  • 实验总结

通过这次实验,利用DEBUG功能可以清楚看到程序运行结果以及汇编语句,进一步加深了对汇编指令运行的理解。



实验二  查表程序设计

  • 实验目的

学习查表程序的设计方法。

  • 实验步骤

PC计算机一台,Dais-86PRO+或Dais-PRO163C实验系统一套。

三、实验内容及步骤

              所谓查表,就是根据某个值,在数据表格中寻找与之对应的一个数据,在很多情况下,通过查表比通过计算要使程序更简单,更容易编制。

              通过查表的方法实现将一个八位二进制数的高4位和低4位分别转换为ASCII码。0~9的ASCII码为30h~39h,而A~F的ASCII码为41h~46h,这样就可以将0~9与A~F对应的ASCII码保存在一个数据表格中。当给定一个需要转换的十六进制数时,就可以快速的在表格中找出相应的ASCII码值。

实验步骤:

1) 编写实验程序,编译、链接生成可执行文件;

2) 利用DEBUG指令进行调试,查看结果是否正确;

3) 反复修改变量,观察验证程序的正确性。

四、实验程序与DEBUG指令

DATAS SEGMENT
TABLE DB 30H,31H,32H,33H,34H,35H,36H,37H,38H,39H,41H,42H,43H,44H,45H,46H
DATAS ENDS
CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
    MOV AX,DATAS
    MOV DS,AX
    MOV DL,4AH
    LEA BX,TABLE
    MOV AL,DL
    AND AL,0FH
    XLAT
    MOV AH,AL
    MOV CL,4
    MOV AL,DL
    SHR AL,CL
    XLAT
    MOV DH,AL
    MOV DL,AH
    MOV AH,4CH
    INT 21H
CODES ENDS
    END START
  • 实验结果

六.实验总结

通过这次实验,熟悉了查表功能的运用以及运用过程中需要注意的问题,比如查找数值放在AL中,进一步加深了对查找表使用的理解。



实验三  I/O口扩展实验

  • 实验目的

学习在微机接口系统中扩展简单I/O设备的基本方法。

  • 实验步骤

PC计算机一台,Dais-86PRO+或Dais-PRO163C实验系统一套。

三、实验内容及步骤

接口电路如图1所示。本实验用74LS244作为缓冲输入接口、74LS273作为锁存输出接口扩展构成8位I/O接口。编写程序,读取74LS244缓冲输入接口所连接的K7~K0开关数据,写入到74LS273锁存输出接口,控制L7~L0八个发光二极管的亮灭。

图1  I/O扩展实验电路图

实验步骤:

1) 按图1连接实验电路;

2) 编写实验程序,经编译、链接无语法错误后装载到实验系统;

3) 全速运行程序,拨动开关K7~K0,观察发光二极管L7~L0状态。



四、实验程序与DEBUG指令

code segment
assume cs:code
start:mov dx,300H
IN al,dx
OUT dx,al            
JMP start
MOV ah,4ch
INT 21h
code ends
end start

五、实验结果

、实验总结

通过这次实验,理解了如何利用IN,OUT输入输出指令读取输出数据,学习在微机接口系统中扩展简单I/O设备的基本方法。进一步加深了对微机系统的理解。



实验数码显示

  • 实验目的

了解LED数码管动态显示的工作原理及编程方法。

  • 实验步骤

PC计算机一台,Dais-86PRO+或Dais-PRO163C实验系统一套。

  • 实验内容及步骤

实验箱LED模块接口如图所示,要求使用8255的PA7—PA0控制数码管字形口、PB5—PB0控制数码管字位口,实现数码管显示“HELLO”。

  • 实验程序与DEBUG指令

1、该数码显示系统属于动态显示还是静态显示?

              答:动态显示。

2、阐述动态显示和静态显示各自的特点。

              答:动态显示特点:亮度相对较低,耗电少,要求I/O口少;

                            静态显示特点:亮度高,功耗大,要求I/O口或驱动芯片多。

3、整理出详细的实验程序。

data segment
data1 db 20h,10h,08h,04h,02h
data2 db 89h,86h,0c7h,0c7h,0c0h
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
mov dx,303h
mov al,80h
out dx,al
again:mov cx,5
lea si,data1
lea di,data2
next:mov dx,301h
mov al,[si]
out dx,al
mov dx,300h
mov al,[di]
out dx,al
mov bx,100h
x1:dec bx
jnz x1
inc si
inc di
loop next
jmp again
mov ah,4ch
int 21h
code ends
end start

  • 实验结
  • 实验总结

通过这次实验,我了解LED数码管动态显示的工作原理,并利用汇编语言完成了对数码管的动态显示,成功显示“HELLO”。



实验8255模拟交通灯

  • 实验目的

掌握通过8255A并行口传输数据的方法,模拟交通灯控制系统。

  • 实验步骤

PC计算机一台,Dais-86PRO+或Dais-PRO163C实验系统一套。

  • 实验内容及步骤
1、实验要求:
1)用8255作输出口,控制12个发光二极管亮灭,模拟交通灯管理:

2)程序初始时为A路口绿灯亮、B路口红灯亮;

3)延迟一段时间后,A路口由绿灯亮变为黄灯闪烁;

4)接着A路口红灯亮、B路口绿灯亮;

5)延迟一段时间后,B路口由绿灯亮变为黄灯闪烁;

6)最后循环至初始时继续。

2、实验步骤:

1) 连接实验电路;

2) 编写实验程序,经编译、链接无语法错误后装载到实验系统;

3) 全速运行程序,观察发光二极管显示,应能循环模拟交通灯显示。

四、实验程序与DEBUG指令

code segment
assume cs:code
start :
mov dx,303h
mov al,80h
out dx,al
mov dx,300h
again: mov al,011101b
out dx,al
call delay
mov cx,5
next:mov al,011110b
out dx,al
call delay1
mov al,011111b
out dx,al
call delay1
loop next
mov al,101011b
out dx,al
call delay
mov cx,5
nex1:
mov al,110011b
out dx,al
call delay1
mov al,111011b
out dx,al
call delay1
loop next1
jmp again
delay proc
push cx
push ax
mov cx,10
x2:mov ax,0ffffh
x1:dec ax
jnz x1
dec cx
jnz x2
pop ax
pop cx
ret
delay endp
delay1 proc
push bx
mov bx,0ffffh
x4:dec bx
jnz x4
pop bx
ret
delay1 endp
  mov ah,4ch
  int 21h
  code ends
  end start


五、实验结果

通过这次实验,我掌握如何对8255A进行初始化,然后通过8255A并行口传输数据的方法,成功模拟了交通灯控制系统,也学会了如何编写子程序并实现调用。


完整的Word格式文档51黑下载地址:
323冯 微机.docx (2.48 MB, 下载次数: 12)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

无效楼层,该帖已经被删除
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表