中断程序和查询方式的区别

发布者:CaptivatingEyes最新更新时间:2015-05-25 来源: 51hei关键字:中断程序  查询方式 手机看文章 扫描二维码
随时随地手机看文章
中断程序在程序开始定义中断入口地址,初始化中必须打开中断允许位,程序运行时不用判断溢出状态位,溢出后硬件清零;

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

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

中断方式,是事件触发的,换言之只要有事件产生都会进入中断,并且取得最优运行,因此响应更快,及时。
查询方式,就是在主函数里面不停循环,查询端口状态,明显其弊端在于响应速度,在处理事件多,处理流程复杂,函数嵌套执行的情况下,由于处理不过来容易丢失事件。

举个例子,在电话用户接入系统里面,一个单片机管理1个电话端口的摘挂机,执行周期要求8ms,用查询的方式足够了,但是当电话增加到16个,用查询方式,效果就差了,曾出现过电话响起的时(12个电话齐呼),拿起话筒,电话还在振铃,明显处理不过来。
这个时候,有两个办法,一个采用中断方式,另一个采用更高效的CPU,明显前者只需要修改软件,后者需要增加硬件成本,还延长开发时间。 

关键字:中断程序  查询方式 引用地址:中断程序和查询方式的区别

上一篇:个人对单片机中断程序的理解
下一篇:汇编程序:比较2个字符串是否相同(初级版)

推荐阅读最新更新时间:2024-03-16 14:03

LPC1114_Timer16_0中断程序_MDK编译环境
关于Timer16_0代码: LPC_SYSCON- SYSAHBCLKCTRL |= (1 7); //开启定时器时钟 LPC_TMR16B0- PR=1000;//1000-1; //预分频计数器 LPC_TMR16B0- MR0=12000; //匹配寄存器 LPC_TMR16B0- TCR=0x1; //开启定时器计数器 LPC_TMR16B0- MCR=3;//(1 0)&(1 1); //匹配控制--匹配则引发中断并复位定时器 NVIC_EnableIRQ(TIMER_16_0_IRQ
[单片机]
S3C2440裸机------异常与中断__und异常模示程序示例
1.异常向量表 我们先看一下芯片手册里面的异常向量表, 2.代码流程 我们在重定位的第10个程序的基础上进行修改。 我们要在start.S的前面增加跳转到相应异常向量表的代码,并且要增加代码,当发生未定义指令异常时候跳转到该代码块进行保存现场、处理未定义异常以及恢复现场的工作,然后在下面故意写一条不能被识别的指令。 2.1增加异常向量表代码 首先在start.S的前面增加相应的跳转指令,当发生异常时会根据这里的跳转指令跳转到相应的地方,代码如下。 _start: b reset /* vector 0 : reset */ b do_und /* vector 4 : und */ 2.2设置栈 进入异
[单片机]
S3C2440裸机------异常与<font color='red'>中断</font>__und异常模示<font color='red'>程序</font>示例
S3C2440 测试程序(四) 外部中断实验
TQ2440板上将4个按键K1~K4分别接在4个外部中断口上: K1 ---- EINT1(GPF1) K2 ---- EINT4(GPF4) K3 ---- EINT2(GPF2) K4 ---- EINT0(GPF0) K5 ---- EINT5(GPF5)外接单片机的I/O口 主程序里初始化:KeyPort_Init(); 之后while(1) ; void KeyPort_Init(void) { rGPFCON = rGPFCON & ~((3 0)|(3 2)|(3 4)|(3 8)|(3 10))\ |((2 0)|(2 2)|(2 4)|(2 8)|(2 10)); //将GPF
[单片机]
Stm32f407 key查询方式示例
硬件平台: stm32f407ve 软件平台: win10 (OS Name: Microsoft Windows 10 Enterprise OS Version: 10.0.18363 N/A Build 18363) Keil5 5.26.2 HAL库版本: 2.14.0(目前下载的最新的) 实验介绍: 本次是使用hal库进行按键循环查询实验。(根据之前建立的模板操作,这里不再建立工程模板) 首先看原理图,按键的原理比较简单,按下去,电路短路,松开,电路开路。在下图中,我们看到与cpu的连接时PE10,1
[单片机]
Stm32f407 key<font color='red'>查询</font><font color='red'>方式</font>示例
AVR查询方式 A/D 转换测试程序
/*============================================================ File Name :main.c 说明 : 1.查询方式 A/D 转换测试程序 =============================================================*/ #include avr/io.h #include util/delay.h #define uchar unsigned char #define uint unsigned int uint AdcConvert(void) { unsigned char i; unsigned int ret
[单片机]
查询方式蜂鸣器(1秒精确间隔)
#include REG51.H #include intrins.h #define uint unsigned int #define uchar unsigned char sbit beep=P3^4; uchar count=0; /*void delay_ms(int j) { uchar i; while(j--) for(i=1;i =250;i++) { _nop_(); _nop_(); _nop_(); _nop_(); } } */ void init(void) { TMOD=0x01; TH0=(65536-50000)/256; //预先 设定定时器 初值,50毫秒 TL0=(65536-50
[单片机]
Windows98下硬件中断驱动程序的开发
摘 要: 介绍了Windows98的内核管理机制和应用程序权限级别,简述了在Windows98下进行虚拟驱动程序开发的几种工具和编程方法,并给出了借助VToolsD用C++语言编写的处理硬件中断的程序实例。 关键词: 虚拟设备驱动程序 VToolsD 中断服务例程 美国微软公司出品的Windows98以其友好的图形用户界面,在我国赢得了广泛的市场。在给广大办公环境工作人员带来方便的同时,也给不少工程技术人员带来了一些麻烦。一些原本在DOS下很容易编出的控制硬件的程序,现在在Windows98下就不那么容易实现了。作为一个完善的操作系统也必须能控制硬件,象DOS那样直接与硬件打交道是Windows98
[嵌入式]
中断扫描实现计算器程序
单片机小制作时写的一些小程序,在最小系统上运行成功,采用的是中断键盘扫描. //****键值表如下: // 1 2 3 4 // 5 6 7 8 // 9 + - * // / = CLR //*************// #include reg51.h #define unint unsigned int #define unchar unsigned char sbit P3_4=P3^4; sbit P3_5=P3^5; unchar code table ={0xc0,0xf9,0xa4,0xb0,0x99, 0x92,0x82,0xf8,0x80,0x90,0x88,0
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved