实验六 单脉冲触发中断实验(汇编与微机原理)

news2025/1/11 20:41:47

实验目的:

掌握可编程中断控制器8259一般的使用方法。

掌握8259初始化的编程方法及中断服务程序的编写方法,中断程序的调试方法。

实验内容:

用单脉冲按钮的正脉冲输出作为中断控制器8259的中断源产生中断请求,在中断服务程序中对进中断的次数进行计数,并将计数值显示在数码管的最右边两位,中断10次程序结束。

实验器材:

电脑一台,微机原理与接口实验箱一台,连接导线若干。

实验原理:

1. 认真阅读教科书中有关8259的相关内容,掌握8259工作的基本原理和一般过程。

2. 认真阅读实验指导书P77 ~P80,掌握8259初始化的方法、初始化命令字和操作命令

字的含义和编写方法。

8259的初始化编程:8259是一个可编程的中断控制器,我们可以通过对它进行编程来实现对它的控制。它的初始化编程就是按照严格的初始化步骤分别向初始化命令字ICW1~ICW4 写入初始化命令规定它的工作方式(如:工作在单片方式还是级连方式、是电平触发中断还是边沿触发中断、中断类型码是多少、有没有从片、以何种方式结束中断等等),每个初始化命令字的格式和各位的含义参见实验指导书P77~79,在具体编程时要注意初始化命令字写入的顺序和它们写入的端口是偶地址端口还是奇地址端口。

8259的应用编程:8259的应用编程就是在8259初始化编程结束后,用户根据需要进一步写入操作命令字OCW1~OCW3的过程。OCW1也叫中断屏蔽字,OCW2也叫中断结束命令字。每个操作命令字的格式和各位的含义参见实验指导书P79~80,在具体编程时要注意操作命令字写入的端口是偶地址端口还是奇地址端口。

硬件连线:

8259B3区:8259片选CS、A0   连接   A3区: 系统CS3、A0   ;

B3区:INT、INTA 连接 A3区:INTR、INTA;B3区:IR0 连接 B2区:单脉冲上升沿 ;

8255D3区:8255片选CS、A0、A1   连接  A3区: 系统CS1、A0 、A1;

D3区:   (A口)B=JP16(SEGA-SEGP)、(B口)C=JP17(DIG0-DIG7) 连接

F5区:   B(JP36)(段码)、     C(JP35)(位码)                                                                       实验步骤:

要求学生做好实验预习,明确实验目的和要求,理解实验原理,编写好可调试程序,到实验室对相关部件进行连线后不断调试修改程序直至实现目标。

星研系统的子程序调用说明:

       在本次实验中要用数码管来显示进中断次数,也就是用到了“8255控制键盘输入及数码管显示模块”,由于星研系统中此模块用到的频率较高,所以开发此系统时专门编写了2个常用的子程序供用户平时开发时调用,现对这2个子程序的功能及使用方法说明如下。

InitKeyDisplay  是8255控制键盘数码管工作初始化程序,此子程序没有入口、出口参数;

Display8       是 数码管显示子程序(8255对数码管扫描)有入口参数没有出口参数;

      入口参数: SI----指向8字节显示缓冲区首地址;

如果需要显示小数点,8位二进制数的最高位为1,例如:80H;

如果某位不需要显示,符值10H;

如果需要显示负号“-”,符值11H

例子:如果8字节显示缓冲区中存入00H,00H,00H,00H,82H,03H,10H, 10H  则数码管上显示为:“  32.0000”

注意

在程序调试过程中可以在中断服务程序的入口处设置一个断点然后用连续运行方式运行程序以观察程序是否能正常进中断。

实验原理图:       

实验代码: 

.MODEL	TINY
EXTRN	InitKeyDisplay:NEAR,  Display8:NEAR      
IO8259_0	EQU	0250H    
IO8259_1	EQU	0251H
	.STACK      100
	.DATA    
BUFFER          DB      8 DUP(?)       
Counter		DB	?              
	.CODE
START:  MOV     AX,@DATA
        MOV     DS,AX
        MOV	ES,AX
        NOP
        CALL	InitKeyDisplay	   ;8255控制键盘数码管工作初始化程序 	

	;补充程序,对8259初始化,注意写入的端口
	;icw1:边沿触发、单片、需要ICW4
	MOV	DX,IO8259_0	
	MOV	AL,13H
	OUT	DX,AL
	;icw2:中断类型码(取值范围:00H-0FFH、可任意设置)
	MOV	DX,IO8259_1	
	MOV	AL,0E8H
	OUT	DX,AL
	;icw4:普通全嵌套、非缓冲、非自动结束
	MOV	AL,01H		
	OUT	DX,AL
	;IRQ7	
	MOV	AL,01111111B	
	OUT	DX,AL
       ;中断向量表初始化       	
	PUSH	ES              
	MOV	AX,0   
	MOV	ES,AX   ;中断向量表段基址为0000H
	MOV	DI,0EFH*4   ;预置的中断向量地址
	;向量表中低地址存放偏移地址
	;向量表中高地址存放段基址
	LEA	AX,IRQ0
	STOSW                   
	MOV	AX,CS
	STOSW			
;	MOV	AX,0
;	MOV	ES,AX
;	MOV     BX,0EFH*4
;	MOV     AX,OFFSET IRQ0
;	MOV     ES:[BX], AX
;	MOV     AX, SEG IRQ0
;	MOV     ES:[BX+2], AX
	POP	ES

	MOV     Counter,0  ;中断次数计数器置零    		
	STI      ;中断标志位被设置为1时,CPU将允许中断请求
START1:	CALL	LedDisplay      

	LEA	SI,Buffer        
	CALL	Display8        
	;中断10次的判断		
	CMP     Counter,11H     
	JNE	START1       
        ;关中断
	HLT

LedDisplay	PROC	NEAR         
	MOV	AL,Counter   
	MOV	AH,AL
	AND	AL,0FH
	MOV	Buffer+0,AL
	AND	AH,0F0H ;保留高8位
	ROR	AH,4   ;循环右移4位
	MOV	Buffer + 1,AH
	MOV	Buffer + 2,10H	;不显示
	MOV	Buffer + 3,10H
	MOV	Buffer + 4,10H
	MOV	Buffer + 5,10H
	MOV	Buffer + 6,10H
	MOV	Buffer + 7,10H
	RET		
LedDisplay	ENDP

IRQ0	PROC	NEAR
	PUSH	DX
	PUSH	AX
	MOV	AL,Counter    
	ADD	AL,1   ;中断次数加一
	DAA      ;将AL的内容调整为两位组合型的二进制数
	MOV	Counter,AL		
	MOV	DX,IO8259_0 ;写入OCW2
	MOV	AL,20H     ;发中断结束命令
	OUT	DX,AL
	POP	AX    ;恢复现场
	POP	DX
	IRET
IRQ0	ENDP

END	START

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

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

相关文章

启动微服务idea控制台配置及样式

启动微服务idea控制台配置及样式 1. view —> tool windows —> services 2.控制台样式,下载插件 Grep Console ,可在设置中设置颜色

element 弹窗在弹出后鼠标还可以点击页面其他元素

文章目录 需求分析需求 如下图所示,在点击弹出弹框后,支持 鼠标可点击弹框外的其他地方可拖拽弹框弹出弹出后不可有遮挡弹出样式可自定义 分析 官网:https://vxetable.cn/v4/#/table/start/install 安装 vxe-table 引入import {App, createApp }

全球大模型发展整体态势,暗流涌动下的机遇

原创 | 文 BFT机器人 (一)大模推动能“涌现”,打开AI术发展上限 人工智能大模型,是指通过在海量数据上依托强大算力资源进行训练后能完成大量不同下游任务的模型。 在技术层面上,大模型的实现采用“预训练指令微调人类反馈的强化学习”的训练…

3款技术宅下载神器you-get,DownKyi,Hitomi-Downloader

今天在B站看到一个无水印素材视频,就想着下载下来。原来我一直用硕鼠的,但今天硕鼠官网访问不了。python小工具比较多,搜索一下发现几款不错的下载小工具,推荐给大家。 一、准备工作 很多时候我们要做视频处理,或者视…

记录 | Mac微信双开

目的:在 mac 上微信双开 (1) 先打开并登录第一个微信; 2)访达 -> 应用程序 -> 微信(双指同时摁)-> 显示包内容; 3)依次打开以下⽂件夹 Contents -> MacOS -> 双击 WeChat 即可…

Redis 安装部署

文章目录 1、前言2、安装部署2.1、单机模式2.1.1、通过 yum 安装(不推荐,版本老旧)2.1.1、通过源码编译安装(推荐) 2.2、主从模式2.3、哨兵模式2.4、集群模式2.5、其他命令2.6、其他操作系统 3、使用3.1、Java 代码 —…

开源数据大屏系统介绍

睿思BI数据大屏系统现已开源,通过拖拽配置的方式构建大屏,支持零代码开发。并且包含大量大屏模版,方便用户快速创建大屏应用。 系统主要包括数据准备、大屏设计、权限管理3个部分内容。 1.数据准备 1.1 创建数据源:定义BI系统链…

基于HTML 实现的示波器-含完整源码

完整资料下载连接 基于HTML 实现的示波器-含jshtmlcss完整源码 改源码是在桌面 PC 上设计的,分辨率为 1920 x 1080 像素,但宽高像素比为 1.4 到 1.6 的任何分辨率都将产生良好的图像。它适用于以下浏览器的最新版本:Internet Explorer、Edge、…

如何利用企业软件著作权查询API提升知识产权管理效率

引言 在当今数字化时代,企业的知识产权管理变得愈发重要。其中,软件著作权作为企业重要的知识产权之一,其保护和管理对于企业的创新和竞争力至关重要。为了更高效地进行软件著作权管理,许多企业开始采用先进的技术手段&#xff0…

初识谷歌chrome插件

谷歌插件想必各位都用过,使用广泛的vue-tools想必大家都不陌生吧,这就是谷歌插件。与其说是谷歌插件,倒不如说是浏览器插件,只是谷歌浏览器用的比较普遍罢了。所以这里就用谷歌插件代称吧。 1.何为插件 先来看下比较官方的定义&a…

Spring 向页面传值以及接受页面传过来的参数的方式

一、从页面接收参数 Spring MVC接收请求提交的参数值的几种方法: 使用HttpServletRequest获取。 RequestMapping("/login.do") public String login(HttpServletRequest request){ String name request.getParameter("name") String pa…

JVM性能调优理论与实践

内存模型 方法区,堆是所有线程共有。 栈,本地计数器是线程私有。 方法区 保存class文件加载后的类信息,常量池数据等 1.8后叫metaspace 会OOM,如动态加载类文件时: java.lang.OutOfMemoryError: PermGen space 堆 最大的内存…

22款奔驰GLE450升级香氛负离子 车载香薰功能

相信大家都知道,奔驰自从研发出香氛负离子系统后,一直都受广大奔驰车主的追捧,香氛负离子不仅可以散发出清香淡雅的香气外,还可以对车内的空气进行过滤,使车内的有害气味通过负离子进行过滤,达到车内保持清…

prometheus|云原生|轻型日志收集系统loki+promtail的部署说明

一, 日志聚合的概念说明 日志------ 每一个程序,服务都应该有保留日志,日志的作用第一是记录程序运行的情况,在出错的时候能够记录错误情况,简单来说就是审计工作,例如nginx服务的日志,kuber…

3D旋转tab图

上图 代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>3D旋转tab图</title><style>* {margin: 0;padding: 0;}body {height: 100vh;background: linear-gradient(to top, #29323c, #…

CRM选型:避免盲目跟风,要选最适合自己的!

CRM系统品牌繁多&#xff0c;各有优劣。对CRM系统不够了解的企业该如何选到适合的CRM系统&#xff1f;针对这个问题&#xff0c;我们就来聊聊&#xff0c;如何判定CRM系统是否适合自身企业&#xff1f; 一、综合性 CRM系统应该具有很好的综合性能&#xff0c;能够管理客户的整…

SpringTask入门案例

Task cron表达式在线生成网址&#xff1a; https://cron.qqe2.com/ import lombok.extern.slf4j.Slf4j; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component;import java.time.LocalDateTime;/*** 定时任务类*/ Sl…

中通快递单号查询入口,并分析筛选出揽收中转延误件

批量查询中通快递单号的物流信息&#xff0c;并将其中的揽收中转延误件(从“揽收”至“到达转运中心”之间的时间差超过24小时的单号)分析筛选出来。 所需工具&#xff1a; 一个【快递批量查询高手】软件 中通快递单号若干 操作步骤&#xff1a; 步骤1&#xff1a;运行【快递…

倾斜摄影三维模型的根节点合并的优势分析

倾斜摄影三维模型的根节点合并的优势分析 根节点合并是倾斜摄影三维模型处理中的一项重要技术&#xff0c;它具有许多优势&#xff0c;可以显著提升模型数据的处理效率和渲染性能。在本文中&#xff0c;我们将对倾斜摄影三维模型的根节点合并的优势进行详细分析。 1、数据大小…

网络运维与网络安全 学习笔记2023.12.3

网络运维与网络安全 学习笔记 第三十三天 今日目标 目录-文件基本管理、vim文本编辑、用户账号管理 组账号管理、归属控制、权限控制 目录-文件基本管理 ls 列目录及文档属性 ls - List 格式:ls[选项]…[目录或文件路径] 1.如果不以/开始,表示相对路径(省略了当前所在位置…