实验报告6 中断及服务程序设计
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语⾔测控系统程序设计实验报告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、掌握单片机中断机制。
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技术成绩:实验项目名称:实验四外部中断实验实验时间: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. 编译程序,下载到单片机实验板上。
微机原理实验-外部中断实验
下面是赠送的几篇网络励志文章需要的便宜可以好好阅读下,不需要的朋友可以下载后编辑删除!!谢谢!!出路出路,走出去才有路“出路出路,走出去才有路。
”这是我妈常说的一句话,每当我面临困难及有畏难情绪的时候,我妈就用这句话来鼓励我。
一定有很多人想说:“这还在北京混个什么劲儿啊!”但他每天都乐呵呵的,就算把快递送错了也乐呵呵的。
某天,他突然递给我一堆其他公司的快递单跟我说:“我开了家快递公司,你看得上我就用我家的吧。
”我有点惊愕,有一种“哎呦喂,张老板好,今天还能三蹦子顺我吗”的感慨。
之后我却很少见他来,我以为是他孩子出生了休假去了。
再然后,我就只能见到单子见不到他了。
某天,我问起他们公司的快递员,小伙子说老板去上海了,在上海开了家新公司。
我很杞人忧天地问他:“那上海的市场不激烈吗?新快递怎么驻足啊!”小伙子嘿嘿一笑说:“我们老板肯定有办法呗!他都过去好几个月了,据说干得很不错呢!”“那老婆孩子呢?孩子不是刚生还很小吗?”“过去了,一起去上海了!”那个瞬间,我回头看了一眼办公室里坐着的各种愁眉苦脸的同事,并且举起手机黑屏幕照了一下我自己的脸,一股“人生已经如此的艰难,有些事情就不要拆穿”的气息冉冉升起。
并不是说都跳槽出去开公司才厉害,在公司瞪着眼睛看屏幕就是没发展,我是想说,只有勇气才能让自己作出改变。
《拒绝平庸》里有一句话:很多时候我们为什么嫉妒别人的成功?正是因为知道做成一件事不容易又不愿意去做,然后又对自己的懒惰和无能产生愤怒,只能靠嫉妒和诋毁来平衡。
其实走出去不一定非要走到什么地方去,而是更强调改变自己不满意的现状。
有人问我那你常说要坚持,天天跑出去怎么坚持?其实要坚持的是一种信仰,而不是一个地方,如果你觉得一个地方让你活得特别难受,工作得特别憋屈,除了吐槽和压抑没别的想法,那就要考虑走出去。
就像歌词里说的:“梦想失败了,那就换一个梦想。
”不能说外面都是大好前程,但肯定你会认识新的人,有新的机会,甚至改头换面重新做人。
单片机c语言程序设计---单片机实验报告
单片机c语言程序设计---单片机实验报告实验目的:1.掌握单片机的中断的原理、中断的设置,掌握中断的处理及应用2.掌握单片机的定时器/计数器的工作原理和工作方式,学会使用定时器/计数器实验内容:一.定时器/计数器应用程序设计实验1.计数功能:用定时器1方式2计数,每计数满100次,将P1.0取反。
(在仿真时,为方便观察现象,将TL1和TH1赋初值为0xfd,每按下按键一次计数器加1,这样3次就能看到仿真结果。
)分析:外部计数信号由T1(P3.5)引脚输入,每跳变一次计数器加1,由程序查询TF1。
方式2有自动重装初值的功能,初始化后不必再置初值。
将T1设为定时方式2,GATE=0,C/T=1,M1M0=10,T0不使用,可为任意方式,只要不使其进入方式3即可,一般取0。
TMOD=60H。
定时器初值为X=82-100=156=9CH,TH1=TL1=9CH。
程序:#include<REGX51.H>void main(){P1_0=0;TMOD=0x60;TH1=0xFD;TL1=0xFD;ET1=1;EA=1;TR1=1;while(1){}}void timer1_Routine()interrupt3{P1_0=~P1_0;}实验2.中断定时使用定时器定时,每隔10s使与P0、P1、P2和P3端口连接的发光二极管闪烁10次,设P0、P1、P2和P3端口低电平灯亮,反之灯灭。
分析:中断源T0入口地址000BH;当T0溢出时,TF0为1发出中断申请,条件满足CPU响应,进入中断处理程序。
主程序中要进行中断设置和定时器初始化,中断服务程序中安排灯闪烁;TL0的初值为0xB0,TH0的初值为0x3C,执行200次,则完成10s定时。
实验要求:完成计数实验和中断计数实验。
具体包括绘制仿真电路图、编写c源程序、进行仿真并观察仿真结果,需要保存原理图截图,保存c源程序,对仿真结果进行总结。
程序:#include<REGX51.H>#include"Delay.h"int i;int j=0;void main(){ P1=0; P2=0;P3=0; P0=0; TMOD=0x01;TH0=0x3C;TL0=0xB0;ET0=1;EA=1;TR0=1;while(1) {}}void timer0_Routine()interrupt1 {TH0=0x3C;TL0=0xB0;j++;if(j>=150){ j=0; for(i=0;i<20;i++){P1=~P1;P2=~P2;P3=~P3;P0=~P0;Delay(200); } }}实验分析:心得体会:。
流水灯的中断及调试实习报告
流水灯中断及调试实习报告一、实习目的本次实习的主要目的是学习并掌握单片机中断系统的工作原理,以及如何在中断服务程序中实现流水灯功能。
通过本次实习,要求学生能够熟练使用单片机开发工具,编写相应的程序,调试并验证中断系统在流水灯应用中的正确性。
二、实习内容1. 了解并分析流水灯中断系统的原理和实现方法。
2. 设计并编写流水灯中断服务程序。
3. 调试并验证程序的正确性。
三、实习过程1. 了解流水灯中断系统原理流水灯中断系统主要由单片机、LED灯、按键等组成。
当按键被按下时,触发中断请求,单片机响应中断,执行中断服务程序,实现LED灯的流水灯效果。
2. 设计流水灯中断服务程序本次实习采用51单片机作为主控制器,使用C语言编写程序。
首先,配置单片机的I/O口,使其能够驱动LED灯。
然后,编写中断服务程序,实现LED灯的流水灯效果。
具体步骤如下:(1)初始化单片机的I/O口,配置为输出模式。
(2)初始化定时器,设置中断周期。
(3)进入主循环,等待中断请求。
(4)当按键被按下时,触发中断请求,进入中断服务程序。
(5)在中断服务程序中,根据设定的流水灯模式,切换LED灯的状态。
(6)返回主循环,继续等待中断请求。
3. 调试并验证程序的正确性使用调试工具对编写好的程序进行编译、下载,并观察实验现象。
在实验过程中,不断调整程序代码,优化中断服务程序,确保流水灯效果的正确性。
四、实习总结通过本次实习,我深入了解了流水灯中断系统的原理和实现方法,掌握了单片机中断系统的工作过程,以及如何在程序中实现中断服务。
在调试过程中,我学会了如何通过观察实验现象,查找并修复程序中的错误。
总之,本次实习使我受益匪浅,不仅提高了我的编程能力,还培养了我遇到问题、分析问题、解决问题的能力。
在今后的学习和工作中,我会继续努力,不断提高自己的实践能力,为我国电子技术领域的发展贡献自己的力量。
单片机实验报告 中断
单片机实验报告中断单片机实验报告:中断引言:单片机是一种集成电路,具有微处理器、存储器和输入输出接口等功能。
在嵌入式系统中,单片机常常被用于控制和管理各种设备。
而中断是单片机中一种重要的机制,它可以在特定条件下打断程序的正常执行,执行一段特定的代码,然后返回到原来的程序中。
本文将介绍中断的概念、分类以及在单片机实验中的应用。
一、中断的概念中断是一种硬件或软件生成的信号,用于打断正在执行的程序。
当中断信号发生时,单片机会立即停止当前的任务,转而执行中断服务程序。
中断可以提高程序的响应速度和效率,使单片机能够及时处理紧急事件。
二、中断的分类中断可以分为外部中断和内部中断两种类型。
1. 外部中断外部中断是由外部设备产生的中断信号。
当外部设备需要单片机的处理时,会发送中断请求信号。
单片机在接收到中断请求后,会立即停止当前任务,转而执行与中断相关的程序。
外部中断常用于处理外部设备的输入信号,如按键、传感器等。
2. 内部中断内部中断是由单片机内部产生的中断信号。
内部中断通常由单片机的一些特定事件触发,如定时器溢出、串口接收完成等。
内部中断常用于周期性的任务处理和数据通信等。
三、中断的实验应用在单片机实验中,中断被广泛应用于各种场景,下面将介绍两个实验应用的例子。
1. 外部中断实验假设我们需要设计一个按键控制LED灯的实验。
当按下按键时,LED灯亮起;当松开按键时,LED灯熄灭。
这个实验可以使用外部中断来实现。
首先,我们需要将按键连接到单片机的外部中断引脚。
当按键按下时,外部中断引脚会产生一个中断请求信号。
单片机接收到中断请求后,会执行相应的中断服务程序。
在中断服务程序中,我们可以控制LED灯的亮灭。
通过这个实验,我们可以学习到如何使用外部中断来处理外部设备的输入信号,并且了解到中断的响应速度和效率优势。
2. 内部中断实验假设我们需要设计一个定时器实验,要求每隔一段时间点亮一次LED灯。
这个实验可以使用内部中断来实现。
中断程序实验报告
中断程序实验报告中断程序实验报告一、实验目的本次实验的目的是通过编写中断程序,了解中断的概念、原理和应用。
通过实践操作,掌握中断程序的编写和调试技巧,进一步提高对计算机系统的理解和应用能力。
二、实验原理中断是计算机系统中一种重要的机制,它能够在程序执行过程中,根据设定的条件自动中断当前正在执行的程序,转而执行相应的中断服务程序。
这种机制能够提高计算机系统的效率和灵活性,使得计算机能够及时响应外部设备的请求和处理各种异常情况。
中断程序是一种特殊的程序,它通常由硬件设备或操作系统触发,用于处理特定的事件或异常情况。
中断程序的编写需要遵循一定的规范和流程,包括中断向量表的设置、中断服务程序的编写和中断处理的过程等。
三、实验步骤1. 确定实验环境:选择合适的开发平台和编程语言,如使用汇编语言进行实验。
2. 设置中断向量表:根据实验需求,确定中断向量表的大小和地址,并进行相应的设置。
3. 编写中断服务程序:根据实验要求,编写相应的中断服务程序,包括中断处理和相关的操作。
4. 编写主程序:编写主程序,用于模拟中断的触发和测试中断程序的功能。
5. 进行编译和调试:将编写好的程序进行编译和调试,确保程序的正确性和可靠性。
6. 运行实验:在实验环境中运行编写好的程序,观察和记录实验结果。
7. 分析实验结果:根据实验结果,对中断程序的功能和效果进行分析和评估。
四、实验结果与分析通过实验,我们成功编写了一个简单的中断程序,并进行了测试和分析。
在实验过程中,我们模拟了一个外部设备的中断请求,并观察了中断程序的执行情况。
实验结果显示,当外部设备发出中断请求时,中断程序能够及时响应,并执行相应的中断服务程序。
中断服务程序根据中断类型和相关参数,进行相应的处理和操作,最后返回到主程序继续执行。
这种机制能够有效提高计算机系统的响应速度和处理能力,增强了系统的稳定性和可靠性。
通过对实验结果的分析,我们发现中断程序设计的合理性对系统性能和稳定性有着重要的影响。
外中断实验实验报告
一、实验目的1. 理解中断的概念和作用。
2. 掌握中断的实现方法。
3. 学习中断优先级的设置。
4. 掌握中断服务程序的设计。
二、实验环境1. 实验平台:计算机实验室2. 实验设备:计算机、实验箱、示波器、万用表等3. 实验软件:C语言编程软件三、实验原理1. 中断:中断是指计算机在执行程序的过程中,由于某个事件的发生而暂时停止当前程序的执行,转而执行处理该事件的程序。
中断事件可以是硬件设备请求服务,也可以是软件程序请求处理。
2. 中断优先级:中断优先级是指多个中断同时发生时,系统优先处理哪个中断。
中断优先级设置合理可以保证系统稳定运行。
3. 中断服务程序:中断服务程序是指处理中断事件的程序,它通常由中断向量表中的中断处理函数组成。
四、实验步骤1. 设计实验程序,实现外中断功能。
2. 编写中断服务程序,处理中断事件。
3. 设置中断优先级。
4. 编译、下载程序到实验设备。
5. 进行实验,观察实验现象。
五、实验内容1. 实现外中断功能(1)编写中断初始化程序,配置中断控制器,设置中断向量表。
(2)编写中断服务程序,处理中断事件。
(3)编写主程序,触发中断事件。
2. 设置中断优先级(1)根据实验需求,设置中断优先级。
(2)编写中断优先级控制程序,实现中断优先级设置。
3. 编译、下载程序(1)使用C语言编程软件编译实验程序。
(2)将编译后的程序下载到实验设备。
4. 进行实验(1)打开实验设备,启动实验程序。
(2)观察实验现象,验证中断功能、中断优先级设置等。
六、实验结果与分析1. 实验结果实验成功实现了外中断功能,中断服务程序能够正确处理中断事件。
中断优先级设置合理,系统运行稳定。
2. 实验分析(1)中断初始化程序正确配置了中断控制器,设置了中断向量表,为中断服务程序的执行提供了基础。
(2)中断服务程序能够正确处理中断事件,保证了系统的正常运行。
(3)中断优先级设置合理,确保了关键中断事件能够优先得到处理。
国家开放大学-传感器与测试技术实验报告 实验
1.1系统组成框图系统由传感器、信号预处理电路、处理器、显示器和系统软件等部分组成。
传感器部分采用霍尔传感器,负责将电机的转速转化为脉冲信号。
信号预处理电路包含待测信号放大、波形变换、波形整形电路等部分,其中放大器实现对待测信号的放大,降低对待测信号的幅度要求,实现对小信号的测量;波形变换和波形整形电路实现把正负交变的信号波形变换成可被单片机接受的TTL/CMOS兼容信号。
处理器采用AT89C51单片机,显示器采用8位LED数码管动态显示。
本课题采用的是以8051系列的AT89C51单片机为核心开发的霍尔传感器测转速的系统。
系统硬件原理框图如图1所示:1.2系统工作原理转速是工程上一个常用的参数,旋转体的转速常以每分钟的转数来表示。
其单位为r/min。
由霍尔元件及外围器件组成的测速电路将电动机转速转换成脉冲信号,送至单片机AT89C51的计数器T0进行计数,用T1定时测出电动机的实际转速。
此系统使用单片机进行测速,采用脉冲计数法,使用霍尔传感器获得脉冲信号。
其机械结构也可以做得较为简单,只要在转轴的圆盘上粘上两粒磁钢,让霍尔传感器靠近磁钢,机轴每转一周,产生两个脉冲,机轴旋转时,就会产生连续的脉冲信号输出。
由霍尔器件电路部分输出,成为转速计数器的计数脉冲。
控1.2系统工作原理转速是工程上一个常用的参数,旋转体的转速常以每分钟的转数来表示。
其单位为r/min。
由霍尔元件及外围器件组成的测速电路将电动机转速转换成脉冲信号,送至单片机AT89C51的计数器T0进行计数,用T1定时测出电动机的实际转速。
此系统使用单片机进行测速,采用脉冲计数法,使用霍尔传感器获得脉冲信号。
其机械结构也可以做得较为简单,只要在转轴的圆盘上粘上两粒磁钢,让霍尔传感器靠近磁钢,机轴每转一周,产生两个脉冲,机轴旋转时,就会产生连续的脉冲信号输出。
由霍尔器件电路部分输出,成为转速计数器的计数脉冲。
控霍尔电压大小为:式中:RH—霍尔常数,d—元件厚度,B—磁感应强度,I—控制电流K H为霍尔器件的灵敏系数(mV/mA/T),它表示该霍尔元件在单位磁感应强度和单位控制电流下输出霍尔电动势的大小。
单片机中断技术实验报告
实验名称:中断技术、基本时钟和定时功能(实验4、5)姓名_ 学号_实验班号_ 21_ 机器号_一、实验目的1.了解中断原理,包括对中断源、中断向量、中断类型号、中断程序以及中断响应过程的理解;2.掌握单片机C语言中断程序设计方法;3.了解MSP430G2553基本时钟模块的工作原理,掌握其控制方法;4.掌握利用时钟信号和中断技术实现定时功能的方法二、实验基本任务1.中断响应过程的理解阅读下面C 语言中断程序,说明程序L4_int.c执行的流程和实现功能。
上机实践,回答下面问题,掌握用C 语言编写中断程序的方法。
1)从程序如何判断用的是哪个中断源?其中断类型号是多少?将实验板上某一按键与该中断源对应的引脚相连,运行程序,操作按键,观察现象。
答:(注:源程序主函数中第7、8行有误,应为P1SEL &=~ BIT5; P1SEL2 &=~BIT5; )①P1.1为中断源,中断类型号为2;②现象:LED灯一直在闪烁,按下按键后闪烁暂停,蜂鸣器响三声,然后LED灯继续闪烁;2)main 函数中无调用函数Buzz 的语句,函数Buzz 如何能被执行?何时会被执行?据此描述中断响应过程。
答:①当按下按键时函数Buzz被执行;②中断响应的过程:P1.1处发出中断请求→判断是否满足响应条件→若满足,则CPU在执行完当前指令后,硬件自动完成保护现场的操作→从中断向量表中取中断向量至PC→转去执行中断服务子程;3)如果port_int 函数中不清分中断标志P1IFG的后果是什么?答:中断将一直重复进行下去;4)如果L4_int.c中的PORT1_VECTOR 改为PORT2_VECTOR,其他不变,程序执行的后果是什么?为什么?(可在中断处加一断点,运行程序,看现象,分析原因)答:PORT1_VECTOR改为PORT2_VECTOR,其他不变,程序将会无法进入中断。
因为程序中的中断属于P1引脚的中断,中断向量与P2引脚的中断向量不同,所进行的的改动则是把中断程序写入到了P2引脚的中断向量对应的地址中,而P1引脚的中断向量对应的地址上没有程序,因此无法执行原先的中断子程。
中断实验实验报告
中断实验实验报告篇一:中断实验报告报告中断试验试验报告班级:电信1001姓名:张贵彬学号:20XX46830213一、实验目的1、掌握Pc机中断处理系统的基本原理。
2、学会编写中断服务程序。
二、实验原理与内容1、实验原理Pc机用户可使用的硬件中断只有可屏蔽中断,由8259中断控制器管理。
中断控制器用于接收外部的中断请求信号,经过优先级判别等处理后向cPU发出可屏蔽中断请求。
iBmPc、Pc/XT机内有一片8259中断控制器对外可以提供8个中断源:中断源中断类型号中断功能iRQ008H时钟iRQ109H键盘iRQ20aH保留iRQ3oBH串行口2iRQ40cH串行口1iRQ50dH硬盘iRQ60EH软盘iRQ70FH并行打印机8个中断源的中断请求信号线iRQ0~iRQ7在主机的62线iSa总线插座中可以引出,系统已设定中断请求信号为“边沿触发”,普通结束方式。
对于Pc/aT及286以上微机内又扩展了一片8259中断控制,iRQ2用于两片8259之间级连,对外可以提供16个中断源:中断源中断类型号中断功能iRQ8070H实时时钟iRQ9071H用户中断iRQ10072H保留iRQ11o73H保留iRQ12074H保留iRQ13075H协处理器iRQ14076H硬盘iRQ15077H保留TPc-USB实验板上,固定的接到了3号中断iRQ3上,即进行中断实验时,所用中断类型号为0BH。
2、实验内容实验电路如图9-1,直接用手动产单脉冲作为中断请求信号(只需连接一根导线)。
要求每按一次开关产生一次中断,在屏幕上显示一次“TPcainterrupt!”,中断10次后程序退出。
三、实验电路图四、实验流程图五、实验程序datasegmentmessdb'TPcainterrupt!',0dh,0ah,'$'dataendscodese gmentassumecs:code,ds:datastart:movax,csmovds,axmovdx,offsetint3movax,250bhint21hinal,21handal,0f7hout21h,almovcx,10still:jmpllint3:movax,datamovds,axmovdx,offsetmessmovah,09int21hmoval,20hout20h,alloopnextinal,21hor al,08hout21h,alstimovah,4chint21hnext:iretcodeendsendstart六、实验结果七、思考修改中断服务程序,在屏幕上显示0、1、2、3、?,触发一次,显示一个。
单片机中断实验报告
一、实验目的1. 理解单片机中断的基本概念和工作原理。
2. 掌握单片机中断系统的初始化方法。
3. 学会编写中断服务程序,实现特定功能。
4. 熟悉中断优先级设置及其对系统性能的影响。
二、实验设备1. 单片机实验板:STC89C52单片机实验板2. 串口下载线:USB转串口下载线3. 电脑:一台运行Windows操作系统的电脑4. 软件工具:Keil uVision4集成开发环境三、实验原理单片机中断系统是单片机的重要组成部分,它允许单片机在执行主程序时,响应外部或内部事件的中断请求,暂停主程序执行,转而执行相应的中断服务程序。
中断系统由硬件和软件两部分组成。
1. 硬件部分:包括中断源(如定时器、外部中断等)、中断控制器、优先级寄存器、中断服务寄存器等。
2. 软件部分:包括中断初始化程序、中断服务程序等。
四、实验步骤1. 创建项目:在Keil uVision4中创建一个新项目,选择STC89C52单片机作为目标芯片。
2. 设计电路:根据实验要求,绘制电路原理图,连接单片机实验板上的相关元器件。
3. 编写程序:编写C语言程序,实现以下功能:(1)初始化单片机中断系统,包括设置中断优先级、启用中断等;(2)编写中断服务程序,处理中断请求;(3)编写主程序,实现特定功能。
4. 编译程序:将编写好的程序编译成hex文件。
5. 烧录程序:将编译好的hex文件烧录到单片机实验板中。
6. 运行实验:观察实验现象,验证程序功能。
五、实验内容1. 实验一:外部中断实验(1)功能:当外部中断0(INT0)或外部中断1(INT1)有信号输入时,触发对应的中断服务程序,使LED灯闪烁。
(2)步骤:a. 初始化外部中断0和外部中断1,设置中断优先级;b. 编写外部中断0和外部中断1的中断服务程序;c. 编写主程序,实现LED灯闪烁。
2. 实验二:定时器中断实验(1)功能:定时器0每隔1秒产生一次中断,触发中断服务程序,使LED灯闪烁。
中断控制实验实验报告
一、实验目的1. 理解中断控制的基本原理,掌握中断控制器的功能和工作方式。
2. 学习在嵌入式系统中实现中断控制的方法,提高嵌入式系统设计的实践能力。
3. 通过实验,掌握中断优先级设置、中断服务程序编写以及中断嵌套等关键技术。
二、实验原理中断控制是嵌入式系统设计中常见的一种技术,它能够使CPU在执行当前程序时,响应来自外部设备的中断请求,从而实现实时处理。
中断控制器(如8259、PIC等)是中断控制的核心部件,它负责接收中断请求、判断中断优先级、选择中断服务程序等。
三、实验设备1. 嵌入式开发板:如STM32、AVR等。
2. 调试器:如ST-Link、JTAG等。
3. 示波器:用于观察信号波形。
4. 相关开发软件:如Keil、IAR等。
四、实验内容1. 中断控制器初始化根据所使用的开发板和中断控制器型号,编写初始化代码,配置中断控制器的工作模式、中断优先级等。
2. 中断服务程序编写编写中断服务程序,实现对中断事件的响应和处理。
根据实际需求,编写中断服务程序的内容,如读取传感器数据、控制执行器动作等。
3. 中断优先级设置根据系统需求,设置中断优先级。
例如,高优先级的中断请求应优先处理,以保证系统的实时性。
4. 中断嵌套实现中断嵌套功能,允许高优先级的中断请求打断低优先级的中断服务程序。
5. 实验验证编写测试程序,验证中断控制功能是否正常。
使用示波器观察信号波形,确保中断请求、中断服务程序等环节正确执行。
五、实验步骤1. 搭建实验环境将开发板、调试器、示波器等设备连接好,并启动相关开发软件。
2. 编写初始化代码根据开发板和中断控制器型号,编写初始化代码,配置中断控制器的工作模式、中断优先级等。
3. 编写中断服务程序根据实际需求,编写中断服务程序,实现对中断事件的响应和处理。
4. 设置中断优先级根据系统需求,设置中断优先级。
5. 实现中断嵌套实现中断嵌套功能,允许高优先级的中断请求打断低优先级的中断服务程序。
单片机实验_中断、定时器
理工大学实验报告(模板)实验时间:年月日星期时间::~ :实验室(房间号):实验台:班级::指导教师签字:成绩:实验三外部中断/INT0实验一、实验目的和要求学习、掌握单片机的中断原理。
正确理解中断矢量入口、中断调用和中断返回的概念与物理过程。
学习编写“软件防抖”程序,了解“软件防抖”原理。
对/int0、/int1两个外部中断进行编程,其中:●主程序的功能:LDE灯“全亮”、“全灭”交替进行 --------(状态2);●Int0中断服务程序功能:2个相邻的LED灯被点亮且循环左移(状态0);●Int1中断服务程序功能:1个LED灯被点亮且循环右移 ---(状态1);【注意】:实验仪上的LED灯物理位置最左侧为d0;最右侧为d7。
二、实验算法1 在主程序中利用CPL P3.3的指令驱动其电平不断地转换(由逻辑笔电路做程序状态监视)。
2 在中断服务程序中将P3.3置位(P3.3=1),实现对计数器“加1”并(通过P1口)显示的功能。
3 中断结束后回到主程序,程序继续对P3.3的电平不断取反。
三、实验电路图四、实验流程图主程序入口INT0入口设置中断允许P3.2置1设置中断优先级调用延时子程序设TCON 计数器加一并显示CLR A开中断(P0)—(A) P3.2=0?调用延时子程序调用延时子程序(A)—(A) RETI INT1同理五、程序清单ORG 0000HLJMP STARTORG 0003HLJMP INT_0ORG 0013HLJMP INT_1ORG 0100H ;主程序START: MOV SP,#60HMOV IE,#85HMOV IP,#04HMOV TCON,#05HLP1: M OV P0,ALCALL DELAYCPL ASJMP LP1INT_0: PUSH PSW ;中断T0入口PUSH ACCLCALL DELAYMOV A,#3FHLP2: M OV P0,ARR ALCALL DELAYSETB P3.2JNB P3.2,LP2LCALL DELAYPOP ACCPOP PSWRETIINT_1: PUSH PSW ;中断T1入口PUSH ACCLCALL DELAYLP3: M OV P0,ARL ALCALL DELAYSETB P3.3JNB P3.3,LP3LCALL DELAYPOP ACCPOP PSWRETIDELAY: PUSH 02HPUSH 03HMOV R2,#00HDL1: MOV R3,#00H DJNZ R3,$DJNZ R2,DL1POP 03HPOP 02HRETEND六、实验结果与分析LED灯按程序设计的规则亮灭,可调至3个状态,两个中断分高低优先级,实验成功。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
姓名:学号:
学院:光电与信息工程学院班级:网络工程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()。之前的实验报告的延迟时间设置得太长,导致优先级高的中断一直处于抢占地位。所以这次的延迟时间稍微修改了一下。根据中断服务程序的执行时间不同,这个比例也会不同。
附录
---------------------------以下内容老师为老师填写-------------------
老师评阅:
成绩: