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

实验目的:

掌握可编程中断控制器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,@DATAMOV     DS,AXMOV	ES,AXNOPCALL	InitKeyDisplay	   ;8255控制键盘数码管工作初始化程序 	;补充程序,对8259初始化,注意写入的端口;icw1:边沿触发、单片、需要ICW4MOV	DX,IO8259_0	MOV	AL,13HOUT	DX,AL;icw2:中断类型码(取值范围:00H-0FFH、可任意设置)MOV	DX,IO8259_1	MOV	AL,0E8HOUT	DX,AL;icw4:普通全嵌套、非缓冲、非自动结束MOV	AL,01H		OUT	DX,AL;IRQ7	MOV	AL,01111111B	OUT	DX,AL;中断向量表初始化       	PUSH	ES              MOV	AX,0   MOV	ES,AX   ;中断向量表段基址为0000HMOV	DI,0EFH*4   ;预置的中断向量地址;向量表中低地址存放偏移地址;向量表中高地址存放段基址LEA	AX,IRQ0STOSW                   MOV	AX,CSSTOSW			
;	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], AXPOP	ESMOV     Counter,0  ;中断次数计数器置零    		STI      ;中断标志位被设置为1时,CPU将允许中断请求
START1:	CALL	LedDisplay      LEA	SI,Buffer        CALL	Display8        ;中断10次的判断		CMP     Counter,11H     JNE	START1       ;关中断HLTLedDisplay	PROC	NEAR         MOV	AL,Counter   MOV	AH,ALAND	AL,0FHMOV	Buffer+0,ALAND	AH,0F0H ;保留高8位ROR	AH,4   ;循环右移4位MOV	Buffer + 1,AHMOV	Buffer + 2,10H	;不显示MOV	Buffer + 3,10HMOV	Buffer + 4,10HMOV	Buffer + 5,10HMOV	Buffer + 6,10HMOV	Buffer + 7,10HRET		
LedDisplay	ENDPIRQ0	PROC	NEARPUSH	DXPUSH	AXMOV	AL,Counter    ADD	AL,1   ;中断次数加一DAA      ;将AL的内容调整为两位组合型的二进制数MOV	Counter,AL		MOV	DX,IO8259_0 ;写入OCW2MOV	AL,20H     ;发中断结束命令OUT	DX,ALPOP	AX    ;恢复现场POP	DXIRET
IRQ0	ENDPEND	START

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

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

相关文章

prometheus基础,结合node_exporter监控节点

文章目录 一、Prometheus是什么二、exporters是什么三、node_exporter四、安装 Prometheus 和 node_exporter下载运行 prometheus运行 node_exporter 五、配置 Prometheus 收集监控数据总结 一、Prometheus是什么 Prometheus 是一个开源的监控和警报工具,它记录任何…

Centos7安装docker、java、python环境

文章目录 前言一、docker的安装二、docker-compose的安装三、安装python3和配置pip3配置python软链接(关键) 四、Centos 7.6操作系统安装JAVA环境 前言 每次vps安装docker都要看网上的文章,而且都非常坑,方法千奇百怪&#xff0c…

go elasticsearch 测试实例

// 查询列表数据 func QueryOperateList(ctx context.Context, esClient *elastic.Client, index string, pageNum, pageSize int, start, end int64, execSql string, list []interface{}, operateAccount string, operateAddr string, maxRows, minRows int, dbAddr, namespa…

【USRP】5G / 6G 原型系统 5g / 6G prototype system

面向5G/6G科研应用 USRP专门用于5G/6G产品的原型开发与验证。该系统可以在实验室搭建一个真实的5G 网络,基于开源的代码,专为科研用户设计。 软件无线电架构,构建真实5G移动通信系统 X410 采用了目前流行的异构式系统,融合了FP…

【毕业设计】基于雷达与深度学习的摔倒检测——微多普勒效应

运动物体的微多普勒效应为人体动作识别提供了可能,基于雷达的居家检测具有良好的隐私保护性,且不易受环境因素影响(如光照、温度等),近年来已受到国内外学者的广泛关注。由于雷达信号的非平稳特性,通过短时…

Oracle-CDB容器数据库修改service_names踩坑

前言: 最近在对一套Oracle容器数据库进行迁移测试时,为了保持新环境与旧环境的服务名一致,需要在新环境添加旧环境的服务名,在CDB的根容器通过service_name参数添加旧环境的服务名之后,发现数据库PDB的服务名全部被注销&#xff0…

自动驾驶学习笔记(十四)——感知算法

#Apollo开发者# 学习课程的传送门如下,当您也准备学习自动驾驶时,可以和我一同前往: 《自动驾驶新人之旅》免费课程—> 传送门 《Apollo Beta宣讲和线下沙龙》免费报名—>传送门 文章目录 前言 感知算法 开发过程 测试和评价 前言…

鸿蒙4.0开发笔记之ArkTS装饰器语法基础@Prop@Link@State状态装饰器(十二)

文章目录 一、哪些是状态装饰器二、StatePropLink状态传递的核心规则三、状态装饰器练习 一、哪些是状态装饰器 1、State:被装饰拥有其所属组件的状态,可以作为其子组件单向和双向同步的数据源。当其数值改变时,会引起相关组件的渲染刷新。 …

思维模型 赫洛克效应

本系列文章 主要是 分享 思维模型,涉及各个领域,重在提升认知。及时反馈,激发动力。 1 赫洛克效应的应用 1.1 赫洛克效应在管理中的应用 美国惠普公司是一家全球知名的科技公司,该公司非常注重员工的激励和认可。在惠普公司&…

网络和Linux网络_9(应用层和传输层_笔试选择题)

目录 一. 常见应用协议等等 1. 以下不是合法HTTP请求方法的是( ) 2. 文件传输使用的协议是() 3. HTTP1.1的请求方法不包括?() 4. http状态码中,( )表示访问成功,( )表示坏请求,( )表示服务不可用。() …

mysql的几种索引

mysql可以在表的一列、或者多列上创建索引,索引的类型可以选择,如下: 普通索引(KEY) 普通索引可以提高查询效率。在表的一列、或者多列上创建索引。 每个表可以创建多个普通索引。 例如,下面示例&#…

智能优化算法应用:基于海洋捕食者算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于海洋捕食者算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于海洋捕食者算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.海洋捕食者算法4.实验参数设定5.算法结果…

实现一个简单的网络通信下(udp)

时间过去好久了,先回忆一下上一篇博客的代码!! 目前来看,我们客户端发一条消息,我服务器收到这一条消息之后呢,服务器也知道了是谁给我发来的消息,紧接这就把这条消息放进buffer当中&#xff0c…

51单片机项目(18)——基于51单片机的大棚环境监测系统

1.功能描述 首先使用DS18B20,测量土壤温度,并显示在OLED屏幕左边。然后使用土壤湿度传感器测量土壤湿度,因为这个传感器输出的值是模拟量,所以需要使用AD转换模块。本次使用ADC0832,这是一个8位精度的AD转换模块&#…

大数据技术学习笔记(七)—— Zookeeper

目录 1 Zookeeper 概述1.1 Zookeeper 定义1.2 Zookeeper 工作机制1.3 Zookeeper 特点1.4 数据结构1.5 应用场景 2 Zookeeper 安装3 客户端命令行操作4 Zookeeper 的 Java 客户端操作4.1 IDEA 环境搭建4.2 初始化 ZooKeeper 客户端4.3 创建子节点4.4 获取子节点4.5 判断Znode是否…

深入理解 Kafka 集群搭建与管理

Apache Kafka 作为分布式流处理平台的核心,其集群搭建与管理是确保高可用性和高性能的关键。本文将深入研究 Kafka 集群的构建、配置、工作原理、节点角色以及一些高级管理策略,以助力读者更深层次地理解和灵活运用 Kafka 集群。 Kafka 集群基础 1 集群…

智能优化算法应用:基于供需算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于供需算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于供需算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.供需算法4.实验参数设定5.算法结果6.参考文献7.MATLAB…

Flume 安装部署

文章目录 Flume 概述Flume 安装部署官方网址下载安装配置文件启动 Flume 进程启动报错输出文件乱码问题 Flume 概述 Flume(Apache Flume)是一个开源的分布式日志收集、聚合和传输系统,属于 Apache 软件基金会的项目之一。其主要目标是简化大…

预约系统源码解析:打造智能定制化预约服务的技术奇迹

在当今数字化时代,预约系统的重要性日益凸显,而预约系统源码的开放将为各行业带来更加灵活、智能的预约解决方案。本文将深入探讨预约系统源码的技术内幕,为开发者提供实用的代码示例,助力打造智能定制化的预约服务。 技术栈概览…

【字符串匹配】【KMP算法】Leetcode 28 找出字符串中第一个匹配项的下标☆

【字符串匹配】【KMP算法】Leetcode 28 找出字符串中第一个匹配项的下标 (1)前缀和后缀(2)前缀表(最长相同的前缀和后缀的长度)(3)匹配过程示意(4)next数组的…