单片机查询工作方式和中断工作方式有什么不同,编程时有什么区别

如题所述

单片机在操作外部设备时,常用的有中断和查询两种方式。

1、工作方式不同;

查询方式:发送数据——先发后查;
接收数据——先查后收。  
中断方式:发送数据——发送、等待中断、中断中发送;
接收数据——等待中断、在中断中接收

中断方式,是事件触发的,换言之只要有事件产生都会进入中断,并且取得最优运行,因此响应更快,及时。查询方式,就是在主函数里面不停循环,查询端口状态,响应速度慢。

2、编程时的区别;中断程序在程序开始定义中断入口地址,初始化中必须打开中断允许位,程序运行时不用判断溢出状态位,溢出后硬件清零;查询方式在程序运行时必须判断溢出状态位,溢出后须软件清零。

扩展资料:

单片机工作原理

1、单片机是一块用于对系统或设备进行控制的集成电路芯片,相当于一个微型计算机系统。包含具有数据处理能力的中央处理器CPU、静态随机处理器SRAM、闪存FLASH、多种IO口和中断系统、定时器/计数器等功能。

2、可以把单片机看成是一台微型机器,程序员给它输入命令,它就执行相应的操作。其过程大概如下:在一般的用户模式下,单片机先从FLASH中读取指令,译码电路识别该指令是哪个指令,并输出对应的控制信号给单片机内的各部件,各部件收到控制信号后执行相应的操作。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-05-18

当单片机操作外部设备时,通常有两种方式:中断和查询。

1、工作方式的不同:

查询方式:先发送数据,再查询;先接收数据,再查询。中断模式:发送数据-发送,等待中断,发送中断;接收数据-等待中断,接收中断

中断模式由事件触发。也就是说,只要一个事件被生成,它就会进入中断状态,得到最优的操作,因此响应速度更快、更及时。查询方法是在主函数中不断循环,查询端口状态,减缓响应速度。

2、编程中的不同:

中断程序在程序开始时定义中断输入地址。在初始化期间,必须打开中断允许位。程序运行时,不需要判断溢出状态位。溢出后清除硬件,程序运行时查询模式必须判断溢出状态位,溢出后清除软件。

扩展资料:

单片机工作原理

1、单片机是用来控制系统或设备的集成电路芯片,相当于微机系统。它包括具有数据处理能力的CPU、具有静态随机处理器的SRAM、闪存、多个IO端口和中断系统、定时器/计数器等功能。

2、单片机可视为微型机。当程序员给它一个命令时,它执行相应的操作。其过程如下:在一般用户模式下,单片机首先从flash读取指令,解码电路识别出指令是哪个指令,并将相应的控制信号输出到单片机中的各个部件,各部件在接收到控制信号后执行相应的操作。

参考资料:

本回答被网友采纳
第2个回答  2020-05-18

当操作外部设备时,通常有两种方式:中断和查询。

1、工作方式不同

查询方式:发送数据——先发后查;接收数据——先查后收;中断方式:发送数据——发送、等待中断、中断中发送;接收数据——等待中断、在中断中接收。

中断方式由事件触发。也就是说,只要一个事件被生成,会进入中断状态,得到最优的操作,因此响应速度更快、更及时。查询方式是一种在中保持循环、查询端口状态并缓慢响应的查询方法。

2、编程不同

中断方式在程序开始时定义中断输入地址。在初始化期间,必须打开中断入口地址。程序运行时,不需要判断溢出状态位,溢出后清除硬件。

程序运行时查询方式必须判断溢出状态位,溢出后清除软件。

扩展资料:

中断工作方式好处

1、提高了CPU的效率

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

2、实现实时处理

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

3、及时处理故障

运行过程中难免会出现故障,eg:电源中断,出错,外围设备工作不正常等,这时可以通过中断系统向中断源的CPU发出请求,以便解决故障。

参考资料来源:

本回答被网友采纳
第3个回答  推荐于2017-11-24
查询方式就是不断的查询某个标志位,需要耗费大量的cpu 的时间,一般情况下除专门用于延时外不用这种方式(自己认为),中断方式比较适合处理具有随即特性的事件,事件发生后向cpu提出申请,然后cpu会保存当前的任务转去处理事件
编程时查询方式要不断查询标志位,而中断要编写中断服务子程序来处理中断事件追问

你看看上面的题目啊,能不能编个中断方式的程序给我咯

追答

比方说定时100ms,分别用查询法和中断法实现
查询法
#include
void main()
{
TMOD=0X01;//定时器0方式1
TH0=(65536-10000)%256;//定时器器初值
TL0=(65536-10000)/256;
ET0=0;//关定时器0中断
TR0=1;
while(TF0==0);//若定时完成则中断标志位TF0为1,在此不断查询TF0
TR0=1;//完成定时关闭定时器
while(1); //等待

}
中断法
#include
void main()
{
TMOD=0X01;//定时器0方式1
TH0=(65536-10000)%256;//定时器器初值
TL0=(65536-10000)/256;
EA=1;//开总中断
ET0=1;//关定时器0中断
TR0=1;//打开定时器
while(1); //等待
}
void isr_timer0 interrupt 1
{
TR0=0;//关闭定时器
}
另一个实例:P3.2口接有一个按键,未按下为高电平,按下则为低电平,当按下键时点亮一个led灯
查询法
#include
sbit led=P1^1;//led是共阴极接法
sbit key=P3^2//按键接到p3.0口
void main()
{
led=0;//熄灭所有灯
while(key==1);//没有键按下则等待(不断查询p3.0的状态)
led=1;//点亮灯
while(1);
}
中断法
#include
sbit led=P1^1;//led是共阴极接法
void main()
{
led=0;//熄灭所有灯
while(1);
}
void isr_led interrupt 0
{
led0=1;//点亮灯
}

本回答被提问者采纳
第4个回答  2011-11-14
区别太大了,单片机中断较少,一般有复位中断、外部中断、计时器中断、通讯中断、ADC中断等等,中断方式是当中断条件满足时立即中止当前正在运行的程序,进入中断服务程序,执行完毕后返回断点继续执行,查询方式是一直在循环主程序中通过查询语句判断条件是否满足,因主程序执行周期的影响,查询实效性很低,对于要求低的应用可以勉强使用,对实效性要求高的情况必须使用中断方式,比如通过外部中断测速,查询方式对较高速度的响应会产生十分大的误差,甚至测量数值混乱。追问

要产生一个方波,分别用查询和中断方式编程,程序有什么区别,能不能举例说明

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网