8259、8253实验报告

合集下载

定时计数器(8253)实验报告

定时计数器(8253)实验报告

实验6 8253定时计数器电路接口实验2220083443 赵洪宇一、实验目的掌握8253定时器的编程原理,用示波器观察不同模式下的输出波形。

二、实验设备MUT—Ⅲ型实验箱、8086CPU模块、示波器(实验台无)。

三、实验内容8253计数器0,1,2工作于方波方式,观察其输出波形四、实验原理介绍本实验用到两部分电路:脉冲产生电路、8253定时器/计数器电路(1)电路原理该电路由1片8253组成,8253的片选输入端插孔CS8253,数据口,地址,读写线均已接好,T0、T1、T2时钟输入分别为8253CLK0、8253CLK1、8253CLK2。

定时器输出,GATE控制孔对应如下:OUT0、GATE0、OUT1、GATE1、OUT2、GATE2、CLK2。

本实验用到两部分电路:脉冲产生电路、8253定时器/计数器电路脉冲产生电路8253的方式控制字8253的状态字(2)电路测试检查复位信号,通过8253定时器/计数器接口实验,程序全速运行,观察片选、读、写、总线信号是否正常。

五、实验步骤1、实验连线:CS0CS8253 OUT08253CLK2 OUT2LED1示波器(实验中无)OUT1 CLK38253CLK0 CLK38253CLK1实验接线原理图如下:注:GATE信号无输入时为高电平2、编程调试程序assume cs:codecode segment publicorg 100hstart:mov dx,04a6h ;控制寄存器mov ax,36h ;计数器0,方式3out dx,axmov dx,04a0hmov ax,7Chout dx,axmov ax,92hout dx,ax ;计数值927Chmov dx,04a6hmov ax,76h ;计数器1,方式3out dx,axmov dx,04a2hmov ax,32hout dx,axmov ax,0 ;计数值32hout dx,axmov dx,04a6hmov ax,0b6h ;计数器2,方式3out dx,axmov dx,04a4hmov ax,04hout dx,axmov ax,0 ;计数值04hout dx,axnext:nopjmp nextcode endsend start3、全速运行,观察实验结果六、实验结果程序全速运行后,LED1闪烁(周期为0.25s),本实验由于实验台没有提供示波器,所以对于实验所要求的观察方式3的波形无法实现。

8253 8259报告

8253 8259报告

预习报告一、实验目的1.学习8253编程定时/计数器的工作方式。

2.掌握中断控制器8259A与微处理机接口的原理和方法。

3..掌握中断控制器8259A的应用编程。

二、预习内容(一)实验中应用的芯片的结构、引脚、工作原理及工作方式。

(1)8253芯片。

8253具有3个独立的计数通道,采用减1计数方式。

在门控信号有效时,每输入1个计数脉冲,通道作1次计数操作。

当计数脉冲是已知周期的时钟信号时,计数就成为定时。

8253中各通道可有6种可供选择的工作方式,以完成定时、计数或脉冲发生器等多种功能。

六种方式分别是:1)方式0:计数结束则中断;2)方式1:单脉冲发生器;3)方式2:速率波发生器;4)方式3:方波发生器;5)方式4:软件触发方式计数;6)方式5:硬件触发方式计数。

图1,8253结构图图2,8253引脚图8253引脚图如图1-2示,各引脚功能如下。

D7~D0——八条双向数据线;WR(低电平有效)——写输入信号;RD(低电平有效)——读输入信号;CS(低电平有效)——片选输入信号;A0、A1——片内寄存器地址输入信号;CLK——计数输入,用于输入定时基准脉冲或计数脉冲;OUT——输出信号,以相应的电平指示计数的完成,或输出脉冲波形;GATE——选通输入(门控输入),用于启动或禁止计数器的操作,以使计数器和计测对象同步。

(2)8259芯片。

一个外部中断请求信号通过中断请求线IRQ,传输到IMR(中断屏蔽寄存器),IMR根据所设定的中断屏蔽字(OCW1),决定是将其丢弃还是接受。

如果可以接受,则8259A将IRR(中断请求暂存寄存器)中代表此IRQ的位置位,以表示此IRQ有中断请求信号,并同时向CPU的INTR(中断请求)管脚发送一个信号。

但CPU这时可能正在执行一条指令,因此CPU不会立即响应。

而当这CPU正忙着执行某条指令时,还有可能有其余的IRQ线送来中断请求,这些请求都会接受IMR的挑选。

如果没有被屏蔽,那么这些请求也会被放到IRR中,也即IRR中代表它们的IRQ的相应位会被置1。

8253实验报告

8253实验报告

定时器计数器实验1.简单计数器:用实验系统的频率发生器作为输入信号,作为定时器T0输入,实现秒脉冲发生器,秒脉冲信号接8259A INT0。

用发光二极管二进制方式显示秒计数。

此实验利用8253的一路计时器,将定时频率接到CLK上,使该路工作在方式2下,即将其作为频率发生器,GATE端置为高电平,OUT端接到8259A的INT0端,即当OUT给出一个上升沿跳变时,程序调用中断服务程序,在中断服务程序中,向输出接口273进行写入并输出,每次进中断输出值加一,给适当的输入脉冲,即可实现秒脉冲发生器。

程序代码如下:ICW1 equ 00010011b ; 写8259A控制字(单片8259, 上升沿中断, 要写ICW4)ICW2 equ 00100000b ; 中断号为20HICW4 equ 00000001b ; 工作在8086/88 方式OCW1 equ 11111110b ; 只响应INT0 中断CS8259A equ 09000h ; 8259地址CS8259B equ 09001hCONTROL equ 08003h ;8253控制字COUNT0 equ 08000h ;1路计数器方式字COUNT1 equ 08001h ;2路计数器方式字COUNT2 equ 08002h ;3路方式字(此程序中未用)CS273 equ 0A000hdata segmentCNT db 0data endscode segmentassume cs:code, ds: dataIEnter proc nearpush axpush dxstimov dx, CS273inc CNTmov al, CNTout dx, al ; 输出计数值mov dx, CS8259Amov al, 20h ; 中断服务程序结束指令out dx, alnoppop dxpop axiretIEnter endpIInit procmov dx, CS8259Amov al, ICW1out dx, almov dx, CS8259Bmov al, ICW2out dx, almov al, ICW4out dx, almov al, OCW1out dx, alretIInit endp ;8259A的初始化子程序start proc nearmov al, 34h ; 通道0,方式2mov dx, CONTROLout dx, al ;写入程序控制字mov al, 0out dx, al ; 高八位mov al, 00000000B ; 锁存计数器值mov dx, CONTROLout dx, almov dx,COUNT0 ;写入0通道方式字mov ax,1000out dx,almov al,ahout dx,almov ax, 0mov ds, axmov bx, 4*ICW2 ; 中断号mov ax, codeshl ax, 4 ; x 16add ax, offset IEnter ; 中断入口地址(段地址为0)mov [bx], axmov ax, 0inc bxinc bxmov [bx], ax ; 代码段地址为0call IInitmov ax, datamov ds, axmov CNT, 0 ; 计数值初始为0mov al, CNTmov dx, CS273out dx, alstiLP: ; 等待中断,并计数。

8259中断实验报告

8259中断实验报告

8259中断实验报告8259中断实验实验报告实验报告实验名称8259A中断控制器实验姓名学号班级教师日期一、实验内容与要求1.1 实验内容了解8259A终端控制器的工作原理,了解PC中断的原理和过程,设计并编写程序,设置8259A的命令字,定义中断服务程序,使在TPC-USB平台上每按一次单脉冲开关产生一次中断,在屏幕上依次显示“The 1 TPCA Interrupt!”、“The 2 TPCA Interrupt!”、??、“The 10 TPCA Interrupt!”,中断10次后程序退出,并在屏幕上显示“The TPCA Interrupt end!”。

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

实验前根据实验流程图,写出对应代码;(2) 要了解8259A中断控制器的内部结构和外部引脚,理解芯片的工作原理和工作过程。

熟悉8259A芯片的命令字,对其进行编程;(3) 熟悉实验平台TPC-USB了解各个接口的名称与功能,进行实验时能快速并正确地连接好实验电路;(4) 连接PC与TPC-USB平台,用微机实验软件运行程序,每按一次TPC-USB平台上的单脉冲开关产生一次中断,要在屏幕上依次显示“The 1 TPCA Interrupt!”、“The 2 TPCA Interrupt!”、??、“The 10 TPCA Interrupt!”,中断10次后程序退出,并在屏幕上显示“The TPCA Interrupt end!”。

二、实验原理与硬件连线2.1 实验原理8259A是一种可编程中断控制器,可协助CPU进行中断管理。

8259A 的内部结构如图1所示。

单片8259A工作时,每次中断处理过程如下:(1) 当IR7 ~ IR0 上有中断请求,则IRR 相应的位置1;(2) 对于已进入IRR且未被IMR屏蔽的中断请求,PR电路进行优先级判定,得到最高级的中断请求;(3) 控制逻辑接收中断请求,向CPU发INT 信号;(4) 若CPU允许中断,则在当前指令结束后连续发出2个中断应答信号INTA,进行中断响应。

【实验】8259中断控制器实验报告

【实验】8259中断控制器实验报告

【关键字】实验8259中断控制器实验报告篇一:8259中断控制器实验报告8259中断控制器实验报告作者:一实验目的1,掌握8259A的工作原理。

2,掌握编写中断服务程序方法。

3,掌握初始化中断向量的方法。

二,实验设备CPU挂箱,8086CPU模块图1-cpu挂箱三,实验内容用电平开关的输出作为中断源,每个开关对应于一个中断源。

在中断服务程序中,通过74LS273输出一个数据,以点亮于中断源对应位置的LED灯。

四,实验原理1.本实验用到三部分电路:电平开关电路、简单I/O扩展电路和8259中断控制器电路;2.8086的中断系统是向量中断方式,内存中特定位置有一中断向量表,表内存有不同中断类型的中断向量,不同的中断向量对应不同的偏移地址;3.中断类型由8359通过数据总线送给8086,8086内部电路会将该类型值自动乘4,而后赋给指令指针,从而转向中断向量表的相应单元取得中断入口地址,之后就进入中断服务程序;4.中断类型的高5位由8359寄存器ICW2决定,低3位由中断源IRx的编码自动填充,IRO~IR7的编码分别是000,001,010,011,100,101,110,111。

五,实验步骤1,实验接线CS0-CS8259 CS1-CS273 00~07-LED1~LED8 K1~K8-IR0~IR7 INT-INT(8086CPU 板) INTA-INTA(8086CPU板) 2,编译调试程序3,全速运路程度,拨动某一电平开关,观察LED的亮灭情况。

六,实验结果全速运路程序,由上向下拨动开关时,相应位置的LED灯点亮,其余LED灯全灭七,源代码ASSUME CS:CODECODE SEGMENT PUBLICORG 100H START: MOV CX,0 START1:CLIMOV DX,04A0HMOV AX,13HOUT DX,AXMOV DX,04A2HMOV AX,80HOUT DX,AXMOV AX,01HOUTDX,AXMOV AX,00HOUT DX,AXNOPMOV AX,0MOV DS,AXMOVADD DI,2DI,200H MOV DS:[DI],100H;初始化中断向量表MOV AX,OFFSET int0MOV DS:[DI],AXADD DI,2MOV DS:[DI],100HADD DI,2MOV AX,OFFSET int1MOV DS:[DI],AXADD DI,2MOV DS:[DI],100HADD DI,2MOV AX,OFFSET int2MOV DS:[DI],AXADD DI,2MOV DS:[DI],100HADD DI,2MOV AX,OFFSET int3MOV DS:[DI],AXADD DI,2MOV DS:[DI],100HADD DI,2MOV AX,OFFSET int4MOV DS:[DI],AXADD DI,2MOV DS:[DI],100HADD DI,2MOV AX,OFFSET int5MOV DS:[DI],AXADD DI,2MOV AX,OFFSET int6MOV DS:[DI],AXADD DI,2MOV DS:[DI],100HADD DI,2MOV AX,OFFSET int7MOV DS:[DI],AXADD DI,2 ;上述程序为芯片8259的初始化程序MOV DS:[DI],100H MAIN:MOV AX,0STIWAITING: CMP AX,0HJE WAITINGMOV DX,04B0HOUT DX,AXMOV CX,0DELAY: LOOP DELAYJMP START1 Int0:CLINOPMOV AX,OFEHIRET Int1:CLINOPMOV AX,OFDHIRET Int2:CLINOPMOV AX,OFBHIRET Int3:CLINOPMOV AX,OF7HIRET Int4:CLINOPMOV AX,OEFHIRET Int5:CLINOPMOV AX,ODFHIRET Int6:CLINOPMOV AX,OBFHIRET Int7:CLINOPMOV AX,O7FHIRET篇二:8259中断控制实验报告深圳大学实验报告班级:实验时间:实验报告提交时间:教务处制篇三:微机接口实验报告8259中断控制器实验实验六8259中断控制器实验1 实验目的(1) 学习中断控制器8259的工作原理。

8259中断控制器实验报告

8259中断控制器实验报告

竭诚为您提供优质文档/双击可除8259中断控制器实验报告篇一:8259中断控制器实验报告8259中断控制器实验报告作者:一实验目的1,掌握8259A的工作原理。

2,掌握编写中断服务程序方法。

3,掌握初始化中断向量的方法。

二,实验设备cpu挂箱,8086cpu模块图1-cpu挂箱三,实验内容用电平开关的输出作为中断源,每个开关对应于一个中断源。

在中断服务程序中,通过74Ls273输出一个数据,以点亮于中断源对应位置的LeD灯。

四,实验原理1.本实验用到三部分电路:电平开关电路、简单I/o扩展电路和8259中断控制器电路;2.8086的中断系统是向量中断方式,内存中特定位置有一中断向量表,表内存有不同中断类型的中断向量,不同的中断向量对应不同的偏移地址;3.中断类型由8359通过数据总线送给8086,8086内部电路会将该类型值自动乘4,而后赋给指令指针,从而转向中断向量表的相应单元取得中断入口地址,之后就进入中断服务程序;4.中断类型的高5位由8359寄存器Icw2决定,低3位由中断源IRx的编码自动填充,IRo~IR7的编码分别是000,001,010,011,100,101,110,111。

五,实验步骤1,实验接线cs0-cs8259cs1-cs27300~07-LeD1~LeD8K1~K8-IR0~IR7InT-InT(8086cpu板)InTA-InTA(8086cpu板)2,编译调试程序3,全速运行程度,拨动某一电平开关,观察LeD的亮灭情况。

六,实验结果全速运行程序,由上向下拨动开关时,相应位置的LeD灯点亮,其余LeD灯全灭七,源代码Assumecs:coDecoDesegmenTpubLIcoRg100hsTART:moVcx,0sTART1:cLImoVDx,04A0hmoVAx,13houTDx,AxmoVDx,04A2hmoVAx,80h ouTDx,AxmoVAx,01houTDx,AxmoVAx,00houTDx,AxnopmoVAx,0moVDs,AxmoVADDDI,2DI,200hmoVDs:[DI],100h;初始化中断向量表moVAx,oFFseTint0moVDs:[DI],AxADDDI,2moVDs:[DI],100hADDDI,2moVAx,oFFseTint1moVDs:[DI],AxADDDI,2moVDs:[DI],100hADDDI,2moVAx,oFFseTint2moVDs:[DI],AxADDDI,2moVDs:[DI],100hADDDI,2moVAx,oFFseTint3moVDs:[DI],AxADDDI,2moVDs:[DI],100hADDDI,2moVAx,oFFseTint4moVDs:[DI],AxADDDI,2moVDs:[DI],100hADDDI,2moVAx,oFFseTint5moVDs:[DI],AxADDDI,2moVAx,oFFseTint6moVDs:[DI],AxADDDI,2moVDs:[DI],100hADDDI,2moVAx,oFFseTint7moVDs:[DI],AxADDDI,2;上述程序为芯片8259的初始化程序moVDs:[DI],100hmAIn:moVAx,0sTIwAITIng:cmpAx,0hJewAITIngmoVDx,04b0houTDx,AxmoVcx,0 DeLAY:LoopDeLAYJmpsTART1Int0:cLInopmoVAx,oFehIReTInt1:cLInopmoVAx,oFDhIReTInt2:cLInopmoVAx,oFbhIReTInt3:cLInopmoVAx,oF7hIReTInt4:cLInopmoVAx,oeFhIReTInt5:cLInopmoVAx,oDFhIReTInt6:cLInopmoVAx,obFhIReTInt7:cLInopmoVAx,o7FhIReT篇二:8259中断控制实验报告深圳大学实验报告班级:实验时间:实验报告提交时间:教务处制篇三:8259中断控制实验报告实验六8259中断控制一、实验目的1.学习8086/8088cpu中断系统的知识。

微机原理8259中断控制完整实验报告

微机原理8259中断控制完整实验报告

实验5 8259中断控制实验实验时间2019年11月27日
实验类型■验证性□设计性□综合性
1. 实验目的
掌握8259中断控制器的工作原理
2. 实验内容及过程(主要内容、操作步骤)
利用系统总线上中断请求信号MIR6,设计一个单一中断实验3. 测试数据及实验结果
4. 实验分析及总结(主要考察内容)
1.显示字符“7”时,前面的“0137H”中的“37H”是“7”的ASCII码,若要改变显示的字符,就更改ASCII码。

2.中断服务程序的入口地址有段基址和段内偏移,故有32位,一个中断在中断向量表里面占4个字节,这4个字节就是中断服务程序的入口地址。

实验第一步就是在初始化中断向量表,就是告诉系统中断服务程序在哪里,填上IQR6的段基址和段内偏移(38H-3BH)。

其次就是对8259A主从片进行初始化,很多东西可以不初始化,就用到了主片,8259A从片上也接了一个中断。

再下面就是中断服务程序,实验中中断服务程序有延时,但是在正常编程情况下中断服务程序决不允许有延时,中断服务程序要快进快出
教师评阅
评价指标:实验目的、操作步骤、设计、算法、程序结构、实验结果、实验分析、实验总结。

微型计算机实验报告用8253和8259实现电子表洗衣机控制系统

微型计算机实验报告用8253和8259实现电子表洗衣机控制系统

2015-2016 学年第一学期《微型计算机技术》课程设计报告项目组:第八组学院:计算机科学与工程指导教师:唐培丽设计时间:2016年1月目录一、团队构成及分工 (3)二、项目进度计划 (4)三、实验报告 (5)四、设计报告 (7)五、程序清单 (20)六、课程设计总结 (40)一、团队构成及分工指导教师签字:年月日二、项目进度计划三、实验报告1.实验目的1.学习8253编程定时/计数器的工作方式。

2.掌握中断控制器8259A与微处理机接口的原理和方法。

3.掌握中断控制器8259A的应用编程。

2.实验内容利用8253的定时器功能。

8253的四个端口地址为48H,49H,4AH,4BH,本实验采用8253的通道2,工作在方式3(方波发生器方式)输入CLK2为1KHZ。

输出OUT2作为8259的断请求信号。

8259有两个口地址,本实验为20H和21H,其中20H用来写ICW1,21H用来写ICW2、ICW4,本实验中8259为单片,边沿触发,中断类型号的起始值是8,采用3号中断源,即IRQ3和8253输出口OUT2相连,每过1秒接收到一个中断,向8259发出中断请求信号, CPU响应后,在中断处理程序中,把时间缓冲区中的时间加1,并将其输入到显示缓冲区,以便显示器显示更新后的时间。

计数初值的计算:1/1000000*X=1/20 X=50000D=0C350H(用1MHZ信号产生1/20秒方波)3.实验步骤1.连接好实验线路。

图1-1 实验连线图2.编写程序并调试。

3.运行程序,实验仪显示器上显示一电子秒表。

4.实验记录显示屏亮,刚开始可以看到八段管的第六个管开始显示数字,计时开始,每秒加1,实现了时钟效果。

现象的原因分析:程序写入控制字与计数初值后,定时器启动工作,当计数器减到1时,输出端输出一个CLK周期的低电平,向CPU申请中断,当达到100次时,则输出端输出1s,向CPU申请中断,其中一个数码管显示,当计数到60s时,输出端向CPU申请中断,由另一数码管显示1min,同理由数码管显示1h,CPU处理,使数码管的显示发生变化。

实验十 8253与8259A的模拟时钟实验621

实验十  8253与8259A的模拟时钟实验621

实验十8253与8259A的模拟时钟实验一.实验目的理解和掌握8259A与8253配合使用的工作原理和编程应用方法。

二.实验内容本实验使用8253工作于方式2,设定周期为1秒,输出连续的脉冲信号作为8259A的中断源,每次中断更新LED显示器的数据显示,以1秒为单位轮流显示1~6,不断重复。

三.实验原理1.硬件线路连接(1)8253的GATE0接+5V。

(2)8253的CLK0接实验仪上的分频器74LS393的某输出端。

(3)8253的OUT0接8259A的5号中断IR5插孔。

(4)8253的CS#片选端连接译码器的Y0#输出。

(5)8259A的CS#片选端连接译码器的Y1#输出。

(6)8253的数据总线D0~D7连于系统总线的D0~D7的数据接口。

(7)8259A的数据总线D0~D7连于系统总线的D0~D7的数据接口。

(8)74LS138译码器地址输入ABC端分别与系统地址总线的A2A3A4连接。

(9)74LS138译码器的使能信号G与系统总线旁的G端连接。

2.编程提示(1) 主程序中要完成8259A、8253的初始化和中断向量、开中断、等待中断等工作;中断服务程序要完成时间的显示,时间变量的刷新,及相关的8259A 操作。

(2) 要求8253输出的连续脉冲的周期为1秒,若要简化定时,则可使用分频器的T6(38.4Hz)输出作为其时钟输入,则计数初值为38400。

(3) 时间的显示,可以设置时间变量time,初始值为0,在中断服务程序中对该值进行判断,决定是否要归零或加1显示。

使用该时间变量查LED显示代码表,获取对应的显示代码,送LED显示器显示。

四.实验步骤1.连接好实验硬件线路;2.联机实验:在微机实验环境中自行编写源程序,编译、连接后传送至实验仪,执行,查看实现效果。

五.参考实验程序清单CODE SEGMENTASSUME CS:CODE,DS:CODE,ES:CODEORG 3400HH8: JMP P8259ZXK EQU 0FFDCHZWK EQU 0FFDDHLED DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90HDB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,0DEH,0F3HBUF DB ?,?,?,?,?,?time db 0 ;时间显示变量Port0 EQU 0FFE4H ;8259端口地址Port1 EQU 0FFE5HP8259: CLICALL WP ;初始化显示“P.”MOV AX,OFFSET INT8259 ;设置中断向量MOV BX,0034HMOV [BX],AXMOV BX,0036HMOV AX,0000HMOV [BX],AXCALL FOR825953 ;初始化8259A和8253芯片 mov si,0000hSTICON8: CALL DISJMP CON8;------------------------------------INT8259:clicmp time,7 ;判断是否要重新循环显示 jne llmov time,0ll: inc time ;显示不归0,则加1MOV BX,OFFSET BUFmov al,timeMOV BYTE PTR [BX+SI],alINC SICMP SI,0007HJZ X59XX59: MOV AL,20H ;EOI命令MOV DX,Port0OUT DX,ALmov cx,0050hxxx59: push cxMOV CL,20Hcall dispop cxloop xxx59pop cxmov cx,3438hpush cxSTIIRETX59: MOV SI,0000HCALL WPJMP XX59;==============================FOR825953:MOV AL,13HMOV DX,Port0OUT DX,AL ;ICW1MOV AL,08HMOV DX,Port1OUT DX,AL ;ICW2MOV AL,09HOUT DX,AL ;ICW4MOV AL,0dFHOUT DX,AL ;OCW1MOV DX,0FFE3H ;初始化8253 MOV AL,34HOUT DX,ALMOV DX,0FFE0HMOV AX,38400OUT DX,ALMOV AL,AHOUT DX,ALRET;---------------------------WP: MOV BUF,11H ;初始化显示“P.” MOV BUF+1,10HMOV BUF+2,10HMOV BUF+3,10HMOV BUF+4,10HMOV BUF+5,10HRET;--------------------------------DIS: MOV CL,20HMOV BX,OFFSET BUFDIS1: MOV AL,[BX]PUSH BXMOV BX,OFFSET LEDXLATPOP BXMOV DX,ZXKOUT DX,ALMOV AL,CLMOV DX,ZWKOUT DX,ALPUSH CXMOV CX,0100HDELAY: LOOP $POP CXCMP CL,01HJZ EXITINC BXSHR CL,1JMP DIS1EXIT: MOV AL,00HMOV DX,ZWKOUT DX,ALRET;-------------------------- CODE ENDSEND H8。

8259中断控制实验报告

8259中断控制实验报告

8259中断控制实验报告实验报告:8259中断控制实验一、实验目的:学习和掌握8259中断控制器的工作原理和使用方法。

二、实验设备:计算机、8259中断控制器芯片、连接线、示波器等。

三、实验原理:1.8259中断控制器简介8259是Intel公司推出的一个通用中断控制器芯片,它可以管理多种设备的中断请求,并对中断请求进行优先级排序和处理。

8259具有级联功能,可以通过级联实现更多的设备中断管理。

2.8259工作原理8259中断控制器有两个主要模块:中断请求译码器和中断向量地址寄存器。

中断请求译码器用于判断中断请求的优先级,按照优先级排序,将中断请求发送给CPU。

中断向量地址寄存器用于存储中断向量的地址,CPU根据中断向量的地址来执行相应的中断服务程序。

3.8259中断控制器的寄存器8259中断控制器有多个重要的寄存器,包括中断屏蔽寄存器、中断请求寄存器、中断服务地址寄存器等。

中断屏蔽寄存器用于屏蔽或打开特定中断请求。

中断请求寄存器用于存储当前的中断请求状态。

中断服务地址寄存器用于存储中断向量的地址。

四、实验内容:1.配置8259中断控制器将8259中断控制器连接到计算机,并通过连接线将适当的引脚连接到需要中断控制的设备上。

2.编写中断服务程序根据实验要求,编写相应的中断服务程序,并将其存储在中断服务地址寄存器指定的内存地址中。

3.设置中断向量地址将中断向量的地址存储在中断向量地址寄存器中,使CPU能够根据中断请求执行相应的中断服务程序。

4.测试中断控制功能通过测试设备向8259中断控制器发送中断请求,观察计算机是否能正确处理中断请求,并执行相应的中断服务程序。

五、实验结果与分析:经过以上实验步骤,我们成功配置了8259中断控制器,并编写了相应的中断服务程序。

在测试过程中,通过向8259中断控制器发送中断请求,我们观察到计算机正确地处理了中断请求,并执行了我们编写的中断服务程序。

这表明我们成功地完成了8259中断控制实验。

8253计数器实验报告

8253计数器实验报告

8253计数器实验报告8253计数器实验报告引言:实验报告是对实验过程和结果的详细记录和分析,通过实验报告,可以总结出实验的目的、方法、数据和结论,为进一步研究和实践提供参考。

本文将对8253计数器实验进行报告,介绍实验目的、实验步骤、实验结果和结论。

实验目的:本次实验的目的是熟悉8253计数器的工作原理和使用方法,掌握8253计数器的基本功能和应用场景。

实验步骤:1. 准备实验材料:8253计数器、示波器、电源等。

2. 搭建实验电路:根据实验要求,将8253计数器与示波器和电源相连,确保电路连接正确。

3. 设置实验参数:根据实验要求,设置8253计数器的工作模式、计数范围等参数。

4. 运行实验程序:编写实验程序,通过编程控制8253计数器的工作状态,观察实验结果。

5. 记录实验数据:使用示波器等仪器,记录实验过程中的数据和波形图。

6. 分析实验结果:根据实验数据和波形图,分析8253计数器的工作状态和性能。

实验结果:通过实验,我们观察到了8253计数器的不同工作模式下的输出结果。

在定时器模式下,我们设置了不同的计数范围和计数频率,观察到了计数器的计数过程和计数结果。

在计数器模式下,我们设置了不同的计数方向和计数初始值,观察到了计数器的增减过程和最终的计数结果。

结论:通过本次实验,我们对8253计数器的工作原理和使用方法有了更深入的了解。

我们掌握了8253计数器的基本功能和应用场景,能够根据实际需求设置计数器的工作模式和参数。

实验结果表明,8253计数器具有较高的计数精度和稳定性,在计时、计数等领域有广泛的应用前景。

总结:实验报告是对实验过程和结果的详细记录和分析,通过实验报告,可以总结出实验的目的、方法、数据和结论,为进一步研究和实践提供参考。

本次实验报告对8253计数器的实验进行了详细介绍,包括实验目的、实验步骤、实验结果和结论。

通过本次实验,我们对8253计数器有了更深入的了解,掌握了其基本功能和应用场景。

【8259中断操纵器实验实验报告】 8253操纵8259中断

【8259中断操纵器实验实验报告】 8253操纵8259中断

中断号 主 8259 IRQ0 主 8259 IRQ1 主 8259 IRQ2 主 8259 IRQ3 主 首先运行 CHEC 催序,查看 INTR 中断号及相 关信息。(3)参考试验流程图
8259 IRQ4 主 8259 IRQ5 主 8259 IRQ6 主 8259 IRQ7 从 8259 IRQ8 从 编写程序,然后编译链接。
试验前先运行 CHEC 僵序,得到 INTR 所对应的中断号、相 应的初始
为 1 级、8 级?15 级,然后
化指令字寄存器 ICW 及操作指令字寄存器 OCW 勺地
是 3 级?7 级
ห้องสมุดไป่ตู้
址、开屏蔽的指令字、中断矢虽地址和 PCI 卡中断操纵寄存
在扩展系统总线上的 INTR 对应的中断线就是 PC 机保存 中断其中的
8259 IRQ9 从 8259 IRQ10 从 8259 IRQ11 从 8259 IRQ12 从 8259 IRQ13
(4)将单次脉冲单元的 KK1 琏接到系统总线上的 INTR。
从 8259 IRQ14 从 8259 IRQ15 功能 日时钟/计数器 0 键盘 接从片 8259 串
(5)运行程序,按动 KK1 成键,观看中断是否产生。
第1页共1页
本文格式为 Word 版,下载可任意编辑,页眉双击删除即可。
应哪一级中断,3〕响应中断时,向 CPU 传送中断类型号。
图 6-2 ICW4 格式
8259 的内部结构和引脚如图 6-1 所示。
图 6-3 OCW 指令字格式
8259 的指令共有 7 个,一类是初始化指令字,另一类 是操作指令。
本文格式为 Word 版,下载可任意编辑,页眉双击删除即可。
8259 中断操纵器实验实验报告】 8253 操纵 8259 中 断

8259中断控制器实验的实验报告

8259中断控制器实验的实验报告

8259中断控制器实验的实验报告实验报告:8259中断控制器实验一、实验目的本实验的目的是通过对8259中断控制器的实验,掌握和理解8259中断控制器的原理、工作原理和使用方法。

通过实验能够进一步了解中断控制器的中断分配和中断处理等功能。

同时还能够通过实验,对中断优先级以及中断的屏蔽和响应进行深入了解。

二、实验原理1.8259中断控制器简介8259中断控制器是用于管理和控制多个硬件设备的中断请求的重要芯片。

它是一个具有8个中断请求输入和8个中断向CPU输出的优先级解码器。

中断控制器主要由两个部分组成:中断请求器部分和中断控制器部分。

中断请求器部分用于产生中断请求信号,而中断控制器部分用于优先级解码和中断分配。

2.8259中断控制器的工作原理8259中断控制器可以管理多个硬件设备的中断请求,同时对中断信号进行优先级判断和派发给CPU进行相应处理。

当一些硬件设备发生中断时,会发送中断请求信号给8259中断控制器,然后8259将根据中断请求的优先级判断是否屏蔽或者响应该中断请求。

3.8259中断控制器的使用方法在使用8259中断控制器时,首先需要设置中断控制器的工作模式和中断请求的优先级,然后对中断控制器的屏蔽和响应进行相应的配置。

使用中断控制器时,还需要对中断服务程序进行适当的编程,以实现中断的处理逻辑。

三、实验步骤1.实验前的准备工作(1)准备实验所需的开发板和8259中断控制器。

(2)将8259中断控制器与相应的硬件设备连接。

(3)准备PC机和开发板的通信线缆。

2.8259中断控制器的设置和初始化(1)通过编程方式将8259中断控制器设置为特定的工作模式。

(2)设置中断请求(IRQ)的优先级。

3.中断服务程序的编写(1)根据需求编写中断服务程序,即中断处理逻辑。

(2)将中断服务程序与8259中断控制器的相应中断请求进行关联。

4.实验结果的观察和分析(1)观察测试硬件设备的输出结果。

(2)分析实验结果,判断是否成功实现中断控制和处理。

8253定时器实验报告

8253定时器实验报告

8253定时器实验报告8253定时器实验报告引言:8253定时器是一种广泛应用于计时和计数领域的集成电路。

本实验旨在通过实际操作,深入了解8253定时器的工作原理和应用。

一、实验目的本实验的主要目的是:1. 理解8253定时器的基本原理和工作方式;2. 掌握8253定时器的使用方法;3. 学会通过8253定时器实现各种定时和计数功能。

二、实验器材和原理本实验所需的主要器材有:1. 一台计算机;2. 一块开发板;3. 一根连接线。

8253定时器是一种具有三个独立计数通道的定时/计数芯片。

它可以通过编程控制来实现各种定时和计数功能。

8253定时器的输入时钟信号可以来自计算机的外部时钟源或者计算机内部时钟源。

三、实验步骤1. 将开发板连接到计算机上,并确保连接正确稳定。

2. 打开计算机,并进入开发板的编程环境。

3. 编写程序,初始化8253定时器,并设置计时/计数模式。

4. 定义所需的计时/计数时间间隔。

5. 启动8253定时器,并开始计时/计数。

6. 根据需要,定时器到达预定时间后,触发相应的中断或输出信号。

7. 结束实验,关闭计算机和开发板。

四、实验结果通过本次实验,我们成功地实现了以下功能:1. 利用8253定时器实现了精确的定时功能,可以精确到毫秒级别;2. 利用8253定时器实现了计数功能,可以用于计算某个事件的发生次数;3. 利用8253定时器的中断功能,可以及时响应某个事件的发生。

五、实验总结本次实验通过实际操作,使我们更深入地了解了8253定时器的工作原理和应用。

通过编程控制8253定时器,我们可以实现各种定时和计数功能,为实际应用提供了很大的便利。

然而,在实验过程中也遇到了一些困难和问题。

比如,在设置计时/计数模式时,需要仔细阅读8253定时器的手册,理解各个寄存器的作用和设置方法。

此外,还需要注意编程时的精度和误差,以确保实验结果的准确性和可靠性。

通过本次实验,我们不仅加深了对8253定时器的理论认识,还提高了自己的实际操作能力。

8259中断实验报告

8259中断实验报告

8259中断实验报告引言本实验旨在通过实践掌握8259中断控制器的工作原理和使用方法。

8259中断控制器是一种在计算机系统中用于管理和调度中断请求的硬件设备。

本实验将通过编写代码并进行实际测试,来展示8259中断控制器的功能和效果。

实验过程步骤一:准备工作在开始实验之前,我们需要准备以下材料和工具:•一台支持8259中断控制器的计算机•8259中断控制器的手册或技术资料•一份适用于目标计算机系统的编程环境步骤二:了解8259中断控制器在开始编写代码之前,我们需要对8259中断控制器有一定的了解。

查阅8259中断控制器的手册或技术资料,了解其工作原理、寄存器结构和编程方法。

步骤三:编写初始化代码在开始使用8259中断控制器之前,我们需要对其进行初始化配置。

根据目标计算机系统的要求,编写初始化代码,并将其加载到计算机系统中。

步骤四:编写中断处理程序中断处理程序是在发生中断请求时由8259中断控制器调用的代码段。

根据实际需求,编写中断处理程序,并将其加载到计算机系统中。

步骤五:测试代码在完成初始化和中断处理程序的编写后,我们需要进行代码测试。

通过触发中断请求,检查中断处理程序是否能够正确地被调用和执行。

步骤六:分析实验结果根据测试结果,分析实验中发生的问题和异常情况。

比较预期结果与实际结果之间的差异,并进一步优化代码和配置。

结果与讨论在本实验中,我们成功地使用了8259中断控制器,并编写了相应的初始化代码和中断处理程序。

经过测试,中断处理程序能够正确地被调用和执行。

然而,在实验过程中也遇到了一些问题。

例如,可能会出现中断处理程序无法正确响应中断请求的情况。

这可能是由于配置不当或代码逻辑错误所致。

在遇到问题时,我们可以通过查阅8259中断控制器的手册或技术资料,以及调试工具来进行排查和修复。

通过本实验,我们进一步加深了对8259中断控制器的理解,掌握了其工作原理和使用方法。

在实际应用中,8259中断控制器可以广泛应用于各种计算机系统,提供可靠的中断管理和调度功能。

8259中断实验报告

8259中断实验报告

8259中断实验报告8259中断实验报告概述:8259中断控制器是一种重要的硬件设备,用于管理和处理计算机系统中的中断请求。

本实验旨在通过对8259中断控制器的实际应用,深入理解中断的概念、工作原理和实现方法。

实验目的:1. 了解中断的基本概念和作用;2. 掌握8259中断控制器的工作原理;3. 熟悉8259中断控制器的编程方法;4. 实现一个简单的中断处理程序。

实验设备:1. 计算机;2. 8259中断控制器;3. 开发工具。

实验步骤:1. 硬件连接:将8259中断控制器与计算机主板相连,确保连接正确稳定。

2. 编程准备:打开开发工具,创建一个新的工程,选择适当的编程语言。

3. 初始化8259中断控制器:在程序中调用相应的函数,设置8259中断控制器的工作模式、中断向量表等。

4. 编写中断处理程序:根据实际需求,编写一个简单的中断处理程序,例如键盘输入中断处理程序。

5. 编译、链接和调试:对程序进行编译、链接,生成可执行文件,并进行调试,确保程序的正确性和稳定性。

6. 实验结果分析:运行程序,观察中断处理程序的执行情况,分析中断的触发条件、处理过程和效果。

实验心得:通过本次实验,我深入了解了中断的概念和作用,掌握了8259中断控制器的工作原理和编程方法。

在实际操作中,我遇到了一些问题,例如连接错误、程序调试等,但通过不断尝试和调整,最终成功实现了一个简单的中断处理程序。

这次实验对我来说是一次很好的学习机会,不仅加深了对中断的理解,还提高了我的编程能力和问题解决能力。

总结:中断是计算机系统中一个重要的概念,对于提高系统的响应速度和处理效率具有重要意义。

8259中断控制器作为中断管理和处理的关键设备,其工作原理和编程方法需要我们深入了解和掌握。

通过本次实验,我对中断和8259中断控制器有了更深入的理解,并通过实际操作加深了对中断处理程序的编写和调试的经验。

这对我今后的学习和工作都具有重要的参考价值。

8253、8255、8259综合实验

8253、8255、8259综合实验

8253、8255、8259 综合实验医电61刘晶061210058253、8255、8259综合实验一、实验目的1.掌握8259、8253、8255芯片结构及工作方式;2.熟悉8259、8252、8259的初始化和操作编程;3.掌握各芯片之间或与CPU间的连接方法。

二、实验设备b6000p实验教学系统;2.IBM-PC机三、实验内容1.8255A口为输出口,接8个发光二极管,B口为输入口,接8个拨动开关,“0”或“1”,从而实现把开关的状态显示出来。

2.用8253计数器0对外部事件进行计数,每发生5次外部事件,用发光二极管亮做提示。

3.用8253计数器0输出一个1S为周期的方波,并用发光二极管显示其周期。

4.8个LED二级管循环点亮,每个亮1秒钟,用8253定时1秒,通过8259中断实现1S 循坏显示四、实验结果1.8255程序如下:DATA SEGMENTCOUNT DB 1DATA ENDSSTACK SEGMENTDB 100 DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TA,SS:STACKSTART:MOV AX,DA TAMOV DS,AXMOV DX,8003H ;8255控制口MOV AL,10000010B ;控制字:A口方式0输出,B口方式0输入OUT DX,AL ;写入控制字TESTI:MOV DX,8001H ;指向B口IN AL,DX ;从B口读入开关状态MOV DX,8000H ;指向A 口OUT DX,AL ;A 口用LED 指示开关状态 JMP TESTI ;循环检测 CODE ENDSEND START 实验结果:程序运行后,波动开关,可以控制其对应二极管的亮、灭。

2.8253对外部事件计数 程序如下:DATA SEGMENT COUNT DB 1 DATA ENDSSTACK SEGMENT DB 100 DUP(?) STACK ENDSCODE SEGMENT MAIN PROC FARASSUME CS:CODE,DS:DA TA,SS:STACK START:MOV AX,DA TA MOV DS,AX JISHU:MOV AL,00010001BMOV DX,9003HOUT DX,ALMOV AL,3MOV DX,9000H OUT DX,ALDUHUI: MOV AL,00000000B MOV DX,9003H OUT DX,AL MOV DX,9000H IN AL,DX SUB AL,0 JZ JISHU JMP DUHUI MAIN ENDP CODE ENDS END START 实验结果:程序运行后,每发生5次外部事件(单脉冲电路产生),二极管亮1次作为MOV CX,0FFFFHDELAY: DEC CXCMP CX,00HJNZ DELAY3.8253输出周期为1s的方波程序如下:DATA SEGMENTCOUNT DB 1DATA ENDSSTACK SEGMENTDB 100 DUP(?)STACK ENDSCODE SEGMENTMAIN PROC FARASSUME CS:CODE,DS:DA TA,SS:STACKSTART:MOV AX,DA TAMOV DS,AXMOV AL,00110110BMOV DX,9003HOUT DX,ALMOV BX,62500MOV AL,BLMOV DX,9000HOUT DX,ALMOV AL,BHOUT DX,ALMAIN ENDPCODE ENDSEND START实验结果:二极管以1s为周期闪烁,即得到了1s为周期的脉冲波,并用二极管显示出来。

可编程定时器计数器(8253)(微机实验报告)

可编程定时器计数器(8253)(微机实验报告)

可编程定时器/计数器(8253)一、实验目的1)学会8253芯片和微机接口原理和方法。

2)掌握8253定时器/计数器的基本工作原理、工作方式和编程原理。

二、实验内容按图6虚线连接电路,将计数器0设置为方式0,计数器初值为N(N≤0FH),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化(当输入N+1个脉冲后OUT0变高电平)。

图 6按图7连接电路,将计数器0、计数器1分别设置为方式3,计数初值设为1000,用逻辑笔观察OUT1输出电平的变化(频率1HZ)。

图 7三、编程提示1、8253控制寄存器地址283H计数器0地址280H计数器1地址281HCLK0连接时钟 1MHZ2、参考流程图(见图8、9): 开 始读计数器值显示计数值有键按下吗?开 始送计数器初值N Y结 束结 束设计数器0为工作方式0向计数器0送初值1000先送低字节后送高字节向计数器1送初值1000先送低字节后送高字节设计数器0为工作方式3设计数器1为工作方式3图 8 图 9四、实验代码1、图6电路的实验代码CODE SEGMENT ;段定义开始(CODE 段)ASSUME CS:CODE ;规定CODE 为代码段START:MOV AL,10H ;设置控制字00010000(计数器0,方式0,写两个字节,二进制计数)MOV DX,283H ;把控制寄存器地址放在DX 寄存器中OUT DX,AL ;将AL 的值送入DX 端口MOV DX,280H ;把计数器0地址放在DX 寄存器中MOV AL,0FH ;将0FH 存入AL 寄存器OUT DX,AL ;将此时AL 的值送入DX 端口LP1: IN AL,DX ;从DX 端口读入8位,放在AL 寄存器中CALL DISP ;调用DISPPUSH DX ;将DX 内容保存到堆栈段MOV AH,06H ;将06H 存入AH ,为了下句调用21中断MOV DL,0FFH ;将0FFH 存入DLINT 21H ;调用21中断POP DX ;将DX 的内容推出栈段JZ LP1 ;如果DX 的内容是0,就跳转到LP1MOV AH,4CH ;将4CH 存入AH ,为了下句调用21中断INT 21H ;调用21中断DISP PROC NEAR ;定义一个名为DISP 的子程序PUSH DX ;把DX 的内容保存到堆栈段中AND AL,0FH ;将AL 寄存器的内容与0FH 进行“与”运算,再把结果存入AL 中MOV DL,AL ;将AL 的值送入DL 寄存器CMP DL,9 ;比较DL中的值与9的大小JLE NUM ;如果DL的值小于或等于9时,则跳转到NUMADD DL,7 ;将DL的值与7进行相加后,再送入DL中NUM: ADD DL,30H ;将DL的值与30H进行相加后,再送入DL中MOV AH,02H ;将02H存入AHINT 21H ;调用DOS21中断MOV DL,0DH ;结合“MOV AH,02H”就是说输出0DHINT 21H ;调用中断指令MOV DL,0AH ;结合“MOV AH,02H”就是说输出0AHINT 21H ;调用DOS21中断POP DX ;将DX的内容推出栈段RET ;子程序在功能完成后返回调用程序继续执行DISP ENDP ;子程序结束CODE ENDS ;代码段结束END START ;程序结束2、图7电路的实验代码CODE SEGMENT ;段定义开始(CODE段)ASSUME CS:CODE ;规定CODE为代码段START:MOV DX,283H ;把控制寄存器地址放在DX寄存器中MOV AL,36H ;设置控制字00110110(计数器0,方式3,写两个字节,二进制计数)OUT DX,AL ;将AL的值送入DX端口MOV AX,1000H ;该语句是立即寻址方式,就是把1000H这个数赋给AX MOV DX,280H ;把计数器0地址放在DX寄存器中OUT DX,AL ;将AL的值送入DX端口MOV AL,AH ;将AX的高8位存入AL寄存器中OUT DX,AL ;将此时AL的值送入DX端口MOV DX,283H ;把端口地址放在DX寄存器中MOV AL,76H ;设置控制字01110110(计数器1,方式3,写两个字节,二进制计数)OUT DX,AL ;将AL的值送入DX端口MOV AX,1000H ;把1000H赋给AXMOV DX,281H ;把端口地址放在DX寄存器中OUT DX,AL ;将AX的低8位送入DX端口MOV AL,AH ;将AX的高8位存入AL寄存器中OUT DX,AL ;将AL的值送入DX端口MOV AH,4CH ;将4CH存入AHINT 21H ;调用DOS21中断CODE ENDS ;代码段结束END START ;程序结束五、实验总结通过实验,学会8253芯片和微机接口原理和方法,掌握8253定时器/计数器的基本工作原理、工作方式和编程原理,熟悉汇编代码的编写。

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

数字逻辑与CPU实验报告实验内容:8259中断控制器、8253可编程定时/计数器接口实验姓名:班级:学号:实验一8259中断控制器实验一、实验目的1、掌握8259的工作原理。

2、掌握编写中断服务程序的方法。

3、掌握初始化中断向量的方法。

二、实验内容用单脉冲发生器的输出脉冲为中断源,每按一次产生一次中断申请,点亮或熄灭发光二极管。

三、实验方法(1)连线1、单脉冲发生器输出P+与8259的IR0相连;2、8259的片选CS8259与CS0相连;3、8259的INT与8086的INT相连;4、CS273与CS1相连;5、00与LED1相连;其他线均已连好。

(2)在8086实验系统软件中编辑程序,编译链接后,调试程序,程序流程图如图2。

(3)调试通过后,在中断服务程序内设置断点,运行程序,当接收到中断请求后,程序停在中断服务程序内的断点处。

四、程序源代码CODE SEGMENT PUBLICASSUME CS:CODEORG 100H;设置堆栈起点0100HSTART: 图2 程序流程图 MOV DX,4A0HMOV AX,13H ;写ICW1,单片8259,要写ICW4OUT DX,AXMOV DX,4A2HMOV AX,80H ;写入ICW2,设定IR0中断类型吗为80HOUT DX,AXMOV AX,01 ;写入ICW4,设定一般嵌套,非自动EOI方式 OUT DX,AXMOV AX,0 ;写入OCW1,设定允许中断。

OUT DX,AXMOV AX,0MOV DS,AXMOV SI,200H ;中断向量预存放在0100:0200H(向量码80H) MOV AX,OFFSET HINT;取中断服务程序的入口地址MOV DS:[SI],AXADD SI 2MOV AX,CSMOV DS:[SI],AXSTI;开中断JMP $;原地跳转HINT:;中断服务程序XOR CX,0FFH;CX全部取反(8位)MOV DX,4B0H;CS273接口的地址,与8个LED灯相连MOV AX,CX;输出高低电平控制LED灯的亮灭OUT DX,AXMOV DX,4A0H ;OCW2的的地址MOV AX,20H;写入OCW2,一般EOI命令,全嵌套方式OUT DX,AXIRET;中断返回CODE ENDSEND START五、实验结果程序调试通过后,当我们按一次单脉冲发生器的输出开关,对应连好的灯就会亮。

实验连线图如下:试验中,当按下P+(蓝色按钮),LED1灯(红色)便会亮;抬起后灯又立刻灭掉。

图3 实验连线图和结果显示六、思考题1、将P0连线连接到IR1-IR7任意一个;重新编写程序。

答:将P0接到IR1,则只需在原程序的基础上把关于中断向量码的程序做改动。

包括:(1)ICW2的初始化编程改为81H:MOV DX,4A2HMOV AX,80H ;写入ICW2,设定IR1中断类型吗为81HOUT DX,AX(2)中断服务子程序的首地址在中断向量表中应向高处移动4个字节:MOV SI,204H ;中断向量预存放在0100:0204H(向量码81H)其他不变。

2、设置OCW1,屏蔽某个中断请求,运行程序观察现象。

答:将IR0重新接入LED0,1中已改过的关于中断向量码的程序也都改回与原程序一致。

为了屏蔽中断请求,应设置OCW1改为01H,屏蔽IR0。

程序改动部分如下:*********************************************************** MOV AX,01H ;写中断屏蔽字OCW1,改成屏蔽方式OUT DX,AX ;屏蔽IR0中断***********************************************************改动后,按单脉冲发生器时,连接的LED灯并不会亮,说明虽然有中断请求,但该请求被屏蔽。

3、设置OCW2,了解中断结束方式与设置优先权。

答:该思考题实验时未能理解做出,经后续思考后认为过程和结果如下。

将IR0、IR1都连接到P+上,分别连接LED0和LED1到00和01。

设置OCW2为E0H,即表示一般EOI 结束方式,但IR0优先级最低。

程序改动部分如下:***********************************************************MOV SI,200H;中断向量预存放在0100:0200H(向量码80H)MOV AX,OFFSET HINT1;取中断服务程序1MOV DS:[SI],AX***********************************************************MOV SI,204H ;中断向量预存放在0100:0204H(向量码81H) MOV AX,OFFSET HINT2;取中断服务程序2MOV DS:[SI],AX***********************************************************HINT1:XOR CX,0F0H CX ;高四位取反(中断控制高四位灯亮)……MOV AX,E0H ;设置OCW2为一般EOI命令,IR0优先级最低 ***********************************************************HINT2:XOR CX,00FH CX ;低四位取反(中断控制低四位灯亮)……MOV AX,E0H ;设置OCW2为一般EOI命令,IR0优先级最低 *********************************************************** 预期结果:每按一次单脉冲发生器,右边4位(高4位)LED灯先点亮,左边4位(低4位)LED灯后点亮;放下脉冲发生器也一样,右边4位先熄灭,左边后熄灭。

七、实验中遇到的问题及解决办法1、未能理解中断程序中ICW1地址为4A40H,而包括ICW2、ICW4等在内的地址为4A42H。

解决方法:询问老师,知道了这是实验箱上固定的端口地址。

2、第一次编译完后,按下P+未出实验结果。

解决方法:仔细查找程序错误,向同学请教,最终明白编译后要点RUN运行,然后复位重新编译后出现实验现象。

3、思考题3实验时为能想明白,没有做出实验结果。

解决方法:实验结束后,查阅资料并讨论,最终明白了原理,并预测了实验现象。

八、心得体会与建议本次实验让我对中断控制器8259A的功能有了更加深入的理解,并且掌握了它的初始化编程以及简答中断服务程序的编写。

实验中,一开始对程序中所用到的各种端口地址存在很多疑惑,但经过老师的讲解、自己的思考以及和同组成员的讨论后,最终明白了各自的含义,并基本上完成了所有实验内容,看见了相应的实验现象,这些使我们的编程以及实践操作能力都有了较大提高。

实验二8253可编程定时/计数器接口实验一、实验目的掌握8253定时/计数器的编程原理 二、实验内容8253计数器0,1,2工作于方波方式,观察其输出。

三、实验方法 (1)连线1、CS0与8253的片选CS8253相连;2、CLK3(750KHZ)与8253CLK0相连;3、8253的OUT0与8253CLK2相连;4、OUT2与发光二极管LED1相连;其他线均已连好。

图4 8253内部引脚图以及时钟脉冲连线图(2)编辑程序,编译链接后,跟踪运行,调试程序,程序流程 图如图5。

(3)调试通过后,全速运行,观察实验结果。

四、实验源程序CODE SEGMENT PUBLIC ASSUME CS:CODE ORG 100H START:MOV DX,04A6H 图5 8253程序流程图MOV AX,36HOUT DX,AX ;写控制字,计数器0工作在方 式3,先写低8位再写高8位MOV DX,04A0HMOV AX,7CHOUT DX,AXMOV AX,92HOUT DX,AX ;将计数初值927CH写入计数器0MOV DX,04A6HMOV AX,0B6HOUT DX,AX ;写控制字,计数器2工作在方式3,先写低8位再写高8位MOV DX,04A4HMOV AX,4OUT DX,AXMOV AX,0OUT DX,AX ;将技术初值4H写入计数器2中JMP $;原地跳转,等待CODE ENDSEND START五、实验结果程序调试通过后,连好的LED1灯就会闪烁,且亮灭时间相等。

实验连线图以及亮时的结果图如图6。

分析原因是因为,此时计数器0、2均工作在方式3——方波发生器,故脉冲信号经过8253计数器之后便形成正负波形对称的方波,使得LED1灯闪烁,且亮灭时间相等。

图6 8253实验接线和现象图六、思考题1、定时器2计数值改为20H;观察其现象。

答:程序修改如图7-1所示:通过用示波器观察波形并测量其频率,我们得到了实验现象:图7-1 思考题1程序图7-2 思考题1输出波形图我们得到现象是定时器2计数初值改为20H后,LED1灯仍在闪烁,但是这个周期大得多。

理论上是原04H初值频率的八分之一。

2、将定时器2改为方式2分频器方式;观察其现象。

答:将定时器2控制字修改,修改程序部分如下:*************************************************************************** MOV DX,04A6HMOV AX,094H ;写控制字,计数器2工作在方式2,只写低8位OUT DX,AX***************************************************************************这样,再经过编译运行后,得到实验现象:LED1灯亮的时间长,灭的时间短,大致3:1的关系。

用示波器观察波形,得到如下图:分析原因知道,8253定时器工作方式2是频率发生器,由于写入的初值是4,所以经过3个周期后,OUT2端变为低电平,再经过一个周期,计数值减到0 图8 思考题2的波形图后,计数器又自动装入计数初值4重新计数,故形成高(亮):低(暗)=3:1。

3、将GATE2接到开关上;观察其现象。

答:程序与上面一样,把GATE2接到开关上。

实验发现,当开关闭合时,LED1灯才会亮,现象与2一致;而开关断开时,LED1灯始终熄灭。

分析原因是因为此时8253也需要靠硬件启动,门控信号可以控制计数的启动和停止。

4、将GATE2接到PUL P+开关上,计数器2改为方式1;观察其现象。

答:先将GATE2接到PUL P0开关的P+端口,再修改程序,修改部分如下:*************************************************************************** MOV DX,04A6HMOV AX,094H ;写控制字,计数器2工作在方式2,只写低8位OUT DX,AX***************************************************************************编译运行后,观察到现象为,当按下P+,LED1灯会亮,但几秒后就会熄灭。

相关文档
最新文档