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

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

一、实验目的及要求

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值。

相关文章
|
机器学习/深度学习 人工智能 算法
AI加速引擎PAI-TorchAcc:OLMo训练加速最佳实践
阿里云机器学习平台PAI开发的Pytorch训练加速框架PAI-TorchAcc已接入最新开源的大语言模型 OLMo。在保证模型效果和易用性的前提下,PAI-TorchAcc相对 PyTorch 性能在 OLMo 1B 上加速比达到 1.64X,在 OLMo 7B 上加速比达到 1.52X。本文分析了 PAI-TorchAcc 的性能收益来源。
|
IDE Java 开发工具
java编译通过,运行却提示找不到或无法加载主类的解决方案
java编译通过,运行却提示找不到或无法加载主类的解决方案
1799 0
|
3月前
你为什么卸载了WPS?WPS 如何卸载干净?卸载不了WPS?看这里
本文介绍了如何彻底卸载电脑软件,包括WPS、Office 2016及Steam游戏等,分析了软件卸载不干净的原因,并推荐使用第三方工具如Geek进行深度清理,帮助用户解决残留文件、注册表项和服务项问题,确保系统运行更流畅。
771 1
|
Python
李峋同款爱心Python代码版来了
李峋同款爱心Python代码版来了
9300 2
李峋同款爱心Python代码版来了
|
存储 关系型数据库 MySQL
MySQL中的列类型之字符串类型总结
MySQL中的列类型之字符串类型总结
745 1
|
12月前
|
数据采集 缓存 算法
算法优化的常见策略有哪些
【10月更文挑战第20天】算法优化的常见策略有哪些
|
物联网 程序员 语音技术
STM32智能小车(循迹、跟随、避障、测速、蓝牙、wife、4g、语音识别)总结-3
STM32智能小车(循迹、跟随、避障、测速、蓝牙、wife、4g、语音识别)总结
STM32智能小车(循迹、跟随、避障、测速、蓝牙、wife、4g、语音识别)总结-3
|
监控 JavaScript 前端开发
深入理解与实践:利用监听事件优化应用程序响应性
【7月更文挑战第3天】事件监听是软件开发中的关键,基于“发布-订阅”模式,用于响应用户操作、系统变化等。常见于UI交互、异步编程、系统事件和游戏开发。JavaScript示例展示了如何监听按钮点击:添加事件监听器到元素,定义处理函数。进阶技巧包括事件委托、冒泡与捕获、节流和防抖,用于优化性能和用户体验。理解并运用事件监听能提升应用质量。
488 2
|
机器学习/深度学习 算法 数据挖掘
【机器学习】在使用K-means聚类算法时,如何选择K的值?
【5月更文挑战第11天】【机器学习】在使用K-means聚类算法时,如何选择K的值?