8086汇编程序:多位数码管动态扫描显示2023

news2024/11/24 14:45:46

实验目的

1.掌握8255A和8086CPU接口方法,掌握8255A的工作方式和编程原理。

2.掌握多位数码管动态扫描显示的工作原理和编程方法。

实验内容

设计8255A 与多位共阴极数码管接口电路,实现在四位LED共阴极数码管上显示数字2023

8255A工作在方式0基本输入输出方式

8255A方式控制字

D7

D6

D5

D4

D3

D2

D1

D0

1

A口方式

A口IO

C口高4位IO

B口方式

B口IO

C口低4位IO

硬件线路连接

在Proteus软件中绘制硬件电路图。8255A片上地址:PA端口地址为70H、PB端口地址72H、PC端口地址为74H、控制端口地址为76H

共阴极数码管段码表

数值

dp

g

f

e

d

c

b

a

0

0

0

1

1

1

1

1

1

3F

1

0

0

0

0

1

1

0

0

06

2

0

1

0

1

1

0

1

1

5B

3

0

1

0

0

1

1

1

1

4F

4

0

1

1

0

0

1

1

0

66

5

0

1

1

0

1

1

0

1

6D

6

0

1

1

1

1

1

0

1

7D

7

0

0

0

0

0

1

1

1

07

8

0

1

1

1

1

1

1

1

7F

9

0

1

1

0

1

1

1

1

6F

A

0

1

1

1

0

1

1

1

77

B

0

1

1

1

1

1

1

1

7F

C

0

0

1

1

1

0

0

1

39

D

0

1

0

1

1

1

1

0

5E

E

0

1

1

1

1

0

0

1

79

F

0

1

1

1

0

0

0

1

71

程序代码 

DATA SEGMENT
;共阴极数码管段码表
	SEGTAB DB 3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H, 7FH, 6FH,
	;显示字符  0    1    2    3    4    5    6    7    8    9  
		   DB 77H, 7CH, 39H, 5EH, 79H, 71H, 00H
	;显示字符  A    B    C    D    E    F   空

	OUTBUFF	DB 2,0,2,3	;显示字符             
DATA ENDS

STACK SEGMENT
S DB 100 DUP(0)

TOP EQU $-S
STACK ENDS

;声明端口地址
A_PORT    	EQU	70H
B_PORT    	EQU	72H
C_PORT    	EQU	74H
CRTL_PORT   EQU	76H

CODE SEGMENT
	ASSUME CS:CODE,DS:DATA,SS:STACK
START:
	MOV AX, DATA
	MOV DS, AX
	
	MOV AL, 10000000B	;8255A初始化
	OUT CRTL_PORT, AL	;写入控制字

LOOP1:	
	CALL DISP
	JMP  LOOP1			;无条件循环
	MOV AH, 4CH
	INT 21H  

;显示函数 子程序    
DISP  PROC

AGAIN:	
	MOV  CL, 0FEH		;位选, 第一位显示      
	LEA  SI, OUTBUFF 	;获取被显示字符的偏移地址

LEDDISP:
	MOV  AL, CL	   
	OUT  C_PORT, AL		;C口输出AL的内容,选中第一个数码管

	LEA  BX, SEGTAB		;获取段码表的偏移地址
	MOV  AL, [SI]       ;取出被显示的字符    
	XLAT				;换码[BX+AL]->[AL]   		
	OUT  B_PORT, AL		;换码后, AL内存的内容就是 数组SEGTAB[OUTBUFF]  
	
PUSH CX             ;延时程序
	MOV CX, 100
	Delay: LOOP Delay	
	
POP CX              ;延时结束 要POP CX
	MOV  AL, 0     	    ;清零操作
	OUT  B_PORT, AL   
	
CMP  CL, 0F7H		;比较指令,判断是否循环左移
	JE  NEXT
	INC SI
	ROL CL, 1			;1111 1110 不带进位的循环左移 P106
	
	JMP  LEDDISP

NEXT:RET
DISP ENDP

CODE ENDS
    END START

 
 

运行结果:

暂停仿真效果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1312302.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

做数据分析为何要学统计学(10)——什么是回归分析

​回归分析(regression analysis)是量化两种或两种以上因素/变量间相互依赖关系的统计分析方法。回归分析根据因素的数量,分为一元回归和多元回归分析;按因素之间依赖关系的复杂程度,可分为线性回归分析和非线性回归分析。我们通过…

跑代码中遇到的错误合集(持续更新)

1.TypeError: dropout(): argument ‘input‘ (position 1) must be Tensor, not str 原因:dropout函数接收到的参数是一个字典类型(需手动设置其不要返回字典类型) 解决步骤: 1.根据代码定位到dropout函数 2.定位到函数中的参数 3.对给dropout函数参数赋值的函数的…

【C++练级之路】【Lv.4】类和对象(下)(初始化列表,友元,static成员,编译器的优化)

目录 一、再谈构造函数1.1 构造函数体赋值1.2 初始化列表1.3 explicit关键字 二、static成员2.1 概念2.2 特性 三、友元3.1 引入3.2 友元函数3.2.1 概念3.2.2 特性 3.3 友元类3.3.1 概念3.3.2 特性 四、内部类4.1 概念4.2 特性 五、匿名对象六、编译器的优化6.1 传参优化6.1.1 …

使用python做一个实用的工具,便捷的定位和操作文档

环境准备:totalcommander 我用的totalcommander,python脚本的快捷键也是在totalcommander中注册的,所以需要先在TC界面下,才能通过预定义的快捷键唤起 python 脚本。以下是我的 totalCommander界面,我定义的快捷键是 …

jrebel debug 启动不起来

idea更新之后jrebel debug模式启动不起来。 将下面的设置取消之后就可以了,希望能帮到你们… 被卡了两天… jrebel信息。 idea IntelliJ IDEA 2023.3.1 (Ultimate Edition) Build #IU-233.11799.300, built on December 12, 2023 Licensed to Alexandra Martin…

VHDL实验:基于有限状态机实现秒表

题目要求: 利用有限状态机实现实现一个具有启动、停止、清零功能的秒表,显示格式:分:秒:十分秒。启动、停止、清零由一个按键控制,按键按下时,功能按启动、停止、清零顺序循环。 思路分析&…

搭配环境—Python解释器

对于一些库,需要创建虚拟环境(就是给你电脑创建一个虚拟的地方来存,这个虚拟的地方有很多,需要自己找) 对于人脸识别项目存在 使用的这个解释器,其他解释器可以去envs找找

智能高效的Go开发工具GoLand v2023.3发布,支持AI辅助编码!

GoLand 使 Go 代码的阅读、编写和更改变得非常容易。即时错误检测和修复建议,通过一步撤消快速安全重构,智能代码完成,死代码检测和文档提示帮助所有 Go 开发人员,从新手到经验丰富的专业人士,创建快速、高效、和可靠的…

黑豹程序员-原生JS拖动div到任何地方-自定义布局

效果图 代码html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html xmlns"http://www.w3.org/1999/xhtml"> <head> <meta http-equiv"Content-Type" content"text/html; charsetutf-8" /…

【Docker】ES、Kibana及IK安装配置

目录 一.单节点安装部署 1.版本选择 2.推荐及总结 ​3.官网下载地址 4.创建网络 5.拉取镜像 6.创建文件夹 7.运行docker命令 二、安装kibana 1.安装kibana 2.浏览器访问 3.国际化 三、Elasticsearch查询 1.数据插入&#xff1a;POST或PUT 2.数据查询GET 3.分词…

使用java调用python批处理将pdf转为图片

你可以使用Java中的ProcessBuilder来调用Python脚本&#xff0c;并将PDF转换为图片。以下是一个简单的Java代码示例&#xff0c;假设你的Python脚本名为pdf2img.py&#xff1a; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader…

Linux arm架构下构建Electron安装包

上篇文章我们介绍 Electron 基本的运行开发与 windows 安装包构建简单流程&#xff0c;这篇文章我们从零到一构建 Linux arm 架构下安装包&#xff0c;实际上 Linux arm 的构建流程&#xff0c;同样适用于 Linux x86 环境&#xff0c;只不过需要各自的环境依赖&#xff0c;Linu…

图文教程:从0开始安装stable-diffusion

现在AI绘画还是挺火&#xff0c;Midjourney虽然不错&#xff0c;但是对于我来说还是挺贵的。今天我就来安一下开源的AI绘画stable-diffusion,它的缺点就是对电脑的要求比较高&#xff0c;尤其是显卡。 话不多说开搞。 访问sd的github&#xff0c;https://github.com/AUTOMATIC…

西南科技大学数字电子技术实验四(基本触发器逻辑功能测试及FPGA的实现)预习报告

一、计算/设计过程 说明:本实验是验证性实验,计算预测验证结果。是设计性实验一定要从系统指标计算出元件参数过程,越详细越好。用公式输入法完成相关公式内容,不得贴手写图片。(注意:从抽象公式直接得出结果,不得分,页数可根据内容调整) (1)D触发器 特征方程: Q…

基于python实现原神那维莱特开转脚本

相信不少原友都抽取了枫丹大C那维莱特&#xff0c;其强力的输出让不少玩家爱不释手。由于其转的越快&#xff0c;越不容易丢伤害的特点&#xff0c;很多原友在开转时容易汗流浃背&#xff0c;所以特意用python写了一个自动转圈脚本&#xff0c;当按住鼠标侧键时&#xff0c;即可…

苹果手机怎么将图片转为excel/word?

第一种方案就是用苹果手机自带的OCR功能来实现需求&#xff0c;但低版本的IOS系统不支持此功能&#xff0c;目前已知IOS15以上版本可以支持&#xff0c;只需要在“设置”--“相册”那打开“实况文本”即可&#xff0c;如下图。 IOS15系统打开“实况文本” 开启后&#xff0c;打…

零信任 SASE 办公安全解决方案:提升企业网络安全与灵活性

​零信任 SASE&#xff08;Secure Access Service Edge&#xff09;办公安全解决方案为企业带来了许多好处&#xff0c;相较于以前的解决方案有明显差异。这个方案的出现是为了应对企业面临的新的网络安全挑战和远程办公的需求。 1、统一的网络安全管理&#xff1a;SASE 将网络…

语音机器人话术设计重点

要使用语音机器人&#xff0c;首先得要先准备一套业务的话术脚本&#xff0c;这个话术脚本的设计&#xff0c;可能直接决定了语音机器人后续的使用效果。这个脚本的编写一般不是机器人厂家直接能完成的&#xff0c;只有业务的使用方&#xff0c;他们才最了解自己的业务&#xf…

modbus TCP 应用

Modbus TCP 应用介绍 一、原理 Modbus TCP/IP 协议是工业通信系统领域的基石。它是一种与以太网结合使用的应用层消息传递协议&#xff0c;可实现不同类型网络上连接的设备之间的客户端/服务器通信。Modbus 最初是一种 Modbus 串行协议 (Modbus RTU)&#xff0c;现已发展到包…