使用8259A的单级中断控制实验_第1页
使用8259A的单级中断控制实验_第2页
使用8259A的单级中断控制实验_第3页
使用8259A的单级中断控制实验_第4页
使用8259A的单级中断控制实验_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验五使用 8259a 的单级中断控制实验一、实验目的1、掌握中断控制器8259a 与微机接口的原理和方法。2、掌握中断控制器8259a 的应用编程。二、预备知识1、 8259a 的内部结构8259a 是专为控制优先级中断而设计的芯片。它将中断源按优先级排队、辨认中断源、提供中断向量的电路集成于一体,只要用软件对它进行编程,就可以管理8 级中断。如图 5 19 所示,它由中断请求寄存器 (irr) 、优先级分析器、 中断服务寄存器 (isr) 、中断屏蔽寄存器 (imr) 、数据总线缓冲器、读写控制电路和级联缓冲器、比较器组成。图 5 19中断请求寄存器:寄存所有要求服务的请求ir0ir7 。

2、中断服务寄存器:寄存正在被服务的中断请求。中断屏蔽寄存器:存放被屏蔽的中断请求,该寄存器的每一位表示一个中断号,该位为 1,屏蔽该号中断,否则开放该号中断。数据总线缓冲器:是双向三态的,用以连接系统总线和8259a 内部总线,通过它可以由cpu 对 8259a 写入状态字和控制字。读写控制电路:用来接受i/o命令,对初始化命令和操作命令字寄存器进行写入,以确定8259a 的工作方式和控制方式。级联缓冲器 /比较器:用于多片8259a 的连接,能构成多达64 级的矢量中断系统。2、 8259a 编程及初始化(1) 写初始化命令字* 写初始化命令字 icw1(a0=0) ,以确定中断请求信号类型,

3、清除中断屏蔽寄存器,中断1优先级排队和确定系统用单片还是多片。* 写初始化命令字 icw2 ,以定义中断向量的高五位类型码。*写初始化命令字icw3 ,以定义主片8259a 中断请求线上ir0ir7有无级联的8259a 从片。第 i 位 =0,表明 iri 引脚上无从片第 i 位 =1,表明 iri 引脚上有从片*写初始化命令icw4 ,用来定义8259a 工作时用8085 模式,还是8088 模式,以及中断2服务寄存器复位方式等。(2) 写控制命令字* 写操作命令字 0cw1 ,用来设置或清除对中断源的屏蔽。第 i 位 =0,对应的中断请求iri 开放第 i 位 =1,对应的中断请求iri

4、屏蔽注:ocw1 如不写,则在初始化命令写入后,ocw1 为全开放状态。* 操作命令字 ocw2 ,设置优先级是否进行循环、循环方式及中断结束方式。注:8259a 复位时自动设置ir0 优先权最高,ir7 优先权最低。3*操作命令字ocw3 ,设置查询方式、特殊屏蔽方式以及读取8259 中断寄存器的当前状态。(3) 8259a 查询字通过 ocw3 命令字的设置,可使cpu 处于查询方式,随时查询8259a 有否中断请求,有则转入相应的中断服务程序。三、实验内容本系统中已设计有一片8259a 中断控制芯片, 工作于主片方式, 8 个中断请求输入端ir0ir7对应的中断型号为8f,其和中断矢量关

5、于如下表5 3 所示。表 5 34根据实验原理图520(见下页),8259a 和 8088 系统总线直接相连,8259a 上连有一系统地址线 a0,故 8259a 有 2 个端口地址,本系统中为20h 、21h 。 20h 用来写 icw1 , 21h 用来写 icw2 、icw3 、icw4 ,初始化命令字写好后,再写操作命令字。ocw2 、ocw3用口地址 20h , ocw1 用口地址21h 。图 5 14 中,使用了3 号中断源, ir3 插孔和 sp 插孔相连,中断方式为边沿触发方式,每按一次an 按钮产生一次中断信号,向 8259a 发出中断请求信号。如果中断源电平信号不符规定要求

6、则自动转到7 号中断,显示“err ”。 cpu 响应中断后,在中断服务中,对中断次数进行计数并显示,计满5 次结束,显示器显示“8259good”。四、实验线路连接8259a 的 ir3 插孔和 sp 插孔相连。 sp 插孔初始电平为低电平。图 5 20五、实验软件框图5六、实验软件清单code segmentassume cs:codeintport1 equ 0020hintport2 equ 0021hintq3equ intreeup3intq7equ intreeup7contport equ 00dfhdataport equ 00dehdata0equ 0580hdata1eq

7、u 0500hdata2equ 0508hdata3equ 0518hdata4equ 0520horg 1800hstart: jmp tint1tint1:call formatcldmov di,data0mov cx,08hxor ax,axrep stoswmov si,data3call leddisp;disp 8259-16mov ax,0hmov ds,axcall wrintver;write intrruptmov al,13hmov dx,intport1out dx,almov al,08hmov dx,intport2out dx,almov al,09hout d

8、x,almov al,0f7hout dx,almov byte ptr ds:0601h,01h;time=1stiwating: jmp watingwrintver:mov ax,0hmov es,axmov di,002chlea ax,intq3stoswmov ax,csstoswmov di,003chlea ax,intq7stoswmov ax,csstoswretintreeup3:climov al,ds:0601hcall conversmov si,data0call leddispdmov al,20h7mov dx,intport1out dx,aladd byt

9、e ptr ds:0601h,01hcmp byte ptr ds:0601h,06hjna intre1mov si,data4call leddispintre3:jmp intre3convers:mov bh,0hand al,0fhmov bl,almov al,cs:bx+data2mov bx,data0mov ds:bx,alretintre1:mov al,20hmov dx,intport1out dx,alstiiretintreeup7: climov si,data1call leddispmov al,20hmov dx,intport1out dx,aliretl

10、eddisp:mov al,90hmov dx,contportout dx,almov byte ptr ds:0600h,00led1:cmp byte ptr ds:0600h,07hjaled2mov bl,ds:0600hmov bh,0h8mov al,cs:bx+simov dx,dataportout dx,aladd byte ptr ds:0600h,01hjnz led1led2:retleddispd:mov al,90hmov dx,contportout dx,almov byte ptr ds:0600h,00ledd1:cmp byte ptr ds:0600h

11、,07hjaledd2mov bl,ds:0600hmov bh,0hmov al,ds:bx+simov dx,dataportout dx,aladd byte ptr ds:0600h,01hjnz ledd1ledd2:retformat: mov bx,0mov word ptr ds:bx+0500h,5050hadd bx,2mov word ptr ds:bx+0500h,0079hadd bx,2mov word ptr ds:bx+0500h,0000hadd bx,2mov word ptr ds:bx+0500h,0000hadd bx,2mov word ptr ds

12、:bx+0500h,063fhadd bx,2mov word ptr ds:bx+0500h,4f5bhadd bx,2mov word ptr ds:bx+0500h,6d66hadd bx,29mov word ptr ds:bx+0500h,077dhadd bx,2mov word ptr ds:bx+0500h,6f7fhadd bx,2mov word ptr ds:bx+0500h,7c77hadd bx,2mov word ptr ds:bx+0500h,5e39hadd bx,2mov word ptr ds:bx+0500h,7179hadd bx,2mov word p

13、tr ds:bx+0500h,4006hadd bx,2mov word ptr ds:bx+0500h,4040hadd bx,2mov word ptr ds:bx+0500h,6d6fhadd bx,2mov word ptr ds:bx+0500h,7f5bhadd bx,2mov word ptr ds:bx+0500h,3f5ehadd bx,2mov word ptr ds:bx+0500h,5c3fhadd bx,2mov word ptr ds:bx+0500h,6d6fhadd bx,2mov word ptr ds:bx+0500h,7f5bhretcode endsen

14、dstart七、实验步骤1、按图 5 20 连好实验线路2、 运行实验程序在系统显示“dvcc 86h ”状态下,按任意键,系统显示命令提示符“”。按 go 键,显示“ 1000 xx ” 输入 f000 : b2e0按 exec 键, 在 dvcc 8086h 上显示“ 8259 1”。3、 按 an 按键,每按二次产生一次中断,在显示器左边一位显示中断次数,满 5 次中断,10显示器显示“8259 good”。11实验六8255a可编程并行口实验( 一 )一、实验目的1、掌握并行接口芯片8255a 和微机接口的连接方法。2、掌握并行接口芯片8255a 的工作方式及其编程方法。二、预备知识1

15、、 8255a 结构8255a 是可编程并行接口芯片,双列直插式封装,用 +5v 单电源供电, 如图 5 6 是 8255a的逻辑框图,内部有3 个 8 位 i/o 端口: a 口、 b 口、 c 口;也可以分为各有12 位的两组: a和 b 组,a 组包含 a 口 8 位和 c 口的高四位, b 组包含 b 口 8 位和 c 口的低 4 位; a 组控制和b 组控制用于实现方式选择操作;读写控制逻辑用于控制芯片内寄存器的数据和控制字经数据总线缓冲器送入各组接口寄存器中。由于8255a 数据总线缓冲器是双向三态8 位驱动器,因此可以直接和8088 系统数据总线相连。2、 8255a 端口地址见

16、表 5 1表 5 112图 5 123、 8255 工作方式8255a 芯片有三种工作方式: 方式 0、方式 1、方式 2。 它通过对控制寄存器写入不同的控制字来决定其三种不同的工作方式。方式 0 : 基本输入 /输出图 5 7(a)方式 0 引脚功能如图 5 13( a)所示。 该方式下的a 口 8 位和 b 口 8 位可以由输入的控制字决定为输入或输出, c 口分成高4 位 (pc7pc4) 和低 4 位 (pc3pc0) 两组,也有控制字决定其输入或输出。需注意的是:该方式下,只能将c 口其中一组的四位全部置为输入或输出。方式 1 : 选通输入 /输出图 5 13(b)方式 1 输入图

17、5 13(c)方式 1 输出如图 5 13( b)、 (c)所示。该方式又叫单向输入输出方式,它分为a、 b 两组, a 组由数据口 a 和控制口c 的高 4 位组成, b 组由数据口b 和控制口c 的低 4 位组成。数据口的输入/输出都是锁存的,与方式0 不同,由控制字来决定它作输入还是输出。c 口的相应位用于寄存数据传送中所需的状态信号和控制信息。13方式 2 : 双向输入输出图 5 13(d)方式 2 双向输入输出如图 5 13( d)所示。本方式只有a 组可以使用,此时a 口为输入输出双向口,c 口中的 5 位 (pc3pc7) 作为 a 口的控制位。4、 8255a 控制字(1) 方

18、式选择控制字(2) pc 口按位置 /复位控制字三、实验内容1、实验原理14如实验原理图5 14 所示, pc 口 8 位接 8 个开关 k1 k8 , pb 口 8 位接 8 个发光二极管,从 pc 口读入 8 位开关量送pb 口显示。拨动k1 k8 , pb 口上接的8 个发光二极管l1 l8 对应显示 k1 k8 的状态。图 5 142、实验线路连接( 1) 8255a 芯片 pc0 pc7 插孔依次接 k1 k8 。( 2) 8255a 芯片 pb0pb7 插孔依次接 l1 l8 。( 3) 8255a 的 cs 插孔接译码输出070h 07fh 插孔。四、实验软件框图五、实验软件清单

19、codesegment15assume cs:codeioconpt equ 0073hiocptequ 0072hiobptequ 0071hcontport equ 00dfhdataport equ 00dehdata1equ 0500hstart: jmp ioledioled:call formatcall leddispmov al,89hmov dx,ioconptout dx,alnopnopnopioled1: mov dx,iocptin al,dxmov dx,iobptout dx,almov cx,0ffffhdelay: loop delayjmp ioled1le

20、ddisp:mov al,90hmov dx,contportout dx,almov byte ptr ds:0600h,00led1:cmp byte ptr ds:0600h,07hjaled2mov bl,ds:0600hmov bh,0hmov al,cs:bx+data1mov dx,dataportout dx,aladd byte ptr ds:0600h,01hjnz led116led2:retformat: mov bx,0mov word ptr ds:bx+0500h,4006hadd bx,2mov word ptr ds:bx+0500h,4040hadd bx,

21、2mov word ptr ds:bx+0500h,6d6dhadd bx,2mov word ptr ds:bx+0500h,7f5bhretcode endsendstart六、实验步骤1、按图 5 14 连好线路。2、运行实验程序。在系统显示“dvcc 86h ”状态下,按任意键,显示器显示“”。按 go 键,显示“ 1000 xx ”输入f000 : b160再按 exec 键,在 dvcc 8086h 显示上显示器“ 8255 1”,同时拨动 k1k8 , l1l8 会跟着亮灭。8255a 可编程并行口实验( 二 )一、实验目的进一步掌握8255a 可编程并行口使用方法。二、实验内容

22、1、实验原理实验原理图如图515 所示, pb4 pb7 和 pc0 pc7 分别与发光二极管电路l1 l12相连,本实验为模拟交通灯实验。交通灯的亮灭规律如下:设有一个十字路口,1、 3 为南北方向,2、 4 为东西方向,初始为四个路口的红灯全亮,之后, 1、 3 路口的绿灯亮,2、 4 路口的红灯亮,1、 3 路口方向通车;延时一段时间后,1、 3 路口的绿灯熄灭,而1、3 路口的黄灯开始闪烁,闪烁若干次以后,1、 3 路口红灯亮,而同时 2、4 路口的绿灯亮,2、 4 路口方向通车;延时一段时间后,2、 4 路口的绿灯熄灭,而黄灯开始闪烁,闪烁若干次以后,再切换到1、 3 路口方向,之后

23、重复上述过程。17图 5 158255a 的 pb4 pb7 对应黄灯, pc0 pc3 对应红灯, pc4 pc7 对应绿灯。 8255a 工作于模式 0,并置为输出。由于各发光二极管为共阳极,使其点亮应使8255a 相应端口清0。2、实验线路连接(1) 8255cs 插孔连译码输出 070h 07fh 插孔。(2) l1 pc4 l4 pc5 l7 pc6 l10 pc7l2 pb4l5 pb5l8 pb6l11 pb7l3 pc0l6 pc1l9 pc2l12 pc3三、实验软件框图18四、实验软件清单code segmentassume cs:codeioconpt equ 0073h

24、ioaptequ 0070hiobptequ 0071hiocptequ 0072hiobdata equ 0500hcontport equ 00dfhdataport equ 00dehdata1equ 0640h19start: jmp ioledioled:call formatcall leddispmov ax,0hmov ds,axmov al,82hmov dx,ioconptout dx,almov dx,iobptin al,dxmov byte ptr ds:0501h,almov dx,ioconptmov al,80hout dx,almov dx,iobptmov

25、al,ds:0501hor al,0f0hout dx,almov dx,iocptmov al,0f0hout dx,alcall delay1ioled0: mov al,bmov dx,iocptout dx,alcall delay1call delay1or al,0f0hout dx,almov cx,8hioled1: mov dx,iobptmov al,ds:0501hand al,bout dx,alcall delay220or al,01010000bout dx,alcall delay2loop ioled1mov dx,iocptmov al,0f0hout dx

26、,alcall delay2mov al,01011010bout dx,alcall delay1call delay1or al,0f0hout dx,almov cx,8hioled2: mov dx,iobptmov al,ds:0501hand al,01011111bout dx,alcall delay2or al,bout dx,alcall delay2loop ioled2mov dx,iocptmov al,0f0hout dx,alcall delay2jmp ioled0delay1: push axpush cxmov cx,0030hdely2:call dela

27、y2loop dely2pop cx21pop axretdelay2: push cxmov cx,8000hdela1: loop dela1pop cxretleddisp:mov al,90hmov dx,contportout dx,almov byte ptr ds:0600h,00led1:cmp byte ptr ds:0600h,07hjaled2mov bl,ds:0600hmov bh,0hmov al,cs:bx+data1mov dx,dataportout dx,aladd byte ptr ds:0600h,01hjnz led1led2:retformat: m

28、ov bx,0mov word ptr ds:bx+0640h,405bhadd bx,2mov word ptr ds:bx+0640h,4040hadd bx,2mov word ptr ds:bx+0640h,6d6dhadd bx,2mov word ptr ds:bx+0640h,7f5bhretcode endsendstart五、实验步骤1、按图 5 15 连好实验线路222、运行实验程序在系统显示“dvcc 86h ”状态下,按任意键,系统显示命令提示符“”。按 go 键, 显示 “ 1000 xx ” 输入 f000 : b1b0按 exec 键,在 dvcc 8086h 上

29、显示“ 8255 2”。同时 l1l12 发光二极管模拟交通灯显示。23实验七8253a定时 / 计数器实验一、实验目的学习 8253a 可编程定时 /计数器与8088cpu 的接口方法;了解8253a 的工作方式;掌握8253a 在各种方式下的编程方法。二、预备知识1、 8253a 内部结构8253a 定时 /计数器具有定时、 计数双功能。 它具有三个相同且相互独立的16 位减法计数器,分别称为计数器0、计数器 1、计数器 2。每个计数器计数频率为02mhz ,其内部结构如图5 16 所示。由于其内部数据总线缓冲器为双向三态,故可直接接在系统数据总线上,通过cpu写入计数初值,也可由cpu

30、读出计数当前值;其工作方式通过控制字确定;图中的读写控制逻辑,当选中该芯片时,根据读写命令及送来的地址信息控制整个芯片工作;图中的控制字寄存器用于接收数据总线缓冲器的信息:当写入控制字时,控制计数器的工作方式,当写入数据时则装入计数初值,控制寄存器为8 位,只写不能读。图 5 168253a 内部结构图图 5 17计数器内部结构图2、计数器内部结构如图 5 17 所示,每个计数器由一个16 位可预置的减1 计数器组成,计数初值可保存在16位的锁存器中,该锁存器只写不能读。在计数器工作时,初值不受影响,以便进行重复计数。图中每个计数器有一个时钟输入端clk作为计数脉冲源,计数方式可以是二进制,计

31、数范围110000h ,也可以是十进制,计数范围165536。门控端gate 用于控制计数开始和停止。输出 out 端当计数器计数值减到零时,该端输出标志信号。3、 8253a 端口地址选择见表 5 224表 5 24、 8253a 功能8253 a 既可作定时器又可作计数器:(1) 计数:计数器装入初值后,当gate 为高电平时,可用外部事件作为clk脉冲对计数值进行减1 计数,每来一个脉冲减1,当计数值减至0 时,由 out端输出一个标志信号。(2) 定时:计数器装入初值后,当 gate 为高电平时,由 clk 脉冲触发开始自动计数,当计数到零时,发计数结束定时信号。除上述典型应用外, 8

32、253a 还可作频率发生器、分频器、实时钟、单脉冲发生器等。5、 8253a 控制字说明:(1) 8253 a 每个通道对输入clk 按二进制或二十进制从预置值开始减1 计数,减到0 时从out 输出一个信号。(2) 8253 a 编程时先写控制字,再写时间常数。6、 8253a 工作方式(1) 方式 0:计数结束产生中断方式25当写入控制字后,out变为低电平,当写入初值后立即开始计数,当计数结束时,变成高电平。(2) 方式 1:可编程单次脉冲方式当初值装入后且gate 由低变高时,out 变为低电平,计数结束变为高电平。(3) 方式 2:频率发生器方式当初值装入时, out 变为高; 计数

33、结束, out 变为低。该方式下如果计数未结束,但 gate为低时,立即停止计数,强逼out 变高,当gate 再变高时,便启动一次新的计数周期。(4) 方式 3:方波发生器当装入初值后,在gate 上升沿启动计数,out输出高电平;当计数完成一半时,out输出低电平。(5) 方式 4:软件触发选通当写入控制字后,out 输出为高;装入初值且gate 为高时开始计数,当计数结束,out端输出一个宽度等于一个时钟周期的负脉冲。(6) 方式 5:硬件触发选通在 gate 上升沿启动计数器, out 一直保持高电平; 计数结束, out 端输出一个宽度等于一个时钟周期的负脉冲。三、实验内容本实验原理图如图5 18 所示, 8253a 的 a0、a1 接系统地址总线a0、a1 ,故 8253a 有四个端口地址,如端口地址表5 2 所示。 8253a 的片选地址为48

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论