MCS—51系列单片机内部只有两个外部中断源输入端,当外部中断源多于两个时,就必须进行扩展,下面介绍两种简单的扩展方法:
1、 采用硬件请求和软件查询的方法:
这种方法是:把各个中断源通过硬件“或非”门引入到单片机外部中断源输入端(INT0或INT1),同时再把各个中断源送到单片机的某个输入输出端口,这样当外部中断时,通过“或非”门引起单片机中断,在中断服务程序中再通过软件查询,进而转到相应的中断服务程序。显然,这种方法的中断优先级取决于软件查询的次序。其硬件连接和软件编程如下:
Void zhongduan (void) interrupt 0 using 3 //中断函数
{
EX0=0;//关中断
If(P0_0=1) { *****}//中断查询
If(P0_1=1) { *****}//中断查询
If(P0_2=1) { *****}//中断查询
EX0=1;开中断
}
2、 用定时器/计数器作外部中断:
单片机的定时器/计数器是一个加一计数器,每当计数输入端有一个“1—0”的负跳变时,计数器加一,当加一计数器溢出时,就向CPU发出中断,利用这个特性来扩展中断的方法是:首先把定时器/计数器设置成计数方式,并预置满值,把外部中断源输入到P3口第4引脚或第5引脚(计数器输入端),这样就可以利用定时器/计数器作为单片机外部中断了。注意这种方法的中断服务的入口地址应在000BH或001BH。
关键字:单片机 扩展中断
引用地址:
单片机扩展中断的简便方法
推荐阅读最新更新时间:2024-03-16 12:45
单片机找工作好找吗?不懂英语怎么学会单片机?
我刚毕业的那会,找工作找了1个月多,我们从学校电子实验室出来的几个同学也都没有找到合适的工作,转行做其他行业去了,有的做销售去了,有的做管理去了……只有我坚持了下来。 其实对于刚转行或者刚毕业的兄弟们,想要找一份心仪的工作是不容易的。 很多人都因为找的时间太久没有找到合适的,所以就放弃了。 但如果有恒心,相信你一定可以找到的,就看你能不能耐得住寂寞,俗话说的话,好事多磨,就是这个道理。 我的同学那个时候如果再坚持坚持,也是可以找到适合自己的工作。 刚毕业,手里没有钱,等的时间太久了难以承受,所以就想着随便找个工作,先吃饱肚子。 等将来有机会了再做回自己的专业,可一转眼多年过去了,再也没有了回头的机会。
[单片机]
基于8位单片机C51的嵌入式显示系统设计
引言 嵌入式设备凭借其与使用者之间的亲和力、自然的人机交互界面,得到了迅速的发展,渗透到生活中的各个角落。本文介绍的设计方法是以高性能的8位单片机 C8051F120作为核心处理器,SRAM作为系统的显存,FPGA实现时序转换,构建低温(-10℃)下嵌入式显示系统。通过PC机键盘和触摸屏实现界面操作,最终在液晶显示器上显示国标一/二级汉字、ASCII字符和65 536色的彩色图形和图片,并制作了简单的操作界面。 1系统工作原理 显示汉字、英文字符和彩色图形的过程就是将字符和图形信息转换成液晶显示器可以显示的点阵信息。为了显示字符,可以将ASCII码字符点阵字库和按区位码排列的汉字点阵字库存储在单片机外接的Fl
[单片机]
51单片机频率的计算
当定时器重载值是8bit时(传统的51单片机型号,如AT89C51的T1): Y=256-((256-X)*4) 当定时器重载值是16bit时(较新的51单片机型号,如C8051F系列的Timer3): Y=65536-((65536-X)*4) 下面举例说明波特率选择过程:假设系统要求的通信频率在20000bit/s以下,晶振频率为12MHz,设置SMOD=1(即波特率倍增)。则TH1=256-62500/波特率 baud(波特率)=2^smod*12M/(12*32*(256-TH1) 当SMOD=1时,k为倍数,是2的幂,公式为: 波特率=K 12000000/32 12 (256-TH1) 所以,TH1=0xf3=
[单片机]
单片机串口发送数据帧
很少看到有资料写如何以中断的方式发送一帧数据,如果以等待的发送数据帧,对高速运行的单片机来说是很浪费时间的,下面就介绍一种使用中断方式发送数据帧,操作平台采用51 mcu 首先定义一个数据帧的结构体,该结构体可以做为一个全局变量,所有的发送都要经过这个结构体: //结构体 struct { char busy_falg;//忙标志,若在发送数据时置位1,即在开始发送置位1,发送结束置位0 int index;//索引,指向需要发送数组的位置 int length;//整个数据帧的长度 char *buf;//指向需要发送的数据帧,建议为全局变量,否则一旦开始发送,必须等到发送结束,即判断bus
[单片机]
STM32单片机寄存器的位置是如何定义的
一直都是用STM32做项目中的主控芯片,在编程的时候,之前一直忽视了一个问题,那就是寄存器的位置是如何定义的,为什么用一个USART1-》CR操作就能够给这个CR寄存器赋值?其实这是一个比较底层的问题,不懂这方面的知识也并不影响使用STM32,因为底层的定义工作,厂家一般都会做好,但是多了解一点原理性的东西,对自己还是很有帮助的。 这里我就以STM32F407的USART寄存器为例,介绍一下ST厂家是如何做寄存器定义的。 首先在stm32f4xx.h中 typedefstruct { __IOuint16_tSR;/*! uint16_tRESERVED0;/*! __IOuint16_tDR;/*! uint16_tRESE
[单片机]
基于单片机的生物电阻抗频谱测量系统
0 引 言 长期以来,对生物组织电性质的研究一直是生物医学工程学关注的热点。生物组织的电学性质是人们认识生命物质的一个重要方面。 生命物质电阻抗作为一个重要的电参数,在电性质研究中占有很重要的地位,生物组织生理病理特性可以通过电阻抗来反映。许多研究表明,生物组织电特性的频率依赖性很强,因此,对生物组织电特性的研究常采用多频电阻抗法。目前,国内外学者已经通过研究生物组织的阻抗特性预测早期疾病、治疗过程中的监护、区分正常组织和病变组织等。在这些研究报道中发现,对相关生物组织的阻抗特性主要使用现成的阻抗分析仪测量,这些仪器均非针对生物组织而设计,因此存在对测量对象造成破坏、非实时、价格昂贵等问题。同时对生物组织频谱测量系统的
[模拟电子]
PIC单片机芯片的三相半控整流电路设计
整流电路广泛应用在直流电机调速,直流稳压电压等场合。而三相半控整流桥电路结构是一种常见的整流电路,其容易控制,成本较低。本文中介绍了一种基于 PIC690单片机与专用集成触发芯片TC787的三相半控整流电路,它结合专用集成触发芯片和数字触发器的优点 ,获得了高性能和高度对称的触发脉冲。它充分利用单片机内部资源 ,集相序自适应、系统参数在线调节和各种保护功能于一体,可用于对负载的恒电压控制。主电路采用了三相半控桥结构,直流侧采用LC滤波结构来提高输出的电压质量。 系统总体设计 本系统通过PIC690单片机作为主控制芯片,用晶闸管作为主要开关器件。设计的目标是保持输出的直流电压稳定,输出电压纹波小,交流输出测电流THD较低,
[单片机]
用单片机控制DDS实现短波跳频系统的调制
摘要: 介绍用89C51单片微机控制直接数字频率合成器(DDS)实现短波跳频/四相差分键控(FH/DQPSK)调制系统的调制过程,着重讨论了单片微机控制系统的硬件结构及软件设计。讨论分析了采用AD7008实现该调制的方法并给出实验结果。
关键词: 单片机 直接数字频率合成(DDS) 跳频(FH) 四相差分键控(DQPSK)
频率合成器是利用一个(或多个)标准信号产生多种频率信号的设备。它不仅要求输出频率的精确度和稳定度高,而且要求频带尽可能宽。直接数字频率合成(DDS)是继直接频率合成和间接频率合成之后发展起来的第三代频率合成技术。由于它具有相对带宽很宽、频率
[工业控制]