微机接口 8255中断实验报告

合集下载

微机原理8255实验报告

微机原理8255实验报告
三、 实验分析:外设(开关 k、LED)为简单外设 随时准备好,故可采用 无 条件传送方式,通过之前学习的 8255 知识,将程序编写完成。
四、 实验过程中遇到的问题:在第一次编写完成后,我们调试失败了,通 过检查,发现程序有一个指令编写错误,纠正后,程序仍然编译失败, 连续好几次都没有成功,后来通过向同学请教,发现我们在改正之前没 有进行复位,导致错误没有纠正,按照正确的过程改正后,终于调试成 功了,我们看到随着电脑屏幕上的程序一条条执行,LED 灯准确地将开 关的状态输出,实验终于成功了。
微机原理与接口技术实验报告
姓名
学号
专业年级
实验题目
8255 并行接口实验
实验目的 实验内容
通过实验了解 8255 的工作原理,并在实验中熟悉 8255 的初始化编程,巩固学
习的理论知识,将理论转化为实践。
实验题 1 编写程序,使得逻辑电平开关的变化在发光二极管上显示出来。即当 开关 ki 置于 L 时,对应发光二极管 LEDi 点亮;置于 H 时熄灭
实验题 2 编写程序,使得当开关 k1 置于 L 时,LED1~LED2 皆亮; k1 置于 H 时, LED1~LED2 皆灭
实验分析
一、首先按照以下的实验连线将电路连接好: CS8255 CS0 PA0~PA1 开关 K1~K2 PB0~PB1 发光二极管 LED1~LED2
二、(打开实验箱电源)PC 机运行 8086 调试软件 TECH86---串口 COM3 或 COM4—PREST 键 编辑程序,单步运行,调试程序 调试通过后,全速运行程序,观看实验结果
start
实验二:
assume cs:code
code segment public
org

微机原理综合实验报告

微机原理综合实验报告

微机原理综合实验报告目录一.8255并行口实验二.8259中断实验(一)三.8253定时/计数器实验四.A/D转换实验五.步进电机实验六.综合实验:十字路口交通灯实验七.实验体会四.8255并行口实验1.实验目的:(1)学习利用并行接口芯片8255构成并行接口电路的基本方法(2)熟悉掌握并行接口芯片8255的基本性能及在时间应用中的硬件连接、初始化编程方法2.实验内容:编写程序,使8255的PB口为输出口,PA口为输入口,从PA口将K0~K7作为一个字节读入,在从PB口输出这一反码字节。

3.实验程序:CODE SEGMENTASSUME CS:CODESTART:MOV DX,21BH ;8255初始化命令字MOV AL,90HOUT DX,ALBG: MOV DX,218H ;从PA口读入数据IN AL,DXXOR AL,FFH ;求反MOV DX,219HOUT DX,AL ;从PB口输出JMP BGCODE ENDSEND START4.实验框图5. 实验电路图6.实验方法说明通过8255控制字设定PA口为输入口,PB口为数据输出口,读取PA口的数值并通过求反指令将数据取反后,经由PB口输出。

8259中断实验(一)1.实验目的:(1)了解PC机的中断结构及8259中断控制器的初始化(2)熟悉8259中断控制器的工作原理和硬件连线方法(3)了解8259的应用和硬件编程方法了解8259中断屏蔽2.实验内容:编写中断实验程序,主程序使8255的PB口为输出口,输出0FFH,L0~L7指示灯全亮,中断服务程序从PB口输出0FFH,L0~L3亮,L4~L7灭,并延时一段时间后返回主程序。

3.实验程序INT0 EQU 220hINT1 EQU 221hP8255B EQU 219HP8255K EQU 21BHSTACK SEGMENTSTA DB 50 DUP(?)TOP EQU LENGTH STASTACK ENDSCODE SEGMENTASSUME CS:CODE,SS:STACKSTART:CLIMOV AX,TOPMOV SP,AXPUSH DSMOV AX,0000H ;定义IRQ0中断MOV DS,AXMOV AX,OFFSET IRQ0ADD AX,0000HMOV SI,20HMOV [SI],AXMOV AX,CSMOV SI,22HMOV [SI],AXPOP DSMOV AL,13H ;对8259进行初始化ICW1MOV DX,INT0OUT DX,ALMOV AL,8 ;对8259进行初始化ICW2 MOV DX,INT1OUT DX,ALMOV CX,0FFFFHLOOP $MOV AL,9 ;对8259进行初始化ICW4 MOV DX,INT1OUT DX,ALMOV CX,0FFFFHLOOP $MOV DX,INT1MOV AL,0FEH ;对8259进行初始化OCW1OUT DX,ALMOV CX,0FFFFHLOOP $MOV DX,INT0 ;对8259进行初始化OCW2,普通EOI返回MOV AL,20HOUT DX,ALMOV CX,0FFFFHLOOP $STIMOV DX,P8255K ;对8255进行初始化MOV AL,90HOUT DX,ALDSP: MOV AL,0FFHMOV DX,P8255BOUT DX,ALJMP DSPIRQ0: STIMOV CX,0FFFFHLOOP $MOV AL,0FHMOV DX,P8255BOUT DX,ALMOV DX,INT0MOV AL,20HOUT DX,ALMOV CX,0FFFFHLOOP $MOV CX,0FFFFHLOOP $IRETCODE ENDSEND START4.实验框图5. 实验电路图6. 实验方法说明主程序使8255输出高电平,实现L0~L7指示灯全亮。

Protues8255实验报告.pdf

Protues8255实验报告.pdf
端口 A 中的两个端口接开关,作为输入(开关弹起时为高电平,按下 时为低电平);端口 B 中的全部端口作为输出显示。
4
(5)对于实验 2,8255 的连接如下图 端口 A 中的全部端口作为输出显示
(6)对于实验 3,8255 的连接如下图 端口 A 中的全部端口连接一二级数码管,且该数码管为共阴极连接。
华北电力大学
实验报告
| |
实验名称
8255 应用实验
课程名称
微机原理及应用
老师
|
专业班级
姓名
学号
1
一. 实验要求 1、当 K0 为高电平时,LED 由高到低循环亮灭;当 K0 为低电平时, LED 由低到高循环亮灭;当 K1 为高电平时,LED 全灭且程序结束 (扩展:当 K1 为高电平时,LED 全灭但程序不结束,等 K1 再次为低 电平时灯又开始循环)。 2、在 8259 的 IR2 端输入中断请求信号,该信号由 8253 的方波信号 产生(频率 1Hz)。每来一个上升沿,申请中断一次,CPU 响应后通过 8255 PA 口使发光二极管亮,第 1 次中断,LED0 亮,第 2 次中断,LED1 亮,…… 第 8 次中断,LED7 亮,中断 8 次后结束。 3、在 8259 的 IR2 端输入中断请求信号,该信号由 8253 的方波信号 产生(频率 1Hz)。每来一个上升沿,申请中断一次,CPU 响应后通过 8255 PA 口使 7 段数码管亮,第 1 次中断,显示 0,第 2 次中断,显 示 1,…… 第 10 次中断,显示 9,程序结束。 【8255 的片选地址为 8000H,8259 的片选地址为 9000H,8253 的片选 地址为 A000H】 二 思路 1. 硬件 (1)74HC138 译码电路如图所示,A15 为 1,E2、E3 接地保证 74HC138

8255试验报告(方式1查询输出)

8255试验报告(方式1查询输出)

《微型计算机接口技术》实验报告实验名称:可编程并行接口芯片8255应用(8255方式1、查询输出)姓名学号:班级:日期:广东外语外贸大学信息科学技术学院一、实验目的掌握8255方式1查询输入、输出时的使用及编程二、实验内容1、按照图示连接硬件(注意图中大多数线试验箱已经连好,只连接需要用户连接的部分,预习,参考PPT)2、编程:每按一次单脉冲按钮,ACK信号有效,8255内部输出准备好状态有效(INTR),查询输出一次数据,点亮、熄灭相应的发光二极管。

三、实验原理(8255方式1输出:结合结构图、时序图、状态字描述)8255是一片可编程并行I/O接口芯片,每片8255有两个8位的并行口(PA,PB)和两个4位并行口(PC的高、低四位),其中PA口可工作于方式0,1,2。

PB口工作于方式0,1。

PC口仅能工作于方式0。

在方式1中,将8255的三个端口分为了A、B两组,PA、PB两个口仍作为数据输入/输出口,而PC口则作为两部分,分别作为PA、PB口的联络信号。

8255A 方式1 A口输出过程由CPU响应中断开始,在中断中用OUT指令通过8255A 向外设输出数据,发出WR 信号;WR上升沿清除INTRA 中断请求信号,且使OBFA =“L”(有效),通知外设取数;当外设接受数据后,发出ACKA 应答信号,一方面使OBFA=“H”(无效),另一方面在ACKA信号的上升沿使INTRA=“H”(有效),以此向CPU发出新的中断请求,开始下一轮输出。

四、硬件设计及方案论证(完整图的信号线连接及作用:数据、地址、控制及外设线)硬件设计如图,其中:1.8255芯片中的数据总线D0—D7是和CPU的数据线直接相连的,从而CPU可以向8255发送命令、数据和8255芯片也可以向CPU发送状态、数据等等。

2.8255芯片中的A0和A1也是与CPU的地址总线直接相连,并且在控制字在以下几种情况有不同的设置,若A1A0= 00时,8255芯片中的PA口被选中,若A1A0=01时,8255芯片中的PB口被选中,若A1A0=10时,8255芯片中的PC口被选中,若A1A0=11时,则8255芯片的控制口被选中。

微型计算机接口技术试验报告8255方式1(中断)

微型计算机接口技术试验报告8255方式1(中断)

广东外语外贸大学信息科学技术学院《微型计算机接口技术》试验报告试验名称可编程并行接口8255方式1(中断)应用姓名:杜圆王垒学号:20081000182 20081000049班级:08计算机4班日期:2010.11.2一、实验目的1、掌握8255工作方式1时的使用及编程。

2、进一步掌握中断处理程序的编写。

二、实验内容1、按图10-1,8255方式1的输出电路连好线路。

2、编程:每按一次单脉冲按钮产生一个正脉冲使8255产生一次中断请求,让CPU进行一次中断服务:依次输出01H、02H,04H,08H,10H,20H,40H,80H使L0~L7依次发光,中断8次结束。

三、实验原理及硬件说明1.8255方式1输出原理PA0到PA7口接发光二极管,PC6口接外部脉冲,PC3口接IR3,(即实验箱的IRQ),当PC6口接到外部脉冲时则进入中断程序。

2.8259中断控制器功能说明进入8259中断处理器后,进行初始化,然后IRR接收中断请求,IMR不屏蔽,8259将请求送往CPU,CPU收到后往8259送一个应答信号,同时清除IRR并将ISR相应位置置1,并请求8259送中断类型号。

3.实验硬件连接及说明(完整图)四、程序设计思想、流程图、源程序及注释8255方式一输出code segmentassume cs:codestart: mov ax,csmov ds,ax 取段地址送到DSmov dx,offset int_proc 取偏移地址送到DXmov ax,250bh ;设外部中断int_proc类型号为0BHint 21hmov dx,21hin al,dxand al,0f7h ;开放IRQ3中断out dx,almov dx,28bh ;置8255为A口方式1输出mov al,0a0hout dx,almov al,0dh ;将PC6置位out dx,almov bl,1ll:jmp ll ;循环等待int_proc:mov al,blmov dx,288h ;将AL从8255的A口输出out dx,almov al,20hout 20h,alshl bl,1jnc next ;中断次数小于8,返回主程序in al,21hor al,08h ;关闭IRQ7中断out 21h,alsti ;开中断mov ah,4ch ;返回DOSint 21hnext: iretcode endsend start五、结果分析及实验体会进入中断前,将中断程序的段地址给DS,然后将其偏移地址给DX,从2C开始的内容变为20 00 E6 0F初始化设置完毕后,等待脉冲,进入中断程序脉冲来了后,进入中断程序第一个脉冲来了,由于bl是1,所以一个最右边的灯亮之后没得到一个脉冲,灯就往左移一位。

8255实验报告

8255实验报告

8255实验报告关键信息项:1、实验目的:____________________________2、实验设备:____________________________3、实验原理:____________________________4、实验步骤:____________________________5、实验结果:____________________________6、结果分析:____________________________7、误差分析:____________________________8、改进措施:____________________________11 实验目的本次 8255 实验的主要目的是深入了解 8255 并行接口芯片的工作原理和编程方法,掌握通过 8255 实现输入输出数据的控制和传输。

通过实验,提高对计算机接口技术的实际应用能力,为今后在相关领域的学习和工作打下坚实的基础。

111 具体目标1111 熟悉 8255 的内部结构和引脚功能。

1112 掌握 8255 的工作方式及其设置方法。

1113 学会使用汇编语言或 C 语言对 8255 进行编程,实现数据的输入输出操作。

1114 能够通过实验现象分析和解决可能出现的问题,提高调试程序的能力。

12 实验设备121 计算机一台122 8255 实验箱一个123 导线若干13 实验原理8255 是一种通用的可编程并行接口芯片,具有三个 8 位的并行输入/输出端口:A 口、B 口和 C 口。

每个端口都可以通过编程设置为输入或输出方式,并且可以组合使用以满足不同的应用需求。

8255 内部还有控制寄存器,用于选择端口的工作方式和控制信号。

在实验中,通过对 8255 的控制寄存器进行编程,设置端口的工作方式,然后向输入端口输入数据,或者从输出端口读取数据,观察实验结果,验证 8255 的功能和编程方法的正确性。

14 实验步骤141 连接实验设备将计算机与 8255 实验箱通过数据线连接好,确保连接牢固,电源正常。

微机实验 可编程并行接口8255

微机实验  可编程并行接口8255

微机原理实验报告实验题目:可编程并行接口8255一、实验目的1、掌握8255的基本输入输出和PC端口位控的工作方式及应用编程。

2、掌握8255的典型应用电路接法。

二、实验知识回顾8255控制字1、控制方式2、C端口置位复位控制字三、实验内容1、 8255流水灯显示,首先用逻辑电平开关预置一个数字,从A口读入,写入01H到C端口上,左移一次在进行输出,A口读入数据作为左移次数,这样循环下去,从而实现流水灯的显示。

2、用PC端口位控制法控制LED灯,依次点亮LED灯。

四、实验器材微机原理实验箱1个电脑(带TPC-USB软件)1台插线若干五、实现过程1、8255流水灯显示(1)流程图(2)程序源代码io8255a equ 2a0h ;8255A口地址io8255b equ 2a1h ;8255B口地址io8255c equ 2a2h ;8255C口地址io8255mode equ 2a3h ;控制寄存器地址stack1 segment stackdw 256 dup(?)stack1 endsdata segmentla db ? ;定义数据变量lb db ?data endscode segmentassume cs:code,ds:datastart:mov ax,data ;程序由start处开始mov ds,axmov dx,io8255mode ;定义8255的工作方式mov al,90h ;方式0A口输入C口输出out dx,al ;mov dx,io8255a ;A口的地址存入dxin al,dx ;从dx也就是A口读入数据mov la,al ;读入的数据暂存在la变量mov dx,io8255c ;C口的地址存入dxmov al,01h ;将寄存器最低位置零out dx,al ;置位后的值输入给dx,也就是C口mov lb,al ;置位后的值暂存于变量lbloop1:call delaymov al,la ;将A口数据写入CX用以计数mov ch,00hmov cl,laloop2:call delaymov al,lbrol al,1 ;在寄存器内进行位移操作mov lb,al ;将操作后的结果重新写入变量al,为后面调用做准备mov dx,io8255c ;dx代表C口的地址out dx,al ;将al中存储的值写入dx,即C口mov ah,1 ;选择dos的模式为从键盘读取数据int 16h ;进入中断jnz quit ;ZF为0则跳到quitdec cx ;计数器减一jnz loop2 ;若cx!=0,跳到loop2quit:mov ax,4c00h ;结束程序并退出int 21hdelay proc near ;延时子程序push cxpush axmov cx,01fhd1: mov ax,0ffffhd2: dec axjnz d2loop d1pop axpop cxretdelay endpcode endsend start2、位控设置C口输出点亮LED(1)流程图(2)程序源代码io8255a equ 2a0h ;8255A口地址io8255b equ 2a1h ;8255B口地址io8255c equ 2a2h ;8255C口地址io8255mode equ 2a3h ;控制寄存器地址stack1 segment stackdw 256 dup(?)stack1 endsdata segmentla db ? ;定义数据变量lb db ?data endscode segmentassume cs:code,ds:datastart:mov ax,data ;程序由start处开始mov ds,axmov dx,io8255mode ;定义8255的工作方式mov al,00001111b ;位控设置C口最高位为1out dx,almov cx,7 ;剩余未点亮灯数为7 loop1:call delaydec aldec alout dx,aldec cxjnz loop1delay proc near ;延时子程序push cxpush axmov cx,01fhd1: mov ax,0ffffhd2: dec axjnz d2loop d1pop axpop cxretdelay endpcode endsend start(3)实验结果图六、小结通过本次试验,我进一步了解了8255的可编程性,以及如何正确的通过程序控制8255,也更加熟悉了8255 C 端口的位控输出。

单片机可编程8255接口实验报告

单片机可编程8255接口实验报告

单片机可编程8255接口实验报告可编程8255接口实验报告㈠实验目的1.掌握可编程并行接口芯片的基本工作原理及其使用方,熟悉8255可编程并行I/O扩展接口。

2.掌握8255可编程并行I/O扩展接口方法,能够利用8255可编程并行接口芯片设计简单应用系统。

㈡实验器材1. G6W仿真器一台2. MCS-51实验板一台3. PC机一台4.电源一台㈢实验内容及要求1.声光报警器实验8255是可编程的通用并行输入输出扩展接口。

8255芯片的片选信号CS4 及口地址选择线AA0、AA1分别由8051的地址线提供。

8255的A口设置为输入数据端口,B口设置为输出数据端口,通过控制位操作控制字将C口某一位置位或复位,B口与发光二极管LED相连,C口与蜂鸣器相连,读取A 口数据,只要有一位为“1”,则点亮发光二极管LED(B口输出为低,LED 亮,反之,LED 灭),同时蜂鸣器响(若 C口某一位置1,蜂鸣器不响)。

2.交通灯控制实验通过并行接口8255实现十字路nb 口交通灯的模拟控制。

L6~L8与PC5~PC7相连,作为南北路口的交通灯,L1~L3与PC0~PC2相连,作为东西路口的交通等。

编程使六个灯按以下规律变化:南北路口的“绿”灯(L8)、东西路口的“红”灯(L1)同时亮30秒(要求有倒计时显示);南北路口的“黄”灯(L7)闪烁若干次,同时东西路口“红”灯(L1)继续亮;南北路口的“红”灯(L6)、东西路口的“绿”灯(L3)同时亮30秒(要求有倒计时显示);东西路口的“黄”灯(L2)闪烁若干次,南北路口的“红”灯(L6)继续亮;重复以上步骤。

㈣实验步骤1.连接8255芯片的片选信号CS4及口地址选择线AA0、AA1,并根据片选信号及口地址选择线确定8255的各I/O口地址和控制字寄存器的地址。

2.声光报警器实验的连线①8255的A口的8位根据需要接入高低电平。

②8255的B口中任一口与TEST相连,运行程序,即可观察L9发光二极管。

微机原理实验报告

微机原理实验报告

微机原理实验报告一、实验目的本次微机原理实验的主要目的是通过实际操作和观察,深入理解微机系统的工作原理和组成结构,掌握微机系统的编程和调试方法,提高我们对微机原理的实际应用能力。

二、实验设备1、计算机一台2、微机原理实验箱一套三、实验内容1、 8255 并行接口实验了解 8255 芯片的工作原理和编程方法。

通过编程实现 8255 芯片的 A 口、B 口、C 口的输入输出控制。

2、 8253 定时/计数器实验掌握 8253 芯片的工作方式和编程要点。

利用 8253 芯片实现定时和计数功能。

3、 8259 中断控制器实验学习 8259 芯片的中断管理机制。

编写中断服务程序,实现中断响应和处理。

四、实验原理1、 8255 并行接口8255 是一种可编程的并行接口芯片,具有 A、B、C 三个 8 位端口。

通过对控制字的编程,可以设置各个端口的工作方式为输入或输出。

2、 8253 定时/计数器8253 包含三个独立的 16 位计数器,每个计数器可以工作在不同的方式下,如方式 0 到方式 5。

通过对计数器的初值设置和控制字编程,可以实现定时和计数功能。

3、 8259 中断控制器8259 用于管理外部中断请求,可实现中断优先级的判断和中断嵌套。

通过对 8259 的初始化编程,可以设置中断触发方式、中断向量等。

五、实验步骤1、 8255 并行接口实验连接实验电路,将 8255 芯片与实验箱上的相关引脚连接好。

编写程序,设置 8255 的控制字,使 A 口为输出,B 口为输入。

向 A 口输出数据,从 B 口读取数据,并观察实验结果。

2、 8253 定时/计数器实验连接实验电路,将 8253 芯片与实验箱上的相关引脚连接好。

编写程序,设置 8253 计数器 0 的工作方式为方式 2,初值为 1000。

启动计数器,观察输出引脚的波形变化。

3、 8259 中断控制器实验连接实验电路,将 8259 芯片与实验箱上的相关引脚连接好。

微机原理实验报告 可编程并行IO接口8255

微机原理实验报告 可编程并行IO接口8255

《微机原理及应用技术》课程实验报告实验五可编程并行I/O接口8255【预习内容】1.怎样选中可编程I/O接口?怎样实现I/O端口的寻址?8255的CS/接地址译码/CS0,则命令字地址为8003H,PA口地址为8000H,PB口地址为8001H,PC口地址为8002H。

通过地址/数据总线,按照指定地址进行读写操作直接选中8255。

并行接口是以数据的字节为单位与I/O设备或被控制对象之间传递信息。

CPU和接口之间的数据传送总是并行的,即可以同时传递8位、16位或32位等。

8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片。

CPU与外设交换的数据是以字节为单位进行的。

因此一个外设的数据端口含有8位。

而状态口和命令口可以只包含一位或几位信息,所以不同外设的状态口允许共用一个端口,命令口也可共用。

数据信息、状态信息和控制信息的含义各不相同,按理这些信息应分别传送。

但在微型计算机系统中,CPU通过接口和外设交换数据时,只有输入(IN)和输出(OUT)两种指令,所以只能把状态信息和命令信息也都当作数据信息来传送,且将状态信息作为输入数据,控制信息作为输出数据,于是三种信息都可以通过数据总线传送了。

但要注意,这三种信息被送入三种不同端口的寄存器,因而能实施不同的功能。

CPU对外设的访问实质上是对I/O接口电路中相应的端口进行访问,也需要由译码电路来形成I/O端口地址。

I/O端口的编址方式有两种·存储器映象寻址方式·I/O指令寻址方式2.8255A接口芯片内含几个I/O端口?它们的名称分别是?这些I/O口地址有何特点?三个数据端口,三种工作方式A口可工作于方式0、方式1和方式2中的任一种B口可工作于方式0和方式1,但不能工作于方式2C口只能工作于方式08位数据端口:A口、B口、C口A口:PA7~PA0B口:PB7~PB0C口:PC7~PC0连接外部设备A口与B口为一个8位的输入口或输出口C口单独作为一个8位的输入口或输出口配合A口和B口使用,作为控制信号和状态信号3.8255A有几个控制字?怎样设置?它有两个控制字,一个是方式选择控制字,一个是对C口进行置位或复位控制字。

Protues8255实验报告

Protues8255实验报告

华北电力大学实验报告||实验名称8255应用实验课程名称微机原理及应用老师| 专业班级姓名学号一.实验要求1、当K0为高电平时,LED由高到低循环亮灭;当K0为低电平时,LED由低到高循环亮灭;当K1为高电平时,LED全灭且程序结束(扩展:当K1为高电平时,LED全灭但程序不结束,等K1再次为低电平时灯又开始循环)。

2、在8259的IR2端输入中断请求信号,该信号由8253的方波信号产生(频率1Hz)。

每来一个上升沿,申请中断一次,CPU响应后通过8255 PA口使发光二极管亮,第1次中断,LED0亮,第2次中断,LED1亮,……第8次中断,LED7亮,中断8次后结束。

3、在8259的IR2端输入中断请求信号,该信号由8253的方波信号产生(频率1Hz)。

每来一个上升沿,申请中断一次,CPU响应后通过8255 PA口使7段数码管亮,第1次中断,显示0,第2次中断,显示1,…… 第10次中断,显示9,程序结束。

【8255的片选地址为8000H,8259的片选地址为9000H,8253的片选地址为A000H】二思路1.硬件(1)74HC138译码电路如图所示,A15为1,E2、E3接地保证74HC138正常工作,此时Y0、Y1、Y2对应地址分别为8000H、9000H、0A000H.此芯片实验都需用到(2)8259的片选地址为9000H,所以CS接Y18086有16位数据总线,其低8位作为偶存储体来传输数据,8086的A0要一直为0,所以8259的A0要接8086的A1IR2端输入中断请求信号,该信号由8253的方波信号产生(频率1Hz),所以8259的IR2端与8253的OUT1端相连。

此芯片实验2,3要用到(3)8253的片选地址为A000H,所以CS接Y2。

CLK0接入1MHz信号,GATE0与GATE1同时接电源,OUT0输入到CLK1,OUT1经分频输出1HZ的信号。

此芯片实验2,3要用到(4)对于实验1,8255的连接如下图8255的片选地址为8000H,所以CS接Y0。

微机原理-实验五-8255并口实验报告

微机原理-实验五-8255并口实验报告

微机原理实验报告班级:XXXXX姓名:XXXX学号:20XXXXXXXXX大学信息科学与技术学院信息工程系实验五8255并口实验报告一、实验目的:1、掌握 8255 和微机接口方法;2、掌握 8255 的工作方式和编程原理。

二、实验内容:用8255 PA作开关量输入口,PB作输出口。

实现从PA口读入开关量信息,并送PB口显示。

三、程序流程1、工作原理8255 可编程外围接口芯片是 Intel 公司生产的通用并行接口芯片,它具有 A、 B、C 三个并行接口,用+5V 电源供电,能在以下三种方式下工作:方式 0:基本输入/输出方式方式 1:选通输入/输出方式方式 2:双向选通工作方式本实验设定8255端口A工作在方式0并作为输入口,读取 K1~K8 八个开关量,送PB 口显示。

PB 口工作在方式0,作为输出口。

2、流程图(此处自己用visio画一遍)四、实验电路五、代码与注释(自己填写)CODE SEGMENTASSUME CS:CODE,DS:CODE,ES:CODEORG 32E0HPA EQU 0FFD8HPB EQU 0FFD9HPC EQU 0FFDAHPCTL EQU 0FFDBHH2: MOV DX,PCTLMOV AL,90HOUT DX,ALP2: MOV DX,PAIN AL,DXINC DXOUT DX,ALJMP P2CODE ENDSEND H2六、实验步骤1、实验连线⑴ 8255 PA 口接 K1~K8, PB 口接 L1~L8。

2、 PC 环境在与 PC 联机状态下,编译、连接、下载 PH88\he02.asm,用连续方式运行程序。

3、 LED 环境⑴在“P.”状态下按“0→EV/UN”,装载实验所需的代码程序。

⑵在“P.”状态下键入32E0,然后按“EXEC”进入实验项目的运行。

4、观察运行结果在连续运行方式下,按 K1~K8,观察 L1~L8 发光二极管是否对应点亮。

微机接口 8255中断实验报告

微机接口 8255中断实验报告

浙江工业大学计算机学院实验报告实验名称 8259中断实验姓名学号班级教师日期一、实验内容与要求1.1 实验内容通过实验了解8259A中断控制器的工作原理,了解PC中断的原理和过程,学会中断处理程序的编写。

1.2 实验要求了解8259A终端控制器的工作原理,了解PC中断的原理和过程,设计并编写程序,设置8259A的命令字,定义中断服务程序,使在实验平台上每按一次单脉冲开关产生一次中断,在屏幕上依次显示“This is the 1st TPCA Interrupt!”、“This is the 2nd TPCA Interrupt!”、····、“This is the 10th TPCA Interrupt!”、···,中断n次后程序退出,并在屏幕上显示“The TPCA Interrupt end!”二、实验原理与硬件连线2.1 实验原理1.8259A的内部结构:2.8259A 的工作方式:8259A 是一种可编程中断控制器,可协助CPU 进行中断管理。

单片8259A 工作时,每次中断处理过程如下:① 当 IR 7 ~ IR 0 上有中断请求,则 IRR 相应的位置1。

② 对于已进入IRR 且未被IMR 屏蔽的中断请求,PR 电路进行优先级判定,得到最高级的中断请求。

③ 控制逻辑接收中断请求,向CPU 发 INT 信号。

④ 若CPU 允许中断,则在当前指令结束后连续发出2个中断应答信号INTA ,进行中断响应。

每个信号持续2个时钟周期。

T 1T 2T 3T 4T 1T 2T 3T 4中断号CLK (时钟)ALE (地址允许)LOCK (总线锁存)INTA (中断应答)D 7~D 0(数据)⑤ CPU 发第一个 INTA 时,输出总线锁定信号 LOCK ,防止其它处理器或DMA 控制器占用总线。

8259A 收到第一个负脉冲后,将优先级最高的中断ISR 相应位置1,同时使IRR 相应位清0。

8255可编程并行接口(基本输入输出、动静态七段数码管、竞赛抢答器)微机原理实验报告

8255可编程并行接口(基本输入输出、动静态七段数码管、竞赛抢答器)微机原理实验报告

微机实验报告书学号:XXXXX姓名:XXXXX 班级:XXXXX 同组名单:XXXXXXXXX 实验日期:2012.12.25实验题目:8255可编程并行接口_______________________________________ 实验目标:1、掌握8255方式0的工作原理及使用方法。

_________________2 、进一步掌握中断处理程序的编写。

_______________________3、掌握数码管显示数字的基本原理。

4、了解微机化竞赛抢答器的基本原理。

实验步骤:实验一、8255A的基本输入输出图1. 8255A的基本输入输岀接线图实验步骤如下:(1)实验电路如图1, 8255A勺C口接逻辑电平开关K0~K7 A口接LED显示电路L0~L7。

(2)编程从8255A勺C口输入数据,再从A口输出。

实验二、七段数码管图2.七段数码管接线图实验步骤如下:(1)静态显示:按图2 (a)连接好电路,将8255A的A 口PA0~PA6分别与七段数码管的段码驱动输入端a~g相连,位码驱动输入端S1接+5V (选中),SO、dP接地(关闭)。

编程从键盘输入一位十进制数字(0~9),在七段数码管上显示出来。

(2)动态显示:按图2 (b)连接好电路,七段数码管段码连接不变,位码驱动输入端S1接+5V (选中),SO接8255A的C 口的PC1。

编程在两个数码管上显示“ 56”。

实验三、竞赛抢答器k? KE K5 k0图3.竞赛抢答器电路图实验步骤如下:图3位竞赛抢答器(模拟)的原理图,逻辑开关 K0~K7代表竞赛抢答按钮 0~7号,当某个逻辑电平开关置“ 1”时,相当于某组抢答按钮按下。

在七段数 码管上将其组号(0~7)显示出来。

程序框图:实验一:实验二:开恰:开箱莉型环迪为自口秫出獅356设曲A 口输出-------送百的战码矽口 -泾忙码1口1中T 口是紅字 ®时•、有釁損下吗*|就・取■点口 ■出开皓眦抬向震码表首址4 r设SS255A 口输出C口输入杳表求出段码关囲显示垢段码自船萌AU输出程序清单:.************************* ・J J;* 8255A的基本输入输出.*************************.IOPORT EQUIO8255A EQUIO8255B EQUIO8255C EQUIO8255K EQU0E400H-280HIOPORT+288HIOPORT+289HIOPORT+28AHIOPORT+28BH;对8255进行设定,A输出,C输;从C输入;从A输出实验三:响铃自键盘接收一亭符结束CODE SEGMENTASSUME CS:CODESTART: MOV DX,IO8255K入MOV AL,10001001BOUT DX,ALINPUT: MOV DX,IO8255CIN AL,DXMOV DX,IO8255A求出组马全AL;*键盘输入数据(0-9)控制LED 数码管显示.************************************・DATA SEGMENT IOPORT EQU 0E400H-280HIO8255A EQU IOPORT+288HIO8255B EQU IOPORT+289HIO8255C EQU IOPORT+28AHIO8255K EQU IOPORT+28BHLED DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH MESG1 DB 0DH,0AH,'Input a num (0--9),other key is exit:',0DH,0AH,'$'DATA ENDSCODESEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DA TAMOV DS,AXMOV DX,IO8255K ;使 8255的 A 口为输出方式MOV AX,10000000BOUT DX,ALSSS:MOV DX,OFFSET MESG1 ; 显示提示信息MOV AH,09HINT 21HMOV AH,01 ;从键盘接收字符INT 21HCMP AL,'0' ; 是否小于 0JL EXIT ;若是则退出CMP AL,'9' ; 是否大于 9JG EXIT ;若是则退出SUB AL,30H;将所得字符的 ASCII 码减 30HMOVBX,OFFSET LED ;BX 为数码表的起始地址XLAT; 求出相应的段码MOV DX,IO8255A ;从 8255的 A 口输出OUT DX,ALJMPSSS;转 SSSCODE OUTDX,ALMOV DL,0FFH MOV AH,06H INT 21H JZ INPUT MOV AH,4CH INT 21HENDSEND START.************************************・;判断是否有按键;若无,则继续C 输入,A 输出 ; 否则,返回 DOSLED 数码管实验动态显示“ 56”.******************************.DATASEGMENT IOPORT EQU 0E400H-280HIO8255A EQU IOPORT+288HIO8255B EQU IOPORT+289HIO8255CEQU IOPORT+28AHIO8255K EQUIOPORT+28BHLED DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;段码BUFFER1DB 6,5 ;存放要显示的个位和十位 BZDW ? ;位码DATA ENDSCODESEGMENTASSUME CS:CODE,DS:DA TASTART:MOV AX,DATAMOV DS,AXMOV DX,IO8255K ;将 8255 设为 A 口输出MOV AL,80HOUT DX,ALMOV DI,OFFSET BUFFER1 ;设 di 为显示缓冲区LOOP2: MOV BH,02LLL:MOV BYTE PTR BZ,BHPUSH DIDEC DIADD DI, BZMOV BL,[DI] ;bl 为要显示的数POP DIMOV AL,0MOV DX,IO8255COUT DX,ALMOV BH,0MOV SI,OFFSET LED ;置 led 数码表偏移地址为 SIADD SI,BX;求出对应的 led 数码MOV AL,BYTE PTR [SI]MOV DX,IO8255A ;自 8255A 的口输出OUT DX,ALMOV AL,BYTE PTR BZ ;使相应的数码管亮MOV DX,IO8255CEXIT:MOV AH,4CHINT 21HCODEENDSENDSTART;返回.******************************.OUT DX,ALMOV CX,3000DELAY: LOOP DELAY ;延时MOV BH,BYTE PTR BZSHR BH,1JNZ LLLMOV DX,0FFHMOV AH,06INT 21HJE LOOP2 ;有键按下则退出MOV DX,IO8255CMOV AL,0 ;关掉数码管显示OUT DX,ALMOV AH,4CH ;返回INT 21HCODE ENDSEND START.***************・;* 模拟抢答器.***************.DATA SEGMENTIOPORT EQU 0E400H-280HIO8255A EQU IOPORT+288HIO8255B EQU IOPORT+289HIO8255C EQU IOPORT+28AHIO8255K EQU IOPORT+28BHLED DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;数码表DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TASTART: MOV AX,DATAMOV DS,AXMOV DX,IO8255K 设8255为A 口输出,C 口输入MOV AL,10001001BOUT DX,ALMOV BX,OFFSET LED ; 使BX 指向段码管首址SSS: MOV DX,IO8255CIN AL,DX ;从8255的C 口输入数据OR AL,AL ;比较是否为0JE SSS ;若为0,则表明无键按下,转sssMOV CL,0FFH ;cl 作计数器,初值为-1 RR: SHR AL,1INC CLJNC MOV XLAT MOV OUT RRAL,CLDX,IO8255ADX,ALDL,7AH,2 21H;响铃ASCII 码为O7MOVMOVINTWAI: MOV AH,1INT 21HCMP AL,2OH ;是否为空格JNE EEE ;不是,转eeeMOV AL,O ;是,关灭灯MOV DX,IO8255AOUT DX,ALJMP SSSEEE: MOV AH,4CH ;返回INT 21HCODE ENDSEND START运行结果:实验一:当逻辑开关K0~K7中的一个或几个打开时,对应的LED丁就会亮起来,即利用8255A实现了基本的输入输出控制。

微机接口 8255并行接口实验报告

微机接口 8255并行接口实验报告

浙江工业大学计算机学院实验报告实验名称 8255并行接口实验姓名徐洁学号 ************班级计科1301班教师雷艳静日期 2015/12/31一、实验内容与要求1.1 实验内容8255方式0实验一:从8255端口C输入数据,再从端口A输出,即TPC-USB平台按逻辑电平开关K0~K7通过编程使端口C接收,然后再通过端口A输出到LED显示电路L0~L7,这样逻辑电平开关的值就可以通过8255芯片显示在LED显示电路上。

8255方式1输出实验:编程实现每按一次单脉冲按钮产生一个正脉冲,使8255产生一次中断,让CPU进行一次中断服务:依次输出01H、02H、04H、08H、10H、20H、40H、80H 使LED显示电路L0~L7依次发光,中断8次结束。

8255方式1输入实验:编程实现每按一次单脉冲按钮产生一个正脉冲使8255产生一次中断请求,让CPU进行一次中断服务,读取逻辑电平开关预置的ASCII码,在屏幕上显示其对应的字符,中断8次结束。

1.2 实验要求(1) 具有一定的汇编编程的基础,能编写一些基本语句来实现实验。

实验前根据实验流程图,写出对应代码;(2) 要了解8255A并行接口芯片内部结构和外部引脚,理解8255芯片的工作方式和程序设计方法;(3) 熟悉实验平台TPC-USB了解各个接口的名称与功能,进行实验时能快速并正确地连接好实验电路;(4) 8255方式0实验一:连接PC与TPC-USB平台,用微机实验软件运行程序,用TPC-USB平台上的逻辑电平开关与LED显示电路观察,LED显示的值与逻辑电平开关设的值对应;(5) 8255方式1输出实验:连接PC与TPC-USB平台,用微机实验软件运行程序,手按单脉冲按钮,观察LED显示电路能依次发光,按8次后,中断结束,程序结束;(6) 8255方式1输入实验:连接PC与TPC-USB平台,用微机实验软件运行程序,用TPC-USB平台的逻辑电平开关设置一个ASCII码,按一次单脉冲,屏幕就能显示该ASCII码对应的字符,变更逻辑电平的开关,按一次单脉冲,屏幕就会显示变更的ASCII码对应的字符。

微原实验报告8255

微原实验报告8255

华北电力大学实验报告||实验名称 8255A实验课程名称微机原理及应用||专业班级:自动化1202 学生姓名:屈言雪学号:201202020222 成绩:指导教师:程海燕实验日期:2014/12/19一、实验目的及要求:实验目的:(1) 学习8255芯片的工作原理及工作方式;(2)掌握使用8255的应用编程方法,并设计出相应电路在实验箱上正确连接;(3)熟练掌握WAVE6000实验系统的使用。

实验要求:1、只用8255芯片,判断开关状态,当K0为高电平时,LED由高到低循环亮灭;当K0为低电平时,LED由低到高循环亮灭;当K1为高电平时,LED全灭且程序结束。

2、运用8255、8259、8253,在8259的IR2端输入中断请求信号,该信号由8253的方波信号产生(频率1Hz)。

每来一个上升沿,申请中断一次,CPU响应后通过8255 PA口使发光二极管亮,第1次中断,LED0亮,第2次中断,LED1亮,……第8次中断,LED7亮,中断8次后结束。

不用判断开关状态。

二、实验设备:1.计算机b6000微机实验箱3.导线若干三、实验内容:1、只用8255芯片,判断开关状态,当K0为高电平时,LED由高到低循环亮灭;当K0为低电平时,LED由低到高循环亮灭;当K1为高电平时,LED全灭且程序结束。

2、运用8255、8259、8253,在8259的IR2端输入中断请求信号,该信号由8253的方波信号产生(频率1Hz)。

每来一个上升沿,申请中断一次,CPU响应后通过8255 PA口使发光二极管亮,第1次中断,LED0亮,第2次中断,LED1亮,……第8次中断,LED7亮,中断8次后结束,。

不用判断开关状态。

四、实验步骤实验要求(一):只用8255芯片整体思路:编程使8255A端口连接的开关K0、K1控制B端口连接的灯按要求亮灭流程图:程序见附录1、 Proteus 中的设计: (1)连接8084与74LS373低低 高高(2)38译码器的连线:如图,将A12、A13、A14、A15分别连接译码器的A、B、C、E1使能端,由于8255的地址为8000H,因此Y0有效是选中8255,E2、E3端接地。

微机原理8255并行接口(2)完整实验报告

微机原理8255并行接口(2)完整实验报告

实验6 8255并行接口实验
实验时间2019年12月5日
实验类型■验证性□设计性□综合性
1. 实验目的
1.学习并掌握8255的工作方式及其应用。

2.掌握8255典型应用电路的接法。

2. 实验内容及过程(主要内容、操作步骤)
1.基本输入输出实验。

编写程序,使8255的B口为输出,A口为输入,完成拨动开关到数据灯的数据传输。

要求只要开关拨动,数据灯的显示就发生相应改变。

3. 测试数据及实验结果
4. 实验分析及总结(主要考察内容)
启动中断的动作是脉冲开关,因为PC2接的是脉冲开关。

8255A输出的信号可用于CPU提出中断请求。

B端口的方式一需要借用端口C用做联络信号,端口C 还具有中断请求和屏蔽功能
教师评阅
评价指标:实验目的、操作步骤、设计、算法、程序结构、实验结果、实验分析、实验总结。

微机实验报告 8255并行IO口实验

微机实验报告 8255并行IO口实验

微机实验报告 8255并行IO口实验一、实验目的1.掌握8255芯片的基本结构和功能;2.了解键盘、LED灯的工作原理;3.能够进行8255芯片的编程和应用。

二、实验原理8255是由Intel公司设计的一种具有高度集成度的、通用的、并行的I/O设备。

它可以作为与CPU对外的接口芯片,实现与CPU的数据传输和控制。

在8255中,数据端口和控制端口都是I/O端口,通过这些端口来对外部装置进行输入和输出。

8255一共包含三个可编程I/O口,即端口A、端口B和端口C,每个IO口都有自己的方向、输入输出控制和数据寄存器,同时拥有中断控制、双向数据传输以及串行数据传输等多种操作模式。

其中,端口A和端口B是8位的,可以单独使用或组合成16位的端口C进行数据传输。

端口A和端口B的功能可通过I/O控制字中的一些位来编程实现,可分为输出、输入和双向传输三种模式。

端口C是一个5位I/O口,其中4位可以编程为输入或输出,第5位为只读输入输出类型,称为模式控制寄存器(control mode register,CMR)。

模式控制寄存器有4个不同的配置方式,它们在数据传输时可以实现BCD码的转换、万分之一秒的时钟计数、键盘扫描以及LED灯控制等功能。

本次8255并行IO口实验主要是通过端口A、端口B和端口C来控制LED灯和键盘扫描,实现输入输出的控制。

三、实验内容1.针对8255的IO口进行连接:将P0、P1、P2、P3、wr、rd等引脚重新定义为要控制的LED灯、键盘的控制信号引脚,将8255的各接口接在实验板上。

2.编写相应程序,控制8255芯片的各个闪烁。

四、实验步骤2.在电脑上打开keil 软件,编写控制程序,将程序下载到单片机中。

3.通过控制程序,控制LED灯以及键盘扫描进行输出输入的操作。

五、实验结果实现输出LED灯的闪烁、键盘扫描通过这次实验,我对8255并行IO口的基本结构和功能有了更深入的了解。

8255芯片是一种高度集成度的、通用的、并行的I/O设备,通过这个芯片的接口,我们可以方便地实现单片机与外界键盘等设备的数据输入输出控制。

8255接口实验报告

8255接口实验报告

8255接口实验报告8255接口实验报告引言:8255接口是一种常见的数字输入输出设备,它可以连接到计算机的并行接口上。

本实验旨在通过使用8255接口,实现计算机与外部设备之间的数据传输与控制。

一、实验背景计算机与外部设备之间的数据交互是计算机系统中非常重要的一部分。

而8255接口作为一种常见的数字输入输出设备,广泛应用于各种工业控制和数据采集系统中。

了解和掌握8255接口的工作原理和使用方法,对于我们深入理解计算机与外部设备之间的数据传输与控制有着重要的意义。

二、实验目的1. 了解8255接口的基本工作原理;2. 掌握8255接口的连接方法和操作步骤;3. 实现计算机与外部设备之间的数据传输与控制。

三、实验过程1. 连接8255接口首先,将8255接口与计算机的并行接口连接起来。

确保连接的稳固和正确。

2. 编写程序使用C语言编写程序,通过并行接口与8255接口进行通信。

程序中需要包含相关的头文件和函数库,以实现对8255接口的控制和数据传输。

3. 实现数据输入通过编写程序,实现从外部设备向计算机输入数据的功能。

可以通过连接外部开关或传感器等设备,将数据输入到计算机中。

4. 实现数据输出通过编写程序,实现从计算机向外部设备输出数据的功能。

可以通过连接LED灯或其他输出设备,将计算机中的数据输出到外部设备上。

5. 运行程序将编写好的程序加载到计算机中,并运行。

观察计算机与外部设备之间的数据传输和控制情况,检查是否实现了预期的功能。

四、实验结果与分析通过实验,我们成功地实现了计算机与外部设备之间的数据传输与控制。

通过编写程序,我们可以将外部设备上的数据输入到计算机中,并将计算机中的数据输出到外部设备上。

通过观察实验结果,我们可以判断数据传输和控制是否正常。

如果数据传输和控制出现异常,我们可以通过调试程序或检查硬件连接来解决问题。

五、实验总结通过本次实验,我们深入了解了8255接口的工作原理和使用方法。

《微机系统与接口技术》8255流水灯实验报告

《微机系统与接口技术》8255流水灯实验报告

微机系统与接口技术:8255流水灯实验报告实验目的本次实验的目的是加深对8255芯片的理解,掌握8255口的输入、输出和中断原理,在此基础上,实现8255流水灯的控制。

实验原理8255芯片8255是一个可编程的并行输入 / 输出设备,拥有三个可编程I / O端口(Port A,Port B和Port C)。

篮牙分别对应着六个可用的I / O线路。

8255芯片可通过编程来设置8255设备的I / O方式,实现不同的应用。

8255芯片也支持中断请求(IRQ)和中断响应(IRQACK)。

流水灯流水灯是一种LED应用,即多个LED依次熄灭和点亮,形成一个具有动态效果同的图形。

在此次实验中,我们将通过8255口控制流水灯的状态,从而实现LED的流动效果。

实验步骤硬件实现本实验用到的硬件包括:8255芯片、LED灯、电路图板、电缆和电源。

在构建电路时,请按照以下步骤操作:1.首先,将8255芯片插入电路图板上的8255插槽中。

注意芯片的方向应该正确,否则芯片可能会被损坏。

2.将三个分别对应Port A, Port B和Port C的引脚与相应的电路元件进行连接。

在此,我们需要连接6个灯泡和6个电阻,其中每个电阻都应与一个电源连接。

3.最后,将电源输入并连接到电路图板,并打开电源。

软件实现为了控制流水灯的状态,我们将使用汇编程序编写代码,在8255口上进行读/写操作。

具体步骤如下:1.设置8255口的方式。

在此处,我们需要将8255口设置为模式0,即所有口都是单向的,其中Port A和Port B都是输出口,Port C则是输入口。

2.将Port A设为11111111。

这将设置第一个LED灯亮起。

3.然后,依次将Port A的状态更改为10111111,10011111,10001111等,以便LED灯以递减的顺序熄灭。

4.最后,在将Port A的状态设置为00000000之后,程序跳转到开始执行第二个LED的流动。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

浙江工业大学计算机学院实验报告实验名称 8259中断实验姓名学号班级教师日期一、实验内容与要求1.1 实验内容通过实验了解8259A中断控制器的工作原理,了解PC中断的原理和过程,学会中断处理程序的编写。

1.2 实验要求了解8259A终端控制器的工作原理,了解PC中断的原理和过程,设计并编写程序,设置8259A的命令字,定义中断服务程序,使在实验平台上每按一次单脉冲开关产生一次中断,在屏幕上依次显示“This is the 1st TPCA Interrupt!”、“This is the 2nd TPCA Interrupt!”、····、“This is the 10th TPCA Interrupt!”、···,中断n次后程序退出,并在屏幕上显示“The TPCA Interrupt end!”二、实验原理与硬件连线2.1 实验原理1.8259A的内部结构:2.8259A 的工作方式:8259A 是一种可编程中断控制器,可协助CPU 进行中断管理。

单片8259A 工作时,每次中断处理过程如下:① 当 IR 7 ~ IR 0 上有中断请求,则 IRR 相应的位置1。

② 对于已进入IRR 且未被IMR 屏蔽的中断请求,PR 电路进行优先级判定,得到最高级的中断请求。

③ 控制逻辑接收中断请求,向CPU 发 INT 信号。

④ 若CPU 允许中断,则在当前指令结束后连续发出2个中断应答信号INTA ,进行中断响应。

每个信号持续2个时钟周期。

T 1T 2T 3T 4T 1T 2T 3T 4中断号CLK (时钟)ALE (地址允许)LOCK (总线锁存)INTA (中断应答)D 7~D 0(数据)⑤ CPU 发第一个 INTA 时,输出总线锁定信号 LOCK ,防止其它处理器或DMA 控制器占用总线。

8259A 收到第一个负脉冲后,将优先级最高的中断ISR 相应位置1,同时使IRR 相应位清0。

⑥ CPU 发第二个 INTA 时,撤销总线锁存信号 LOCK ,地址允许信号 ALE 无效,允许数据线工作。

8259A 收到第二个负脉冲后,将相应中断的类型号送到数据线上。

CPU 读取中断类型号,查找中断向量表得到中断向量,转而进入中断服务程序。

⑦ 若系统为自动结束中断方式 (AEOI),则8259A 会在第2个脉冲结束时,自动将ISR 的相应位复位;若为非自动结束中断方式 (EOI),则 ISR 相应位的“1”一直保持,直到CPU 发EOI (中断结束) 命令时才将其复位。

3.8259A 的操作命令字的使用:7OCW1实验中要对IRQ3进行中断屏蔽和开放:AND AL,11110111B=0F7H ;允许中断IRQ3OR AL,00001000B=O8H ;关闭中断IRQ3OCW2实验中:MOV AL,20H OUT 20H,AL ;中断结束命令前面的20H是OCW2命令字,后面的20H是端口地址4.8259A在PC中的运用:PC用户使用的硬件中断只有可屏蔽中断,由8259中断控制器管理。

中断控制器用于接收外部的中断请求信号,经过优先级判别等处理后向CPU发出可屏蔽中断请求。

IBM PC、PC/XT机内有一片8259中断控制器对外可以提供8个中断源。

8个中断源的中断请求信号线IRQ0~IRQ7在主机的62线ISA总线插座中可以引出,系统已设定中断请求信号为“边沿触发”,普通结束方式。

PC/AT及286以上微机内又扩展了一片8259中断控制,IRQ2用于两片8259之间级联,对外可以提供16个中断源。

中断源中断类型号中断功能IRQ8 070H 实时时钟IRQ9 071H 用户中断IRQ10 072H 保留IRQ11 073H 保留IRQ12 074H 保留IRQ13 075H 协处理器IRQ14 076H 硬盘IRQ15 077H 保留TPC-USB实验板上,将中断源固定接到3号中断IRQ3上,即进行中断类型号为0BH。

2.2 硬件连线把TPC-USB平台与PC相连。

在TPC-USB平台上,单脉冲接口与IRQ接口相连。

电路连接图如图1所示:图1.TPC-USB平台中断实验电路连接图实验连线实拍图:三、设计思路、步骤和程序流程图3.1 设计思路经过and al,0f7h允许中断(IRQ3),在sti开中断以后接收到一个单脉冲即产生中断,调用中断子程序执行,通过mov dx,offset mess mov ah,09h int 21h显示中断信息,达到在屏幕上依次显示“This is the 1st TPCA Interrupt!”、“This is the 2nd TPCA Interrupt!”、····、“This is the 10th TPCA Interrupt!”、···的目的,由于刚开始初始化了Bh等于N,而且每执行一次中断会通过loop next语句来将计数器减1,直到减为0以后就不再执行中断,程序退出。

因本次实验必须通过外部中断来实现N次中断,并把每次中断信息输出在屏幕上。

而PC用户可使用的硬件中断只有可屏蔽中断,由8259中断控制器管理。

所以实验要用到8259A芯片,了解了8259A中断控制器的工作原理和PC中断的原理和过程后,画出中断主程序流程图,再画出中断服务程序的流程图,根据流程图写出相应汇编程序,连接好实验电路,运行程序。

本次实验的难点:(1)如何输出两位数:可以通过除以10,分别存储商(十位)、余数(个位),再组合输出来达到输出两位数的目的;(2)中断次数后的字母输出:通过跳转,进行组合输出,这要求程序逻辑清晰,要不然容易出错;3.2 实验步骤(1) 连接实验电路,实验电路如图1所示;(2) 画出流程图,根据流程图编写程序,程序编译成功后,与硬件相连,程序流程图如图2、图3所示;(3) 运行程序,按单脉冲开关N次,观察屏幕显示的结果。

3.3 程序流程图四、程序清单与执行结果4.1 程序清单DATA SEGMENTMESS1 DB 'This is the ' ,'$'MESS3 DB 'The TPCA Interrupt end!',0AH,0DH,'$'MESS2 DB 'th ','$' ;输出次序比三大的MESS4 DB 'st ','$' ;firstMESS5 DB 'nd ','$' ;secondMESS6 DB 'rd ','$' ;thirdMESS7 DB 'TPCA Interrupt ',0AH,0DH,'$'DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TASTART:CLI ;关中断MOV AX,SEG IRQ3_INT ;中断程序入口地址送中断向量表MOV DS,AXMOV DX,OFFSET IRQ3_INTMOV AX,250BH ;设置中断向量程序INT 21HMOV AX,DA TA ;将DS指向输出端MOV DS,AXIN AL,21H ;读取中断屏蔽字AND AL,0F7H ;开放IRQ3中断OUT 21H,ALMOV Bh,15 ;设置中断次数STI ;开中断MOV CX,1 ;把1放入CX寄存器WIN:JMP WIN ;等待硬中断IRQ3_INT: ;中断服务程序CLIMOV DX,OFFSET MESS1 ;显示发生中断的信息MOV AH,09HINT 21HMOV AH,0MOV AL,CLMOV BL,10DIV BLMOV CH,AHMOV DL,ALADD DL,30HMOV AH,2INT 21H ;输出十位数MOV DL,CHADD DL,30HMOV AH,2INT 21H ;输出个位数CMP CL,1 ;数字后缀输出JE PRINT_STCMP CL,2JE PRINT_NDCMP CL,3JE PRINGT_RDCMP CL,4JGE PRINT_THHL:MOV DX,OFFSET MESS7MOV AH,09HINT 21HMOV AL,20HOUT 20H,ALINC CXDEC BhJNZ NEXTIN AL,21H ; N次中断已到,恢复屏蔽字OR AL,08H ;禁止IRQ3中断OUT 21H,ALMOV DX,OFFSET MESS3 ;显示N次中断结束信息MOV AH,09HINT 21HMOV AH,4CH ;返回dos系统INT 21HPRINT_ST: ;输出后缀stMOV DX,OFFSET MESS4MOV AH,09HINT 21HJMP HLPRINT_ND: ;输出后缀ndMOV DX,OFFSET MESS5MOV AH,09HINT 21HJMP HLPRINGT_RD: ;输出后缀rd MOV DX,OFFSET MESS6MOV AH,09HINT 21HJMP HLPRINT_TH: ;输出后缀th MOV DX,OFFSET MESS2MOV AH,09HINT 21HJMP HLNEXT:IRET ;中断返回CODE ENDSEND START4.2 执行结果五、程序调试说明和实验感想5.1 调试说明这次实验主要碰到以下问题:(1)在输出二位数时,我们采用的是除以10,分别搜集十位和个位,再组合输出。

但在实际编写时却无法正常输出,输出的是4位,前两位是乱码。

当时找了半天没找出来是什么问题,后来在老师的帮助下,发现时我们的寄存器的使用存在问题,因为除法涉及到多个寄存器,很容易出错,再加上我们汇编水平不够,造成混乱,在重新赋值,梳理之后,两位输出才成功;(2)在整个实验完成后,运行时,前面的很顺利,但在最后中断次数结束,退出程序是出现了一个bug,原本是应该输完第11次中断信息语句,再跳出中断结束的语句,但结果是变成如图4所示的结果。

我知道这是程序执行顺序的问题,但当我把程序段调整之后,编译器报错,我的调整不合法,当时因为时间的缘故,只能回来进行修改。

回来后,因为对整个实验有了一个比较详细的理解,再看当时在实验室写的代码,就感觉是拼积木一样,东拼西凑,毫无章法,我自己也不知道怎么改了,于是我就重新写了一份,不过这次我不是直接下笔,而是先画了个流程图,按照流程图,再去写,这样完成了一份逻辑清晰的代码,在下次实验时我运行了一下,除了点小bug,很快就编译通过了,运行也达到了理想的目的。

相关文档
最新文档