当前位置:文档之家› 实验五 准IO口控制、中断实验

实验五 准IO口控制、中断实验

实验五 准IO口控制、中断实验
实验五 准IO口控制、中断实验

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

实验六8259中断控制器实验 6.1 实验目的 (1) 学习中断控制器8259的工作原理。 (2) 掌握可编程控制器8259的应用编程方法。 6.2 实验设备 PC微机一台、TD-PIT+实验系统一套。 6.3 实验内容 1. 单中断应用实验 (1)编写中断处理程序,利用PC机给实验系统分配的中断线,使用单次脉冲单元的KK1+按键模拟中断源,每次PC机响应中断请求,在显示器上显示一个字符。 (2)编写中断处理程序,利用PC机给实验系统分配的中断线,使用单次脉冲单元的KK1+按键模拟中断源,每次PC机响应中断请求,在显示器上显示“Hello”,中断5次后退出。 2.扩展多中断源实验 利用实验平台上8259控制器对扩展系统总线上的中断线INTR进行扩展。编写程序对8259控制器的IR0和IR1中断请求进行处理。 6.4 实验原理 1. 8259控制器的介绍 中断控制器8259A是Intel公司专为控制优先级中断而设计开发的芯片。它将中断源优先级排队、辨别中断源以及提供中断矢量的电路集于一片中,因此无需附加任何电路,只需对8259A进行编程,就可以管理8级中断,并选择优先模式和中断请求方式,即中断结构可以由用户编程来设定。同时,在不需增加其他电路的情况下,通过多片8259A的级连,能构成多达64级的矢量中断系统。它的管理功能包括:1)记录各级中断源请求,2)判别优先级,确定是否响应和响应哪一级中断,3)响应中断时,向CPU传送中断类型号。8259A的内部结构和引脚如图6-1所示。 8259A的命令共有7个,一类是初始化命令字,另一类是操作命令。8259A的编程就是根据应用需要将初始化命令字ICW1-ICW4和操作命令字OCW1-OCW3分别写入初始化命令寄存器组和操作命令寄存器组。ICW1-ICW4各命令字格式如图6-2所示,

微机接口实验报告-8259中断控制器应用实验

姓名 院专业班 年月日实验内容8259中断控制器实验指导老师 【实验目的】 (1)学习中断控制器8259的工作原理。 (2)掌握可编程控制器8259的应用编程方法。 【试验设备】 PC微机一台、TD-PIT+实验系统一套。 【实验内容】 (1) 编写中断处理程序,利用PC机给实验系统分配的中断线,使用单次脉冲单元的KK1+按键模拟中断源,每次PC机响应中断请求,在显示器上显示一个字符。 (2) 编写中断处理程序,利用PC机给实验系统分配的中断线,使用单次脉冲单元的KK1+按键模拟中断源,每次PC机响应中断请求,在显示器上显示“9”,中断显示6次后退出。 【实验原理】 1. 8259控制器的介绍 中断控制器8259A是Intel公司专为控制优先级中断而设计开发的芯片。它将中断源优先级排队、辨别中断源以及提供中断矢量的电路集于一片中,因此无需附加任何电路,只需对8259A进行编程,就可以管理8级中断,并选择优先模式和中断请求方式,即中断结构可以由用户编程来设定。同时,在不需增加其他电路的情况下,通过多片8259A的级连,能构成多达64级的矢量中断系统。它的管理功能包括:1)记录各级中断源请求,2)判别优先级,确定是否响应和响应哪一级中断,3)响应中断时,向CPU传送中断类型号。8259A的内部结构和引脚如图6-1所示。 8259A的命令共有7个,一类是初始化命令字,另一类是操作命令。8259A的编程就是根据应用需要将初始化命令字ICW1-ICW4和操作命令字OCW1- OCW3分别写入初始化命令寄存器组和操作命令寄存器组。ICW1-ICW4各命令字格式如图6-2所示,OCW1-OCW3各命令字格式如图6-3所示,其中OCW1用于设置中断屏蔽操作字,OCW2用于设置优先级循环方式和中断结束方式的操作命令字,OCW3用于设置和撤销特殊屏蔽方式、设置中断查询方式以及设置对8259内部寄存器的读出命令。 图6-1 8259内部结构和引脚图

实验二 中断控制电路实验

实验二中断控制电路实验 一、实验目的 1、学习单片机的中断控制原理。 2、编程中断控制器。 二、实验环境 硬件环境:奔3以上处理器,512MB以上内存空间 软件环境:windowsXP以上操作系统,emu8086编译环境,Proteus7、5sp3。 三.实验内容与完成情况 1、实验电路图 2.实验原理 8259中断控制器就是专为控制优先级中断设计的芯片。它将中断源优先级排队,辩别中断源以及提供中断矢量的电路集于一片中。因此无需附加任何电路,只需对8259进行编程,就可以管理8级中断,并选择优行模式与中断请求方式,即中断结构可以由用户编程来设定。同时,在不需要增加其它电路的情况下,通过多片8259的级联,能构成多达64级的矢量中断系统。 (1) 写初始化命令字 * 写初始化命令字ICW1(A0=0),以确定中断请求信号类型,清除中断屏蔽寄存器,中断优先级排队与确定系统用单片还就是多片。

* 写初始化命令字ICW2,以定义中断向量的高五位类型码。 * 写初始化命令字ICW3,以定义主片8259A中断请求线上IR0~IR7有无级联的8259A从片。 第i位=0,表明IRi引脚上无从片 第i位=1,表明IRi引脚上有从片 * 写初始化命令ICW4,用来定义8259A工作时用8085模式,还就是8088模式,以及中断服务寄存器复位方式等。

(2) 写控制命令字 * 写操作命令字0CW1,用来设置或清除对中断源的屏蔽。 第i位=0,对应的中断请求IRi开放 第i位=1,对应的中断请求IRi屏蔽 注: OCW1如不写,则在初始化命令写入后,OCW1为全开放状态。 * 操作命令字OCW2,设置优先级就是否进行循环、循环方式及中断结束方式。 注: 8259A复位时自动设置IR0优先权最高,IR7优先权最低。

实验六 8259中断控制(1)

实验六8259中断控制(1) 一.实验目的 1. 学习8086/8088 CPU中断系统的知识。 2. 学习8259中断控制器的使用。 二.实验要求 编写程序,使8255的A口控制双色灯。CPU执行主程序时四个绿灯亮。用+pulse作为8259的IR2的输入信号,向CPU请求中断。CPU在中断服务程序中熄灭绿灯,并使红灯亮。中断服务程序结束,又返回主程序,再使绿灯亮。 三.实验电路及连线

1.将8255的PA0~PA3接双色灯的DG1~DG4。 2.将8255的PA4~PA7接双色灯的DR1~DR4。 3.将单脉冲电路的+pulse接8259的IR2。 4.将8255的CS接200~207H。 5.将8259的CS接210~217H。 6.将K15插针连上。 四.编程提示 1. 8255初始化:A口方式0输出。 2. 8259初始化:边沿触发。 3. 设置中断矢量,将中断服务程序入口地址送入中断矢量表的相应单元,在本系统中,80000H~800FFH相当于00000H~000FFH,其中用户可用中断矢量表区域为80014H~800FFH。 4. 主程序控制8255 PA0~PA3输出点亮绿灯。 5. 编制中断服务程序,使PA4~PA7输出点亮红灯,关闭绿灯。 五.实验步骤 1. 编制程序。 2. 在PC机上编辑、汇编及连接。 3. 在实验板上按实验连线要求连接硬件线路(注意先关闭实验板电源)。 4. 连接实验板与PC机的串行通信线,开实验板电源。 5. 将程序从PC机送入实验板。 6. 运行程序,此时双色灯绿灯亮,表明在运行主程序。 7. 按一下+pulse按钮,应当红灯亮绿灯灭,表明在执行中断服务程序;过一会儿红灯熄灭了,绿灯又亮了起来,表明中断服务程序已返回了主程序。 六.实验报告 应包括画电路图、试验程序框图、编程(要有注释)、调试过程及心得体会等。

实验三单片机IO口控制实验

实验三单片机I/O口控制实验 一、实验目的 利用单片机的P1口作I/O口,学会利用P1口作为输入和输出口。 二、实验设备及器件 PC机一台 https://www.doczj.com/doc/e312635549.html,单片机仿真器、编程器、实验仪三合一综合开发平台一台 三、实验内容 1.编写一段程序,用P1口作为控制端口,使D1区的LED轮流亮。 2.编写一段程序,用P1.0~P1.6口控制LED,P1.7控制LED的亮和灭(P1.7接按键,按下时LED亮,不按时LED灭)。 四、实验要求 学会使用单片机的P1口作为I/O口,如果有时间用户也可以利用P3口作I/O口来做该试验。 五、实验步骤 1.用导线把A2区的J61接口与D1区的J52接口相连。原理如图所示。 2.先编写一个延时程序。 3.将LED轮流亮的程序编写完整并使用TKStudy ICE仿真器调试运行。 4.使用导线把A2区的J61接口的P1.0~P1.6与D1区的J52接口的LED1~LED7相连,另外A2区J61接口的P1.7与D1区的J53的KEY1相连。原理如上图所示。 5.编写P1.7控制LED的程序,并调试运行。(按下K1看是否全亮) 6.A2区J61接口的P1.7与D1区的J54的SW1相连。然后再使用TKStudy ICE仿真器运行程序,查看结果。 六、实验预习要求 仔细阅读实验箱介绍中的各个接口内容,理解该实验的硬件结构。还可以先把程序编好,然后在Keil C51环境下进行软件仿真。

七、实验参考程序 程序1: ORG 0000H LJMP Main ORG 0100H Main: MOV A,#0FFH CLR C MainLoop: CALL Delay RLC A MOV P1,A SJMP MainLoop Delay: MOV R7, #0 Loop: MOV R6, #0 DJNZ R6, $ DJNZ R6, $ DJNZ R6, $ DJNZ R7, Loop RET END 程序2: ORG 0000H LJMP Main ORG 0100H Main: JB P1.7,SETLED CLRLED: CLR P1.0 CLR P1.1 CLR P1.2 CLR P1.3 CLR P1.4 CLR P1.5 CLR P1.6 SJMP Main SETLED: SETB P1.0 SETB P1.1 SETB P1.2 SETB P1.3

8259A中断实验

实验8259单级中断控制器实验 一、实验目的 ⒈掌握8259中断控制器的接口方法。⒉ 掌握8259中断控制器的应用编程。 二、实验内容 利用8259实现对外部中断的响应和处理,要求程序对每次中断进行计数,并将计数结果送数码显示。 三、实验接线图 图6-6 四、编程指南 ⑴8259芯片介绍 中断控制器8259A是专为控制优先级中断而设计的芯片。它将中断源优先级排队、辨别中断源以及提供中断矢量的电路集于一片中。因此无需附加任何电路,只需对8259A进行编程,就可以管理8级中断,并选择优先模式和中断请求方式。即中断结构可以由用户编程来设定。同时,在不需要增加其它电路的情况下,通过多片8259A的级联,能构成多达64级的矢量中断系统。

⑵本实验中使用3号中断源IR3,“”插孔和IR3相连,中断方式 为边沿触发方式,每拨二次AN开关产生一次中断,满5次中断,显示“8259——good”。如果中断源电平信号不符合规定要求,则自动转到7号中断,显示“Err”。 五、实验程序框图 IR3中断服务程序: IR7中断服务程序: 六、实验步骤 1、按图6-6连好实验线路图。

⑴8259的INT连8088的INTR;⑵8259的INTA连8088的INTA;⑶“” 插孔和8259的3号中断IR3插孔相连,“”端初始为低电平;⑷8259的CS端接FF80H孔。 2、运行实验程序,在系统处于命令提示符“P.”状态下,按SCAL键,输入12D0,按EXEC键,系统显示8259-1。 3、拨动AN开关按钮,按满l0次显示good。 七、实验程序清单 CODE SEGMENT ;H8259.ASM ASSUME CS: CODE INTPORT1 EQU 0FF80H INTPORT2 EQU 0FF81H INTQ3 EQU INTREEUP3 INTQ7 EQU INTREEUP7 PA EQU 0FF20H ;字位口 PB EQU 0FF21H ;字形口 PC EQU 0FF22H ;键入口 ORG 12D0H START: JMP START0 BUF DB ?,?,?,?,?,? intcnt db ? data1: db0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h, 0c6h,0a1h db 86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh,8FH START0: CLD ;递加 CALL BUF1 ;写显示缓冲初值 CALL WRINTVER ;写中断向量 MOV AL,13H ;写ICW1 MOV DX,INTPORT1 OUT DX,AL MOV AL,08H ;写ICW2 MOV DX,INTPORT2 OUT DX,AL MOV AL,09H ;写ICW4 OUT DX,AL MOV AL,0F7H ;写OCW1 OUT DX,AL MOV intcnt,01H ;中断计数初值 STI ;开中断 WATING: CALL DISP ;DISP 8259-1

单片机实验二 定时器及中断控制实验

昆明理工大学信息工程与自动化学院学生实验报告 ( 2014 — 2015 学年第 2 学期) 课程名称:嵌入式技术开课实验室:信自楼402 2015年5月5日 年级、专业、班计科122 学号201210405204 姓名邹华宇成绩实验项目名称实验二定时器及中断控制实验指导教师江虹 教师评语该同学是否了解实验原理: A.了解□ B.基本了解□ C.不了解□ 该同学的实验能力: A.强□ B.中等□ C.差□ 该同学的实验是否达到要求: A.达到□ B.基本达到□ C.未达到□ 实验报告是否规范: A.规范□ B.基本规范□ C.不规范□ 实验过程是否详细记录: A.详细□ B.一般□ C.没有□ 教师签名: 年月日 一、实验目的 掌握定时器T0、T1的方式选择和编程方法,了解中断服务程序的设计方法,学会实时程序的调试技巧。 二、实验原理 89C51单片机有五个中断源(89C52有六个),分别是外部中断请求0、外部中断请求1、定时器/计数器0溢出中断请求、定时器/计数器0溢出中断请求及串行口中断请求。每个中断源都对应一个中断请求位,它们设置在特殊功能寄存器TCON和SCON中。当中断源请求中断时,相应标志分别由TCON和SCON的相应位来锁寄。五个中断源有二个中断优先级,每个中断源可以编程为高优先级或低优先级中断,可以实现二级中断服务程序嵌套。在同一优先级别中,靠内部的查询逻辑来确定响应顺序。不同的中断源有不同的中断矢量地址。 中断的控制用四个特殊功能寄存器IE、IP、TCON (用六位)和SCON(用二位),分别用于控制中断的类型、中断的开/关和各种中断源的优先级别。 中断程序由中断控制程序(主程序)和中断服务程序两部分组成: 1)中断控制程序用于实现对中断的控制; 2)中断服务程序用于完成中断源所要求的中断处理的各种操作。 C51的中断函数必须通过interrupt m进行修饰。在C51程序设计中,当函数定义时用了interrupt m修饰符,系统编译时把对应函数转化为中断函数,自动加上程序头段和尾

单片机io口控制实验报告

单片机实验报告 实验名称:I/O口控制 姓名:张昊 学号:110404247 班级:通信2班 时间:2013.11.19 南京理工大学紫金学院电光系

一、实验目的 1、学习I/O口的使用。 2、学习延时子程序的编写和使用。 3、掌握单片机编程器的使用和芯片烧写方法。 二、实验原理 1、广告流水灯实验 (1)做单一灯的左移右移,八个发光二极管L1~L8分别接在单片机的P1.0~P1.7接口上,输出“0”的时候,发光二极管亮,开始时 P1.0->P1.1->P1.2->P1.3->...->P1.7->P1.6->...P1.0亮,重复循 环。 (2)系统板上硬件连线:把“单片机系统”A2区的J61接口的P1.0~P1.6端口与D1区的J52接口相连。要求:P1.0对应着L1,P1.1对应 L2,……,P1.7对应着L8。 P1口广告流水灯实验原理图如下

程序设计流程:流程图如下 2、模拟开关实验 (1)监视开关K1(接在P3.0端口上),用发光二极管L1(接在单片机P1.0端口上)显示开关状态,如果开关合上,L1亮,开关打开, L1熄火。 (2)系统板上硬件连线:把“单片机系统”A2区的P1.0端口用导线连接到D1区的LED1端口上;把“单片机系统”A2区的P3.0端口用 导线连接到D1区的KEY1端口上; 实验原理图如下图

程序设计流程 二、实验内容 1、流水灯 #include sbit p10=P1^0; sbit p11=P1^1; sbit p12=P1^2; sbit p13=P1^3; sbit p14=P1^4; sbit p15=P1^5; sbit p16=P1^6; sbit p17=P1^7; unsigned char count=0; bit flag; void main() {

8259中断实验

XX学院 实验报告 实验名称 姓名 学号 班级 教师 日期

一、实验内容与要求 1.1 实验内容 本次实验分为如下3个子实验: (1)单中断请求实验:利用系统总线上中断请求信号MIR7,设计一个单一中断请求实验; (2)双中断优先级实验:利用系统总线上中断请求信号MIR6和MIR7,设计一个双中断优 先级应用实验,观察8253对中断优先级的控制; (3)级联中断实验:利用系统总线上中断请求信号MIR7和SIR1,设计一个级联中断应用 实验。 1.2 实验要求 本次实验中三个子实验的实验要求如下: (1)单中断请求实验:单脉冲KK1+与主片8259的IR7相连。每按KK1+,进入一次中断, 输出7; (2)双中断优先级实验:单脉冲KK1+连主片8259的IR7,KK2+连其IR6。每当KK1+按 下时显示“7”,每当KK2+按下显示“6”; (3)级联中断实验:单脉冲KK1+连主片8259的IR7,KK2+连从片的IR1。每当KK1+按 下时显示“M7”,每当KK2+按下显示“S1”。 二、实验原理与硬件连线 2.1 实验原理 (1)中断控制器8259简介 在Intel 386EX芯片中集成有中断控制单元(ICU),该单元包含有两个级联中断控制器,一个为主控制器,一个为从控制器。该中断控制单元就功能而言与工业上标准的82C59A是一致的,操作方法也相同。从片的INT连接到主片的IR2信号上构成两片8259的级联。 在TD-PITE实验系统中,将主控制器的IR6、IR7以及从控制器的IR1开放出来供实验使用,主片8259的IR4供系统串口使用。8259的内部连接及外部管脚引出如图1-1:

计算机组成原理中断实验报告

北京建筑大学 2015/2016 学年第二学期 课程设计 课程名称计算机组成原理综合实验 设计题目微程序控制器设计与实现 系别电信学院计算机系 班级计141 学生姓名艾尼瓦尔·阿布力米提 学号 完成日期二〇一六年七月八日星期五 成绩 指导教师 (签名) 计算机组成综合实验任务书

指令执行流程图; ?5、利用上端软件,把所编写的微程序控制器内容写入实验台中控制器中。 ?6、利用单拍测试控制器与编程的要求是否一致。如果有错误重新修改后再写入控制器中。 7、编写一段测试程序,测试控制器运行是否正确。 实验目的 1.融合贯通计算机组成原理课程,加深对计算机系统各模块的工作原理及相互联系(寄存器堆、运算器、存储器、控制台、微程序控制器)。 2.理解并掌握微程序控制器的设计方法和实现原理,具备初步的独立设计能力;3.掌握较复杂微程序控制器的设计、调试等基本技能;提高综合运用所学理论知识独立分析和解决问题的能力。 实验电路 1. 微指令格式与微程序控制器电路 2.微程序控制器组成 仍然使用前面的CPU组成与机器指令执行实验的电路图,但本次实验加入中断系统。这是一个简单的中断系统模型,只支持单级中断、单个中断请求,有中断屏蔽功能,旨在说明最基本的原理。

中断屏蔽控制逻辑分别集成在2片GAL22V10(TIMER1 和TIMER2)中。其ABEL语言表达式如下: INTR1 := INTR; INTR1.CLK = CLK1; IE := CLR & INTS # CLR & IE & !INTC; IE.CLK= MF; INTQ = IE & INTR1; 其中,CLK1是TIMER1产生的时钟信号,它主要是作为W1—W4的时钟脉冲,这里作为INTR1的时钟信号,INTE的时钟信号是晶振产生的MF。INTS微指令位是INTS机器指令执行过程中从控制存储器读出的,INTC微指令位是INTC机器指令执行过程中从控制存储器读出的。INTE是中断允许标志,控制台有一个指示灯IE显示其状态,它为1时,允许中断,为0 时,禁止中断。当INTS = 1时,在下一个MF的上升沿IE变1,当INTC = 1时,在下一个MF的上升沿IE变0。CLR信号实际是控制台产生的复位信号CLR#。当CLR = 0时,在下一个CLK1的上升沿IE变0。当 CLR=1 且INTS = 0 且 INTC = 0时,IE保持不变。 INTR是外部中断源,接控制台按钮INTR。按一次INTR按钮,产生一个中断请求正脉冲INTR。INTR1是INTR经时钟CLK1同步后产生的,目的是保持INTR1与实验台的时序信号同步。INTR脉冲信号的上升沿代表有外部中断请求到达中断控制器。INTQ是中断屏蔽控制逻辑传递给CPU的中断信号,接到微程序控制器上。当收到INTR脉冲信号时,若中断允许位INTE=0,则中断被屏蔽,INTQ仍然为0;若INTE =1,则INTQ =1。

实验2+++并行IO口的使用

实验二并行I/O端口的使用 一、实验目的 1.进一步熟悉Keil C、proteus软件的使用方法。 2.掌握分支结构语句、运算符和数组的运用。 3.掌握LED数码管的结构和静态显示工作原理。 二、实验内容 1.程序一:按键K0~K3,用分支语句实现P0口的多值输出。 2.程序二:用循环语句实现P0口的多值输出。 3.程序三:用数组方式控制跑马灯。 4程序四:在P2口连接的LED数码管上循环显示“0”,“1”,“2”,“3”,“4”。 三、实验仿真硬件图 在Proteus软件中建立如下图所示仿真模型并保存。 图2-1 并行I/O端口应用原理图 四、编程提示 程序一:分别用if语句、if-else-if语句、switch语句来实现当按下按键K0~K3时,对应D1~D4点亮。 程序二:运用三种基本的循环语句: for语句、while语句和do-while语句,实现D1~D8循环点亮。 程序三:用数组方式控制跑马灯。将跑马灯的全部状态用数组表达,然后用循环语句依次读取数组各元素,送P0口显示。 程序四:在P2口连接的LED数码管上循环显示“0”,“1”,“2”,“3”,“4”。思路同程序一,只不过数组元素是由共阴极数码管所对应的字形码所组成。 五、调试运行 1.四个程序在proteus仿真通过。

分别用if语句、if-else-if语句、switch语句来实现当按下按键K0~K3时,对应D1~D4点亮。 if语句的一般形式: if ( 表达式1 ) { 语句组1; } if ( 表达式 2) { 语句组2; } ... if-else-if语句的一般形式: if ( 表达式 1) { 语句组1; } else if( 表达式 2) { 语句组2; } ... else if( 表达式 n) { 语句组n; } else { 语句组n+1; } switch语句的一般形式为: switch(表达式) { case常量表达式1: 语句序列1;break; case常量表达式2: 语句序列2;break; ... case常量表达式n: 语句序列n;break; default : 语句序列n+1 } 2.运用三种基本的循环语句: for语句、while语句和do-while语句,实现D1~D8循环点亮。 for语句的一般形式:

微机原理实验---中断控制实验

深圳大学实验报告 课程名称:微机计算机设计 实验项目名称:8259 中断控制实验 学院:信息工程学院 专业:电子信息工程 指导教师: 报告人:学号:2009100000班级:<1>班实验时间:2011. 05.19 实验报告提交时间:2011. 05. 26 教务处制

一、实验目的 1. 掌握8259 中断控制器的工作原理。 2. 学习8259 的应用编程方法。 3. 掌握8259 级联方式的使用方法。 二、实验要求 1、8259 单中断实验,由单次脉冲输出与主片8259 的IR7 相连可以实现每按动一次单次脉冲,产生一次外部中断,在显示屏上输出一个字符“7”。 2、8259 级联实验,由KK1+连接到主片8259 的IR7 上,KK2+连接到从片8259 的IR1 上,可实现当按一次KK1+时,显示屏上显示字符“M7”,按一次KK2+时,显示字符“S1”。 三、实验设备 PC 机一台,TD-PITE 实验装置或TD-PITC 实验装置一套。 四、实验原理 1、在Intel 386EX 芯片中集成有中断控制单元(ICU),该单元包含有两个级联中断控制器,一个为主控制器,一个为从控制器。该中断控制单元就功能而言与工业上标准的82C59A 是一致的,操作方法也相同。从片的INT 连接到主片的IR2 信号上构成两片8259 的级联。在TD-PITE 实验系统中,将主控制器的IR6、IR7 以及从控制器的IR1 开放出来供实验使用,主片8259 的IR4 供系统串口使用。8259 的内部连接及外部管脚引出如图: 2、在对8259 进行编程时,首先必须进行初始化。一般先使用CLI 指令将所有的可屏蔽中断禁止,然后写入初始化命令字。8259 有一个状态机控制对寄存器的访问,不正确的初始化顺序会造成异常初始化。在初始化主片8259 时,写入初

实验六 8259中断控制(1)

星期二1-2节序号:1 实验六8259中断控制(1) 12120771 易远明 一、电路图 二、程序框图

三、实验程序及注释 ASSUME CS:CODE INTPORT1 EQU 0060H INTPORT2 EQU 0061H INTQ3 EQU INTREEUP3 INTCNT DB ? ORG 1200H START: CLD MOV DX,0FF2BH MOV AL,80H ;设置8255方式字:A口出 OUT DX,AL CALL WRINTVER ;WRITE INTRRUPT MOV AL,13H ;ICW1=00010011B,边沿触发、单8259、需ICW4 MOV DX,INTPORT1 OUT DX,AL MOV AL,08H MOV DX,INTPORT2 OUT DX,AL MOV AL,09H ;ICW4=00001001B,非特殊全嵌套方式、缓冲/从、正常EOI OUT DX,AL MOV AL,0F7H ;OCW1=11110111B OUT DX,AL MOV INTCNT,01H ;延时 STI WATING: MOV DX,0FF28H ;主程序绿灯亮(低四位为0则绿灯亮,高四位为1故红灯灭)MOV AL,0F0H OUT DX,AL JMP WA TING WRINTVER: MOV AX,0H

MOV ES,AX MOV DI,002CH ;中断向量地址2CH=0BH*4 LEA AX,INTQ3 STOSW ;送偏移地址 MOV AX,0000h STOSW ;送段地址 RET INTREEUP3:CLI ;中断服务子程序开始 MOV DX,0FF28H ;中断服务子程序执行红灯亮 MOV AL,0FH ;低四位为1则绿灯灭,高四位为0故红灯亮 OUT DX,AL CALL DELAY1S MOV AL,20H ;OCW2=001 00 000B非特殊EOI命令,结束命令,用于完全嵌套方式的中断结束 MOV DX,INTPORT1 OUT DX,AL STI ;开系统中断 IRET DELAY1S: MOV CX,0FFFFH MOV BX,5 L:DEC CX JNZ L DEC BX JNZ L RET CODE ENDS END START

实验二 中断控制电路实验

实验二中断控制电路实验 一. 实验目的 1.学习单片机的中断控制原理。 2.编程中断控制器。 二. 实验环境 硬件环境:奔3以上处理器,512MB以上内存空间 软件环境:windowsXP以上操作系统,emu8086编译环境,Proteus7.5sp3。 三.实验内容与完成情况 1.实验电路图 2.实验原理 8259中断控制器是专为控制优先级中断设计的芯片。它将中断源优先级排队,辩别中断源以及提供中断矢量的电路集于一片中。因此无需附加任何电路,只需对8259进行编程,就可以管理8级中断,并选择优行模式和中断请求方式,即中断结构可以由用户编程来设定。同时,在不需要增加其它电路的情况下,通过多片8259的级联,能构成多达64级的矢量中断系统。 (1) 写初始化命令字 * 写初始化命令字ICW1(A0=0),以确定中断请求信号类型,清除中断屏蔽寄存器,中断优先级排队和确定系统用单片还是多片。

* 写初始化命令字ICW2,以定义中断向量的高五位类型码。 * 写初始化命令字ICW3,以定义主片8259A中断请求线上IR0~IR7有无级联的8259A从片。 第i位=0,表明IRi引脚上无从片 第i位=1,表明IRi引脚上有从片 * 写初始化命令ICW4,用来定义8259A工作时用8085模式,还是8088模式,以及中断服务寄存器复位方式等。

(2) 写控制命令字 * 写操作命令字0CW1,用来设置或清除对中断源的屏蔽。 第i位=0,对应的中断请求IRi开放 第i位=1,对应的中断请求IRi屏蔽 注:OCW1如不写,则在初始化命令写入后,OCW1为全开放状态。 * 操作命令字OCW2,设置优先级是否进行循环、循环方式及中断结束方式。 注:8259A复位时自动设置IR0优先权最高,IR7优先权最低。

单片机实验-单片机并行IO口的应用实验

单片机并行I/O口的应用实验 一、实验目的 1、熟悉Proteus软件和Keil软件的使用方法。 2、熟悉单片机应用电路的设计方法。 3、掌握单片机并行I/O口的直接应用方法。 4、掌握单片机应用程序的设计和调试方法。 二、实验内容或原理 1、利用单片机并行I/O口控制流水灯。 2、利用单片机并行I/O口控制蜂鸣器。 三、设计要求 1、用Proteus软件画出电路原理图。要求在P1.0至P1.7口 线上分别接LED0至LED7八个发光二极管,在P3.0口线上 接一蜂鸣器。 2、编写程序:要求LED0至LED7以秒速率循环右移。 3、编写程序:要求LED0至LED7以秒速率循环左移。 4、编写程序:要求在灯移动的同时,蜂鸣器逐位报警。 四、实验报告要求 1、实验目的和要求。 2、设计要求。 3、实验程序流程框图和程序清单。 4、电路原理图。 5、实验结果 6、实验总结。 7、思考题。 五、思考题 1、编程实现LED0至LED7以十六进制计数规律亮灯? 原理图:

程序清单: /*(1)LED0~LED7以秒速率循环右移 蜂鸣器逐位报警*/ ORG 0000H MAIN:MOV A, #11111110B;赋初值 LOOP:MOV P1,A ;赋值给P1口 CPL P3.0 ;低电平有效 LCALL DELAY ;调用延时电路 SETB P3.0 ;控制蜂鸣器叫的时间间隔 LCALL DELAY RL A LJMP LOOP DELAY:MOV R7,#0FFH LOOP1:MOV R6,#0F4H LOOP2:MOV R5,#02H DJNZ R5,$ ;"$"当前的PC值,R5的内容减1不为零,继续执行该语句 DJNZ R6,LOOP2 DJNZ R7,LOOP1 RET END /*(2)LED0~LED7以十六进制计数规律亮灯*/ ORG 0000H MOV A,#0FFH LOOP: MOV P1,A LCALL DELAY DEC A CJNE A, #0FFH,LOOP MOV A, #0FFH LJMP LOOP DELAY:MOV R7, #0A7H LOOP1:MOV R6, #0ABH LOOP2:MOV R5, #10H DJNZ R5, $ ;"$"当前的PC值。R5的内容减1不为零 DJNZ R6, LOOP2 DJNZ R7, LOOP1 RET END

实验一 8259单级中断控制器实验

实验一8259单级中断控制器实验 一、实验目的 ⒈掌握8259中断控制器的接口方法。 ⒉掌握8259中断控制器的应用编程。 二、实验内容 利用8259实现对外部中断的响应和处理,要求程序对每次中断进行计数,并将计数结果送数码显示。 三、实验接线图 图6-6 四、编程指南 ⑴8259芯片介绍 中断控制器8259A是专为控制优先级中断而设计的芯片。它将中断源优先级排队、辨别中断源以及提供中断矢量的电路集于一片中。因此无需附加任何电路,只需对8259A进行编程,就可以管理8级中断,并选择优先模式和中断请求方式。即中断结构可以由用户编程来设定。同时,在不需要增加其它电路的情况下,通过多片8259A的级联,能构成多达64级的矢量中断系统。

⑵本实验中使用3号中断源IR3,“”插孔和IR3相连,中断方式为边沿触发方式,每拨二次AN开关产生一次中断,满5次中断,显示“8259——good”。如果中断源电平信号不符合规定要求,则自动转到7号中断,显示“Err”。 五、实验程序框图 IR3中断服务程序: IR7中断服务程序:

六、实验步骤 1、按图6-6连好实验线路图。 ⑴ 8259的INT连8088的INTR; ⑵ 8259的INTA连8088的INTA; ⑶“”插孔和8259的3号中断IR3插孔相连,“”端初始为低电平; ⑷ 8259的CS端接FF80H孔; ⑸连JX4→JX17。 2、DJ-8086k软件启动和联机 ⑴启动和联机。双击桌面上‘DJ-8086k’快捷图标,即可运行DJ-8086k软件; ⑵新建文件:单击菜单栏“文件”或工具栏“新建”图标,即会建立一个新的源程序 编辑窗口,此时可在此窗口编辑、输入源程序(注:新建文件扩展名为 .ASM)。 或打开文件F3:单击菜单栏“文件”或工具栏“打开”图标,弹出“打开文件”的对话框,然后选择要装入的源文件,单击“确定”即可装入源文件。; 3、调试程序 ⑴编译装载F9: 打开源文件,依次单击:调试”\“编译装载F9”或工具栏上的编译装载图标,状 态栏会提示正在编译、编译成功、正在装载数据、装载数据结束,几秒钟后便会弹出‘源文件调试窗口’,如编译出错,会提示错误信息,待修改源文件正确后,重新编译装载即可; ⑵连续运行; 单击菜单栏“调试”下的“连续运行”或单击工具栏的连续运行图标,即全速连续运行程序,系统显示8259-1。 ⑶在系统处于命令提示符“P.”状态下,输入12D0,按EXEC键,系统显示8259-1。 ⑷拨动AN开关按钮,按满6次显示good。 七、实验程序清单 CODE SEGMENT ;H8259.ASM ASSUME CS: CODE INTPORT1 EQU 0FF80H INTPORT2 EQU 0FF81H INTQ3 EQU INTREEUP3 INTQ7 EQU INTREEUP7 PA EQU 0FF20H ;字位口 PB EQU 0FF21H ;字形口 PC EQU 0FF22H ;键入口 ORG 12D0H START: JMP START0 BUF DB ?,?,?,?,?,?

DSP实验定时器中断实验精

实验四定时器中断实验 一:实验目的 1.熟悉定时器初始化的步骤; 2.熟悉定时器控制寄存器(TCR)的含义和使用; 3.熟悉定时器的原理和应用。 二:实验内容 本实验要求编写一个简单的定时器中断程序,设置一定的周期控制与XF引脚相连的LCD指示灯。当定时器中断产生时可以观察到LCD周期性闪烁。 三:实验原理 1.定时器 SRESET .C54xx 系列的 DSP 都具有一个或两个预定标的片内定时器,这种定时器是一个倒数定时器,它可以被特定的状态位实现停止、重启动、重设置或禁止。定时器在复位后就处于运行状态,为了降低功耗可以禁止定时器工作。应用中可以用定时器来产生周期性的 CPU 中断或脉冲输出。定时器的功能方框图如图 9.1 所示,其中有一个主计数器( TIM )和一个预定标计数器( PSC )。 TIM 用于重装载周期寄存器 PRD 的值, PSC 用于重装载周期寄存器 TDDR 的值。 图5.1中有一个信号,是在器件复位时,DSP向外围电路(包括定时器)发送的一个信号,此信号将在定时器上产生以下效果:寄存器TIM和PRD装载最大值(0FFFFH);TCR的所有位清0;结果是分频值为0,定时器启动,TCR的FREE 和SOFT为0。 图5.1定时器的功能方框图 定时器实际上是有20bit的周期寄存器。它对CLKOUT信号计数,先将PSC(TCR 中的D6~D9位)减1,直至PSC为0,然后把TDDR(TCR中的低4位)重新装载入PSC,同时将TIM减1,直到TIM减为0。这时CPU发出TINT中断,同时在TOUT引脚输出一个脉冲信号,脉冲宽度与CLKOUT一致,然后将PRD重新装入TIM,重复 TSS 下去直到系统或定时器复位。

使用8259A的单级中断控制实验

实验五使用8259A的单级中断控制实验 一、实验目的 1、掌握中断控制器8259A与微机接口的原理和方法。 2、掌握中断控制器8259A的应用编程。 二、预备知识 1、8259A的内部结构 8259A是专为控制优先级中断而设计的芯片。它将中断源按优先级排队、辨认中断源、提供中断向量的电路集成于一体,只要用软件对它进行编程,就可以管理8 级中断。 如图5-19所示,它由中断请求寄存器(IRR)、优先级分析器、中断服务寄存器(ISR)、中断屏蔽寄存器(IMR)、数据总线缓冲器、读写控制电路和级联缓冲器、比较器组成。 图5-19 中断请求寄存器:寄存所有要求服务的请求IR0~IR7。 中断服务寄存器:寄存正在被服务的中断请求。 中断屏蔽寄存器:存放被屏蔽的中断请求,该寄存器的每一位表示一个中断号,该位为1,屏蔽该号中断,否则开放该号中断。 数据总线缓冲器:是双向三态的,用以连接系统总线和8259A内部总线,通过它可以由CPU对8259A写入状态字和控制字。 读写控制电路:用来接受I/O命令,对初始化命令和操作命令字寄存器进行写入,以确定8259A的工作方式和控制方式。 级联缓冲器/比较器:用于多片8259A的连接,能构成多达64级的矢量中断系统。 2、8259A编程及初始化 (1) 写初始化命令字

优先级排队和确定系统用单片还是多片。 * 写初始化命令字ICW2,以定义中断向量的高五位类型码。 * 写初始化命令字ICW3,以定义主片8259A中断请求线上IR0~IR7有无级联的8259A从片。 第i位=0,表明IRi引脚上无从片 第i位=1,表明IRi引脚上有从片 * 写初始化命令ICW4,用来定义8259A工作时用8085模式,还是8088模式,以及中断

8259中断控制实验报告

8259中断控制实验 一.实验目的 1. 掌握8259 中断控制器的工作原理。 2. 掌握系统总线上IR1,IR2 中断请求的应用编程方法。 二.实验设备 IA-32 架构的微机系统及应用教学平台一套。 三.实验原理 3.1 中断控制器8259简介 中断控制器8259 是Intel公司专为控制优先级中断而设计开发的芯片。它将中断源优先级排队、辨别中断源以及提供中断矢量的电路集于一片中,因此无需附加任何电路,只需对8259 进行编程,就可以管理8 级中断,并选择优先模式和中断请求方式,即中断结构可以由用户编程来设定。同时,在不需增加其他电路的情况下,通过多片8259 的级连,能构成多达64 级的矢量中断系统。它的管理功能包括:1)记录各级中断源请求,2)判别优先级,确定是否响应和响应哪一级中断,3)响应中断时,向CPU 传送中断类型号。8259 的内部结构和引脚如图1 所示。 图 1 8259 内部结构和引脚图 8259 的命令共有7 个,一类是初始化命令字,另一类是操作命令。8259 的编程就是根据应用需要

将初始化命令字ICW1-ICW4 和操作命令字OCW1- OCW3 分别写入初始化命令寄存器组和操作命令寄存器组。ICW1-ICW4 各命令字格式如图2所示,OCW1-OCW3各命令字格式如图3 所示,其中OCW1 用于设置中断屏蔽操作字,OCW2 用于设置优先级循环方式和中断结束方式的操作命令字,OCW3 用于设置和撤销特殊屏蔽方式、设置中断查询方式以及设置对8259 内部寄存器的读出命令。 图 2(a) ICW1格式 图 2(b) ICW2格式 图 2(c) ICW3格式 图 2(d) ICW4格式

IO口实验

IO口实验: 参见基础实验1、2、3.(课件第2章单片机结构.doc) 1.输入输出综合实验(查询方式,1S由软件延时控制):要求:每一次按键,蜂鸣器响一次。同时要求LED1~LED8循环点亮。 1)初始状态或按下KEY1键(松开后保持),只点亮一只LED 灯,每隔1秒右循环显示,移到LED8后回到LED1。 LED1LED8 ………………………… LED1LED8 2)按下KEY2键(松开后保持),同时点亮相邻的两只LED 灯,每隔1秒右循环显示,移到LED8后回到LED1。 LED1LED8 3)按下KEY2键(松开后保持),同时点亮间隔的两只LED 灯,每隔1秒右循环显示,移到LED8后回到LED1。 LED1LED8

4)按下KEY2键(松开后保持),点亮一只LED灯,每隔1 秒多点亮一只LED灯,直到LED灯全亮,然后回到一只LED点亮状态循环。 LED1LED8 LED1LED8 ………………………… LED1LED8 5)按下KEY3键(松开后保持),同时点亮相邻的两只LED 灯,隔1秒后再次增加点亮相邻的两只LED灯,直到全亮后再隔1秒点亮123456,后又1234,直到全灭后重新循环。 LED1LED8 LED1LED8 ………………………… LED1LED8 ………………………… LED1LED8 6)按下KEY键(松开后保持),开始点亮LED1灯,隔1秒 后点亮23,再隔1秒点亮345,隔1秒后5678,隔1秒后8,隔1秒后76 ,隔1秒后654,隔1秒后4321,隔

1秒后1重复。 LED1LED8 LED1LED8 LED1LED8 ………………………… LED1LED8 7)按下KEY3键(松开后保持),开始点亮LED1、LED8灯, 隔1秒后点亮12、78,再隔1秒点亮123、678,直到全亮后再隔1秒点亮123、678,后又12、78,直到点亮LED1、LED8灯后重新循环。 LED8 LED1LED8 ………………………… LED1LED8 LED8 ………………………… LED8

相关主题
文本预览
相关文档 最新文档