实验报告6 中断及服务程序设计

合集下载

DSP中断实验报告

DSP中断实验报告

DSP实验大作业班级:020851姓名:徐宏立学号:02085086一.实验目的:•了解和熟悉中断的原理•能够保护中断程序下条指令的地址,能够转到中断请求所相应的处理程序,能够回到原来的程序。

•熟悉中断向量的访问。

•熟悉用户模式,仿真模式和监控模式的相互转换过程。

•熟悉FIR_DIR,FIR_FLAG_S,FIO_FLAG_C,FIO_EDGE,FIO_POLAR,FIO_MASKA_S,SIC_IMASK,IMASK的设置。

•熟悉计时器的配置二.实验任务•使用外部中断实现LED闪烁频率的改变•实现嵌套中断三.实验分析:1.中断的基本认识处理器的事件控制器处理所有的同步和异步事件,并管理5种类型的事件:仿真、复位、非屏蔽中断(NMI)、异常和中断(11种)。

中断:一种改变处理器正常指令流的异步事件。

处理器在正常执行程序过程中,由于内部/外部事件的触发或程序的预先安排,引起处理器暂时中断当前正在运行的程序,而去执行内部/外部事件或程序预先安排事件的服务子程序。

等中断服务子程序执行完毕后,处理器再返回到暂时中断程序处继续执行原来的程序。

事件系统有优先级而且可嵌套,优先级高的任务可以占用优先级低的任务的资源。

Blackfin DSP采用2级事件控制机制,一起控制所有系统中断并管理它们的优先级1)系统中断控制器(SIC)2)内核事件控制器(CEC)SIC提供多个外设中断源和内核通用中断输入之间的映射。

某个中断可以在SIC中屏蔽掉CEC支持9个通用中断(IVG7~IVG15)。

通常选用优先级最低的两个中断IVG14和IVG15作为软件中断事件列表如下:系统中断过程:中断是由能够产生中断的外设产生的,系统中断过程简要概述为:当一个中断产生时:①SIC_IWR检查DSP内核是否从一个空闲状态中被中断唤醒②SIC_ISR记录中断请求,并且跟踪被激活但未被服务的系统中断③SIC_IMASK可以在系统级上屏蔽、使能外设的中断。

单片机外部中断实验报告

单片机外部中断实验报告

实验三外部中断实验报告班级:学号:姓名:教师:一、实验目的1、掌握单片机外部中断的原理及过程。

2、掌握单片机外部中断程序的设计方法。

3、掌握单片机外部中断时中断方式的选择方法。

二、实验内容如下图所示,P3.2设为输入,P2设为输出位,连有8个发光二极管D1~D8。

每当发生外部中断时,发光二极管以向下流水灯的方式点亮。

分别选择边沿触发外部中断放是和电平触发外部中断方式两种。

三、编程提示1、P3口是8位准双向口,具有双重功能:第一功能和P1口一样,作为输入输出口,也有字节操作和位操作两种方式,每一位可分别定义为输入或输出;第二功能定义如下:P3.0 RXD 串行输入口P3.1 TXD 串行输出口P3.2 INT0 外部中断0请求输入线P3.3 INT1 外部中断1请求输入线P3.4 T0定时器/计数器T0外部计数器脉冲输入线P3.5 T1定时器/计数器T1外部计数器脉冲输入线P3.6 WR外部数据存贮器写脉冲输出线P3.7 RD外部数据存贮器读脉冲输出线2、各中断服务程序入口地址:外部中断0 03H定时器/计数器T1溢出中断0BH外部中断1 13H定时器/计数器1BH串行口中断23H3、外部中断的产生条件中断允许寄存器IE:EA ES ET1 EX1 ET0 EX0(1)外部中断源允许中断(中断0:EX0=1;中断1:EX1=1)。

(2)CPU开中断(EA=1)。

(3)外部中断方式CPU发出中断申请。

4、外部中断方式的选择控制TCON:TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0IT0是选择文字则外部中断0请求(INT0)边沿触发方式或电平触发方式的控制位。

前一方式IT0=1,后一方式IT0=0。

IT1是选择外部中断1请求(INT1)为边沿触发方式或电平触发方式的控制位。

前一方式IT1=1,后一方式IT1=0。

当8031复位后,TCON被清0。

5、外部中断电路负脉冲作为中断请求信号时,为了保证中断的唯一性,必须加上消除开关抖动的电路或者去抖动延时程序,保证每次只产生单脉冲,构成边沿触发方式外部中断电路。

C语言测控系统程序设计实验报告

C语言测控系统程序设计实验报告

C语⾔测控系统程序设计实验报告Harbin Institute of TechnologyC语⾔在测量与控制中的应⽤实验报告专业:⾃动化班级:1104104学号:姓名:设计时间:2014/3/29实验⼀定时中断程序设计实验的⽬的:1.掌握定时器/计数器8254的⼯作原理与编程。

2.熟悉中断控制器8259A的⼯作原理与使⽤⽅法。

3.掌握硬件中断程序设计的原理与编程⽅法。

实验条件:PC机,WinXP操作系统,Turbo C 2.0程序设计要求:程序运⾏⾸先提⽰输⼊中断服务的时间间隔T和中断服务次数N,正确输⼊后,回车,则每间隔指定的时间T会在屏幕上显⽰⼀些字符,显⽰N次后,则不再显⽰,如果N=0,则会⽆限显⽰下去,直到在键盘上按下指定的按键,才停⽌显⽰。

停⽌显⽰后,按任意键程序结束运⾏。

1.时间间隔T为以毫秒为单位浮点数,可处理范围⾄少要0.001毫秒到5000毫秒。

2.屏幕上的显⽰信息要有助于验证程序运⾏结果的正确。

3.输⼊错误信息要有提⽰,并允许重新输⼊。

4.编程时要尽量把具有独⽴功能的代码写成⼦程序。

5.注意变量的命名要清晰,代码的注释要丰富。

6.后⾯的三个实验均要在此程序基础上编程、添加代码,注意程序的结构。

设计思路1.如何实现任意时间间隔?(附程序流程图)时间间隔的选取是根据⽤户的需要来进⾏的,因此程序⾸先应该是要求⽤户输⼊时间间隔T(ms),设定了8254的通道0定时器的计数初值,再通过将计数初值先写低8位后写⾼8位的⽅式来初始化通道0。

代码实现为:通过CalIPara()函数来计算计数初值的⾼低8位:void CalIPara(double DTimeI,int *ILongCount,unsigned char *CL8,unsigned char *CH8){double TotalCounter=DTimeI*1193;int Residue;ILongCount[0]=TotalCounter/65536;Residue=TotalCounter-65536*ILongCount[0];CH8[0]=Residue>>8;CL8[0]=Residue&0x0FF;}通过SetupTimerInterrupt()函数来对8254的通道0定时器的初始化:void SetupTimerInterrupt(void){disable();oldint8=getvect(0x08);outportb(0x43,0x36);if(LongCount==0){outportb(0x40,L8);outportb(0x40,H8);}else{outportb(0x40,0x00);outportb(0x40,0x00);}setvect(0x08,myint8);enable();}这样,每隔T(ms)时间,8259A的中断请求信号引起中断服务的执⾏。

单片机实验报告(1)

单片机实验报告(1)

实验二、中断实验――中断优先级控制及中断保护一、实验目的1、掌握单片机中断机制。

2、熟悉中断的应用和编程。

二、实验设备1、 仿真器;2、 单片机最小系统;3、 发光二极管阵列显示模块;4、 独立式键盘模块。

三、实验要求连接单片机最小系统和发光二极管阵列的电路并编写程序,学习单片机中断机制,及中断优先级和中断保护的方法:使用独立式按键1连接0INT (P3.2),按键2连接1INT (P3.3),在平时状态下,发光二极管行以200ms 的时间间隔,依次点亮。

1键按下时0INT 中断处理程序点亮P0.0对应的发光管2秒钟,其他发光管熄灭;2键按下时P0.1对应发光管点亮2秒,其他发光管熄灭。

四、实验原理通常一个微处理器读取外围设备(如键盘等)的输入信息的方法有轮询(Polling)及中断(Interrupt)两种。

轮询的方法是CPU 依照某种既定法则,依序询问每一外围设备I /O 是否需要服务,此种方法CPU 需花费一些时间来做询问服务,当I /O 设备增加时,询问服务时间也相对增加,势必浪费许多CPU 时间,降低整体运行的效率。

使用中断是一个较好的解决方法。

使用中断使系统对外部设备的请求响应更加灵敏,并且不需要占用CPU 的时间进行轮询。

但是,当使用中断,特别是有多个中断嵌套时要特别注意内存单元的保护。

1 80C51中断结构当中断发生后,程序将跳至对应中断入口地址去执行中断子程序,或称中断服务程序(Interrupt Service Routine),这些特殊的地址称为中断向量,例如当80C51外部中断INTl 发生时,会暂停主程序的执行,跳至地址0013H 去执行中断服务程序,直到RETI 指令后,才返回主程序继续执行。

MCS-51系列的程序内存中有7个矢量地址,叙述如下:(1)00H 复位当第9脚RESET 为高电平,CPU 会跳至地址00H 处开始执行程序,亦即程序一定要从地址00H开始写起。

DSP外部中断实验报告

DSP外部中断实验报告

电子信息工程系实验报告课程名称:现代DSP技术成绩:实验项目名称:实验四外部中断实验实验时间:2011-11-22指导教师(签名):班级:&^^%%$ 姓名:*&% 学号:*****一、实验目的1、掌握中断技术,学会对外部中断的处理方法;2、掌握中断对程序流程的控制,理解DSP对中断的响应时序。

二、实验设备计算机,CCS 2.0版软件,DSP仿真器,实验箱。

三、实验原理1. 在DSP中,中断是由硬件或软件产生的驱动信号,要求DSP暂停执行的程序,转到中断服务子程序的执行。

2. 对于中断程序的设计,一般采用以下步骤:(1)将中断向量指针IPTR指向中断矢量所在的段,在段中偏移量为中断序号四倍的地指出写一个跳转到中断服务子程序的跳转指令。

(2)置位ST1中的INTM位,禁止中断,然后清除所以未执行完的中断。

(3)打开相应的中断,复位ST1中的INTM位,使能中断。

(4)写一段等待程序(一般用无效的死循环),等待中断事件的发生。

四、实验步骤与内容1、拨码开关:SW2SW2备注1 2 3 4 码位ON ON OFF ON 单脉冲产生的中断给CPU2的中断INT22、关K9拨到右边,即仿真器选择连接右边的CPU:CPU2;启动CCS 2.0,在Project→Open菜单打开exp05_cpu2目录下面的工程文件“exp05.pjt”。

用下拉菜单中Project-->Open,打开“exp05_cpu2\ exp05.pjt”,双击“Source”,可查看源程序。

在File→Load Program菜单下加载exp05_cpu2\debug目录下的exp05.out文件。

a)运行实验程序;b)每按一次“单脉冲输出”按键,观察LED1~LED8灯变化;每按一次“单脉冲输出”按键则显示灭亮灭亮灭亮灭亮。

如下图所示c)单击“Halt”暂停程序运行,反复按开关“单脉冲输出”,观察LED1~LED8灯变化。

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

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

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

单片机中断实验实训报告

单片机中断实验实训报告

一、实验背景随着电子技术的飞速发展,单片机因其体积小、成本低、功能强大等优点,在各个领域得到了广泛应用。

中断技术是单片机设计中非常重要的一部分,它允许单片机在执行程序的过程中,能够及时响应外部事件,从而提高系统的实时性和效率。

本实训旨在通过实验,加深对单片机中断系统的理解,掌握中断系统的使用方法,并学会在实际应用中灵活运用中断技术。

二、实验目的1. 熟悉单片机中断系统的基本概念和原理。

2. 掌握中断源、中断优先级、中断服务程序等基本概念。

3. 学会使用单片机的中断系统实现实时响应外部事件。

4. 培养动手实践能力和问题解决能力。

三、实验器材1. 单片机实验板2. 示波器3. 电源4. 连接线5. 逻辑分析仪(可选)四、实验内容1. 实验一:外部中断实验(1)实验目的:验证外部中断功能,实现按键控制LED灯的点亮和熄灭。

(2)实验步骤:a. 将外部中断0(INT0)引脚连接到按键,按键按下时产生低电平信号。

b. 编写中断服务程序,实现按键按下时点亮LED灯,按键释放时熄灭LED灯。

c. 编译程序,下载到单片机实验板上。

d. 测试实验效果,观察LED灯的点亮和熄灭情况。

2. 实验二:定时器中断实验(1)实验目的:验证定时器中断功能,实现LED灯的定时闪烁。

(2)实验步骤:a. 配置定时器T0为模式1,设置定时器初值,使定时器溢出时间为1秒。

b. 开启定时器中断,编写定时器中断服务程序,实现LED灯的定时闪烁。

c. 编译程序,下载到单片机实验板上。

d. 测试实验效果,观察LED灯的闪烁情况。

3. 实验三:中断嵌套实验(1)实验目的:验证中断嵌套功能,实现定时器中断和外部中断的嵌套。

(2)实验步骤:a. 配置定时器T0为模式1,设置定时器初值,使定时器溢出时间为1秒。

b. 开启定时器中断和外部中断,设置中断优先级。

c. 编写定时器中断服务程序和外部中断服务程序,实现中断嵌套。

d. 编译程序,下载到单片机实验板上。

微机原理实验-外部中断实验

微机原理实验-外部中断实验

下面是赠送的几篇网络励志文章需要的便宜可以好好阅读下,不需要的朋友可以下载后编辑删除!!谢谢!!出路出路,走出去才有路“出路出路,走出去才有路。

”这是我妈常说的一句话,每当我面临困难及有畏难情绪的时候,我妈就用这句话来鼓励我。

一定有很多人想说:“这还在北京混个什么劲儿啊!”但他每天都乐呵呵的,就算把快递送错了也乐呵呵的。

某天,他突然递给我一堆其他公司的快递单跟我说:“我开了家快递公司,你看得上我就用我家的吧。

”我有点惊愕,有一种“哎呦喂,张老板好,今天还能三蹦子顺我吗”的感慨。

之后我却很少见他来,我以为是他孩子出生了休假去了。

再然后,我就只能见到单子见不到他了。

某天,我问起他们公司的快递员,小伙子说老板去上海了,在上海开了家新公司。

我很杞人忧天地问他:“那上海的市场不激烈吗?新快递怎么驻足啊!”小伙子嘿嘿一笑说:“我们老板肯定有办法呗!他都过去好几个月了,据说干得很不错呢!”“那老婆孩子呢?孩子不是刚生还很小吗?”“过去了,一起去上海了!”那个瞬间,我回头看了一眼办公室里坐着的各种愁眉苦脸的同事,并且举起手机黑屏幕照了一下我自己的脸,一股“人生已经如此的艰难,有些事情就不要拆穿”的气息冉冉升起。

并不是说都跳槽出去开公司才厉害,在公司瞪着眼睛看屏幕就是没发展,我是想说,只有勇气才能让自己作出改变。

《拒绝平庸》里有一句话:很多时候我们为什么嫉妒别人的成功?正是因为知道做成一件事不容易又不愿意去做,然后又对自己的懒惰和无能产生愤怒,只能靠嫉妒和诋毁来平衡。

其实走出去不一定非要走到什么地方去,而是更强调改变自己不满意的现状。

有人问我那你常说要坚持,天天跑出去怎么坚持?其实要坚持的是一种信仰,而不是一个地方,如果你觉得一个地方让你活得特别难受,工作得特别憋屈,除了吐槽和压抑没别的想法,那就要考虑走出去。

就像歌词里说的:“梦想失败了,那就换一个梦想。

”不能说外面都是大好前程,但肯定你会认识新的人,有新的机会,甚至改头换面重新做人。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告6中断及服务程序设计
姓名:学号:
学院:光电与信息工程学院班级:网络工程2班
实验目的
1.掌握单片机中断系统的工作原理
2.掌握单片机中断优先级的概念
实验环境
1.PC机1台
2. wave6000
内容与步骤
以定时器0、1为例,设计中断服务程序,及优先级别控制。
过程分析
#include<reg51.h>
结果总结
总结:
这次实验是程序中断服务,采用定时器0,定时器1,其工作方式都采用方式1,为了体现优先级,主程序设置定时器1的优先级最大,但默认未设置的情况下则是定时器0最大。在编写程序的时候为了上机操作可以观察到明显的变化,借助外接LED灯。为了能交替的产生不同类型的中断,将优先级高的中断时间设置得较长一些,这样就可以使优先级低的中断可以插进来执行。实验初次运行时执行不下去,后来在两个中断程序中都加了断点,才可以执行下去。在开启了定时器查看后,很明显的观察到了2个定时器中断程序的交替进行。实验中外接LED来观察更加明显的效果,所以多了延迟函数delay()。在之前的基础上还增加了变量X0,X1表示定时器中断后中断服务函数的运行次数,这样更加明显的看到了中断嵌套的出现。
TL0=35536%256; //30ms中断一次
TH0=35536/256;
for(a=0;a<8;a++) //重复执行8次
{
P1=0; //点亮所有灯的LED
delay();
P1=0xff; //熄灭所有的LED
delay();
}
errupt 3 //先点亮一个,后点亮两个,……直到点亮八个,又重新开始
进行跟踪,程序开始出现中断,进入定时器1(优先级决定)
观察光标的执行情况。
定时器1设置50ms中断一次,定时器0设置30ms中断一次.
当程序在执行过程中,虽然定时器1的优先级高,但由于中断时间较长,所以会存在定时器0的运行阶段,如图。
接下来,定时器0运行一段时间后,又会再一次轮到定时器1工作
如此重复下去,定时器1可以中断正在执行的定时器0,前提是优先级高的中断时间要长,否则很难看出效果。不然总是会有一个定时器一直在执行中断。可以根据实验中外接LED来观察更加明显的效果。
#include<intrins.h>
unsigned char x=0xfe;
unsigned int x0=0;//记录计时器0中断后中断服务执行的次数
unsigned int x1=0;//记录计时器1中断后中断服务执行的次数
sbit p1=P1;
void delay() //延迟程序
{
unsigned int i,j;
for(i=0;i<10;i++)
for(j=0;j<10;j++);
}
void main()
{
TMOD=0x11;
PT1=1; //定时器1优先
PT0=0;
EA=1;
ET0=1;
ET1=1;
TR0=1;
TR1=1;
while(1);
}
void time0() interrupt 1
{
unsigned char a;
{
unsigned char b;
TL1=15536%256; //50ms中断一次
TH1=15536/256;
delay();
P1=x;
for(b=0;b<8;b++)
{
x=x<<1;
P1=x;
}
x=0xfe;
delay();
x1++;
}
截图分析:
在定时器0和定时器1中设置两个中断点。
开启中断器查看,事先将TF0,TF1打钩
思考题:1.外部中断0和外部中断1的处理方法。
答:外部中断0(!INT0)、外部中断1(!INT1)属于同级中断源,在C51单片机的引脚是P3.2和P3.3,分电平触发和边沿触发。当IT0=0(IT1=0)时,!INT0(!INT1)为低电平触发方式,cpu在每个机器周期的S5P2期间对!INT0(!INT1)采样。一旦在P2.3(P2.3)引脚检测到低电平时,则认为有中断请求,使IE0(IE1)置‘1’,向cpu申请中断;而当IT0=1(IT1=1)时,!INT0(!INT1)为下降沿触发方式,CPU在每个机器周期的S5P2期间采样!INT0(!INT1),当在前一个周期检测到高电平,后一个周期检测到低电平时,则认为有中断请求,使IE0(IE1)置‘1,’向CPU申请中断。在边沿触发方式中,为保证CPU在两个机器周期内检测到由高变低的负跳变,高电平与低电平的持续时间不得少于1个机器周期的时间。外部中断0的优先级高于外部中断1。
执行全速运行,观察中断服务程序执行情况。
X1/X0这个比例不是3/5,原因是实验中外接LED来观察更加明显的效果,所以多了延迟函数delay()。之前的实验报告的延迟时间设置得太长,导致优先级高的中断一直处于抢占地位。所以这次的延迟时间稍微修改了一下。根据中断服务程序的执行时间不同,这个比例也会不同。
附录
---------------------------以下内容老师为老师填写-------------------
老师评阅:
成绩:
相关文档
最新文档