历史上的今天
今天是:2025年03月09日(星期日)
2018年03月09日 | AT89S51多外部中断源系统设计
2018-03-09 来源:eefocus
AT89S51为用户提供两个外部中断请求输入端INT0(的反)和INT1(的反),实际的应用系统中,两个外部中断请求源往往不够用,需对外部中断源进行扩充。下面介绍一种扩充外部中断源的方法。
如下图所示,若系统中有5个外部中断请求源IR0~IR4,它们均为高电平请求有效,这时可按中断请求的轻重缓急进行排队,把其中最高级别的中断请求源IR0直接接到AT89S51的一个外部中断请求源IR0输入端INT0,其余的4个中断请求源IR1~IR4按下图所示的方法通过各自的OC门(集电极开路门)连到AT89S51的另一个外中断源输入端INT1,同时还连到P1口的P1.0~P1.3脚,供AT89S51查询。各外部中断请求源的中断请求由外部设备的硬件电路产生。采用如下图所示的电路,除了IR0的中断优先权级别最高外,其余4个外部中断源的中断优先权取决于查询顺序,这里假设查询顺序为P1.0~P1.3,因此,中断优先权由高到低的顺序依次为IR1,…,IR4。中断优先权的高、低取决于查询顺序。

假设上图的4个外部设备中有一个外部设备提出为高电平有效的中断请求信号,则中断请求通过4个集电极开路OC门的输出公共点,即INT1脚的电平就会变低。那么究竟是哪个外部设备提出的中断请求,还要通过程序查询P1.0~P1.3引脚上的逻辑电平来确定。本例假设某一时刻只能有一个外部设备提出中断请求,并设IR1~IR4这4个中断请求源的高电平可由相应的中断服务子程序清0,则处理INT1的中断服务子程序如下:


查询法扩展外部中断源比较简单,但是扩展的外部中断源个数较多时,查询时间稍长。
史海拾趣
|
不知道为什么 编译通过了 但是运行的时候却发生了错误: error:Debug Asesertion Failed Failed! f:\\sp\\vctors\\vc7libsce\\ship\\atlmfc\\src\\mfc\\filecore.cpp line 207 (207看不清楚不知道是297还是207) 相关的MFC函数: ...… 查看全部问答> |
|
现在在做一网卡项目,实现的功能是当网卡插入Windows XP系统时,显示一个USB口和一个串口,其中USB口实现上网,串口用于走AT命令等,现在在Windows端的驱动程序都已有现成的,USB也可以上网了 其中卡侧是TTPcom开发环境 &nb ...… 查看全部问答> |
|
请问用多片ADSP21161N时不可以用外部晶振作为CLKIN的输入吗?看ADSP21161N的数据手册24页这么说的,不知道是不是理解错了。想用FPGA来驱动4片ADSP21161N时钟信号,现在不知道该怎么办了。。。请高人指点,谢谢。… 查看全部问答> |




