历史上的今天
今天是:2025年06月03日(星期二)
2020年06月03日 | 51单片机4种简单的扩展方法
2020-06-03 来源:elecfans
MCS—51系列单片机内部只有两个外部中断源输入端,当外部中断源多于两个时,就必须进行扩展,下面介绍4种简单的扩展方法:
一、采用硬件请求和软件查询的方法:
这种方法是:把各个中断源通过硬件“或非(高有效,如CD4002)”(与,低有效)门引入到单片机外部中断源输入
端(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;开中断
二、用普通二极管构成中断选择

扩展的8个外部中断源均通过二极管向I N T(x=0或I)请求中断。当某个外部中断源请求中断服务时输出低电平,单片机的I NT 经二极管接地电平,单片机满足响应外部中断(I N T)请求条件,响应中断,程序立即转向I NT 对应的中断入口地址处开始执行中断服务程序,通过软件查询PI.0~P1.7口外中断源的状态,以识别提出请求的外扩中断源,并转向中断服务程序为其服务,其查询顺序即为外部扩展中断源的中断优先级顺序。在图中,是选用PI.0~PI.7作为外扩中断源请求的状态信息输入端口。
有点类似第一种方法。
三、用定时器/计数器作外部中断
单片机的定时器/计数器是一个加一计数器,每当计数输入端有一个“1—0”的负
跳变时,计数器加一,当加一计数器溢出时,就向CPU发出中断,利用这个特性
来扩展中断的方法是:首先把定时器/计数器设置成计数方式,并预置满值,把
外部中断源输入到P3口第4引脚或第5引脚(计数器输入端),这样就可以利用
定时器/计数器作为单片机外部中断了。注意这种方法的中断服务的入口地址应
在000BH或001BH。
四、用专用中断扩展芯片8259A
8259A是可编程中断控制接口,单片机控制八级中断。在系统中还可采用级联方式,一个主片可级联8个从片,构成64级中断处理系统。
这样在程序小于8K的情况,就可以用一片单片机实现了,而不需要用两片单片机控制,还要进行单片机点对点通讯。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
史海拾趣
|
大二学单片机,大三学嵌入式,大四参加电子设计大赛,,, C语言,数据结构,操作系统........一路走来, 大四面临找工作,才发现,自己模电还没入门...... 电子方面,自己还算好学,单片机嵌入式都是课余自己研究的,无奈模电至今还没找到一本 ...… 查看全部问答> |
|
最近做个项目,空间很小,需要用到超小封装的单片机,最好是3x3mm或者更小的贴片,不少于8个I/O口,要可以多次烧录的,不是那种OTP的。 至于功能,就是要最简单的I/O功能就可以了,不需要TIMER、AD、SPI、UART、INTERRUPT等,内置晶振至少4MHz,工 ...… 查看全部问答> |
|
现已成功把SCC配置成HDLC模式,现在要求提高传输速率,所以要用FCC。现在做法是把FCC的初始化过程做成跟SCC一样,但是给HDLC配置IP地址的时候CPM就死掉了(屏幕没任何反应),所以认为是初始化的配置问题,但是流程跟SCC是一样的,所以请问有没有做 ...… 查看全部问答> |
|
Hardware Specific Files裡頭沒東西.. 為什麼我的Hardware Specific Files裡頭什麼東西也沒有 是說廠商提供的source缺少或什麼的嗎? 而且編譯也不通過 … 查看全部问答> |
|
工作上要先计算出FFT(提供的是FFT的一个库,有些函数我们可以调用库)计算一个周期所花费的时间,决定是否采用凌阳的CPU。项目大概是这样的:有一个FM接收器,另外一个凌阳MCU包括A/D转换器(主要是用来控制的),现在要先测试FFT运行的时间,表格如下 ...… 查看全部问答> |
|
大家好。我的问题是一个关于 nor flash 操作的问题。 我先描述一下我的系统:我的flash是一块128k的nor flash。cpu是51.因为51只能寻址64k所以将这个128k的flash分成两块。低64k用来存放应用程序。高64k作为数据区,存放从上位机通过串口发过来的数据,为以后升级使用。这高、低两个64k的flash通过一个 ...… 查看全部问答> |




