微机实验一 || 流水灯实验

简介: 微机实验一 || 流水灯实验

一、实验目的及要求

1、通过对并行接口8255编程、调试,进一步熟悉仿真软件Proteus的使用方法,掌握8255的基本编程及调试方法,掌握编写程序控制硬件接口。


2、学生在实验课前必须认真预习教材与资料中的相关内容,绘制流程图,编写源程序,为实验做好充分准备,实验后撰写实验报告。


二、实验设备

Proteus 8 Professional、DOSBox 0.74、masm 5、EditPlus 5.2、PC机一台


三、实验内容

实现8255A口控制8个指示灯,循环点亮(瞬间只有一个灯亮)

  • 实验原理图

图1.1 8086CPU最小模式

图1.2 地址总线

图1.3 译码电路

图1.4 8255接口流水灯实验原理图


四、实验步骤

1、建立实验工程文件,绘制实验的原理图方案;

2、编写程序源代码,实现8255A口控制8个指示灯,循环点亮(瞬间只有一个灯亮)。

2、观察验证实验结果。


五、程序参考流程图

图1.5 8255接口流水灯程序流程图

  • 参考源程序
;FILE:8255.ASM
;This program is used for test output of 8255'S A port
;CHIP:8255
;CS      -->9000H
;PA0--PA7-->LED
 
PORT_8255_A EQU 9000H
PORT_8255_B EQU 9002H
PORT_8255_C EQU 9004H
CONTROL_PORT_8255 EQU 9006H
 
DELAY_NUM EQU 0FFFFH
 
STACK SEGMENT PARA STACK 'STACK'
      STA DB 1024 DUP(?)
STACK ENDS
CODE SEGMENT 
     ASSUME CS:CODE,SS:STACK
BEGIN:MOV DX,CONTROL_PORT_8255
      MOV AL,00000001B      ;A口,模式零,端口输出
      OUT DX,AL
      MOV DX,PORT_8255_A
      MOV AL,0FFH
      OUT DX,AL             ;关灯
      MOV AL,0FEH           ;11111110B 字模
 NEXT:OUT DX,AL
      CALL DELAY
      ROR AL,1  ;11111101--11111011
      JMP  NEXT
DELAY PROC NEAR
       PUSH CX
       MOV CX,DELAY_NUM     ;Delay Times=DELAY_NUM       
AGAIN :NOP
       NOP
       LOOP AGAIN          
       POP CX
       RET
DELAY ENDP
CODE ENDS
     END BEGIN


六、实验结果及思考问题

1.如何使LED闪亮的顺序反向?

答:将11111110,逻辑左移,如果CF=1,则将循环左移的数加1,再这基础上重复循环上一步骤。

2.如何调整LED闪亮的时间间隔?

答:改变NOP指令的个数;改变延时子程序中的CX值。

相关文章
|
算法 定位技术 C++
基本算法-回溯法(迷宫问题)
基本算法-回溯法(迷宫问题)
1992 0
|
6月前
|
人工智能 监控 安全
人体姿态[站着、摔倒、坐、深蹲、跑]检测数据集(6000张图片已划分、已标注)| AI训练适用于目标检测
高质量的数据集是 AI 模型成功的关键。本人体姿态识别数据集经过精心标注,覆盖多种常见姿态,既可以用于目标检测模型训练,也可用于行为分析研究。无论你是科研开发者还是工程应用者,这个数据集都能帮助你快速搭建人体姿态识别系统。本篇文章介绍了 人体姿态识别数据集(6000张图片) 的构成与使用方法。数据集覆盖五种常见姿态:站着、摔倒、坐、深蹲、跑,并按照 训练集与验证集(约5:1) 划分,保证了模型训练的效果与泛化能力。
1054 10
你为什么卸载了WPS?WPS 如何卸载干净?卸载不了WPS?看这里
本文介绍了如何彻底卸载电脑软件,包括WPS、Office 2016及Steam游戏等,分析了软件卸载不干净的原因,并推荐使用第三方工具如Geek进行深度清理,帮助用户解决残留文件、注册表项和服务项问题,确保系统运行更流畅。
2402 1
|
芯片
微机实验二 || 8253定时计数器方波实验
微机实验二 || 8253定时计数器方波实验
775 0
|
NoSQL Linux 编译器
内核实验(一):使用QEMU+GDB断点调试Linux内核代码
如何配置环境并使用QEMU虚拟机结合GDB进行Linux内核代码的断点调试,包括安装QEMU、交叉编译工具链,编译内核以及通过GDB远程连接进行调试的详细步骤。
1913 1
内核实验(一):使用QEMU+GDB断点调试Linux内核代码
MCU最小系统电路设计(以STM32F103C8T6为例)-2
MCU最小系统电路设计(以STM32F103C8T6为例)
MCU最小系统电路设计(以STM32F103C8T6为例)-2
|
机器学习/深度学习 数据可视化 PyTorch
使用Python实现深度学习模型:变分自编码器(VAE)
使用Python实现深度学习模型:变分自编码器(VAE)
1197 2
|
Linux
linux永久更改eth0的ip地址
linux中永久修改ip和子网掩码,可以用命令也可以直接到文件里修改。这里推荐直接到文件中修改。1、进入网卡配置文件 vi /etc/sysconfig/network-scripts/ifcfg-ethN (ifcfg-ethN是你要修改的网卡,可以用ifconfig查看你要修改的网卡)2、进入文件进行编辑,更改其中的ip 和子网掩码。
4647 0
|
传感器 JSON 网络协议
【ElfBoard】基于 Linux 的智能家居小项目——开源
【ElfBoard】基于 Linux 的智能家居小项目——开源
793 0
HTML+CSS+JS实现十款好看的登录注册界面模板,赶紧收藏起来吧!(二)
HTML+CSS+JS实现十款好看的登录注册界面模板,赶紧收藏起来吧!

热门文章

最新文章