导航:首页 > 操作系统 > 单片机中断控制

单片机中断控制

发布时间:2023-04-22 02:40:36

⑴ 什么是单片机的中断

不同的计算机其硬件结构和软件指令是不完全相同的,因此,中断系统也是不相同的。

计算机的中断系统能够加强CPU对多任务事件的处理能力。中断机制是现代计算机系统中的基础设施之一,它在系统中起着通信网络作用,以协调系统对各种外部事件的响应和处理。中断是实现多道程序设计的必要条件。 中断是CPU对系统发生的某个事件作出的一种反应。

引起中断的事件称为中断源。中断源向CPU提出处理的请求称为中断请求。发生中断时被打断程序的暂停点称为断点。

CPU暂停现行程序而转为响应中断请求的过程称为中断响应。处理中断源的程序称为中断处理程序。

CPU执行有关的中断处理程序称为中断处理。而返回断点的过程称为中断返回。中断的实现实行软件和硬件综合完成,硬件部分叫做硬件装置,软件部分称为软件处理程序。

响应处理

大多数中断系统都具有如下几方面的操作,这些操作是按照中断的执行先后次序排列的。

1、 接收中断请求。

2、 查看本级中断屏蔽位,若该位为1则本级中断源参加优先权排队。

3、 中断优先权选择。

4、 处理机执行完一条指令后或者这条指令已无法执行完,则立即中止现行程序。接着,中断部件根据中断级去指定相应的主存单元,并把被中断的指令地址和处理机当前的主要状态信息存放在此单元中。

5、 中断部件根据中断级又指定另外的主存单元,从这些单元中取出处理机新的状态信息和该级中断控制程序的起始地址。

6、 执行中断控制程序和相应的中断服务程序。

7、 执行完中断服务程序后,利用专用指令使处理机返回被中断的程序或转向其他程序。

冲突

在一些罕见的情况下,两个ISA设备可以共享相同的 IRQ,只要它们不同时使用即可。为了解决这个问题,后来的PCI 总线允许 IRQ 共享。PCI Express没有物理中断线,并使用消息信号中断(MSI) 到操作系统(如果可用)。

在早期的 IBM 兼容个人计算机中,中断曾经是一种常见的硬件错误,当两个设备尝试使用相同的中断请求(或 中断)向可编程中断控制器(PIC)发出中断信号时会收到该错误。

PIC 期望每条线路仅来自一个设备的中断请求,因此沿同一条线路发送中断信号的多个设备通常会导致 中断 冲突,从而导致计算机死机。

例如,如果在系统中添加调制解调器扩展卡并分配给中断4,传统上分配给串行端口1,则可能会导致中断冲突。最初,中断 7 是使用声卡的常见选择,但后来发现 中断 7 会干扰打印机端口(LPT1)时使用了中断5。该串行端口经常禁用可以用于其他设备的中断线。

中断 2/9 是 MPU-401 MIDI 端口的传统中断线,但这与ACPI系统控制中断(SCI 在 Intel 芯片组上硬连线到 中断9)冲突;

这意味着 ISAMPU-401带有硬连线中断2/9 的卡和带有硬编码 中断 2/9 的 MPU-401 设备驱动程序不能在启用 ACPI 的系统上以中断驱动模式使用。

以上内容参考网络-中断

⑵ 单片机中断控制里(IT,IE,TF,EX, ET,PX,PT)他们各自的英文全称是什么

1、IT:interrupt type control

2、IE: interrupt enable

3、TF: Timer overflow flag

4、蚂毕辩EX: external interrupt enable

5、ET: timer interrupt enable

6、PX: external interrupt priority

7、闷缺数歼PT: Timer interrupt priority

⑶ 单片机中断概念

单片机的中断概念是指单片机在执行程序时,遇到事先设定的优先等级高于当前正在执行程序的控制信号时,暂时停止当前程序的执行,转而先执行优先等级高的程序,等待所有优先等级较高的程序都执行完后,再返回继续原来暂停执行的程序的操作,这样的程序操作就称为执行中断操作。
为了保证中断执行后能够继续执行原来的程序且不产生错误,中断操作时,首先要保存中断前的程序的地址、工作寄存器的内容等。直到中断程序执行完成后再将暂时保存的工作寄存器的内容和地址取出,才能保证不回出现错误。

⑷ 51单片机中断原理

中断意思是打断,即允许单片机的正常工作被一些特殊的任务所打断,从而保证单片机能够专心工作又不错过重要事务。中断系统包括中断源和中断控制系统,单片机每执行完一条指令,就会检测中断源,当有中断发生且中断未被屏蔽,就会转向中断程序入口地址,执行中断程序,执行完中断程序,又返回主程序。

⑸ 80C51单片机,12mhz.利用中断程序控制8个灯依次亮灭,定时时间为1秒。

#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
unsigned char tab[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,0xff};

void delay(uint e) //延时函数,延时为0.5s
{
uint i,j;
while(e--)
{
for(i=0;i<500;i++)
for(j=0;j<110;j++);
}
}

void Timer0Init()
{
TMOD|=0x01;//选择为定时器0模式,工作方式1,仅用TR0打开启动。
TH0=0xfe; //给定时器赋初值,定时1ms
TL0=0xfc;
ET0=1;//打开定时器0中断允许
EA=1;//打开总中断
TR0=1;//打开定时器
}

void main()
{
Timer0Init();
while(1);
}

void timer0() interrupt 1
{
uchar i;
for(i=0;i<8;i++)
{
P2=tab[i];
delay(1);
}
for(i=0;i<8;i++)
{
P2=~tab[i];
delay(1);
}

⑹ 51单片机定时中断控制灯亮度怎么调

51单片机怎坦唯样控制LED的光亮度

pwm,用定时器T1溢出做pwm周期,在每次T1开始计数时触发输出,软件边增1计数边检查溢出标志。如果软件计数满则清输出,否则直到溢出清输出、清软件计数满值。改变软件计数满值就能改变亮度。

51单片机输出pwm波控制led灯亮度

频率50HZ,周期是20ms

看你调节的精度 如定时器定时1ms,高电平宽度一次变化是5%

如果想要调节精度脊旁高,定时器定时时间小,就要频繁地发生中断,会影响主程序的运行

如 要求占空比每步调节为1%,则定时器就要定时200us,对于CpU的影响就比较大了

这时自动重装模式可以缩短中断程序占用时间,但如果再提高PWM的频率,自动重装模式也十分吃力,因此许多增强型51单片机有硬件PWM功能

单片机控制led亮度

LED是电流控制器件, 而不能说成电压控制,调节电压的大小也能控制啊(电压越大亮度超高),

1、PWM是脉冲宽度调制信号,注意其中的“宽度”,就是脉冲的高电平的时间。PWM信号调节LED亮度时,信号频率是不变的,改变的是脉冲的高电平的时间,即LED的导通时间。这种信号调节亮度相当于调节LED的平均电流,所以电流会变化。

2、从LED的V-I特性可知,其曲线是非线性的,0.1V的电压可造成100~200mA的If的变化,不易控制;另外,LED具有负温度系数特性,所以,一般将LED说成是电流控制型器件。至于你将让野培LED串接在电源模块上,当输出电压恒定时,是恒压源驱动LED吧,这样调节LED亮度时,需要对输出电压进行分压,以降低LED的压降才能改变其亮度,恒压源的电流是有一个最大输出值的,不能调节的,不知你用什么方法调节其输出电流的?

3、用MCU比较方便,成本是稍高,也可以用模拟电子线路产生相应的PWM信号。

⑺ 单片机中断控制原理

CPU是计算机的指挥中心,它与外围设备(如:按键,显示器等)通讯的方法有查询和中断2种

1:查询:无论外围i/o是否需要服务,CPU每隔一段时间都要依次查询一遍,这种查询的方法,CPU需要花费一些时间在做查询的服务工作

2:中断:在外围设备需要通讯服务时主动告诉CPU,CPU停下当前工作去处理中断程序,从而提高了CPU的工作效率。

(2):可以实现实时处理

外设任何时候都可能发出请求中断的信号,CPU接到请求后及时处理,以满足实时系统的需要

(3):可以及时处理故障

计算机系统运行过程中难免会出现故障,eg:电源中断,存储器出错,外围设备工作不正常等,这时可以通过中断系统向中断源的CPU发出请求,以便解决故障。
定时器和中断都属于单片机的内部资源,在开发板上是没有芯片的,同时定时器的初始化程序一旦溢出,会自动去执行定时器中断子程序,而不需要我们自己去调用,这些都是由硬件直接控制的。

2:定时器计算的是固定脉冲,其定时时间是可以计算出来的。它比延时函数有更好的作用,能提高CPU 的效率,因为延时函数是需要耗费CPU去执行的,在此期间,CPU是不能执行其它功能的,而定时器是需要用到 的时候,CPU自动调用

⑻ [电子百科] 单片机怎样管理中断怎样开放和禁止中断怎样设置优先级

(1)由中断源提出中断,再用中断控制端决定是否中断,再用设置好的中断优先级的顺序响应中断。同一优先级的中断按:外部中断0,定时中断0,外部中断1,定时中断1,串行中断昀顺序响应行运中断。中断后的结果是:脉冲触发,IEl(0)被清0。电平触发,IEl(0)不被清0,要用软件清0。(2)它由中断允许寄存器IE控制,如开放中断EA必须为1,再使要求中断的中断源的中断允许位为1,要禁止中断,EA-O即可。(3)由IP控制,1为高级,0为低级,PS为串行中断优先级,PTl(0)为定时中断1(0)优先级,PXl(0)外部中断档没梁1(0)优先级,想使哪个察搜中断源为优先级,就置哪个优先设定位为1。

⑼ MCS-51 单片机的中断允许控制寄存器IE各个控制位的功能及作用

回答楼主的追问。希望给分~
EA:全局中断允许位,要想打开任何中断,EA都必须为1.然后再允许某个特定的中断。
ES:串行口中断允许。ES=1时,串口接收或者发送完成数据以后会引起中断(TI=1,或者RI=1)
ET1:定时
计数器
1中断允许。ET1=1时,当定时计数器1计数满,溢出后引起中断,可在中断
函数
中处理
定时器

EX1:外部中断1允许位。EX=1时,外部条边沿(或者电平)中断信号来后,会引起外部中断,可在外部中断函数中处理事件。
ET0/EX0功能跟上面一样,只是换了个定时器或者外部中断。

⑽ 单片机为什么要控制中断

中断保护现场,是为了你中断子程序执行完以后能够返回到你程序中中断点,即产生指基中断的地方,使程序能够继续向下执行!!!!
如过你说的不用保护现场的话,那么程序执行完以后就不能够回到现场,那么隐槐你的程序将不知道要跳转到那里去了,也就是飞鸟,呵呵……
你说的中断嵌套,也是一样的,两者都要保护现场,不然你也不能够回到现场,程序也会飞的!!!!
而我们保护现场的数据都是放在堆栈中的,因此,你的中断次数也不能够超过堆栈的级数,那样数据也会丢失!!!!
说白了,中断它不同于子程序,子程序是固定好了的,返回的位置也固定了;而中断我们不能够预知它在那里发生中断,因此要保护现场,使中断子程序执行完后返回到中断的地方!!!
呵呵……说的太多了!!!
我知道你说的意思了,但是你要知道,中断现场保护是在中断子程序中进行的,因此当你高一级的中断发生的时候(他们不可能共用一个中断子程序,如果是同一中断,那也不可能,因为51中断中你进入中断子程序后要将禁止该中断再次中断,好象似的,嘿嘿……你可以试试),在高一级的中断子程序中也有现场保护,你的问题就是没有把现场保护放对地方!!!!!
============================================================
它们是把现场保护在同一堆栈中,我跟你打个比方吧,假如说堆栈的地址是80H,低一级的中断要保护的是1,2,3;高一级要保护的现场是4,5,6,那么在低一级的中断发生的时候,现场保护1,2,3将压如堆栈,(顺序书上应该有,这里是个比喻),那我先压入1,堆栈地址加1,压入2,堆栈地址再加1,如果这个时候高一级的中断发生,那么现在就应该跳到高一级中断的子程序,堆栈地址就是82H了,在将4,5,6分别压入堆栈,这样堆栈的地址就是85H,当高一级的中断子程序结束后,返回现场,堆栈的数据要从85H开始弹出,这样现场返回的就是6,5,4,这个时候程序就会跳到中断之前的地方,即底一级的中断那里,将要继续将3保护到堆栈中,在执行低一级的中断子程序.(其中,你要在中断唯携谨保护现场完了后将中断标志清0啊,不然它始终会中断的,不可能去执行程序去了...)

阅读全文

与单片机中断控制相关的资料

热点内容
两位数乘两位数的快速运算法 浏览:907
正版我的世界如何进服务器地址 浏览:660
云文档怎样加密 浏览:294
ip协议的远程登录命令 浏览:286
阿里云服务器可以帮别人备案吗 浏览:391
脏数据java 浏览:290
游戏解压怎么设置 浏览:782
会声会影如何压缩视频 浏览:57
阅读app小说怎么转换成txt 浏览:65
c语言编程数字变时间 浏览:655
迷你编程第五天初级宝箱怎么弄 浏览:839
刺激体验服如何更新服务器 浏览:934
怎么把照片做成新的文件夹 浏览:466
安卓手机没有声音均衡器怎么办 浏览:506
吃鸡国际服为什么会服务器匆忙 浏览:248
微信中如何打开定位服务器 浏览:203
java并发编程书籍 浏览:280
android601源码 浏览:788
程序员离职了还能干嘛 浏览:156
少林功法pdf 浏览:471